@coffic/cosy-ui 0.8.16 → 0.8.18

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 (87) hide show
  1. package/dist/app.css +1 -1
  2. package/dist/index-vue.ts +14 -8
  3. package/dist/src-astro/header/Header.astro +1 -1
  4. package/dist/src-astro/icons/AstroIcon.astro +2 -3
  5. package/dist/src-astro/module/ModuleBasic.astro +1 -1
  6. package/dist/src-astro/module/ModuleCustom.astro +1 -1
  7. package/dist/src-astro/module/ModuleGrid.astro +3 -3
  8. package/dist/src-astro/sidebar-nav/SidebarNav.astro +3 -3
  9. package/dist/src-astro/speak/SpeakBasic.astro +1 -1
  10. package/dist/src-astro/speak/SpeakGrid.astro +3 -3
  11. package/dist/src-vue/SmartLink.vue +0 -1
  12. package/dist/src-vue/alert/Alert.vue +100 -0
  13. package/dist/src-vue/alert/index.ts +8 -0
  14. package/dist/src-vue/{alert-dialog-vue → alert-dialog}/index.ts +1 -1
  15. package/dist/src-vue/{banner-box-vue → banner-box}/index.ts +1 -1
  16. package/dist/src-vue/{blog-vue → blog}/BlogList.vue +2 -2
  17. package/dist/src-vue/{blog-vue → blog}/index.ts +1 -1
  18. package/dist/src-vue/{confirm-dialog-vue → confirm-dialog}/index.ts +1 -1
  19. package/dist/src-vue/container/Container.vue +214 -0
  20. package/dist/src-vue/container/index.ts +6 -0
  21. package/dist/src-vue/counter/index.ts +1 -0
  22. package/dist/src-vue/iPhone/StatusBarContent.vue +121 -0
  23. package/dist/src-vue/iPhone/iPhoneWindow.vue +234 -0
  24. package/dist/src-vue/{iPhone-vue → iPhone}/index.ts +10 -14
  25. package/dist/src-vue/icons/ErrorIcon.vue +30 -0
  26. package/dist/src-vue/icons/IPhoneBatteryIcon.vue +7 -0
  27. package/dist/src-vue/icons/IPhoneSignalIcon.vue +6 -0
  28. package/dist/src-vue/icons/IPhoneWifiIcon.vue +6 -0
  29. package/dist/src-vue/icons/SuccessIcon.vue +30 -0
  30. package/dist/src-vue/icons/VueIcon.vue +13 -3
  31. package/dist/src-vue/icons/WarningIcon.vue +30 -0
  32. package/dist/src-vue/icons/index.ts +22 -1
  33. package/dist/src-vue/mac-window/MacWindow.vue +262 -0
  34. package/dist/src-vue/mac-window/index.ts +2 -0
  35. package/package.json +12 -2
  36. package/dist/src-vue/counter-vue/index.ts +0 -1
  37. package/dist/src-vue/iPhone-vue/WeatherApp.vue +0 -143
  38. package/dist/src-vue/iPhone-vue/iPhoneWindow.vue +0 -247
  39. package/dist/src-vue/mac-window-vue/Basic.vue +0 -9
  40. package/dist/src-vue/mac-window-vue/CustomHeight.vue +0 -13
  41. package/dist/src-vue/mac-window-vue/MacWindow.vue +0 -283
  42. package/dist/src-vue/mac-window-vue/WithEvents.vue +0 -40
  43. package/dist/src-vue/mac-window-vue/WithSidebar.vue +0 -31
  44. package/dist/src-vue/mac-window-vue/WithTabs.vue +0 -26
  45. package/dist/src-vue/mac-window-vue/WithToolbar.vue +0 -44
  46. package/dist/src-vue/mac-window-vue/index.ts +0 -36
  47. /package/dist/{src-astro → src}/assets/book.png +0 -0
  48. /package/dist/{src-astro → src}/assets/iconData.ts +0 -0
  49. /package/dist/{src-astro → src}/assets/logo-rounded.png +0 -0
  50. /package/dist/{src-astro → src}/assets/logo.png +0 -0
  51. /package/dist/src-vue/{alert-dialog-vue → alert-dialog}/AlertDialog.vue +0 -0
  52. /package/dist/src-vue/{alert-dialog-vue → alert-dialog}/Basic.vue +0 -0
  53. /package/dist/src-vue/{alert-dialog-vue → alert-dialog}/Multilang.vue +0 -0
  54. /package/dist/src-vue/{banner-box-vue → banner-box}/BannerBox.vue +0 -0
  55. /package/dist/src-vue/{banner-box-vue → banner-box}/DownloadButton.vue +0 -0
  56. /package/dist/src-vue/{banner-box-vue → banner-box}/ExampleBasic.vue +0 -0
  57. /package/dist/src-vue/{banner-box-vue → banner-box}/ExampleCustomBg.vue +0 -0
  58. /package/dist/src-vue/{banner-box-vue → banner-box}/ExampleDisplayModeAlways.vue +0 -0
  59. /package/dist/src-vue/{banner-box-vue → banner-box}/ExampleDisplayModeHover.vue +0 -0
  60. /package/dist/src-vue/{banner-box-vue → banner-box}/ExampleDisplayModeNever.vue +0 -0
  61. /package/dist/src-vue/{banner-box-vue → banner-box}/ExampleImageExport.vue +0 -0
  62. /package/dist/src-vue/{banner-box-vue → banner-box}/ExampleSizePreset.vue +0 -0
  63. /package/dist/src-vue/{banner-box-vue → banner-box}/FeatureCard.vue +0 -0
  64. /package/dist/src-vue/{banner-box-vue → banner-box}/SmartBanner.vue +0 -0
  65. /package/dist/src-vue/{banner-box-vue → banner-box}/bgStyles.ts +0 -0
  66. /package/dist/src-vue/{banner-box-vue → banner-box}/sizePresets.ts +0 -0
  67. /package/dist/src-vue/{blog-vue → blog}/Basic.vue +0 -0
  68. /package/dist/src-vue/{blog-vue → blog}/Empty.vue +0 -0
  69. /package/dist/src-vue/{blog-vue → blog}/EmptyEnglish.vue +0 -0
  70. /package/dist/src-vue/{blog-vue → blog}/English.vue +0 -0
  71. /package/dist/src-vue/{confirm-dialog-vue → confirm-dialog}/Basic.vue +0 -0
  72. /package/dist/src-vue/{confirm-dialog-vue → confirm-dialog}/ConfirmDialog.vue +0 -0
  73. /package/dist/src-vue/{confirm-dialog-vue → confirm-dialog}/CustomButtons.vue +0 -0
  74. /package/dist/src-vue/{counter-vue → counter}/VueCounter.vue +0 -0
  75. /package/dist/src-vue/{iPhone-vue → iPhone}/Basic.vue +0 -0
  76. /package/dist/src-vue/{iPhone-vue → iPhone}/CustomBackground.vue +0 -0
  77. /package/dist/src-vue/{iPhone-vue → iPhone}/NoFrame.vue +0 -0
  78. /package/dist/src-vue/{iPhone-vue → iPhone}/assets/iPhone 14 Pro - Deep Purple - Landscape.png +0 -0
  79. /package/dist/src-vue/{iPhone-vue → iPhone}/assets/iPhone 14 Pro - Deep Purple - Portrait.png +0 -0
  80. /package/dist/src-vue/{iPhone-vue → iPhone}/assets/iPhone 14 Pro - Gold - Landscape.png +0 -0
  81. /package/dist/src-vue/{iPhone-vue → iPhone}/assets/iPhone 14 Pro - Gold - Portrait.png +0 -0
  82. /package/dist/src-vue/{iPhone-vue → iPhone}/assets/iPhone 14 Pro - Silver - Landscape.png +0 -0
  83. /package/dist/src-vue/{iPhone-vue → iPhone}/assets/iPhone 14 Pro - Silver - Portrait.png +0 -0
  84. /package/dist/src-vue/{iPhone-vue → iPhone}/assets/iPhone 14 Pro - Space Black - Landscape.png +0 -0
  85. /package/dist/src-vue/{iPhone-vue → iPhone}/assets/iPhone 14 Pro - Space Black - Portrait.png +0 -0
  86. /package/dist/src-vue/{list-vue → list}/ListItem.vue +0 -0
  87. /package/dist/src-vue/{list-vue → list}/index.ts +0 -0
