@mt2025ui/mt-design 1.0.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 (36) hide show
  1. package/.vscode/extensions.json +3 -0
  2. package/LICENSE +21 -0
  3. package/README.md +5 -0
  4. package/index.html +14 -0
  5. package/package.json +25 -0
  6. package/public/vite.svg +1 -0
  7. package/src/App.vue +142 -0
  8. package/src/assets/iconfont/iconfont.js +70 -0
  9. package/src/assets/svg/DragIcon.vue +14 -0
  10. package/src/assets/svg/LockIcon.vue +14 -0
  11. package/src/assets/svg/UnlockIcon.vue +14 -0
  12. package/src/assets/vue.svg +1 -0
  13. package/src/components/MtAttach/MtAttachmentDisplay.vue +240 -0
  14. package/src/components/MtAttach/MtAttachmentUpload.vue +138 -0
  15. package/src/components/MtIcon/MtIcon.vue +48 -0
  16. package/src/components/MtIcon/index.ts +4 -0
  17. package/src/components/MtLayout/MtContainer.vue +97 -0
  18. package/src/components/MtLayout/MtFloatingPanel.vue +583 -0
  19. package/src/components/MtLayout/MtLayout.vue +99 -0
  20. package/src/components/MtLayout/MtLayoutItem.vue +1049 -0
  21. package/src/components/MtLayout/icons/CloseIcon.vue +7 -0
  22. package/src/components/MtLayout/icons/LockIcon.vue +7 -0
  23. package/src/components/MtLayout/icons/MenuIcon.vue +5 -0
  24. package/src/components/MtLayout/icons/UnlockIcon.vue +7 -0
  25. package/src/components/MtLayout/index.ts +7 -0
  26. package/src/components/MtLayout/registry.ts +15 -0
  27. package/src/example/mtFloating/Demo.vue +266 -0
  28. package/src/example/mtIcon/Demo.vue +151 -0
  29. package/src/example/mtLayout/Demo.vue +105 -0
  30. package/src/index.ts +29 -0
  31. package/src/main.ts +7 -0
  32. package/src/style.css +88 -0
  33. package/tsconfig.app.json +17 -0
  34. package/tsconfig.json +7 -0
  35. package/tsconfig.node.json +26 -0
  36. package/vite.config.ts +31 -0
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <svg viewBox="0 0 24 24" width="1em" height="1em" fill="currentColor">
3
+ <path
4
+ d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
5
+ />
6
+ </svg>
7
+ </template>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <svg viewBox="0 0 24 24" width="1em" height="1em" fill="currentColor">
3
+ <path
4
+ d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3 3.1-3 1.71 0 3.1 1.29 3.1 3v2z"
5
+ />
6
+ </svg>
7
+ </template>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <svg viewBox="0 0 24 24" width="1em" height="1em" fill="currentColor">
3
+ <path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" />
4
+ </svg>
5
+ </template>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <svg viewBox="0 0 24 24" width="1em" height="1em" fill="currentColor">
3
+ <path
4
+ d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3 3.1-3 1.71 0 3.1 1.29 3.1 3v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"
5
+ />
6
+ </svg>
7
+ </template>
@@ -0,0 +1,7 @@
1
+ import MtLayout from "./MtLayout.vue";
2
+ import MtLayoutItem from "./MtLayoutItem.vue";
3
+ import MtContainer from "./MtContainer.vue";
4
+ import MtFloatingPanel from "./MtFloatingPanel.vue";
5
+
6
+ export { MtLayout, MtLayoutItem, MtContainer, MtFloatingPanel };
7
+ export default MtLayout;
@@ -0,0 +1,15 @@
1
+ import { reactive } from "vue";
2
+
3
+ export const itemRegistry = reactive(new Map<string, any>());
4
+
5
+ export const registerItem = (id: string, context: any) => {
6
+ itemRegistry.set(id, context);
7
+ };
8
+
9
+ export const unregisterItem = (id: string) => {
10
+ itemRegistry.delete(id);
11
+ };
12
+
13
+ export const getItem = (id: string) => {
14
+ return itemRegistry.get(id);
15
+ };
@@ -0,0 +1,266 @@
1
+ <template>
2
+ <div class="mt-floating-demo">
3
+ <h2>MtFloatingPanel Demo</h2>
4
+ <p>
5
+ This demo showcases multiple floating panels with different positioning
6
+ configurations.
7
+ </p>
8
+
9
+ <div class="demo-controls">
10
+ <button @click="showRight = !showRight">Toggle Right Panel</button>
11
+ <button @click="showBottom = !showBottom">Toggle Bottom Panel</button>
12
+ <button @click="showLeft = !showLeft">Toggle Left Panel</button>
13
+ <button @click="showMini = !showMini">Toggle Mini Panel</button>
14
+ <span style=" align-self: center;margin-left: 10px">
15
+ Window Height: {{ windowHeight }}px (Change:
16
+ {{ heightChange > 0 ? "+" : "" }}{{ heightChange }}px)
17
+ </span>
18
+ </div>
19
+
20
+ <!-- 1. Right-Top Aligned Panel -->
21
+ <MtFloatingPanel
22
+ v-if="showRight"
23
+ title="Properties (Right-Top)"
24
+ width="280"
25
+ height="400"
26
+ x="right"
27
+ y="top"
28
+ :x-offset="20"
29
+ :y-offset="80"
30
+ :collapsible="true"
31
+ :resizable="true"
32
+ :heightOffset="heightChange"
33
+ @close="showRight = false"
34
+ >
35
+ <template #icon>
36
+ <svg
37
+ viewBox="0 0 24 24"
38
+ width="16"
39
+ height="16"
40
+ fill="none"
41
+ stroke="currentColor"
42
+ stroke-width="2"
43
+ >
44
+ <path
45
+ d="M12 20h9M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"
46
+ />
47
+ </svg>
48
+ </template>
49
+ <div class="panel-content">
50
+ <p>This panel is anchored to the <strong>Top-Right</strong>.</p>
51
+ <p>It has a fixed width of 280px and height of 400px.</p>
52
+ <div class="form-group">
53
+ <label>Name</label>
54
+ <input type="text" value="Floating Panel" />
55
+ </div>
56
+ <div class="form-group">
57
+ <label>Description</label>
58
+ <textarea rows="4">Try dragging this panel by its header.</textarea>
59
+ </div>
60
+ <div v-for="i in 10" :key="i">Scrollable Item {{ i }}</div>
61
+ </div>
62
+ </MtFloatingPanel>
63
+
64
+ <!-- 2. Bottom-Right Aligned Panel (Console style) -->
65
+ <MtFloatingPanel
66
+ v-if="showBottom"
67
+ title="Console (Bottom-Right)"
68
+ width="50%"
69
+ height="200"
70
+ x="right"
71
+ y="bottom"
72
+ :x-offset="20"
73
+ :y-offset="20"
74
+ :collapsible="true"
75
+ :resizable="true"
76
+ :default-collapsed="false"
77
+ @close="showBottom = false"
78
+ >
79
+ <template #icon>
80
+ <svg
81
+ viewBox="0 0 24 24"
82
+ width="16"
83
+ height="16"
84
+ fill="none"
85
+ stroke="currentColor"
86
+ stroke-width="2"
87
+ >
88
+ <polyline points="4 17 10 11 4 5" />
89
+ <line x1="12" y1="19" x2="20" y2="19" />
90
+ </svg>
91
+ </template>
92
+ <div class="panel-content console-content">
93
+ <p>This panel is anchored to the <strong>Bottom-Right</strong>.</p>
94
+ <p>It has a width of 50% and height of 200px.</p>
95
+ <div class="log-entry">> System initialized...</div>
96
+ <div class="log-entry">> Loading modules...</div>
97
+ <div class="log-entry">> Ready.</div>
98
+ <div v-for="i in 5" :key="i" class="log-entry">> Log entry {{ i }}</div>
99
+ </div>
100
+ </MtFloatingPanel>
101
+
102
+ <!-- 3. Left-Top Aligned Panel (Tools style) -->
103
+ <MtFloatingPanel
104
+ v-if="showLeft"
105
+ title="Tools (Left-Top)"
106
+ width="200"
107
+ height="300"
108
+ x="left"
109
+ y="top"
110
+ :x-offset="20"
111
+ :y-offset="80"
112
+ :collapsible="true"
113
+ @close="showLeft = false"
114
+ >
115
+ <template #icon>
116
+ <svg
117
+ viewBox="0 0 24 24"
118
+ width="16"
119
+ height="16"
120
+ fill="none"
121
+ stroke="currentColor"
122
+ stroke-width="2"
123
+ >
124
+ <circle cx="12" cy="12" r="3" />
125
+ <path
126
+ d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"
127
+ />
128
+ </svg>
129
+ </template>
130
+ <div class="panel-content">
131
+ <p>Anchored <strong>Left-Top</strong>.</p>
132
+ <button class="tool-btn">Select</button>
133
+ <button class="tool-btn">Move</button>
134
+ <button class="tool-btn">Scale</button>
135
+ <button class="tool-btn">Rotate</button>
136
+ </div>
137
+ </MtFloatingPanel>
138
+
139
+ <!-- 4. Mini Mode Panel (Center-ish) -->
140
+ <MtFloatingPanel
141
+ v-if="showMini"
142
+ :mini="true"
143
+ width="240"
144
+ height="150"
145
+ x="left"
146
+ y="top"
147
+ :x-offset="300"
148
+ :y-offset="150"
149
+ >
150
+ <div class="panel-content" style=" height: 100%;background: #fff3e0">
151
+ <p><strong>Mini Mode</strong></p>
152
+ <p>This panel has no visible header title or controls.</p>
153
+ <p>Drag the thin top bar to move.</p>
154
+ </div>
155
+ </MtFloatingPanel>
156
+ </div>
157
+ </template>
158
+
159
+ <script setup lang="ts">
160
+ import { ref, onMounted, onUnmounted } from "vue";
161
+ import { MtFloatingPanel } from "../../components/MtLayout";
162
+
163
+ const showRight = ref(true);
164
+ const showBottom = ref(true);
165
+ const showLeft = ref(true);
166
+ const showMini = ref(true);
167
+
168
+ const windowHeight = ref(window.innerHeight);
169
+ const initialHeight = ref(window.innerHeight);
170
+ const heightChange = ref(0);
171
+
172
+ const updateHeight = () => {
173
+ const newHeight = window.innerHeight;
174
+ heightChange.value = newHeight - initialHeight.value; // Difference from initial (new - old)
175
+ windowHeight.value = newHeight;
176
+ };
177
+
178
+ onMounted(() => {
179
+ window.addEventListener("resize", updateHeight);
180
+ });
181
+
182
+ onUnmounted(() => {
183
+ window.removeEventListener("resize", updateHeight);
184
+ });
185
+ </script>
186
+
187
+ <style scoped>
188
+ .mt-floating-demo {
189
+ position: relative;
190
+ width: 100%;
191
+ height: 100vh;
192
+ padding: 20px;
193
+ overflow: hidden;
194
+ background-color: #f0f2f5;
195
+ }
196
+
197
+ .demo-controls {
198
+ display: flex;
199
+ gap: 10px;
200
+ margin: 20px 0;
201
+ }
202
+
203
+ button {
204
+ padding: 8px 16px;
205
+ color: white;
206
+ cursor: pointer;
207
+ background-color: #1890ff;
208
+ border: none;
209
+ border-radius: 4px;
210
+ transition: background 0.3s;
211
+ }
212
+
213
+ button:hover {
214
+ background-color: #40a9ff;
215
+ }
216
+
217
+ .panel-content {
218
+ padding: 10px;
219
+ font-size: 14px;
220
+ color: #333;
221
+ }
222
+
223
+ .form-group {
224
+ margin-bottom: 15px;
225
+ }
226
+
227
+ .form-group label {
228
+ display: block;
229
+ margin-bottom: 5px;
230
+ font-weight: 500;
231
+ }
232
+
233
+ .form-group input,
234
+ .form-group textarea {
235
+ width: 100%;
236
+ padding: 6px;
237
+ border: 1px solid #d9d9d9;
238
+ border-radius: 4px;
239
+ }
240
+
241
+ .console-content {
242
+ height: 100%;
243
+ font-family: Consolas, Monaco, monospace;
244
+ color: #d4d4d4;
245
+ background-color: #1e1e1e;
246
+ }
247
+
248
+ .log-entry {
249
+ padding: 2px 0;
250
+ }
251
+
252
+ .tool-btn {
253
+ display: block;
254
+ width: 100%;
255
+ margin-bottom: 8px;
256
+ color: #333;
257
+ background-color: #fff;
258
+ border: 1px solid #d9d9d9;
259
+ }
260
+
261
+ .tool-btn:hover {
262
+ color: #1890ff;
263
+ background-color: #fafafa;
264
+ border-color: #1890ff;
265
+ }
266
+ </style>
@@ -0,0 +1,151 @@
1
+ <template>
2
+ <div class="mt-icon-demo">
3
+ <h2>MtIcon Demo</h2>
4
+ <p>Displays icons using SVG sprites (iconfont).</p>
5
+
6
+ <div class="demo-section">
7
+ <h3>Basic Usage</h3>
8
+ <div class="icon-list">
9
+ <div class="icon-item">
10
+ <MtIcon name="barcode" />
11
+ <span>barcode</span>
12
+ </div>
13
+ <div class="icon-item">
14
+ <MtIcon name="qrcode" />
15
+ <span>qrcode</span>
16
+ </div>
17
+ <div class="icon-item">
18
+ <MtIcon name="home" />
19
+ <span>home (if exists)</span>
20
+ </div>
21
+ <div class="icon-item">
22
+ <MtIcon name="user" />
23
+ <span>user (if exists)</span>
24
+ </div>
25
+ </div>
26
+ </div>
27
+
28
+ <div class="demo-section">
29
+ <h3>Sizes</h3>
30
+ <div class="icon-list">
31
+ <div class="icon-item">
32
+ <MtIcon name="barcode" class="icon-small" />
33
+ <span>Small (16px)</span>
34
+ </div>
35
+ <div class="icon-item">
36
+ <MtIcon name="barcode" />
37
+ <span>Default</span>
38
+ </div>
39
+ <div class="icon-item">
40
+ <MtIcon name="barcode" class="icon-large" />
41
+ <span>Large (32px)</span>
42
+ </div>
43
+ <div class="icon-item">
44
+ <MtIcon name="barcode" class="icon-xlarge" />
45
+ <span>Extra Large (48px)</span>
46
+ </div>
47
+ </div>
48
+ </div>
49
+
50
+ <div class="demo-section">
51
+ <h3>Colors</h3>
52
+ <div class="icon-list">
53
+ <div class="icon-item">
54
+ <MtIcon name="barcode" style="color: #1890ff" />
55
+ <span>Primary</span>
56
+ </div>
57
+ <div class="icon-item">
58
+ <MtIcon name="barcode" style="color: #52c41a" />
59
+ <span>Success</span>
60
+ </div>
61
+ <div class="icon-item">
62
+ <MtIcon name="barcode" style="color: #ff4d4f" />
63
+ <span>Danger</span>
64
+ </div>
65
+ <div class="icon-item">
66
+ <MtIcon name="barcode" style="color: #faad14" />
67
+ <span>Warning</span>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ </template>
73
+
74
+ <script setup lang="ts">
75
+ import { MtIcon } from "../../components/MtIcon";
76
+ </script>
77
+
78
+ <style scoped>
79
+ .mt-icon-demo {
80
+ height: 100%;
81
+ padding: 20px;
82
+ overflow: auto;
83
+ background-color: #f5f5f5;
84
+ }
85
+
86
+ .demo-section {
87
+ padding: 20px;
88
+ margin-bottom: 30px;
89
+ background: #fff;
90
+ border-radius: 8px;
91
+ box-shadow: 0 2px 8px rgb(0 0 0 / 5%);
92
+ }
93
+
94
+ h2 {
95
+ margin-bottom: 20px;
96
+ color: #333;
97
+ }
98
+
99
+ h3 {
100
+ padding-bottom: 10px;
101
+ margin-bottom: 15px;
102
+ font-size: 16px;
103
+ color: #666;
104
+ border-bottom: 1px solid #eee;
105
+ }
106
+
107
+ .icon-list {
108
+ display: flex;
109
+ flex-wrap: wrap;
110
+ gap: 20px;
111
+ }
112
+
113
+ .icon-item {
114
+ display: flex;
115
+ flex-direction: column;
116
+ align-items: center;
117
+ justify-content: center;
118
+ width: 100px;
119
+ height: 100px;
120
+ background: #fafafa;
121
+ border: 1px solid #eee;
122
+ border-radius: 4px;
123
+ transition: all 0.3s;
124
+ }
125
+
126
+ .icon-item:hover {
127
+ border-color: #1890ff;
128
+ box-shadow: 0 4px 12px rgb(0 0 0 / 10%);
129
+ transform: translateY(-2px);
130
+ }
131
+
132
+ .icon-item span {
133
+ margin-top: 10px;
134
+ font-size: 12px;
135
+ color: #999;
136
+ text-align: center;
137
+ }
138
+
139
+ /* Size classes */
140
+ :deep(.icon-small) {
141
+ font-size: 16px;
142
+ }
143
+
144
+ :deep(.icon-large) {
145
+ font-size: 32px;
146
+ }
147
+
148
+ :deep(.icon-xlarge) {
149
+ font-size: 48px;
150
+ }
151
+ </style>
@@ -0,0 +1,105 @@
1
+ <template>
2
+ <div
3
+ class="layout-demo"
4
+ style="width: 100vw; height: 100vh; overflow: hidden"
5
+ >
6
+ <MtLayout direction="horizontal">
7
+ <!-- Left Sidebar -->
8
+ <MtLayoutItem
9
+ min-size="100"
10
+ init-size="200px"
11
+ :collapsible="true"
12
+ title="Sidebar"
13
+ >
14
+ <MtContainer title="Explorer">
15
+ <div style="padding: 10px">
16
+ <h3>Project Files</h3>
17
+ <ul>
18
+ <li>src/</li>
19
+ <li>components/</li>
20
+ <li>App.vue</li>
21
+ </ul>
22
+ </div>
23
+ </MtContainer>
24
+ <MtContainer title="Search">
25
+ <div style="padding: 10px">
26
+ <input type="text" placeholder="Search..." />
27
+ </div>
28
+ </MtContainer>
29
+ </MtLayoutItem>
30
+
31
+ <!-- Main Content -->
32
+ <MtLayoutItem>
33
+ <MtLayout direction="vertical">
34
+ <!-- Top Editor Area -->
35
+ <MtLayoutItem>
36
+ <MtContainer title="MtLayout.vue">
37
+ <div style="height: 100%; padding: 20px; background: #fafafa">
38
+ // Code for MtLayout.vue...
39
+ </div>
40
+ </MtContainer>
41
+ <MtContainer title="MtLayoutItem.vue">
42
+ <div style="height: 100%; padding: 20px; background: #fafafa">
43
+ // Code for MtLayoutItem.vue...
44
+ </div>
45
+ </MtContainer>
46
+ </MtLayoutItem>
47
+
48
+ <!-- Bottom Terminal Area -->
49
+ <MtLayoutItem init-size="201px" :split-lock="false" title="Terminal">
50
+ <MtContainer title="Terminal">
51
+ <div
52
+ style="
53
+ height: 100%;
54
+ padding: 10px;
55
+ font-family: monospace;
56
+ background: #000;
57
+ "
58
+ >
59
+ > npm run dev > Server started...
60
+ </div>
61
+ </MtContainer>
62
+ <MtContainer title="Output">
63
+ <div style="padding: 10px">Build success</div>
64
+ </MtContainer>
65
+ </MtLayoutItem>
66
+ <MtLayoutItem init-size="201px" :collapsible="true" title="test1">
67
+ <div style="padding: 10px">
68
+ <p>test1 1Panel (No Container)</p>
69
+ <p>Width: 200px</p>
70
+ </div>
71
+ </MtLayoutItem>
72
+ <MtLayoutItem init-size="201px" :collapsible="true" title="test2">
73
+ <div style="padding: 10px">
74
+ <p>test2 1Panel (No Container)</p>
75
+ <p>Width: 200px</p>
76
+ </div>
77
+ </MtLayoutItem>
78
+ </MtLayout>
79
+ </MtLayoutItem>
80
+ <MtLayoutItem init-size="201px" :collapsible="true" title="Properties1">
81
+ <div style="padding: 10px">
82
+ <p>Properties 1Panel (No Container)</p>
83
+ <p>Width: 200px</p>
84
+ </div>
85
+ </MtLayoutItem>
86
+ <MtLayoutItem init-size="202px" :collapsible="true" title="Properties2">
87
+ <div style="padding: 10px">
88
+ <p>Properties 2Panel (No Container)</p>
89
+ <p>Width: 200px</p>
90
+ </div>
91
+ </MtLayoutItem>
92
+ <!-- Right Properties Panel -->
93
+ <MtLayoutItem init-size="203px" :collapsible="true" title="Properties3">
94
+ <div style="padding: 10px">
95
+ <p>Properties3 Panel (No Container)</p>
96
+ <p>Width: 200px</p>
97
+ </div>
98
+ </MtLayoutItem>
99
+ </MtLayout>
100
+ </div>
101
+ </template>
102
+
103
+ <script setup lang="ts">
104
+ import { MtLayout, MtLayoutItem, MtContainer } from "../../components/MtLayout";
105
+ </script>
package/src/index.ts ADDED
@@ -0,0 +1,29 @@
1
+ import MtAttachmentUpload from "./components/MtAttach/MtAttachmentUpload.vue";
2
+ import MtAttachmentDisplay from "./components/MtAttach/MtAttachmentDisplay.vue";
3
+ import {
4
+ MtLayout,
5
+ MtLayoutItem,
6
+ MtFloatingPanel,
7
+ MtContainer,
8
+ } from "./components/MtLayout";
9
+ import MtIcon from "./components/MtIcon";
10
+
11
+ export {
12
+ MtAttachmentUpload,
13
+ MtAttachmentDisplay,
14
+ MtLayout,
15
+ MtLayoutItem,
16
+ MtIcon,
17
+ MtFloatingPanel,
18
+ MtContainer,
19
+ };
20
+
21
+ export default {
22
+ MtAttachmentUpload,
23
+ MtAttachmentDisplay,
24
+ MtLayout,
25
+ MtLayoutItem,
26
+ MtFloatingPanel,
27
+ MtContainer,
28
+ MtIcon,
29
+ };
package/src/main.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { createApp } from "vue";
2
+ import "./style.css";
3
+ import App from "./App.vue";
4
+
5
+ import "./assets/iconfont/iconfont.js";
6
+
7
+ createApp(App).mount("#app");