@douyinfe/semi-foundation 2.69.0 → 2.70.0-alpha.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.
@@ -0,0 +1,7 @@
1
+ import { BASE_CLASS_PREFIX } from "../base/constants";
2
+
3
+ const cssClasses = {
4
+ PREFIX: `${BASE_CLASS_PREFIX}-json-viewer`,
5
+ } as const;
6
+
7
+ export { cssClasses };
@@ -0,0 +1,67 @@
1
+
2
+ export * from '@douyinfe/semi-json-viewer-core';
3
+ import { JsonViewer, JsonViewerOptions } from '@douyinfe/semi-json-viewer-core';
4
+ import BaseFoundation, { DefaultAdapter, noopFunction } from '../base/foundation';
5
+
6
+ export interface JsonViewerAdapter<P = Record<string, any>, S = Record<string, any>> extends DefaultAdapter<P, S> {
7
+ getJsonViewerRef: () => HTMLElement;
8
+ onValueChange: (value: string) => void;
9
+ onValueHover: (value: string, el: HTMLElement) => HTMLElement | undefined
10
+ }
11
+
12
+
13
+ class JsonViewerFoundation extends BaseFoundation<JsonViewerAdapter> {
14
+ constructor(adapter: JsonViewerAdapter) {
15
+ super({ ...JsonViewerFoundation, ...adapter });
16
+ }
17
+
18
+ jsonViewer: JsonViewer | null = null;
19
+
20
+ init() {
21
+ const props = this.getProps();
22
+ const jsonViewerRef = this._adapter.getJsonViewerRef();
23
+ this.jsonViewer = new JsonViewer(jsonViewerRef, props.value, props.options);
24
+ this.jsonViewer.layout();
25
+ this.jsonViewer.emitter.on('contentChanged', (e) => {
26
+ this.onValueChange(this.jsonViewer?.getModel().getValue());
27
+ });
28
+ this.jsonViewer.emitter.on('hoverNode', (e) => {
29
+ const el = this.onValueHover(e.value, e.target);
30
+ if (el) {
31
+ this.jsonViewer.emitter.emit('renderHoverNode', { el });
32
+ }
33
+ });
34
+ }
35
+
36
+ onValueChange(value: string) {
37
+ this._adapter.onValueChange(value);
38
+ }
39
+
40
+ onValueHover(value: string, el: HTMLElement): HTMLElement | undefined {
41
+ return this._adapter.onValueHover(value, el);
42
+ }
43
+
44
+ search(searchText: string) {
45
+ const state = this.getState('searchOptions');
46
+ const { caseSensitive, wholeWord, regex } = state;
47
+ this.jsonViewer?.getSearchWidget().search(searchText, caseSensitive, wholeWord, regex);
48
+ }
49
+
50
+ prevSearch() {
51
+ this.jsonViewer?.getSearchWidget().navigateResults(-1);
52
+ }
53
+
54
+ nextSearch() {
55
+ this.jsonViewer?.getSearchWidget().navigateResults(1);
56
+ }
57
+
58
+ replace(replaceText: string) {
59
+ this.jsonViewer?.getSearchWidget().replace(replaceText);
60
+ }
61
+
62
+ replaceAll(replaceText: string) {
63
+ this.jsonViewer?.getSearchWidget().replaceAll(replaceText);
64
+ }
65
+ }
66
+
67
+ export default JsonViewerFoundation;
@@ -0,0 +1,152 @@
1
+ @import './variables.scss';
2
+
3
+ $module: #{$prefix}-json-viewer;
4
+
5
+ .#{$module} {
6
+ &-background {
7
+ background-color: $color-json-viewer-background;
8
+ }
9
+
10
+ &-string-key {
11
+ color: $color-json-viewer-key;
12
+ }
13
+
14
+ &-string-value {
15
+ color: $color-json-viewer-value;
16
+ }
17
+
18
+ &-keyword {
19
+ color: $color-json-viewer-keyword;
20
+ }
21
+
22
+ &-number {
23
+ color: $color-json-viewer-number;
24
+ }
25
+
26
+ &-delimiter-comma {
27
+ color: $color-json-viewer-delimiter-comma;
28
+ }
29
+
30
+ @each $type, $colors in $semi-json-viewer-delimiter-colors {
31
+ @each $level, $color in $colors {
32
+ &-delimiter-#{$type}-#{$level} {
33
+ color: $color;
34
+ }
35
+ }
36
+ }
37
+
38
+ &-search-result {
39
+ background-color: $semi-json-viewer-search-result-background;
40
+ }
41
+
42
+ &-current-search-result {
43
+ background-color: $semi-json-viewer-current-search-result-background !important;
44
+ }
45
+
46
+ &-folding-icon {
47
+ opacity: 0.7;
48
+ transition: opacity 0.8s;
49
+ color: $semi-json-viewer-folding-icon-color;
50
+ }
51
+
52
+ &-view-line {
53
+ font-family: Menlo, Firecode, Monaco, 'Courier New', monospace;
54
+ font-weight: normal;
55
+ font-size: 12px;
56
+ font-feature-settings: 'liga' 0, 'calt' 0;
57
+ font-variation-settings: normal;
58
+ letter-spacing: 0px;
59
+ color: #237893;
60
+ }
61
+
62
+ &-line-number {
63
+ font-family: Menlo, Firecode, Monaco, 'Courier New', monospace;
64
+ font-weight: normal;
65
+ font-size: 12px;
66
+ font-feature-settings: 'liga' 0, 'calt' 0;
67
+ font-variation-settings: normal;
68
+ letter-spacing: 0px;
69
+ color: $semi-json-viewer-line-number-color;
70
+ text-align: center;
71
+ width: 50px;
72
+ }
73
+
74
+ &-line-number-container {
75
+ scrollbar-width: none; /* 隐藏滚动条(Firefox) */
76
+ -ms-overflow-style: none; /* 隐藏滚动条(IE 和 Edge) */
77
+ }
78
+
79
+ &-line-number-container::-webkit-scrollbar {
80
+ display: none; /* 隐藏滚动条(Webkit 浏览器) */
81
+ }
82
+
83
+ &-search-bar-container {
84
+ width: 440px;
85
+ border: 1px solid var(--semi-color-border);
86
+ border-radius: var(--semi-border-radius-small);
87
+ display: flex;
88
+ flex-direction: column;
89
+ padding: 8px;
90
+ gap: 8px;
91
+ }
92
+
93
+
94
+ &-replace-bar,
95
+ &-search-bar {
96
+ display: flex;
97
+ align-items: flex-start;
98
+ gap: 8px;
99
+ }
100
+
101
+ &-search-options {
102
+ display: flex;
103
+ align-items: center;
104
+ justify-content: center;
105
+ list-style: none;
106
+ padding-inline-start: 0;
107
+ margin-block-start: 0;
108
+ margin-block-end: 0;
109
+ }
110
+
111
+ &-search-options-item {
112
+ min-width: 32px;
113
+ height: 32px;
114
+ display: flex;
115
+ align-items: center;
116
+ justify-content: center;
117
+ cursor: pointer;
118
+ margin: 0 4px;
119
+ border-radius: var(--semi-border-radius-small);
120
+ }
121
+
122
+ &-search-options-item:hover {
123
+ background-color: var(--semi-color-default);
124
+ }
125
+
126
+ &-search-options-item-active {
127
+ color: var(--semi-color-primary);
128
+ background-color: var(--semi-color-primary-light-default);
129
+ }
130
+
131
+ &-complete-suggestions-container {
132
+ border-radius: var(--semi-border-radius-medium);
133
+ background-color: var(--semi-color-bg-3);
134
+ box-shadow: var(--semi-shadow-elevated);
135
+ z-index: 1000;
136
+ min-width: 200px;
137
+ max-width: 400px;
138
+ list-style: none;
139
+ padding: 4px 0;
140
+ }
141
+
142
+ &-complete-container {
143
+ position: absolute;
144
+ z-index: 1000;
145
+ }
146
+
147
+ &-complete-suggestions-item {
148
+ padding: 8px 16px;
149
+ color: var(--semi-color-text-0);
150
+ cursor: pointer;
151
+ }
152
+ }
@@ -0,0 +1,51 @@
1
+ const esbuild = require('esbuild');
2
+ const path = require('path');
3
+ const fs = require('fs');
4
+
5
+
6
+
7
+
8
+ const compileWorker = async ()=>{
9
+ const workerEntry = path.join(__dirname, "..", "core/src/worker/json.worker.ts");
10
+
11
+ const result = await esbuild.build({
12
+ entryPoints: [workerEntry],
13
+ bundle: true,
14
+ write: false,
15
+ });
16
+ return result.outputFiles[0].text;
17
+ };
18
+
19
+
20
+ const buildMain = async ()=>{
21
+ const mainEntry = path.join(__dirname, "..", "core/src/index.ts");
22
+
23
+ const result = await esbuild.build({
24
+ entryPoints: [mainEntry],
25
+ bundle: true,
26
+ packages: 'external',
27
+ write: false,
28
+ format: 'esm'
29
+ });
30
+ return result.outputFiles[0].text;
31
+
32
+ };
33
+
34
+
35
+
36
+ const compile = async ()=>{
37
+ const workerRaw = await compileWorker();
38
+
39
+ const mainRaw = await buildMain();
40
+
41
+ const finalRaw = mainRaw.replaceAll("%WORKER_RAW%", encodeURIComponent(workerRaw));
42
+
43
+ const saveDir = path.join(__dirname, "..", "core/lib");
44
+
45
+ if (!fs.existsSync(saveDir)) {
46
+ fs.mkdirSync(saveDir);
47
+ }
48
+ fs.writeFileSync(path.join(saveDir, "index.js"), finalRaw, 'utf8');
49
+ };
50
+
51
+ compile();
@@ -0,0 +1,27 @@
1
+ $color-json-viewer-background: var(--semi-color-default); // JSON背景颜色
2
+ $color-json-viewer-key: rgba(var(--semi-red-5), 1); // JSON key 颜色
3
+ $color-json-viewer-value: rgba(var(--semi-blue-5), 1);
4
+ $color-json-viewer-number: rgba(var(--semi-green-5), 1); // JSON number 颜色
5
+ $color-json-viewer-keyword: rgba(var(--semi-blue-5), 1); // JSON keyword 颜色
6
+ $color-json-viewer-delimiter-comma: rgba(var(--semi-blue-6), 1); // JSON delimiter comma 颜色
7
+
8
+ $semi-json-viewer-delimiter-colors: (
9
+ bracket: (
10
+ 0: rgba(var(--semi-blue-7), 1), // 括号层级 0 颜色
11
+ 1: rgba(var(--semi-green-7), 1), // 括号层级 1 颜色
12
+ 2: rgba(var(--semi-orange-7), 1), // 括号层级 2 颜色
13
+ ),
14
+ array: (
15
+ 0: rgba(var(--semi-blue-7), 1), // 数组层级 0 颜色
16
+ 1: rgba(var(--semi-green-7), 1), // 数组层级 1 颜色
17
+ 2: rgba(var(--semi-orange-7), 1), // 数组层级 2 颜色
18
+ )
19
+ );
20
+
21
+ $semi-json-viewer-search-result-background: rgba(var(--semi-green-2), 1); // JSON search result background 颜色
22
+ $semi-json-viewer-current-search-result-background: rgba(var(--semi-yellow-4), 1); // JSON current search result background 颜色
23
+
24
+ $semi-json-viewer-folding-icon-color: rgba(var(--semi-blue-7), 1); // JSON folding icon 颜色
25
+
26
+
27
+ $semi-json-viewer-line-number-color: rgba(var(--semi-grey-5), 1); // JSON line number 颜色
@@ -0,0 +1,4 @@
1
+ declare const cssClasses: {
2
+ readonly PREFIX: "semi-json-viewer";
3
+ };
4
+ export { cssClasses };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.cssClasses = void 0;
7
+ var _constants = require("../base/constants");
8
+ const cssClasses = exports.cssClasses = {
9
+ PREFIX: `${_constants.BASE_CLASS_PREFIX}-json-viewer`
10
+ };
@@ -0,0 +1,21 @@
1
+ export * from '@douyinfe/semi-json-viewer-core';
2
+ import { JsonViewer } from '@douyinfe/semi-json-viewer-core';
3
+ import BaseFoundation, { DefaultAdapter } from '../base/foundation';
4
+ export interface JsonViewerAdapter<P = Record<string, any>, S = Record<string, any>> extends DefaultAdapter<P, S> {
5
+ getJsonViewerRef: () => HTMLElement;
6
+ onValueChange: (value: string) => void;
7
+ onValueHover: (value: string, el: HTMLElement) => HTMLElement | undefined;
8
+ }
9
+ declare class JsonViewerFoundation extends BaseFoundation<JsonViewerAdapter> {
10
+ constructor(adapter: JsonViewerAdapter);
11
+ jsonViewer: JsonViewer | null;
12
+ init(): void;
13
+ onValueChange(value: string): void;
14
+ onValueHover(value: string, el: HTMLElement): HTMLElement | undefined;
15
+ search(searchText: string): void;
16
+ prevSearch(): void;
17
+ nextSearch(): void;
18
+ replace(replaceText: string): void;
19
+ replaceAll(replaceText: string): void;
20
+ }
21
+ export default JsonViewerFoundation;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {};
7
+ exports.default = void 0;
8
+ var _semiJsonViewerCore = require("@douyinfe/semi-json-viewer-core");
9
+ Object.keys(_semiJsonViewerCore).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
12
+ if (key in exports && exports[key] === _semiJsonViewerCore[key]) return;
13
+ Object.defineProperty(exports, key, {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _semiJsonViewerCore[key];
17
+ }
18
+ });
19
+ });
20
+ var _foundation = _interopRequireDefault(require("../base/foundation"));
21
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
+ class JsonViewerFoundation extends _foundation.default {
23
+ constructor(adapter) {
24
+ super(Object.assign(Object.assign({}, JsonViewerFoundation), adapter));
25
+ this.jsonViewer = null;
26
+ }
27
+ init() {
28
+ const props = this.getProps();
29
+ const jsonViewerRef = this._adapter.getJsonViewerRef();
30
+ this.jsonViewer = new _semiJsonViewerCore.JsonViewer(jsonViewerRef, props.value, props.options);
31
+ this.jsonViewer.layout();
32
+ this.jsonViewer.emitter.on('contentChanged', e => {
33
+ var _a;
34
+ this.onValueChange((_a = this.jsonViewer) === null || _a === void 0 ? void 0 : _a.getModel().getValue());
35
+ });
36
+ this.jsonViewer.emitter.on('hoverNode', e => {
37
+ const el = this.onValueHover(e.value, e.target);
38
+ if (el) {
39
+ this.jsonViewer.emitter.emit('renderHoverNode', {
40
+ el
41
+ });
42
+ }
43
+ });
44
+ }
45
+ onValueChange(value) {
46
+ this._adapter.onValueChange(value);
47
+ }
48
+ onValueHover(value, el) {
49
+ return this._adapter.onValueHover(value, el);
50
+ }
51
+ search(searchText) {
52
+ var _a;
53
+ const state = this.getState('searchOptions');
54
+ const {
55
+ caseSensitive,
56
+ wholeWord,
57
+ regex
58
+ } = state;
59
+ (_a = this.jsonViewer) === null || _a === void 0 ? void 0 : _a.getSearchWidget().search(searchText, caseSensitive, wholeWord, regex);
60
+ }
61
+ prevSearch() {
62
+ var _a;
63
+ (_a = this.jsonViewer) === null || _a === void 0 ? void 0 : _a.getSearchWidget().navigateResults(-1);
64
+ }
65
+ nextSearch() {
66
+ var _a;
67
+ (_a = this.jsonViewer) === null || _a === void 0 ? void 0 : _a.getSearchWidget().navigateResults(1);
68
+ }
69
+ replace(replaceText) {
70
+ var _a;
71
+ (_a = this.jsonViewer) === null || _a === void 0 ? void 0 : _a.getSearchWidget().replace(replaceText);
72
+ }
73
+ replaceAll(replaceText) {
74
+ var _a;
75
+ (_a = this.jsonViewer) === null || _a === void 0 ? void 0 : _a.getSearchWidget().replaceAll(replaceText);
76
+ }
77
+ }
78
+ var _default = exports.default = JsonViewerFoundation;
@@ -0,0 +1,136 @@
1
+ /* shadow */
2
+ /* sizing */
3
+ /* spacing */
4
+ .semi-json-viewer-background {
5
+ background-color: var(--semi-color-default);
6
+ }
7
+ .semi-json-viewer-string-key {
8
+ color: rgba(var(--semi-red-5), 1);
9
+ }
10
+ .semi-json-viewer-string-value {
11
+ color: rgba(var(--semi-blue-5), 1);
12
+ }
13
+ .semi-json-viewer-keyword {
14
+ color: rgba(var(--semi-blue-5), 1);
15
+ }
16
+ .semi-json-viewer-number {
17
+ color: rgba(var(--semi-green-5), 1);
18
+ }
19
+ .semi-json-viewer-delimiter-comma {
20
+ color: rgba(var(--semi-blue-6), 1);
21
+ }
22
+ .semi-json-viewer-delimiter-bracket-0 {
23
+ color: rgba(var(--semi-blue-7), 1);
24
+ }
25
+ .semi-json-viewer-delimiter-bracket-1 {
26
+ color: rgba(var(--semi-green-7), 1);
27
+ }
28
+ .semi-json-viewer-delimiter-bracket-2 {
29
+ color: rgba(var(--semi-orange-7), 1);
30
+ }
31
+ .semi-json-viewer-delimiter-array-0 {
32
+ color: rgba(var(--semi-blue-7), 1);
33
+ }
34
+ .semi-json-viewer-delimiter-array-1 {
35
+ color: rgba(var(--semi-green-7), 1);
36
+ }
37
+ .semi-json-viewer-delimiter-array-2 {
38
+ color: rgba(var(--semi-orange-7), 1);
39
+ }
40
+ .semi-json-viewer-search-result {
41
+ background-color: rgba(var(--semi-green-2), 1);
42
+ }
43
+ .semi-json-viewer-current-search-result {
44
+ background-color: rgba(var(--semi-yellow-4), 1) !important;
45
+ }
46
+ .semi-json-viewer-folding-icon {
47
+ opacity: 0.7;
48
+ transition: opacity 0.8s;
49
+ color: rgba(var(--semi-blue-7), 1);
50
+ }
51
+ .semi-json-viewer-view-line {
52
+ font-family: Menlo, Firecode, Monaco, "Courier New", monospace;
53
+ font-weight: normal;
54
+ font-size: 12px;
55
+ font-feature-settings: "liga" 0, "calt" 0;
56
+ font-variation-settings: normal;
57
+ letter-spacing: 0px;
58
+ color: #237893;
59
+ }
60
+ .semi-json-viewer-line-number {
61
+ font-family: Menlo, Firecode, Monaco, "Courier New", monospace;
62
+ font-weight: normal;
63
+ font-size: 12px;
64
+ font-feature-settings: "liga" 0, "calt" 0;
65
+ font-variation-settings: normal;
66
+ letter-spacing: 0px;
67
+ color: rgba(var(--semi-grey-5), 1);
68
+ text-align: center;
69
+ width: 50px;
70
+ }
71
+ .semi-json-viewer-line-number-container {
72
+ scrollbar-width: none; /* 隐藏滚动条(Firefox) */
73
+ -ms-overflow-style: none; /* 隐藏滚动条(IE 和 Edge) */
74
+ }
75
+ .semi-json-viewer-line-number-container::-webkit-scrollbar {
76
+ display: none; /* 隐藏滚动条(Webkit 浏览器) */
77
+ }
78
+ .semi-json-viewer-search-bar-container {
79
+ width: 440px;
80
+ border: 1px solid var(--semi-color-border);
81
+ border-radius: var(--semi-border-radius-small);
82
+ display: flex;
83
+ flex-direction: column;
84
+ padding: 8px;
85
+ gap: 8px;
86
+ }
87
+ .semi-json-viewer-replace-bar, .semi-json-viewer-search-bar {
88
+ display: flex;
89
+ align-items: flex-start;
90
+ gap: 8px;
91
+ }
92
+ .semi-json-viewer-search-options {
93
+ display: flex;
94
+ align-items: center;
95
+ justify-content: center;
96
+ list-style: none;
97
+ padding-inline-start: 0;
98
+ margin-block-start: 0;
99
+ margin-block-end: 0;
100
+ }
101
+ .semi-json-viewer-search-options-item {
102
+ min-width: 32px;
103
+ height: 32px;
104
+ display: flex;
105
+ align-items: center;
106
+ justify-content: center;
107
+ cursor: pointer;
108
+ margin: 0 4px;
109
+ border-radius: var(--semi-border-radius-small);
110
+ }
111
+ .semi-json-viewer-search-options-item:hover {
112
+ background-color: var(--semi-color-default);
113
+ }
114
+ .semi-json-viewer-search-options-item-active {
115
+ color: var(--semi-color-primary);
116
+ background-color: var(--semi-color-primary-light-default);
117
+ }
118
+ .semi-json-viewer-complete-suggestions-container {
119
+ border-radius: var(--semi-border-radius-medium);
120
+ background-color: var(--semi-color-bg-3);
121
+ box-shadow: var(--semi-shadow-elevated);
122
+ z-index: 1000;
123
+ min-width: 200px;
124
+ max-width: 400px;
125
+ list-style: none;
126
+ padding: 4px 0;
127
+ }
128
+ .semi-json-viewer-complete-container {
129
+ position: absolute;
130
+ z-index: 1000;
131
+ }
132
+ .semi-json-viewer-complete-suggestions-item {
133
+ padding: 8px 16px;
134
+ color: var(--semi-color-text-0);
135
+ cursor: pointer;
136
+ }
@@ -0,0 +1,152 @@
1
+ @import './variables.scss';
2
+
3
+ $module: #{$prefix}-json-viewer;
4
+
5
+ .#{$module} {
6
+ &-background {
7
+ background-color: $color-json-viewer-background;
8
+ }
9
+
10
+ &-string-key {
11
+ color: $color-json-viewer-key;
12
+ }
13
+
14
+ &-string-value {
15
+ color: $color-json-viewer-value;
16
+ }
17
+
18
+ &-keyword {
19
+ color: $color-json-viewer-keyword;
20
+ }
21
+
22
+ &-number {
23
+ color: $color-json-viewer-number;
24
+ }
25
+
26
+ &-delimiter-comma {
27
+ color: $color-json-viewer-delimiter-comma;
28
+ }
29
+
30
+ @each $type, $colors in $semi-json-viewer-delimiter-colors {
31
+ @each $level, $color in $colors {
32
+ &-delimiter-#{$type}-#{$level} {
33
+ color: $color;
34
+ }
35
+ }
36
+ }
37
+
38
+ &-search-result {
39
+ background-color: $semi-json-viewer-search-result-background;
40
+ }
41
+
42
+ &-current-search-result {
43
+ background-color: $semi-json-viewer-current-search-result-background !important;
44
+ }
45
+
46
+ &-folding-icon {
47
+ opacity: 0.7;
48
+ transition: opacity 0.8s;
49
+ color: $semi-json-viewer-folding-icon-color;
50
+ }
51
+
52
+ &-view-line {
53
+ font-family: Menlo, Firecode, Monaco, 'Courier New', monospace;
54
+ font-weight: normal;
55
+ font-size: 12px;
56
+ font-feature-settings: 'liga' 0, 'calt' 0;
57
+ font-variation-settings: normal;
58
+ letter-spacing: 0px;
59
+ color: #237893;
60
+ }
61
+
62
+ &-line-number {
63
+ font-family: Menlo, Firecode, Monaco, 'Courier New', monospace;
64
+ font-weight: normal;
65
+ font-size: 12px;
66
+ font-feature-settings: 'liga' 0, 'calt' 0;
67
+ font-variation-settings: normal;
68
+ letter-spacing: 0px;
69
+ color: $semi-json-viewer-line-number-color;
70
+ text-align: center;
71
+ width: 50px;
72
+ }
73
+
74
+ &-line-number-container {
75
+ scrollbar-width: none; /* 隐藏滚动条(Firefox) */
76
+ -ms-overflow-style: none; /* 隐藏滚动条(IE 和 Edge) */
77
+ }
78
+
79
+ &-line-number-container::-webkit-scrollbar {
80
+ display: none; /* 隐藏滚动条(Webkit 浏览器) */
81
+ }
82
+
83
+ &-search-bar-container {
84
+ width: 440px;
85
+ border: 1px solid var(--semi-color-border);
86
+ border-radius: var(--semi-border-radius-small);
87
+ display: flex;
88
+ flex-direction: column;
89
+ padding: 8px;
90
+ gap: 8px;
91
+ }
92
+
93
+
94
+ &-replace-bar,
95
+ &-search-bar {
96
+ display: flex;
97
+ align-items: flex-start;
98
+ gap: 8px;
99
+ }
100
+
101
+ &-search-options {
102
+ display: flex;
103
+ align-items: center;
104
+ justify-content: center;
105
+ list-style: none;
106
+ padding-inline-start: 0;
107
+ margin-block-start: 0;
108
+ margin-block-end: 0;
109
+ }
110
+
111
+ &-search-options-item {
112
+ min-width: 32px;
113
+ height: 32px;
114
+ display: flex;
115
+ align-items: center;
116
+ justify-content: center;
117
+ cursor: pointer;
118
+ margin: 0 4px;
119
+ border-radius: var(--semi-border-radius-small);
120
+ }
121
+
122
+ &-search-options-item:hover {
123
+ background-color: var(--semi-color-default);
124
+ }
125
+
126
+ &-search-options-item-active {
127
+ color: var(--semi-color-primary);
128
+ background-color: var(--semi-color-primary-light-default);
129
+ }
130
+
131
+ &-complete-suggestions-container {
132
+ border-radius: var(--semi-border-radius-medium);
133
+ background-color: var(--semi-color-bg-3);
134
+ box-shadow: var(--semi-shadow-elevated);
135
+ z-index: 1000;
136
+ min-width: 200px;
137
+ max-width: 400px;
138
+ list-style: none;
139
+ padding: 4px 0;
140
+ }
141
+
142
+ &-complete-container {
143
+ position: absolute;
144
+ z-index: 1000;
145
+ }
146
+
147
+ &-complete-suggestions-item {
148
+ padding: 8px 16px;
149
+ color: var(--semi-color-text-0);
150
+ cursor: pointer;
151
+ }
152
+ }
@@ -0,0 +1,27 @@
1
+ $color-json-viewer-background: var(--semi-color-default); // JSON背景颜色
2
+ $color-json-viewer-key: rgba(var(--semi-red-5), 1); // JSON key 颜色
3
+ $color-json-viewer-value: rgba(var(--semi-blue-5), 1);
4
+ $color-json-viewer-number: rgba(var(--semi-green-5), 1); // JSON number 颜色
5
+ $color-json-viewer-keyword: rgba(var(--semi-blue-5), 1); // JSON keyword 颜色
6
+ $color-json-viewer-delimiter-comma: rgba(var(--semi-blue-6), 1); // JSON delimiter comma 颜色
7
+
8
+ $semi-json-viewer-delimiter-colors: (
9
+ bracket: (
10
+ 0: rgba(var(--semi-blue-7), 1), // 括号层级 0 颜色
11
+ 1: rgba(var(--semi-green-7), 1), // 括号层级 1 颜色
12
+ 2: rgba(var(--semi-orange-7), 1), // 括号层级 2 颜色
13
+ ),
14
+ array: (
15
+ 0: rgba(var(--semi-blue-7), 1), // 数组层级 0 颜色
16
+ 1: rgba(var(--semi-green-7), 1), // 数组层级 1 颜色
17
+ 2: rgba(var(--semi-orange-7), 1), // 数组层级 2 颜色
18
+ )
19
+ );
20
+
21
+ $semi-json-viewer-search-result-background: rgba(var(--semi-green-2), 1); // JSON search result background 颜色
22
+ $semi-json-viewer-current-search-result-background: rgba(var(--semi-yellow-4), 1); // JSON current search result background 颜色
23
+
24
+ $semi-json-viewer-folding-icon-color: rgba(var(--semi-blue-7), 1); // JSON folding icon 颜色
25
+
26
+
27
+ $semi-json-viewer-line-number-color: rgba(var(--semi-grey-5), 1); // JSON line number 颜色
@@ -1,5 +1,4 @@
1
- import { ResizableHandlerFoundation, ResizableFoundation } from './single';
2
- import { ResizeGroupFoundation, ResizeItemFoundation, ResizeHandlerFoundation } from './group';
3
- import type { ResizableHandlerAdapter, ResizableAdapter } from './single';
4
- import type { ResizeGroupAdapter, ResizeItemAdapter, ResizeHandlerAdapter } from './group';
5
- export { ResizableHandlerAdapter, ResizableHandlerFoundation, ResizableFoundation, ResizableAdapter, ResizeGroupAdapter, ResizeItemAdapter, ResizeHandlerAdapter, ResizeGroupFoundation, ResizeItemFoundation, ResizeHandlerFoundation };
1
+ import { ResizableHandlerAdapter, ResizableHandlerFoundation, ResizableFoundation, ResizableAdapter } from './single';
2
+ export { ResizableHandlerAdapter, ResizableHandlerFoundation, ResizableFoundation, ResizableAdapter };
3
+ import { ResizeGroupAdapter, ResizeItemAdapter, ResizeHandlerAdapter, ResizeGroupFoundation, ResizeItemFoundation, ResizeHandlerFoundation } from './group';
4
+ export { ResizeGroupAdapter, ResizeItemAdapter, ResizeHandlerAdapter, ResizeGroupFoundation, ResizeItemFoundation, ResizeHandlerFoundation };
@@ -0,0 +1,4 @@
1
+ declare const cssClasses: {
2
+ readonly PREFIX: "semi-json-viewer";
3
+ };
4
+ export { cssClasses };
@@ -0,0 +1,5 @@
1
+ import { BASE_CLASS_PREFIX } from "../base/constants";
2
+ const cssClasses = {
3
+ PREFIX: `${BASE_CLASS_PREFIX}-json-viewer`
4
+ };
5
+ export { cssClasses };
@@ -0,0 +1,21 @@
1
+ export * from '@douyinfe/semi-json-viewer-core';
2
+ import { JsonViewer } from '@douyinfe/semi-json-viewer-core';
3
+ import BaseFoundation, { DefaultAdapter } from '../base/foundation';
4
+ export interface JsonViewerAdapter<P = Record<string, any>, S = Record<string, any>> extends DefaultAdapter<P, S> {
5
+ getJsonViewerRef: () => HTMLElement;
6
+ onValueChange: (value: string) => void;
7
+ onValueHover: (value: string, el: HTMLElement) => HTMLElement | undefined;
8
+ }
9
+ declare class JsonViewerFoundation extends BaseFoundation<JsonViewerAdapter> {
10
+ constructor(adapter: JsonViewerAdapter);
11
+ jsonViewer: JsonViewer | null;
12
+ init(): void;
13
+ onValueChange(value: string): void;
14
+ onValueHover(value: string, el: HTMLElement): HTMLElement | undefined;
15
+ search(searchText: string): void;
16
+ prevSearch(): void;
17
+ nextSearch(): void;
18
+ replace(replaceText: string): void;
19
+ replaceAll(replaceText: string): void;
20
+ }
21
+ export default JsonViewerFoundation;
@@ -0,0 +1,60 @@
1
+ export * from '@douyinfe/semi-json-viewer-core';
2
+ import { JsonViewer } from '@douyinfe/semi-json-viewer-core';
3
+ import BaseFoundation from '../base/foundation';
4
+ class JsonViewerFoundation extends BaseFoundation {
5
+ constructor(adapter) {
6
+ super(Object.assign(Object.assign({}, JsonViewerFoundation), adapter));
7
+ this.jsonViewer = null;
8
+ }
9
+ init() {
10
+ const props = this.getProps();
11
+ const jsonViewerRef = this._adapter.getJsonViewerRef();
12
+ this.jsonViewer = new JsonViewer(jsonViewerRef, props.value, props.options);
13
+ this.jsonViewer.layout();
14
+ this.jsonViewer.emitter.on('contentChanged', e => {
15
+ var _a;
16
+ this.onValueChange((_a = this.jsonViewer) === null || _a === void 0 ? void 0 : _a.getModel().getValue());
17
+ });
18
+ this.jsonViewer.emitter.on('hoverNode', e => {
19
+ const el = this.onValueHover(e.value, e.target);
20
+ if (el) {
21
+ this.jsonViewer.emitter.emit('renderHoverNode', {
22
+ el
23
+ });
24
+ }
25
+ });
26
+ }
27
+ onValueChange(value) {
28
+ this._adapter.onValueChange(value);
29
+ }
30
+ onValueHover(value, el) {
31
+ return this._adapter.onValueHover(value, el);
32
+ }
33
+ search(searchText) {
34
+ var _a;
35
+ const state = this.getState('searchOptions');
36
+ const {
37
+ caseSensitive,
38
+ wholeWord,
39
+ regex
40
+ } = state;
41
+ (_a = this.jsonViewer) === null || _a === void 0 ? void 0 : _a.getSearchWidget().search(searchText, caseSensitive, wholeWord, regex);
42
+ }
43
+ prevSearch() {
44
+ var _a;
45
+ (_a = this.jsonViewer) === null || _a === void 0 ? void 0 : _a.getSearchWidget().navigateResults(-1);
46
+ }
47
+ nextSearch() {
48
+ var _a;
49
+ (_a = this.jsonViewer) === null || _a === void 0 ? void 0 : _a.getSearchWidget().navigateResults(1);
50
+ }
51
+ replace(replaceText) {
52
+ var _a;
53
+ (_a = this.jsonViewer) === null || _a === void 0 ? void 0 : _a.getSearchWidget().replace(replaceText);
54
+ }
55
+ replaceAll(replaceText) {
56
+ var _a;
57
+ (_a = this.jsonViewer) === null || _a === void 0 ? void 0 : _a.getSearchWidget().replaceAll(replaceText);
58
+ }
59
+ }
60
+ export default JsonViewerFoundation;
@@ -0,0 +1,136 @@
1
+ /* shadow */
2
+ /* sizing */
3
+ /* spacing */
4
+ .semi-json-viewer-background {
5
+ background-color: var(--semi-color-default);
6
+ }
7
+ .semi-json-viewer-string-key {
8
+ color: rgba(var(--semi-red-5), 1);
9
+ }
10
+ .semi-json-viewer-string-value {
11
+ color: rgba(var(--semi-blue-5), 1);
12
+ }
13
+ .semi-json-viewer-keyword {
14
+ color: rgba(var(--semi-blue-5), 1);
15
+ }
16
+ .semi-json-viewer-number {
17
+ color: rgba(var(--semi-green-5), 1);
18
+ }
19
+ .semi-json-viewer-delimiter-comma {
20
+ color: rgba(var(--semi-blue-6), 1);
21
+ }
22
+ .semi-json-viewer-delimiter-bracket-0 {
23
+ color: rgba(var(--semi-blue-7), 1);
24
+ }
25
+ .semi-json-viewer-delimiter-bracket-1 {
26
+ color: rgba(var(--semi-green-7), 1);
27
+ }
28
+ .semi-json-viewer-delimiter-bracket-2 {
29
+ color: rgba(var(--semi-orange-7), 1);
30
+ }
31
+ .semi-json-viewer-delimiter-array-0 {
32
+ color: rgba(var(--semi-blue-7), 1);
33
+ }
34
+ .semi-json-viewer-delimiter-array-1 {
35
+ color: rgba(var(--semi-green-7), 1);
36
+ }
37
+ .semi-json-viewer-delimiter-array-2 {
38
+ color: rgba(var(--semi-orange-7), 1);
39
+ }
40
+ .semi-json-viewer-search-result {
41
+ background-color: rgba(var(--semi-green-2), 1);
42
+ }
43
+ .semi-json-viewer-current-search-result {
44
+ background-color: rgba(var(--semi-yellow-4), 1) !important;
45
+ }
46
+ .semi-json-viewer-folding-icon {
47
+ opacity: 0.7;
48
+ transition: opacity 0.8s;
49
+ color: rgba(var(--semi-blue-7), 1);
50
+ }
51
+ .semi-json-viewer-view-line {
52
+ font-family: Menlo, Firecode, Monaco, "Courier New", monospace;
53
+ font-weight: normal;
54
+ font-size: 12px;
55
+ font-feature-settings: "liga" 0, "calt" 0;
56
+ font-variation-settings: normal;
57
+ letter-spacing: 0px;
58
+ color: #237893;
59
+ }
60
+ .semi-json-viewer-line-number {
61
+ font-family: Menlo, Firecode, Monaco, "Courier New", monospace;
62
+ font-weight: normal;
63
+ font-size: 12px;
64
+ font-feature-settings: "liga" 0, "calt" 0;
65
+ font-variation-settings: normal;
66
+ letter-spacing: 0px;
67
+ color: rgba(var(--semi-grey-5), 1);
68
+ text-align: center;
69
+ width: 50px;
70
+ }
71
+ .semi-json-viewer-line-number-container {
72
+ scrollbar-width: none; /* 隐藏滚动条(Firefox) */
73
+ -ms-overflow-style: none; /* 隐藏滚动条(IE 和 Edge) */
74
+ }
75
+ .semi-json-viewer-line-number-container::-webkit-scrollbar {
76
+ display: none; /* 隐藏滚动条(Webkit 浏览器) */
77
+ }
78
+ .semi-json-viewer-search-bar-container {
79
+ width: 440px;
80
+ border: 1px solid var(--semi-color-border);
81
+ border-radius: var(--semi-border-radius-small);
82
+ display: flex;
83
+ flex-direction: column;
84
+ padding: 8px;
85
+ gap: 8px;
86
+ }
87
+ .semi-json-viewer-replace-bar, .semi-json-viewer-search-bar {
88
+ display: flex;
89
+ align-items: flex-start;
90
+ gap: 8px;
91
+ }
92
+ .semi-json-viewer-search-options {
93
+ display: flex;
94
+ align-items: center;
95
+ justify-content: center;
96
+ list-style: none;
97
+ padding-inline-start: 0;
98
+ margin-block-start: 0;
99
+ margin-block-end: 0;
100
+ }
101
+ .semi-json-viewer-search-options-item {
102
+ min-width: 32px;
103
+ height: 32px;
104
+ display: flex;
105
+ align-items: center;
106
+ justify-content: center;
107
+ cursor: pointer;
108
+ margin: 0 4px;
109
+ border-radius: var(--semi-border-radius-small);
110
+ }
111
+ .semi-json-viewer-search-options-item:hover {
112
+ background-color: var(--semi-color-default);
113
+ }
114
+ .semi-json-viewer-search-options-item-active {
115
+ color: var(--semi-color-primary);
116
+ background-color: var(--semi-color-primary-light-default);
117
+ }
118
+ .semi-json-viewer-complete-suggestions-container {
119
+ border-radius: var(--semi-border-radius-medium);
120
+ background-color: var(--semi-color-bg-3);
121
+ box-shadow: var(--semi-shadow-elevated);
122
+ z-index: 1000;
123
+ min-width: 200px;
124
+ max-width: 400px;
125
+ list-style: none;
126
+ padding: 4px 0;
127
+ }
128
+ .semi-json-viewer-complete-container {
129
+ position: absolute;
130
+ z-index: 1000;
131
+ }
132
+ .semi-json-viewer-complete-suggestions-item {
133
+ padding: 8px 16px;
134
+ color: var(--semi-color-text-0);
135
+ cursor: pointer;
136
+ }
@@ -0,0 +1,152 @@
1
+ @import './variables.scss';
2
+
3
+ $module: #{$prefix}-json-viewer;
4
+
5
+ .#{$module} {
6
+ &-background {
7
+ background-color: $color-json-viewer-background;
8
+ }
9
+
10
+ &-string-key {
11
+ color: $color-json-viewer-key;
12
+ }
13
+
14
+ &-string-value {
15
+ color: $color-json-viewer-value;
16
+ }
17
+
18
+ &-keyword {
19
+ color: $color-json-viewer-keyword;
20
+ }
21
+
22
+ &-number {
23
+ color: $color-json-viewer-number;
24
+ }
25
+
26
+ &-delimiter-comma {
27
+ color: $color-json-viewer-delimiter-comma;
28
+ }
29
+
30
+ @each $type, $colors in $semi-json-viewer-delimiter-colors {
31
+ @each $level, $color in $colors {
32
+ &-delimiter-#{$type}-#{$level} {
33
+ color: $color;
34
+ }
35
+ }
36
+ }
37
+
38
+ &-search-result {
39
+ background-color: $semi-json-viewer-search-result-background;
40
+ }
41
+
42
+ &-current-search-result {
43
+ background-color: $semi-json-viewer-current-search-result-background !important;
44
+ }
45
+
46
+ &-folding-icon {
47
+ opacity: 0.7;
48
+ transition: opacity 0.8s;
49
+ color: $semi-json-viewer-folding-icon-color;
50
+ }
51
+
52
+ &-view-line {
53
+ font-family: Menlo, Firecode, Monaco, 'Courier New', monospace;
54
+ font-weight: normal;
55
+ font-size: 12px;
56
+ font-feature-settings: 'liga' 0, 'calt' 0;
57
+ font-variation-settings: normal;
58
+ letter-spacing: 0px;
59
+ color: #237893;
60
+ }
61
+
62
+ &-line-number {
63
+ font-family: Menlo, Firecode, Monaco, 'Courier New', monospace;
64
+ font-weight: normal;
65
+ font-size: 12px;
66
+ font-feature-settings: 'liga' 0, 'calt' 0;
67
+ font-variation-settings: normal;
68
+ letter-spacing: 0px;
69
+ color: $semi-json-viewer-line-number-color;
70
+ text-align: center;
71
+ width: 50px;
72
+ }
73
+
74
+ &-line-number-container {
75
+ scrollbar-width: none; /* 隐藏滚动条(Firefox) */
76
+ -ms-overflow-style: none; /* 隐藏滚动条(IE 和 Edge) */
77
+ }
78
+
79
+ &-line-number-container::-webkit-scrollbar {
80
+ display: none; /* 隐藏滚动条(Webkit 浏览器) */
81
+ }
82
+
83
+ &-search-bar-container {
84
+ width: 440px;
85
+ border: 1px solid var(--semi-color-border);
86
+ border-radius: var(--semi-border-radius-small);
87
+ display: flex;
88
+ flex-direction: column;
89
+ padding: 8px;
90
+ gap: 8px;
91
+ }
92
+
93
+
94
+ &-replace-bar,
95
+ &-search-bar {
96
+ display: flex;
97
+ align-items: flex-start;
98
+ gap: 8px;
99
+ }
100
+
101
+ &-search-options {
102
+ display: flex;
103
+ align-items: center;
104
+ justify-content: center;
105
+ list-style: none;
106
+ padding-inline-start: 0;
107
+ margin-block-start: 0;
108
+ margin-block-end: 0;
109
+ }
110
+
111
+ &-search-options-item {
112
+ min-width: 32px;
113
+ height: 32px;
114
+ display: flex;
115
+ align-items: center;
116
+ justify-content: center;
117
+ cursor: pointer;
118
+ margin: 0 4px;
119
+ border-radius: var(--semi-border-radius-small);
120
+ }
121
+
122
+ &-search-options-item:hover {
123
+ background-color: var(--semi-color-default);
124
+ }
125
+
126
+ &-search-options-item-active {
127
+ color: var(--semi-color-primary);
128
+ background-color: var(--semi-color-primary-light-default);
129
+ }
130
+
131
+ &-complete-suggestions-container {
132
+ border-radius: var(--semi-border-radius-medium);
133
+ background-color: var(--semi-color-bg-3);
134
+ box-shadow: var(--semi-shadow-elevated);
135
+ z-index: 1000;
136
+ min-width: 200px;
137
+ max-width: 400px;
138
+ list-style: none;
139
+ padding: 4px 0;
140
+ }
141
+
142
+ &-complete-container {
143
+ position: absolute;
144
+ z-index: 1000;
145
+ }
146
+
147
+ &-complete-suggestions-item {
148
+ padding: 8px 16px;
149
+ color: var(--semi-color-text-0);
150
+ cursor: pointer;
151
+ }
152
+ }
@@ -0,0 +1,27 @@
1
+ $color-json-viewer-background: var(--semi-color-default); // JSON背景颜色
2
+ $color-json-viewer-key: rgba(var(--semi-red-5), 1); // JSON key 颜色
3
+ $color-json-viewer-value: rgba(var(--semi-blue-5), 1);
4
+ $color-json-viewer-number: rgba(var(--semi-green-5), 1); // JSON number 颜色
5
+ $color-json-viewer-keyword: rgba(var(--semi-blue-5), 1); // JSON keyword 颜色
6
+ $color-json-viewer-delimiter-comma: rgba(var(--semi-blue-6), 1); // JSON delimiter comma 颜色
7
+
8
+ $semi-json-viewer-delimiter-colors: (
9
+ bracket: (
10
+ 0: rgba(var(--semi-blue-7), 1), // 括号层级 0 颜色
11
+ 1: rgba(var(--semi-green-7), 1), // 括号层级 1 颜色
12
+ 2: rgba(var(--semi-orange-7), 1), // 括号层级 2 颜色
13
+ ),
14
+ array: (
15
+ 0: rgba(var(--semi-blue-7), 1), // 数组层级 0 颜色
16
+ 1: rgba(var(--semi-green-7), 1), // 数组层级 1 颜色
17
+ 2: rgba(var(--semi-orange-7), 1), // 数组层级 2 颜色
18
+ )
19
+ );
20
+
21
+ $semi-json-viewer-search-result-background: rgba(var(--semi-green-2), 1); // JSON search result background 颜色
22
+ $semi-json-viewer-current-search-result-background: rgba(var(--semi-yellow-4), 1); // JSON current search result background 颜色
23
+
24
+ $semi-json-viewer-folding-icon-color: rgba(var(--semi-blue-7), 1); // JSON folding icon 颜色
25
+
26
+
27
+ $semi-json-viewer-line-number-color: rgba(var(--semi-grey-5), 1); // JSON line number 颜色
@@ -1,5 +1,4 @@
1
- import { ResizableHandlerFoundation, ResizableFoundation } from './single';
2
- import { ResizeGroupFoundation, ResizeItemFoundation, ResizeHandlerFoundation } from './group';
3
- import type { ResizableHandlerAdapter, ResizableAdapter } from './single';
4
- import type { ResizeGroupAdapter, ResizeItemAdapter, ResizeHandlerAdapter } from './group';
5
- export { ResizableHandlerAdapter, ResizableHandlerFoundation, ResizableFoundation, ResizableAdapter, ResizeGroupAdapter, ResizeItemAdapter, ResizeHandlerAdapter, ResizeGroupFoundation, ResizeItemFoundation, ResizeHandlerFoundation };
1
+ import { ResizableHandlerAdapter, ResizableHandlerFoundation, ResizableFoundation, ResizableAdapter } from './single';
2
+ export { ResizableHandlerAdapter, ResizableHandlerFoundation, ResizableFoundation, ResizableAdapter };
3
+ import { ResizeGroupAdapter, ResizeItemAdapter, ResizeHandlerAdapter, ResizeGroupFoundation, ResizeItemFoundation, ResizeHandlerFoundation } from './group';
4
+ export { ResizeGroupAdapter, ResizeItemAdapter, ResizeHandlerAdapter, ResizeGroupFoundation, ResizeItemFoundation, ResizeHandlerFoundation };
@@ -1,3 +1,4 @@
1
1
  import { ResizableHandlerFoundation, ResizableFoundation } from './single';
