@inpageedit/core 0.3.0 → 0.3.1

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/lib/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_v5fz5_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:1rem 0;position:relative}._mbox_v5fz5_1 ._title_v5fz5_12{background-color:var(--title-color);padding:.5rem 1rem;font-weight:700;font-size:1rem;line-height:1.2}._mbox_v5fz5_1 ._content_v5fz5_19{background-color:var(--content-color);padding:.5rem 1rem;font-size:1rem;line-height:1.5;max-height:14em;overflow:auto}._mbox_v5fz5_1 ._close_v5fz5_27{position:absolute;top:.5rem;right:.5rem;font-size:1.25rem;line-height:1rem;color:var(--border-color);cursor:pointer;user-select:none}._mbox_v5fz5_1 ._close_v5fz5_27:hover{filter:brightness(1.2)}._mbox_v5fz5_1 ._close_v5fz5_27:active{filter:brightness(.8)}._mbox_v5fz5_1.mbox-type-note,._mbox_v5fz5_1.mbox-type-info{--border-color: #1f6feb;--title-color: #AFD1FE;--content-color: #f3f9ff}._mbox_v5fz5_1.mbox-type-tip,._mbox_v5fz5_1.mbox-type-success{--border-color: #238636;--title-color: #E0F1E3;--content-color: #f9f9f9}._mbox_v5fz5_1.mbox-type-important,._mbox_v5fz5_1.mbox-type-done{--border-color: #8957e5;--title-color: #DDCBFC;--content-color: #f9f9f9}._mbox_v5fz5_1.mbox-type-warning{--border-color: #9e6a03;--title-color: #E4CC9D;--content-color: #fff9db}._mbox_v5fz5_1.mbox-type-caution,._mbox_v5fz5_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)}}._diff-container_lq0si_2{--primary-text-color: #333;--secondary-text-color: #888;--container-bg-color: #fff;--border-color: #ccc;--del-bg: #fadad7;--del-color: #b30000;--ins-bg: #eaf2c2;--ins-color: #406619;--chunk-header-color: #8a008b;--result-bg: #f5f5f5;background:var(--result-bg);padding:1rem;margin:0;border-radius:3px;font-family:Maple Mono NF CN,Maple Mono NF,Maple Mono,JetBrainsMono Nerd Font,JetBrains Mono NF,JetBrains Mono,Consolas,Courier New,monospace;white-space:pre-wrap;overflow-x:auto;line-height:1.4em;color:var(--secondary-text-color);transition:color .25s ease}._diff-container_lq0si_2:hover{color:var(--primary-text-color)}._diff-container_lq0si_2 del{text-decoration:line-through;color:var(--del-color);background:var(--del-bg)}._diff-container_lq0si_2 ins{background:var(--ins-bg);color:var(--ins-color);text-decoration:underline}._diff-container_lq0si_2 del,._diff-container_lq0si_2 ins{font-weight:700}._diff-container_lq0si_2 ._chunk-header_lq0si_44{color:var(--chunk-header-color);text-decoration:none}.tabs[data-v-f3a2bfc1]{--border-color: #efefef;--tab-color: #666;--active-color: #3366bb;display:flex;gap:.5em;border-bottom:1px solid #efefef;margin-bottom:1em}.tabs .tab[data-v-f3a2bfc1]{padding:.25em .5em;cursor:pointer;user-select:none;color:var(--tab-color);display:inline-block;transition:color .3s ease,box-shadow .3s ease}.tabs .tab.active[data-v-f3a2bfc1]{color:var(--active-color);box-shadow:inset 0 -.15em 0 0 var(--active-color)}
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_v5fz5_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:1rem 0;position:relative}._mbox_v5fz5_1 ._title_v5fz5_12{background-color:var(--title-color);padding:.5rem 1rem;font-weight:700;font-size:1rem;line-height:1.2}._mbox_v5fz5_1 ._content_v5fz5_19{background-color:var(--content-color);padding:.5rem 1rem;font-size:1rem;line-height:1.5;max-height:14em;overflow:auto}._mbox_v5fz5_1 ._close_v5fz5_27{position:absolute;top:.5rem;right:.5rem;font-size:1.25rem;line-height:1rem;color:var(--border-color);cursor:pointer;user-select:none}._mbox_v5fz5_1 ._close_v5fz5_27:hover{filter:brightness(1.2)}._mbox_v5fz5_1 ._close_v5fz5_27:active{filter:brightness(.8)}._mbox_v5fz5_1.mbox-type-note,._mbox_v5fz5_1.mbox-type-info{--border-color: #1f6feb;--title-color: #AFD1FE;--content-color: #f3f9ff}._mbox_v5fz5_1.mbox-type-tip,._mbox_v5fz5_1.mbox-type-success{--border-color: #238636;--title-color: #E0F1E3;--content-color: #f9f9f9}._mbox_v5fz5_1.mbox-type-important,._mbox_v5fz5_1.mbox-type-done{--border-color: #8957e5;--title-color: #DDCBFC;--content-color: #f9f9f9}._mbox_v5fz5_1.mbox-type-warning{--border-color: #9e6a03;--title-color: #E4CC9D;--content-color: #fff9db}._mbox_v5fz5_1.mbox-type-caution,._mbox_v5fz5_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)}}._diff-container_lq0si_2{--primary-text-color: #333;--secondary-text-color: #888;--container-bg-color: #fff;--border-color: #ccc;--del-bg: #fadad7;--del-color: #b30000;--ins-bg: #eaf2c2;--ins-color: #406619;--chunk-header-color: #8a008b;--result-bg: #f5f5f5;background:var(--result-bg);padding:1rem;margin:0;border-radius:3px;font-family:Maple Mono NF CN,Maple Mono NF,Maple Mono,JetBrainsMono Nerd Font,JetBrains Mono NF,JetBrains Mono,Consolas,Courier New,monospace;white-space:pre-wrap;overflow-x:auto;line-height:1.4em;color:var(--secondary-text-color);transition:color .25s ease}._diff-container_lq0si_2:hover{color:var(--primary-text-color)}._diff-container_lq0si_2 del{text-decoration:line-through;color:var(--del-color);background:var(--del-bg)}._diff-container_lq0si_2 ins{background:var(--ins-bg);color:var(--ins-color);text-decoration:underline}._diff-container_lq0si_2 del,._diff-container_lq0si_2 ins{font-weight:700}._diff-container_lq0si_2 ._chunk-header_lq0si_44{color:var(--chunk-header-color);text-decoration:none}.tabs[data-v-46564df3]{--border-color: #efefef;--tab-color: #666;--active-color: #3366bb;display:flex;gap:.5em;border-bottom:1px solid #efefef;margin-bottom:1em}.tabs .tab[data-v-46564df3]{padding:.25em .5em;cursor:pointer;user-select:none;color:var(--tab-color);display:inline-block;transition:color .3s ease,box-shadow .3s ease}.tabs .tab.active[data-v-46564df3]{color:var(--active-color);box-shadow:inset 0 -.15em 0 0 var(--active-color)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inpageedit/core",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "🚀 Modular, Extensible Supercharged Plugin for MediaWiki",
5
5
  "author": "dragon-fish",
6
6
  "license": "MIT",
@@ -86,7 +86,7 @@
86
86
  "vitepress-plugin-mermaid": "^2.0.17",
87
87
  "vitepress-sidebar": "^1.33.0",
88
88
  "zx": "^8.8.3",
89
- "@inpageedit/core": "^0.3.0"
89
+ "@inpageedit/core": "^0.3.1"
90
90
  },
