diff --git a/deploy/openubmc/Dockerfile b/deploy/openubmc/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..2fa003bd8a7c09994d57985fa7592b4f2b54eea9 --- /dev/null +++ b/deploy/openubmc/Dockerfile @@ -0,0 +1,160 @@ +FROM swr.cn-north-4.myhuaweicloud.com/opensourceway/node:latest as Builder + +RUN mkdir -p /home/openubmc-datastat/web +WORKDIR /home/openubmc-datastat/web +COPY . /home/openubmc-datastat/web + +RUN npm install pnpm -g + +RUN pnpm install +RUN pnpm build:openubmc + +FROM swr.cn-north-4.myhuaweicloud.com/opensourceway/openeuler/nginx:latest as NginxBuilder + +FROM swr.cn-north-4.myhuaweicloud.com/opensourceway/openeuler/base:latest + +ENV NGINX_CONFIG_FILE /etc/nginx/nginx.conf +ENV NGINX_CONFIG_PATH /etc/nginx/ +ENV NGINX_PID /var/run/nginx.pid +ENV NGINX_USER nginx +ENV NGINX_GROUP nginx +ENV NGINX_BIN /usr/share/nginx/sbin/ +ENV NGINX_HOME /usr/share/nginx/ +ENV NGINX_EXE_FILE /usr/share/nginx/sbin/nginx +ENV DST_PATH /etc/nginx/cert + +COPY --from=NginxBuilder /usr/share/nginx /usr/share/nginx +COPY --from=NginxBuilder /usr/share/nginx/sbin/nginx /usr/share/nginx/sbin/nginx +COPY --from=NginxBuilder /etc/nginx/modules /etc/nginx/modules +COPY --from=NginxBuilder /etc/nginx/geoip /etc/nginx/geoip +COPY --from=NginxBuilder /etc/nginx/mime.types /etc/nginx/mime.types +COPY --from=Builder /home/openubmc-datastat/web/dist/openubmc /usr/share/nginx/www/ +COPY ./deploy/monitor.sh ./deploy/entrypoint.sh /etc/nginx/ +COPY ./deploy/openubmc/nginx.conf /etc/nginx/nginx.conf.template + +RUN sed -i "s|repo.openeuler.org|mirrors.nju.edu.cn/openeuler|g" /etc/yum.repos.d/openEuler.repo \ + && sed -i '/metalink/d' /etc/yum.repos.d/openEuler.repo \ + && sed -i '/metadata_expire/d' /etc/yum.repos.d/openEuler.repo \ + && yum update -y \ + && yum install -y findutils passwd shadow pcre-devel net-tools libmaxminddb libmaxminddb-devel \ + && find /usr/share/nginx/www -type d -print0| xargs -0 chmod 500 \ + && find /usr/share/nginx/www -type f -print0| xargs -0 chmod 400 \ + && touch /var/run/nginx.pid \ + && groupadd -g 1000 nginx \ + && useradd -u 1000 -g nginx -s /sbin/nologin nginx \ + && sed -i '/^PATH="\$HOME\/\.local\/bin:\$HOME\/bin:\$PATH"/d; /^export PATH/d' /home/nginx/.bashrc \ + && chmod 750 /usr \ + && chmod 550 /usr/share \ + && chown -R nginx:nginx /usr/share/nginx \ + && find /usr/share/nginx -type d -print0 | xargs -0 chmod 500 \ + && chmod 500 /usr/share/nginx/sbin/nginx \ + && mkdir -p /var/log/nginx \ + && mkdir -p /etc/nginx/cert \ + && chown -R nginx:nginx /etc/nginx/cert \ + && chmod -R 700 /etc/nginx/cert \ + && chown -R nginx:nginx /var/log/nginx \ + && chmod -R 640 /var/log/nginx \ + && touch /var/log/nginx/error.log \ + && touch /var/log/nginx/access.log \ + && chmod 640 /var/log/nginx/error.log \ + && chmod 640 /var/log/nginx/access.log \ + && chmod 640 /var/log/dnf.librepo.log \ + && chmod 640 /var/log/dnf.log \ + && chmod 640 /var/log/dnf.rpm.log \ + && chmod 640 /var/log/hawkey.log \ + && chmod 640 /var/log/*.log \ + && chmod 440 /etc/nginx/nginx*.conf* \ + && chown -R nginx:nginx /var/log/nginx/* \ + && mkdir -p /var/lib/nginx/tmp/client_body \ + && chown -R nginx:nginx /var/lib/nginx/tmp/client_body \ + && mkdir -p /var/lib/nginx/tmp/fastcgi \ + && chown -R nginx:nginx /var/lib/nginx/tmp/fastcgi \ + && mkdir -p /var/lib/nginx/tmp/proxy \ + && chown -R nginx:nginx /var/lib/nginx/tmp/proxy \ + && mkdir -p /var/lib/nginx/tmp/scgi \ + && chown -R nginx:nginx /var/lib/nginx/tmp/scgi \ + && mkdir -p /var/lib/nginx/tmp/uwsgi \ + && chown -R nginx:nginx /var/lib/nginx/tmp/uwsgi \ + && chmod -R 500 /var/lib/nginx/ \ + && chmod -R 750 /var/lib/nginx/tmp/proxy \ + && chown -R nginx:nginx /var/lib/nginx/ \ + && chown -R nginx:nginx /var/run/nginx.pid \ + && chmod 640 /var/run/nginx.pid \ + && chown -R nginx:nginx /etc/nginx \ + && chmod 550 /etc/nginx \ + && chmod 550 /etc/nginx/geoip/ \ + && chmod 440 /etc/nginx/geoip/* \ + && chmod 550 /etc/nginx/modules \ + && chmod 440 /etc/nginx/modules/* \ + && touch /etc/nginx/nginx.conf \ + && chown nginx:nginx /etc/nginx/nginx.conf \ + && chmod 640 /etc/nginx/nginx.conf \ + && chmod 640 /etc/nginx/nginx.conf.template \ + && chmod 440 /etc/nginx/mime.types \ + && chmod 700 /var/lib/nginx/tmp/client_body \ + && lsd() { \ + local v="$1"; \ + ls -ld "$v"; \ + while :; do \ + v="${v%/*}"; \ + [[ "$v" && ! -f "$v" ]] || break; \ + chown root:root "$v"; \ + done; \ + }; lsd "$NGINX_HOME" \ + && lsd() { \ + local v="$1"; \ + ls -ld $v; \ + while :; do \ + v="${v%/*}"; \ + [[ "$v" && ! -f "$v" ]] || break; \ + chmod 550 "$v"; \ + done; \ + }; lsd $NGINX_HOME \ + && lsd() { \ + local v="$1"; \ + ls -ld $v; \ + while :; do \ + v="${v%/*}"; \ + [[ "$v" && ! -f "$v" ]] || break; \ + chown $NGINX_USER:$NGINX_GROUP "$v"; \ + done; \ + }; lsd $NGINX_HOME \ + && rm -rf /usr/share/nginx/html/ \ + && rm -rf /usr/share/nginx/logs/ \ + && echo "umask 0027" >> /etc/bashrc \ + && echo "set +o history" >> /etc/bashrc \ + && sed -i "s|HISTSIZE=1000|HISTSIZE=0|" /etc/profile \ + && sed -i "s/PASS_MAX_DAYS.*/PASS_MAX_DAYS 30/" /etc/login.defs \ + && echo "ALWAYS_SET_PATH yes" >> /etc/login.defs \ + && chage --maxdays 30 nginx \ + && passwd -l $NGINX_USER \ + && yum clean all \ + && usermod -s /sbin/nologin sync \ + && usermod -s /sbin/nologin shutdown \ + && usermod -s /sbin/nologin halt \ + && echo "export TMOUT=1800 readonly TMOUT" >> /etc/profile \ + && rm -rf /usr/bin/gdb* \ + && rm -rf /usr/share/gdb \ + && rm -rf /usr/share/gcc* \ + && rm -rf /usr/lib64/python3.11/bdb.py \ + && rm -rf /usr/lib64/python3.11/pdb.py \ + && rm -rf /usr/lib64/python3.11/timeit.py \ + && rm -rf /usr/lib64/python3.11/trace.py \ + && rm -rf /usr/lib64/python3.11/tracemalloc.py \ + && rm -rf /usr/share/licenses/glibc \ + && rm -rf /usr/share/locale/ar \ + && rm -rf /usr/share/locale/cpp \ + && yum remove gdb-gdbserver findutils passwd shadow -y + +RUN chmod 500 /etc/nginx/monitor.sh \ + && chmod 500 /etc/nginx/entrypoint.sh \ + && chown nginx:nginx /etc/nginx/monitor.sh \ + && chown nginx:nginx /etc/nginx/entrypoint.sh \ + && sed -i "/PATH=/d" /home/nginx/.bashrc \ + && source /home/nginx/.bashrc + +EXPOSE 8080 + +USER nginx + +ENTRYPOINT ["/etc/nginx/entrypoint.sh"] \ No newline at end of file diff --git a/deploy/openubmc/nginx.conf b/deploy/openubmc/nginx.conf new file mode 100644 index 0000000000000000000000000000000000000000..4f81fe66b32f5a21583d468577133c0fab696769 --- /dev/null +++ b/deploy/openubmc/nginx.conf @@ -0,0 +1,152 @@ +user $NGINX_USER; +error_log /dev/stdout info; +pid /var/run/nginx.pid; +worker_processes auto; +worker_rlimit_nofile 65535; +events { + use epoll; + worker_connections 65535; +} + +http { + include /etc/nginx/mime.types; + + log_format main '[$time_local] remote_addr: $http_x_real_ip, request: "$request", ' + 'status: $status, body_bytes_sent: $body_bytes_sent, http_referer: "$http_referer", ' + 'http_user_agent: "$http_user_agent"'; + + access_log /dev/stdout main; + + server_tokens off; + autoindex off; + + port_in_redirect off; + absolute_redirect off; + + client_header_buffer_size 1k; + large_client_header_buffers 4 8k; + client_body_buffer_size 16k; + client_max_body_size 50m; + + client_header_timeout 10; + client_body_timeout 10; + client_body_in_file_only off; + keepalive_timeout 10 30; + send_timeout 10; + + proxy_hide_header X-Powered-By; + + limit_conn_zone $http_x_real_ip zone=limitperip:10m; + limit_req_zone $http_x_real_ip zone=frontendratelimit:10m rate=2000r/s; + limit_req_zone $http_x_real_ip zone=ratelimit:10m rate=200r/s; + underscores_in_headers on; + + gzip on; + gzip_min_length 1k; + gzip_buffers 4 16k; + gzip_comp_level 5; + gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/javascript application/x-httpd-php application/json; + gzip_vary on; + + server { + listen ${LOCAL_IP}:8080 ssl; + server_name datastat.openeuler.org; + charset utf-8; + limit_conn limitperip 10; + ssl_session_tickets off; + ssl_session_timeout 10s; + ssl_session_cache shared:SSL:10m; + + ssl_certificate "cert/server.crt"; + ssl_certificate_key "cert/server.key"; + ssl_password_file "cert/abc.txt"; + ssl_dhparam "cert/dhparam.pem"; + ssl_ecdh_curve auto; + ssl_protocols TLSv1.2 TLSv1.3; + ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384"; + ssl_prefer_server_ciphers on; + ssl_stapling on; + ssl_stapling_verify on; + resolver 8.8.8.8 8.8.4.4 valid=60s; + resolver_timeout 5s; + + if ($request_method !~ ^(GET|POST)$) { + return 444; + } + + location ~ /\. { + deny all; + return 404; + } + location / { + proxy_set_header X-Forwarded-For $http_x_real_ip; + proxy_set_header Host $host; + + add_header X-XSS-Protection "1;mode=block"; + add_header X-Content-Type-Options nosniff; + add_header X-Frame-Options DENY; + add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; + add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'none'; frame-src 'none'"; + add_header Cache-Control "no-cache, no-store, must-revalidate"; + add_header Pragma no-cache; + add_header Expires 0; + + location /assets { + add_header X-XSS-Protection "1; mode=block"; + add_header X-Frame-Options DENY; + add_header X-Content-Type-Options nosniff; + add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; + add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'none'; frame-src 'none'"; + add_header Cache-Control "public,max-age=1209600"; + } + + root /usr/share/nginx/www; + index index.html; + try_files $uri /index.html; + } + + location /api-id/ { + proxy_set_header X-Forwarded-For $http_x_real_ip; + + add_header X-XSS-Protection "1;mode=block"; + add_header X-Content-Type-Options nosniff; + add_header X-Frame-Options DENY; + add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; + add_header Cache-Control "no-cache, no-store, must-revalidate"; + add_header Pragma no-cache; + add_header Expires 0; + + proxy_pass https://usercenter.openubmc.cn/; + } + + location /query/ { + proxy_set_header X-Forwarded-For $http_x_real_ip; + + proxy_pass https://dsapi.osinfra.cn/query/; + } + + location /api-magic/ { + proxy_set_header X-Forwarded-For $http_x_real_ip; + + proxy_pass https://magicapi-plus.osinfra.cn/; + } + + location /api-dsapi/ { + proxy_set_header X-Forwarded-For $http_x_real_ip; + + proxy_pass https://dsapi.osinfra.cn/; + } + + error_page 401 402 403 405 406 407 413 414 /error.html; + error_page 500 501 502 503 504 505 /error.html; + error_page 404 /404.html; + + location = /error.html { + root /usr/share/nginx/www; + } + + location = /404.html { + root /usr/share/nginx/www; + } + } +} diff --git a/package.json b/package.json index 0f4f8b5e04ef04b57593e351211c2e418b1cae60..356a2cb6a4eaf8d77a2a8d3fd8ea5def3d2730be 100644 --- a/package.json +++ b/package.json @@ -8,11 +8,13 @@ "dev:harmony": "pnpm --filter harmony dev", "dev:lookeng": "pnpm --filter lookeng dev", "dev:mindspore": "pnpm --filter mindspore dev", + "dev:openubmc": "pnpm --filter openubmc dev", "build:euler": "pnpm --filter euler build", "build:gauss": "pnpm --filter gauss build", "build:harmony": "pnpm --filter harmony build", "build:lookeng": "pnpm --filter lookeng build", "build:mindspore": "pnpm --filter mindspore build", + "build:openubmc": "pnpm --filter openubmc build", "build": "pnpm build:euler && pnpm build:gauss && pnpm build:lookeng && pnpm build:mindspore && pnpm build:harmony", "lint:euler": "eslint \"packages/euler/src/**/*.{js,ts,vue,jsx,tsx}\"", "fix:euler": "eslint --fix \"packages/euler/src/**/*.{js,ts,vue,jsx,tsx}\"", @@ -24,8 +26,10 @@ "dependencies": { "@element-plus/icons-vue": "^2.0.4", "@opensig/open-analytics": "^0.0.9", + "@opensig/opendesign": "^1.0.1", "@types/d3": "^7.4.0", - "axios": "^1.8.2", + "@vueuse/core": "^13.9.0", + "axios": "^1.12.0", "d3": "^7.4.4", "echarts": "^5.3.2", "element-plus": "^2.1.4", @@ -35,15 +39,16 @@ "normalize.css": "^8.0.1", "pinia": "^2.0.11", "swiper": "^8.0.7", - "vue": "^3.2.25", - "vue-i18n": "^9.14.3", - "vue-router": "^4.0.13" + "unplugin-icons": "22.2.0", + "vue": "^3.5.20", + "vue-i18n": "^9.14.5", + "vue-router": "^4.5.1" }, "devDependencies": { "@rushstack/eslint-patch": "^1.10.5", "@types/js-cookie": "^3.0.6", "@types/lodash-es": "^4.17.6", - "@types/node": "^17.0.21", + "@types/node": "^22.0.0", "@vitejs/plugin-vue": "^4.6.2", "@vitejs/plugin-vue-jsx": "^4.1.1", "@vue/eslint-config-prettier": "^10.2.0", diff --git a/packages/euler/package.json b/packages/euler/package.json index 96bf8d278bdff83d324e119a0dc9544a1d8ea8f9..1b6e28a05a1779ac197947c3aed7ef1255e9a74a 100644 --- a/packages/euler/package.json +++ b/packages/euler/package.json @@ -8,7 +8,6 @@ }, "dependencies": { "@opensig/opendesign": "0.0.65", - "shared": "workspace:^", - "unplugin-icons": "^0.14.0" + "shared": "workspace:^" } } diff --git a/packages/gauss/package.json b/packages/gauss/package.json index ae0b47168b6feec6613c78c6aee94e8c77ec188a..f46729221ce60a81f0b40ff09c4cfd23a02106db 100644 --- a/packages/gauss/package.json +++ b/packages/gauss/package.json @@ -7,7 +7,6 @@ "build": "vue-tsc --noEmit && vite build" }, "dependencies": { - "shared": "workspace:^", - "unplugin-icons": "^0.14.0" + "shared": "workspace:^" } } diff --git a/packages/harmony/package.json b/packages/harmony/package.json index c0bcbe2757ce510b4ae682725afdae917ce98d7a..a29ec0464bb19c6d5692e5cdf2d853a4b8fcd991 100644 --- a/packages/harmony/package.json +++ b/packages/harmony/package.json @@ -7,7 +7,6 @@ "build": "vue-tsc --noEmit && vite build" }, "dependencies": { - "shared": "workspace:^", - "unplugin-icons": "^0.14.0" + "shared": "workspace:^" } } \ No newline at end of file diff --git a/packages/mindspore/package.json b/packages/mindspore/package.json index 9ccbf1351b879a8ca736e086fc809b46896bd9ab..8f2019bad0349cb21f417ff47849faf47f9b2a30 100644 --- a/packages/mindspore/package.json +++ b/packages/mindspore/package.json @@ -7,7 +7,6 @@ "build": "vue-tsc --noEmit && vite build" }, "dependencies": { - "shared": "workspace:^", - "unplugin-icons": "^0.14.0" + "shared": "workspace:^" } } diff --git a/packages/openubmc/.env.development b/packages/openubmc/.env.development new file mode 100644 index 0000000000000000000000000000000000000000..e4eb1492369acac287ec096d61000a9030593a3e --- /dev/null +++ b/packages/openubmc/.env.development @@ -0,0 +1,4 @@ +VITE_COOKIE_DOMAIN = localhost +VITE_LOGIN_ORIGIN = https://usercenter.openubmc.test.osinfra.cn +VITE_MAIN_DOMAIN_URL = https://www.openubmc.cn +VITE_FORUM_URL = https://discuss.openubmc.cn/ diff --git a/packages/openubmc/.env.production b/packages/openubmc/.env.production new file mode 100644 index 0000000000000000000000000000000000000000..7c65a51b277e9aa5474bbc560bce3a7ef8b584ec --- /dev/null +++ b/packages/openubmc/.env.production @@ -0,0 +1,4 @@ +VITE_COOKIE_DOMAIN = .openubmc.cn +VITE_LOGIN_ORIGIN = https://usercenter.openubmc.cn +VITE_MAIN_DOMAIN_URL = https://www.openubmc.cn +VITE_FORUM_URL = https://discuss.openubmc.cn/ \ No newline at end of file diff --git a/packages/openubmc/auto-imports.d.ts b/packages/openubmc/auto-imports.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..08908edd6a4136cad144e7a483f291f9d9618be2 --- /dev/null +++ b/packages/openubmc/auto-imports.d.ts @@ -0,0 +1,5 @@ +// Generated by 'unplugin-auto-import' +export {} +declare global { + +} diff --git a/packages/openubmc/components.d.ts b/packages/openubmc/components.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..f596a2017b09ceac9bca356985d7277184b9fc72 --- /dev/null +++ b/packages/openubmc/components.d.ts @@ -0,0 +1,40 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +export {} + +declare module 'vue' { + export interface GlobalComponents { + AppFooter: typeof import('./src/components/AppFooter.vue')['default'] + AppHeader: typeof import('./src/components/AppHeader.vue')['default'] + CommonLayout: typeof import('./src/components/CommonLayout.vue')['default'] + ElAvatar: typeof import('element-plus/es')['ElAvatar'] + ElButton: typeof import('element-plus/es')['ElButton'] + ElCol: typeof import('element-plus/es')['ElCol'] + ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] + ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] + ElDialog: typeof import('element-plus/es')['ElDialog'] + ElDropdown: typeof import('element-plus/es')['ElDropdown'] + ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] + ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] + ElForm: typeof import('element-plus/es')['ElForm'] + ElFormItem: typeof import('element-plus/es')['ElFormItem'] + ElPopover: typeof import('element-plus/es')['ElPopover'] + ElProgress: typeof import('element-plus/es')['ElProgress'] + ElRow: typeof import('element-plus/es')['ElRow'] + ElTable: typeof import('element-plus/es')['ElTable'] + ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] + ElTooltip: typeof import('element-plus/es')['ElTooltip'] + HeaderNav: typeof import('./src/components/HeaderNav.vue')['default'] + LoadingArc: typeof import('./src/components/LoadingArc.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + SectionCard: typeof import('./src/components/SectionCard.vue')['default'] + ToggleRadios: typeof import('./src/components/ToggleRadios.vue')['default'] + } + export interface ComponentCustomProperties { + vLoading: typeof import('element-plus/es')['ElLoadingDirective'] + } +} diff --git a/packages/openubmc/index.html b/packages/openubmc/index.html new file mode 100644 index 0000000000000000000000000000000000000000..960ab56279a301a3bd19fd4fe8d73e74b4f24e20 --- /dev/null +++ b/packages/openubmc/index.html @@ -0,0 +1,32 @@ + + + + + + + + openUBMC DATASTAT + + + +
+ + + + + + \ No newline at end of file diff --git a/packages/openubmc/package.json b/packages/openubmc/package.json new file mode 100644 index 0000000000000000000000000000000000000000..ff981f948218f496e644e22b6c52d44ee8d27c58 --- /dev/null +++ b/packages/openubmc/package.json @@ -0,0 +1,17 @@ +{ + "name": "openubmc", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "module", + "dependencies": { + "shared": "workspace:^" + } +} diff --git a/packages/openubmc/public/favicon.ico b/packages/openubmc/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..cdbaf4775beb766fd60d2c1fefda4a63e9a82fb0 Binary files /dev/null and b/packages/openubmc/public/favicon.ico differ diff --git a/packages/openubmc/public/footer-bg.png b/packages/openubmc/public/footer-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..88098672605e6b5a302bff4662e3ee322428d27b Binary files /dev/null and b/packages/openubmc/public/footer-bg.png differ diff --git a/packages/openubmc/src/App.vue b/packages/openubmc/src/App.vue new file mode 100644 index 0000000000000000000000000000000000000000..f21fb39607bcee1a5a6219a1e83686fbad29ca5a --- /dev/null +++ b/packages/openubmc/src/App.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/packages/openubmc/src/assets/bg.png b/packages/openubmc/src/assets/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..1dfb42fe111972e1fef04774bef33d6c330a4bd9 Binary files /dev/null and b/packages/openubmc/src/assets/bg.png differ diff --git a/packages/openubmc/src/assets/category/home/recordal.png b/packages/openubmc/src/assets/category/home/recordal.png new file mode 100644 index 0000000000000000000000000000000000000000..c4fc2f2c936e1fcf21e807d0a4fdc0cf49f59e51 Binary files /dev/null and b/packages/openubmc/src/assets/category/home/recordal.png differ diff --git a/packages/openubmc/src/assets/category/home/wechat-qr.jpg b/packages/openubmc/src/assets/category/home/wechat-qr.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5a9c36940930dae423887dab0a7792b3d0a7e41e Binary files /dev/null and b/packages/openubmc/src/assets/category/home/wechat-qr.jpg differ diff --git a/packages/openubmc/src/assets/category/home/wechat.svg b/packages/openubmc/src/assets/category/home/wechat.svg new file mode 100644 index 0000000000000000000000000000000000000000..350f46da1f8d939cda6dc7fc4983637ef6a6404b --- /dev/null +++ b/packages/openubmc/src/assets/category/home/wechat.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/openubmc/src/assets/cose.png b/packages/openubmc/src/assets/cose.png new file mode 100644 index 0000000000000000000000000000000000000000..7f73e16a97315914c40d41ec860474649ec501d5 Binary files /dev/null and b/packages/openubmc/src/assets/cose.png differ diff --git a/packages/openubmc/src/assets/style/base.scss b/packages/openubmc/src/assets/style/base.scss new file mode 100644 index 0000000000000000000000000000000000000000..272889167d507fee8a11c0e4b9a4b93310fa3482 --- /dev/null +++ b/packages/openubmc/src/assets/style/base.scss @@ -0,0 +1,124 @@ +/* + * base + */ +html, +body { + margin: 0; + padding: 0; + -webkit-text-size-adjust: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + scroll-behavior: smooth; + box-sizing: border-box; + font-family: 'PingFang SC', 'Microsoft YaHei', 'Helvetica', 'Arial', sans-serif; + width: 100%; + height: 100%; + @include text1; + @include scrollbar; +} +html { + overflow: auto; + @include respond-to('phone') { + background-color: var(--o-color-ubmc-bg); + } +} + +*, +:after, +:before { + box-sizing: inherit; + margin: 0; + padding: 0; +} + +img { + vertical-align: top; +} + +[tabindex] { + outline: none; +} + +a { + cursor: pointer; + color: var(--o-color-link1); + text-decoration: none; + &:hover { + @include respond-to('>phone') { + color: var(--o-color-ubmc-hover); + } + } + &:active { + @include respond-to('>phone') { + color: var(--o-color-ubmc-hover); + } + } +} + +blockquote, +figure, +form, +h1, +h2, +h3, +h4, +h5, +h6, +p { + margin: 0; +} +dd, +dl, +li, +ol, +ul { + margin: 0; + padding: 0; +} + +ol, +ul { + list-style: none outside none; +} + +button, +input, +optgroup, +section, +textarea { + font-family: inherit; + font-size: 100%; + line-height: 1.15; + margin: 0; +} + +.highlight { + color: var(--o-color-ubmc); +} + +svg { + &:not(.initial-fill) { + &:not(.o-svg-icon) { + path { + fill: currentColor; + } + } + } + &.o-svg-icon { + fill: currentColor; + } +} +@keyframes o-rotating { + 0% { + transform: rotate(0); + } + + 100% { + transform: rotate(360deg); + } +} + +.o-rotating { + animation: o-rotating var(--o-rotate-duration, 1s) var(--o-easing-linear) infinite; +} \ No newline at end of file diff --git a/packages/openubmc/src/assets/style/element/index.scss b/packages/openubmc/src/assets/style/element/index.scss new file mode 100644 index 0000000000000000000000000000000000000000..adbfc9185685f71823fd3c4b1b667ad2cf62c3ab --- /dev/null +++ b/packages/openubmc/src/assets/style/element/index.scss @@ -0,0 +1,7 @@ +@forward 'element-plus/theme-chalk/src/common/var.scss' with ( + $colors: ( + 'primary': ( + 'base': var(--o-color-primary1), + ), + ) +); \ No newline at end of file diff --git a/packages/openubmc/src/assets/style/grid.scss b/packages/openubmc/src/assets/style/grid.scss new file mode 100644 index 0000000000000000000000000000000000000000..5cd419305f31a5018cb5d73753ef7b17e3754eea --- /dev/null +++ b/packages/openubmc/src/assets/style/grid.scss @@ -0,0 +1,67 @@ +@use './mixin/screen.scss' as *; + +@mixin inject-var($width, $padding, $gutter, $columns, $contentColumns) { + :root { + --grid-layout-width: #{$width}; // 栅格布局总宽度 + --grid--layout-padding: #{$padding}; // 栅格布局左右的padding + --grid-column-gutter: #{$gutter}; // 栅格水槽宽度 + --grid-column-total: #{$columns}; // 栅格总数 + --grid-content-columns: #{$contentColumns}; // 内容区域所占栅格数量 + --grid-full-width: calc(var(--grid-layout-width) - var(--grid--layout-padding) * 2); // 栅格布局内容宽度 + --grid-column-width: calc((var(--grid-full-width) - var(--grid-column-gutter) * (var(--grid-column-total) - 1)) / var(--grid-column-total)); // 一个栅格的宽度 + --grid-content-width: calc(var(--grid-column-width) * var(--grid-content-columns) + var(--grid-column-gutter) * (var(--grid-content-columns) - 1)); // 内容区域站栅格个数 + } +} + +// 1921px <= 屏幕宽度 +@include respond-to('>pc_l') { + @include inject-var(1920px, 64px, 32px, 24, 20); +} + +// 1681px <= 屏幕宽度 <= 1920px +@include respond-to('pc_l') { + @include inject-var(100vw, 64px, 32px, 24, 20); +} + +// 1441px <= 屏幕宽度 <= 1680px +@include respond-to('pc') { + @include inject-var(100vw, 64px, 32px, 24, 22); +} + +// 1201px <= 屏幕宽度 <= 1440px +@include respond-to('laptop') { + @include inject-var(100vw, 40px, 24px, 24, 22); +} + +// 841px <= 屏幕宽度 <= 1200px +@include respond-to('pad_h') { + @include inject-var(100vw, 32px, 16px, 12, 12); +} + +// 601px <= 屏幕宽度 <= 840px +@include respond-to('pad_v') { + @include inject-var(100vw, 32px, 16px, 8, 8); +} + +// 屏幕宽度 <= 600px +@include respond-to('phone') { + @include inject-var(100vw, 24px, 12px, 4, 4); +} + +:root { + // --grid-: 个栅格的宽度 + --grid-1: var(--grid-column-width); + @for $cnt from 2 to 24 { + $gutterCnt: $cnt - 1; + --grid-#{$cnt}: calc(var(--grid-column-width) * #{$cnt} + var(--grid-column-gutter) * #{$gutterCnt}); + } +} + +.grid-container { + display: flex; + width: 100vw; + max-width: 1920px; + margin: 0 auto; + padding-left: var(--grid--layout-padding); + padding-right: var(--grid--layout-padding); +} \ No newline at end of file diff --git a/packages/openubmc/src/assets/style/mixin/common.scss b/packages/openubmc/src/assets/style/mixin/common.scss new file mode 100644 index 0000000000000000000000000000000000000000..dbc2d5a1868cb5ee95350b9e7138f999c38a566a --- /dev/null +++ b/packages/openubmc/src/assets/style/mixin/common.scss @@ -0,0 +1,45 @@ +@use './screen.scss' as *; + +@mixin in-dark { + [data-o-theme='dark'] { + @content; + } +} + +@mixin img-in-dark { + filter: brightness(80%) grayscale(20%) contrast(1.2); +} + +@mixin scrollbar { + &::-webkit-scrollbar-track { + border-radius: 3px; + } + + &::-webkit-scrollbar { + width: 4px; + height: 4px; + background-color: transparent; + } + + &::-webkit-scrollbar-thumb { + border-radius: 3px; + background: var(--o-color-control1); + } +} + +@mixin text-truncate($line-clamp: 1) { + overflow: hidden; // 公共属性:超出隐藏 + + @if $line-clamp == 1 { + /* 单行截断模式 */ + white-space: nowrap; // 禁止换行 + text-overflow: ellipsis; // 省略号 + } @else { + /* 多行截断模式 */ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: $line-clamp; // 控制行数 + word-break: break-all; // 允许单词断行(根据需求可选) + } +} + diff --git a/packages/openubmc/src/assets/style/mixin/font.scss b/packages/openubmc/src/assets/style/mixin/font.scss new file mode 100644 index 0000000000000000000000000000000000000000..537da0a54a6a34c759336e098a7a292db56c9383 --- /dev/null +++ b/packages/openubmc/src/assets/style/mixin/font.scss @@ -0,0 +1,233 @@ +@use './screen.scss' as *; + +// 一级数据展示 +@mixin display1 { + font-size: 56px; + line-height: 80px; + @include respond-to('laptop') { + font-size: 48px; + line-height: 64px; + } + @include respond-to('pad_h') { + font-size: 40px; + line-height: 56px; + } + @include respond-to('<=pad_v') { + font-size: 22px; + line-height: 30px; + } +} + +// 二级数据展示 +@mixin display2 { + font-size: 48px; + line-height: 64px; + @include respond-to('laptop') { + font-size: 40px; + line-height: 56px; + } + @include respond-to('pad_h') { + font-size: 32px; + line-height: 44px; + } + @include respond-to('<=pad_v') { + font-size: 22px; + line-height: 28px; + } +} + +// 三级数据展示 +@mixin display3 { + font-size: 40px; + line-height: 56px; + @include respond-to('laptop') { + font-size: 32px; + line-height: 44px; + } + @include respond-to('pad_h') { + font-size: 24px; + line-height: 32px; + } + @include respond-to('<=pad_v') { + font-size: 18px; + line-height: 26px; + } +} + +// 一级标题 +@mixin h1 { + font-size: 32px; + line-height: 44px; + @include respond-to('laptop') { + font-size: 20px; + line-height: 28px; + } + @include respond-to('pad_h') { + font-size: 20px; + line-height: 28px; + } + @include respond-to('<=pad_v') { + font-size: 18px; + line-height: 26px; + } +} + +// 二级标题 +@mixin h2 { + font-size: 24px; + line-height: 32px; + @include respond-to('laptop') { + font-size: 20px; + line-height: 28px; + } + @include respond-to('pad_h') { + font-size: 18px; + line-height: 26px; + } + @include respond-to('<=pad_v') { + font-size: 16px; + line-height: 24px; + } +} + +// 三级标题 +@mixin h3 { + font-size: 22px; + line-height: 30px; + @include respond-to('laptop') { + font-size: 18px; + line-height: 26px; + } + @include respond-to('pad_h') { + font-size: 16px; + line-height: 24px; + } + @include respond-to('pad_v') { + font-size: 16px; + line-height: 24px; + } + @include respond-to('phone') { + font-size: 16px; + line-height: 24px; + } +} + +// 四级标题 +@mixin h4 { + font-size: 20px; + line-height: 28px; + @include respond-to('laptop') { + font-size: 18px; + line-height: 26px; + } + @include respond-to('pad_h') { + font-size: 16px; + line-height: 24px; + } + @include respond-to('<=pad_v') { + font-size: 16px; + line-height: 24px; + } +} + +// 常规正文 +@mixin text1 { + font-size: 16px; + line-height: 24px; + --line-height: 24px; + @include respond-to('laptop') { + font-size: 14px; + line-height: 22px; + --line-height: 22px; + } + @include respond-to('pad_h') { + font-size: 14px; + line-height: 22px; + --line-height: 22px; + } + @include respond-to('<=pad_v') { + font-size: 14px; + line-height: 22px; + --line-height: 22px; + } +} + +// 大号正文 +@mixin text2 { + font-size: 18px; + line-height: 26px; + @include respond-to('laptop') { + font-size: 16px; + line-height: 24px; + } + @include respond-to('pad_h') { + font-size: 14px; + line-height: 22px; + } + @include respond-to('<=pad_v') { + font-size: 14px; + line-height: 22px; + } +} + +// 提示文本1 +@mixin tip1 { + font-size: 14px; + line-height: 22px; + @include respond-to('laptop') { + font-size: 14px; + line-height: 22px; + } + @include respond-to('pad_h') { + font-size: 12px; + line-height: 18px; + } + @include respond-to('<=pad_v') { + font-size: 12px; + line-height: 18px; + } +} + +// 提示文本2 +@mixin tip2 { + font-size: 12px; + line-height: 18px; + @include respond-to('laptop') { + font-size: 12px; + line-height: 18px; + } + @include respond-to('pad_h') { + font-size: 12px; + line-height: 18px; + } + @include respond-to('<=pad_v') { + font-size: 10px; + line-height: 16px; + } +} +// 提示文本1 +@mixin tip1-response-max-height { + font-size: 14px; + line-height: 22px; + max-height: 44px; + @include respond-to('laptop-pc') { + font-size: 12px; + line-height: 18px; + max-height: 36px; + } + @include respond-to('pad_h') { + font-size: 12px; + line-height: 18px; + max-height: 36px; + } + @include respond-to('pad_v') { + font-size: 12px; + line-height: 18px; + max-height: 36px; + } + @include respond-to('phone') { + font-size: 10px; + line-height: 16px; + max-height: 32px; + } +} diff --git a/packages/openubmc/src/assets/style/mixin/screen.scss b/packages/openubmc/src/assets/style/mixin/screen.scss new file mode 100644 index 0000000000000000000000000000000000000000..7ce92d66c3109e79e827f1059e486177690b056f --- /dev/null +++ b/packages/openubmc/src/assets/style/mixin/screen.scss @@ -0,0 +1,94 @@ +@use 'sass:map'; +@use 'sass:list'; +@use 'sass:meta'; + +// 断点定义 +$breakpoints: ( + // phone + 'phone': (0, 600px), + '>phone': 601px, + // pad + 'pad': (601px, 1200px), + '<=pad': (0, 1200px), + '>pad': 1201px, + // pad-v + 'pad_v': (601px, 840px), + '<=pad_v': (0, 840px), + '>pad_v': 841px, + // pad-h + 'pad_h': (841px, 1200px), + // laptop + 'laptop': (1201px, 1440px), + '<=laptop': (0, 1440px), + '>laptop': 1441px, + 'pad-laptop': (601px, 1440px), + 'pad_v-laptop': (841px, 1440px), + 'laptop-pc': (1201px, 1680px), + '<=pc': (0, 1680px), + 'pc': (1441px, 1680px), + 'pc_l': (1681px, 1920px), + '>pc_l': 1921px +); + +@mixin respond-to($breakname) { + $bp: map.get($breakpoints, $breakname); + @if meta.type-of($bp) == 'list' { + $min: list.nth($bp, 1); + $max: list.nth($bp, 2); + @if $min == 0 { + @media (max-width: $max) { + @content; + } + } @else { + @media (min-width: $min) and (max-width: $max) { + @content; + } + } + } @else { + @media (min-width: $bp) { + @content; + } + } +} + +@mixin hoverable($hover: hover) { + @media (hover: $hover) { + @content; + } +} + +@mixin hover() { + @media (hover: hover) { + &:hover { + @content; + } + } +} + +@mixin me-hover() { + @content; + @media (hover: hover) { + &:hover { + @content; + } + } +} + +@mixin x-hover() { + transition: all var(--o-duration-m1) var(--o-easing-standard-in); + @include hover { + transform: rotate(180deg); + } +} + +@mixin x-svg-hover() { + overflow: hidden; + svg { + transition: all var(--o-duration-m1) var(--o-easing-standard-in); + } + @include hover { + svg { + transform: rotate(180deg); + } + } +} diff --git a/packages/openubmc/src/assets/style/theme/dark.token.css b/packages/openubmc/src/assets/style/theme/dark.token.css new file mode 100644 index 0000000000000000000000000000000000000000..c9d31003a3ad54e5cf8d1a6230970a1c8bdd20d8 --- /dev/null +++ b/packages/openubmc/src/assets/style/theme/dark.token.css @@ -0,0 +1,2064 @@ +/* theme: dark */ +[data-o-theme="dark"] { + /** + * @name + * @type palette + * @group white + * @description + */ + --o-white: 255, 255, 255; + /** + * @name + * @type palette + * @group black + * @description + */ + --o-black: 0, 0, 0; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-1: 0, 4, 77; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-2: 6, 15, 120; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-3: 20, 37, 163; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-4: 40, 65, 207; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-5: 66, 99, 250; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-6: 84, 120, 251; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-7: 122, 154, 252; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-8: 160, 186, 253; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-9: 199, 217, 254; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-10: 238, 244, 255; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-1: 0, 77, 42; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-2: 2, 102, 53; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-3: 10, 127, 66; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-4: 22, 152, 80; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-5: 36, 177, 95; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-6: 51, 193, 104; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-7: 90, 208, 131; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-8: 135, 224, 163; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-9: 185, 239, 200; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-10: 240, 255, 244; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-1: 77, 24, 0; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-2: 120, 42, 1; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-3: 163, 68, 8; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-4: 207, 97, 19; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-5: 250, 130, 33; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-6: 251, 143, 32; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-7: 252, 174, 91; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-8: 253, 202, 139; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-9: 254, 227, 188; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-10: 255, 248, 237; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-1: 77, 0, 17; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-2: 115, 3, 24; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-3: 153, 9, 31; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-4: 192, 17, 37; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-5: 230, 28, 43; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-6: 235, 35, 45; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-7: 240, 82, 85; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-8: 245, 132, 130; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-9: 250, 183, 180; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-10: 255, 234, 232; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-1: 0, 0, 0; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-2: 20, 20, 20; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-3: 28, 28, 28; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-4: 39, 39, 39; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-5: 47, 47, 47; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-6: 57, 57, 57; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-7: 67, 67, 67; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-8: 88, 88, 88; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-9: 122, 122, 122; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-10: 159, 159, 159; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-11: 185, 185, 185; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-12: 210, 210, 210; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-13: 238, 238, 238; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-14: 255, 255, 255; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-1: 0, 0, 0; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-2: 16, 28, 20; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-3: 23, 25, 28; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-4: 36, 36, 39; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-5: 40, 42, 47; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-6: 50, 53, 57; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-7: 61, 63, 67; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-8: 80, 84, 88; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-9: 113, 117, 122; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-10: 147, 152, 159; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-11: 172, 177, 185; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-12: 198, 202, 210; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-13: 231, 234, 238; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-14: 255, 255, 255; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-1: 77, 54, 0; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-2: 119, 87, 2; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-3: 161, 126, 11; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-4: 203, 167, 24; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-5: 245, 211, 42; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-6: 247, 222, 54; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-7: 249, 234, 100; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-8: 251, 244, 146; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-9: 253, 251, 192; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-10: 255, 255, 240; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-1: 41, 77, 0; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-2: 63, 109, 3; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-3: 91, 142, 14; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-4: 121, 174, 30; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-5: 155, 207, 50; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-6: 172, 217, 68; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-7: 194, 226, 104; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-8: 214, 236, 144; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-9: 233, 245, 186; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-10: 251, 255, 232; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-1: 0, 73, 77; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-2: 2, 101, 103; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-3: 9, 129, 127; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-4: 18, 155, 148; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-5: 30, 181, 167; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-6: 42, 196, 178; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-7: 84, 211, 192; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-8: 130, 255, 208; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-9: 182, 240, 227; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-10: 239, 255, 251; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-1: 0, 34, 77; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-2: 1, 57, 117; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-3: 8, 86, 158; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-4: 18, 118, 199; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-5: 31, 153, 240; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-6: 42, 166, 243; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-7: 89, 191, 246; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-8: 137, 214, 249; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-9: 187, 233, 252; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-10: 237, 250, 255; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-1: 22, 0, 77; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-2: 40, 3, 118; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-3: 66, 15, 160; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-4: 98, 33, 202; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-5: 134, 57, 244; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-6: 152, 74, 246; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-7: 179, 114, 248; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-8: 205, 156, 251; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-9: 228, 198, 253; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-10: 249, 240, 255; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-1: 61, 0, 77; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-2: 93, 5, 110; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-3: 127, 16, 144; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-4: 164, 33, 178; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-5: 200, 54, 212; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-6: 216, 72, 221; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-7: 229, 109, 229; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-8: 238, 149, 235; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-9: 246, 191, 243; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-10: 255, 236, 253; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-1: 77, 0, 48; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-2: 114, 3, 70; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-3: 151, 12, 91; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-4: 189, 25, 112; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-5: 226, 41, 133; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-6: 232, 53, 137; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-7: 238, 97, 158; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-8: 243, 143, 183; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-9: 249, 192, 213; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-10: 255, 242, 247; + /** + * @name + * @type color + * @group base + * @description + */ + --o-color-white: rgb(var(--o-white)); + /** + * @name + * @type color + * @group base + * @description + */ + --o-color-black: rgb(var(--o-black)); + /** + * @name + * @type color + * @group primary + * @description 常规 + */ + --o-color-primary1: rgb(var(--o-mixedgray-14)); + /** + * @name + * @type color + * @group primary + * @description 悬浮 + */ + --o-color-primary2: rgb(var(--o-mixedgray-13)); + /** + * @name + * @type color + * @group primary + * @description 激活 + */ + --o-color-primary3: rgb(var(--o-mixedgray-12)); + /** + * @name + * @type color + * @group primary + * @description 禁用 + */ + --o-color-primary4: rgb(var(--o-mixedgray-8)); + /** + * @name + * @type color + * @group primary + * @description 常规-浅 + */ + --o-color-primary1-light: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group primary + * @description 悬浮-浅 + */ + --o-color-primary2-light: rgb(var(--o-mixedgray-6)); + /** + * @name + * @type color + * @group primary + * @description 激活-浅 + */ + --o-color-primary3-light: rgb(var(--o-mixedgray-7)); + /** + * @name + * @type color + * @group primary + * @description 禁用-浅 + */ + --o-color-primary4-light: rgb(var(--o-mixedgray-6)); + /** + * @name + * @type color + * @group success + * @description 常规 + */ + --o-color-success1: rgb(var(--o-green-6)); + /** + * @name + * @type color + * @group success + * @description 悬浮 + */ + --o-color-success2: rgb(var(--o-green-4)); + /** + * @name + * @type color + * @group success + * @description 激活 + */ + --o-color-success3: rgb(var(--o-green-7)); + /** + * @name + * @type color + * @group success + * @description 禁用 + */ + --o-color-success4: rgb(var(--o-green-3)); + /** + * @name + * @type color + * @group success + * @description 常规-浅 + */ + --o-color-success1-light: rgb(var(--o-green-2)); + /** + * @name + * @type color + * @group success + * @description 悬浮-浅 + */ + --o-color-success2-light: rgb(var(--o-green-3)); + /** + * @name + * @type color + * @group success + * @description 激活-浅 + */ + --o-color-success3-light: rgb(var(--o-green-4)); + /** + * @name + * @type color + * @group success + * @description 禁用-浅 + */ + --o-color-success4-light: rgb(var(--o-green-1)); + /** + * @name + * @type color + * @group warning + * @description 常规 + */ + --o-color-warning1: rgb(var(--o-orange-6)); + /** + * @name + * @type color + * @group warning + * @description 悬浮 + */ + --o-color-warning2: rgb(var(--o-orange-4)); + /** + * @name + * @type color + * @group warning + * @description 激活 + */ + --o-color-warning3: rgb(var(--o-orange-7)); + /** + * @name + * @type color + * @group warning + * @description 禁用 + */ + --o-color-warning4: rgb(var(--o-orange-3)); + /** + * @name + * @type color + * @group warning + * @description 常规-浅 + */ + --o-color-warning1-light: rgb(var(--o-orange-2)); + /** + * @name + * @type color + * @group warning + * @description 悬浮-浅 + */ + --o-color-warning2-light: rgb(var(--o-orange-3)); + /** + * @name + * @type color + * @group warning + * @description 激活-浅 + */ + --o-color-warning3-light: rgb(var(--o-orange-4)); + /** + * @name + * @type color + * @group warning + * @description 禁用-浅 + */ + --o-color-warning4-light: rgb(var(--o-orange-1)); + /** + * @name + * @type color + * @group danger + * @description 常规 + */ + --o-color-danger1: rgb(var(--o-red-6)); + /** + * @name + * @type color + * @group danger + * @description 悬浮 + */ + --o-color-danger2: rgb(var(--o-red-4)); + /** + * @name + * @type color + * @group danger + * @description 激活 + */ + --o-color-danger3: rgb(var(--o-red-7)); + /** + * @name + * @type color + * @group danger + * @description 禁用 + */ + --o-color-danger4: rgb(var(--o-red-3)); + /** + * @name + * @type color + * @group danger + * @description 常规-浅 + */ + --o-color-danger1-light: rgb(var(--o-red-2)); + /** + * @name + * @type color + * @group danger + * @description 悬浮-浅 + */ + --o-color-danger2-light: rgb(var(--o-red-3)); + /** + * @name + * @type color + * @group danger + * @description 激活-浅 + */ + --o-color-danger3-light: rgb(var(--o-red-4)); + /** + * @name + * @type color + * @group danger + * @description 禁用-浅 + */ + --o-color-danger4-light: rgb(var(--o-red-1)); + /** + * @name + * @type color + * @group fill + * @description 一级填充:页面背景 + */ + --o-color-fill1: rgb(var(--o-mixedgray-3)); + /** + * @name + * @type color + * @group fill + * @description 二级填充:区块/卡片 + */ + --o-color-fill2: rgb(var(--o-mixedgray-4)); + /** + * @name + * @type color + * @group fill + * @description 三级填充:卡片 + */ + --o-color-fill3: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group control + * @description 常规,常用于边框 + */ + --o-color-control1: rgba(var(--o-mixedgray-14), 0.25); + /** + * @name + * @type color + * @group control + * @description 悬浮,常用于边框 + */ + --o-color-control2: rgba(var(--o-mixedgray-14), 0.6); + /** + * @name + * @type color + * @group control + * @description 激活,常用于边框 + */ + --o-color-control3: rgba(var(--o-mixedgray-14), 0.8); + /** + * @name + * @type color + * @group control + * @description 禁用,常用于边框 + */ + --o-color-control4: rgba(var(--o-mixedgray-14), 0.15); + /** + * @name + * @type color + * @group control + * @description 常规-浅,常用于背景 + */ + --o-color-control1-light: rgb(var(--o-mixedgray-7)); + /** + * @name + * @type color + * @group control + * @description 悬浮-浅,常用于背景 + */ + --o-color-control2-light: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group control + * @description 激活-浅,常用于背景 + */ + --o-color-control3-light: rgb(var(--o-mixedgray-6)); + /** + * @name + * @type color + * @group control + * @description 禁用-浅,常用于背景 + */ + --o-color-control4-light: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group control + * @description 很浅,常用于表格背景色 + */ + --o-color-control-light: rgb(var(--o-mixedgray-4)); + /** + * @name + * @type color + * @group info + * @description 一级/强调/标题 + */ + --o-color-info1: rgba(var(--o-mixedgray-14), 1.0); + /** + * @name + * @type color + * @group info + * @description 二级/次强调/正文 + */ + --o-color-info2: rgba(var(--o-mixedgray-14), 0.8); + /** + * @name + * @type color + * @group info + * @description 三级/辅助信息 + */ + --o-color-info3: rgba(var(--o-mixedgray-14), 0.6); + /** + * @name + * @type color + * @group info + * @description 置灰/禁用 + */ + --o-color-info4: rgba(var(--o-mixedgray-14), 0.4); + /** + * @name + * @type color + * @group info + * @description 一级/次强调/正文反色 + */ + --o-color-info1-inverse: rgba(var(--o-mixedgray-1), 1.0); + /** + * @name + * @type color + * @group info + * @description 二级/辅助信息反色 + */ + --o-color-info2-inverse: rgba(var(--o-mixedgray-1), 0.8); + /** + * @name + * @type color + * @group info + * @description 三级/辅助信息反色 + */ + --o-color-info3-inverse: rgba(var(--o-mixedgray-1), 0.6); + /** + * @name + * @type color + * @group info + * @description 置灰/禁用反色 + */ + --o-color-info4-inverse: rgba(var(--o-mixedgray-1), 0.4); + /** + * @name + * @type color + * @group mask + * @description 全局遮罩 + */ + --o-color-mask1: rgba(var(--o-mixedgray-1), 0.4); + /** + * @name + * @type color + * @group mask + * @description 局部遮罩 + */ + --o-color-mask2: rgba(var(--o-mixedgray-4), 0.2); + /** + * @name + * @type color + * @group link + * @description 常规 + */ + --o-color-link1: rgba(var(--o-deepblue-6), 1.0); + /** + * @name + * @type color + * @group link + * @description 悬浮 + */ + --o-color-link2: rgba(var(--o-deepblue-6), 0.7); + /** + * @name + * @type color + * @group link + * @description 激活 + */ + --o-color-link3: rgba(var(--o-deepblue-6), 0.9); + /** + * @name + * @type color + * @group link + * @description 禁用 + */ + --o-color-link4: rgba(var(--o-deepblue-6), 0.4); + /** + * @name 阴影1 + * @type shadow + * @group shadow + * @description 用于卡片、小弹窗、楼层阴影 + */ + --o-shadow-1: 0 3px 8px rgba(var(--o-mixedgray-1), 0.08); + /** + * @name 阴影2 + * @type shadow + * @group shadow + * @description 用于卡片悬浮阴影 + */ + --o-shadow-2: 0 2px 24px rgba(var(--o-mixedgray-1), 0.15); + /** + * @name 阴影3 + * @type shadow + * @group shadow + * @description 用于提示阴影 + */ + --o-shadow-3: 0 8px 40px rgba(var(--o-mixedgray-1), 0.1); + /** + * @name 间距1 + * @type gap + * @group gap + * @description 用于组件之间的间距1 + */ + --o-gap-1: 4px; + /** + * @name 间距2 + * @type gap + * @group gap + * @description 用于组件之间的间距2 + */ + --o-gap-2: 8px; + /** + * @name 间距3 + * @type gap + * @group gap + * @description 用于组件之间的间距3 + */ + --o-gap-3: 12px; + /** + * @name 间距4 + * @type gap + * @group gap + * @description 用于组件之间的间距4 + */ + --o-gap-4: 16px; + /** + * @name 间距5 + * @type gap + * @group gap + * @description 用于组件之间的间距5 + */ + --o-gap-5: 24px; + /** + * @name 间距6 + * @type gap + * @group gap + * @description 用于组件之间的间距6 + */ + --o-gap-6: 32px; + /** + * @name 间距7 + * @type gap + * @group gap + * @description 用于组件之间的间距7 + */ + --o-gap-7: 40px; + /** + * @name 间距8 + * @type gap + * @group gap + * @description 用于组件之间的间距8 + */ + --o-gap-8: 48px; + /** + * @name 间距9 + * @type gap + * @group gap + * @description 用于组件之间的间距9 + */ + --o-gap-9: 64px; + /** + * @name 间距10 + * @type gap + * @group gap + * @description 用于组件之间的间距10 + */ + --o-gap-10: 72px; + /** + * @name 超小尺寸 + * @type size + * @group control_size + * @description 超小尺寸 + */ + --o-control_size-2xs: 14px; + /** + * @name 小尺寸 + * @type size + * @group control_size + * @description 小尺寸 + */ + --o-control_size-xs: 16px; + /** + * @name 小尺寸 + * @type size + * @group control_size + * @description 小尺寸 + */ + --o-control_size-s: 24px; + /** + * @name 中尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-m: 32px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-l: 40px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-xl: 48px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-2xl: 56px; + /** + * @name 超小尺寸图标 + * @type size + * @group icon_size + * @description 超小尺寸图标 + */ + --o-icon_size-xs: 16px; + /** + * @name 小尺寸图标 + * @type size + * @group icon_size + * @description 小尺寸图标 + */ + --o-icon_size-s: 20px; + /** + * @name 中尺寸图标 + * @type size + * @group icon_size + * @description 中尺寸图标 + */ + --o-icon_size-m: 24px; + /** + * @name 大尺寸图标 + * @type size + * @group icon_size + * @description 大尺寸图标 + */ + --o-icon_size-l: 32px; + /** + * @name 超大尺寸图标 + * @type size + * @group icon_size + * @description 超大尺寸图标 + */ + --o-icon_size-xl: 40px; + /** + * @name 2xl尺寸图标 + * @type size + * @group icon_size + * @description 2xl尺寸图标 + */ + --o-icon_size-2xl: 48px; + /** + * @name 3xl尺寸图标 + * @type size + * @group icon_size + * @description 3xl尺寸图标 + */ + --o-icon_size-3xl: 56px; + /** + * @name 4xl尺寸图标 + * @type size + * @group icon_size + * @description 4xl尺寸图标 + */ + --o-icon_size-4xl: 64px; + /** + * @name 超小尺寸图标 + * @type size + * @group icon_size_control + * @description 超小尺寸控件图标(组件使用) + */ + --o-icon_size_control-xs: 16px; + /** + * @name 小尺寸图标 + * @type size + * @group icon_size_control + * @description 小尺寸控件图标(组件使用) + */ + --o-icon_size_control-s: 20px; + /** + * @name 中尺寸图标 + * @type size + * @group icon_size_control + * @description 中尺寸控件图标(组件使用) + */ + --o-icon_size_control-m: 24px; + /** + * @name 大尺寸图标 + * @type size + * @group icon_size_control + * @description 大尺寸控件图标(组件使用) + */ + --o-icon_size_control-l: 32px; + /** + * @name 超大尺寸图标 + * @type size + * @group icon_size_control + * @description 超大尺寸控件图标(组件使用) + */ + --o-icon_size_control-xl: 40px; + /** + * @name 一级数据展示 + * @type font + * @group font_size + * @description 一级数据展示 + */ + --o-font_size-display1: 56px; + /** + * @name 二级数据展示 + * @type font + * @group font_size + * @description 二级数据展示 + */ + --o-font_size-display2: 48px; + /** + * @name 三级数据展示 + * @type font + * @group font_size + * @description 三级数据展示 + */ + --o-font_size-display3: 40px; + /** + * @name 一级标题 + * @type font + * @group font_size + * @description 一级标题 + */ + --o-font_size-h1: 32px; + /** + * @name 二级标题 + * @type font + * @group font_size + * @description 二级标题 + */ + --o-font_size-h2: 24px; + /** + * @name 三级标题 + * @type font + * @group font_size + * @description 三级标题 + */ + --o-font_size-h3: 22px; + /** + * @name 四级标题 + * @type font + * @group font_size + * @description 四级标题 + */ + --o-font_size-h4: 20px; + /** + * @name 常规正文 + * @type font + * @group font_size + * @description 常规正文 + */ + --o-font_size-text1: 16px; + /** + * @name 大号正文 + * @type font + * @group font_size + * @description 大号正文 + */ + --o-font_size-text2: 18px; + /** + * @name 提示文本1 + * @type font + * @group font_size + * @description 提示文本1 + */ + --o-font_size-tip1: 14px; + /** + * @name 提示文本2 + * @type font + * @group font_size + * @description 提示文本2 + */ + --o-font_size-tip2: 12px; + /** + * @name 一级数据展示 + * @type font + * @group line_height + * @description 一级数据展示 + */ + --o-line_height-display1: 80px; + /** + * @name 二级数据展示 + * @type font + * @group line_height + * @description 二级数据展示 + */ + --o-line_height-display2: 64px; + /** + * @name 三级数据展示 + * @type font + * @group line_height + * @description 三级数据展示 + */ + --o-line_height-display3: 56px; + /** + * @name 一级标题 + * @type font + * @group line_height + * @description 一级标题 + */ + --o-line_height-h1: 44px; + /** + * @name 二级标题 + * @type font + * @group line_height + * @description 二级标题 + */ + --o-line_height-h2: 32px; + /** + * @name 三级标题 + * @type font + * @group line_height + * @description 三级标题 + */ + --o-line_height-h3: 30px; + /** + * @name 四级标题 + * @type font + * @group line_height + * @description 四级标题 + */ + --o-line_height-h4: 28px; + /** + * @name 正文 + * @type font + * @group line_height + * @description 正文 + */ + --o-line_height-text1: 24px; + /** + * @name 正文-大 + * @type font + * @group line_height + * @description 正文-大 + */ + --o-line_height-text2: 26x; + /** + * @name 提示文本1 + * @type font + * @group line_height + * @description 提示文本1 + */ + --o-line_height-tip1: 22px; + /** + * @name 提示文本2 + * @type font + * @group line_height + * @description 提示文本2 + */ + --o-line_height-tip2: 18px; + /** + * @name 超小尺寸圆角 + * @type size + * @group radius + * @description 超小尺寸圆角 + */ + --o-radius-xs: 4px; + /** + * @name 小尺寸圆角 + * @type size + * @group radius + * @description 小尺寸圆角 + */ + --o-radius-s: 4px; + /** + * @name 中尺寸圆角 + * @type size + * @group radius + * @description 中尺寸圆角 + */ + --o-radius-m: 4px; + /** + * @name 大尺寸圆角 + * @type size + * @group radius + * @description 大尺寸圆角 + */ + --o-radius-l: 4px; + /** + * @name 大尺寸圆角 + * @type size + * @group radius + * @description 大尺寸圆角,一般用于卡片 + */ + --o-radius-xl: 4px; + /** + * @name 超小尺寸控件圆角 + * @type size + * @group radius_control + * @description 超小尺寸控件圆角(组件使用) + */ + --o-radius_control-xs: 4px; + /** + * @name 小尺寸控件圆角 + * @type size + * @group radius_control + * @description 小尺寸控件圆角(组件使用) + */ + --o-radius_control-s: 4px; + /** + * @name 中尺寸控件圆角 + * @type size + * @group radius_control + * @description 中尺寸控件圆角(组件使用) + */ + --o-radius_control-m: 4px; + /** + * @name 大尺寸控件圆角 + * @type size + * @group radius_control + * @description 大尺寸控件圆角(组件使用) + */ + --o-radius_control-l: 4px; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于退出屏幕的动画 + */ + --o-duration-s: 200ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为standard-in时进入屏幕的动画 + */ + --o-duration-m1: 250ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为standard时开始、结束的动画 + */ + --o-duration-m2: 300ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized-in时进入屏幕的动画 + */ + --o-duration-m3: 400ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized时开始、结束的动画 + */ + --o-duration-l: 500ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized时,轮播切换动画 + */ + --o-duration-xl: 1000ms; + /** + * @name 线性动画曲线 + * @type animation + * @group easing + * @description 线性曲线 + */ + --o-easing-linear: cubic-bezier(0, 0, 1, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard: cubic-bezier(0.2, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard-in: cubic-bezier(0, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard-out: cubic-bezier(0.3, 0, 1, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized: cubic-bezier(0.2, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized-in: cubic-bezier(0.3, 0, 0.8, 0.15); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized-out: cubic-bezier(0.05, 0.7, 0.1, 1); + /** + * @name openUBMC主题色 + * @type color + * @group ubmc + * @description openUBMC主题色 + */ + --o-ubmc-color: 0, 113, 243; + --o-ubmc-color2: 4, 86, 209; + --o-ubmc-color3: 0, 128, 255; + --o-ubmc-color4: 10, 59, 128; + /** + * 先在这里覆盖一下使用蓝色 + */ + --o-color-ubmc: rgb(var(--o-ubmc-color)); + /** + * @name openUBMC主题色hover态 + * @type color + * @group ubmc + * @description openUBMC主题色hover态 + */ + --o-color-ubmc-hover: rgba(var(--o-ubmc-color2), 1); + /** + * @name openUBMC主题色激活态 + * @type color + * @group ubmc + * @description openUBMC主题色hover态 + */ + --o-color-ubmc-focus: rgba(var(--o-ubmc-color3), 1); + /** + * @name openUBMC主题色禁用态 + * @type color + * @group ubmc + * @description openUBMC主题色hover态 + */ + --o-color-ubmc-disabled: rgba(var(--o-ubmc-color4), 1); + /** + * @name openUBMC主题背景色 + * @type color + * @group ubmc + * @description openUBMC主题背景色 + */ + --o-color-ubmc-bg: rgba(26, 26, 28, 1); + --o-color-ubmc-bg2: rgba(26, 26, 28, 1); + /** + * @name openUBMC主题背景色悬浮态 + * @type color + * @group ubmc + * @description openUBMC主题背景色悬浮态 + */ + --o-color-ubmc-bg-hover: rgba(26, 26, 28, 0.4); + /** + * @name openUBMC主题背景色悬浮态2 + * @type color + * @group ubmc + * @description openUBMC主题背景色悬浮态2 + */ + --o-color-ubmc-bg-hover2: rgba(103, 163, 250, 0.4); + /** + * @name + * @type color + * @group primary + * @description 常规 + */ + --o-color-primary1: var(--o-color-ubmc); + --o-color-link1: var(--o-color-primary1); + /** + * @name + * @type color + * @group primary + * @description 悬浮 + */ + --o-color-primary2: var(--o-color-ubmc-hover); + /** + * @name + * @type color + * @group primary + * @description 激活 + */ + --o-color-primary3: var(--o-color-ubmc-focus); + /** + * @name + * @type color + * @group primary + * @description 禁用 + */ + --o-color-primary4: var(--o-color-ubmc-disabled); + /** + * @name + * @type color + * @group primary + * @description 常规-浅 + */ + --o-color-primary1-light: var(--o-color-ubmc); + /** + * @name + * @type color + * @group primary + * @description 悬浮-浅 + */ + --o-color-primary2-light: var(--o-color-ubmc-hover); + /** + * @name + * @type color + * @group primary + * @description 激活-浅 + */ + --o-color-primary3-light: var(--o-color-ubmc-focus); + /** + * @name + * @type color + * @group primary + * @description 禁用-浅 + */ + --o-color-primary4-light: var(--o-color-ubmc-disabled); + + /** + * @name + * @type color + * @group control + * @description 悬浮,常用于边框 + */ + --o-color-control2: rgba(var(--o-ubmc-color), 1); +} diff --git a/packages/openubmc/src/assets/style/theme/default-light.token.css b/packages/openubmc/src/assets/style/theme/default-light.token.css new file mode 100644 index 0000000000000000000000000000000000000000..92e17c870ae1a458971864402681fcda93a60de4 --- /dev/null +++ b/packages/openubmc/src/assets/style/theme/default-light.token.css @@ -0,0 +1,2065 @@ +/* theme: default|light */ +:root, +[data-o-theme='light'] { + /** + * @name + * @type palette + * @group white + * @description + */ + --o-white: 255, 255, 255; + /** + * @name + * @type palette + * @group black + * @description + */ + --o-black: 0, 0, 0; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-1: 232, 240, 255; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-2: 194, 213, 254; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-3: 157, 184, 253; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-4: 120, 153, 252; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-5: 83, 119, 251; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-6: 46, 83, 250; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-7: 29, 55, 207; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-8: 15, 32, 163; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-9: 6, 15, 120; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-10: 0, 4, 47; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-1: 232, 255, 238; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-2: 177, 239, 195; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-3: 128, 224, 158; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-4: 84, 208, 127; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-5: 45, 193, 101; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-6: 11, 177, 81; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-7: 7, 152, 72; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-8: 4, 127, 63; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-9: 2, 102, 53; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-10: 0, 77, 42; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-1: 255, 246, 232; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-2: 254, 226, 186; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-3: 253, 202, 140; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-4: 252, 176, 95; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-5: 251, 147, 50; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-6: 250, 115, 5; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-7: 207, 88, 3; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-8: 163, 64, 2; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-9: 120, 42, 1; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-10: 77, 24, 0; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-1: 255, 234, 232; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-2: 250, 185, 182; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-3: 245, 136, 134; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-4: 240, 87, 90; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-5: 235, 43, 52; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-6: 230, 0, 18; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-7: 192, 0, 22; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-8: 153, 0, 23; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-9: 115, 0, 21; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-10: 77, 0, 17; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-1: 255, 255, 255; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-2: 247, 247, 247; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-3: 242, 242, 242; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-4: 237, 237, 237; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-5: 227, 227, 227; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-6: 214, 214, 214; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-7: 186, 186, 186; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-8: 148, 148, 148; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-9: 110, 110, 110; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-10: 79, 79, 79; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-11: 48, 48, 48; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-12: 36, 36, 36; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-13: 18, 18, 18; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-14: 0, 0, 0; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-1: 255, 255, 255; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-2: 244, 245, 247; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-3: 237, 239, 242; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-4: 232, 234, 237; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-5: 224, 226, 230; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-6: 209, 214, 219; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-7: 179, 185, 191; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-8: 144, 150, 158; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-9: 104, 109, 117; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-10: 79, 84, 92; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-11: 55, 59, 66; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-12: 32, 35, 41; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-13: 18, 20, 23; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-14: 0, 0, 0; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-1: 255, 255, 232; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-2: 253, 251, 185; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-3: 251, 244, 139; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-4: 249, 233, 94; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-5: 247, 221, 49; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-6: 245, 205, 5; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-7: 203, 163, 3; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-8: 161, 124, 2; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-9: 119, 87, 1; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-10: 77, 54, 0; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-1: 251, 255, 232; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-2: 233, 245, 184; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-3: 213, 236, 139; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-4: 192, 226, 97; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-5: 169, 217, 59; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-6: 146, 207, 23; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-7: 116, 174, 15; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-8: 88, 142, 8; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-9: 63, 109, 3; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-10: 41, 77, 0; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-1: 232, 255, 249; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-2: 176, 240, 226; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-3: 125, 225, 207; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-4: 79, 221, 191; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-5: 38, 196, 177; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-6: 3, 181, 165; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-7: 2, 155, 147; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-8: 1, 129, 127; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-9: 0, 101, 103; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-10: 0, 73, 77; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-1: 232, 249, 255; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-2: 185, 233, 252; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-3: 138, 214, 249; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-4: 93, 192, 246; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-5: 48, 168, 243; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-6: 5, 142, 240; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-7: 3, 111, 199; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-8: 2, 83, 158; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-9: 1, 57, 117; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-10: 0, 34, 77; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-1: 245, 232, 255; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-2: 225, 192, 253; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-3: 203, 152, 251; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-4: 178, 113, 248; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-5: 152, 75, 246; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-6: 123, 37, 244; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-7: 92, 23, 202; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-8: 64, 12, 160; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-9: 41, 4, 118; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-10: 22, 0, 77; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-1: 255, 232, 253; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-2: 246, 188, 243; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-3: 238, 146, 235; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-4: 229, 107, 229; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-5: 216, 71, 221; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-6: 199, 37, 212; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-7: 163, 23, 178; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-8: 127, 13, 144; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-9: 93, 5, 110; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-10: 61, 0, 77; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-1: 255, 232, 240; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-2: 249, 185, 209; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-3: 243, 141, 182; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-4: 238, 98, 158; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-5: 232, 57, 139; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-6: 226, 18, 122; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-7: 189, 11, 106; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-8: 151, 6, 88; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-9: 114, 2, 69; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-10: 77, 0, 48; + /** + * @name + * @type color + * @group base + * @description + */ + --o-color-white: rgb(var(--o-white)); + /** + * @name + * @type color + * @group base + * @description + */ + --o-color-black: rgb(var(--o-black)); + /** + * @name + * @type color + * @group primary + * @description 常规 + */ + --o-color-primary1: rgb(var(--o-mixedgray-12)); + /** + * @name + * @type color + * @group primary + * @description 悬浮 + */ + --o-color-primary2: rgb(var(--o-mixedgray-11)); + /** + * @name + * @type color + * @group primary + * @description 激活 + */ + --o-color-primary3: rgb(var(--o-mixedgray-13)); + /** + * @name + * @type color + * @group primary + * @description 禁用 + */ + --o-color-primary4: rgb(var(--o-mixedgray-6)); + /** + * @name + * @type color + * @group primary + * @description 常规-浅 + */ + --o-color-primary1-light: rgb(var(--o-mixedgray-4)); + /** + * @name + * @type color + * @group primary + * @description 悬浮-浅 + */ + --o-color-primary2-light: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group primary + * @description 激活-浅 + */ + --o-color-primary3-light: rgb(var(--o-mixedgray-6)); + /** + * @name + * @type color + * @group primary + * @description 禁用-浅 + */ + --o-color-primary4-light: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group success + * @description 常规 + */ + --o-color-success1: rgb(var(--o-green-6)); + /** + * @name + * @type color + * @group success + * @description 悬浮 + */ + --o-color-success2: rgb(var(--o-green-4)); + /** + * @name + * @type color + * @group success + * @description 激活 + */ + --o-color-success3: rgb(var(--o-green-7)); + /** + * @name + * @type color + * @group success + * @description 禁用 + */ + --o-color-success4: rgb(var(--o-green-3)); + /** + * @name + * @type color + * @group success + * @description 常规-浅 + */ + --o-color-success1-light: rgb(var(--o-green-2)); + /** + * @name + * @type color + * @group success + * @description 悬浮-浅 + */ + --o-color-success2-light: rgb(var(--o-green-3)); + /** + * @name + * @type color + * @group success + * @description 激活-浅 + */ + --o-color-success3-light: rgb(var(--o-green-4)); + /** + * @name + * @type color + * @group success + * @description 禁用-浅 + */ + --o-color-success4-light: rgb(var(--o-green-1)); + /** + * @name + * @type color + * @group warning + * @description 常规 + */ + --o-color-warning1: rgb(var(--o-orange-6)); + /** + * @name + * @type color + * @group warning + * @description 悬浮 + */ + --o-color-warning2: rgb(var(--o-orange-4)); + /** + * @name + * @type color + * @group warning + * @description 激活 + */ + --o-color-warning3: rgb(var(--o-orange-7)); + /** + * @name + * @type color + * @group warning + * @description 禁用 + */ + --o-color-warning4: rgb(var(--o-orange-3)); + /** + * @name + * @type color + * @group warning + * @description 常规-浅 + */ + --o-color-warning1-light: rgb(var(--o-orange-2)); + /** + * @name + * @type color + * @group warning + * @description 悬浮-浅 + */ + --o-color-warning2-light: rgb(var(--o-orange-3)); + /** + * @name + * @type color + * @group warning + * @description 激活-浅 + */ + --o-color-warning3-light: rgb(var(--o-orange-4)); + /** + * @name + * @type color + * @group warning + * @description 禁用-浅 + */ + --o-color-warning4-light: rgb(var(--o-orange-1)); + /** + * @name + * @type color + * @group danger + * @description 常规 + */ + --o-color-danger1: rgb(var(--o-red-6)); + /** + * @name + * @type color + * @group danger + * @description 悬浮 + */ + --o-color-danger2: rgb(var(--o-red-4)); + /** + * @name + * @type color + * @group danger + * @description 激活 + */ + --o-color-danger3: rgb(var(--o-red-7)); + /** + * @name + * @type color + * @group danger + * @description 禁用 + */ + --o-color-danger4: rgb(var(--o-red-3)); + /** + * @name + * @type color + * @group danger + * @description 常规-浅 + */ + --o-color-danger1-light: rgb(var(--o-red-2)); + /** + * @name + * @type color + * @group danger + * @description 悬浮-浅 + */ + --o-color-danger2-light: rgb(var(--o-red-3)); + /** + * @name + * @type color + * @group danger + * @description 激活-浅 + */ + --o-color-danger3-light: rgb(var(--o-red-4)); + /** + * @name + * @type color + * @group danger + * @description 禁用-浅 + */ + --o-color-danger4-light: rgb(var(--o-red-1)); + /** + * @name + * @type color + * @group fill + * @description 一级填充:页面背景 + */ + --o-color-fill1: rgb(var(--o-mixedgray-2)); + /** + * @name + * @type color + * @group fill + * @description 二级填充:区块/卡片 + */ + --o-color-fill2: rgb(var(--o-mixedgray-1)); + /** + * @name + * @type color + * @group fill + * @description 三级填充:卡片 + */ + --o-color-fill3: rgb(var(--o-mixedgray-3)); + /** + * @name + * @type color + * @group control + * @description 常规,常用于边框 + */ + --o-color-control1: rgba(var(--o-mixedgray-14), 0.25); + /** + * @name + * @type color + * @group control + * @description 悬浮,常用于边框 + */ + --o-color-control2: rgba(var(--o-mixedgray-14), 0.6); + /** + * @name + * @type color + * @group control + * @description 激活,常用于边框 + */ + --o-color-control3: rgba(var(--o-mixedgray-14), 0.8); + /** + * @name + * @type color + * @group control + * @description 禁用,常用于边框 + */ + --o-color-control4: rgba(var(--o-mixedgray-14), 0.1); + /** + * @name + * @type color + * @group control + * @description 常规-浅,常用于背景 + */ + --o-color-control1-light: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group control + * @description 悬浮-浅,常用于背景 + */ + --o-color-control2-light: rgb(var(--o-mixedgray-3)); + /** + * @name + * @type color + * @group control + * @description 激活-浅,常用于背景 + */ + --o-color-control3-light: rgb(var(--o-mixedgray-4)); + /** + * @name + * @type color + * @group control + * @description 禁用-浅,常用于背景 + */ + --o-color-control4-light: rgb(var(--o-mixedgray-3)); + /** + * @name + * @type color + * @group control + * @description 很浅,常用于表格背景色 + */ + --o-color-control-light: rgb(var(--o-mixedgray-1)); + /** + * @name + * @type color + * @group info + * @description 一级/强调/标题 + */ + --o-color-info1: rgba(var(--o-mixedgray-14), 1); + /** + * @name + * @type color + * @group info + * @description 二级/次强调/正文 + */ + --o-color-info2: rgba(var(--o-mixedgray-14), 0.8); + /** + * @name + * @type color + * @group info + * @description 三级/辅助信息 + */ + --o-color-info3: rgba(var(--o-mixedgray-14), 0.6); + /** + * @name + * @type color + * @group info + * @description 置灰/禁用 + */ + --o-color-info4: rgba(var(--o-mixedgray-14), 0.4); + /** + * @name + * @type color + * @group info + * @description 一级/次强调/正文反色 + */ + --o-color-info1-inverse: rgba(var(--o-mixedgray-1), 1); + /** + * @name + * @type color + * @group info + * @description 二级/辅助信息反色 + */ + --o-color-info2-inverse: rgba(var(--o-mixedgray-1), 0.8); + /** + * @name + * @type color + * @group info + * @description 三级/辅助信息反色 + */ + --o-color-info3-inverse: rgba(var(--o-mixedgray-1), 0.6); + /** + * @name + * @type color + * @group info + * @description 置灰/禁用反色 + */ + --o-color-info4-inverse: rgba(var(--o-mixedgray-1), 0.4); + /** + * @name + * @type color + * @group mask + * @description 全局遮罩 + */ + --o-color-mask1: rgba(var(--o-mixedgray-14), 0.4); + /** + * @name + * @type color + * @group mask + * @description 局部遮罩 + */ + --o-color-mask2: rgba(var(--o-mixedgray-1), 0.2); + /** + * @name + * @type color + * @group link + * @description 常规 + */ + --o-color-link1: rgba(var(--o-deepblue-6), 1); + /** + * @name + * @type color + * @group link + * @description 悬浮 + */ + --o-color-link2: rgba(var(--o-deepblue-6), 0.7); + /** + * @name + * @type color + * @group link + * @description 激活 + */ + --o-color-link3: rgba(var(--o-deepblue-6), 0.9); + /** + * @name + * @type color + * @group link + * @description 禁用 + */ + --o-color-link4: rgba(var(--o-deepblue-6), 0.4); + /** + * @name 阴影1 + * @type shadow + * @group shadow + * @description 用于卡片、小弹窗、楼层阴影 + */ + --o-shadow-1: 0 3px 8px rgba(var(--o-mixedgray-13), 0.08); + /** + * @name 阴影2 + * @type shadow + * @group shadow + * @description 用于卡片悬浮阴影 + */ + --o-shadow-2: 0 2px 24px rgba(var(--o-mixedgray-13), 0.15); + /** + * @name 阴影3 + * @type shadow + * @group shadow + * @description 用于提示阴影 + */ + --o-shadow-3: 0 8px 40px rgba(var(--o-mixedgray-13), 0.1); + /** + * @name 间距1 + * @type gap + * @group gap + * @description 用于组件之间的间距1 + */ + --o-gap-1: 4px; + /** + * @name 间距2 + * @type gap + * @group gap + * @description 用于组件之间的间距2 + */ + --o-gap-2: 8px; + /** + * @name 间距3 + * @type gap + * @group gap + * @description 用于组件之间的间距3 + */ + --o-gap-3: 12px; + /** + * @name 间距4 + * @type gap + * @group gap + * @description 用于组件之间的间距4 + */ + --o-gap-4: 16px; + /** + * @name 间距5 + * @type gap + * @group gap + * @description 用于组件之间的间距5 + */ + --o-gap-5: 24px; + /** + * @name 间距6 + * @type gap + * @group gap + * @description 用于组件之间的间距6 + */ + --o-gap-6: 32px; + /** + * @name 间距7 + * @type gap + * @group gap + * @description 用于组件之间的间距7 + */ + --o-gap-7: 40px; + /** + * @name 间距8 + * @type gap + * @group gap + * @description 用于组件之间的间距8 + */ + --o-gap-8: 48px; + /** + * @name 间距9 + * @type gap + * @group gap + * @description 用于组件之间的间距9 + */ + --o-gap-9: 64px; + /** + * @name 间距10 + * @type gap + * @group gap + * @description 用于组件之间的间距10 + */ + --o-gap-10: 72px; + /** + * @name 超小尺寸 + * @type size + * @group control_size + * @description 超小尺寸 + */ + --o-control_size-2xs: 14px; + /** + * @name 小尺寸 + * @type size + * @group control_size + * @description 小尺寸 + */ + --o-control_size-xs: 16px; + /** + * @name 小尺寸 + * @type size + * @group control_size + * @description 小尺寸 + */ + --o-control_size-s: 24px; + /** + * @name 中尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-m: 32px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-l: 40px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-xl: 48px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-2xl: 56px; + /** + * @name 超小尺寸图标 + * @type size + * @group icon_size + * @description 超小尺寸图标 + */ + --o-icon_size-xs: 16px; + /** + * @name 小尺寸图标 + * @type size + * @group icon_size + * @description 小尺寸图标 + */ + --o-icon_size-s: 20px; + /** + * @name 中尺寸图标 + * @type size + * @group icon_size + * @description 中尺寸图标 + */ + --o-icon_size-m: 24px; + /** + * @name 大尺寸图标 + * @type size + * @group icon_size + * @description 大尺寸图标 + */ + --o-icon_size-l: 32px; + /** + * @name 超大尺寸图标 + * @type size + * @group icon_size + * @description 超大尺寸图标 + */ + --o-icon_size-xl: 40px; + /** + * @name 2xl尺寸图标 + * @type size + * @group icon_size + * @description 2xl尺寸图标 + */ + --o-icon_size-2xl: 48px; + /** + * @name 3xl尺寸图标 + * @type size + * @group icon_size + * @description 3xl尺寸图标 + */ + --o-icon_size-3xl: 56px; + /** + * @name 4xl尺寸图标 + * @type size + * @group icon_size + * @description 4xl尺寸图标 + */ + --o-icon_size-4xl: 64px; + /** + * @name 超小尺寸图标 + * @type size + * @group icon_size_control + * @description 超小尺寸控件图标(组件使用) + */ + --o-icon_size_control-xs: 16px; + /** + * @name 小尺寸图标 + * @type size + * @group icon_size_control + * @description 小尺寸控件图标(组件使用) + */ + --o-icon_size_control-s: 20px; + /** + * @name 中尺寸图标 + * @type size + * @group icon_size_control + * @description 中尺寸控件图标(组件使用) + */ + --o-icon_size_control-m: 24px; + /** + * @name 大尺寸图标 + * @type size + * @group icon_size_control + * @description 大尺寸控件图标(组件使用) + */ + --o-icon_size_control-l: 32px; + /** + * @name 超大尺寸图标 + * @type size + * @group icon_size_control + * @description 超大尺寸控件图标(组件使用) + */ + --o-icon_size_control-xl: 40px; + /** + * @name 一级数据展示 + * @type font + * @group font_size + * @description 一级数据展示 + */ + --o-font_size-display1: 56px; + /** + * @name 二级数据展示 + * @type font + * @group font_size + * @description 二级数据展示 + */ + --o-font_size-display2: 48px; + /** + * @name 三级数据展示 + * @type font + * @group font_size + * @description 三级数据展示 + */ + --o-font_size-display3: 40px; + /** + * @name 一级标题 + * @type font + * @group font_size + * @description 一级标题 + */ + --o-font_size-h1: 32px; + /** + * @name 二级标题 + * @type font + * @group font_size + * @description 二级标题 + */ + --o-font_size-h2: 24px; + /** + * @name 三级标题 + * @type font + * @group font_size + * @description 三级标题 + */ + --o-font_size-h3: 22px; + /** + * @name 四级标题 + * @type font + * @group font_size + * @description 四级标题 + */ + --o-font_size-h4: 20px; + /** + * @name 常规正文 + * @type font + * @group font_size + * @description 常规正文 + */ + --o-font_size-text1: 16px; + /** + * @name 大号正文 + * @type font + * @group font_size + * @description 大号正文 + */ + --o-font_size-text2: 18px; + /** + * @name 提示文本1 + * @type font + * @group font_size + * @description 提示文本1 + */ + --o-font_size-tip1: 14px; + /** + * @name 提示文本2 + * @type font + * @group font_size + * @description 提示文本2 + */ + --o-font_size-tip2: 12px; + /** + * @name 一级数据展示 + * @type font + * @group line_height + * @description 一级数据展示 + */ + --o-line_height-display1: 80px; + /** + * @name 二级数据展示 + * @type font + * @group line_height + * @description 二级数据展示 + */ + --o-line_height-display2: 64px; + /** + * @name 三级数据展示 + * @type font + * @group line_height + * @description 三级数据展示 + */ + --o-line_height-display3: 56px; + /** + * @name 一级标题 + * @type font + * @group line_height + * @description 一级标题 + */ + --o-line_height-h1: 44px; + /** + * @name 二级标题 + * @type font + * @group line_height + * @description 二级标题 + */ + --o-line_height-h2: 32px; + /** + * @name 三级标题 + * @type font + * @group line_height + * @description 三级标题 + */ + --o-line_height-h3: 30px; + /** + * @name 四级标题 + * @type font + * @group line_height + * @description 四级标题 + */ + --o-line_height-h4: 28px; + /** + * @name 正文 + * @type font + * @group line_height + * @description 正文 + */ + --o-line_height-text1: 24px; + /** + * @name 正文-大 + * @type font + * @group line_height + * @description 正文-大 + */ + --o-line_height-text2: 26px; + /** + * @name 提示文本1 + * @type font + * @group line_height + * @description 提示文本1 + */ + --o-line_height-tip1: 22px; + /** + * @name 提示文本2 + * @type font + * @group line_height + * @description 提示文本2 + */ + --o-line_height-tip2: 18px; + /** + * @name 超小尺寸圆角 + * @type size + * @group radius + * @description 超小尺寸圆角 + */ + --o-radius-xs: 4px; + /** + * @name 小尺寸圆角 + * @type size + * @group radius + * @description 小尺寸圆角 + */ + --o-radius-s: 4px; + /** + * @name 中尺寸圆角 + * @type size + * @group radius + * @description 中尺寸圆角 + */ + --o-radius-m: 4px; + /** + * @name 大尺寸圆角 + * @type size + * @group radius + * @description 大尺寸圆角 + */ + --o-radius-l: 4px; + /** + * @name 大尺寸圆角 + * @type size + * @group radius + * @description 大尺寸圆角,一般用于卡片 + */ + --o-radius-xl: 4px; + /** + * @name 超小尺寸控件圆角 + * @type size + * @group radius_control + * @description 超小尺寸控件圆角(组件使用) + */ + --o-radius_control-xs: 4px; + /** + * @name 小尺寸控件圆角 + * @type size + * @group radius_control + * @description 小尺寸控件圆角(组件使用) + */ + --o-radius_control-s: 4px; + /** + * @name 中尺寸控件圆角 + * @type size + * @group radius_control + * @description 中尺寸控件圆角(组件使用) + */ + --o-radius_control-m: 4px; + /** + * @name 大尺寸控件圆角 + * @type size + * @group radius_control + * @description 大尺寸控件圆角(组件使用) + */ + --o-radius_control-l: 4px; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于退出屏幕的动画 + */ + --o-duration-s: 200ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为standard-in时进入屏幕的动画 + */ + --o-duration-m1: 250ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为standard时开始、结束的动画 + */ + --o-duration-m2: 300ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized-in时进入屏幕的动画 + */ + --o-duration-m3: 400ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized时开始、结束的动画 + */ + --o-duration-l: 500ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized时,轮播切换动画 + */ + --o-duration-xl: 1000ms; + /** + * @name 线性动画曲线 + * @type animation + * @group easing + * @description 线性曲线 + */ + --o-easing-linear: cubic-bezier(0, 0, 1, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard: cubic-bezier(0.2, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard-in: cubic-bezier(0, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard-out: cubic-bezier(0.3, 0, 1, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized: cubic-bezier(0.2, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized-in: cubic-bezier(0.3, 0, 0.8, 0.15); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized-out: cubic-bezier(0.05, 0.7, 0.1, 1); + /** + * @name openUBMC主题色 + * @type color + * @group ubmc + * @description openUBMC主题色 + */ + --o-ubmc-color: 0, 113, 243; + --o-ubmc-color2: 51, 141, 245; + --o-ubmc-color3: 0, 84, 230; + --o-ubmc-color4: 153, 198, 250; + /** + * 先在这里覆盖一下使用蓝色 + */ + --o-color-ubmc: rgb(var(--o-ubmc-color)); + /** + * @name openUBMC主题色hover态 + * @type color + * @group ubmc + * @description openUBMC主题色hover态 + */ + --o-color-ubmc-hover: rgba(var(--o-ubmc-color2), 1); + /** + * @name openUBMC主题色激活态 + * @type color + * @group ubmc + * @description openUBMC主题色hover态 + */ + --o-color-ubmc-focus: rgba(var(--o-ubmc-color3), 1); + /** + * @name openUBMC主题色禁用态 + * @type color + * @group ubmc + * @description openUBMC主题色hover态 + */ + --o-color-ubmc-disabled: rgba(var(--o-ubmc-color4), 1); + /** + * @name openUBMC主题背景色 + * @type color + * @group ubmc + * @description openUBMC主题背景色 + */ + --o-color-ubmc-bg: rgba(247, 248, 250, 1); + --o-color-ubmc-bg2: rgba(235, 241, 250, 1); + /** + * @name openUBMC主题背景色悬浮态 + * @type color + * @group ubmc + * @description openUBMC主题背景色悬浮态 + */ + --o-color-ubmc-bg-hover: rgba(247, 248, 250, 0.4); + /** + * @name openUBMC主题背景色悬浮态2 + * @type color + * @group ubmc + * @description openUBMC主题背景色悬浮态2 + */ + --o-color-ubmc-bg-hover2: rgba(103, 163, 250, 0.4); + /** + * @name + * @type color + * @group primary + * @description 常规 + */ + --o-color-primary1: var(--o-color-ubmc); + --o-color-link1: var(--o-color-primary1); + /** + * @name + * @type color + * @group primary + * @description 悬浮 + */ + --o-color-primary2: var(--o-color-ubmc-hover); + /** + * @name + * @type color + * @group primary + * @description 激活 + */ + --o-color-primary3: var(--o-color-ubmc-focus); + /** + * @name + * @type color + * @group primary + * @description 禁用 + */ + --o-color-primary4: var(--o-color-ubmc-disabled); + /** + * @name + * @type color + * @group primary + * @description 常规-浅 + */ + --o-color-primary1-light: var(--o-color-ubmc); + /** + * @name + * @type color + * @group primary + * @description 悬浮-浅 + */ + --o-color-primary2-light: var(--o-color-ubmc-hover); + /** + * @name + * @type color + * @group primary + * @description 激活-浅 + */ + --o-color-primary3-light: var(--o-color-ubmc-focus); + /** + * @name + * @type color + * @group primary + * @description 禁用-浅 + */ + --o-color-primary4-light: var(--o-color-ubmc-disabled); + + /** + * @name + * @type color + * @group control + * @description 悬浮,常用于边框 + */ + --o-color-control2: rgba(var(--o-ubmc-color), 1); +} diff --git a/packages/openubmc/src/assets/style/theme/element-plus.scss b/packages/openubmc/src/assets/style/theme/element-plus.scss new file mode 100644 index 0000000000000000000000000000000000000000..a3ceb7d17b810b0069c6afd4a424d0fb526081ee --- /dev/null +++ b/packages/openubmc/src/assets/style/theme/element-plus.scss @@ -0,0 +1,43 @@ +:root { + --el-color-primary: var(--o-color-primary3) !important; + --el-border-radius-base: var(--o-radius_control-m) !important; + --el-border-color: var(--o-color-control1) !important; + --el-border-color-hover: var(--o-color-control2) !important; + --el-border-color-disabled: var(--o-color-control4) !important; + @include respond-to('phone') { + --el-border-radius-base: var(--o-radius_control-xs) !important; + } +} +.el-input { + .el-input__wrapper { + background-color: var(--o-color-fill2); + } +} +.el-input--large { + font-size: 16px; +} + +.el-select__wrapper { + .el-select__selection { + font-size: 16px; + } +} +.el-message { + &.mobile-message { + top: initial !important; + bottom: 80px; + border: none; + border-radius: 4px; + background-color: rgba(var(--o-mixedgray-14), 0.6); + padding: 9px 16px; + .el-icon { + display: none; + } + .el-message__content { + font-size: 14px; + line-height: 22px; + color: var(--o-color-info1-inverse); + } + + } +} diff --git a/packages/openubmc/src/assets/style/theme/index.scss b/packages/openubmc/src/assets/style/theme/index.scss new file mode 100644 index 0000000000000000000000000000000000000000..14d2aa491dcc29f2fbb6b2bc0b59d35059de5ef3 --- /dev/null +++ b/packages/openubmc/src/assets/style/theme/index.scss @@ -0,0 +1,61 @@ +@use "./media.token.scss" as *; + +@use "./o-theme/index.scss" as *; + + + +.hover-stress { + color: var(--o-color-info2); + @include hover { + color: var(--o-color-info1) !important; + } +} + +.hover-info1-to-info3 { + color: var(--o-color-info1); + @include hover { + color: var(--o-color-info3); + } +} + +.hover-underline { + --link-color-hover: var(--o-color-ubmc-hover); + --link-underline-x: 100%; + background: linear-gradient(0deg, var(--link-color-hover), var(--link-color-hover)) no-repeat var(--link-underline-x) bottom; + background-size: 0 1px; + transition: background-size var(--o-easing-standard) var(--o-duration-m2); + + @include hover { + background-size: var(--link-underline-x) 1px; + background-position-x: left; + } +} +a.hover-underline { + color: var(--o-color-ubmc); +} + +.hover-icon-rotate { + .o-icon { + transition: all var(--o-duration-m1) var(--o-easing-standard-in); + } + + @include hover { + .o-icon { + transform: rotate(-180deg); + } + } +} +.personal-wrapper { + display: flex; + .personal-left { + background-color: transparent; + width: 264px; + margin-right: var(--grid-column-gutter); + } + .personal-right { + flex-grow: 1; + @include respond-to('laptop-pc') { + width: var(--grid-17); + } + } +} diff --git a/packages/openubmc/src/assets/style/theme/media.token.scss b/packages/openubmc/src/assets/style/theme/media.token.scss new file mode 100644 index 0000000000000000000000000000000000000000..fee386e28ba15bbeb085e0a359531771ed9d8fd7 --- /dev/null +++ b/packages/openubmc/src/assets/style/theme/media.token.scss @@ -0,0 +1,157 @@ +@use '../mixin/screen.scss' as *; + +:root, +[data-o-theme='light'], +[data-o-theme='dark'] { + --layout-border-radius: 8px; + @include respond-to('pad_v') { + --layout-border-radius: 4px; + } + + @include respond-to('phone') { + --layout-border-radius: 4px; + } +} + +@include respond-to('laptop') { + :root, + [data-o-theme='light'], + [data-o-theme='dark'] { + /** + * @name 中尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-m: 28px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-l: 36px; + } +} + +@include respond-to('<=pad') { + :root, + [data-o-theme='light'], + [data-o-theme='dark'] { + /** + * @name 中尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-m: 28px; + } +} + +:root, +[data-o-theme='light'], +[data-o-theme='dark'] { + --o-gap-t2c: 40px; + --o-gap-section: 72px; + --o-gap-section-3: 12px; + --o-gap-section-4: 16px; + --o-gap-section-5: 24px; + --o-gap-section-6: 32px; + --o-gap-section-7: 40px; + --o-gap-section-8: 48px; + --layout-header-height: 72px; + + @include respond-to('laptop') { + --o-gap-t2c: 24px; + --o-gap-section: 56px; + --o-gap-section-3: 8px; + --o-gap-section-4: 12px; + --o-gap-section-5: 16px; + --o-gap-section-6: 24px; + --o-gap-section-7: 24px; + --o-gap-section-8: 40px; + --layout-header-height: 64px; + } + + @include respond-to('pad_h') { + --o-gap-t2c: 16px; + --o-gap-section: 40px; + --o-gap-section-3: 8px; + --o-gap-section-4: 8px; + --o-gap-section-5: 12px; + --o-gap-section-6: 16px; + --o-gap-section-7: 16px; + --o-gap-section-8: 24px; + --layout-header-height: 56px; + } + + @include respond-to('pad_v') { + --o-gap-t2c: 16px; + --o-gap-section: 32px; + --o-gap-section-3: 12px; + --o-gap-section-4: 16px; + --o-gap-section-5: 24px; + --o-gap-section-6: 28px; + --o-gap-section-7: 12px; + --layout-header-height: 48px; + } + + @include respond-to('phone') { + --o-gap-t2c: 12px; + --o-gap-section: 32px; + --o-gap-section-3: 8px; + --o-gap-section-4: 12px; + --o-gap-section-5: 16px; + --o-gap-section-6: 24px; + --o-gap-section-7: 12px; + --layout-header-height: 48px; + } +} + +:root, +[data-o-theme='light'], +[data-o-theme='dark'] { + @include respond-to('laptop') { + --o-icon_size-xs: 16px; + --o-icon_size-s: 20px; + --o-icon_size-m: 24px; + --o-icon_size-l: 32px; + --o-icon_size-xl: 40px; + --o-icon_size-2xl: 48px; + --o-icon_size-3xl: 48px; + --o-icon_size-4xl: 56px; + } + + @include respond-to('pad_h') { + --o-icon_size-xs: 16px; + --o-icon_size-s: 20px; + --o-icon_size-m: 24px; + --o-icon_size-l: 24px; + --o-icon_size-xl: 32px; + --o-icon_size-2xl: 40px; + --o-icon_size-3xl: 40px; + --o-icon_size-4xl: 48px; + } + + @include respond-to('pad_v') { + --o-icon_size-xs: 16px; + --o-icon_size-s: 20px; + --o-icon_size-m: 24px; + --o-icon_size-l: 24px; + --o-icon_size-xl: 32px; + --o-icon_size-2xl: 32px; + --o-icon_size-3xl: 40px; + --o-icon_size-4xl: 40px; + } + + @include respond-to('phone') { + --o-icon_size-xs: 16px; + --o-icon_size-s: 24px; + --o-icon_size-m: 24px; + --o-icon_size-l: 24px; + --o-icon_size-xl: 32px; + --o-icon_size-2xl: 32px; + --o-icon_size-3xl: 40px; + --o-icon_size-4xl: 40px; + } +} diff --git a/packages/openubmc/src/assets/style/theme/mixin.scss b/packages/openubmc/src/assets/style/theme/mixin.scss new file mode 100644 index 0000000000000000000000000000000000000000..4c606c0048ad0d6d5c60a223040b935447d31833 --- /dev/null +++ b/packages/openubmc/src/assets/style/theme/mixin.scss @@ -0,0 +1,89 @@ +// 断点定义 +$breakpoints: ( + // phone + 'phone': (0, 600px), + '>phone': 601px, + // pad + 'pad': (601px, 1200px), + '<=pad': (0, 1200px), + '>pad': 1201px, + // pad-v + 'pad_v': (601px, 840px), + '<=pad_v': (0, 840px), + '>pad_v': 841px, + // pad-h + 'pad_h': (841px, 1200px), + // laptop + 'laptop': (1201px, 1440px), + '<=laptop': (0, 1440px), + '>laptop': 1441px, + 'pad-laptop': (601px, 1440px), + 'pad_v-laptop': (841px, 1440px), + 'laptop-pc': (1201px, 1680px), + 'pc': (1441px, 1680px), + 'pc_l': (1681px, 1920px), + '>pc_l': 1921px +); + +@mixin respond-to($breakname) { + $bp: map-get($breakpoints, $breakname); + @if type-of($bp) == 'list' { + $min: nth($bp, 1); + $max: nth($bp, 2); + @if $min == 0 { + @media (max-width: $max) { + @content; + } + } @else { + @media (min-width: $min) and (max-width: $max) { + @content; + } + } + } @else { + @media (min-width: $bp) { + @content; + } + } +} + +@mixin hoverable($hover: hover) { + @media (hover: $hover) { + @content; + } +} + +@mixin hover() { + @media (hover: hover) { + &:hover { + @content; + } + } +} + +@mixin me-hover() { + @content; + @media (hover: hover) { + &:hover { + @content; + } + } +} + +@mixin x-hover() { + transition: all var(--o-duration-m1) var(--o-easing-standard-in); + @include hover { + transform: rotate(180deg); + } +} + +@mixin x-svg-hover() { + overflow: hidden; + svg { + transition: all var(--o-duration-m1) var(--o-easing-standard-in); + } + @include hover { + svg { + transform: rotate(180deg); + } + } +} diff --git a/packages/openubmc/src/assets/svg-icons/empty.svg b/packages/openubmc/src/assets/svg-icons/empty.svg new file mode 100644 index 0000000000000000000000000000000000000000..3d5fb18b481f16f72226d869539a6756c682bccb --- /dev/null +++ b/packages/openubmc/src/assets/svg-icons/empty.svg @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/openubmc/src/assets/svg-icons/gitcode.svg b/packages/openubmc/src/assets/svg-icons/gitcode.svg new file mode 100644 index 0000000000000000000000000000000000000000..f5ce3889c6b6d57e560d09f9c17d54d8f3f714f3 --- /dev/null +++ b/packages/openubmc/src/assets/svg-icons/gitcode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/openubmc/src/assets/svg-icons/logo-white.svg b/packages/openubmc/src/assets/svg-icons/logo-white.svg new file mode 100644 index 0000000000000000000000000000000000000000..9e07b88155b2484267aec03f95e9567bac72e8af --- /dev/null +++ b/packages/openubmc/src/assets/svg-icons/logo-white.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/packages/openubmc/src/assets/svg-icons/logo.svg b/packages/openubmc/src/assets/svg-icons/logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..87f55108845cf7ff9a4443269c278a2d5758e741 --- /dev/null +++ b/packages/openubmc/src/assets/svg-icons/logo.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/packages/openubmc/src/assets/svg-icons/mail.svg b/packages/openubmc/src/assets/svg-icons/mail.svg new file mode 100644 index 0000000000000000000000000000000000000000..a5905d9d9f205dbb433f96d2e6105e48351c119f --- /dev/null +++ b/packages/openubmc/src/assets/svg-icons/mail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/openubmc/src/assets/title-bg.png b/packages/openubmc/src/assets/title-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..1a0338c7cadf145c1ef346758bac79ae376adb3f Binary files /dev/null and b/packages/openubmc/src/assets/title-bg.png differ diff --git a/packages/openubmc/src/components/AppFooter.vue b/packages/openubmc/src/components/AppFooter.vue new file mode 100644 index 0000000000000000000000000000000000000000..25f0abb56310d32ef2dc646e5bc1e726cf45ff68 --- /dev/null +++ b/packages/openubmc/src/components/AppFooter.vue @@ -0,0 +1,294 @@ + + + + + + diff --git a/packages/openubmc/src/components/AppHeader.vue b/packages/openubmc/src/components/AppHeader.vue new file mode 100644 index 0000000000000000000000000000000000000000..62af07bf18cff531e640012838e54d33b9a6738b --- /dev/null +++ b/packages/openubmc/src/components/AppHeader.vue @@ -0,0 +1,287 @@ + + + + + diff --git a/packages/openubmc/src/components/CommonLayout.vue b/packages/openubmc/src/components/CommonLayout.vue new file mode 100644 index 0000000000000000000000000000000000000000..c2c09545b76452158e8aa9a64d5fc89a90548e23 --- /dev/null +++ b/packages/openubmc/src/components/CommonLayout.vue @@ -0,0 +1,29 @@ + + + + + \ No newline at end of file diff --git a/packages/openubmc/src/components/HeaderNav.vue b/packages/openubmc/src/components/HeaderNav.vue new file mode 100644 index 0000000000000000000000000000000000000000..4f1474e60ddb24ee66105a39061a2e92f351434e --- /dev/null +++ b/packages/openubmc/src/components/HeaderNav.vue @@ -0,0 +1,67 @@ + + + + diff --git a/packages/openubmc/src/components/LoadingArc.vue b/packages/openubmc/src/components/LoadingArc.vue new file mode 100644 index 0000000000000000000000000000000000000000..2d6e9868af68782e521d6b823a66d361c34569d6 --- /dev/null +++ b/packages/openubmc/src/components/LoadingArc.vue @@ -0,0 +1,61 @@ + + \ No newline at end of file diff --git a/packages/openubmc/src/components/SectionCard.vue b/packages/openubmc/src/components/SectionCard.vue new file mode 100644 index 0000000000000000000000000000000000000000..9c908ca765ca5efb588668726e390b7aaae3a875 --- /dev/null +++ b/packages/openubmc/src/components/SectionCard.vue @@ -0,0 +1,26 @@ + + \ No newline at end of file diff --git a/packages/openubmc/src/components/ToggleRadios.vue b/packages/openubmc/src/components/ToggleRadios.vue new file mode 100644 index 0000000000000000000000000000000000000000..d0a69ffce4138d81d9c6c33a516cb265081cf804 --- /dev/null +++ b/packages/openubmc/src/components/ToggleRadios.vue @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/packages/openubmc/src/composables/useCommonFilters.ts b/packages/openubmc/src/composables/useCommonFilters.ts new file mode 100644 index 0000000000000000000000000000000000000000..c36d3b42f53bfc095bc2fb1c78a36a93928721ee --- /dev/null +++ b/packages/openubmc/src/composables/useCommonFilters.ts @@ -0,0 +1,43 @@ +import i18n from '@/i18n'; +import { computed, ref } from 'vue'; + +const contributionTypeLabelMap = { + pr: 'PR', + issue: 'Issue', + comment: 'Comment', +} as Record; + +export default function useCommonFilters(_i18n = i18n.global) { + const contributionTypeOptions = computed(() => [ + { label: _i18n.t('common.home.prs'), value: 'pr' }, + { label: _i18n.t('common.home.issues'), value: 'issue' }, + { label: _i18n.t('common.home.comments'), value: 'comment' }, + ]); + const contributionType = ref(contributionTypeOptions.value[0].value); + const contributionTypeLabel = computed(() => contributionTypeLabelMap[contributionType.value]); + + const today = new Date(); + today.setHours(0, 0, 0, 0); + const initialTimeRange = [new Date(2024, 10, 1), today]; + const timeRange = ref([]); + const disabledTimeRange = (date: Date) => { + return date < initialTimeRange[0] || date > initialTimeRange[1]; + }; + + const commentTypeOptions = computed(() => [ + { label: _i18n.t('common.from.all'), value: '' }, + { label: _i18n.t('common.General'), value: 'normal' }, + { label: _i18n.t('common.Order'), value: 'command' }, + ]); + const commentType = ref(''); + + return { + contributionTypeOptions, + contributionType, + contributionTypeLabel, + timeRange, + disabledTimeRange, + commentTypeOptions, + commentType, + }; +} diff --git a/packages/openubmc/src/config/home.ts b/packages/openubmc/src/config/home.ts new file mode 100644 index 0000000000000000000000000000000000000000..cdec25d41f90283c080718bc4f0bf61e50caac83 --- /dev/null +++ b/packages/openubmc/src/config/home.ts @@ -0,0 +1,123 @@ +export const FOOTER_LINK = [ + { + title: '关于openUBMC', + children: [ + { + title: '社区组织', + link: 'https://www.openubmc.cn/organizations', + }, + { + title: '政策规则', + link: 'https://www.openubmc.cn/charter', + }, + ], + }, + { + title: '新闻和资讯', + children: [ + { + title: '新闻资讯', + link: 'https://www.openubmc.cn/news', + }, + { + title: '博客', + link: 'https://www.openubmc.cn/blogs', + }, + { + title: '技术白皮书', + link: 'https://www.openubmc.cn/whitepaper', + }, + ], + }, + { + title: '获取与下载', + children: [ + { + title: '社区发行版', + link: 'https://www.openubmc.cn/download', + }, + { + title: '应用市场', + link: 'https://www.openubmc.cn/marketplace', + }, + ], + }, + { + title: '支持与服务', + children: [ + { + title: '文档中心', + link: 'https://www.openubmc.cn/docs', + }, + { + title: '常见FAQ', + link: 'https://www.openubmc.cn/docs/zh/development/faq/general.html', + }, + { + title: '漏洞管理', + link: 'https://www.openubmc.cn/security-advisories', + }, + ], + }, + { + title: '互动与交流', + children: [ + { + title: '社区论坛', + link: import.meta.env.VITE_FORUM_URL, + }, + { + title: '邮件列表', + link: 'https://www.openubmc.cn/maillist', + }, + ], + }, + { + title: '贡献与成长', + children: [ + { + title: 'SIG中心', + link: 'https://www.openubmc.cn/sig', + }, + { + title: '贡献攻略', + link: 'https://www.openubmc.cn/contribution', + }, + { + title: 'CLA签署', + link: 'https://clasign.osinfra.cn/sign/gitee_openubmc-1732941016829438030?lang=zh', + }, + ], + }, +]; + +export const FRIEND_LINK = [ + { + title: '全球计算联盟', + link: 'https://gccorg.com/', + }, + { + title: '鲲鹏社区', + link: 'https://www.hikunpeng.com/zh/', + }, + { + title: '昇腾社区', + link: 'https://www.hiascend.com/zh/', + }, + { + title: 'openEuler', + link: 'https://www.openeuler.org/zh/', + }, + { + title: 'openGauss', + link: 'https://opengauss.org/zh/', + }, + { + title: '昇思MindSpore', + link: 'https://www.mindspore.cn/', + }, + { + title: 'openFuyao', + link: 'https://www.openfuyao.cn/', + }, +]; diff --git a/packages/openubmc/src/config/url-config.ts b/packages/openubmc/src/config/url-config.ts new file mode 100644 index 0000000000000000000000000000000000000000..081e9478255f3e229c8c06cfd7a6119c3c73b98f --- /dev/null +++ b/packages/openubmc/src/config/url-config.ts @@ -0,0 +1,7 @@ +const RECORDAL_URL = 'https://beian.miit.gov.cn/#/Integrated/index'; +const GITCODE_URL = 'https://gitcode.com/'; +const MAILWEB_URL = 'https://mailweb.openubmc.cn/'; + +const BEIAN_URL = 'https://beian.mps.gov.cn/#/query/webSearch' + +export { RECORDAL_URL, GITCODE_URL, MAILWEB_URL, BEIAN_URL }; diff --git a/packages/openubmc/src/i18n/footer/index.ts b/packages/openubmc/src/i18n/footer/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..00407a0561867e04b833ba2e9a1aef4b9424b916 --- /dev/null +++ b/packages/openubmc/src/i18n/footer/index.ts @@ -0,0 +1,5 @@ +import zh from './zh'; + +export default { + zh, +}; diff --git a/packages/openubmc/src/i18n/footer/zh.ts b/packages/openubmc/src/i18n/footer/zh.ts new file mode 100644 index 0000000000000000000000000000000000000000..6e3ba6d09927d01520eef5079dc1c064289c83c4 --- /dev/null +++ b/packages/openubmc/src/i18n/footer/zh.ts @@ -0,0 +1,18 @@ +export default { + learn: '学习', + documentCenter: '文档中心', + videoTeaching: '视频教学', + community: '社区', + sigCenter: 'SIG中心', + forums: '论坛', + support: '支持', + FAQs: '常见FAQ', + problemFeedback: '问题反馈', + friendlyLink: '友情链接', + copyright: '版权所有 © {year} openUBMC 保留一切权利', + recordal: '粤A2-20044005号-293', + beian: '粤公网安备 44030002006086号', + privacyPolicy: '隐私政策', + legalStatement: '法律声明', + aboutCookies: '关于cookies', +}; diff --git a/packages/openubmc/src/i18n/header/index.ts b/packages/openubmc/src/i18n/header/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..3d6aa3c91005bd6265267e50859b22566eacdd4f --- /dev/null +++ b/packages/openubmc/src/i18n/header/index.ts @@ -0,0 +1,5 @@ +import zh from "./zh"; + +export default { + zh, +} \ No newline at end of file diff --git a/packages/openubmc/src/i18n/header/zh.ts b/packages/openubmc/src/i18n/header/zh.ts new file mode 100644 index 0000000000000000000000000000000000000000..3267bccb1c3db58d0d5a95405bf02e47321aeff5 --- /dev/null +++ b/packages/openubmc/src/i18n/header/zh.ts @@ -0,0 +1,38 @@ +export default { + home: '首页', + development: '开发', + softwareCenter: '软件中心', + code: '代码仓', + testPlatform: '测试平台', + learn: '学习', + docsCenter: '文档中心', + videoTeach: '视频教学', + community: '社区', + orgStructure: '组织架构', + policyRules: '政策规则', + sig: 'SIG中心', + maillist: '邮件列表', + contributionGuide: '贡献攻略', + forum: '社区论坛', + growth: '开发者成长', + cla: 'CLA签署', + trends: '动态', + news: '新闻资讯', + blogs: '博客', + support: '支持', + faq: '常见FAQ', + feedback: '问题反馈', + security: '漏洞管理', + search: '搜索API、文档、教程、动态...', + search2: '搜索', + recentSearch: '最近搜索', + hotSearch: '热门搜索', + minisite: '活动大赛', + notOnline: '待上线', + releasePlatform: '发布平台', + communityReleases: '社区发行版', + download: '下载', + marketplace: '应用市场', + docs: '文档', + resourceCenter: '资源中心', +}; diff --git a/packages/openubmc/src/i18n/index.ts b/packages/openubmc/src/i18n/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..dd4f88dc019b0612305e6da959c472b79796ae65 --- /dev/null +++ b/packages/openubmc/src/i18n/index.ts @@ -0,0 +1,20 @@ +import { createI18n } from 'vue-i18n'; +import zhLanguage from './lang/zhLanguage'; +import enLanguage from './lang/enLanguage'; +import header from './header' +import footer from './footer' + +export default createI18n({ + legacy: false, + locale: 'zh', + messages: { + zh: { + common: zhLanguage, + header: header.zh, + footer: footer.zh + }, + en: { + common: enLanguage, + }, + }, +}); diff --git a/packages/openubmc/src/i18n/lang/enLanguage.ts b/packages/openubmc/src/i18n/lang/enLanguage.ts new file mode 100644 index 0000000000000000000000000000000000000000..a90963dbefa5f5e5702ce6e7fd508dfb7651835e --- /dev/null +++ b/packages/openubmc/src/i18n/lang/enLanguage.ts @@ -0,0 +1,157 @@ +export default { + languageName: 'English', + datastat: 'DATASTAT', + nav: { + overview: 'Overview', + contributors: 'Detail', + }, + home: { + moreData: 'Explore more details', + user: 'User', + contributors: 'Contributor', + partners: 'Organization Member', + prs: 'PR', + issues: 'Issue', + comments: 'Comment', + sigs: 'SIG', + repos: 'Repository', + isv: 'ISV', + }, + from: { + type: 'Metric', + timeRange: 'Time Range', + lastonemonth: 'Last Month', + lasthalfyear: 'Last 6 Months', + lastoneyear: 'Last Year', + all: 'All', + displayRange: 'Display Range', + pleasePartner: 'Please enter an organization name', + version: 'Version statistics', + LOC: 'LOC', + }, + startDate: 'Start date', + endDate: 'End date', + products: 'SIG Output', + productQuality: 'Output Quality', + processQuality: 'Process Quality', + tissueRobustness: 'Organizational Robustness', + influence: 'Influence', + vitalIndex: 'Activeness Index', + communityAverage: 'Community Average', + PRMerged: 'PR meraged', + IssueResolve: 'Issue resolve', + PREfficiency: 'PR efficiency', + toHome: 'Go to home page', + MailingList: 'Mailing List', + DynamicContribute: 'DynamicContribute', + channel: 'IRC Channel', + warehouse: 'Warehouse', + SIGContribution: 'SIG Contribution', + D1Number: 'D1', + SIGNumber: 'SIGNumber', + contribute: 'Contribute', + Maintainer: 'Maintainer', + communityRankings: 'Ranking', + combinedActivity: 'Overall Activeness', + contributionsTitle: 'Community Contribution data', + userContributor: 'Contribution by Individuals', + companyContributor: 'Contribution by Organizations', + groupActive: 'SIG Activity Overview', + Currentcontributionranking: 'Total Contributions', + Pleaseenterunitnameforsearch: 'Please enter an organization name', + Numbercontributors: 'Number of Contributors', + Contributordistribution: 'Contributor Distribution', + Commitcontribution: 'Submit Contributions', + participation: 'participation', + review: 'review', + Mergerequest: 'Merge request', + NeedsProblems: 'Needs & Problems', + slogan: + 'Related technology exploration in tuning field; Ai-assisted performance analysis', + ecological: 'Technology Ecosystem', + staffContributor: 'Employee Contributors', + active: 'Activeness', + groupRelations: 'Relationship Between TC Members and SIGs', + companyRelations: 'Relationship Between Organizations and SIGs', + currentVitalityIndex: 'Current Activeness Index', + historicalVitalityIndicators: 'Activeness Index Trends', + Note: 'Note: Members are sorted by last names alphabetically', + Committee: 'TC Member', + company: 'Organization', + interestGroup: 'SIG', + ranking: 'Rank', + Number: 'Number', + backVitality: 'Back to Overview', + searchTips: + 'The organization you are searching for has no contributions under the current search criteria. Try different search criteria. ', + de: 'in', + viewDetail: 'View Detail', + Participated1: 'participated in', + Participated2: 'special interest groups', + Participated3: 'a total of', + Participated4: 'unit members participated', + footer: { + about: 'About Data', + privacy: 'Privacy Policy', + privacyLink: `${import.meta.env.VITE_MAIN_DOMAIN_URL}/en/other/privacy/`, + legal: 'Legal Notice', + legalLink: `${import.meta.env.VITE_MAIN_DOMAIN_URL}/en/other/legal/`, + atom: 'openEuler, an open source OS incubated by the OpenAtom Foundation for digital infrastructure in server, cloud, edge, embedded scenarios, across Arm, x86, RISC-V, LoongArch, PowerPC, and SW-64 architectures.', + copyright: 'Copyright © {year} openEuler. All rights reserved.', + filingText1: 'J. ICP B. No. 2020036654-1', + filingText2: 'J.G.W.A.B. No. 11030102011597', + }, + about: { + explain: 'Data Indicator Interpretation ', + definition: 'Data definition ', + name: 'Name', + }, + prevPage: 'Prev', + nextPage: 'Next', + repositoryTechnology: 'Repository Management/Technology Innovation', + numberofsigs: 'Number of SIGs', + averageActiveness: 'Average Activeness', + governanceAndOperation: 'Community Governance and Operations', + viewOrganizationDetail: 'View Organization Contribution Details', + viewSIGDetail: 'View SIG Contribution Details', + contributors: 'Contributors', + SIGParticipation: 'SIG Participation', + noData: 'No data available', + noContributor: 'No contributor', + noSIGPart: 'No SIG participation', + enterGitee: 'Please enter a GitCode ID', + enterSIG: 'Please enter a SIG', + enterWord: 'Please enter a keyword search', + noMentor: 'No mentor', + CurrentSIG: 'Current SIG', + enterName: 'Please enter a name', + ViewOnPC1: 'View on PC for more details', + ViewOnPC2: 'and better experience', + introduction: 'Introduction', + individual: 'individual resume', + community: 'Community roles', + filtrate: 'Filtrate', + general: 'General', + key: 'Key', + display: 'Display Per Page', + bar: 'bar', + total: 'Total', + result: 'Bar Result', + create: 'Create', + task: 'task', + comment: 'Comment', + In: 'In', + login: 'Login', + personalCenter: 'Personal Center', + logout: 'Logout', + Confirm: 'Confirm', + Cancel: 'Cancel', + titleConfirm: + 'Are you sure you want to exit? The page is refreshed after you exit.', + pleaseConfirm: 'Confirm', + General: 'General Comment', + Order: 'Order Comment', + Goto: 'Go to', + page: '', + zhcontribut: '', +}; diff --git a/packages/openubmc/src/i18n/lang/zhLanguage.ts b/packages/openubmc/src/i18n/lang/zhLanguage.ts new file mode 100644 index 0000000000000000000000000000000000000000..50ca2e997ff9dce8745a90c50eb6ff6f343c8553 --- /dev/null +++ b/packages/openubmc/src/i18n/lang/zhLanguage.ts @@ -0,0 +1,154 @@ +export default { + languageName: '中文', + datastat: '贡献看板', + nav: { + overview: '数据总览', + contributors: '社区贡献', + }, + home: { + moreData: '更多贡献数据', + user: '下载量 Download ', + contributors: '贡献者 Contributor', + partners: '单位成员 Organization Member', + prs: '合并请求 PR', + issues: '需求&问题 Issue', + comments: '评审 Comment', + sigs: '特别兴趣小组 SIG', + repos: '代码仓库 Repository', + isv: '满足兼容 ISV', + }, + from: { + type: '度量指标', + timeRange: '统计周期', + lastonemonth: '最近一个月内', + lasthalfyear: '最近半年内', + lastoneyear: '最近一年内', + displayRange: '显示范围', + pleasePartner: '请输入单位名称搜索', + all: '全部', + version: '版本统计', + LOC: '代码行数 LOC', + }, + startDate: 'Start date', + endDate: 'End date', + products: 'sig输出件', + productQuality: 'sig输出质量', + processQuality: '过程质量', + tissueRobustness: '组织稳健性', + influence: '影响力', + vitalIndex: '活力指数', + communityAverage: '社区平均', + PRMerged: '合并PR', + IssueResolve: 'Issue解决率', + PREfficiency: 'PR 效率', + D1Number: 'D1贡献者数量', + Maintainer: 'Maintainer数量', + communityRankings: '社区排名', + combinedActivity: '综合活跃度', + contributionsTitle: '社区贡献数据', + userContributor: '个人成员贡献', + companyContributor: '单位成员贡献', + currentVitalityIndex: '当前活力指数', + historicalVitalityIndicators: '活力指标历史趋势', + groupActive: '特别兴趣小组活跃度全景图', + Contributordistribution: '贡献者分布', + Commitcontribution: '提交贡献', + participation: '参与的', + ecological: '技术生态', + NeedsProblems: '需求&问题', + staffContributor: '员工贡献', + SIGContribution: 'SIG贡献', + SIGNumber: 'SIG数量', + review: '评审', + Currentcontributionranking: '累计贡献', + Pleaseenterunitnameforsearch: '请输入单位名称搜索', + Numbercontributors: '贡献者数量', + contribute: '贡献', + DynamicContribute: '贡献动态', + toHome: '前往主页', + MailingList: '邮件列表', + channel: 'IRC频道', + warehouse: '仓库', + slogan: '调优领域相关技术探索;AI辅助性能分析', + active: '活跃度', + Mergerequest: '合并请求', + groupRelations: '技术委员会委员与特别兴趣小组关系', + companyRelations: '单位成员与特别兴趣小组关系', + Note: '注:以下按姓氏拼音排序', + Committee: '技术委员会委员', + company: '单位成员', + interestGroup: '特别兴趣小组', + ranking: '排名', + backVitality: '回到数据总览', + searchTips: '您搜索的组织在当前条件下暂无贡献,请尝试其他搜索条件', + de: '的', + viewDetail: '查看详情', + Participated1: '共参与', + Participated2: '个特别兴趣小组', + Participated3: '共有', + Participated4: '个单位成员参与', + Number: '序号', + footer: { + about: '关于数据', + privacy: '隐私政策', + privacyLink: `${import.meta.env.VITE_MAIN_DOMAIN_URL}/zh/other/privacy/`, + legal: '法律声明', + legalLink: `${import.meta.env.VITE_MAIN_DOMAIN_URL}/zh/other/legal/`, + atom: 'openEuler是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持ARM、x86、RISC-V、loongArch、PowerPC、SW-64等多样性计算架构', + copyright: '版权所有 © {year} openEuler 保留一切权利', + filingText1: '京ICP备2020036654号-1', + filingText2: '京公网安备 11030102011597 号', + }, + about: { + explain: '数据指标解释 ', + definition: '数据定义 ', + name: '指标名称', + }, + prevPage: '上一页', + nextPage: '下一页', + repositoryTechnology: '代码仓管理/技术创新', + numberofsigs: '特别兴趣小组数量', + averageActiveness: '平均活跃度', + governanceAndOperation: '社区治理运营', + viewOrganizationDetail: '查看单位成员贡献详情', + viewSIGDetail: '查看特别兴趣小组贡献详情', + contributors: '贡献者', + SIGParticipation: '参与的SIG', + noData: '暂无数据', + noContributor: '暂无贡献者', + noSIGPart: '暂未参与SIG', + enterGitee: '请输入GitCode ID搜索', + enterSIG: '请输入SIG名称搜索', + enterWord: '请输入关键词搜索', + noMentor: '暂无Mentor', + CurrentSIG: '当前SIG', + enterName: '请输入名称搜索', + ViewOnPC1: '该图表更适合在PC浏览', + ViewOnPC2: '建议在PC查看更多信息', + introduction: '简介', + individual: '个人简介', + community: '社区角色', + filtrate: '筛选', + general: '一般特性', + key: '关键特性', + display: '每页显示', + bar: '条', + total: '共', + result: '条结果', + create: '创建了', + task: '任务', + comment: '评论了', + In: '在', + login: '登录', + personalCenter: '个人中心', + logout: '退出登录', + Confirm: '确认', + Cancel: '取消', + titleConfirm: '您确定要退出吗? 退出后,页面会自动刷新', + pleaseConfirm: '请确认', + General: '常规评论', + Order: '命令型评论', + Goto: '前往', + page: '页', + zhcontribut: '贡献', +}; diff --git a/packages/openubmc/src/main.ts b/packages/openubmc/src/main.ts new file mode 100644 index 0000000000000000000000000000000000000000..9286898098d11abd30c5446a54c0b0b7358aca60 --- /dev/null +++ b/packages/openubmc/src/main.ts @@ -0,0 +1,19 @@ +import { createApp } from 'vue'; +import App from './App.vue'; +import router from './router'; +import { createPinia } from 'pinia'; +import '@opensig/opendesign/es/index.css'; +import i18n from './i18n'; + +import 'shared/styles/base.scss'; +import 'shared/styles/index.scss'; +import '@/assets/style/theme/default-light.token.css'; +import '@/assets/style/theme/dark.token.css'; + +const app = createApp(App); + +app.use(createPinia()); +app.use(router); +app.use(i18n); + +app.mount('#app'); diff --git a/packages/openubmc/src/router/index.ts b/packages/openubmc/src/router/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..cc9d4616de40fdaf99687263b2fd24f1256f8c39 --- /dev/null +++ b/packages/openubmc/src/router/index.ts @@ -0,0 +1,58 @@ +import i18n from '@/i18n'; +import { createRouter, createWebHistory } from 'vue-router'; + +const router = createRouter({ + history: createWebHistory(), + routes: [ + { + path: '/:lang(zh|en)', + children: [ + { + path: '', + redirect() { + return `/${i18n.global.locale.value ?? 'zh'}/overview`; + }, + }, + { + path: 'overview', + name: 'overview', + component: () => import('@/views/overview/Index.vue'), + beforeEnter(to, from) { + if (from.name === 'detail') { + to.meta.transition = 'slide-up'; + } + }, + }, + { + path: 'detail', + name: 'detail', + component: () => import('@/views/detail/Index.vue'), + beforeEnter(to, from) { + if (from.name === 'overview') { + to.meta.transition = 'slide-down'; + } + }, + }, + { + path: 'sig/:id', + name: 'sig-detail', + component: () => import('@/views/sig/Index.vue'), + }, + { + path: 'user/:id', + name: 'user-detail', + component: () => import('@/views/user/Index.vue'), + }, + ], + }, + { path: '/:pathMatch(.*)*', redirect: '/zh/overview' } + ], +}); + +router.beforeEach((to) => { + if (to.fullPath.startsWith('/en')) { + return to.fullPath.replace(/^\/en/, '/zh'); + } +}); + +export default router; diff --git a/packages/openubmc/src/shared/common.ts b/packages/openubmc/src/shared/common.ts new file mode 100644 index 0000000000000000000000000000000000000000..c9ad73fa6a1ae6c9cfa2123e51266dea679a09d0 --- /dev/null +++ b/packages/openubmc/src/shared/common.ts @@ -0,0 +1,12 @@ +/** + * 获取授权的相关回调链接 + */ +/** + * 开源社区信息 + */ + +export const openCommunityInfo = { + name: 'openubmc', + link: import.meta.env.VITE_MAIN_DOMAIN_URL, + email: 'contact@openeuler.io', +}; diff --git a/packages/openubmc/src/shared/utils/index.ts b/packages/openubmc/src/shared/utils/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..48674b0213df89a94539e0dc43e2a0febcf6d4ad --- /dev/null +++ b/packages/openubmc/src/shared/utils/index.ts @@ -0,0 +1,35 @@ +/** + * @param arr 数组 + * @param target 目标 + * @param compareFn 比较函数,返回负数则target大于当前值,返回正数则target小于当前值 + * @returns -1: 没找到,否则返回index + */ +export function binarySearch(arr: D[], target: T, compareFn: (current: D, target: T) => number) { + if (!arr.length) return -1; + if (arr.length === 1) return compareFn(arr[0], target) === 0 ? 0 : -1; + let left = 0, right = arr.length - 1; + while (left <= right) { + const mid = left + ((right - left) >> 1); + const cmp = compareFn(arr[mid], target); + if (cmp === 0) return mid; + if (cmp < 0) left = mid + 1; + else right = mid - 1; + } + return -1; +} + +/** + * 获取指定时区偏移量的年份 + * @param {number} offset - 时区偏移量(单位:小时)。例如,UTC+8 时区,传入 8。 + * @returns {number} - 指定时区偏移量对应的年份 + */ +export function getYearByOffset(offset = 8) { + // 获取当前时间的 UTC 时间 + const now = new Date(); + const utcTime = new Date(now.getTime() + now.getTimezoneOffset() * 60000); + + // 设置偏移 + utcTime.setHours(utcTime.getHours() + offset); + + return utcTime.getFullYear(); +} \ No newline at end of file diff --git a/packages/openubmc/src/stores/common.ts b/packages/openubmc/src/stores/common.ts new file mode 100644 index 0000000000000000000000000000000000000000..0c382fb40c27269e94ccdf21503445e1e908e17e --- /dev/null +++ b/packages/openubmc/src/stores/common.ts @@ -0,0 +1,55 @@ +import { defineStore } from 'pinia'; +import { IObject } from 'shared/@types/interface'; +import { getOveriewAllUsersCount } from 'shared/api/api-new'; +import { request } from 'shared/plugins/axios'; +import { getNowFormatDate } from 'shared/utils/helper'; + +interface stateTypes { + language: string; + ISPC: boolean; + isBlackHeader: boolean; + moNav: number; + companyNav: number; + sigNav: number; + time: string; + allData: IObject; + personNav: number; +} +export const useCommonStore = defineStore('common', { + state: (): stateTypes => ({ + language: 'zh', + // 判断是否是PC + ISPC: false, + // 判断移动端header主题颜色 + isBlackHeader: true, + moNav: 0, + companyNav: 0, + sigNav: 0, + personNav: 0, + // 时间 + time: '--', + allData: {}, + }), + actions: { + setLanguage(lang: string) { + this.language = lang; + }, + setDevice(device: boolean) { + this.ISPC = device; + }, + getAllData() { + this.time = getNowFormatDate(); + request.get('/api-magic/stat_new/overview/count?community=openubmc').then((res) => { + if (res.data?.data) { + Object.assign(this.allData, res.data.data); + } + }); + // 社区用户 + getOveriewAllUsersCount('openubmc').then((res) => { + if (res.data) { + this.allData.users = res.data.total_count; + } + }); + }, + }, +}); diff --git a/packages/openubmc/src/stores/company.ts b/packages/openubmc/src/stores/company.ts new file mode 100644 index 0000000000000000000000000000000000000000..26f06a15d870a4a1b978d7333ff3cbf457b388b9 --- /dev/null +++ b/packages/openubmc/src/stores/company.ts @@ -0,0 +1,69 @@ +import { defineStore } from 'pinia'; +import { ceil } from 'lodash-es'; +import { request } from 'shared/plugins/axios'; +import { openCommunityInfo } from '@/shared/common'; +import i18n from '@/i18n'; + +interface Company { + company_zh: string; + company_en: string; + contribute: number; +} + +export const useCompanyStore = defineStore('company', { + state: () => ({ + rawData: [] as Company[], + companyData: [] as Company[], + // 显示排行数 + displayCount: 10, + searchVal: '', + // 获取最大值 + companyMaxNum: 0, + defaultNum: '', + companyForm: { + contributeType: 'pr', + timeRange: [] as Date[] | [Date, Date], + }, + }), + getters: { + companyData(state) { + let res = state.rawData ?? []; + if (state.searchVal) { + const upperCaseSearchVal = state.searchVal.toUpperCase(); + const lang = i18n.global.locale ?? 'zh'; + res = res.filter((i) => i[lang.value === 'zh' ? 'company_zh' : 'company_en'].toUpperCase().includes(upperCaseSearchVal)); + } + if (state.displayCount) { + return res.slice(0, state.displayCount); + } + return res; + }, + }, + actions: { + async getCompanyData() { + const params = { + community: openCommunityInfo.name, + contributeType: this.companyForm.contributeType, + } as Record; + if (this.companyForm.timeRange?.length === 2) { + params.start = this.companyForm.timeRange[0].getTime(); + params.end = this.companyForm.timeRange[1].getTime(); + } + try { + const res = await request.get('/api-magic/stat_new/company/contribute', { params }).then((res) => res.data); + if (res.code !== 1 || !res.data?.length) { + this.companyMaxNum = 0; + this.rawData = []; + return; + } + const { data } = res; + this.companyMaxNum = ceil(data[0]?.contribute ?? 0, -2); + this.rawData = data; + } catch (error) { + this.companyMaxNum = 0; + this.rawData = []; + console.log(error); + } + }, + }, +}); diff --git a/packages/openubmc/src/stores/login.ts b/packages/openubmc/src/stores/login.ts new file mode 100644 index 0000000000000000000000000000000000000000..aca4c8e091570e7e25425862417433265da63d30 --- /dev/null +++ b/packages/openubmc/src/stores/login.ts @@ -0,0 +1,43 @@ +import { defineStore } from 'pinia'; +import { request } from 'shared/plugins/axios'; + +const useLoginStore = defineStore('login', { + state: () => ({ + logining: false, + logined: false, + data: null as null | Record, + }), + getters: { + username(state) { + return state.data?.username as string ?? ''; + }, + photo(state) { + return state.data?.photo as string ?? ''; + }, + nickname(state) { + return state.data?.nickname as string ?? ''; + }, + }, + actions: { + tokenExists() { + return Boolean(document.cookie.match(/\b_U_T_=[^;]+/)?.[0]); + }, + getUserInfo(force?: boolean) { + if (!this.tokenExists()) return; + if (!force && this.logined) return; + this.logining = true; + request + .get('/api-id/oneid/personal/center/user?community=openubmc') + .then((res) => res.data) + .then((res) => { + if (res.code !== 200 || !res.data) return; + this.data = res.data; + this.logining = false; + this.logined = true; + }) + .catch(() => (this.logining = false)); + }, + }, +}); + +export default useLoginStore; diff --git a/packages/openubmc/src/stores/person.ts b/packages/openubmc/src/stores/person.ts new file mode 100644 index 0000000000000000000000000000000000000000..df74a96edb522f48f68fd39c2c1d79e50d065947 --- /dev/null +++ b/packages/openubmc/src/stores/person.ts @@ -0,0 +1,56 @@ +import { openCommunityInfo } from '@/shared/common'; +import { defineStore } from 'pinia'; +import { request } from 'shared/plugins/axios'; + +export const usePersonalStore = defineStore('personal', { + state: () => ({ + personalData: [], + personalMaxNum: 0, // 个人数据最大参数 + // 筛选参数 + personalForm: { + contributeType: 'pr', + timeRange: [] as Date[] | [Date, Date], + }, + allUsers: [] as string[], + commentType: '', + }), + actions: { + async getPersonalData() { + const params = { + community: openCommunityInfo.name, + contributeType: this.personalForm.contributeType, + comment_type: this.commentType + } as Record; + if (this.personalForm.timeRange?.length === 2) { + params.start = this.personalForm.timeRange[0].getTime(); + params.end = this.personalForm.timeRange[1].getTime(); + } + try { + const res = await request.get('/api-magic/stat_new/user/contribute', { params }).then((res) => res.data); + if (res.code !== 1 || !res.data?.length) { + this.personalData = []; + this.personalMaxNum = 0; + return; + } + const { data } = res; + const userList = data; + this.personalData = userList.slice(0, 20); + this.personalMaxNum = userList[0].contribute; + } catch (error) { + this.personalData = []; + this.personalMaxNum = 0; + console.log(error); + } + }, + }, + getters: { + // top10 + highRanking: (state) => { + return state.personalData.slice(0, 10); + }, + // top10-20 + lowRanking: (state) => { + return state.personalData.slice(10, 20); + }, + }, +}); diff --git a/packages/openubmc/src/views/detail/CompanyContribution.vue b/packages/openubmc/src/views/detail/CompanyContribution.vue new file mode 100644 index 0000000000000000000000000000000000000000..a4eb252b09d412b4fcf87477463e4601a5112241 --- /dev/null +++ b/packages/openubmc/src/views/detail/CompanyContribution.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/packages/openubmc/src/views/detail/CompanyDataBarChart.vue b/packages/openubmc/src/views/detail/CompanyDataBarChart.vue new file mode 100644 index 0000000000000000000000000000000000000000..f2771d912de723fa1357de7bc64fe60f518e2f3c --- /dev/null +++ b/packages/openubmc/src/views/detail/CompanyDataBarChart.vue @@ -0,0 +1,276 @@ + + + + + diff --git a/packages/openubmc/src/views/detail/Index.vue b/packages/openubmc/src/views/detail/Index.vue new file mode 100644 index 0000000000000000000000000000000000000000..7b50aa37370b5576e2b3e2a79bb57ba9e8aba765 --- /dev/null +++ b/packages/openubmc/src/views/detail/Index.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/packages/openubmc/src/views/detail/SigOverview.vue b/packages/openubmc/src/views/detail/SigOverview.vue new file mode 100644 index 0000000000000000000000000000000000000000..bda0e0df8a1a2f0ad87b101f063f69ec4862a6d3 --- /dev/null +++ b/packages/openubmc/src/views/detail/SigOverview.vue @@ -0,0 +1,95 @@ + + + + diff --git a/packages/openubmc/src/views/detail/UserContribution.vue b/packages/openubmc/src/views/detail/UserContribution.vue new file mode 100644 index 0000000000000000000000000000000000000000..92e7a2be2254fb201fa8583d298ee9657ee1afa1 --- /dev/null +++ b/packages/openubmc/src/views/detail/UserContribution.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/packages/openubmc/src/views/overview/Index.vue b/packages/openubmc/src/views/overview/Index.vue new file mode 100644 index 0000000000000000000000000000000000000000..ff535474e5cf2d8dc9b4af556bcd922be2f4f78c --- /dev/null +++ b/packages/openubmc/src/views/overview/Index.vue @@ -0,0 +1,183 @@ + + + + + diff --git a/packages/openubmc/src/views/sig/Index.vue b/packages/openubmc/src/views/sig/Index.vue new file mode 100644 index 0000000000000000000000000000000000000000..53168e427343fd4bca0a63e2e5c850e2afa75ab8 --- /dev/null +++ b/packages/openubmc/src/views/sig/Index.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/packages/openubmc/src/views/sig/Sidebar.vue b/packages/openubmc/src/views/sig/Sidebar.vue new file mode 100644 index 0000000000000000000000000000000000000000..f5d23e747222a5125f7ea08ed21fd3610a9903f1 --- /dev/null +++ b/packages/openubmc/src/views/sig/Sidebar.vue @@ -0,0 +1,167 @@ + + + \ No newline at end of file diff --git a/packages/openubmc/src/views/user/ContributeDynamic.vue b/packages/openubmc/src/views/user/ContributeDynamic.vue new file mode 100644 index 0000000000000000000000000000000000000000..3cf9dd31333a953d75323d1d18e73241338019f5 --- /dev/null +++ b/packages/openubmc/src/views/user/ContributeDynamic.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/packages/openubmc/src/views/user/ContributionData.vue b/packages/openubmc/src/views/user/ContributionData.vue new file mode 100644 index 0000000000000000000000000000000000000000..5c48e59937a167d5e996f87a73ebf1632a0d5259 --- /dev/null +++ b/packages/openubmc/src/views/user/ContributionData.vue @@ -0,0 +1,306 @@ + + + + diff --git a/packages/openubmc/src/views/user/Index.vue b/packages/openubmc/src/views/user/Index.vue new file mode 100644 index 0000000000000000000000000000000000000000..27bde0b82777af40c1da49c89e5fe41430c2a274 --- /dev/null +++ b/packages/openubmc/src/views/user/Index.vue @@ -0,0 +1,31 @@ + + + diff --git a/packages/openubmc/src/views/user/Sidebar.vue b/packages/openubmc/src/views/user/Sidebar.vue new file mode 100644 index 0000000000000000000000000000000000000000..4084abd9e40a74347487522a163d7e422f5bdc4a --- /dev/null +++ b/packages/openubmc/src/views/user/Sidebar.vue @@ -0,0 +1,280 @@ + + + + + diff --git a/packages/openubmc/tsconfig.json b/packages/openubmc/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..774b21dcea5481ded08cc4624c45d95d443a8c39 --- /dev/null +++ b/packages/openubmc/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "esnext", + "useDefineForClassFields": true, + "module": "esnext", + "moduleResolution": "node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "skipLibCheck": true, + "lib": ["esnext", "dom"], + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + }, + "types": ["unplugin-icons/types/vue", "element-plus/global","vite/client"] + }, + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx", + "src/**/*.vue", + "env.d.ts" +, "../shared/hooks/useVirtualList.ts" ], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/packages/openubmc/tsconfig.node.json b/packages/openubmc/tsconfig.node.json new file mode 100644 index 0000000000000000000000000000000000000000..a0c7a49609d40b6cc0ca339c4ad74b694a24c7be --- /dev/null +++ b/packages/openubmc/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "module": "esnext", + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "types": ["node"] + }, + "include": ["vite.config.ts"] +} diff --git a/packages/openubmc/vite.config.js b/packages/openubmc/vite.config.js new file mode 100644 index 0000000000000000000000000000000000000000..ce4c3875693a368e1cbb21e5c6efa7dfd84ebf03 --- /dev/null +++ b/packages/openubmc/vite.config.js @@ -0,0 +1,78 @@ +/* +* 版权所有(c)华为技术有限公司2025-2025 +*/ +import nodePath from 'path'; +import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; +import Icons from 'unplugin-icons/vite'; +import { FileSystemIconLoader } from 'unplugin-icons/loaders'; + +import AutoImport from 'unplugin-auto-import/vite'; +import Components from 'unplugin-vue-components/vite'; +import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'; +import vueJsxPlugin from '@vitejs/plugin-vue-jsx'; + +export default defineConfig({ + base: '/', + build: { + outDir: '../../dist/openubmc', + }, + resolve: { + alias: { + '@/': `${nodePath.resolve(__dirname, './src')}/`, + 'shared/': `${nodePath.resolve(__dirname, '../', 'shared')}/`, + 'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js', + }, + }, + plugins: [ + vue(), + vueJsxPlugin(), + Icons({ + compiler: 'vue3', + customCollections: { + shared: FileSystemIconLoader('../shared/svg-icons'), + app: FileSystemIconLoader('./src/assets/svg-icons'), + }, + }), + AutoImport({ + resolvers: [ElementPlusResolver({ importStyle: 'sass' })], + }), + Components({ + resolvers: [ElementPlusResolver({ importStyle: 'sass' })], + }), + ], + css: { + preprocessorOptions: { + scss: { + additionalData: ` + @use "@/assets/style/mixin/common.scss" as *; + @use "@/assets/style/mixin/font.scss" as *; + @use "shared/styles/mixin/screen.scss" as *; + `, + }, + }, + }, + server: { + proxy: { + '/query': { + target: 'https://dsapi.osinfra.cn/', + changeOrigin: true, + }, + '/api-magic': { + target: 'https://magicapi.osinfra.cn/', + changeOrigin: true, + rewrite: (path) => path.replace(/^\/api-magic/, ''), + }, + '/api-id': { + target: 'https://omapi.test.osinfra.cn/', + changeOrigin: true, + rewrite: (path) => path.replace(/^\/api-id/, ''), + }, + '/ip-api/': { + target: 'http://ip-api.com/json/', + changeOrigin: true, + rewrite: (path) => path.replace(/^\/ip-api/, ''), + }, + }, + }, +}); diff --git a/packages/shared/hooks/useScreen.ts b/packages/shared/hooks/useScreen.ts index 25e579d49a6f92af6db52e67f175b31907bbb724..b68ba970717a8f8aa0d83997d8c9aad4e85d8001 100644 --- a/packages/shared/hooks/useScreen.ts +++ b/packages/shared/hooks/useScreen.ts @@ -1,3 +1,4 @@ +import { createSharedComposable } from '@vueuse/core'; import { ref, reactive, computed, onMounted, onUnmounted, nextTick } from 'vue'; export enum Size { @@ -39,7 +40,7 @@ const CompareHandler = { gt: (a: number, b: number) => a > b, }; -export const useScreen = () => { +export const useScreen = createSharedComposable(() => { const screenSize = reactive({ width: 1440, height: 0, @@ -156,4 +157,4 @@ export const useScreen = () => { isPadToLaptop, // [601, 1440] isPadVToLaptop, // [841, 1440] }; -}; +}); diff --git a/packages/shared/package.json b/packages/shared/package.json index 523e0c27433f9f0c1cae61e9be8c8043874f709a..dd9242ec22403515c7e7ebe8f626dadd6f1d5129 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -2,8 +2,5 @@ "name": "shared", "private": true, "version": "0.0.1", - "scripts": {}, - "dependencies": { - "unplugin-icons": "^0.14.0" - } + "scripts": {} } diff --git a/packages/shared/utils/login.ts b/packages/shared/utils/login.ts index 9c50750f8313ddeb536b2938bcaf747ad260b6c0..b80e2157af64c7f11876d0d02007688e7731d1c9 100644 --- a/packages/shared/utils/login.ts +++ b/packages/shared/utils/login.ts @@ -77,7 +77,7 @@ export function getUserAuth() { } // 退出登录 -export function logout(community: string) { +export function logout() { location.href = `${import.meta.env.VITE_LOGIN_ORIGIN}/logout?redirect_uri=${ window?.location?.origin }`; @@ -92,7 +92,7 @@ export function goToHome() { window.location.href = `/${lang}/mobile`; } } -export function showGuard(community: string) { +export function showGuard() { const origin = import.meta.env.VITE_LOGIN_ORIGIN; const lang = window.localStorage.getItem('lang'); location.href = `${origin}/login?redirect_uri=${location.href}&lang=${lang}`; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cbe3133e63298b6a5d0eab84b592c4a4514cfaa4..7cb59c722978fe71a25d35a5b53391c384b3b9f7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,16 +10,22 @@ importers: dependencies: '@element-plus/icons-vue': specifier: ^2.0.4 - version: 2.0.4(vue@3.2.25) + version: 2.0.4(vue@3.5.20(typescript@4.6.2)) '@opensig/open-analytics': specifier: ^0.0.9 version: 0.0.9 + '@opensig/opendesign': + specifier: ^1.0.1 + version: 1.0.1(vue@3.5.20(typescript@4.6.2)) '@types/d3': specifier: ^7.4.0 version: 7.4.0 + '@vueuse/core': + specifier: ^13.9.0 + version: 13.9.0(vue@3.5.20(typescript@4.6.2)) axios: - specifier: ^1.8.2 - version: 1.8.2 + specifier: ^1.12.0 + version: 1.12.0 d3: specifier: ^7.4.4 version: 7.4.4 @@ -28,7 +34,7 @@ importers: version: 5.3.2 element-plus: specifier: ^2.1.4 - version: 2.1.4(@types/lodash-es@4.17.6)(vue@3.2.25) + version: 2.1.4(@types/lodash-es@4.17.6)(vue@3.5.20(typescript@4.6.2)) html2canvas: specifier: ^1.4.1 version: 1.4.1 @@ -43,19 +49,22 @@ importers: version: 8.0.1 pinia: specifier: ^2.0.11 - version: 2.0.12(typescript@4.6.2)(vue@3.2.25) + version: 2.0.12(typescript@4.6.2)(vue@3.5.20(typescript@4.6.2)) swiper: specifier: ^8.0.7 version: 8.0.7 + unplugin-icons: + specifier: 22.2.0 + version: 22.2.0(@vue/compiler-sfc@3.5.20)(vue-template-compiler@2.7.16) vue: - specifier: ^3.2.25 - version: 3.2.25 + specifier: ^3.5.20 + version: 3.5.20(typescript@4.6.2) vue-i18n: - specifier: ^9.14.3 - version: 9.14.3(vue@3.2.25) + specifier: ^9.14.5 + version: 9.14.5(vue@3.5.20(typescript@4.6.2)) vue-router: - specifier: ^4.0.13 - version: 4.0.14(vue@3.2.25) + specifier: ^4.5.1 + version: 4.5.1(vue@3.5.20(typescript@4.6.2)) devDependencies: '@rushstack/eslint-patch': specifier: ^1.10.5 @@ -67,14 +76,14 @@ importers: specifier: ^4.17.6 version: 4.17.6 '@types/node': - specifier: ^17.0.21 - version: 17.0.22 + specifier: ^22.0.0 + version: 22.0.0 '@vitejs/plugin-vue': specifier: ^4.6.2 - version: 4.6.2(vite@6.3.4(@types/node@17.0.22)(sass@1.49.9))(vue@3.2.25) + version: 4.6.2(vite@6.3.4(@types/node@22.0.0)(sass@1.49.9))(vue@3.5.20(typescript@4.6.2)) '@vitejs/plugin-vue-jsx': specifier: ^4.1.1 - version: 4.1.1(vite@6.3.4(@types/node@17.0.22)(sass@1.49.9))(vue@3.2.25) + version: 4.1.1(vite@6.3.4(@types/node@22.0.0)(sass@1.49.9))(vue@3.5.20(typescript@4.6.2)) '@vue/eslint-config-prettier': specifier: ^10.2.0 version: 10.2.0(eslint@8.56.0)(prettier@3.2.5) @@ -95,13 +104,13 @@ importers: version: 4.6.2 unplugin-auto-import: specifier: ^0.11.5 - version: 0.11.5(@vueuse/core@8.1.2(vue@3.2.25))(rollup@4.40.0) + version: 0.11.5(@vueuse/core@13.9.0(vue@3.5.20(typescript@4.6.2)))(rollup@4.40.0) unplugin-vue-components: specifier: ^0.26.0 - version: 0.26.0(@babel/parser@7.26.8)(rollup@4.40.0)(vue@3.2.25) + version: 0.26.0(@babel/parser@7.28.3)(rollup@4.40.0)(vue@3.5.20(typescript@4.6.2)) vite: specifier: 6.3.4 - version: 6.3.4(@types/node@17.0.22)(sass@1.49.9) + version: 6.3.4(@types/node@22.0.0)(sass@1.49.9) vue-tsc: specifier: ^1.8.25 version: 1.8.27(typescript@4.6.2) @@ -110,46 +119,36 @@ importers: dependencies: '@opensig/opendesign': specifier: 0.0.65 - version: 0.0.65(vue@3.2.25) + version: 0.0.65(vue@3.5.20(typescript@4.6.2)) shared: specifier: workspace:^ version: link:../shared - unplugin-icons: - specifier: ^0.14.0 - version: 0.14.0(@vue/compiler-sfc@3.5.13)(esbuild@0.25.2)(rollup@4.40.0)(vite@6.3.4(@types/node@17.0.22)(sass@1.49.9))(vue-template-compiler@2.7.16) packages/gauss: dependencies: shared: specifier: workspace:^ version: link:../shared - unplugin-icons: - specifier: ^0.14.0 - version: 0.14.0(@vue/compiler-sfc@3.5.13)(esbuild@0.25.2)(rollup@4.40.0)(vite@6.3.4(@types/node@17.0.22)(sass@1.49.9))(vue-template-compiler@2.7.16) packages/harmony: dependencies: shared: specifier: workspace:^ version: link:../shared - unplugin-icons: - specifier: ^0.14.0 - version: 0.14.0(@vue/compiler-sfc@3.5.13)(esbuild@0.25.2)(rollup@4.40.0)(vite@6.3.4(@types/node@17.0.22)(sass@1.49.9))(vue-template-compiler@2.7.16) packages/mindspore: dependencies: shared: specifier: workspace:^ version: link:../shared - unplugin-icons: - specifier: ^0.14.0 - version: 0.14.0(@vue/compiler-sfc@3.5.13)(esbuild@0.25.2)(rollup@4.40.0)(vite@6.3.4(@types/node@17.0.22)(sass@1.49.9))(vue-template-compiler@2.7.16) - packages/shared: + packages/openubmc: dependencies: - unplugin-icons: - specifier: ^0.14.0 - version: 0.14.0(@vue/compiler-sfc@3.5.13)(esbuild@0.25.2)(rollup@4.40.0)(vite@6.3.4(@types/node@17.0.22)(sass@1.49.9))(vue-template-compiler@2.7.16) + shared: + specifier: workspace:^ + version: link:../shared + + packages/shared: {} packages: @@ -157,18 +156,15 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@antfu/install-pkg@0.1.0': - resolution: {integrity: sha512-VaIJd3d1o7irZfK1U0nvBsHMyjkuyMP3HKYVV53z8DKyulkHKmjhhtccXO51WSPeeSHIeoJEoNOKavYpS7jkZw==} - - '@antfu/utils@0.3.0': - resolution: {integrity: sha512-UU8TLr/EoXdg7OjMp0h9oDoIAVr+Z/oW9cpOxQQyrsz6Qzd2ms/1CdWx8fl2OQdFpxGmq5Vc4TwfLHId6nAZjA==} - - '@antfu/utils@0.5.0': - resolution: {integrity: sha512-MrAQ/MrPSxbh1bBrmwJjORfJymw4IqSHFBXqvxaga3ZdDM+/zokYF8DjyJpSjY2QmpmgQrajDUBJOWrYeARfzA==} + '@antfu/install-pkg@1.1.0': + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} '@antfu/utils@0.7.8': resolution: {integrity: sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==} + '@antfu/utils@8.1.1': + resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} + '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} @@ -235,14 +231,18 @@ packages: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.16.7': - resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.25.9': resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} @@ -251,13 +251,13 @@ packages: resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.7': - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + '@babel/parser@7.26.8': + resolution: {integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.26.8': - resolution: {integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==} + '@babel/parser@7.28.3': + resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} engines: {node: '>=6.0.0'} hasBin: true @@ -291,14 +291,14 @@ packages: resolution: {integrity: sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==} engines: {node: '>=6.9.0'} - '@babel/types@7.17.0': - resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} - engines: {node: '>=6.9.0'} - '@babel/types@7.26.8': resolution: {integrity: sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.2': + resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} + engines: {node: '>=6.9.0'} + '@ctrl/tinycolor@3.4.0': resolution: {integrity: sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ==} engines: {node: '>=10'} @@ -494,28 +494,31 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead - '@iconify/types@1.0.13': - resolution: {integrity: sha512-jrJJVPnRM1HsMDnuHRTzMfgiSG6Z1U/2IYI7s8spFu9c7n1q3jcXa+3/YQz4tJVNgAhzm1dbnMxfIAyLDpCaWg==} + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@iconify/utils@1.0.28': - resolution: {integrity: sha512-hmSS50Q6qoOcq/TKhSV0VaI5+NFwQicJLk1MBLGDUQsGtOWdIagiYBz9ricpsw6dSu0cLW2a4ZAFg9V556yH8Q==} + '@iconify/utils@2.3.0': + resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} - '@intlify/core-base@9.14.3': - resolution: {integrity: sha512-nbJ7pKTlXFnaXPblyfiH6awAx1C0PWNNuqXAR74yRwgi5A/Re/8/5fErLY0pv4R8+EHj3ZaThMHdnuC/5OBa6g==} + '@intlify/core-base@9.14.5': + resolution: {integrity: sha512-5ah5FqZG4pOoHjkvs8mjtv+gPKYU0zCISaYNjBNNqYiaITxW8ZtVih3GS/oTOqN8d9/mDLyrjD46GBApNxmlsA==} engines: {node: '>= 16'} - '@intlify/message-compiler@9.14.3': - resolution: {integrity: sha512-ANwC226BQdd+MpJ36rOYkChSESfPwu3Ss2Faw0RHTOknYLoHTX6V6e/JjIKVDMbzs0/H/df/rO6yU0SPiWHqNg==} + '@intlify/message-compiler@9.14.5': + resolution: {integrity: sha512-IHzgEu61/YIpQV5Pc3aRWScDcnFKWvQA9kigcINcCBXN8mbW+vk9SK+lDxA6STzKQsVJxUPg9ACC52pKKo3SVQ==} engines: {node: '>= 16'} - '@intlify/shared@9.14.3': - resolution: {integrity: sha512-hJXz9LA5VG7qNE00t50bdzDv8Z4q9fpcL81wj4y4duKavrv0KM8YNLTwXNEFINHjTsfrG9TXvPuEjVaAvZ7yWg==} + '@intlify/shared@9.14.5': + resolution: {integrity: sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ==} engines: {node: '>= 16'} '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -553,6 +556,11 @@ packages: peerDependencies: vue: ^3.1.0 + '@opensig/opendesign@1.0.1': + resolution: {integrity: sha512-aF5sCbNoqYfM89VS+u4RbB75M067EbvYJBbCjkigttVsXG2a/tDQKGgSoxCT4UnQq6SffOWY8o1Ks9JcXqel1Q==} + peerDependencies: + vue: ^3.3.0 + '@pkgr/core@0.1.1': resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -800,14 +808,14 @@ packages: '@types/lodash@4.14.180': resolution: {integrity: sha512-XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==} - '@types/node@17.0.22': - resolution: {integrity: sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw==} + '@types/node@22.0.0': + resolution: {integrity: sha512-VT7KSYudcPOzP5Q0wfbowyNLaVR8QWUdw+088uFWwfvpY6uCWaXpqV6ieLAu9WBcnTa7H4Z5RLK8I5t2FuOcqw==} '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/throttle-debounce@2.1.0': - resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==} + '@types/web-bluetooth@0.0.21': + resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} '@typescript-eslint/eslint-plugin@6.21.0': resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} @@ -909,17 +917,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@vue/compiler-core@3.2.25': - resolution: {integrity: sha512-FlffKezIqztTCTyG0klkYRwhdyL6b1PTTCIerPb4p2R9qQaczccTX5g9ysi9w6tpLQ48a1WiXnFDJhWD7XoqwA==} - '@vue/compiler-core@3.4.27': resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} '@vue/compiler-core@3.5.13': resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - '@vue/compiler-dom@3.2.25': - resolution: {integrity: sha512-4JrburkRg4VWbc8AKpzKFWbNY4MDXshqjFl53+vINq7zaw3Z7aSqnLv0EkKh8B8ynf/MYsAdygGutyVbEWYxOw==} + '@vue/compiler-core@3.5.20': + resolution: {integrity: sha512-8TWXUyiqFd3GmP4JTX9hbiTFRwYHgVL/vr3cqhr4YQ258+9FADwvj7golk2sWNGHR67QgmCZ8gz80nQcMokhwg==} '@vue/compiler-dom@3.4.27': resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} @@ -927,18 +932,21 @@ packages: '@vue/compiler-dom@3.5.13': resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - '@vue/compiler-sfc@3.2.25': - resolution: {integrity: sha512-PminuOYIcFI7UZn+mdy2OPbogyAb0IHkVuqwmLDJiSRFhc/QAXQnO9KdS4nez3bQ9XlQmoAveQzcZuekHzdb5w==} + '@vue/compiler-dom@3.5.20': + resolution: {integrity: sha512-whB44M59XKjqUEYOMPYU0ijUV0G+4fdrHVKDe32abNdX/kJe1NUEMqsi4cwzXa9kyM9w5S8WqFsrfo1ogtBZGQ==} '@vue/compiler-sfc@3.5.13': resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} - '@vue/compiler-ssr@3.2.25': - resolution: {integrity: sha512-+BAl8U5D3JkGR6086PFx1BQQ5km3z9fT88hy/7lzf8i3vEDdPQodadnX2t6tndFjIux05MEKg43DeocOojT0mw==} + '@vue/compiler-sfc@3.5.20': + resolution: {integrity: sha512-SFcxapQc0/feWiSBfkGsa1v4DOrnMAQSYuvDMpEaxbpH5dKbnEM5KobSNSgU+1MbHCl+9ftm7oQWxvwDB6iBfw==} '@vue/compiler-ssr@3.5.13': resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + '@vue/compiler-ssr@3.5.20': + resolution: {integrity: sha512-RSl5XAMc5YFUXpDQi+UQDdVjH9FnEpLDHIALg5J0ITHxkEzJ8uQLlo7CIbjPYqmZtt6w0TsIPbo1izYXwDG7JA==} + '@vue/devtools-api@6.1.3': resolution: {integrity: sha512-79InfO2xHv+WHIrH1bHXQUiQD/wMls9qBk6WVwGCbdwP7/3zINtvqPNMtmSHXsIKjvUAHc8L0ouOj6ZQQRmcXg==} @@ -970,25 +978,19 @@ packages: typescript: optional: true - '@vue/reactivity-transform@3.2.25': - resolution: {integrity: sha512-fOiW67PUalicMfMr4Sc9l8mUtkN7ZD+G1/zJV8blzQ8GEZSeRcJm11gqve6Ps623ju5YORu7V/Q1gZoOJ9WO4g==} - - '@vue/reactivity@3.2.25': - resolution: {integrity: sha512-Dxc/u/dxoneIDqyfmuwPVBR0G3OQJqe3Dtz4z3NGt+CGj4UuOZQfN5raJPmp6xGYgrtC6PAWoCgHhyrgr1qCtg==} + '@vue/reactivity@3.5.20': + resolution: {integrity: sha512-hS8l8x4cl1fmZpSQX/NXlqWKARqEsNmfkwOIYqtR2F616NGfsLUm0G6FQBK6uDKUCVyi1YOL8Xmt/RkZcd/jYQ==} - '@vue/runtime-core@3.2.25': - resolution: {integrity: sha512-2+fo5+lofT4xr8W2rtjyz+AM+UB1U/UNLH6ISFdHWNWuveSWxF+vkCQaATmhp6O3XA7QJAbHoRqIZor20EWSfQ==} + '@vue/runtime-core@3.5.20': + resolution: {integrity: sha512-vyQRiH5uSZlOa+4I/t4Qw/SsD/gbth0SW2J7oMeVlMFMAmsG1rwDD6ok0VMmjXY3eI0iHNSSOBilEDW98PLRKw==} - '@vue/runtime-dom@3.2.25': - resolution: {integrity: sha512-3gGeyHnygn4yG6bssRKhQIxnE8vgB8FtYUUwoYoA/Pm0vZ+bGPoZax4TbtZD9eW9rvs8CY8boNp4t/sJaPJrRQ==} + '@vue/runtime-dom@3.5.20': + resolution: {integrity: sha512-KBHzPld/Djw3im0CQ7tGCpgRedryIn4CcAl047EhFTCCPT2xFf4e8j6WeKLgEEoqPSl9TYqShc3Q6tpWpz/Xgw==} - '@vue/server-renderer@3.2.25': - resolution: {integrity: sha512-qFRmcyeyyhWbnTPn6cbCZ4bjeuPLSkUpFa98p4LEJtFBFbxjGnrHXHOjYxCY3Lznmxe0kMM3qG4t3GnjcXP12w==} + '@vue/server-renderer@3.5.20': + resolution: {integrity: sha512-HthAS0lZJDH21HFJBVNTtx+ULcIbJQRpjSVomVjfyPkFSpCwvsPTA+jIzOaUm3Hrqx36ozBHePztQFg6pj5aKg==} peerDependencies: - vue: 3.2.25 - - '@vue/shared@3.2.25': - resolution: {integrity: sha512-DkHJFV2gw9WBRmUCa21eyG0WvlF0l1QFOgTkWj29O4mt2Tv3BSE5PQOKhUruZIym4bBYCqx9ZGtoD1WohDprow==} + vue: 3.5.20 '@vue/shared@3.4.27': resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} @@ -996,6 +998,14 @@ packages: '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + '@vue/shared@3.5.20': + resolution: {integrity: sha512-SoRGP596KU/ig6TfgkCMbXkr4YJ91n/QSdMuqeP5r3hVIYA3CPHUBCc7Skak0EAKV+5lL4KyIh61VA/pK1CIAA==} + + '@vueuse/core@13.9.0': + resolution: {integrity: sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==} + peerDependencies: + vue: ^3.5.0 + '@vueuse/core@8.1.2': resolution: {integrity: sha512-prI2GzigBUtJNTcwRjJPzUPLFoRZM1RZFR464DFdwgU8TxRFf7dRvuvWFDNbCATzLExHFnGI3zTp9GkXTTZxgQ==} peerDependencies: @@ -1007,9 +1017,17 @@ packages: vue: optional: true + '@vueuse/metadata@13.9.0': + resolution: {integrity: sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==} + '@vueuse/metadata@8.1.2': resolution: {integrity: sha512-LrPtdiYMleygnGmz8mEmYI9h4Eyo+/igxZWNrwuPnqvL9pIO+8eUpBgPLH5GowKv3Nu0LPZSXSIuaWVJBSU1Cg==} + '@vueuse/shared@13.9.0': + resolution: {integrity: sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==} + peerDependencies: + vue: ^3.5.0 + '@vueuse/shared@8.1.2': resolution: {integrity: sha512-4Hb9iPUhAz7ghO4hgvB2GV2FOy12qQGdhmQ+9HC6QN/J66DELhmxAvkZAtK5FBqZOSwzKszPqNqoyhRKQrrWGQ==} peerDependencies: @@ -1036,6 +1054,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -1064,8 +1087,8 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - axios@1.8.2: - resolution: {integrity: sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==} + axios@1.12.0: + resolution: {integrity: sha512-oXTDccv8PcfjZmPGlWsPSwtOJCZ/b6W5jAMCNcfwJbCzDckwG0jrYJFaWH1yvivfCXjVzV/SPDEhMB3Q+DSurg==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -1137,6 +1160,12 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -1147,8 +1176,8 @@ packages: css-line-break@2.1.0: resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==} - csstype@2.6.21: - resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} d3-array@3.1.6: resolution: {integrity: sha512-DCbBBNuKOeiR9h04ySRBMW52TFVc91O9wJziuyXw6Ztmy8D3oZbmCkOO3UHKC7ceNJsN2Mavo9+vwV8EAEUXzA==} @@ -1296,6 +1325,15 @@ packages: supports-color: optional: true + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -1461,9 +1499,8 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + exsolve@1.0.7: + resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1520,8 +1557,8 @@ packages: debug: optional: true - form-data@4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + form-data@4.0.4: + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} fs.realpath@1.0.0: @@ -1547,10 +1584,6 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1571,6 +1604,10 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -1610,10 +1647,6 @@ packages: resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==} engines: {node: '>=8.0.0'} - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -1670,10 +1703,6 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -1707,21 +1736,21 @@ packages: jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - kolorist@1.5.1: - resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==} + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - local-pkg@0.4.1: - resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==} - engines: {node: '>=14'} - local-pkg@0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} + local-pkg@1.1.2: + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} + engines: {node: '>=14'} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -1745,9 +1774,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - magic-string@0.26.7: resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} engines: {node: '>=12'} @@ -1770,9 +1796,6 @@ packages: memoize-one@6.0.0: resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1789,10 +1812,6 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -1807,12 +1826,23 @@ packages: mlly@1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + mlly@1.8.0: + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + muggle-string@0.3.1: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -1834,17 +1864,9 @@ packages: normalize.css@8.0.1: resolution: {integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==} - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -1857,6 +1879,9 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + package-manager-detector@1.3.0: + resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -1886,6 +1911,9 @@ packages: pathe@1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -1897,6 +1925,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pinia@2.0.12: resolution: {integrity: sha512-tUeuYGFrLU5irmGyRAIxp35q1OTcZ8sKpGT4XkPeVcG35W4R6cfXDbCGexzmVqH5lTQJJTXXbNGutIu9yS5yew==} peerDependencies: @@ -1912,10 +1944,20 @@ packages: pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + postcss@8.5.3: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -1936,6 +1978,9 @@ packages: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -2002,9 +2047,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -2017,10 +2059,6 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead @@ -2032,10 +2070,6 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -2068,14 +2102,13 @@ packages: text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + tinyexec@1.0.1: + resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} + tinyglobby@0.2.13: resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -2112,6 +2145,12 @@ packages: ufo@1.3.2: resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + + undici-types@6.11.1: + resolution: {integrity: sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==} + unimport@1.3.0: resolution: {integrity: sha512-fOkrdxglsHd428yegH0wPH/6IfaSdDeMXtdRGn6en/ccyzc2aaoxiUTMrJyc6Bu+xoa18RJRPMfLUHEzjz8atw==} @@ -2124,18 +2163,24 @@ packages: '@vueuse/core': optional: true - unplugin-icons@0.14.0: - resolution: {integrity: sha512-VznBG8Jl9D4jtsAIY8hycyQZEDB8KVjnk19MzMlifLLs4QoIUPx8TILDoy6U46yDeYViqZu4hvb5fYI5OarekQ==} + unplugin-icons@22.2.0: + resolution: {integrity: sha512-OdrXCiXexC1rFd0QpliAgcd4cMEEEQtoCf2WIrRIGu4iW6auBPpQKMCBeWxoe55phYdRyZLUWNOtzyTX+HOFSA==} peerDependencies: - '@svgr/core': '>=5.5.0' - '@vue/compiler-sfc': ^3.0.2 + '@svgr/core': '>=7.0.0' + '@svgx/core': ^1.0.1 + '@vue/compiler-sfc': ^3.0.2 || ^2.7.0 + svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 vue-template-compiler: ^2.6.12 vue-template-es2015-compiler: ^1.9.0 peerDependenciesMeta: '@svgr/core': optional: true + '@svgx/core': + optional: true '@vue/compiler-sfc': optional: true + svelte: + optional: true vue-template-compiler: optional: true vue-template-es2015-compiler: @@ -2154,27 +2199,14 @@ packages: '@nuxt/kit': optional: true - unplugin@0.5.2: - resolution: {integrity: sha512-3SPYtus/56cxyD4jfjrnqCvb6jPxvdqJNaRXnEaG2BhNEMaoygu/39AG+LwKmiIUzj4XHyitcfZ7scGlWfEigA==} - peerDependencies: - esbuild: '>=0.13' - rollup: ^2.50.0 - vite: ^2.3.0 - webpack: 4 || 5 - peerDependenciesMeta: - esbuild: - optional: true - rollup: - optional: true - vite: - optional: true - webpack: - optional: true - unplugin@1.10.1: resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} engines: {node: '>=14.0.0'} + unplugin@2.3.10: + resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==} + engines: {node: '>=18.12.0'} + update-browserslist-db@1.1.2: resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} hasBin: true @@ -2254,14 +2286,14 @@ packages: peerDependencies: eslint: '>=6.0.0' - vue-i18n@9.14.3: - resolution: {integrity: sha512-C+E0KE8ihKjdYCQx8oUkXX+8tBItrYNMnGJuzEPevBARQFUN2tKez6ZVOvBrWH0+KT5wEk3vOWjNk7ygb2u9ig==} + vue-i18n@9.14.5: + resolution: {integrity: sha512-0jQ9Em3ymWngyiIkj0+c/k7WgaPO+TNzjKSNq9BvBQaKJECqn9cd9fL4tkDhB5G1QBskGl9YxxbDAhgbFtpe2g==} engines: {node: '>= 16'} peerDependencies: vue: ^3.0.0 - vue-router@4.0.14: - resolution: {integrity: sha512-wAO6zF9zxA3u+7AkMPqw9LjoUCjSxfFvINQj3E/DceTt6uEz1XZLraDhdg2EYmvVwTBSGlLYsUw8bDmx0754Mw==} + vue-router@4.5.1: + resolution: {integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==} peerDependencies: vue: ^3.2.0 @@ -2274,8 +2306,13 @@ packages: peerDependencies: typescript: '*' - vue@3.2.25: - resolution: {integrity: sha512-jU3t7fyQDHoCWCqhmRrnSmYZvHC35tOJTP704di7HGfq5EcFA1cU/1ZPjUV1eCxJev65Khjyfni+vk9oa+eTtw==} + vue@3.5.20: + resolution: {integrity: sha512-2sBz0x/wis5TkF1XZ2vH25zWq3G1bFEPOfkBcx2ikowmphoQsPH6X0V3mmPCXA2K1N/XGTnifVyDQP4GfDDeQw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true web-vitals@4.2.4: resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} @@ -2284,9 +2321,6 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack-virtual-modules@0.4.3: - resolution: {integrity: sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==} - webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} @@ -2319,19 +2353,15 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/install-pkg@0.1.0': - dependencies: - execa: 5.1.1 - find-up: 5.0.0 - - '@antfu/utils@0.3.0': + '@antfu/install-pkg@1.1.0': dependencies: - '@types/throttle-debounce': 2.1.0 - - '@antfu/utils@0.5.0': {} + package-manager-detector: 1.3.0 + tinyexec: 1.0.1 '@antfu/utils@0.7.8': {} + '@antfu/utils@8.1.1': {} + '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 @@ -2441,10 +2471,12 @@ snapshots: '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-validator-identifier@7.16.7': {} + '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-option@7.25.9': {} '@babel/helpers@7.26.7': @@ -2452,14 +2484,14 @@ snapshots: '@babel/template': 7.26.8 '@babel/types': 7.26.8 - '@babel/parser@7.24.7': - dependencies: - '@babel/types': 7.17.0 - '@babel/parser@7.26.8': dependencies: '@babel/types': 7.26.8 + '@babel/parser@7.28.3': + dependencies: + '@babel/types': 7.28.2 + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.8)': dependencies: '@babel/core': 7.26.8 @@ -2496,30 +2528,30 @@ snapshots: '@babel/parser': 7.26.8 '@babel/template': 7.26.8 '@babel/types': 7.26.8 - debug: 4.3.4 + debug: 4.4.1 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.17.0': - dependencies: - '@babel/helper-validator-identifier': 7.16.7 - to-fast-properties: 2.0.0 - '@babel/types@7.26.8': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.28.2': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@ctrl/tinycolor@3.4.0': {} - '@element-plus/icons-vue@1.1.4(vue@3.2.25)': + '@element-plus/icons-vue@1.1.4(vue@3.5.20(typescript@4.6.2))': dependencies: - vue: 3.2.25 + vue: 3.5.20(typescript@4.6.2) - '@element-plus/icons-vue@2.0.4(vue@3.2.25)': + '@element-plus/icons-vue@2.0.4(vue@3.5.20(typescript@4.6.2))': dependencies: - vue: 3.2.25 + vue: 3.5.20(typescript@4.6.2) '@esbuild/aix-ppc64@0.25.2': optional: true @@ -2631,30 +2663,32 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} - '@iconify/types@1.0.13': {} + '@iconify/types@2.0.0': {} - '@iconify/utils@1.0.28': + '@iconify/utils@2.3.0': dependencies: - '@antfu/install-pkg': 0.1.0 - '@antfu/utils': 0.3.0 - '@iconify/types': 1.0.13 - debug: 4.3.4 - kolorist: 1.5.1 - local-pkg: 0.4.1 + '@antfu/install-pkg': 1.1.0 + '@antfu/utils': 8.1.1 + '@iconify/types': 2.0.0 + debug: 4.4.1 + globals: 15.15.0 + kolorist: 1.8.0 + local-pkg: 1.1.2 + mlly: 1.8.0 transitivePeerDependencies: - supports-color - '@intlify/core-base@9.14.3': + '@intlify/core-base@9.14.5': dependencies: - '@intlify/message-compiler': 9.14.3 - '@intlify/shared': 9.14.3 + '@intlify/message-compiler': 9.14.5 + '@intlify/shared': 9.14.5 - '@intlify/message-compiler@9.14.3': + '@intlify/message-compiler@9.14.5': dependencies: - '@intlify/shared': 9.14.3 + '@intlify/shared': 9.14.5 source-map-js: 1.2.1 - '@intlify/shared@9.14.3': {} + '@intlify/shared@9.14.5': {} '@jridgewell/gen-mapping@0.3.8': dependencies: @@ -2662,6 +2696,11 @@ snapshots: '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} @@ -2693,10 +2732,14 @@ snapshots: uuid: 10.0.0 web-vitals: 4.2.4 - '@opensig/opendesign@0.0.65(vue@3.2.25)': + '@opensig/opendesign@0.0.65(vue@3.5.20(typescript@4.6.2))': dependencies: date-fns: 2.30.0 - vue: 3.2.25 + vue: 3.5.20(typescript@4.6.2) + + '@opensig/opendesign@1.0.1(vue@3.5.20(typescript@4.6.2))': + dependencies: + vue: 3.5.20(typescript@4.6.2) '@pkgr/core@0.1.1': {} @@ -2907,11 +2950,13 @@ snapshots: '@types/lodash@4.14.180': {} - '@types/node@17.0.22': {} + '@types/node@22.0.0': + dependencies: + undici-types: 6.11.1 '@types/semver@7.5.8': {} - '@types/throttle-debounce@2.1.0': {} + '@types/web-bluetooth@0.0.21': {} '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.6.2))(eslint@8.56.0)(typescript@4.6.2)': dependencies: @@ -2955,7 +3000,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 6.21.0(typescript@4.6.2) '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@4.6.2) - debug: 4.3.4 + debug: 4.4.1 eslint: 8.56.0 ts-api-utils: 1.4.3(typescript@4.6.2) optionalDependencies: @@ -2969,7 +3014,7 @@ snapshots: dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4 + debug: 4.4.1 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -3001,20 +3046,20 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-vue-jsx@4.1.1(vite@6.3.4(@types/node@17.0.22)(sass@1.49.9))(vue@3.2.25)': + '@vitejs/plugin-vue-jsx@4.1.1(vite@6.3.4(@types/node@22.0.0)(sass@1.49.9))(vue@3.5.20(typescript@4.6.2))': dependencies: '@babel/core': 7.26.8 '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.8) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.8) - vite: 6.3.4(@types/node@17.0.22)(sass@1.49.9) - vue: 3.2.25 + vite: 6.3.4(@types/node@22.0.0)(sass@1.49.9) + vue: 3.5.20(typescript@4.6.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@4.6.2(vite@6.3.4(@types/node@17.0.22)(sass@1.49.9))(vue@3.2.25)': + '@vitejs/plugin-vue@4.6.2(vite@6.3.4(@types/node@22.0.0)(sass@1.49.9))(vue@3.5.20(typescript@4.6.2))': dependencies: - vite: 6.3.4(@types/node@17.0.22)(sass@1.49.9) - vue: 3.2.25 + vite: 6.3.4(@types/node@22.0.0)(sass@1.49.9) + vue: 3.5.20(typescript@4.6.2) '@volar/language-core@1.11.1': dependencies: @@ -3059,16 +3104,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@vue/compiler-core@3.2.25': - dependencies: - '@babel/parser': 7.24.7 - '@vue/shared': 3.2.25 - estree-walker: 2.0.2 - source-map: 0.6.1 - '@vue/compiler-core@3.4.27': dependencies: - '@babel/parser': 7.24.7 + '@babel/parser': 7.26.8 '@vue/shared': 3.4.27 entities: 4.5.0 estree-walker: 2.0.2 @@ -3082,10 +3120,13 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.2.25': + '@vue/compiler-core@3.5.20': dependencies: - '@vue/compiler-core': 3.2.25 - '@vue/shared': 3.2.25 + '@babel/parser': 7.28.3 + '@vue/shared': 3.5.20 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 '@vue/compiler-dom@3.4.27': dependencies: @@ -3097,18 +3138,10 @@ snapshots: '@vue/compiler-core': 3.5.13 '@vue/shared': 3.5.13 - '@vue/compiler-sfc@3.2.25': + '@vue/compiler-dom@3.5.20': dependencies: - '@babel/parser': 7.24.7 - '@vue/compiler-core': 3.2.25 - '@vue/compiler-dom': 3.2.25 - '@vue/compiler-ssr': 3.2.25 - '@vue/reactivity-transform': 3.2.25 - '@vue/shared': 3.2.25 - estree-walker: 2.0.2 - magic-string: 0.25.9 - postcss: 8.5.3 - source-map: 0.6.1 + '@vue/compiler-core': 3.5.20 + '@vue/shared': 3.5.20 '@vue/compiler-sfc@3.5.13': dependencies: @@ -3119,19 +3152,31 @@ snapshots: '@vue/shared': 3.5.13 estree-walker: 2.0.2 magic-string: 0.30.17 - postcss: 8.5.3 + postcss: 8.5.6 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.2.25': + '@vue/compiler-sfc@3.5.20': dependencies: - '@vue/compiler-dom': 3.2.25 - '@vue/shared': 3.2.25 + '@babel/parser': 7.28.3 + '@vue/compiler-core': 3.5.20 + '@vue/compiler-dom': 3.5.20 + '@vue/compiler-ssr': 3.5.20 + '@vue/shared': 3.5.20 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.5.6 + source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.13': dependencies: '@vue/compiler-dom': 3.5.13 '@vue/shared': 3.5.13 + '@vue/compiler-ssr@3.5.20': + dependencies: + '@vue/compiler-dom': 3.5.20 + '@vue/shared': 3.5.20 + '@vue/devtools-api@6.1.3': {} '@vue/devtools-api@6.6.4': {} @@ -3171,56 +3216,62 @@ snapshots: optionalDependencies: typescript: 4.6.2 - '@vue/reactivity-transform@3.2.25': + '@vue/reactivity@3.5.20': dependencies: - '@babel/parser': 7.24.7 - '@vue/compiler-core': 3.2.25 - '@vue/shared': 3.2.25 - estree-walker: 2.0.2 - magic-string: 0.25.9 - - '@vue/reactivity@3.2.25': - dependencies: - '@vue/shared': 3.2.25 + '@vue/shared': 3.5.20 - '@vue/runtime-core@3.2.25': + '@vue/runtime-core@3.5.20': dependencies: - '@vue/reactivity': 3.2.25 - '@vue/shared': 3.2.25 + '@vue/reactivity': 3.5.20 + '@vue/shared': 3.5.20 - '@vue/runtime-dom@3.2.25': + '@vue/runtime-dom@3.5.20': dependencies: - '@vue/runtime-core': 3.2.25 - '@vue/shared': 3.2.25 - csstype: 2.6.21 + '@vue/reactivity': 3.5.20 + '@vue/runtime-core': 3.5.20 + '@vue/shared': 3.5.20 + csstype: 3.1.3 - '@vue/server-renderer@3.2.25(vue@3.2.25)': + '@vue/server-renderer@3.5.20(vue@3.5.20(typescript@4.6.2))': dependencies: - '@vue/compiler-ssr': 3.2.25 - '@vue/shared': 3.2.25 - vue: 3.2.25 - - '@vue/shared@3.2.25': {} + '@vue/compiler-ssr': 3.5.20 + '@vue/shared': 3.5.20 + vue: 3.5.20(typescript@4.6.2) '@vue/shared@3.4.27': {} '@vue/shared@3.5.13': {} - '@vueuse/core@8.1.2(vue@3.2.25)': + '@vue/shared@3.5.20': {} + + '@vueuse/core@13.9.0(vue@3.5.20(typescript@4.6.2))': + dependencies: + '@types/web-bluetooth': 0.0.21 + '@vueuse/metadata': 13.9.0 + '@vueuse/shared': 13.9.0(vue@3.5.20(typescript@4.6.2)) + vue: 3.5.20(typescript@4.6.2) + + '@vueuse/core@8.1.2(vue@3.5.20(typescript@4.6.2))': dependencies: '@vueuse/metadata': 8.1.2 - '@vueuse/shared': 8.1.2(vue@3.2.25) - vue-demi: 0.12.4(vue@3.2.25) + '@vueuse/shared': 8.1.2(vue@3.5.20(typescript@4.6.2)) + vue-demi: 0.12.4(vue@3.5.20(typescript@4.6.2)) optionalDependencies: - vue: 3.2.25 + vue: 3.5.20(typescript@4.6.2) + + '@vueuse/metadata@13.9.0': {} '@vueuse/metadata@8.1.2': {} - '@vueuse/shared@8.1.2(vue@3.2.25)': + '@vueuse/shared@13.9.0(vue@3.5.20(typescript@4.6.2))': + dependencies: + vue: 3.5.20(typescript@4.6.2) + + '@vueuse/shared@8.1.2(vue@3.5.20(typescript@4.6.2))': dependencies: - vue-demi: 0.12.4(vue@3.2.25) + vue-demi: 0.12.4(vue@3.5.20(typescript@4.6.2)) optionalDependencies: - vue: 3.2.25 + vue: 3.5.20(typescript@4.6.2) acorn-jsx@5.3.2(acorn@8.11.3): dependencies: @@ -3230,6 +3281,8 @@ snapshots: acorn@8.11.3: {} + acorn@8.15.0: {} + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -3256,10 +3309,10 @@ snapshots: asynckit@0.4.0: {} - axios@1.8.2: + axios@1.12.0: dependencies: follow-redirects: 1.15.6 - form-data: 4.0.2 + form-data: 4.0.4 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -3344,6 +3397,10 @@ snapshots: concat-map@0.0.1: {} + confbox@0.1.8: {} + + confbox@0.2.2: {} + convert-source-map@2.0.0: {} cross-spawn@7.0.3: @@ -3356,7 +3413,7 @@ snapshots: dependencies: utrie: 1.0.2 - csstype@2.6.21: {} + csstype@3.1.3: {} d3-array@3.1.6: dependencies: @@ -3522,6 +3579,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.4.1: + dependencies: + ms: 2.1.3 + deep-is@0.1.4: {} delaunator@5.0.0: @@ -3555,12 +3616,12 @@ snapshots: electron-to-chromium@1.5.98: {} - element-plus@2.1.4(@types/lodash-es@4.17.6)(vue@3.2.25): + element-plus@2.1.4(@types/lodash-es@4.17.6)(vue@3.5.20(typescript@4.6.2)): dependencies: '@ctrl/tinycolor': 3.4.0 - '@element-plus/icons-vue': 1.1.4(vue@3.2.25) + '@element-plus/icons-vue': 1.1.4(vue@3.5.20(typescript@4.6.2)) '@popperjs/core': 2.11.4 - '@vueuse/core': 8.1.2(vue@3.2.25) + '@vueuse/core': 8.1.2(vue@3.5.20(typescript@4.6.2)) async-validator: 4.0.7 dayjs: 1.11.0 escape-html: 1.0.3 @@ -3569,7 +3630,7 @@ snapshots: lodash-unified: 1.0.2(@types/lodash-es@4.17.6)(lodash-es@4.17.21)(lodash@4.17.21) memoize-one: 6.0.0 normalize-wheel-es: 1.1.1 - vue: 3.2.25 + vue: 3.5.20(typescript@4.6.2) transitivePeerDependencies: - '@types/lodash-es' - '@vue/composition-api' @@ -3744,17 +3805,7 @@ snapshots: esutils@2.0.3: {} - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 + exsolve@1.0.7: {} fast-deep-equal@3.1.3: {} @@ -3802,11 +3853,12 @@ snapshots: follow-redirects@1.15.6: {} - form-data@4.0.2: + form-data@4.0.4: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 + hasown: 2.0.2 mime-types: 2.1.35 fs.realpath@1.0.0: {} @@ -3836,8 +3888,6 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-stream@6.0.1: {} - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -3861,6 +3911,8 @@ snapshots: dependencies: type-fest: 0.20.2 + globals@15.15.0: {} + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -3895,8 +3947,6 @@ snapshots: css-line-break: 2.1.0 text-segmentation: 1.0.3 - human-signals@2.1.0: {} - iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 @@ -3941,8 +3991,6 @@ snapshots: is-path-inside@3.0.3: {} - is-stream@2.0.1: {} - isexe@2.0.0: {} js-cookie@3.0.5: {} @@ -3963,17 +4011,21 @@ snapshots: jsonc-parser@3.2.0: {} - kolorist@1.5.1: {} + kolorist@1.8.0: {} levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - local-pkg@0.4.1: {} - local-pkg@0.4.3: {} + local-pkg@1.1.2: + dependencies: + mlly: 1.8.0 + pkg-types: 2.3.0 + quansync: 0.2.11 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -3994,10 +4046,6 @@ snapshots: dependencies: yallist: 3.1.1 - magic-string@0.25.9: - dependencies: - sourcemap-codec: 1.4.8 - magic-string@0.26.7: dependencies: sourcemap-codec: 1.4.8 @@ -4018,8 +4066,6 @@ snapshots: memoize-one@6.0.0: {} - merge-stream@2.0.0: {} - merge2@1.4.1: {} micromatch@4.0.4: @@ -4033,8 +4079,6 @@ snapshots: dependencies: mime-db: 1.52.0 - mimic-fn@2.1.0: {} - minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -4054,10 +4098,21 @@ snapshots: pkg-types: 1.0.3 ufo: 1.3.2 + mlly@1.8.0: + dependencies: + acorn: 8.15.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.1 + ms@2.1.2: {} + ms@2.1.3: {} + muggle-string@0.3.1: {} + nanoid@3.3.11: {} + nanoid@3.3.8: {} natural-compare@1.4.0: {} @@ -4070,18 +4125,10 @@ snapshots: normalize.css@8.0.1: {} - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - once@1.4.0: dependencies: wrappy: 1.0.2 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -4099,6 +4146,8 @@ snapshots: dependencies: p-limit: 3.1.0 + package-manager-detector@1.3.0: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -4117,17 +4166,21 @@ snapshots: pathe@1.1.1: {} + pathe@2.0.3: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} picomatch@4.0.2: {} - pinia@2.0.12(typescript@4.6.2)(vue@3.2.25): + picomatch@4.0.3: {} + + pinia@2.0.12(typescript@4.6.2)(vue@3.5.20(typescript@4.6.2)): dependencies: '@vue/devtools-api': 6.1.3 - vue: 3.2.25 - vue-demi: 0.12.4(vue@3.2.25) + vue: 3.5.20(typescript@4.6.2) + vue-demi: 0.12.4(vue@3.5.20(typescript@4.6.2)) optionalDependencies: typescript: 4.6.2 @@ -4137,12 +4190,30 @@ snapshots: mlly: 1.4.2 pathe: 1.1.1 + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.0 + pathe: 2.0.3 + + pkg-types@2.3.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.7 + pathe: 2.0.3 + postcss@8.5.3: dependencies: nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + prelude-ls@1.2.1: {} prettier-linter-helpers@1.0.0: @@ -4155,6 +4226,8 @@ snapshots: punycode@2.1.1: {} + quansync@0.2.11: {} + queue-microtask@1.2.3: {} readdirp@3.6.0: @@ -4229,16 +4302,12 @@ snapshots: shebang-regex@3.0.0: {} - signal-exit@3.0.7: {} - slash@3.0.0: {} source-map-js@1.0.2: {} source-map-js@1.2.1: {} - source-map@0.6.1: {} - sourcemap-codec@1.4.8: {} ssr-window@4.0.2: {} @@ -4247,8 +4316,6 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-final-newline@2.0.0: {} - strip-json-comments@3.1.1: {} strip-literal@1.3.0: @@ -4279,13 +4346,13 @@ snapshots: text-table@0.2.0: {} + tinyexec@1.0.1: {} + tinyglobby@0.2.13: dependencies: fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 - to-fast-properties@2.0.0: {} - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -4310,6 +4377,10 @@ snapshots: ufo@1.3.2: {} + ufo@1.6.1: {} + + undici-types@6.11.1: {} + unimport@1.3.0(rollup@4.40.0): dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.40.0) @@ -4326,7 +4397,7 @@ snapshots: transitivePeerDependencies: - rollup - unplugin-auto-import@0.11.5(@vueuse/core@8.1.2(vue@3.2.25))(rollup@4.40.0): + unplugin-auto-import@0.11.5(@vueuse/core@13.9.0(vue@3.5.20(typescript@4.6.2)))(rollup@4.40.0): dependencies: '@antfu/utils': 0.7.8 '@rollup/pluginutils': 5.1.0(rollup@4.40.0) @@ -4335,30 +4406,24 @@ snapshots: unimport: 1.3.0(rollup@4.40.0) unplugin: 1.10.1 optionalDependencies: - '@vueuse/core': 8.1.2(vue@3.2.25) + '@vueuse/core': 13.9.0(vue@3.5.20(typescript@4.6.2)) transitivePeerDependencies: - rollup - unplugin-icons@0.14.0(@vue/compiler-sfc@3.5.13)(esbuild@0.25.2)(rollup@4.40.0)(vite@6.3.4(@types/node@17.0.22)(sass@1.49.9))(vue-template-compiler@2.7.16): + unplugin-icons@22.2.0(@vue/compiler-sfc@3.5.20)(vue-template-compiler@2.7.16): dependencies: - '@antfu/install-pkg': 0.1.0 - '@antfu/utils': 0.5.0 - '@iconify/utils': 1.0.28 - debug: 4.3.4 - kolorist: 1.5.1 - local-pkg: 0.4.1 - unplugin: 0.5.2(esbuild@0.25.2)(rollup@4.40.0)(vite@6.3.4(@types/node@17.0.22)(sass@1.49.9)) + '@antfu/install-pkg': 1.1.0 + '@iconify/utils': 2.3.0 + debug: 4.4.1 + local-pkg: 1.1.2 + unplugin: 2.3.10 optionalDependencies: - '@vue/compiler-sfc': 3.5.13 + '@vue/compiler-sfc': 3.5.20 vue-template-compiler: 2.7.16 transitivePeerDependencies: - - esbuild - - rollup - supports-color - - vite - - webpack - unplugin-vue-components@0.26.0(@babel/parser@7.26.8)(rollup@4.40.0)(vue@3.2.25): + unplugin-vue-components@0.26.0(@babel/parser@7.28.3)(rollup@4.40.0)(vue@3.5.20(typescript@4.6.2)): dependencies: '@antfu/utils': 0.7.8 '@rollup/pluginutils': 5.1.0(rollup@4.40.0) @@ -4370,23 +4435,13 @@ snapshots: minimatch: 9.0.4 resolve: 1.22.8 unplugin: 1.10.1 - vue: 3.2.25 + vue: 3.5.20(typescript@4.6.2) optionalDependencies: - '@babel/parser': 7.26.8 + '@babel/parser': 7.28.3 transitivePeerDependencies: - rollup - supports-color - unplugin@0.5.2(esbuild@0.25.2)(rollup@4.40.0)(vite@6.3.4(@types/node@17.0.22)(sass@1.49.9)): - dependencies: - chokidar: 3.5.3 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.4.3 - optionalDependencies: - esbuild: 0.25.2 - rollup: 4.40.0 - vite: 6.3.4(@types/node@17.0.22)(sass@1.49.9) - unplugin@1.10.1: dependencies: acorn: 8.11.3 @@ -4394,6 +4449,13 @@ snapshots: webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.2 + unplugin@2.3.10: + dependencies: + '@jridgewell/remapping': 2.3.5 + acorn: 8.15.0 + picomatch: 4.0.3 + webpack-virtual-modules: 0.6.2 + update-browserslist-db@1.1.2(browserslist@4.24.4): dependencies: browserslist: 4.24.4 @@ -4410,7 +4472,7 @@ snapshots: uuid@10.0.0: {} - vite@6.3.4(@types/node@17.0.22)(sass@1.49.9): + vite@6.3.4(@types/node@22.0.0)(sass@1.49.9): dependencies: esbuild: 0.25.2 fdir: 6.4.4(picomatch@4.0.2) @@ -4419,17 +4481,17 @@ snapshots: rollup: 4.40.0 tinyglobby: 0.2.13 optionalDependencies: - '@types/node': 17.0.22 + '@types/node': 22.0.0 fsevents: 2.3.3 sass: 1.49.9 - vue-demi@0.12.4(vue@3.2.25): + vue-demi@0.12.4(vue@3.5.20(typescript@4.6.2)): dependencies: - vue: 3.2.25 + vue: 3.5.20(typescript@4.6.2) vue-eslint-parser@8.3.0(eslint@8.56.0): dependencies: - debug: 4.3.4 + debug: 4.4.1 eslint: 8.56.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 @@ -4453,17 +4515,17 @@ snapshots: transitivePeerDependencies: - supports-color - vue-i18n@9.14.3(vue@3.2.25): + vue-i18n@9.14.5(vue@3.5.20(typescript@4.6.2)): dependencies: - '@intlify/core-base': 9.14.3 - '@intlify/shared': 9.14.3 + '@intlify/core-base': 9.14.5 + '@intlify/shared': 9.14.5 '@vue/devtools-api': 6.6.4 - vue: 3.2.25 + vue: 3.5.20(typescript@4.6.2) - vue-router@4.0.14(vue@3.2.25): + vue-router@4.5.1(vue@3.5.20(typescript@4.6.2)): dependencies: - '@vue/devtools-api': 6.1.3 - vue: 3.2.25 + '@vue/devtools-api': 6.6.4 + vue: 3.5.20(typescript@4.6.2) vue-template-compiler@2.7.16: dependencies: @@ -4477,20 +4539,20 @@ snapshots: semver: 7.6.2 typescript: 4.6.2 - vue@3.2.25: + vue@3.5.20(typescript@4.6.2): dependencies: - '@vue/compiler-dom': 3.2.25 - '@vue/compiler-sfc': 3.2.25 - '@vue/runtime-dom': 3.2.25 - '@vue/server-renderer': 3.2.25(vue@3.2.25) - '@vue/shared': 3.2.25 + '@vue/compiler-dom': 3.5.20 + '@vue/compiler-sfc': 3.5.20 + '@vue/runtime-dom': 3.5.20 + '@vue/server-renderer': 3.5.20(vue@3.5.20(typescript@4.6.2)) + '@vue/shared': 3.5.20 + optionalDependencies: + typescript: 4.6.2 web-vitals@4.2.4: {} webpack-sources@3.2.3: {} - webpack-virtual-modules@0.4.3: {} - webpack-virtual-modules@0.6.2: {} which@2.0.2: