@inpageedit/core 0.11.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/dist/ActionButton-CRjo_l3y.js +24 -0
- package/dist/ActionButton-CRjo_l3y.js.map +1 -0
- package/dist/{CheckBox-D3rHnX7I.js → CheckBox-Bc79KBEB.js} +2 -2
- package/dist/{CheckBox-D3rHnX7I.js.map → CheckBox-Bc79KBEB.js.map} +1 -1
- package/dist/{IconQuickEdit-CAL1HXIb.js → IconQuickEdit-CMCQncyj.js} +2 -2
- package/dist/IconQuickEdit-CMCQncyj.js.map +1 -0
- package/dist/InPageEdit.d.ts +5 -1
- package/dist/{InputBox-BV4m05Xs.js → InputBox-DZAdyZ4B.js} +2 -2
- package/dist/InputBox-DZAdyZ4B.js.map +1 -0
- package/dist/PluginPrefSync-BPQkNtX8.js +292 -0
- package/dist/PluginPrefSync-BPQkNtX8.js.map +1 -0
- package/dist/PluginStoreApp-Cxspe6t8.js +158 -0
- package/dist/PluginStoreApp-Cxspe6t8.js.map +1 -0
- package/dist/Preferences-DS4-CFWe.js.map +1 -1
- package/dist/{RadioBox-nJqWsxW2.js → RadioBox-0UuxlcWZ.js} +2 -2
- package/dist/{RadioBox-nJqWsxW2.js.map → RadioBox-0UuxlcWZ.js.map} +1 -1
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js +10 -0
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js.map +1 -0
- package/dist/components/index.js +51 -69
- package/dist/components/index.js.map +1 -1
- package/dist/constants/endpoints.d.ts +2 -1
- package/dist/index-B5DtUqkK.js +180 -0
- package/dist/index-B5DtUqkK.js.map +1 -0
- package/dist/{index-BUI2IX49.js → index-BXaiDKnr.js} +2312 -2315
- package/dist/index-BXaiDKnr.js.map +1 -0
- package/dist/{index-BNDyaWnI.js → index-Bv7Dw5eO.js} +10 -9
- package/dist/index-Bv7Dw5eO.js.map +1 -0
- package/dist/{index-MhNAv9Vf.js → index-CB7TltEb.js} +25 -30
- package/dist/index-CB7TltEb.js.map +1 -0
- package/dist/{index-lZkYoUca.js → index-CG38LlAh.js} +2 -2
- package/dist/index-CG38LlAh.js.map +1 -0
- package/dist/{index-BQzuJxBO.js → index-CJFePavo.js} +4 -4
- package/dist/index-CJFePavo.js.map +1 -0
- package/dist/{index-CvhkVj_L.js → index-CM_6yF2v.js} +3 -3
- package/dist/{index-CvhkVj_L.js.map → index-CM_6yF2v.js.map} +1 -1
- package/dist/{index-U2RPZk8N.js → index-CPoUaSMw.js} +8 -8
- package/dist/index-CPoUaSMw.js.map +1 -0
- package/dist/{index-CfgnJ51A.js → index-CYc6LH26.js} +53 -43
- package/dist/index-CYc6LH26.js.map +1 -0
- package/dist/index-CZXxH2-9.js +173 -0
- package/dist/index-CZXxH2-9.js.map +1 -0
- package/dist/{index-D5J7RU5I.js → index-Ckozkp6W.js} +5 -7
- package/dist/index-Ckozkp6W.js.map +1 -0
- package/dist/{index-etJXONAj.js → index-D4uwfUZL.js} +6 -6
- package/dist/index-D4uwfUZL.js.map +1 -0
- package/dist/{index-Bh70Udzi.js → index-DD5CVCfD.js} +2 -2
- package/dist/index-DD5CVCfD.js.map +1 -0
- package/dist/index-DEav9Ptt.js +365 -0
- package/dist/index-DEav9Ptt.js.map +1 -0
- package/dist/index-hSl8LzNb.js +1169 -0
- package/dist/index-hSl8LzNb.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/makeCallable-LDU0xZMJ.js.map +1 -1
- package/dist/models/MemoryStorage.d.ts +10 -0
- package/dist/models/WikiPage/index.d.ts +14 -0
- package/dist/noop-ClDc6zv4.js.map +1 -1
- package/dist/plugins/in-article-links/index.d.ts +5 -0
- package/dist/plugins/plugin-store/index.d.ts +59 -0
- package/dist/plugins/plugin-store/schema.d.ts +41 -0
- package/dist/plugins/preferences-ui/PluginPrefSync.d.ts +1 -0
- package/dist/plugins/preferences-ui/index.d.ts +34 -5
- package/dist/plugins/quick-delete/index.d.ts +3 -0
- package/dist/plugins/quick-diff/index.d.ts +3 -0
- package/dist/plugins/quick-edit/index.d.ts +8 -0
- package/dist/plugins/quick-move/index.d.ts +5 -3
- package/dist/plugins/quick-preview/index.d.ts +4 -0
- package/dist/plugins/quick-redirect/index.d.ts +11 -4
- package/dist/plugins/toolbox/index.d.ts +3 -0
- package/dist/services/PreferencesService.d.ts +53 -11
- package/dist/services/ResourceLoaderService.d.ts +3 -0
- package/dist/services/WikiMetadataService.d.ts +1 -1
- package/dist/services/storage/index.d.ts +18 -8
- package/dist/services/storage/{IPEStorageManager.d.ts → managers/IDBStorageManager.d.ts} +9 -6
- package/dist/services/storage/managers/LocalStorageManager.d.ts +27 -0
- package/dist/style.css +1 -1
- package/dist/vueHooks-D0uVqbO-.js +4032 -0
- package/dist/vueHooks-D0uVqbO-.js.map +1 -0
- package/lib/index.umd.js +11 -115
- package/lib/index.umd.js.map +1 -1
- package/lib/style.css +1 -1
- package/package.json +14 -14
- package/dist/IconQuickEdit-CAL1HXIb.js.map +0 -1
- package/dist/InputBox-BV4m05Xs.js.map +0 -1
- package/dist/PluginPrefSync-COidewzp.js +0 -258
- package/dist/PluginPrefSync-COidewzp.js.map +0 -1
- package/dist/index-BNDyaWnI.js.map +0 -1
- package/dist/index-BQzuJxBO.js.map +0 -1
- package/dist/index-BUI2IX49.js.map +0 -1
- package/dist/index-Bh70Udzi.js.map +0 -1
- package/dist/index-CBszdxJJ.js +0 -159
- package/dist/index-CBszdxJJ.js.map +0 -1
- package/dist/index-CfgnJ51A.js.map +0 -1
- package/dist/index-Cx4qgCJK.js +0 -4914
- package/dist/index-Cx4qgCJK.js.map +0 -1
- package/dist/index-D5J7RU5I.js.map +0 -1
- package/dist/index-MhNAv9Vf.js.map +0 -1
- package/dist/index-U2RPZk8N.js.map +0 -1
- package/dist/index-VnRKIVau.js +0 -167
- package/dist/index-VnRKIVau.js.map +0 -1
- package/dist/index-etJXONAj.js.map +0 -1
- package/dist/index-lZkYoUca.js.map +0 -1
|
@@ -1,17 +1,40 @@
|
|
|
1
|
-
import { InPageEdit, Schema, Service } from '../InPageEdit.js';
|
|
2
|
-
import { IPEStorageRecord } from './storage/index.js';
|
|
1
|
+
import { InPageEdit, Schema, Service, PreferencesMap } from '../InPageEdit.js';
|
|
3
2
|
import { ComputeAble } from '../utils/computeable.js';
|
|
4
3
|
declare module '../InPageEdit' {
|
|
5
4
|
interface InPageEdit {
|
|
6
5
|
preferences: PreferencesService;
|
|
7
6
|
prefs: PreferencesService;
|
|
8
7
|
}
|
|
8
|
+
interface Events {
|
|
9
|
+
'preferences/changed'(payload: {
|
|
10
|
+
ctx: InPageEdit;
|
|
11
|
+
/** original input */
|
|
12
|
+
input: Record<string, unknown>;
|
|
13
|
+
/** changed settings */
|
|
14
|
+
changes: Record<string, unknown>;
|
|
15
|
+
}): void;
|
|
16
|
+
}
|
|
9
17
|
}
|
|
10
18
|
export interface InPageEditPreferenceUICategory {
|
|
11
19
|
name: string;
|
|
12
20
|
label: string;
|
|
13
21
|
description?: string;
|
|
14
22
|
index?: number;
|
|
23
|
+
/**
|
|
24
|
+
* 自定义渲染函数
|
|
25
|
+
* @param ctx - InPageEdit 上下文
|
|
26
|
+
* @param onUnmount - 卸载回调,当偏好设置 UI 被卸载时会被调用
|
|
27
|
+
*/
|
|
28
|
+
customRenderer?: (payload: {
|
|
29
|
+
ctx: InPageEdit;
|
|
30
|
+
onMounted: (callback: (container: HTMLElement) => void) => void;
|
|
31
|
+
onUnmount: (callback: () => void) => void;
|
|
32
|
+
}) => Promise<Node> | Node;
|
|
33
|
+
/**
|
|
34
|
+
* 是否自动生成该分类下的表单
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
autoGenerateForm?: boolean;
|
|
15
38
|
}
|
|
16
39
|
export interface InPageEditPreferenceUIRegistryItem {
|
|
17
40
|
name: string;
|
|
@@ -27,16 +50,33 @@ export declare class PreferencesService extends Service {
|
|
|
27
50
|
constructor(ctx: InPageEdit);
|
|
28
51
|
get logger(): import('@inpageedit/logger').Logger;
|
|
29
52
|
start(): Promise<void>;
|
|
30
|
-
get<T = any>(key: string, fallback?: ComputeAble<T>): Promise<T | null>;
|
|
31
|
-
getDefaultValue(key: string): unknown;
|
|
32
|
-
set<T = any>(key: string, value: T): Promise<IPEStorageRecord<T> | void>;
|
|
33
|
-
setMany(record: Record<string, unknown>): Promise<{
|
|
34
|
-
[k: string]: unknown;
|
|
35
|
-
}>;
|
|
36
53
|
/**
|
|
37
|
-
*
|
|
54
|
+
* 获取配置项的值
|
|
55
|
+
* @param key 配置项的键名
|
|
56
|
+
* @param fallback 当配置项不存在时的回退值
|
|
57
|
+
* @returns
|
|
58
|
+
* - 未提供 key 时,返回所有配置项的键值对
|
|
59
|
+
* - 提供 key 时,返回对应配置项的值,若不存在则返回回退值或 null
|
|
60
|
+
* @tips 你可以通过重载 PreferencesMap 来定义你的配置项类型,以自动获得类型推导
|
|
61
|
+
*/
|
|
62
|
+
get(): Promise<PreferencesMap>;
|
|
63
|
+
get<K extends keyof PreferencesMap>(key: K, fallback?: ComputeAble<PreferencesMap[K]>): Promise<PreferencesMap[K] | null>;
|
|
64
|
+
get<U = unknown>(key: string, fallback?: ComputeAble<U>): Promise<U | null>;
|
|
65
|
+
/**
|
|
66
|
+
* 获取全部注册的配置项以及最终生效的值
|
|
67
|
+
* 未保存的配置项将使用默认值
|
|
38
68
|
*/
|
|
39
|
-
getAll(): Promise<
|
|
69
|
+
getAll(): Promise<PreferencesMap>;
|
|
70
|
+
set<K extends keyof PreferencesMap>(key: K, value: PreferencesMap[K] | undefined | null): Promise<PreferencesMap[K] | void>;
|
|
71
|
+
set<U = unknown>(key: string, value: U | undefined | null): Promise<U | void>;
|
|
72
|
+
setMany(input: {
|
|
73
|
+
[K in keyof PreferencesMap]?: PreferencesMap[K] | undefined | null;
|
|
74
|
+
}): Promise<{
|
|
75
|
+
[K in keyof PreferencesMap]?: PreferencesMap[K] | undefined | null;
|
|
76
|
+
}>;
|
|
77
|
+
setMany<U = unknown>(input: Record<string, U | undefined | null>): Promise<Record<string, U | undefined | null>>;
|
|
78
|
+
defaultOf<T extends keyof PreferencesMap>(key: T): PreferencesMap[T] | undefined;
|
|
79
|
+
defaultOf<U = unknown>(key: string): U | undefined;
|
|
40
80
|
/**
|
|
41
81
|
* Get exportable configurations
|
|
42
82
|
* - exclude values that are the same as the default value
|
|
@@ -45,8 +85,10 @@ export declare class PreferencesService extends Service {
|
|
|
45
85
|
*/
|
|
46
86
|
getExportableRecord(configs?: Record<string, unknown>): Promise<Record<string, any>>;
|
|
47
87
|
private loadDefaultConfigs;
|
|
48
|
-
registerCustomConfig(
|
|
88
|
+
registerCustomConfig(id: string, schema: Schema, category?: string): this;
|
|
49
89
|
getConfigRegistries(category?: string): InPageEditPreferenceUIRegistryItem[];
|
|
90
|
+
getAllSchema(): Schema<PreferencesMap, PreferencesMap>;
|
|
50
91
|
defineCategory(category: InPageEditPreferenceUICategory): this;
|
|
51
92
|
getConfigCategories(): InPageEditPreferenceUICategory[];
|
|
93
|
+
private _migrageFromLegacyMasterDB;
|
|
52
94
|
}
|
|
@@ -10,5 +10,8 @@ export declare class ResourceLoaderService extends Service {
|
|
|
10
10
|
protected stop(): void | Promise<void>;
|
|
11
11
|
loadScript(src: string, attrs?: Record<string, any>): Promise<HTMLScriptElement | null>;
|
|
12
12
|
loadStyle(href: string, attrs?: Record<string, any>): Promise<HTMLLinkElement | null>;
|
|
13
|
+
removeStyle(href: string): void;
|
|
14
|
+
removeScript(src: string): void;
|
|
15
|
+
removeAll(): void;
|
|
13
16
|
resolveImportPath(path: string): string;
|
|
14
17
|
}
|
|
@@ -32,7 +32,7 @@ export declare class WikiMetadataService extends Service {
|
|
|
32
32
|
private getCacheKey;
|
|
33
33
|
fetchFromApi<T extends keyof WikiMetadataKindMap>(kind: T): Promise<WikiMetadataKindMap[T]>;
|
|
34
34
|
fetchFromCache<T extends keyof WikiMetadataKindMap>(kind: T): Promise<WikiMetadataKindMap[T] | null>;
|
|
35
|
-
saveToCache<T extends keyof WikiMetadataKindMap>(kind: T, data: WikiMetadataKindMap[T]): Promise<import('./storage').
|
|
35
|
+
saveToCache<T extends keyof WikiMetadataKindMap>(kind: T, data: WikiMetadataKindMap[T]): Promise<import('./storage').TypedStorageEntry<WikiSiteInfo | WikiUserInfo>>;
|
|
36
36
|
invalidateCache<T extends keyof WikiMetadataKindMap>(kind: T): Promise<void>;
|
|
37
37
|
get _raw(): WikiMetadataKindMap;
|
|
38
38
|
get siteInfo(): WikiSiteInfo;
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
import { InPageEdit, Service } from '../../InPageEdit.js';
|
|
2
|
-
import {
|
|
2
|
+
import { LocalStorageManager } from './managers/LocalStorageManager.js';
|
|
3
|
+
import { IDBStorageManager } from './managers/IDBStorageManager.js';
|
|
3
4
|
declare module '../../InPageEdit' {
|
|
4
5
|
interface InPageEdit {
|
|
5
6
|
storage: StorageService;
|
|
6
7
|
}
|
|
7
8
|
}
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
createDatabse<T = any>(storeName: string, ttl?: number, version?: number): IPEStorageManager<T>;
|
|
9
|
+
export interface StorageServiceConfig {
|
|
10
|
+
dbName: string;
|
|
11
11
|
}
|
|
12
|
-
export
|
|
12
|
+
export declare class StorageService extends Service<StorageServiceConfig> {
|
|
13
|
+
config: StorageServiceConfig;
|
|
14
|
+
readonly kv: IDBStorageManager<any>;
|
|
15
|
+
readonly simpleKV: LocalStorageManager<any>;
|
|
16
|
+
readonly memoryKV: LocalStorageManager<any>;
|
|
17
|
+
constructor(ctx: InPageEdit, config: StorageServiceConfig);
|
|
18
|
+
createDatabase<T = any>(storeName: string, ttl?: number, version?: number, engine?: 'indexedDB' | 'localStorage' | 'sessionStorage' | 'memory'): AbstractIPEStorageManager<T>;
|
|
19
|
+
}
|
|
20
|
+
export interface TypedStorageEntry<T = any> {
|
|
13
21
|
/** last update time */
|
|
14
22
|
time: number;
|
|
15
23
|
/** stored value */
|
|
@@ -20,11 +28,13 @@ export interface IPEStorageRecord<T = any> {
|
|
|
20
28
|
export interface AbstractIPEStorageManager<T = unknown> {
|
|
21
29
|
get(key: string, ttl?: number, setter?: () => Promise<any> | any): Promise<T | null>;
|
|
22
30
|
set(key: string, value: null | undefined): Promise<void>;
|
|
23
|
-
set(
|
|
31
|
+
set(record: Record<string, T | null | undefined>): Promise<Record<string, TypedStorageEntry<T> | void>>;
|
|
32
|
+
set(key: string, value: T): Promise<TypedStorageEntry<T>>;
|
|
24
33
|
has(key: string, ttl?: number): Promise<boolean>;
|
|
25
34
|
delete(key: string): Promise<void>;
|
|
26
35
|
keys(): AsyncIterable<string>;
|
|
27
|
-
values(): AsyncIterable<
|
|
28
|
-
entries(): AsyncIterable<[string,
|
|
36
|
+
values(): AsyncIterable<TypedStorageEntry<T>>;
|
|
37
|
+
entries(): AsyncIterable<[string, TypedStorageEntry<T>]>;
|
|
38
|
+
updatedAt(key: string): Promise<number>;
|
|
29
39
|
clear(): Promise<this>;
|
|
30
40
|
}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { IDBPlus } from 'idb-plus';
|
|
2
|
-
import { AbstractIPEStorageManager,
|
|
3
|
-
export declare class
|
|
2
|
+
import { AbstractIPEStorageManager, TypedStorageEntry } from '../index.js';
|
|
3
|
+
export declare class IDBStorageManager<T = unknown> implements AbstractIPEStorageManager<T> {
|
|
4
4
|
readonly dbName: string;
|
|
5
5
|
readonly storeName: string;
|
|
6
6
|
ttl: number;
|
|
7
7
|
version?: number | undefined;
|
|
8
|
-
readonly db: IDBPlus<string,
|
|
8
|
+
readonly db: IDBPlus<string, TypedStorageEntry<T>>;
|
|
9
9
|
keys: () => AsyncIterable<string>;
|
|
10
|
-
values: () => AsyncIterable<
|
|
11
|
-
entries: () => AsyncIterable<[string,
|
|
10
|
+
values: () => AsyncIterable<TypedStorageEntry<T>>;
|
|
11
|
+
entries: () => AsyncIterable<[string, TypedStorageEntry<T>]>;
|
|
12
12
|
constructor(dbName: string, storeName: string, ttl?: number, version?: number | undefined);
|
|
13
|
+
private _clearExpiredEntries;
|
|
13
14
|
get(key: string, ttl?: number, setter?: () => Promise<T> | T): Promise<T | null>;
|
|
14
15
|
set(key: string, value: null | undefined): Promise<void>;
|
|
15
|
-
set(key: string, value: T): Promise<
|
|
16
|
+
set(key: string, value: T): Promise<TypedStorageEntry<T>>;
|
|
17
|
+
set(record: Record<string, T | null | undefined>): Promise<Record<string, TypedStorageEntry<T> | void>>;
|
|
16
18
|
has(key: string, ttl?: number): Promise<boolean>;
|
|
17
19
|
delete(key: string): Promise<void>;
|
|
20
|
+
updatedAt(key: string): Promise<number>;
|
|
18
21
|
private loadFromDB;
|
|
19
22
|
private checkIfExpired;
|
|
20
23
|
/**
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AbstractIPEStorageManager, TypedStorageEntry } from '../index.js';
|
|
2
|
+
export declare class LocalStorageManager<T = unknown> implements AbstractIPEStorageManager<T> {
|
|
3
|
+
dbName?: string | undefined;
|
|
4
|
+
readonly storeName?: string | undefined;
|
|
5
|
+
ttl: number;
|
|
6
|
+
version?: number | undefined;
|
|
7
|
+
engine: 'localStorage' | 'sessionStorage' | 'memory';
|
|
8
|
+
private db;
|
|
9
|
+
constructor(dbName?: string | undefined, storeName?: string | undefined, ttl?: number, version?: number | undefined, engine?: 'localStorage' | 'sessionStorage' | 'memory');
|
|
10
|
+
private makeKey;
|
|
11
|
+
private load;
|
|
12
|
+
private getRaw;
|
|
13
|
+
private setRaw;
|
|
14
|
+
private deleteSync;
|
|
15
|
+
private isExpired;
|
|
16
|
+
get(key: string, ttl?: number, setter?: () => Promise<T> | T): Promise<T | null>;
|
|
17
|
+
set(key: string, value: null | undefined): Promise<void>;
|
|
18
|
+
set(key: string, value: T): Promise<TypedStorageEntry<T>>;
|
|
19
|
+
set(record: Record<string, T | null | undefined>): Promise<Record<string, TypedStorageEntry<T> | void>>;
|
|
20
|
+
has(key: string, ttl?: number): Promise<boolean>;
|
|
21
|
+
delete(key: string): Promise<void>;
|
|
22
|
+
updatedAt(key: string): Promise<number>;
|
|
23
|
+
clear(): Promise<this>;
|
|
24
|
+
keys(): AsyncIterable<string>;
|
|
25
|
+
values(): AsyncIterable<TypedStorageEntry<T>>;
|
|
26
|
+
entries(): AsyncIterable<[string, TypedStorageEntry<T>]>;
|
|
27
|
+
}
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";._ipe_progress_so6hn_1{position:relative;display:inline-block;width:100%;overflow:hidden;border:1px solid #c5c5c5;border-radius:100vmax;background-color:#fff;height:1em;--progress: 0%}._ipe_progress_so6hn_1[data-indeterminate=true]:before,._ipe_progress_so6hn_1[data-indeterminate=true]:after{content:"";position:absolute;top:0;bottom:0;left:0;background-color:#36c}._ipe_progress_so6hn_1[data-indeterminate=true]:before{animation:_progress-indeterminate-long_so6hn_1 2s linear infinite}._ipe_progress_so6hn_1[data-indeterminate=true]:after{animation:_progress-indeterminate-short_so6hn_1 2s linear infinite}._ipe_progress_so6hn_1[data-indeterminate=false]:before{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--progress);background-color:#36c;transition:width .3s ease-in-out}@keyframes _progress-indeterminate-long_so6hn_1{0%{left:0;width:0}50%{left:30%;width:70%}75%{left:100%;width:0}}@keyframes _progress-indeterminate-short_so6hn_1{0%{left:0;width:0}50%{left:0;width:0}75%{left:0;width:25%}to{left:110%;width:0}}._mbox_5x43w_1{--border-color: #dfdfdf;--title-color: #efefef;--content-color: #ffffff;border-radius:.5rem;border:1px solid var(--title-color);border-left:6px solid var(--border-color);overflow:hidden;margin-bottom:1rem;position:relative}._mbox_5x43w_1 ._title_5x43w_12{background-color:var(--title-color);padding:.5rem 1rem;font-weight:700;font-size:1rem;line-height:1.2}._mbox_5x43w_1 ._content_5x43w_19{background-color:var(--content-color);padding:.5rem 1rem;font-size:1rem;line-height:1.5;max-height:14em;overflow:auto}._mbox_5x43w_1 ._close_5x43w_27{position:absolute;top:.5rem;right:.5rem;font-size:1.25rem;line-height:1rem;color:var(--border-color);cursor:pointer;user-select:none}._mbox_5x43w_1 ._close_5x43w_27:hover{filter:brightness(1.2)}._mbox_5x43w_1 ._close_5x43w_27:active{filter:brightness(.8)}._mbox_5x43w_1.mbox-type-note,._mbox_5x43w_1.mbox-type-info{--border-color: #1f6feb;--title-color: #AFD1FE;--content-color: #f3f9ff}._mbox_5x43w_1.mbox-type-tip,._mbox_5x43w_1.mbox-type-success{--border-color: #238636;--title-color: #E0F1E3;--content-color: #f9f9f9}._mbox_5x43w_1.mbox-type-important,._mbox_5x43w_1.mbox-type-done{--border-color: #8957e5;--title-color: #DDCBFC;--content-color: #f9f9f9}._mbox_5x43w_1.mbox-type-warning{--border-color: #9e6a03;--title-color: #E4CC9D;--content-color: #fff9db}._mbox_5x43w_1.mbox-type-caution,._mbox_5x43w_1.mbox-type-error{--border-color: #da3633;--title-color: #FCB9B6;--content-color: #f9f9f9}._twinSwapInput_1gdgl_9{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"input-left swap-button input-right";gap:1rem;align-items:end}@media (max-width: 768px){._twinSwapInput_1gdgl_9{grid-template-columns:1fr;grid-template-areas:"input-left" "swap-button" "input-right";gap:.75rem}}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23{display:flex;flex-direction:column}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23._inputLeft_1gdgl_27{grid-area:input-left}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23._inputRight_1gdgl_30{grid-area:input-right}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23 label{display:block;margin-bottom:.5em;font-weight:500;font-size:.875rem}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23 input{width:100%}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23 input:disabled{opacity:.75;cursor:not-allowed}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46{grid-area:swap-button;display:flex;align-items:center;justify-content:center}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button{position:relative;display:flex;align-items:center;justify-content:center;padding:0;border-radius:50%;width:2rem;height:2rem;border:none;background:#efefef;cursor:pointer;transition:all .2s ease}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button:hover{background:#e0e0e0}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button:active{background:#d0d0d0}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button:disabled{opacity:.75;cursor:not-allowed}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button svg{transition:all .2s ease;width:1.25rem;height:1.25rem}@media (max-width: 768px){._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button{transform:rotate(90deg)}}._tabview_zlbug_1{font-size:14px}._tabview_zlbug_1 ._labels_container_zlbug_4{font-size:16px;list-style:none;margin:0;white-space:nowrap;overflow-x:auto}._tabview_zlbug_1 ._labels_container_zlbug_4 ._label_zlbug_4{flex:auto;padding:0;margin:0;display:inline-block;text-align:center;text-transform:uppercase}._tabview_zlbug_1 ._labels_container_zlbug_4 ._label_zlbug_4:not(:first-child){margin-left:.5em}._tabview_zlbug_1 ._labels_container_zlbug_4 ._label_zlbug_4 a{display:inline-block;padding:.25em .5em;text-decoration:none;color:#08d;cursor:pointer}._tabview_zlbug_1 ._labels_container_zlbug_4 ._label_zlbug_4:hover a{box-shadow:0 -2px #0088dd40 inset}._tabview_zlbug_1 ._labels_container_zlbug_4 ._label_zlbug_4._active_zlbug_32 a{box-shadow:0 -2px #08d inset}._tabview_zlbug_1 ._contents_container_zlbug_35{margin-top:1em}:root{--ipe-modal-z: 1000;--ipe-modal-backdrop-bg: rgba(0, 0, 0, .5);--ipe-modal-bg: #ffffff;--ipe-modal-secondary-bg: #eaecf0;--ipe-modal-text: #111827;--ipe-modal-text--rgb: 17, 24, 39;--ipe-modal-muted: #6b7280;--ipe-modal-accent: #3b82f6;--ipe-modal-accent--rgb: 59, 130, 246;--ipe-modal-success: #10b981;--ipe-modal-info: #3b82f6;--ipe-modal-warning: #f59e0b;--ipe-modal-danger: #ef4444;--ipe-modal-danger--rgb: 239, 68, 68;--ipe-modal-border-color: #eaecf0;--ipe-modal-divider-color: #e5e7eb;--ipe-modal-radius: 8px;--ipe-modal-button-radius: 6px;--ipe-modal-shadow: 0 0 40px rgba(127, 127, 127, .5);--ipe-modal-spacing: 12px;--ipe-modal-viewport-gap-y: 20px;--ipe-modal-window-max-w: 96vw;--ipe-modal-anim: none;--ipe-modal-safe-area-top: env(safe-area-inset-top);--ipe-modal-safe-area-bottom: env(safe-area-inset-bottom);--ipe-modal-vh: 100vh}@supports (height: 100dvh){:root{--ipe-modal-vh: 100dvh}}:root{--ipe-modal-window-max-h: calc( var(--ipe-modal-vh) - var(--ipe-modal-safe-area-top) - var(--ipe-modal-safe-area-bottom) - (var(--ipe-modal-viewport-gap-y) * 2) )}body.ipe-modal-no-scroll{overflow:hidden!important;touch-action:none;-webkit-overflow-scrolling:auto}.ipe-modal-backdrop{position:fixed;inset:0;z-index:var(--ipe-modal-z);background:transparent;transition:background .18s ease;pointer-events:none}.ipe-modal-backdrop.is-open{background:var(--ipe-modal-backdrop-bg);pointer-events:auto}.ipe-modal-modal{position:fixed;inset:0;z-index:calc(var(--ipe-modal-z) + 1);outline:none;display:grid;align-items:start;justify-items:center;overflow:auto;opacity:0;transform:translateY(8px) scale(.98);transition:opacity .18s ease,transform .22s ease;pointer-events:none}.ipe-modal-modal.is-open{opacity:1;transform:none}.ipe-modal-modal.is-centered{display:grid;align-items:center}.ipe-modal-modal.is-fullscreen .ipe-modal-modal__window{width:100vw;height:var(--ipe-modal-vh);max-width:none;max-height:none;border-radius:0}.ipe-modal-modal.no-backdrop{position:absolute;inset:auto;display:block;padding:0;overflow:visible}.ipe-modal-modal.is-dragging{transition:none}.ipe-modal-modal.is-dragging .ipe-modal-modal__window{animation:none}.ipe-modal-modal.is-dragging .ipe-modal-modal__header{cursor:grabbing!important}.ipe-modal-modal__window{position:relative;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);border-radius:var(--ipe-modal-radius);box-shadow:var(--ipe-modal-shadow);max-width:var(--ipe-modal-window-max-w);width:min(92vw,var(--ipe-modal-window-max-w));overflow:hidden;display:block;animation:var(--ipe-modal-anim, none) .22s ease-in-out both;pointer-events:auto;overscroll-behavior:contain;margin-top:var(--ipe-modal-viewport-gap-y, 20px);margin-bottom:var(--ipe-modal-viewport-gap-y, 20px)}.size--dialog{max-width:420px}.size--small{max-width:520px}.size--smallToMedium{max-width:640px}.size--medium{max-width:max(64%,860px)}.size--mediumToLarge{max-width:max(72%,1080px)}.size--large{max-width:max(80%,1200px)}.size--full{width:100vw;height:var(--ipe-modal-vh);max-width:none;max-height:none;border-radius:0}.size--auto{max-width:var(--ipe-modal-window-max-w)}.ipe-modal-modal__window.is-fixed-height{height:min(var(--ipe-modal-window-max-h),80vh)}.ipe-modal-modal__header{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:calc(var(--ipe-modal-spacing) * .75) var(--ipe-modal-spacing);border-bottom:1px solid var(--ipe-modal-divider-color)}.ipe-modal-modal__title{font-size:1.125rem;font-weight:700;line-height:1;margin:0}.ipe-modal-modal__icons{display:inline-flex;gap:6px}.ipe-modal-modal__icon{width:28px;height:28px;border-radius:8px;border:0;background:transparent}.ipe-modal-modal__close{margin-left:6px;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:var(--ipe-modal-button-radius);background:transparent;font-size:22px;line-height:1;color:var(--ipe-modal-muted);cursor:pointer}.ipe-modal-modal__close:hover{background:#0000000f;color:var(--ipe-modal-text)}.ipe-modal-modal__content{padding:var(--ipe-modal-spacing);max-height:75dvh;overflow:auto;-webkit-overflow-scrolling:touch}.ipe-modal-modal__footer{background:var(--ipe-modal-secondary-bg);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(var(--ipe-modal-spacing) * .75) var(--ipe-modal-spacing);border-top:1px solid var(--ipe-modal-divider-color)}.ipe-modal-modal__buttons{display:inline-flex;gap:8px}.ipe-modal-toast-container{position:fixed;z-index:2000;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}.ipe-modal-toast-container.top{top:16px}.ipe-modal-toast-container.bottom{bottom:16px;flex-direction:column-reverse}.ipe-modal-toast-container.right{right:16px}.ipe-modal-toast-container.left{left:16px}.ipe-modal-modal__window.plugin--toast{--type-color: var(--ipe-modal-bg);--text-color: var(--ipe-modal-text);width:300px;border-radius:calc(var(--ipe-modal-radius) * .75);margin-top:0;margin-bottom:0;border:0;border-left:calc(var(--ipe-modal-radius) * .75) solid var(--type-color)}.ipe-modal-modal__window.plugin--toast.type-default{--type-color: var(--ipe-modal-secondary-bg)}.ipe-modal-modal__window.plugin--toast.type-info{--type-color: var(--ipe-modal-info);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast.type-success{--type-color: var(--ipe-modal-success);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast.type-warning{--type-color: var(--ipe-modal-warning);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast.type-error{--type-color: var(--ipe-modal-danger);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header{padding:.5em;background-color:var(--type-color);color:var(--text-color);border-bottom:0}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header .ipe-modal-modal__title{display:flex;align-items:center}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header .ipe-modal-modal__title .ipe-modal-notify-icon{margin-right:.5em;width:20px;height:20px}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__close{width:20px;height:20px;font-size:16px;color:var(--ipe-modal-muted)}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__content{padding:1em .5em}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__footer{padding:.5em;background-color:transparent;border-top:0}.ipe-modal-modal__window.plugin--toast .ipe-modal-btn{padding:.25em .75em!important}.ipe-modal-btn{--accent-color: #fff;--text-color: var(--ipe-modal-text);--active-color: rgba(0, 0, 0, .1);appearance:none;border:1px solid rgba(0,0,0,.14);background:var(--accent-color);color:var(--text-color);padding:8px 12px;border-radius:var(--ipe-modal-button-radius);cursor:pointer;font:inherit;transition:all .2s;line-height:1}.ipe-modal-btn:hover{background:#0000000a}.ipe-modal-btn:disabled{opacity:.6;cursor:not-allowed}.ipe-modal-btn:active{background:#0000000f;box-shadow:0 0 0 2px var(--active-color)}.ipe-modal-btn:focus{box-shadow:0 0 0 2px var(--active-color)}.ipe-modal-btn.is-primary{--accent-color: var(--ipe-modal-accent);--text-color: #fff;--active-color: rgba(var(--ipe-modal-accent--rgb), .5);border-color:var(--accent-color);background:var(--accent-color)}.ipe-modal-btn.is-danger{--accent-color: var(--ipe-modal-danger);--text-color: #fff;--active-color: rgba(var(--ipe-modal-danger--rgb), .2);border-color:var(--accent-color);background:var(--accent-color);color:var(--text-color)}.ipe-modal-btn.is-ghost,.ipe-modal-btn.is-text{background:transparent}.ipe-modal-btn.is-text{border:0;color:var(--ipe-modal-text)}.ipe-modal-btn.is-ghost.is-primary,.ipe-modal-btn.is-text.is-primary{color:var(--ipe-modal-accent)}.ipe-modal-btn.is-ghost.is-danger,.ipe-modal-btn.is-text.is-danger{color:var(--ipe-modal-danger)}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__footer,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__footer{padding:0}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__buttons--left,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__buttons--left{display:none}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__buttons--right,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__buttons--right{flex:1;width:100%;display:flex;gap:0}.ipe-modal-modal__window.size--dialog .ipe-modal-btn,.ipe-modal-modal__window.compact-buttons .ipe-modal-btn{flex:1;border:0;margin:0;padding:1rem;border-radius:0}.ipe-modal-modal__window.size--dialog .ipe-modal-btn:not(:first-child),.ipe-modal-modal__window.compact-buttons .ipe-modal-btn:not(:first-child){border-left:1px solid rgba(0,0,0,.06)}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__footer,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__footer{background-color:transparent}@keyframes ipe-modal-fade-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes ipe-modal-fade-out{0%{transform:scale(1);opacity:1}to{transform:scale(.85);opacity:0}}.theme-ipe{--color-primary: #36c;--color-primary-hover: #447ff5;--color-primary-active: #2a4b8d;--color-promary--rgb: 51, 102, 204;--color-white: #fff;--color-text-dark: #222;--color-text-medium: #252525;--color-text-hover: #454545;--color-bg-light: #f8f9fa;--color-bg-lighter: #fafafa;--color-bg-lightest: #f8f8f8;--color-bg-gray: #f4f4f4;--color-border-gray: #c8ccd1;--color-border-light: #efefef;--color-border-input: #ccc;--color-border-dark: #72777d;--color-border-disabled: #d6d6d6;--color-danger: #d33;--color-danger-hover: #ff4242;--color-danger-active: #d00;--color-danger--rgb: 211, 51, 51;--color-disabled-bg: #c8ccd1;--color-disabled-dark: #a0a0a0;--font-size-button: 14px;--font-size-label: 1rem;--font-weight-label: 700;--border-width: 1px;--border-width-radio-checked: 6px;--border-radius-button: 6px;--border-radius-input: 4px;--padding-button-y: .5em;--padding-button-x: 1em;--padding-button-dialog: 1em;--padding-input-y: .25em;--padding-input-x: .35em;--size-checkbox: 1.2em;--size-radio: 1.4em;--margin-checkbox-top: .15em;--margin-checkbox-right: .375em;--textarea-height: 50vh;--textarea-min-height: 20em;--textarea-background: var(--color-bg-lighter);--line-height-input: 1.5em;--line-height-checkbox: 1.2em;--transition-fast: .1s;--transition-medium: .12s;--transition-slow: .2s;--ipe-modal-accent: var(--color-primary);--ipe-modal-danger: var(--color-danger);--ipe-modal-button-radius: var(--border-radius-button);font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}.theme-ipe textarea[name=text]{width:100%;height:var(--textarea-height);min-height:var(--textarea-min-height);background:var(--textarea-background);resize:vertical;border:var(--border-width) solid var(--color-border-input);border-radius:var(--border-radius-input);transition:border var(--transition-slow);line-height:var(--line-height-input);padding:var(--padding-input-y) var(--padding-input-x);outline:none}.theme-ipe textarea[name=text]:focus{border-color:var(--color-primary);box-shadow:inset 0 0 0 var(--border-width) var(--color-primary)}.theme-ipe textarea[name=text]:disabled{background-color:var(--color-disabled-bg);color:var(--color-white);cursor:not-allowed}.theme-ipe .ipe-quickEdit__textarea--monospace{font-family:monospace}.theme-ipe .ipe-quickEdit__textarea--sans-serif{font-family:sans-serif}.theme-ipe .ipe-quickEdit__textarea--serif{font-family:serif}.theme-ipe .ipe-input-box label{display:block;font-size:.875rem;margin-bottom:.5em;font-weight:500}.theme-ipe .ipe-input-box input[type=text],.theme-ipe .ipe-input-box input[type=number],.theme-ipe .ipe-input-box input[type=email],.theme-ipe .ipe-input-box input[type=password],.theme-ipe .ipe-input-box input[type=url],.theme-ipe .ipe-input-box input[type=tel],.theme-ipe .ipe-input-box input[type=search]{width:100%}.theme-ipe input{padding:var(--padding-input-y) var(--padding-input-x);border:var(--border-width) solid var(--color-border-input);border-radius:var(--border-radius-input);transition:border var(--transition-slow);line-height:var(--line-height-input);outline:none}.theme-ipe input:focus{border-color:var(--color-primary);box-shadow:inset 0 0 0 var(--border-width) var(--color-primary)}.theme-ipe label input[type=checkbox]+span,.theme-ipe label input[type=radio]+span{user-select:none;line-height:var(--line-height-checkbox)}.theme-ipe label input[type=checkbox]+span:before,.theme-ipe label input[type=radio]+span:before{content:" ";display:inline-block;width:var(--size-checkbox);height:var(--size-checkbox);margin-top:var(--margin-checkbox-top);margin-right:var(--margin-checkbox-right);border-radius:var(--border-radius-input);background-color:var(--color-bg-lightest);border:var(--border-width) solid var(--color-border-dark);cursor:pointer;transition:all var(--transition-medium)}.theme-ipe label input[type=radio]+span:before{border-radius:50%;box-sizing:border-box;vertical-align:text-bottom;width:var(--size-radio);height:var(--size-radio)}.theme-ipe label input[type=checkbox]:checked+span:before{content:" ";background-color:var(--color-primary);background-image:url(data:image/svg+xml;base64,PHN2ZyBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kOyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxnIGlkPSJjaGVja21hcmsiPjxwYXRoIGQ9Ik0xMy43NDkyKzMuNDkwOTVMNS44NjMxMisxMS42MzM3TDIuMjUwNzcrNy45NjA4MkwxLjQ4NzYrOC43NTc3OEw1Ljg2MzEyKzEzLjE5M0wxNC41MTI0KzQuMjg3OUwxMy43NDkyKzMuNDkwOTVaIiBvcGFjaXR5PSIxIiBmaWxsPSIjZmZmZmZmIi8+PC9nPjwvc3ZnPg==);background-repeat:no-repeat}.theme-ipe label input[type=radio]:checked+span:before{border-color:var(--color-primary);border-width:var(--border-width-radio-checked)}.theme-ipe label input[type=checkbox]:checked+span:hover:before{background-color:var(--color-primary-hover)}.theme-ipe label input[type=radio]:checked+span:hover:before{border-color:var(--color-primary-hover)}.theme-ipe label input[type=checkbox]:active+span:before,.theme-ipe label input[type=checkbox]:focus+span:before{box-shadow:0 0 0 2px rgba(var(--color-promary--rgb),.5);border-color:var(--color-primary)}.theme-ipe label input[type=checkbox],.theme-ipe label input[type=radio]{position:absolute;clip:rect(0,0,0,0)}.theme-ipe .cm-panel label input[type=checkbox],.theme-ipe .cm-panel label input[type=radio]{position:initial;clip:initial}.theme-ipe label input[type=checkbox]:disabled+span:before{border-color:var(--color-border-disabled)}.theme-ipe label input[type=radio]:disabled+span:before{background-color:var(--color-disabled-bg);border-color:var(--color-disabled-bg)}.theme-ipe label input[type=checkbox]:disabled:checked+span:before{background-color:var(--color-disabled-dark)}.theme-ipe label input[type=radio]:disabled:checked+span:before{background-color:var(--color-white)}.theme-ipe .ipe-radio-box span,.theme-ipe .ipe-checkbox span{vertical-align:middle}.theme-ipe svg.icon{height:1em;height:1lh;width:auto;vertical-align:middle}svg.ipe-icon{height:1em;height:1lh;width:auto;vertical-align:middle}@media (min-width: 768px){.skin-moeskin #ipe-edit-toolbox{bottom:5rem}}body.skin-fandomdesktop #ipe-edit-toolbox{bottom:3em}.tabbar .tabbar-tabs[data-v-59cb1172]{--border-color: #efefef;--tab-color: #666;--active-color: #3366bb;display:flex;gap:.5em;border-bottom:1px solid #efefef;margin-bottom:1em;white-space:nowrap;overflow-x:auto}.tabbar .tabbar-tabs .tab[data-v-59cb1172]{padding:.5em 1em;cursor:pointer;user-select:none;color:var(--tab-color);display:inline-block;transition:color .3s ease,box-shadow .3s ease}.tabbar .tabbar-tabs .tab.active[data-v-59cb1172]{color:var(--active-color);box-shadow:inset 0 -.15em 0 0 var(--active-color)}schema-form[data-v-59cb1172]{margin-bottom:.5em;--schema-radius: 6px}.preferences-ui-app .schema-form-item.field{border:0}.theme-ipe.diff-type-table .diff-title{line-height:1.5}.theme-ipe.diff-type-table .mw-diff-title--navigation{text-align:center;color:#666}#ipe-edit-toolbox{font-size:16px;position:fixed;right:2em;bottom:2em;user-select:none;z-index:42}@media print{#ipe-edit-toolbox{display:none}}#ipe-edit-toolbox .ipe-toolbox-btn{color:#fff;background:#bebebe;height:1.5em;width:1.5em;font-size:1.5em;line-height:1;border:0;border-radius:50%;box-shadow:0 0 8px #7f7f7f80;text-shadow:0 0 2px #4c4c4c;padding:0;margin:0;cursor:pointer;display:flex;align-items:center;justify-content:center}#ipe-edit-toolbox .ipe-toolbox-btn svg,#ipe-edit-toolbox .ipe-toolbox-btn img{line-height:1;width:1em;height:1em;vertical-align:middle}#ipe-edit-toolbox .ipe-toolbox-btn:disabled{cursor:not-allowed;filter:grayscale(50%) opacity(.75)}#ipe-edit-toolbox #toolbox-toggler{position:absolute;right:0;bottom:0;width:2em;height:2em;background:#3f51b5;font-size:1.5em;line-height:1;margin:0;transition:transform .3s cubic-bezier(.68,-.55,.27,1.55);transform:rotate(0)}#ipe-edit-toolbox.is-persistent #toolbox-toggler{transform:rotate(45deg)}#ipe-edit-toolbox .btn-group.group1 .btn-tip-group{transform:translate3d(0,100%,0)}#ipe-edit-toolbox .btn-group.group2 .btn-tip-group{transform:translate3d(100%,0,0)}#ipe-edit-toolbox .btn-group .btn-tip-group{transition-timing-function:cubic-bezier(.68,-.55,.27,1.55);transition-duration:.3s;transition-delay:var(--transition-delay, 0s);opacity:0}#ipe-edit-toolbox.is-persistent .btn-group .btn-tip-group,#ipe-edit-toolbox.is-hovered .btn-group .btn-tip-group{transform:translateZ(0);opacity:1}#ipe-edit-toolbox:not(.is-persistent):not(.is-hovered) .btn-group .btn-tip-group{transition-delay:calc(var(--max-transition-delay) - var(--transition-delay))}#ipe-edit-toolbox.is-persistent .btn-group,#ipe-edit-toolbox.is-hovered .btn-group{transform:scaleZ(1)}#ipe-edit-toolbox .ipe-toolbox-btn#toolbox-toggler.click{box-shadow:0 0 4px gray,0 0 10px #444 inset}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-edit-btn{background:#2196f3}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-move-btn{background:#00bcd4}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-redirect-btn{background:#009688}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-delete-btn{background:#e91e63}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__preferences-btn{background:#ffc107}#ipe-edit-toolbox .btn-group{position:absolute;display:flex;gap:.5em;list-style:none;margin:0;pointer-events:none}#ipe-edit-toolbox .btn-group.group1{bottom:3.5em;right:.375em;flex-direction:column}#ipe-edit-toolbox .btn-group.group2{bottom:.25em;right:3.375em}#ipe-edit-toolbox.is-persistent .btn-group,#ipe-edit-toolbox.is-hovered .btn-group{visibility:visible;pointer-events:auto}#ipe-edit-toolbox .btn-tip-group .btn-tip{position:absolute;text-align:center;font-size:12px;white-space:nowrap;left:50%;bottom:calc(100% + .5em);transform:translate(-50%);background:#fff;color:#252525;padding:.2em .5em;box-shadow:0 0 .5em #7f7f7f80;border-radius:.5em;pointer-events:none;opacity:0;transition:opacity .2s ease-in-out,bottom .2s ease-in-out}#ipe-edit-toolbox .btn-tip-group:hover .btn-tip{opacity:1;bottom:calc(100% + 1em)}#ipe-edit-toolbox .btn-tip-group .btn-tip:after{content:"";display:block;border:5px solid transparent;border-radius:2px;border-right-color:#fff;border-bottom-color:#fff;position:absolute;bottom:-8px;left:50%;transform:rotate(45deg) translate(-50%)}
|
|
1
|
+
@charset "UTF-8";._ipe_progress_so6hn_1{position:relative;display:inline-block;width:100%;overflow:hidden;border:1px solid #c5c5c5;border-radius:100vmax;background-color:#fff;height:1em;--progress: 0%}._ipe_progress_so6hn_1[data-indeterminate=true]:before,._ipe_progress_so6hn_1[data-indeterminate=true]:after{content:"";position:absolute;top:0;bottom:0;left:0;background-color:#36c}._ipe_progress_so6hn_1[data-indeterminate=true]:before{animation:_progress-indeterminate-long_so6hn_1 2s linear infinite}._ipe_progress_so6hn_1[data-indeterminate=true]:after{animation:_progress-indeterminate-short_so6hn_1 2s linear infinite}._ipe_progress_so6hn_1[data-indeterminate=false]:before{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--progress);background-color:#36c;transition:width .3s ease-in-out}@keyframes _progress-indeterminate-long_so6hn_1{0%{left:0;width:0}50%{left:30%;width:70%}75%{left:100%;width:0}}@keyframes _progress-indeterminate-short_so6hn_1{0%{left:0;width:0}50%{left:0;width:0}75%{left:0;width:25%}to{left:110%;width:0}}._mbox_5x43w_1{--border-color: #dfdfdf;--title-color: #efefef;--content-color: #ffffff;border-radius:.5rem;border:1px solid var(--title-color);border-left:6px solid var(--border-color);overflow:hidden;margin-bottom:1rem;position:relative}._mbox_5x43w_1 ._title_5x43w_12{background-color:var(--title-color);padding:.5rem 1rem;font-weight:700;font-size:1rem;line-height:1.2}._mbox_5x43w_1 ._content_5x43w_19{background-color:var(--content-color);padding:.5rem 1rem;font-size:1rem;line-height:1.5;max-height:14em;overflow:auto}._mbox_5x43w_1 ._close_5x43w_27{position:absolute;top:.5rem;right:.5rem;font-size:1.25rem;line-height:1rem;color:var(--border-color);cursor:pointer;user-select:none}._mbox_5x43w_1 ._close_5x43w_27:hover{filter:brightness(1.2)}._mbox_5x43w_1 ._close_5x43w_27:active{filter:brightness(.8)}._mbox_5x43w_1.mbox-type-note,._mbox_5x43w_1.mbox-type-info{--border-color: #1f6feb;--title-color: #AFD1FE;--content-color: #f3f9ff}._mbox_5x43w_1.mbox-type-tip,._mbox_5x43w_1.mbox-type-success{--border-color: #238636;--title-color: #E0F1E3;--content-color: #f9f9f9}._mbox_5x43w_1.mbox-type-important,._mbox_5x43w_1.mbox-type-done{--border-color: #8957e5;--title-color: #DDCBFC;--content-color: #f9f9f9}._mbox_5x43w_1.mbox-type-warning{--border-color: #9e6a03;--title-color: #E4CC9D;--content-color: #fff9db}._mbox_5x43w_1.mbox-type-caution,._mbox_5x43w_1.mbox-type-error{--border-color: #da3633;--title-color: #FCB9B6;--content-color: #f9f9f9}._twinSwapInput_1gdgl_9{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"input-left swap-button input-right";gap:1rem;align-items:end}@media(max-width:768px){._twinSwapInput_1gdgl_9{grid-template-columns:1fr;grid-template-areas:"input-left" "swap-button" "input-right";gap:.75rem}}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23{display:flex;flex-direction:column}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23._inputLeft_1gdgl_27{grid-area:input-left}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23._inputRight_1gdgl_30{grid-area:input-right}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23 label{display:block;margin-bottom:.5em;font-weight:500;font-size:.875rem}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23 input{width:100%}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23 input:disabled{opacity:.75;cursor:not-allowed}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46{grid-area:swap-button;display:flex;align-items:center;justify-content:center}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button{position:relative;display:flex;align-items:center;justify-content:center;padding:0;border-radius:50%;width:2rem;height:2rem;border:none;background:#efefef;cursor:pointer;transition:all .2s ease}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button:hover{background:#e0e0e0}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button:active{background:#d0d0d0}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button:disabled{opacity:.75;cursor:not-allowed}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button svg{transition:all .2s ease;width:1.25rem;height:1.25rem}@media(max-width:768px){._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button{transform:rotate(90deg)}}._tabview_zlbug_1{font-size:14px}._tabview_zlbug_1 ._labels_container_zlbug_4{font-size:16px;list-style:none;margin:0;white-space:nowrap;overflow-x:auto}._tabview_zlbug_1 ._labels_container_zlbug_4 ._label_zlbug_4{flex:auto;padding:0;margin:0;display:inline-block;text-align:center;text-transform:uppercase}._tabview_zlbug_1 ._labels_container_zlbug_4 ._label_zlbug_4:not(:first-child){margin-left:.5em}._tabview_zlbug_1 ._labels_container_zlbug_4 ._label_zlbug_4 a{display:inline-block;padding:.25em .5em;text-decoration:none;color:#08d;cursor:pointer}._tabview_zlbug_1 ._labels_container_zlbug_4 ._label_zlbug_4:hover a{box-shadow:0 -2px #0088dd40 inset}._tabview_zlbug_1 ._labels_container_zlbug_4 ._label_zlbug_4._active_zlbug_32 a{box-shadow:0 -2px #08d inset}._tabview_zlbug_1 ._contents_container_zlbug_35{margin-top:1em}:root{--ipe-modal-z: 1000;--ipe-modal-backdrop-bg: rgba(0, 0, 0, .5);--ipe-modal-bg: #ffffff;--ipe-modal-secondary-bg: #eaecf0;--ipe-modal-text: #111827;--ipe-modal-text--rgb: 17, 24, 39;--ipe-modal-muted: #6b7280;--ipe-modal-accent: #3b82f6;--ipe-modal-accent--rgb: 59, 130, 246;--ipe-modal-success: #10b981;--ipe-modal-info: #3b82f6;--ipe-modal-warning: #f59e0b;--ipe-modal-danger: #ef4444;--ipe-modal-danger--rgb: 239, 68, 68;--ipe-modal-border-color: #eaecf0;--ipe-modal-divider-color: #e5e7eb;--ipe-modal-radius: 8px;--ipe-modal-button-radius: 6px;--ipe-modal-shadow: 0 0 40px rgba(127, 127, 127, .5);--ipe-modal-spacing: 12px;--ipe-modal-viewport-gap-y: 20px;--ipe-modal-window-max-w: 96vw;--ipe-modal-anim: none;--ipe-modal-safe-area-top: env(safe-area-inset-top);--ipe-modal-safe-area-bottom: env(safe-area-inset-bottom);--ipe-modal-vh: 100vh}@supports (height: 100dvh){:root{--ipe-modal-vh: 100dvh}}:root{--ipe-modal-window-max-h: calc( var(--ipe-modal-vh) - var(--ipe-modal-safe-area-top) - var(--ipe-modal-safe-area-bottom) - (var(--ipe-modal-viewport-gap-y) * 2) )}body.ipe-modal-no-scroll{overflow:hidden!important;touch-action:none;-webkit-overflow-scrolling:auto}.ipe-modal-backdrop{position:fixed;inset:0;z-index:var(--ipe-modal-z);background:transparent;transition:background .18s ease;pointer-events:none}.ipe-modal-backdrop.is-open{background:var(--ipe-modal-backdrop-bg);pointer-events:auto}.ipe-modal-modal{position:fixed;inset:0;z-index:calc(var(--ipe-modal-z) + 1);outline:none;display:grid;align-items:start;justify-items:center;overflow:auto;opacity:0;transform:translateY(8px) scale(.98);transition:opacity .18s ease,transform .22s ease;pointer-events:none}.ipe-modal-modal.is-open{opacity:1;transform:none}.ipe-modal-modal.is-centered{display:grid;align-items:center}.ipe-modal-modal.is-fullscreen .ipe-modal-modal__window{width:100vw;height:var(--ipe-modal-vh);max-width:none;max-height:none;border-radius:0}.ipe-modal-modal.no-backdrop{position:absolute;inset:auto;display:block;padding:0;overflow:visible}.ipe-modal-modal.is-dragging{transition:none}.ipe-modal-modal.is-dragging .ipe-modal-modal__window{animation:none}.ipe-modal-modal.is-dragging .ipe-modal-modal__header{cursor:grabbing!important}.ipe-modal-modal__window{position:relative;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);border-radius:var(--ipe-modal-radius);box-shadow:var(--ipe-modal-shadow);max-width:var(--ipe-modal-window-max-w);width:min(92vw,var(--ipe-modal-window-max-w));overflow:hidden;display:block;animation:var(--ipe-modal-anim, none) .22s ease-in-out both;pointer-events:auto;overscroll-behavior:contain;margin-top:var(--ipe-modal-viewport-gap-y, 20px);margin-bottom:var(--ipe-modal-viewport-gap-y, 20px)}.size--dialog{max-width:420px}.size--small{max-width:520px}.size--smallToMedium{max-width:640px}.size--medium{max-width:max(64%,860px)}.size--mediumToLarge{max-width:max(72%,1080px)}.size--large{max-width:max(80%,1200px)}.size--full{width:100vw;height:var(--ipe-modal-vh);max-width:none;max-height:none;border-radius:0}.size--auto{max-width:var(--ipe-modal-window-max-w)}.ipe-modal-modal__window.is-fixed-height{height:min(var(--ipe-modal-window-max-h),80vh)}.ipe-modal-modal__header{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:calc(var(--ipe-modal-spacing) * .75) var(--ipe-modal-spacing);border-bottom:1px solid var(--ipe-modal-divider-color)}.ipe-modal-modal__title{font-size:1.125rem;font-weight:700;line-height:1;margin:0}.ipe-modal-modal__icons{display:inline-flex;gap:6px}.ipe-modal-modal__icon{width:28px;height:28px;border-radius:8px;border:0;background:transparent}.ipe-modal-modal__close{margin-left:6px;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:var(--ipe-modal-button-radius);background:transparent;font-size:22px;line-height:1;color:var(--ipe-modal-muted);cursor:pointer}.ipe-modal-modal__close:hover{background:#0000000f;color:var(--ipe-modal-text)}.ipe-modal-modal__content{padding:var(--ipe-modal-spacing);max-height:85dvh;overflow:auto;-webkit-overflow-scrolling:touch}.ipe-modal-modal__footer{background:var(--ipe-modal-secondary-bg);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(var(--ipe-modal-spacing) * .75) var(--ipe-modal-spacing);border-top:1px solid var(--ipe-modal-divider-color)}.ipe-modal-modal__buttons{display:inline-flex;gap:8px}.ipe-modal-toast-container{position:fixed;z-index:2000;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}.ipe-modal-toast-container.top{top:16px}.ipe-modal-toast-container.bottom{bottom:16px;flex-direction:column-reverse}.ipe-modal-toast-container.right{right:16px}.ipe-modal-toast-container.left{left:16px}.ipe-modal-modal__window.plugin--toast{--type-color: var(--ipe-modal-bg);--text-color: var(--ipe-modal-text);width:300px;border-radius:calc(var(--ipe-modal-radius) * .75);margin-top:0;margin-bottom:0;border:0;border-left:calc(var(--ipe-modal-radius) * .75) solid var(--type-color)}.ipe-modal-modal__window.plugin--toast.type-default{--type-color: var(--ipe-modal-secondary-bg)}.ipe-modal-modal__window.plugin--toast.type-info{--type-color: var(--ipe-modal-info);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast.type-success{--type-color: var(--ipe-modal-success);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast.type-warning{--type-color: var(--ipe-modal-warning);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast.type-error{--type-color: var(--ipe-modal-danger);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header{padding:.5em;background-color:var(--type-color);color:var(--text-color);border-bottom:0}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header .ipe-modal-modal__title{display:flex;align-items:center}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header .ipe-modal-modal__title .ipe-modal-notify-icon{margin-right:.5em;width:20px;height:20px}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__close{width:20px;height:20px;font-size:16px;color:var(--ipe-modal-muted)}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__content{padding:1em .5em}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__footer{padding:.5em;background-color:transparent;border-top:0}.ipe-modal-modal__window.plugin--toast .ipe-modal-btn{padding:.25em .75em!important}.ipe-modal-btn{--accent-color: #fff;--text-color: var(--ipe-modal-text);--active-color: rgba(0, 0, 0, .1);appearance:none;border:1px solid rgba(0,0,0,.14);background:var(--accent-color);color:var(--text-color);padding:8px 12px;border-radius:var(--ipe-modal-button-radius);cursor:pointer;font:inherit;transition:all .2s;line-height:1}.ipe-modal-btn:hover{background:#0000000a}.ipe-modal-btn:disabled{opacity:.6;cursor:not-allowed}.ipe-modal-btn:active{background:#0000000f;box-shadow:0 0 0 2px var(--active-color)}.ipe-modal-btn:focus{box-shadow:0 0 0 2px var(--active-color)}.ipe-modal-btn.is-primary{--accent-color: var(--ipe-modal-accent);--text-color: #fff;--active-color: rgba(var(--ipe-modal-accent--rgb), .5);border-color:var(--accent-color);background:var(--accent-color)}.ipe-modal-btn.is-danger{--accent-color: var(--ipe-modal-danger);--text-color: #fff;--active-color: rgba(var(--ipe-modal-danger--rgb), .2);border-color:var(--accent-color);background:var(--accent-color);color:var(--text-color)}.ipe-modal-btn.is-ghost,.ipe-modal-btn.is-text{background:transparent}.ipe-modal-btn.is-text{border:0;color:var(--ipe-modal-text)}.ipe-modal-btn.is-ghost.is-primary,.ipe-modal-btn.is-text.is-primary{color:var(--ipe-modal-accent)}.ipe-modal-btn.is-ghost.is-danger,.ipe-modal-btn.is-text.is-danger{color:var(--ipe-modal-danger)}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__footer,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__footer{padding:0;background-color:transparent}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__footer .ipe-modal-btn,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__footer .ipe-modal-btn{flex:1;border:0;margin:0;padding:1rem;border-radius:0}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__footer .ipe-modal-btn:not(:first-child),.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__footer .ipe-modal-btn:not(:first-child){border-left:1px solid rgba(0,0,0,.06)}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__buttons--left,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__buttons--left{display:none}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__buttons--right,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__buttons--right{flex:1;width:100%;display:flex;gap:0}@keyframes ipe-modal-fade-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes ipe-modal-fade-out{0%{transform:scale(1);opacity:1}to{transform:scale(.85);opacity:0}}.theme-ipe{--color-primary: #36c;--color-primary-hover: #447ff5;--color-primary-active: #2a4b8d;--color-promary--rgb: 51, 102, 204;--color-white: #fff;--color-text-dark: #222;--color-text-medium: #252525;--color-text-hover: #454545;--color-bg-light: #f8f9fa;--color-bg-lighter: #fafafa;--color-bg-lightest: #f8f8f8;--color-bg-gray: #f4f4f4;--color-border-gray: #c8ccd1;--color-border-light: #efefef;--color-border-input: #ccc;--color-border-dark: #72777d;--color-border-disabled: #d6d6d6;--color-danger: #d33;--color-danger-hover: #ff4242;--color-danger-active: #d00;--color-danger--rgb: 211, 51, 51;--color-disabled-bg: #c8ccd1;--color-disabled-dark: #a0a0a0;--font-size-button: 14px;--font-size-label: 1rem;--font-weight-label: 700;--border-width: 1px;--border-width-radio-checked: 6px;--border-radius-button: 6px;--border-radius-input: 4px;--padding-button-y: .5em;--padding-button-x: 1em;--padding-button-dialog: 1em;--padding-input-y: .25em;--padding-input-x: .35em;--size-checkbox: 1.2em;--size-radio: 1.4em;--margin-checkbox-top: .15em;--margin-checkbox-right: .375em;--textarea-height: 50vh;--textarea-min-height: 20em;--textarea-background: var(--color-bg-lighter);--line-height-input: 1.5em;--line-height-checkbox: 1.2em;--transition-fast: .1s;--transition-medium: .12s;--transition-slow: .2s;--ipe-modal-accent: var(--color-primary);--ipe-modal-danger: var(--color-danger);--ipe-modal-button-radius: var(--border-radius-button);font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}.theme-ipe textarea[name=text]{width:100%;height:var(--textarea-height);min-height:var(--textarea-min-height);background:var(--textarea-background);resize:vertical;border:var(--border-width) solid var(--color-border-input);border-radius:var(--border-radius-input);transition:border var(--transition-slow);line-height:var(--line-height-input);padding:var(--padding-input-y) var(--padding-input-x);outline:none}.theme-ipe textarea[name=text]:focus{border-color:var(--color-primary);box-shadow:inset 0 0 0 var(--border-width) var(--color-primary)}.theme-ipe textarea[name=text]:disabled{background-color:var(--color-disabled-bg);color:var(--color-white);cursor:not-allowed}.theme-ipe .ipe-quickEdit__textarea--monospace{font-family:monospace}.theme-ipe .ipe-quickEdit__textarea--sans-serif{font-family:sans-serif}.theme-ipe .ipe-quickEdit__textarea--serif{font-family:serif}.theme-ipe .ipe-input-box label{display:block;font-size:.875rem;margin-bottom:.5em;font-weight:500}.theme-ipe .ipe-input-box input[type=text],.theme-ipe .ipe-input-box input[type=number],.theme-ipe .ipe-input-box input[type=email],.theme-ipe .ipe-input-box input[type=password],.theme-ipe .ipe-input-box input[type=url],.theme-ipe .ipe-input-box input[type=tel],.theme-ipe .ipe-input-box input[type=search]{width:100%}.theme-ipe input{padding:var(--padding-input-y) var(--padding-input-x);border:var(--border-width) solid var(--color-border-input);border-radius:var(--border-radius-input);transition:border var(--transition-slow);line-height:var(--line-height-input);outline:none}.theme-ipe input:focus{border-color:var(--color-primary);box-shadow:inset 0 0 0 var(--border-width) var(--color-primary)}.theme-ipe label input[type=checkbox]+span,.theme-ipe label input[type=radio]+span{user-select:none;line-height:var(--line-height-checkbox)}.theme-ipe label input[type=checkbox]+span:before,.theme-ipe label input[type=radio]+span:before{content:" ";display:inline-block;width:var(--size-checkbox);height:var(--size-checkbox);margin-top:var(--margin-checkbox-top);margin-right:var(--margin-checkbox-right);border-radius:var(--border-radius-input);background-color:var(--color-bg-lightest);border:var(--border-width) solid var(--color-border-dark);cursor:pointer;transition:all var(--transition-medium)}.theme-ipe label input[type=radio]+span:before{border-radius:50%;box-sizing:border-box;vertical-align:text-bottom;width:var(--size-radio);height:var(--size-radio)}.theme-ipe label input[type=checkbox]:checked+span:before{content:" ";background-color:var(--color-primary);background-image:url(data:image/svg+xml;base64,PHN2ZyBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kOyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxnIGlkPSJjaGVja21hcmsiPjxwYXRoIGQ9Ik0xMy43NDkyKzMuNDkwOTVMNS44NjMxMisxMS42MzM3TDIuMjUwNzcrNy45NjA4MkwxLjQ4NzYrOC43NTc3OEw1Ljg2MzEyKzEzLjE5M0wxNC41MTI0KzQuMjg3OUwxMy43NDkyKzMuNDkwOTVaIiBvcGFjaXR5PSIxIiBmaWxsPSIjZmZmZmZmIi8+PC9nPjwvc3ZnPg==);background-repeat:no-repeat}.theme-ipe label input[type=radio]:checked+span:before{border-color:var(--color-primary);border-width:var(--border-width-radio-checked)}.theme-ipe label input[type=checkbox]:checked+span:hover:before{background-color:var(--color-primary-hover)}.theme-ipe label input[type=radio]:checked+span:hover:before{border-color:var(--color-primary-hover)}.theme-ipe label input[type=checkbox]:active+span:before,.theme-ipe label input[type=checkbox]:focus+span:before{box-shadow:0 0 0 2px rgba(var(--color-promary--rgb),.5);border-color:var(--color-primary)}.theme-ipe label input[type=checkbox],.theme-ipe label input[type=radio]{position:absolute;clip:rect(0,0,0,0)}.theme-ipe .cm-panel label input[type=checkbox],.theme-ipe .cm-panel label input[type=radio]{position:initial;clip:initial}.theme-ipe label input[type=checkbox]:disabled+span:before{border-color:var(--color-border-disabled)}.theme-ipe label input[type=radio]:disabled+span:before{background-color:var(--color-disabled-bg);border-color:var(--color-disabled-bg)}.theme-ipe label input[type=checkbox]:disabled:checked+span:before{background-color:var(--color-disabled-dark)}.theme-ipe label input[type=radio]:disabled:checked+span:before{background-color:var(--color-white)}.theme-ipe .ipe-radio-box span,.theme-ipe .ipe-checkbox span{vertical-align:middle}.theme-ipe svg.icon{height:1em;height:1lh;width:auto;vertical-align:middle}.theme-ipe .ipe-action-button{color:var(--text-color)}.theme-ipe-prose{color:var(--color-text-dark);line-height:1.6}.theme-ipe-prose h1,.theme-ipe-prose h2,.theme-ipe-prose h3,.theme-ipe-prose h4,.theme-ipe-prose h5,.theme-ipe-prose h6{color:var(--color-text-dark);line-height:1.25;margin-top:1em;margin-bottom:.75em;scroll-margin-top:2rem;position:relative;padding:0;padding-left:1rem}.theme-ipe-prose h1:before,.theme-ipe-prose h2:before,.theme-ipe-prose h3:before,.theme-ipe-prose h4:before,.theme-ipe-prose h5:before,.theme-ipe-prose h6:before{content:"";display:block;position:absolute;top:50%;left:0;transform:translateY(-50%);border-radius:1em}.theme-ipe-prose h1.plain,.theme-ipe-prose h2.plain,.theme-ipe-prose h3.plain,.theme-ipe-prose h4.plain,.theme-ipe-prose h5.plain,.theme-ipe-prose h6.plain{padding-left:0}.theme-ipe-prose h1.plain:before,.theme-ipe-prose h2.plain:before,.theme-ipe-prose h3.plain:before,.theme-ipe-prose h4.plain:before,.theme-ipe-prose h5.plain:before,.theme-ipe-prose h6.plain:before{display:none}.theme-ipe-prose h1{font-size:2rem;font-weight:700;letter-spacing:-.025em;margin-top:0}.theme-ipe-prose h2{font-size:1.6rem;font-weight:700;letter-spacing:-.025em}.theme-ipe-prose h2:before{width:.3rem;height:80%;background-color:var(--color-primary)}.theme-ipe-prose h3{font-size:1.3rem;font-weight:600}.theme-ipe-prose h3:before{width:.25rem;height:70%;margin-left:.05rem;background-color:rgba(var(--color-promary--rgb),.85)}.theme-ipe-prose h4{font-size:1.2rem;font-weight:600}.theme-ipe-prose h4:before{width:.2rem;height:60%;margin-left:.1rem;background-color:rgba(var(--color-promary--rgb),.7)}.theme-ipe-prose h5{font-size:1.125rem;font-weight:500}.theme-ipe-prose h5:before{width:.15rem;height:50%;margin-left:.1rem;background-color:rgba(var(--color-promary--rgb),.55)}.theme-ipe-prose h6{font-size:1rem;font-weight:500;color:var(--color-text-hover)}.theme-ipe-prose h6:before{width:.15rem;height:40%;margin-left:.1rem;background-color:rgba(var(--color-promary--rgb),.4)}.theme-ipe-prose p{margin-top:0;margin-bottom:1.25em}.theme-ipe-prose strong{font-weight:700;color:var(--color-text-dark)}.theme-ipe-prose em{font-style:italic}.theme-ipe-prose a:not(.ipe-modal-btn){color:var(--color-primary);text-decoration:none;font-weight:500;border-bottom:1px solid transparent;transition:all var(--transition-fast)}.theme-ipe-prose a:not(.ipe-modal-btn):hover{color:var(--color-primary-hover);border-bottom-color:var(--color-primary-hover)}.theme-ipe-prose a:not(.ipe-modal-btn):active{color:var(--color-primary-active)}.theme-ipe-prose a:not(.ipe-modal-btn) code{color:inherit}.theme-ipe-prose ul,.theme-ipe-prose ol{margin-top:1em;margin-bottom:1em;padding-left:1.625em}.theme-ipe-prose ul{list-style-type:disc}.theme-ipe-prose ol{list-style-type:decimal}.theme-ipe-prose li{margin-top:.5em;margin-bottom:.5em}.theme-ipe-prose li::marker{color:var(--color-text-hover)}.theme-ipe-prose ul ul,.theme-ipe-prose ul ol,.theme-ipe-prose ol ul,.theme-ipe-prose ol ol{margin-top:.5em;margin-bottom:.5em}.theme-ipe-prose blockquote{margin:1.5em 0;padding:1em 1.5em;border-left:4px solid var(--color-primary);background-color:var(--color-bg-lighter);border-radius:0 var(--border-radius-input) var(--border-radius-input) 0;font-style:italic;color:var(--color-text-medium)}.theme-ipe-prose blockquote p:last-child{margin-bottom:0}.theme-ipe-prose blockquote cite{display:block;margin-top:1em;font-size:.875em;font-style:normal;color:var(--color-text-hover)}.theme-ipe-prose blockquote cite:before{content:"— "}.theme-ipe-prose code{font-family:Consolas,Monaco,Courier New,monospace;font-size:.875em;background-color:var(--color-bg-lighter);padding:.2em .4em;border-radius:4px;border:1px solid var(--color-border-light);color:var(--color-text-dark);font-weight:400}.theme-ipe-prose pre{margin:1.5em 0;padding:1.25em 1.5em;background-color:var(--color-bg-lightest);border:1px solid var(--color-border-light);border-radius:var(--border-radius-input);overflow-x:auto;line-height:1.7}.theme-ipe-prose pre code{background-color:transparent;padding:0;border:none;border-radius:0;font-size:.875rem}.theme-ipe-prose hr{margin:1em 0;border:0;border-top:2px solid var(--color-border-light)}.theme-ipe-prose table{width:100%;margin:1.5em 0;border-collapse:collapse;font-size:.875em;line-height:1.5}.theme-ipe-prose thead{border-bottom:2px solid var(--color-border-gray)}.theme-ipe-prose th{padding:.75em 1em;text-align:left;font-weight:600;color:var(--color-text-dark);background-color:var(--color-bg-light)}.theme-ipe-prose td{padding:.75em 1em;border-bottom:1px solid var(--color-border-light)}.theme-ipe-prose tbody tr:hover{background-color:var(--color-bg-lighter)}.theme-ipe-prose img{max-width:100%;height:auto;border-radius:var(--border-radius-input);margin:1.5em 0}.theme-ipe-prose figure{margin:1.5em 0}.theme-ipe-prose figure img{margin:0}.theme-ipe-prose figure figcaption{margin-top:.75em;text-align:center;font-size:.875em;color:var(--color-text-hover);font-style:italic}.theme-ipe-prose kbd{font-family:inherit;font-size:.875em;padding:.2em .5em;border:1px solid var(--color-border-gray);border-radius:4px;background-color:var(--color-bg-light);box-shadow:0 1px 0 var(--color-border-gray),0 2px 0 var(--color-border-light);display:inline-block;line-height:1;white-space:nowrap}.theme-ipe-prose mark{background-color:#fff3cd;padding:.1em .3em;border-radius:2px;color:inherit}.theme-ipe-prose del{text-decoration:line-through;color:var(--color-text-hover)}.theme-ipe-prose ins{text-decoration:none;border-bottom:1px solid var(--color-primary);background-color:rgba(var(--color-promary--rgb),.1)}.theme-ipe-prose abbr{text-decoration:underline dotted;cursor:help}.theme-ipe-prose details{margin:1em 0;padding:1em;border:1px solid var(--color-border-light);border-radius:var(--border-radius-input);background-color:var(--color-bg-lighter)}.theme-ipe-prose details summary{cursor:pointer;font-weight:600;color:var(--color-primary);user-select:none;margin:-1em;padding:1em;transition:background-color var(--transition-fast)}.theme-ipe-prose details summary:hover{background-color:var(--color-bg-light)}.theme-ipe-prose details[open] summary{margin-bottom:.75em;border-bottom:1px solid var(--color-border-light)}@media(max-width:640px){.theme-ipe-prose{font-size:.875rem}.theme-ipe-prose h1{font-size:1.875rem}.theme-ipe-prose h2{font-size:1.5rem}.theme-ipe-prose h3{font-size:1.25rem}}svg.ipe-icon{height:1em;height:1lh;width:auto;vertical-align:middle}@media(min-width:768px){.skin-moeskin #ipe-edit-toolbox{bottom:5rem}}body.skin-fandomdesktop #ipe-edit-toolbox{bottom:3em}.tabbar .tabbar-tabs[data-v-7f07706b]{--border-color: #efefef;--tab-color: #666;--active-color: #3366bb;display:flex;gap:.5em;border-bottom:1px solid #efefef;margin-bottom:1em;white-space:nowrap;overflow-x:auto}.tabbar .tabbar-tabs .tab[data-v-7f07706b]{padding:.5em 1em;cursor:pointer;user-select:none;color:var(--tab-color);display:inline-block;transition:color .3s ease,box-shadow .3s ease}.tabbar .tabbar-tabs .tab.active[data-v-7f07706b]{color:var(--active-color);box-shadow:inset 0 -.15em 0 0 var(--active-color)}schema-form[data-v-7f07706b]{margin-bottom:.5em;--schema-radius: 6px}#preferences-ui-app .schema-form-item.field{border:0}.theme-ipe.diff-type-table .diff-title{line-height:1.5}.theme-ipe.diff-type-table .mw-diff-title--navigation{text-align:center;color:#666}#ipe-edit-toolbox{font-size:16px;position:fixed;right:2em;bottom:2em;user-select:none;z-index:42}@media print{#ipe-edit-toolbox{display:none}}#ipe-edit-toolbox .ipe-toolbox-btn{color:#fff;background:#bebebe;height:1.5em;width:1.5em;font-size:1.5em;line-height:1;border:0;border-radius:50%;box-shadow:0 0 8px #7f7f7f80;text-shadow:0 0 2px #4c4c4c;padding:0;margin:0;cursor:pointer;display:flex;align-items:center;justify-content:center}#ipe-edit-toolbox .ipe-toolbox-btn svg,#ipe-edit-toolbox .ipe-toolbox-btn img{line-height:1;width:1em;height:1em;vertical-align:middle}#ipe-edit-toolbox .ipe-toolbox-btn:disabled{cursor:not-allowed;filter:grayscale(50%) opacity(.75)}#ipe-edit-toolbox #toolbox-toggler{position:absolute;right:0;bottom:0;width:2em;height:2em;background:#3f51b5;font-size:1.5em;line-height:1;margin:0;transition:transform .3s cubic-bezier(.68,-.55,.27,1.55);transform:rotate(0)}#ipe-edit-toolbox.is-persistent #toolbox-toggler{transform:rotate(45deg)}#ipe-edit-toolbox .btn-group.group1 .btn-tip-group{transform:translate3d(0,100%,0)}#ipe-edit-toolbox .btn-group.group2 .btn-tip-group{transform:translate3d(100%,0,0)}#ipe-edit-toolbox .btn-group .btn-tip-group{transition-timing-function:cubic-bezier(.68,-.55,.27,1.55);transition-duration:.3s;transition-delay:var(--transition-delay, 0s);opacity:0}#ipe-edit-toolbox.is-persistent .btn-group .btn-tip-group,#ipe-edit-toolbox.is-hovered .btn-group .btn-tip-group{transform:translateZ(0);opacity:1}#ipe-edit-toolbox:not(.is-persistent):not(.is-hovered) .btn-group .btn-tip-group{transition-delay:calc(var(--max-transition-delay) - var(--transition-delay))}#ipe-edit-toolbox.is-persistent .btn-group,#ipe-edit-toolbox.is-hovered .btn-group{transform:scaleZ(1)}#ipe-edit-toolbox .ipe-toolbox-btn#toolbox-toggler.click{box-shadow:0 0 4px gray,0 0 10px #444 inset}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-edit-btn{background:#2196f3}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-move-btn{background:#00bcd4}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-redirect-btn{background:#009688}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-delete-btn{background:#e91e63}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__preferences-btn{background:#ffc107}#ipe-edit-toolbox .btn-group{position:absolute;display:flex;gap:.5em;list-style:none;margin:0;pointer-events:none}#ipe-edit-toolbox .btn-group.group1{bottom:3.5em;right:.375em;flex-direction:column}#ipe-edit-toolbox .btn-group.group2{bottom:.25em;right:3.375em}#ipe-edit-toolbox.is-persistent .btn-group,#ipe-edit-toolbox.is-hovered .btn-group{visibility:visible;pointer-events:auto}#ipe-edit-toolbox .btn-tip-group .btn-tip{position:absolute;text-align:center;font-size:12px;white-space:nowrap;left:50%;bottom:calc(100% + .5em);transform:translate(-50%);background:#fff;color:#252525;padding:.2em .5em;box-shadow:0 0 .5em #7f7f7f80;border-radius:.5em;pointer-events:none;opacity:0;transition:opacity .2s ease-in-out,bottom .2s ease-in-out}#ipe-edit-toolbox .btn-tip-group:hover .btn-tip{opacity:1;bottom:calc(100% + 1em)}#ipe-edit-toolbox .btn-tip-group .btn-tip:after{content:"";display:block;border:5px solid transparent;border-radius:2px;border-right-color:#fff;border-bottom-color:#fff;position:absolute;bottom:-8px;left:50%;transform:rotate(45deg) translate(-50%)}#ipe-plugin-store-app[data-v-6fcc9e77]{padding:var(--ipe-modal-spacing);font-size:.875rem;color:var(--ipe-modal-text)}.sotre-header[data-v-6fcc9e77]{margin-bottom:1.25rem;display:flex;align-items:center;gap:var(--ipe-modal-spacing)}.sotre-header h2[data-v-6fcc9e77]{margin:0;font-size:1.125rem;font-weight:600;color:var(--ipe-modal-text)}.sotre-header .store-search-wrapper[data-v-6fcc9e77]{flex:1;position:relative}.sotre-header .store-search-wrapper .store-search-input[data-v-6fcc9e77]{width:100%;height:2.5rem;padding:0 .875rem 0 2.5rem;border:1.5px solid var(--ipe-modal-border-color);border-radius:var(--ipe-modal-button-radius);font-size:.875rem;outline:none;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);transition:all .2s ease;line-height:1.5}.sotre-header .store-search-wrapper .store-search-input[data-v-6fcc9e77]:focus{border-color:var(--ipe-modal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ipe-modal-accent) 10%,transparent)}.sotre-header .store-search-wrapper .store-search-input[data-v-6fcc9e77]::placeholder{color:var(--ipe-modal-muted)}.sotre-header .store-search-wrapper .store-search-icon[data-v-6fcc9e77]{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.5}.sotre-header .store-refresh-btn[data-v-6fcc9e77]{height:2.5rem;padding:0 1rem;border:1.5px solid var(--ipe-modal-border-color);border-radius:var(--ipe-modal-button-radius);background:var(--ipe-modal-bg);color:var(--ipe-modal-text);cursor:pointer;font-size:.875rem;font-weight:500;white-space:nowrap;transition:all .2s ease;display:flex;align-items:center;gap:.375rem}.sotre-header .store-refresh-btn[data-v-6fcc9e77]:hover:not(:disabled){background:var(--ipe-modal-secondary-bg);border-color:var(--ipe-modal-accent);transform:translateY(-1px);box-shadow:0 2px 6px color-mix(in srgb,var(--ipe-modal-text) 10%,transparent)}.sotre-header .store-refresh-btn[data-v-6fcc9e77]:active:not(:disabled){transform:translateY(0)}.sotre-header .store-refresh-btn[data-v-6fcc9e77]:disabled{opacity:.6;cursor:not-allowed}.store-loading[data-v-6fcc9e77]{padding:10rem 1.25rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem}.store-loading .loading-spinner[data-v-6fcc9e77]{width:2rem;height:2rem;border:3px solid var(--ipe-modal-border-color);border-top-color:var(--ipe-modal-accent);border-radius:50%;animation:spin-6fcc9e77 .8s linear infinite}.store-loading .loading-text[data-v-6fcc9e77]{color:var(--ipe-modal-muted);font-size:.875rem}@keyframes spin-6fcc9e77{to{transform:rotate(360deg)}}.store-plugins[data-v-6fcc9e77]{display:flex;flex-direction:column;gap:.75rem}.plugin-item[data-v-6fcc9e77]{display:flex;align-items:center;gap:1rem;padding:.875rem;border:1.5px solid var(--ipe-modal-border-color);border-radius:calc(var(--ipe-modal-button-radius) + 2px);background:var(--ipe-modal-secondary-bg);position:relative;transition:all .2s ease}.plugin-item[data-v-6fcc9e77]:hover{background:var(--ipe-modal-divider-color);border-color:color-mix(in srgb,var(--ipe-modal-accent) 30%,var(--ipe-modal-border-color));box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-text) 5%,transparent)}.plugin-item.installed[data-v-6fcc9e77]{background:color-mix(in srgb,var(--ipe-modal-success) 5%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-success) 50%,var(--ipe-modal-border-color))}.plugin-item.installed[data-v-6fcc9e77]:hover{background:color-mix(in srgb,var(--ipe-modal-success) 8%,var(--ipe-modal-secondary-bg));border-color:var(--ipe-modal-success);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-success) 15%,transparent)}.plugin-item .plugin-info[data-v-6fcc9e77]{flex:1;min-width:0}.plugin-item .plugin-info .plugin-header[data-v-6fcc9e77]{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.plugin-item .plugin-info .plugin-header .name[data-v-6fcc9e77]{font-weight:600;font-size:1rem;color:var(--ipe-modal-text);line-height:1.2}.plugin-item .plugin-info .plugin-header .status-badge[data-v-6fcc9e77]{font-size:.6875rem;color:var(--ipe-modal-success);font-weight:600;background:color-mix(in srgb,var(--ipe-modal-success) 15%,transparent);padding:.125rem .375rem;border-radius:calc(var(--ipe-modal-button-radius) - 2px);line-height:1}.plugin-item .plugin-info .plugin-id[data-v-6fcc9e77]{font-size:.75rem;color:var(--ipe-modal-muted);font-family:monospace;margin-bottom:.375rem;background:color-mix(in srgb,var(--ipe-modal-muted) 5%,transparent);padding:.125rem .375rem;border-radius:3px;display:inline-block;margin-left:.375rem}.plugin-item .plugin-info .registry-tag[data-v-6fcc9e77]{font-size:.6875rem;color:var(--ipe-modal-accent);font-family:monospace;margin-bottom:.375rem;background:color-mix(in srgb,var(--ipe-modal-accent) 10%,transparent);padding:.125rem .375rem;border-radius:3px;display:inline-block;border:1px solid color-mix(in srgb,var(--ipe-modal-accent) 20%,transparent)}.plugin-item .plugin-info .plugin-desc[data-v-6fcc9e77]{font-size:.8125rem;color:var(--ipe-modal-muted);margin-bottom:.375rem;line-height:1.5}.plugin-item .plugin-info .plugin-meta[data-v-6fcc9e77]{font-size:.75rem;color:var(--ipe-modal-muted);display:flex;gap:1rem}.plugin-item .plugin-info .plugin-meta .version[data-v-6fcc9e77]{font-family:monospace;font-weight:500}.plugin-item .plugin-info .plugin-meta .author[data-v-6fcc9e77]{display:flex;align-items:center;gap:.25rem}.plugin-item button[data-v-6fcc9e77]{padding:.5rem 1.25rem;border:1.5px solid var(--ipe-modal-accent);border-radius:var(--ipe-modal-button-radius);background:var(--ipe-modal-bg);color:var(--ipe-modal-accent);cursor:pointer;font-size:.8125rem;font-weight:500;white-space:nowrap;transition:all .2s ease}.plugin-item button[data-v-6fcc9e77]:hover{background:var(--ipe-modal-accent);color:var(--ipe-modal-bg);transform:translateY(-1px);box-shadow:0 2px 6px color-mix(in srgb,var(--ipe-modal-accent) 25%,transparent)}.plugin-item button[data-v-6fcc9e77]:active{transform:translateY(0)}.plugin-item button.active[data-v-6fcc9e77]{border-color:var(--ipe-modal-danger);color:var(--ipe-modal-danger)}.plugin-item button.active[data-v-6fcc9e77]:hover{background:var(--ipe-modal-danger);color:var(--ipe-modal-bg);box-shadow:0 2px 6px color-mix(in srgb,var(--ipe-modal-danger) 25%,transparent)}.plugin-empty[data-v-6fcc9e77]{padding:3rem 1.25rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem}.plugin-empty .plugin-empty-icon[data-v-6fcc9e77]{font-size:3rem;opacity:.3}.plugin-empty .plugin-empty-text[data-v-6fcc9e77]{color:var(--ipe-modal-muted);font-size:.9375rem}
|