2
+ export { ResizableHandlerFoundation, ResizableFoundation };
2
3
  import { ResizeGroupFoundation, ResizeItemFoundation, ResizeHandlerFoundation } from './group';
3
- export { ResizableHandlerFoundation, ResizableFoundation, ResizeGroupFoundation, ResizeItemFoundation, ResizeHandlerFoundation };
4
+ export { ResizeGroupFoundation, ResizeItemFoundation, ResizeHandlerFoundation };
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-foundation",
3
- "version": "2.69.0",
3
+ "version": "2.70.0-alpha.0",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "build:lib": "node ./scripts/compileLib.js",
7
7
  "prepublishOnly": "npm run build:lib"
8
8
  },
9
9
  "dependencies": {
10
- "@douyinfe/semi-animation": "2.69.0",
10
+ "@douyinfe/semi-animation": "2.70.0-alpha.0",
11
+ "@douyinfe/semi-json-viewer-core": "2.70.0-alpha.0",
11
12
  "@mdx-js/mdx": "^3.0.1",
12
13
  "async-validator": "^3.5.0",
13
14
  "classnames": "^2.2.6",
@@ -28,7 +29,7 @@
28
29
  "*.scss",
29
30
  "*.css"
30
31
  ],
31
- "gitHead": "e5c98a0dcec045fd50521e951f968923ebaa128e",
32
+ "gitHead": "40eda115f7dde920c5bc2954ada4f1a1c38cb8d8",
32
33
  "devDependencies": {
33
34
  "@babel/plugin-transform-runtime": "^7.15.8",
34
35
  "@babel/preset-env": "^7.15.8",
@@ -37,6 +38,7 @@
37
38
  "@types/prismjs": "^1.26.3",
38
39
  "babel-plugin-lodash": "^3.3.4",
39
40
  "del": "^6.0.0",
41
+ "esbuild": "0.24.0",
40
42
  "gulp": "^4.0.2",
41
43
  "gulp-babel": "^8.0.0",
42
44
  "gulp-replace": "^1.1.3",
@@ -1,26 +1,31 @@
1
1
  import {
2
+ ResizableHandlerAdapter,
2
3
  ResizableHandlerFoundation,
3
4
  ResizableFoundation,
4
- } from './single';
5
+ ResizableAdapter }
6
+ from './single';
7
+
8
+ export {
9
+ ResizableHandlerAdapter,
10
+ ResizableHandlerFoundation,
11
+ ResizableFoundation,
12
+ ResizableAdapter
13
+ };
5
14
 
