d35771f97d
* fix: patch pip distlib finder for frozen electron runtime * fix: use certifi CA bundle for runtime SSL requests * fix: configure certifi CA before core imports * fix: improve mac font fallback for dashboard text * fix: harden frozen pip patch and unify TLS connector * refactor: centralize dashboard CJK font fallback stacks * perf: reuse TLS context and avoid repeated frozen pip patch * refactor: bootstrap TLS setup before core imports * fix: use async confirm dialog for provider deletions * fix: replace native confirm dialogs in dashboard - Add shared confirm helper in dashboard/src/utils/confirmDialog.ts for async dialog usage with safe fallback. - Migrate provider, chat, config, session, platform, persona, MCP, backup, and knowledge-base delete/close confirmations to use the shared helper. - Remove scattered inline confirm handling to keep behavior consistent and avoid native blocking dialog focus/caret issues in Electron. * fix: capture runtime bootstrap logs after logger init - Add bootstrap record buffer in runtime_bootstrap for early TLS patch logs before logger is ready. - Flush buffered bootstrap logs to astrbot logger at process startup in main.py. - Include concrete exception details for TLS bootstrap failures to improve diagnosis. * fix: harden runtime bootstrap and unify confirm handling - Simplify bootstrap log buffering and add a public initialize hook for non-main startup paths. - Guard aiohttp TLS patching with feature/type checks and keep graceful fallback when internals are unavailable. - Standardize dashboard confirmation flow via shared confirm helpers across composition and options API components. * refactor: simplify runtime tls bootstrap and tighten confirm typing * refactor: align ssl helper namespace and confirm usage
133 lines
2.9 KiB
SCSS
133 lines
2.9 KiB
SCSS
@use 'sass:math';
|
|
@use 'sass:map';
|
|
@use 'sass:meta';
|
|
@use 'vuetify/lib/styles/tools/functions' as *;
|
|
|
|
// This will false all colors which is not necessory for theme
|
|
$color-pack: false;
|
|
|
|
// Global font size and border radius
|
|
$font-size-root: 1rem;
|
|
$border-radius-root: 8px;
|
|
$cjk-sans-fallback: 'PingFang SC', 'Hiragino Sans GB', 'Noto Sans CJK SC', 'Microsoft YaHei' !default;
|
|
$cjk-mono-fallback: 'PingFang SC', 'PingFang TC', 'Hiragino Sans GB', 'Noto Sans CJK SC', 'Microsoft YaHei' !default;
|
|
|
|
:root {
|
|
--astrbot-font-cjk-sans: #{$cjk-sans-fallback};
|
|
--astrbot-font-cjk-mono: #{$cjk-mono-fallback};
|
|
}
|
|
|
|
$body-font-family: 'Roboto', $cjk-sans-fallback, sans-serif !default;
|
|
$heading-font-family: $body-font-family !default;
|
|
$btn-font-weight: 400 !default;
|
|
$btn-letter-spacing: 0 !default;
|
|
|
|
// Global Radius as per breakeven point
|
|
$rounded: () !default;
|
|
$rounded: map-deep-merge(
|
|
(
|
|
0: 0,
|
|
'sm': $border-radius-root * 0.5,
|
|
null: $border-radius-root,
|
|
'md': $border-radius-root * 1,
|
|
'lg': $border-radius-root * 2,
|
|
'xl': $border-radius-root * 6,
|
|
'pill': 9999px,
|
|
'circle': 50%,
|
|
'shaped': $border-radius-root * 6 0
|
|
),
|
|
$rounded
|
|
);
|
|
// Global Typography
|
|
$typography: () !default;
|
|
$typography: map-deep-merge(
|
|
(
|
|
'h1': (
|
|
'size': 2.125rem,
|
|
'weight': 700,
|
|
'line-height': 3.5rem,
|
|
'font-family': inherit
|
|
),
|
|
'h2': (
|
|
'size': 1.5rem,
|
|
'weight': 700,
|
|
'line-height': 2.5rem,
|
|
'font-family': inherit
|
|
),
|
|
'h3': (
|
|
'size': 1.25rem,
|
|
'weight': 600,
|
|
'line-height': 2rem,
|
|
'font-family': inherit
|
|
),
|
|
'h4': (
|
|
'size': 1rem,
|
|
'weight': 600,
|
|
'line-height': 1.5rem,
|
|
'font-family': inherit
|
|
),
|
|
'h5': (
|
|
'size': 0.875rem,
|
|
'weight': 500,
|
|
'line-height': 1.2rem,
|
|
'font-family': inherit
|
|
),
|
|
'h6': (
|
|
'size': 0.75rem,
|
|
'weight': 500,
|
|
'font-family': inherit
|
|
),
|
|
'subtitle-1': (
|
|
'size': 0.875rem,
|
|
'weight': 500,
|
|
'line-height': 1rem,
|
|
'font-family': inherit
|
|
),
|
|
'subtitle-2': (
|
|
'size': 0.75rem,
|
|
'weight': 400,
|
|
'line-height': 1rem,
|
|
'font-family': inherit
|
|
),
|
|
'body-1': (
|
|
'size': 0.875rem,
|
|
'weight': 400,
|
|
'font-family': inherit
|
|
),
|
|
'body-2': (
|
|
'size': 0.75rem,
|
|
'weight': 400,
|
|
'font-family': inherit
|
|
),
|
|
'button': (
|
|
'size': 0.875rem,
|
|
'weight': 500,
|
|
'font-family': inherit,
|
|
'text-transform': uppercase
|
|
),
|
|
'caption': (
|
|
'size': 0.75rem,
|
|
'weight': 400,
|
|
'font-family': inherit
|
|
),
|
|
'overline': (
|
|
'size': 0.75rem,
|
|
'weight': 500,
|
|
'font-family': inherit,
|
|
'text-transform': uppercase
|
|
)
|
|
),
|
|
$typography
|
|
);
|
|
|
|
// Custom Variables
|
|
// colors
|
|
$white: #fff !default;
|
|
|
|
// cards
|
|
$card-item-spacer-xy: 20px 24px !default;
|
|
$card-text-spacer: 24px !default;
|
|
$card-title-size: 18px !default;
|
|
// Global Shadow
|
|
$box-shadow: 1px 0 20px rgb(0 0 0 / 8%);
|