Sync source to CNB / Sync Git ref (push) Skipped
将崩溃弹窗替换为双栏布局:左侧展示诊断摘要与分享入口, 右侧提供日志文件浏览器与 LogAgent 流式分析输出。 - MinecraftCrashModal 改用新版的分享票据、结构化摘要与 AI 事件流 - 新增 minecraft-crash-logs 工具函数,用于筛选与合并崩溃日志 - 事件层新增 logshare_ai_listener 监听 AI 分析进度 - log-share 工具更新为支持 provider 路由的新版 - Button 组件对齐新版(补 icon-only、circular、2xs 与 chip/highlight 变体) - console 导出 LogViewport,供日志浏览器复用 - 补齐 en-US / zh-CN 相关文案
41 lines
930 B
Vue
41 lines
930 B
Vue
<script setup lang="ts">
|
|
import { computed, ref } from 'vue'
|
|
|
|
import ButtonFrame from './ButtonFrame.vue'
|
|
import type { ButtonProps } from './types'
|
|
|
|
const props = withDefaults(defineProps<ButtonProps>(), {
|
|
type: 'base',
|
|
size: 'md',
|
|
iconOnly: false,
|
|
circular: false,
|
|
nativeType: 'button',
|
|
disabled: false,
|
|
loading: false,
|
|
})
|
|
|
|
const frame = ref<InstanceType<typeof ButtonFrame> | null>(null)
|
|
const element = computed(() => frame.value?.element ?? null)
|
|
|
|
defineExpose({ element })
|
|
</script>
|
|
|
|
<template>
|
|
<ButtonFrame
|
|
ref="frame"
|
|
as="button"
|
|
:type="props.type"
|
|
:color="props.color"
|
|
:size="props.size"
|
|
:interaction="props.interaction"
|
|
:icon-only="props.iconOnly"
|
|
:circular="props.circular"
|
|
:native-type="props.nativeType"
|
|
:disabled="props.disabled || props.loading"
|
|
:aria-label="props.iconOnly ? props.label : undefined"
|
|
:aria-busy="props.loading || undefined"
|
|
>
|
|
<slot />
|
|
</ButtonFrame>
|
|
</template>
|