6
15
  import {
16
+ ResizeGroupAdapter,
17
+ ResizeItemAdapter,
18
+ ResizeHandlerAdapter,
7
19
  ResizeGroupFoundation,
8
20
  ResizeItemFoundation,
9
21
  ResizeHandlerFoundation
10
22
  } from './group';
11
23
 
12
- import type { ResizableHandlerAdapter, ResizableAdapter } from './single';
13
- import type { ResizeGroupAdapter, ResizeItemAdapter, ResizeHandlerAdapter } from './group';
14
-
15
- export {
16
- ResizableHandlerAdapter,
17
- ResizableHandlerFoundation,
18
- ResizableFoundation,
19
- ResizableAdapter,
24
+ export {
20
25
  ResizeGroupAdapter,
21
26
  ResizeItemAdapter,
22
27
  ResizeHandlerAdapter,
23
28
  ResizeGroupFoundation,
24
29
  ResizeItemFoundation,
25
30
  ResizeHandlerFoundation
26
- };
31
+ };
package/tsconfig.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "sourceMap": true,
7
7
  "allowJs": true,
8
8
  "module": "es6",
9
- "lib": ["es7", "dom", "es2017"],
9
+ "lib": ["esnext", "dom"],
10
10
  "moduleResolution": "node",
11
11
  "noImplicitAny": false,
12
12
  "forceConsistentCasingInFileNames": true,