Merge branch 'main' of repo.leafdev.top:Leaf/amber-ui
All checks were successful
Build / build (push) Successful in 1m32s

This commit is contained in:
ivamp 2024-10-14 00:06:11 +08:00
commit 71cfbb722a
6 changed files with 44 additions and 31 deletions

View File

@ -68,6 +68,9 @@
"onWatcherCleanup": true,
"useId": true,
"useModel": true,
"useTemplateRef": true
"useTemplateRef": true,
"DirectiveBinding": true,
"MaybeRef": true,
"MaybeRefOrGetter": true
}
}

View File

@ -17,7 +17,7 @@ spec:
- name: leaf
containers:
- name: amber
image: leafdev.top/leaf/amber-ui:dbdc39f
image: leafdev.top/leaf/amber-ui:7fc0dac
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80

View File

@ -3,6 +3,7 @@
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// Generated by unplugin-auto-import
// biome-ignore lint: disable
export {}
declare global {
const EffectScope: typeof import('vue')['EffectScope']
@ -67,7 +68,7 @@ declare global {
// for type re-export
declare global {
// @ts-ignore
export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
import('vue')
}
// for vue template auto import
@ -105,6 +106,7 @@ declare module 'vue' {
readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
readonly onWatcherCleanup: UnwrapRef<typeof import('vue')['onWatcherCleanup']>
readonly provide: UnwrapRef<typeof import('vue')['provide']>
readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
@ -122,9 +124,12 @@ declare module 'vue' {
readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
readonly useId: UnwrapRef<typeof import('vue')['useId']>
readonly useModel: UnwrapRef<typeof import('vue')['useModel']>
readonly useRoute: UnwrapRef<typeof import('vue-router/auto')['useRoute']>
readonly useRouter: UnwrapRef<typeof import('vue-router/auto')['useRouter']>
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
readonly watch: UnwrapRef<typeof import('vue')['watch']>
readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>

1
src/components.d.ts vendored
View File

@ -9,7 +9,6 @@ declare module 'vue' {
export interface GlobalComponents {
AccountSettings: typeof import('./components/settings/AccountSettings.vue')['default']
AssistantMenu: typeof import('./components/AssistantMenu.vue')['default']
AssistantPublistSettings: typeof import('./components/settings/AssistantPublistSettings.vue')['default']
AssistantSettings: typeof import('./components/settings/AssistantSettings.vue')['default']
Chat: typeof import('./components/chat/Chat.vue')['default']
ChatMenu: typeof import('./components/ChatMenu.vue')['default']

View File

@ -5,21 +5,23 @@ document.head.appendChild(meta);
import "./styles/style.css";
import "./styles/color.less";
import "animate.css";
import { registerPlugins } from "./plugins";
import { createApp } from 'vue'
import App from './App.vue'
import naive from 'naive-ui'
import router from "./router";
import { registerPlugins } from "./plugins";
const app = createApp(App)
import App from "./App.vue";
import { createApp } from "vue";
const app = createApp(App);
app.use(naive)
registerPlugins(app);
app.use(router);
// @ts-ignore ...
if (process.env.NODE_ENV === "production") {
setTimeout(() => {
const appContainer = document.getElementById("app");
@ -28,7 +30,6 @@ if (process.env.NODE_ENV === "production") {
}
setTimeout(() => {
const defaultLoader = document.getElementById("default-loader");
// remove
defaultLoader?.remove();
}, 300);
@ -36,7 +37,9 @@ if (process.env.NODE_ENV === "production") {
app.mount("#app");
}, 300);
setTimeout(() => {
appContainer!.style.opacity = "1";
if (appContainer) {
appContainer.style.opacity = "1";
}
}, 300);
}, 200);
} else {

View File

@ -4,16 +4,16 @@
<div class="container">
<!-- Spotlight 区域 -->
<n-card class="spotlight" :bordered="false">
<div class="background-pattern"></div>
<div class="background-text">
Leaflow <span class="background-amber">Amber</span>
</div>
<div class="spotlight-content">
<h1 class="title">Leaflow <span class="amber-text">Amber</span></h1>
<h1 class="title break-normal">
Leaflow <span class="amber-text">Amber</span>
</h1>
<p class="subtitle">
下一代智能体平台为您的数字生活带来革命性变化
<br class="mobile-break" />
<a href="#" class="cta-link">立即体验 🚀</a>
<a @click="gotoLogin" class="cta-link cursor-pointer"
>立即体验 🚀</a
>
</p>
<div
class="stats"
@ -85,17 +85,18 @@
<!-- 功能特点展示 -->
<div class="features-section">
<h2 class="section-title">Amber 核心特性</h2>
<n-grid :cols="3" :x-gap="24" :y-gap="24" responsive="screen">
<n-gi
span="3 m:1"
v-for="(feature, index) in features"
:key="index"
>
<n-grid
cols="1 m:2 l:3 xl:3 2xl:3"
:x-gap="24"
:y-gap="24"
responsive="screen"
>
<n-gi v-for="(feature, index) in features" :key="index">
<div
class="feature-card"
@click="toggleFeatureDescription(feature)"
>
<div class="feature-content">
<div>
<div class="feature-icon">{{ feature.icon }}</div>
<div class="feature-title">{{ feature.title }}</div>
<transition name="fade-height" mode="out-in">
@ -156,13 +157,17 @@ import {
} from "naive-ui";
import { SchemaSiteUsageResponse } from "@/api";
import getApi from "@/plugins/api";
import grouppng from "@/assets/images/group.png";
import router from "@/router";
const osTheme = useOsTheme();
const theme = computed(() => (osTheme.value === "dark" ? darkTheme : null));
const siteUsage = ref<SchemaSiteUsageResponse>({});
const gotoLogin = () => {
router.push("/auth/login");
};
const features = ref([
{
icon: "💬",
@ -219,8 +224,7 @@ const partners = ref([
name: "HiMCBBS 我的世界中文论坛",
logo: "https://www.himcbbs.com/data/assets/logo/wxmc_logo_text_blue.svg",
link: "https://www.himcbbs.com/",
description:
"中国最大的我的世界玩家社区,提供游戏资讯、模组下载和创意分享。",
description: "中国我的世界玩家社区,提供游戏资讯、模组下载和创意分享。",
},
//
]);
@ -266,7 +270,6 @@ body {
'theme ? "rgba(0, 0, 0, 0.5)" : "rgba(78, 187, 192, 0.1)"'
);
backdrop-filter: blur(10px);
height: 70vh;
min-height: 500px;
display: flex;
align-items: center;