una-editor 0.2.3 → 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.
Files changed (43) hide show
  1. package/README.en.md +35 -2
  2. package/README.md +35 -2
  3. package/dist/clike-BKuxyWF6.cjs +1 -0
  4. package/dist/clike-DiubheGH.js +616 -0
  5. package/dist/go-BHVhI2MG.js +155 -0
  6. package/dist/go-BgtlNyKc.cjs +1 -0
  7. package/dist/index-B5GoofdY.js +28426 -0
  8. package/dist/index-CJVNADkB.js +93 -0
  9. package/dist/index-CKNMJCtD.cjs +1 -0
  10. package/dist/index-CU6O_K-D.js +611 -0
  11. package/dist/index-CjgM0d_T.js +300 -0
  12. package/dist/index-D1m8iO5G.cjs +72 -0
  13. package/dist/index-Dn2Q7BsK.cjs +1 -0
  14. package/dist/index-tXgg464w.cjs +3 -0
  15. package/dist/index.cjs +1 -66
  16. package/dist/index.mjs +8 -25339
  17. package/dist/rust-Dt_Syouh.cjs +1 -0
  18. package/dist/rust-ohAAD9YU.js +144 -0
  19. package/dist/types/components/UnaEditor.vue.d.ts +11 -10
  20. package/dist/types/components/UnaEditor.vue.d.ts.map +1 -1
  21. package/dist/types/composables/useEditor.d.ts +2 -0
  22. package/dist/types/composables/useEditor.d.ts.map +1 -1
  23. package/dist/types/extensions/codeBlockDecorator.d.ts +6 -0
  24. package/dist/types/extensions/codeBlockDecorator.d.ts.map +1 -0
  25. package/dist/types/extensions/codeThemeExtension.d.ts +8 -0
  26. package/dist/types/extensions/codeThemeExtension.d.ts.map +1 -0
  27. package/dist/types/extensions/hybridMarkdown.d.ts +4 -3
  28. package/dist/types/extensions/hybridMarkdown.d.ts.map +1 -1
  29. package/dist/types/extensions/languageSupport.d.ts +20 -0
  30. package/dist/types/extensions/languageSupport.d.ts.map +1 -0
  31. package/dist/types/extensions/structuredTable.d.ts +7 -0
  32. package/dist/types/extensions/structuredTable.d.ts.map +1 -0
  33. package/dist/types/extensions/structuredTableModel.d.ts +57 -0
  34. package/dist/types/extensions/structuredTableModel.d.ts.map +1 -0
  35. package/dist/types/index.d.ts +1 -1
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/types/locales/en-US.d.ts.map +1 -1
  38. package/dist/types/themes/codeThemes.d.ts +5 -0
  39. package/dist/types/themes/codeThemes.d.ts.map +1 -0
  40. package/dist/types/types/editor.d.ts +44 -2
  41. package/dist/types/types/editor.d.ts.map +1 -1
  42. package/dist/una-editor.css +1 -1
  43. package/package.json +18 -10
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function p(n){d(n,"start");var t={},e=n.languageData||{},f=!1;for(var u in n)if(u!=e&&n.hasOwnProperty(u))for(var s=t[u]=[],i=n[u],r=0;r<i.length;r++){var o=i[r];s.push(new k(o,n)),(o.indent||o.dedent)&&(f=!0)}return{name:e.name,startState:function(){return{state:"start",pending:null,indent:f?[]:null}},copyState:function(g){var a={state:g.state,pending:g.pending,indent:g.indent&&g.indent.slice(0)};return g.stack&&(a.stack=g.stack.slice(0)),a},token:l(t),indent:h(t,e),mergeTokens:e.mergeTokens,languageData:e}}function d(n,t){if(!n.hasOwnProperty(t))throw new Error("Undefined state "+t+" in simple mode")}function c(n,t){if(!n)return/(?:)/;var e="";return n instanceof RegExp?(n.ignoreCase&&(e="i"),n.unicode&&(e+="u"),n=n.source):n=String(n),new RegExp("^(?:"+n+")",e)}function x(n){if(!n)return null;if(n.apply)return n;if(typeof n=="string")return n.replace(/\./g," ");for(var t=[],e=0;e<n.length;e++)t.push(n[e]&&n[e].replace(/\./g," "));return t}function k(n,t){(n.next||n.push)&&d(t,n.next||n.push),this.regex=c(n.regex),this.token=x(n.token),this.data=n}function l(n){return function(t,e){if(e.pending){var f=e.pending.shift();return e.pending.length==0&&(e.pending=null),t.pos+=f.text.length,f.token}for(var u=n[e.state],s=0;s<u.length;s++){var i=u[s],r=(!i.data.sol||t.sol())&&t.match(i.regex);if(r){i.data.next?e.state=i.data.next:i.data.push?((e.stack||(e.stack=[])).push(e.state),e.state=i.data.push):i.data.pop&&e.stack&&e.stack.length&&(e.state=e.stack.pop()),i.data.indent&&e.indent.push(t.indentation()+t.indentUnit),i.data.dedent&&e.indent.pop();var o=i.token;if(o&&o.apply&&(o=o(r)),r.length>2&&i.token&&typeof i.token!="string"){e.pending=[];for(var g=2;g<r.length;g++)r[g]&&e.pending.push({text:r[g],token:i.token[g-1]});return t.backUp(r[0].length-(r[1]?r[1].length:0)),o[0]}else return o&&o.join?o[0]:o}}return t.next(),null}}function h(n,t){return function(e,f){if(e.indent==null||t.dontIndentStates&&t.dontIndentStates.indexOf(e.state)>-1)return null;var u=e.indent.length-1,s=n[e.state];n:for(;;){for(var i=0;i<s.length;i++){var r=s[i];if(r.data.dedent&&r.data.dedentIfLineStart!==!1){var o=r.regex.exec(f);if(o&&o[0]){u--,(r.next||r.push)&&(s=n[r.next||r.push]),f=f.slice(o[0].length);continue n}}}break}return u<0?0:e.indent[u]}}const b=p({start:[{regex:/b?"/,token:"string",next:"string"},{regex:/b?r"/,token:"string",next:"string_raw"},{regex:/b?r#+"/,token:"string",next:"string_raw_hash"},{regex:/'(?:[^'\\]|\\(?:[nrt0'"]|x[\da-fA-F]{2}|u\{[\da-fA-F]{6}\}))'/,token:"string.special"},{regex:/b'(?:[^']|\\(?:['\\nrt0]|x[\da-fA-F]{2}))'/,token:"string.special"},{regex:/(?:(?:[0-9][0-9_]*)(?:(?:[Ee][+-]?[0-9_]+)|\.[0-9_]+(?:[Ee][+-]?[0-9_]+)?)(?:f32|f64)?)|(?:0(?:b[01_]+|(?:o[0-7_]+)|(?:x[0-9a-fA-F_]+))|(?:[0-9][0-9_]*))(?:u8|u16|u32|u64|i8|i16|i32|i64|isize|usize)?/,token:"number"},{regex:/(let(?:\s+mut)?|fn|enum|mod|struct|type|union)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,token:["keyword",null,"def"]},{regex:/(?:abstract|alignof|as|async|await|box|break|continue|const|crate|do|dyn|else|enum|extern|fn|for|final|if|impl|in|loop|macro|match|mod|move|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,token:"keyword"},{regex:/\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|Option)\b/,token:"atom"},{regex:/\b(?:true|false|Some|None|Ok|Err)\b/,token:"builtin"},{regex:/\b(fn)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,token:["keyword",null,"def"]},{regex:/#!?\[.*\]/,token:"meta"},{regex:/\/\/.*/,token:"comment"},{regex:/\/\*/,token:"comment",next:"comment"},{regex:/[-+\/*=<>!]+/,token:"operator"},{regex:/[a-zA-Z_]\w*!/,token:"macroName"},{regex:/[a-zA-Z_]\w*/,token:"variable"},{regex:/[\{\[\(]/,indent:!0},{regex:/[\}\]\)]/,dedent:!0}],string:[{regex:/"/,token:"string",next:"start"},{regex:/(?:[^\\"]|\\(?:.|$))*/,token:"string"}],string_raw:[{regex:/"/,token:"string",next:"start"},{regex:/[^"]*/,token:"string"}],string_raw_hash:[{regex:/"#+/,token:"string",next:"start"},{regex:/(?:[^"]|"(?!#))*/,token:"string"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],languageData:{name:"rust",dontIndentStates:["comment"],indentOnInput:/^\s*\}$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}});exports.rust=b;
@@ -0,0 +1,144 @@
1
+ function p(n) {
2
+ d(n, "start");
3
+ var t = {}, e = n.languageData || {}, u = !1;
4
+ for (var f in n) if (f != e && n.hasOwnProperty(f))
5
+ for (var s = t[f] = [], i = n[f], r = 0; r < i.length; r++) {
6
+ var o = i[r];
7
+ s.push(new k(o, n)), (o.indent || o.dedent) && (u = !0);
8
+ }
9
+ return {
10
+ name: e.name,
11
+ startState: function() {
12
+ return { state: "start", pending: null, indent: u ? [] : null };
13
+ },
14
+ copyState: function(g) {
15
+ var a = { state: g.state, pending: g.pending, indent: g.indent && g.indent.slice(0) };
16
+ return g.stack && (a.stack = g.stack.slice(0)), a;
17
+ },
18
+ token: l(t),
19
+ indent: h(t, e),
20
+ mergeTokens: e.mergeTokens,
21
+ languageData: e
22
+ };
23
+ }
24
+ function d(n, t) {
25
+ if (!n.hasOwnProperty(t))
26
+ throw new Error("Undefined state " + t + " in simple mode");
27
+ }
28
+ function x(n, t) {
29
+ if (!n) return /(?:)/;
30
+ var e = "";
31
+ return n instanceof RegExp ? (n.ignoreCase && (e = "i"), n.unicode && (e += "u"), n = n.source) : n = String(n), new RegExp("^(?:" + n + ")", e);
32
+ }
33
+ function c(n) {
34
+ if (!n) return null;
35
+ if (n.apply) return n;
36
+ if (typeof n == "string") return n.replace(/\./g, " ");
37
+ for (var t = [], e = 0; e < n.length; e++)
38
+ t.push(n[e] && n[e].replace(/\./g, " "));
39
+ return t;
40
+ }
41
+ function k(n, t) {
42
+ (n.next || n.push) && d(t, n.next || n.push), this.regex = x(n.regex), this.token = c(n.token), this.data = n;
43
+ }
44
+ function l(n) {
45
+ return function(t, e) {
46
+ if (e.pending) {
47
+ var u = e.pending.shift();
48
+ return e.pending.length == 0 && (e.pending = null), t.pos += u.text.length, u.token;
49
+ }
50
+ for (var f = n[e.state], s = 0; s < f.length; s++) {
51
+ var i = f[s], r = (!i.data.sol || t.sol()) && t.match(i.regex);
52
+ if (r) {
53
+ i.data.next ? e.state = i.data.next : i.data.push ? ((e.stack || (e.stack = [])).push(e.state), e.state = i.data.push) : i.data.pop && e.stack && e.stack.length && (e.state = e.stack.pop()), i.data.indent && e.indent.push(t.indentation() + t.indentUnit), i.data.dedent && e.indent.pop();
54
+ var o = i.token;
55
+ if (o && o.apply && (o = o(r)), r.length > 2 && i.token && typeof i.token != "string") {
56
+ e.pending = [];
57
+ for (var g = 2; g < r.length; g++)
58
+ r[g] && e.pending.push({ text: r[g], token: i.token[g - 1] });
59
+ return t.backUp(r[0].length - (r[1] ? r[1].length : 0)), o[0];
60
+ } else return o && o.join ? o[0] : o;
61
+ }
62
+ }
63
+ return t.next(), null;
64
+ };
65
+ }
66
+ function h(n, t) {
67
+ return function(e, u) {
68
+ if (e.indent == null || t.dontIndentStates && t.dontIndentStates.indexOf(e.state) > -1)
69
+ return null;
70
+ var f = e.indent.length - 1, s = n[e.state];
71
+ n: for (; ; ) {
72
+ for (var i = 0; i < s.length; i++) {
73
+ var r = s[i];
74
+ if (r.data.dedent && r.data.dedentIfLineStart !== !1) {
75
+ var o = r.regex.exec(u);
76
+ if (o && o[0]) {
77
+ f--, (r.next || r.push) && (s = n[r.next || r.push]), u = u.slice(o[0].length);
78
+ continue n;
79
+ }
80
+ }
81
+ }
82
+ break;
83
+ }
84
+ return f < 0 ? 0 : e.indent[f];
85
+ };
86
+ }
87
+ const m = p({
88
+ start: [
89
+ // string and byte string
90
+ { regex: /b?"/, token: "string", next: "string" },
91
+ // raw string and raw byte string
92
+ { regex: /b?r"/, token: "string", next: "string_raw" },
93
+ { regex: /b?r#+"/, token: "string", next: "string_raw_hash" },
94
+ // character
95
+ { regex: /'(?:[^'\\]|\\(?:[nrt0'"]|x[\da-fA-F]{2}|u\{[\da-fA-F]{6}\}))'/, token: "string.special" },
96
+ // byte
97
+ { regex: /b'(?:[^']|\\(?:['\\nrt0]|x[\da-fA-F]{2}))'/, token: "string.special" },
98
+ {
99
+ regex: /(?:(?:[0-9][0-9_]*)(?:(?:[Ee][+-]?[0-9_]+)|\.[0-9_]+(?:[Ee][+-]?[0-9_]+)?)(?:f32|f64)?)|(?:0(?:b[01_]+|(?:o[0-7_]+)|(?:x[0-9a-fA-F_]+))|(?:[0-9][0-9_]*))(?:u8|u16|u32|u64|i8|i16|i32|i64|isize|usize)?/,
100
+ token: "number"
101
+ },
102
+ { regex: /(let(?:\s+mut)?|fn|enum|mod|struct|type|union)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/, token: ["keyword", null, "def"] },
103
+ { regex: /(?:abstract|alignof|as|async|await|box|break|continue|const|crate|do|dyn|else|enum|extern|fn|for|final|if|impl|in|loop|macro|match|mod|move|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/, token: "keyword" },
104
+ { regex: /\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|Option)\b/, token: "atom" },
105
+ { regex: /\b(?:true|false|Some|None|Ok|Err)\b/, token: "builtin" },
106
+ {
107
+ regex: /\b(fn)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,
108
+ token: ["keyword", null, "def"]
109
+ },
110
+ { regex: /#!?\[.*\]/, token: "meta" },
111
+ { regex: /\/\/.*/, token: "comment" },
112
+ { regex: /\/\*/, token: "comment", next: "comment" },
113
+ { regex: /[-+\/*=<>!]+/, token: "operator" },
114
+ { regex: /[a-zA-Z_]\w*!/, token: "macroName" },
115
+ { regex: /[a-zA-Z_]\w*/, token: "variable" },
116
+ { regex: /[\{\[\(]/, indent: !0 },
117
+ { regex: /[\}\]\)]/, dedent: !0 }
118
+ ],
119
+ string: [
120
+ { regex: /"/, token: "string", next: "start" },
121
+ { regex: /(?:[^\\"]|\\(?:.|$))*/, token: "string" }
122
+ ],
123
+ string_raw: [
124
+ { regex: /"/, token: "string", next: "start" },
125
+ { regex: /[^"]*/, token: "string" }
126
+ ],
127
+ string_raw_hash: [
128
+ { regex: /"#+/, token: "string", next: "start" },
129
+ { regex: /(?:[^"]|"(?!#))*/, token: "string" }
130
+ ],
131
+ comment: [
132
+ { regex: /.*?\*\//, token: "comment", next: "start" },
133
+ { regex: /.*/, token: "comment" }
134
+ ],
135
+ languageData: {
136
+ name: "rust",
137
+ dontIndentStates: ["comment"],
138
+ indentOnInput: /^\s*\}$/,
139
+ commentTokens: { line: "//", block: { open: "/*", close: "*/" } }
140
+ }
141
+ });
142
+ export {
143
+ m as rust
144
+ };
@@ -1,27 +1,28 @@
1
1
  import type { EditorProps, EditorExposed } from '../types/editor';
2
2
  declare const __VLS_export: import("vue").DefineComponent<EditorProps, EditorExposed, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
3
- "update:modelValue": (value: string) => any;
4
- change: (value: string) => any;
5
- save: () => any;
6
- focus: () => any;
7
3
  blur: () => any;
4
+ change: (value: string) => any;
8
5
  drop: (files: File[]) => any;
6
+ focus: () => any;
7
+ "update:modelValue": (value: string) => any;
8
+ save: () => any;
9
9
  }, string, import("vue").PublicProps, Readonly<EditorProps> & Readonly<{
10
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
11
- onChange?: ((value: string) => any) | undefined;
12
- onSave?: (() => any) | undefined;
13
- onFocus?: (() => any) | undefined;
14
10
  onBlur?: (() => any) | undefined;
11
+ onChange?: ((value: string) => any) | undefined;
15
12
  onDrop?: ((files: File[]) => any) | undefined;
13
+ onFocus?: (() => any) | undefined;
14
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
15
+ onSave?: (() => any) | undefined;
16
16
  }>, {
17
17
  modelValue: string;
18
- language: string;
19
18
  lineNumbers: boolean;
20
19
  lineWrap: boolean;
21
- hybridMarkdown: boolean;
20
+ livePreview: boolean;
22
21
  vimMode: boolean;
23
22
  locale: string | import("..").CustomLocale;
24
23
  theme: "light" | "dark";
24
+ codeTheme: "auto" | import("../types/editor").CodeThemeName;
25
+ codeLineNumbers: boolean;
25
26
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
26
27
  declare const _default: typeof __VLS_export;
27
28
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"UnaEditor.vue.d.ts","sourceRoot":"","sources":["../../../src/components/UnaEditor.vue"],"names":[],"mappings":"AAkJA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA4JlE,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;6EAKhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"UnaEditor.vue.d.ts","sourceRoot":"","sources":["../../../src/components/UnaEditor.vue"],"names":[],"mappings":"AAsKA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAmLlE,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;6EAKhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -16,5 +16,7 @@ export declare function useEditor(container: Ref<HTMLElement | undefined>, props
16
16
  insertText: (text: string) => void;
17
17
  getHeadings: () => Heading[];
18
18
  scrollToLine: (lineNumber: number) => void;
19
+ undoHistory: () => boolean;
20
+ redoHistory: () => boolean;
19
21
  };
20
22
  //# sourceMappingURL=useEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useEditor.d.ts","sourceRoot":"","sources":["../../../src/composables/useEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAsD,MAAM,kBAAkB,CAAC;AAOlG,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAmC5D,wBAAgB,SAAS,CACvB,SAAS,EAAE,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,EACvC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE;IACJ,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;CAClC;;;wBAyPwB,MAAM;yBAOL,UAAU,GAAG,SAAS;uBAItB,MAAM;uBAkBR,OAAO,EAAE;+BAwBC,MAAM;EAwCzC"}
1
+ {"version":3,"file":"useEditor.d.ts","sourceRoot":"","sources":["../../../src/composables/useEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAsD,MAAM,kBAAkB,CAAC;AAiBlG,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAa,MAAM,iBAAiB,CAAC;AA6CvE,wBAAgB,SAAS,CACvB,SAAS,EAAE,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,EACvC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE;IACJ,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;CAClC;;;wBAgWwB,MAAM;yBAOL,UAAU,GAAG,SAAS;uBAItB,MAAM;uBAkBR,OAAO,EAAE;+BAwBC,MAAM;;;EAoDzC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Create code block decorator extension
3
+ * @param showLineNumbers - Whether to show line numbers
4
+ */
5
+ export declare function createCodeBlockDecoratorExtension(showLineNumbers: boolean): import("@codemirror/state").Extension[];
6
+ //# sourceMappingURL=codeBlockDecorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeBlockDecorator.d.ts","sourceRoot":"","sources":["../../../src/extensions/codeBlockDecorator.ts"],"names":[],"mappings":"AAqFA;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,eAAe,EAAE,OAAO,2CAsCzE"}
@@ -0,0 +1,8 @@
1
+ import type { Extension } from '@codemirror/state';
2
+ import type { CodeTheme } from '../types/editor';
3
+ /**
4
+ * Create code theme extension
5
+ * Applies theme colors to code blocks via line-scoped CSS selectors and syntax highlighting
6
+ */
7
+ export declare function createCodeThemeExtension(theme: CodeTheme): Extension;
8
+ //# sourceMappingURL=codeThemeExtension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeThemeExtension.d.ts","sourceRoot":"","sources":["../../../src/extensions/codeThemeExtension.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAiEpE"}
@@ -1,5 +1,6 @@
1
- import { EditorView } from '@codemirror/view';
2
1
  import { type Extension } from '@codemirror/state';
3
- export declare function moveHybridCursorVertically(view: EditorView, direction: -1 | 1): boolean;
4
- export declare function createHybridMarkdownExtensions(): Extension;
2
+ export declare const remeasureEffect: import("@codemirror/state").StateEffectType<null>;
3
+ export declare function setupVimLogicalNavigation(): void;
4
+ export declare function createLivePreviewExtensions(): Extension;
5
+ export declare function createCodeDecorationExtension(): Extension;
5
6
  //# sourceMappingURL=hybridMarkdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hybridMarkdown.d.ts","sourceRoot":"","sources":["../../../src/extensions/hybridMarkdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAkC,MAAM,kBAAkB,CAAC;AAE1F,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA6RzD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAqCvF;AAgLD,wBAAgB,8BAA8B,IAAI,SAAS,CAsB1D"}
1
+ {"version":3,"file":"hybridMarkdown.d.ts","sourceRoot":"","sources":["../../../src/extensions/hybridMarkdown.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAOlF,eAAO,MAAM,eAAe,mDAA6B,CAAC;AAI1D,wBAAgB,yBAAyB,SAoDxC;AAsmBD,wBAAgB,2BAA2B,IAAI,SAAS,CAevD;AA4CD,wBAAgB,6BAA6B,IAAI,SAAS,CAOzD"}
@@ -0,0 +1,20 @@
1
+ import { LanguageDescription, LanguageSupport } from '@codemirror/language';
2
+ /**
3
+ * Get language support for a given language name
4
+ * @param language - Language name (e.g., 'typescript', 'python')
5
+ * @returns Language support or undefined if not supported
6
+ */
7
+ export declare function getLanguageSupport(language: string): Promise<LanguageSupport | undefined>;
8
+ /**
9
+ * Get list of all supported languages
10
+ */
11
+ export declare function getSupportedLanguages(): string[];
12
+ /**
13
+ * Check if a language is supported
14
+ */
15
+ export declare function isLanguageSupported(language: string): boolean;
16
+ /**
17
+ * Create LanguageDescription array for markdown codeLanguages
18
+ */
19
+ export declare function createLanguageDescriptions(): LanguageDescription[];
20
+ //# sourceMappingURL=languageSupport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languageSupport.d.ts","sourceRoot":"","sources":["../../../src/extensions/languageSupport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAoE5E;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAuB/F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG7D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,mBAAmB,EAAE,CAwBlE"}
@@ -0,0 +1,7 @@
1
+ import { type Extension } from '@codemirror/state';
2
+ import { EditorView } from '@codemirror/view';
3
+ export declare function enterStructuredTableFromAdjacentText(view: EditorView, direction: 1 | -1, editing: boolean, position?: number): boolean;
4
+ export declare function setupStructuredTableVim(): void;
5
+ export declare function createStructuredTableExtensions(): Extension;
6
+ export declare function isStructuredTableOverlayTarget(target: EventTarget | null): boolean;
7
+ //# sourceMappingURL=structuredTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuredTable.d.ts","sourceRoot":"","sources":["../../../src/extensions/structuredTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+D,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAc,UAAU,EAAwE,MAAM,kBAAkB,CAAC;AA8xDhI,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,SAAiC,GACxC,OAAO,CAiCT;AAi1BD,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C;AA+ED,wBAAgB,+BAA+B,IAAI,SAAS,CA2B3D;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAElF"}
@@ -0,0 +1,57 @@
1
+ import type { EditorState } from '@codemirror/state';
2
+ interface TreeNode {
3
+ name: string;
4
+ from: number;
5
+ to: number;
6
+ firstChild: TreeNode | null;
7
+ nextSibling: TreeNode | null;
8
+ parent: TreeNode | null;
9
+ }
10
+ export type TableAlignment = 'none' | 'left' | 'right' | 'center';
11
+ export interface TableCellMapping {
12
+ row: number;
13
+ col: number;
14
+ from: number;
15
+ to: number;
16
+ contentFrom: number;
17
+ contentTo: number;
18
+ text: string;
19
+ isHeader: boolean;
20
+ }
21
+ export interface TableRowMapping {
22
+ row: number;
23
+ from: number;
24
+ to: number;
25
+ cells: TableCellMapping[];
26
+ isHeader: boolean;
27
+ }
28
+ export interface TableMapping {
29
+ from: number;
30
+ to: number;
31
+ delimiterFrom: number;
32
+ delimiterTo: number;
33
+ columnCount: number;
34
+ alignments: TableAlignment[];
35
+ rows: TableRowMapping[];
36
+ }
37
+ export interface TableRewriteResult {
38
+ text: string;
39
+ focusRow: number;
40
+ focusCol: number;
41
+ focusFrom: number;
42
+ focusTo: number;
43
+ }
44
+ export declare function normalizePastedText(text: string): string;
45
+ export declare function normalizeCellText(text: string): string;
46
+ export declare function findTableMappingAt(state: EditorState, pos: number): TableMapping | null;
47
+ export declare function findTableMappingsInRange(state: EditorState, from: number, to: number): TableMapping[];
48
+ export declare function updateTableCell(table: TableMapping, row: number, col: number, text: string): TableRewriteResult;
49
+ export declare function insertTableRow(table: TableMapping, rowIndex: number, position: 'before' | 'after'): TableRewriteResult;
50
+ export declare function insertTableColumn(table: TableMapping, colIndex: number, position: 'before' | 'after'): TableRewriteResult;
51
+ export declare function deleteTableRow(table: TableMapping, row: number): TableRewriteResult | null;
52
+ export declare function deleteTableColumn(table: TableMapping, col: number): TableRewriteResult | null;
53
+ export declare function isCellEmpty(table: TableMapping, row: number, col: number): boolean;
54
+ export declare function isRowEmpty(table: TableMapping, row: number): boolean;
55
+ export declare function parseInlinePreviewText(text: string): TreeNode;
56
+ export {};
57
+ //# sourceMappingURL=structuredTableModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuredTableModel.d.ts","sourceRoot":"","sources":["../../../src/extensions/structuredTableModel.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const version = "0.1.0";
1
+ export declare const version: string;
2
2
  export { default as UnaEditor } from './components/UnaEditor.vue';
3
3
  export type { EditorProps, EditorEvents, EditorExposed, CustomLocale, Locale, } from './types/editor';
4
4
  export { locales, defaultLocale, defineLocale, zhCN, enUS } from './locales';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGlE,YAAY,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,MAAM,GACP,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,QAAyB,CAAC;AAG9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGlE,YAAY,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,MAAM,GACP,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"en-US.d.ts","sourceRoot":"","sources":["../../../src/locales/en-US.ts"],"names":[],"mappings":";;;;;;AAAA,wBAKE"}
1
+ {"version":3,"file":"en-US.d.ts","sourceRoot":"","sources":["../../../src/locales/en-US.ts"],"names":[],"mappings":";;;;;;AAAA,wBAME"}
@@ -0,0 +1,5 @@
1
+ import type { CodeTheme } from '../types/editor';
2
+ export declare const CODE_THEMES: Record<string, CodeTheme>;
3
+ export declare function getCodeTheme(name: string): CodeTheme | undefined;
4
+ export declare function getDefaultCodeTheme(editorTheme: 'light' | 'dark'): CodeTheme;
5
+ //# sourceMappingURL=codeThemes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeThemes.d.ts","sourceRoot":"","sources":["../../../src/themes/codeThemes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAiOjD,CAAC;AAGF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEhE;AAGD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE5E"}
@@ -1,16 +1,56 @@
1
1
  import type { EditorView } from '@codemirror/view';
2
+ export type CodeThemeName = 'one-dark' | 'dracula' | 'monokai' | 'solarized-dark' | 'nord' | 'tokyo-night' | 'github-light' | 'solarized-light' | 'atom-one-light';
3
+ export interface CodeThemeColors {
4
+ background: string;
5
+ foreground: string;
6
+ selection: string;
7
+ lineNumber: string;
8
+ keyword: string;
9
+ function: string;
10
+ string: string;
11
+ number: string;
12
+ comment: string;
13
+ operator: string;
14
+ variable: string;
15
+ type: string;
16
+ constant?: string;
17
+ property?: string;
18
+ tag?: string;
19
+ attribute?: string;
20
+ regexp?: string;
21
+ escape?: string;
22
+ }
23
+ export interface CodeTheme {
24
+ name: string;
25
+ type: 'light' | 'dark';
26
+ colors: CodeThemeColors;
27
+ }
2
28
  export interface EditorProps {
3
29
  modelValue: string;
4
- language?: string;
5
30
  lineNumbers?: boolean;
6
31
  lineWrap?: boolean;
7
- hybridMarkdown?: boolean;
32
+ livePreview?: boolean;
8
33
  vimMode?: boolean;
9
34
  locale?: string | CustomLocale;
10
35
  placeholder?: string;
11
36
  disabled?: boolean;
12
37
  readonly?: boolean;
13
38
  theme?: 'light' | 'dark';
39
+ fontFamily?: string;
40
+ codeFontFamily?: string;
41
+ fontSize?: number;
42
+ /**
43
+ * Code block theme
44
+ * - 'auto': Follow editor theme
45
+ * - CodeThemeName: Use specified color scheme
46
+ * @default 'auto'
47
+ */
48
+ codeTheme?: 'auto' | CodeThemeName;
49
+ /**
50
+ * Show line numbers in code blocks
51
+ * @default false
52
+ */
53
+ codeLineNumbers?: boolean;
14
54
  }
15
55
  export interface EditorEvents {
16
56
  'update:modelValue': (value: string) => void;
@@ -34,6 +74,8 @@ export interface EditorExposed {
34
74
  insertText: (text: string) => void;
35
75
  getHeadings: () => Heading[];
36
76
  scrollToLine: (lineNumber: number) => void;
77
+ undoHistory: () => boolean;
78
+ redoHistory: () => boolean;
37
79
  }
38
80
  export interface CustomLocale {
39
81
  [key: string]: string;
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../src/types/editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAGD,MAAM,WAAW,YAAY;IAC3B,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;CAC/B;AAGD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC;IACxD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,UAAU,GAAG,SAAS,CAAC;IAC5C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,OAAO,EAAE,CAAC;IAC7B,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAGD,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../src/types/editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,MAAM,aAAa,GAErB,UAAU,GACV,SAAS,GACT,SAAS,GACT,gBAAgB,GAChB,MAAM,GACN,aAAa,GAEb,cAAc,GACd,iBAAiB,GACjB,gBAAgB,CAAC;AAGrB,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;CACzB;AAGD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAEnC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,MAAM,WAAW,YAAY;IAC3B,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;CAC/B;AAGD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC;IACxD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,UAAU,GAAG,SAAS,CAAC;IAC5C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,OAAO,EAAE,CAAC;IAC7B,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B;AAGD,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC"}
@@ -1 +1 @@
1
- .una-editor[data-v-e058c30b]{width:100%;height:100%;min-height:200px;position:relative}.una-editor-fullscreen-browser[data-v-e058c30b]{position:fixed;inset:0;z-index:9999;background:#fff}.una-editor-fullscreen-tip[data-v-e058c30b]{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;z-index:10000;pointer-events:none;box-shadow:0 4px 12px #0000004d}.fade-enter-active[data-v-e058c30b],.fade-leave-active[data-v-e058c30b]{transition:opacity .3s ease}.fade-enter-from[data-v-e058c30b],.fade-leave-to[data-v-e058c30b]{opacity:0}
1
+ .una-editor[data-v-30f74284]{width:100%;height:100%;min-height:200px;position:relative}.una-editor-fullscreen-browser[data-v-30f74284]{position:fixed;inset:0;z-index:9999;background:#fff}.una-editor-fullscreen-tip[data-v-30f74284]{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;z-index:10000;pointer-events:none;box-shadow:0 4px 12px #0000004d}.fade-enter-active[data-v-30f74284],.fade-leave-active[data-v-30f74284]{transition:opacity .3s ease}.fade-enter-from[data-v-30f74284],.fade-leave-to[data-v-30f74284]{opacity:0}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "una-editor",
3
- "version": "0.2.3",
3
+ "version": "0.3.1",
4
4
  "description": "Lightweight & high-performance Vue 3 editor powered by CodeMirror 6. Supports Hybrid Markdown and Vim mode.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -38,8 +38,8 @@
38
38
  },
39
39
  "devDependencies": {
40
40
  "@eslint/js": "^10.0.1",
41
- "@typescript-eslint/eslint-plugin": "^8.56.1",
42
- "@typescript-eslint/parser": "^8.56.1",
41
+ "@typescript-eslint/eslint-plugin": "^8.57.1",
42
+ "@typescript-eslint/parser": "^8.57.1",
43
43
  "@vitejs/plugin-vue": "^5.2.4",
44
44
  "@vue/test-utils": "^2.4.6",
45
45
  "concurrently": "^9.2.1",
@@ -48,11 +48,11 @@
48
48
  "jsdom": "^28.1.0",
49
49
  "prettier": "^3.8.1",
50
50
  "typescript": "^5.9.3",
51
- "typescript-eslint": "^8.56.1",
51
+ "typescript-eslint": "^8.57.1",
52
52
  "vite": "^7.3.1",
53
- "vitest": "^4.0.18",
54
- "vue": "^3.5.29",
55
- "vue-tsc": "^3.2.5"
53
+ "vitest": "^4.1.0",
54
+ "vue": "^3.5.30",
55
+ "vue-tsc": "^3.2.6"
56
56
  },
57
57
  "keywords": [
58
58
  "vue",
@@ -73,13 +73,21 @@
73
73
  },
74
74
  "homepage": "https://charlestang.github.io/UnaEditor/",
75
75
  "dependencies": {
76
- "@codemirror/commands": "^6.10.2",
76
+ "@codemirror/commands": "^6.10.3",
77
+ "@codemirror/lang-css": "^6.3.1",
78
+ "@codemirror/lang-java": "^6.0.2",
79
+ "@codemirror/lang-javascript": "^6.2.5",
77
80
  "@codemirror/lang-markdown": "^6.5.0",
81
+ "@codemirror/lang-php": "^6.0.2",
82
+ "@codemirror/lang-python": "^6.2.1",
78
83
  "@codemirror/language": "^6.12.2",
84
+ "@codemirror/language-data": "^6.5.2",
85
+ "@codemirror/legacy-modes": "^6.5.2",
79
86
  "@codemirror/search": "^6.6.0",
80
- "@codemirror/state": "^6.5.4",
87
+ "@codemirror/state": "^6.6.0",
81
88
  "@codemirror/theme-one-dark": "^6.1.3",
82
- "@codemirror/view": "^6.39.16",
89
+ "@codemirror/view": "^6.40.0",
90
+ "@lezer/highlight": "^1.2.3",
83
91
  "@replit/codemirror-vim": "^6.3.0"
84
92
  }
85
93
  }