91
91
  "dependencies": {
92
92
  "cordis": "^3.18.1",
@@ -95,7 +95,8 @@
95
95
  "naive-ui": "^2.43.1",
96
96
  "schemastery": "^3.17.0",
97
97
  "vue": "^3.5.21",
98
- "wiki-saikou": "^5.0.0"
98
+ "wiki-saikou": "^5.0.0",
99
+ "schemastery-form": "^0.1.0"
99
100
  },
100
101
  "peerDependencies": {
101
102
  "fexios": "^3.1.0"
@@ -1,142 +0,0 @@
1
- import { default as Schema } from 'schemastery';
2
- export interface SchemaFormI18n {
3
- arrayAdd?: string;
4
- arrayMoveUp?: string;
5
- arrayMoveDown?: string;
6
- arrayRemove?: string;
7
- dictAdd?: string;
8
- dictRemove?: string;
9
- rootLabel?: string;
10
- }
11
- export declare const DEFAULT_I18N: Required<SchemaFormI18n>;
12
- export type JSONValue = string | number | boolean | null | JSONValue[] | {
13
- [k: string]: JSONValue;
14
- };
15
- export interface SchemaFormChangeDetail<T = any> {
16
- path: (string | number)[];
17
- value: any;
18
- state: T;
19
- }
20
- export type SchemaFormChangeEvent<T = any> = Event & {
21
- detail: SchemaFormChangeDetail<T>;
22
- };
23
- type PathSeg = string | number;
24
- declare abstract class BaseFieldElement<T = any> extends HTMLElement {
25
- /** Schemastery 子 schema(泛型) */ protected _schema: Schema<T>;
26
- /** 字段路径(用于 data-path 与事件)*/ protected _path: PathSeg[];
27
- /** 当前值(UI 原始值)*/ protected _value: T;
28
- /** ShadowRoot */ protected $root: ShadowRoot;
29
- /** 显示标签 */ protected _label?: string;
30
- /** i18n 文本 */ protected _i18n: Required<SchemaFormI18n>;
31
- constructor();
32
- /** 初始化公共容器(带类名与 data-path) */
33
- protected makeFieldContainer(typeClass: string, description?: string): HTMLDivElement;
34
- /** 外部设置 schema/path/label/value */
35
- set schema(v: Schema<T>);
36
- get schema(): Schema<T>;
37
- set path(p: PathSeg[]);
38
- get path(): PathSeg[];
39
- set label(v: string | undefined);
40
- get label(): string | undefined;
41
- set i18n(v: Partial<SchemaFormI18n> | undefined);
42
- get i18n(): Partial<SchemaFormI18n> | undefined;
43
- setValue(v: T): void;
44
- getValue(): T;
45
- /** 子类实现具体渲染 */
46
- protected abstract render(): void;
47
- /** 触发变更事件(冒泡) */
48
- protected emitChange(value: T): void;
49
- }
50
- declare class SchemaFormString extends BaseFieldElement<string | undefined> {
51
- private $input?;
52
- protected render(): void;
53
- }
54
- declare class SchemaFormNumber extends BaseFieldElement<number | undefined> {
55
- private $input?;
56
- protected render(): void;
57
- }
58
- declare class SchemaFormBoolean extends BaseFieldElement<boolean> {
59
- protected render(): void;
60
- }
61
- declare class SchemaFormDate extends BaseFieldElement<Date | undefined> {
62
- private $input?;
63
- protected render(): void;
64
- }
65
- declare class SchemaFormConst extends BaseFieldElement<any> {
66
- protected render(): void;
67
- }
68
- declare class SchemaFormUnion extends BaseFieldElement<any> {
69
- protected render(): void;
70
- }
71
- declare class SchemaFormTuple extends BaseFieldElement<any[]> {
72
- protected render(): void;
73
- }
74
- declare class SchemaFormObject extends BaseFieldElement<Record<string, any>> {
75
- protected render(): void;
76
- }
77
- declare class SchemaFormArray extends BaseFieldElement<any[]> {
78
- protected render(): void;
79
- }
80
- declare class SchemaFormDict extends BaseFieldElement<Record<string, any>> {
81
- protected render(): void;
82
- }
83
- export declare class SchemaForm<T extends any = unknown> extends HTMLElement {
84
- private _schema;
85
- private _state;
86
- private $root;
87
- private _i18n;
88
- constructor();
89
- set schema(value: Schema<T>);
90
- get schema(): Schema<T>;
91
- set schemaJSON(value: JSONValue);
92
- get schemaJSON(): any;
93
- setData(data: Partial<T>, opts?: {
94
- validate?: boolean;
95
- autofix?: boolean;
96
- }): void;
97
- getData(opts?: {
98
- validate?: boolean;
99
- autofix?: boolean;
100
- }): T;
101
- reset(): void;
102
- refresh(): void;
103
- set i18n(v: Partial<SchemaFormI18n>);
104
- get i18n(): Partial<SchemaFormI18n>;
105
- private render;
106
- }
107
- export interface FormInstance<T> {
108
- /** 底层元素 */ el: SchemaForm<T>;
109
- /** 设置数据(可选校验)*/ setData: (v: Partial<T>, opts?: {
110
- validate?: boolean;
111
- }) => void;
112
- /** 获取数据(默认校验)*/ getData: (opts?: {
113
- validate?: boolean;
114
- }) => T;
115
- /** 卸载/清理 */ destroy: () => void;
116
- }
117
- /**
118
- * 创建一个带强类型提示的 Schemastery 表单实例。
119
- * @param schema Schemastery schema(函数调用返回 T)
120
- * @param options 初始值与 onChange 回调
121
- */
122
- export declare function createSchemasteryForm<T = any>(schema: Schema<T>, options?: {
123
- value?: Partial<T>;
124
- onChange?: (val: T) => void;
125
- i18n?: Partial<SchemaFormI18n>;
126
- }): FormInstance<T>;
127
- declare global {
128
- interface HTMLElementTagNameMap {
129
- 'schema-form': SchemaForm<any>;
130
- 'schema-form-string': SchemaFormString;
131
- 'schema-form-number': SchemaFormNumber;
132
- 'schema-form-boolean': SchemaFormBoolean;
133
- 'schema-form-date': SchemaFormDate;
134
- 'schema-form-const': SchemaFormConst;
135
- 'schema-form-union': SchemaFormUnion;
136
- 'schema-form-tuple': SchemaFormTuple;
137
- 'schema-form-object': SchemaFormObject;
138
- 'schema-form-array': SchemaFormArray;
139
- 'schema-form-dict': SchemaFormDict;
140
- }
141
- }
142
- export {};