@@ -1,13 +0,0 @@
1
- <script setup>
2
- import { MacWindow } from './index';
3
- </script>
4
-
5
- <template>
6
- <MacWindow title="终端" height="cosy:h-64">
7
- <div class="cosy:p-4 cosy:bg-gray-900 cosy:text-green-400 cosy:font-mono">
8
- $ echo "Hello, World!"<br />
9
- Hello, World!<br />
10
- $ _
11
- </div>
12
- </MacWindow>
13
- </template>
@@ -1,283 +0,0 @@
1
- <!--
2
- @component MacWindow
3
-
4
- @description
5
- MacWindow 组件模拟 macOS 风格的应用窗口,包含标题栏、工具栏按钮、标签页和状态栏。
6
- 适用于创建模拟桌面应用界面或代码编辑器等场景。
7
-
8
- @usage
9
- 基本用法:
10
- ```vue
11
- <MacWindow title="代码编辑器">
12
- <div>窗口内容</div>
13
- </MacWindow>
14
- ```
15
-
16
- 带标签页:
17
- ```vue
18
- <template>
19
- <MacWindow
20
- title="设置"
21
- :tabs="['通用', '外观', '高级']"
22
- defaultTab="外观"
23
- :onTabClick="(tab) => {
24
- activeTab = tab;
25
- console.log('切换到标签:', tab);
26
- }"
27
- >
28
- <div v-if="activeTab === '通用'">通用设置内容</div>
29
- <div v-if="activeTab === '外观'">外观设置内容</div>
30
- <div v-if="activeTab === '高级'">高级设置内容</div>
31
- </MacWindow>
32
- </template>
33
-
34
- <script setup>
35
- import { ref } from 'vue';
36
- import { MacWindow } from 'cosy-ui';
37
-
38
- const activeTab = ref('外观');
39
- </script>
40
- ```
41
-
42
- 带自定义事件处理:
43
- ```vue
44
- <MacWindow
45
- title="文件浏览器"
46
- :onCloseWindow="() => handleClose()"
47
- :onTabClick="(tab) => handleTabChange(tab)"
48
- >
49
- <div>窗口内容</div>
50
- </MacWindow>
51
- ```
52
-
53
- 带工具栏和状态栏:
54
- ```vue
55
- <MacWindow title="文件浏览器">
56
- <template #toolbar>
57
- <button class="cosy:btn cosy:btn-ghost cosy:btn-sm">
58
- <SearchIcon class="cosy:w-4 cosy:h-4" />
59
- </button>
60
- <button class="cosy:btn cosy:btn-ghost cosy:btn-sm">
61
- <SettingsIcon class="cosy:w-4 cosy:h-4" />
62
- </button>
63
- </template>
64
-
65
- <div>窗口内容</div>
66
-
67
- <template #status>
68
- <div class="cosy:text-xs">就绪</div>
69
- <button class="cosy:btn cosy:btn-ghost cosy:btn-xs">
70
- <InfoIcon class="cosy:w-4 cosy:h-4" />
71
- </button>
72
- </template>
73
- </MacWindow>
74
- ```
75
-
76
- @props
77
- @prop {String} [height='h-96'] - 窗口高度
78
- @prop {String} [title=''] - 窗口标题
79
- @prop {Boolean} [withShadow=true] - 是否显示阴影效果
80
- @prop {Array} [tabs=[]] - 标签页字符串数组,如 ['标签1', '标签2', '标签3']
81
- @prop {String} [defaultTab=''] - 默认选中的标签页
82
- @prop {Function} [onCloseWindow=null] - 关闭窗口时调用的函数
83
- @prop {Function} [onMinimizeWindow=null] - 最小化窗口时调用的函数
84
- @prop {Function} [onMaximizeWindow=null] - 最大化窗口时调用的函数
85
- @prop {Function} [onTabClick=null] - 点击标签页时调用的函数,接收标签页值作为参数
86
-
87
- @slots
88
- @slot default - 窗口主要内容
89
- @slot sidebar - 侧边栏内容
90
- @slot toolbar - 工具栏内容,位于标题栏右侧
91
- @slot status - 状态栏内容,位于窗口底部
92
-
93
- @emits
94
- @emit {update:modelValue} - 切换标签页时触发,用于v-model
95
- -->
96
-
97
- <script lang="ts">
98
- import '../../style.ts';
99
- import AlertDialog from '../alert-dialog-vue/AlertDialog.vue';
100
- import { ref, defineComponent, type PropType } from 'vue';
101
-
102
- export default defineComponent({
103
- name: 'MacWindow',
104
- components: {
105
- AlertDialog,
106
- },
107
- props: {
108
- height: {
109
- type: String,
110
- default: 'h-96',
111
- },
112
- title: {
113
- type: String,
114
- default: '',
115
- },
116
- withShadow: {
117
- type: Boolean,
118
- default: true,
119
- },
120
- tabs: {
121
- type: Array as PropType<string[]>,
122
- default: () => [],
123
- },
124
- defaultTab: {
125
- type: String,
126
- default: '',
127
- },
128
- onCloseWindow: {
129
- type: Function,
130
- default: null,
131
- },
132
- onMinimizeWindow: {
133
- type: Function,
134
- default: null,
135
- },
136
- onMaximizeWindow: {
137
- type: Function,
138
- default: null,
139
- },
140
- onTabClick: {
141
- type: Function,
142
- default: null,
143
- },
144
- },
145
- setup(props) {
146
- const showAlertDialog = ref(false);
147
- const alertMessage = ref('');
148
- const activeTab = ref(props.defaultTab);
149
-
150
- // 如果没有设置默认标签或默认标签不在tabs中,则选择第一个标签
151
- if (
152
- (!activeTab.value || !props.tabs.includes(activeTab.value)) &&
153
- props.tabs.length > 0
154
- ) {
155
- activeTab.value = props.tabs[0] as string;
156
- }
157
-
158
- const handleCloseWindow = () => {
159
- alertMessage.value = '关闭APP窗口(这是演示,不会真实操作)';
160
- showAlertDialog.value = true;
161
- if (props.onCloseWindow) {
162
- props.onCloseWindow();
163
- }
164
- };
165
-
166
- const handleMinimizeWindow = () => {
167
- alertMessage.value = '最小化窗口(这是演示,不会真实操作)';
168
- showAlertDialog.value = true;
169
- if (props.onMinimizeWindow) {
170
- props.onMinimizeWindow();
171
- }
172
- };
173
-
174
- const handleMaximizeWindow = () => {
175
- alertMessage.value = '最大化窗口(这是演示,不会真实操作)';
176
- showAlertDialog.value = true;
177
- if (props.onMaximizeWindow) {
178
- props.onMaximizeWindow();
179
- }
180
- };
181
-
182
- const handleTabClick = (tab: string) => {
183
- activeTab.value = tab;
184
- if (props.onTabClick) {
185
- props.onTabClick(tab);
186
- }
187
- };
188
-
189
- return {
190
- showAlertDialog,
191
- alertMessage,
192
- activeTab,
193
- handleCloseWindow,
194
- handleMinimizeWindow,
195
- handleMaximizeWindow,
196
- handleTabClick,
197
- };
198
- },
199
- });
200
- </script>
201
-
202
- <template>
203
- <div
204
- class="cosy:flex cosy:max-w-5xl cosy:mx-auto cosy:bg-base-100 cosy:relative cosy:rounded-2xl cosy:overflow-hidden"
205
- :class="[height, withShadow ? 'cosy:shadow-lg' : '']"
206
- >
207
- <!-- 窗口控制按钮 -->
208
- <div
209
- class="cosy:absolute cosy:top-0 cosy:left-0 cosy:right-0 cosy:flex cosy:items-center cosy:h-12 cosy:px-4 cosy:bg-base-200 cosy:border-b cosy:border-base-300"
210
- >
211
- <div class="cosy:flex cosy:items-center cosy:space-x-2">
212
- <div
213
- class="cosy:w-3 cosy:h-3 cosy:rounded-full cosy:bg-error cosy:cursor-pointer hover:cosy:opacity-80 cosy:transition-opacity"
214
- @click="handleCloseWindow"
215
- />
216
- <div
217
- class="cosy:w-3 cosy:h-3 cosy:rounded-full cosy:bg-warning cosy:cursor-pointer hover:cosy:opacity-80 cosy:transition-opacity"
218
- @click="handleMinimizeWindow"
219
- />
220
- <div
221
- class="cosy:w-3 cosy:h-3 cosy:rounded-full cosy:bg-success cosy:cursor-pointer hover:cosy:opacity-80 cosy:transition-opacity"
222
- @click="handleMaximizeWindow"
223
- />
224
- </div>
225
- <div
226
- class="cosy:ml-6 cosy:text-sm cosy:font-medium cosy:text-base-content"
227
- >
228
- {{ title }}
229
- </div>
230
-
231
- <!-- 标签选择器 -->
232
- <div
233
- v-if="tabs?.length"
234
- class="cosy:flex-1 cosy:flex cosy:justify-center"
235
- >
236
- <div class="cosy:inline-flex cosy:rounded-lg cosy:bg-base-300 cosy:p-1">
237
- <button
238
- v-for="(tab, index) in tabs"
239
- :key="index"
240
- :class="[
241
- 'cosy:px-3 cosy:py-1 cosy:text-sm cosy:rounded-md cosy:transition-colors',
242
- activeTab === tab
243
- ? 'cosy:bg-base-100 cosy:text-base-content cosy:shadow'
244
- : 'cosy:text-base-content/70 hover:cosy:text-base-content',
245
- ]"
246
- @click="handleTabClick(tab)"
247
- >
248
- {{ tab }}
249
- </button>
250
- </div>
251
- </div>
252
-
253
- <!-- 工具栏插槽 -->
254
- <div class="cosy:ml-auto cosy:flex cosy:items-center cosy:space-x-2">
255
- <slot name="toolbar"></slot>
256
- </div>
257
- </div>
258
-
259
- <!-- 主要内容区域 -->
260
- <div class="cosy:flex-1 cosy:flex cosy:flex-col cosy:pt-12 cosy:h-full">
261
- <div class="cosy:flex cosy:flex-1 cosy:h-full cosy:overflow-hidden">
262
- <!-- 左侧栏插槽 -->
263
- <slot name="sidebar" />
264
-
265
- <!-- 主内容插槽 -->
266
- <slot />
267
- </div>
268
-
269
- <!-- 底部状态栏 -->
270
- <div
271
- v-if="$slots.status"
272
- class="cosy:h-6 cosy:bg-base-200/95 cosy:border-t cosy:border-base-300 cosy:flex cosy:items-center cosy:justify-end cosy:px-4 cosy:text-sm"
273
- >
274
- <div class="cosy:flex cosy:items-center cosy:space-x-2">
275
- <slot name="status"></slot>
276
- </div>
277
- </div>
278
- </div>
279
- </div>
280
-
281
- <!-- AlertDialog 组件 -->
282
- <AlertDialog v-model="showAlertDialog" :message="alertMessage" />
283
- </template>
@@ -1,40 +0,0 @@
1
- <script setup>
2
- import { ref } from 'vue';
3
- import { MacWindow } from './index';
4
-
5
- const activeTab = ref('信息');
6
-
7
- const handleTabClick = (tab) => {
8
- activeTab.value = tab;
9
- console.log('切换到标签:', tab);
10
- };
11
-
12
- const handleClose = () => {
13
- alert('关闭窗口');
14
- };
15
-
16
- const handleMinimize = () => {
17
- alert('最小化窗口');
18
- };
19
-
20
- const handleMaximize = () => {
21
- alert('最大化窗口');
22
- };
23
- </script>
24
-
25
- <template>
26
- <MacWindow
27
- title="应用窗口"
28
- :tabs="['信息', '设置', '帮助']"
29
- :onTabClick="handleTabClick"
30
- :onCloseWindow="handleClose"
31
- :onMinimizeWindow="handleMinimize"
32
- :onMaximizeWindow="handleMaximize"
33
- >
34
- <div class="cosy:p-4">
35
- <div v-if="activeTab === '信息'">信息内容</div>
36
- <div v-if="activeTab === '设置'">设置内容</div>
37
- <div v-if="activeTab === '帮助'">帮助内容</div>
38
- </div>
39
- </MacWindow>
40
- </template>
@@ -1,31 +0,0 @@
1
- <script setup>
2
- import { MacWindow } from './index';
3
- </script>
4
-
5
- <template>
6
- <MacWindow title="文件浏览器">
7
- <template #sidebar>
8
- <div class="cosy:w-48 cosy:border-r cosy:border-base-300 cosy:p-2">
9
- <div class="cosy:font-medium cosy:mb-2">文件夹</div>
10
- <ul>
11
- <li
12
- class="cosy:py-1 cosy:px-2 hover:cosy:bg-base-200 cosy:rounded cosy:cursor-pointer"
13
- >
14
- 文档
15
- </li>
16
- <li
17
- class="cosy:py-1 cosy:px-2 hover:cosy:bg-base-200 cosy:rounded cosy:cursor-pointer"
18
- >
19
- 下载
20
- </li>
21
- <li
22
- class="cosy:py-1 cosy:px-2 hover:cosy:bg-base-200 cosy:rounded cosy:cursor-pointer"
23
- >
24
- 图片
25
- </li>
26
- </ul>
27
- </div>
28
- </template>
29
- <div class="cosy:p-4">主内容区域</div>
30
- </MacWindow>
31
- </template>
@@ -1,26 +0,0 @@
1
- <script setup>
2
- import { ref } from 'vue';
3
- import { MacWindow } from './index';
4
-
5
- const activeTab = ref('外观');
6
-
7
- const handleTabClick = (tab) => {
8
- activeTab.value = tab;
9
- console.log('当前标签:', tab);
10
- };
11
- </script>
12
-
13
- <template>
14
- <MacWindow
15
- title="设置"
16
- :tabs="['通用', '外观', '高级']"
17
- defaultTab="外观"
18
- :onTabClick="handleTabClick"
19
- >
20
- <div class="cosy:p-4">
21
- <div v-if="activeTab === '通用'">通用设置内容</div>
22
- <div v-if="activeTab === '外观'">外观设置内容</div>
23
- <div v-if="activeTab === '高级'">高级设置内容</div>
24
- </div>
25
- </MacWindow>
26
- </template>
@@ -1,44 +0,0 @@
1
- <script setup>
2
- import { MacWindow } from './index';
3
- import { SearchIcon, SettingsIcon, InfoIcon } from '../../index-vue';
4
-
5
- const handleSearch = () => {
6
- console.log('搜索');
7
- };
8
-
9
- const handleSettings = () => {
10
- console.log('设置');
11
- };
12
-
13
- const handleInfo = () => {
14
- console.log('信息');
15
- };
16
- </script>
17
-
18
- <template>
19
- <MacWindow title="文件浏览器">
20
- <!-- 工具栏插槽 -->
21
- <template #toolbar>
22
- <button class="cosy:btn cosy:btn-ghost cosy:btn-sm" @click="handleSearch">
23
- <SearchIcon class="cosy:w-4 cosy:h-4" />
24
- </button>
25
- <button
26
- class="cosy:btn cosy:btn-ghost cosy:btn-sm"
27
- @click="handleSettings"
28
- >
29
- <SettingsIcon class="cosy:w-4 cosy:h-4" />
30
- </button>
31
- </template>
32
-
33
- <!-- 主内容 -->
34
- <div class="cosy:p-4">窗口内容区域</div>
35
-
36
- <!-- 状态栏插槽 -->
37
- <template #status>
38
- <div class="cosy:text-xs">就绪</div>
39
- <button class="cosy:btn cosy:btn-ghost cosy:btn-xs" @click="handleInfo">
40
- <InfoIcon class="cosy:w-4 cosy:h-4" />
41
- </button>
42
- </template>
43
- </MacWindow>
44
- </template>
@@ -1,36 +0,0 @@
1
- import Basic from './Basic.vue';
2
- import WithTabs from './WithTabs.vue';
3
- import WithEvents from './WithEvents.vue';
4
- import WithToolbar from './WithToolbar.vue';
5
- import WithSidebar from './WithSidebar.vue';
6
- import CustomHeight from './CustomHeight.vue';
7
- import BasicSource from './Basic.vue?raw';
8
- import WithTabsSource from './WithTabs.vue?raw';
9
- import WithEventsSource from './WithEvents.vue?raw';
10
- import WithToolbarSource from './WithToolbar.vue?raw';
11
- import WithSidebarSource from './WithSidebar.vue?raw';
12
- import CustomHeightSource from './CustomHeight.vue?raw';
13
- import { extractSimpleExample } from '../../astro/src/utils/component';
14
-
15
- // 导出主组件
16
- export { default as MacWindow } from './MacWindow.vue';
17
-
18
- // 将示例组件整合为一个对象导出
19
- export const MacWindowExamples = {
20
- Basic,
21
- WithTabs,
22
- WithEvents,
23
- WithToolbar,
24
- WithSidebar,
25
- CustomHeight,
26
- };
27
-
28
- // 导出示例组件的源代码(简化版本)
29
- export const MacWindowExampleCodes = {
30
- Basic: extractSimpleExample(BasicSource, 'MacWindow'),
31
- WithTabs: extractSimpleExample(WithTabsSource, 'MacWindow'),
32
- WithEvents: extractSimpleExample(WithEventsSource, 'MacWindow'),
33
- WithToolbar: extractSimpleExample(WithToolbarSource, 'MacWindow'),
34
- WithSidebar: extractSimpleExample(WithSidebarSource, 'MacWindow'),
35
- CustomHeight: extractSimpleExample(CustomHeightSource, 'MacWindow'),
36
- };
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes