@rinova/playground 0.0.0-stage → 0.1.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.
Files changed (45) hide show
  1. package/dist/App-CFmSt4WP.js +11980 -0
  2. package/dist/assets/editor.worker-G4Kxf7Y6.js +15827 -0
  3. package/dist/assets/ts.worker-Dee0cZZb.js +164076 -0
  4. package/dist/css-CZhy9mCC.js +2 -0
  5. package/dist/dist-mV5k43A9.js +151 -0
  6. package/dist/editor.api-oO_3X9N5.js +126730 -0
  7. package/dist/editor.worker-VDFPHiZj.js +5 -0
  8. package/dist/index.js +22 -0
  9. package/dist/javascript-drpK16Ry.js +2 -0
  10. package/dist/json-BRBnC4S4.js +2 -0
  11. package/dist/monaco.contribution-HbKWJEpF.js +220 -0
  12. package/dist/output-Dx3ubog9.js +51 -0
  13. package/dist/style.css +9248 -0
  14. package/dist/ts.worker-CpQm_d0w.js +5 -0
  15. package/dist/tsMode-GTz-HPrN.js +52173 -0
  16. package/dist/types/app/App.vue.d.ts +4 -0
  17. package/dist/types/app/PlaygroundParamsPanel.vue.d.ts +6 -0
  18. package/dist/types/app/PlaygroundSidebar.vue.d.ts +19 -0
  19. package/dist/types/app/PlaygroundSourcePanel.vue.d.ts +12 -0
  20. package/dist/types/app/PlaygroundStage.vue.d.ts +8 -0
  21. package/dist/types/app/PlaygroundToolbar.vue.d.ts +22 -0
  22. package/dist/types/code/CodeBlock.vue.d.ts +9 -0
  23. package/dist/types/code/CodeEditor.vue.d.ts +18 -0
  24. package/dist/types/code/highlighter.d.ts +4 -0
  25. package/dist/types/code/monaco.d.ts +6 -0
  26. package/dist/types/components/PwButton.vue.d.ts +29 -0
  27. package/dist/types/components/PwInput.vue.d.ts +43 -0
  28. package/dist/types/components/PwPortal.vue.d.ts +20 -0
  29. package/dist/types/components/PwSwitch.vue.d.ts +11 -0
  30. package/dist/types/components/PwToastHost.vue.d.ts +3 -0
  31. package/dist/types/components/toast.d.ts +9 -0
  32. package/dist/types/composables/useFocusTrap.d.ts +5 -0
  33. package/dist/types/config.d.ts +30 -0
  34. package/dist/types/index.d.ts +24 -0
  35. package/dist/types/payload/args.d.ts +19 -0
  36. package/dist/types/payload/output.d.ts +4 -0
  37. package/dist/types/scene-meta.d.ts +23 -0
  38. package/dist/types/shims.d.ts +15 -0
  39. package/dist/types/types.d.ts +37 -0
  40. package/dist/typescript-CqzjXQdw.js +2 -0
  41. package/dist/vitesse-dark-B9O9KI0c.js +3 -0
  42. package/dist/vitesse-light-Cs2DYTIe.js +3 -0
  43. package/dist/vue-tjAT-6a9.js +36 -0
  44. package/package.json +43 -4
  45. package/README.md +0 -3
@@ -0,0 +1,4 @@
1
+ import '../styles/theme.less';
2
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
3
+ declare const _default: typeof __VLS_export;
4
+ export default _default;
@@ -0,0 +1,6 @@
1
+ type __VLS_Props = {
2
+ theme: 'light' | 'dark';
3
+ };
4
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
@@ -0,0 +1,19 @@
1
+ import type { SceneDescriptor } from '../types';
2
+ type __VLS_Props = {
3
+ title: string;
4
+ groups: {
5
+ name: string;
6
+ items: SceneDescriptor[];
7
+ }[];
8
+ activeId: string;
9
+ sceneCount: number;
10
+ };
11
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
12
+ focusSearch: () => void;
13
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
+ select: (id: string) => any;
15
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
16
+ onSelect?: ((id: string) => any) | undefined;
17
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { SceneDescriptor } from '../types';
2
+ type __VLS_Props = {
3
+ scene: SceneDescriptor;
4
+ theme: 'light' | 'dark';
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ close: () => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onClose?: (() => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import type { SceneDescriptor } from '../types';
2
+ type __VLS_Props = {
3
+ scene: SceneDescriptor;
4
+ width: 'auto' | 'tablet' | 'mobile';
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,22 @@
1
+ type __VLS_Props = {
2
+ group: string;
3
+ title: string;
4
+ showCode: boolean;
5
+ showPayload: boolean;
6
+ hasPayload: boolean;
7
+ width: 'auto' | 'tablet' | 'mobile';
8
+ theme: 'light' | 'dark';
9
+ };
10
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
+ "toggle-code": () => any;
12
+ "toggle-payload": () => any;
13
+ "update:width": (width: "auto" | "tablet" | "mobile") => any;
14
+ "toggle-theme": () => any;
15
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
16
+ "onToggle-code"?: (() => any) | undefined;
17
+ "onToggle-payload"?: (() => any) | undefined;
18
+ "onUpdate:width"?: ((width: "auto" | "tablet" | "mobile") => any) | undefined;
19
+ "onToggle-theme"?: (() => any) | undefined;
20
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
@@ -0,0 +1,9 @@
1
+ type __VLS_Props = {
2
+ code: string;
3
+ lang?: string;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
6
+ lang: string;
7
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
8
+ declare const _default: typeof __VLS_export;
9
+ export default _default;
@@ -0,0 +1,18 @@
1
+ type __VLS_Props = {
2
+ modelValue: string;
3
+ filename: string;
4
+ readOnly?: boolean;
5
+ theme?: 'light' | 'dark';
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ "update:modelValue": (value: string) => any;
9
+ fail: (message: string) => any;
10
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
12
+ onFail?: ((message: string) => any) | undefined;
13
+ }>, {
14
+ theme: "light" | "dark";
15
+ readOnly: boolean;
16
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
+ declare const _default: typeof __VLS_export;
18
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import { type HighlighterCore } from 'shiki/core';
2
+ export declare const PW_THEME_LIGHT = "vitesse-light";
3
+ export declare const PW_THEME_DARK = "vitesse-dark";
4
+ export declare const getHighlighter: () => Promise<HighlighterCore>;
@@ -0,0 +1,6 @@
1
+ import type * as Monaco from 'monaco-editor/editor/editor.api';
2
+ export declare const PW_MONACO_LANGS: readonly ["vue", "typescript", "javascript", "css", "html", "json", "less"];
3
+ export declare const loadMonaco: () => Promise<typeof Monaco>;
4
+ export declare const applyMonacoTheme: (monaco: typeof Monaco, theme: "light" | "dark") => void;
5
+ /** 按扩展名判断 Monaco 语言 */
6
+ export declare const langFromFile: (file: string) => string;
@@ -0,0 +1,29 @@
1
+ type __VLS_Props = {
2
+ variant?: 'primary' | 'ghost' | 'text';
3
+ size?: 'sm' | 'md';
4
+ disabled?: boolean;
5
+ loading?: boolean;
6
+ title?: string;
7
+ };
8
+ declare const __VLS_template: () => {
9
+ __VLS_Slots: {
10
+ icon?: (props: {}) => any;
11
+ } & {
12
+ default?: (props: {}) => any;
13
+ };
14
+ };
15
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
16
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
17
+ size: "sm" | "md";
18
+ disabled: boolean;
19
+ variant: "text" | "primary" | "ghost";
20
+ loading: boolean;
21
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
25
+ type __VLS_WithSlots<T, S> = T & {
26
+ new (): {
27
+ $slots: S;
28
+ };
29
+ };
@@ -0,0 +1,43 @@
1
+ type __VLS_Props = {
2
+ modelValue?: string;
3
+ placeholder?: string;
4
+ clearable?: boolean;
5
+ size?: 'sm' | 'md';
6
+ autofocus?: boolean;
7
+ type?: 'text' | 'number';
8
+ };
9
+ declare const __VLS_template: () => {
10
+ __VLS_Slots: {
11
+ prefix?: (props: {}) => any;
12
+ } & {
13
+ suffix?: (props: {}) => any;
14
+ };
15
+ };
16
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
17
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
18
+ focus: () => void | undefined;
19
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
20
+ "update:modelValue": (value: string) => any;
21
+ keydown: (event: KeyboardEvent) => any;
22
+ focus: (event: FocusEvent) => any;
23
+ blur: (event: FocusEvent) => any;
24
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
25
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
26
+ onKeydown?: ((event: KeyboardEvent) => any) | undefined;
27
+ onFocus?: ((event: FocusEvent) => any) | undefined;
28
+ onBlur?: ((event: FocusEvent) => any) | undefined;
29
+ }>, {
30
+ type: "number" | "text";
31
+ size: "sm" | "md";
32
+ modelValue: string;
33
+ clearable: boolean;
34
+ autofocus: boolean;
35
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
36
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
37
+ declare const _default: typeof __VLS_export;
38
+ export default _default;
39
+ type __VLS_WithSlots<T, S> = T & {
40
+ new (): {
41
+ $slots: S;
42
+ };
43
+ };
@@ -0,0 +1,20 @@
1
+ type __VLS_Props = {
2
+ to?: string;
3
+ };
4
+ declare const __VLS_template: () => {
5
+ __VLS_Slots: {
6
+ default?: (props: {}) => any;
7
+ };
8
+ };
9
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
10
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
11
+ to: string;
12
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
16
+ type __VLS_WithSlots<T, S> = T & {
17
+ new (): {
18
+ $slots: S;
19
+ };
20
+ };
@@ -0,0 +1,11 @@
1
+ type __VLS_Props = {
2
+ modelValue: boolean;
3
+ disabled?: boolean;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ "update:modelValue": (value: boolean) => any;
7
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,9 @@
1
+ export type ToastType = 'info' | 'success' | 'warning' | 'error';
2
+ export interface ToastItem {
3
+ id: number;
4
+ text: string;
5
+ type: ToastType;
6
+ }
7
+ export declare const toastState: import("vue").Reactive<ToastItem[]>;
8
+ /** 轻提示。用法:toast('已复制'), toast('保存失败', 'error') */
9
+ export declare const toast: (text: string, type?: ToastType, duration?: number) => void;
@@ -0,0 +1,5 @@
1
+ import { type Ref } from 'vue';
2
+ /**
3
+ * 把 Tab 焦点限制在容器内。`active` 变为 false 时解除。
4
+ */
5
+ export declare const useFocusTrap: (container: Ref<HTMLElement | null>, active: Ref<boolean>) => void;
@@ -0,0 +1,30 @@
1
+ /** playground 的唯一配置入口。 */
2
+ export type PlaygroundUiTheme = 'light' | 'dark' | 'auto';
3
+ export type PlaygroundCodeViewer = 'monaco' | 'shiki';
4
+ export interface PlaygroundConfig {
5
+ /** 品牌标题,默认取 package.json 的 name */
6
+ title?: string;
7
+ /** 场景扫描根目录,相对项目根 */
8
+ scenes?: string;
9
+ /** 是否展示源码面板,默认 true */
10
+ sources?: boolean;
11
+ /** 代码区实现:可编辑编辑器 / 只读高亮块,默认 'monaco' */
12
+ codeViewer?: PlaygroundCodeViewer;
13
+ theme?: {
14
+ /** 外壳主题(12 个 CSS 变量),默认 'auto' */
15
+ ui?: PlaygroundUiTheme;
16
+ /** 代码区 shiki 主题名,默认 'vitesse-dark' */
17
+ code?: string;
18
+ };
19
+ /** 扫描时排除的 glob(相对 scenes 根) */
20
+ exclude?: string[];
21
+ /** 部署子路径 */
22
+ base?: string;
23
+ /** dev server 端口 */
24
+ port?: number;
25
+ /** 契约清单要扫描的组件 glob(如 src/components 下所有 .vue);不配则不生成 manifest */
26
+ components?: string[];
27
+ /** 组件契约提取用的 tsconfig,默认项目根的 tsconfig.json */
28
+ tsconfig?: string;
29
+ }
30
+ export declare const defineConfig: (config: PlaygroundConfig) => PlaygroundConfig;
@@ -0,0 +1,24 @@
1
+ /// <reference path="./shims.d.ts" />
2
+ export { defineConfig } from './config';
3
+ export type { PlaygroundConfig, PlaygroundCodeViewer, PlaygroundUiTheme } from './config';
4
+ export { defineSceneMeta } from './scene-meta';
5
+ export type { SceneMeta } from './scene-meta';
6
+ export type { SceneDescriptor } from './types';
7
+ export { toast } from './components/toast';
8
+ export { useSceneArgs, currentArgs } from './payload/args';
9
+ export type { SceneArgs, SceneArgsOptions } from './payload/args';
10
+ export { useSceneOutput, currentOutput } from './payload/output';
11
+ export type { SceneSnapshot } from './payload/output';
12
+ export interface CreatePlaygroundOptions {
13
+ /** 挂载点,默认 `#app` */
14
+ el?: string | HTMLElement;
15
+ }
16
+ /**
17
+ * 挂载 playground。
18
+ *
19
+ * ```ts
20
+ * import { createPlayground } from '@rinova/playground'
21
+ * createPlayground()
22
+ * ```
23
+ */
24
+ export declare const createPlayground: (options?: CreatePlaygroundOptions) => Promise<void>;
@@ -0,0 +1,19 @@
1
+ export type SceneArgs = Record<string, unknown>;
2
+ export interface SceneArgsOptions {
3
+ /** 字符串字段的可选值 → 渲染成下拉框 */
4
+ options?: Record<string, Array<string | number>>;
5
+ /** 字段标签,缺省用 key */
6
+ labels?: Record<string, string>;
7
+ }
8
+ export interface SceneArgsBinding {
9
+ values: SceneArgs;
10
+ defaults: SceneArgs;
11
+ options: SceneArgsOptions;
12
+ }
13
+ /** 同一时刻只有一个场景挂载,所以只需要一个"当前入参"槽位 */
14
+ export declare const currentArgs: import("vue").ShallowRef<SceneArgsBinding | null, SceneArgsBinding | null>;
15
+ /**
16
+ * 在场景的 `<script setup>` 里声明可变入参,返回响应式对象:
17
+ * 面板改表单 → 这里同步变化 → 组件跟着重渲染。纯浏览器能力,生产环境同样可用。
18
+ */
19
+ export declare const useSceneArgs: <T extends SceneArgs>(defaults: T, options?: SceneArgsOptions) => T;
@@ -0,0 +1,4 @@
1
+ export type SceneSnapshot = Record<string, unknown>;
2
+ /** 出参快照:由面板轮询调用,纯前端实现 */
3
+ export declare const currentOutput: import("vue").ShallowRef<(() => SceneSnapshot) | null, (() => SceneSnapshot) | null>;
4
+ export declare const useSceneOutput: (getter: () => SceneSnapshot) => void;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 场景元信息。可选:不写也能用,只在需要覆盖标题 / 排序 / 入参出参面板时写。
3
+ */
4
+ export interface SceneMeta {
5
+ /** 覆盖由文件名推导出的标题 */
6
+ title?: string;
7
+ /** 同层排序权重,小的在前 */
8
+ order?: number;
9
+ /** 搜索与筛选用标签 */
10
+ tags?: string[];
11
+ /** 场景说明,显示在预览区上方 */
12
+ description?: string;
13
+ /** 入参 / 出参快照 */
14
+ payload?: {
15
+ input?: () => Record<string, unknown>;
16
+ output?: () => Record<string, unknown>;
17
+ };
18
+ /** 额外要展示的源码文件(相对项目根) */
19
+ files?: string[];
20
+ /** 隐藏于侧栏,但可通过链接直达 */
21
+ hideInNav?: boolean;
22
+ }
23
+ export declare const defineSceneMeta: (meta: SceneMeta) => SceneMeta;
@@ -0,0 +1,15 @@
1
+ /// <reference types="vite/client" />
2
+
3
+ // monaco 的 TS 语言贡献是纯副作用模块,没有 d.ts
4
+ declare module 'monaco-editor/language/typescript/monaco.contribution'
5
+
6
+ declare module 'virtual:playground/config' {
7
+ import type { PlaygroundConfig } from './config'
8
+ const config: PlaygroundConfig & { sceneCount: number }
9
+ export default config
10
+ }
11
+
12
+ declare module 'virtual:playground/scenes' {
13
+ import type { SceneDescriptor } from './types'
14
+ export const scenes: SceneDescriptor[]
15
+ }
@@ -0,0 +1,37 @@
1
+ import type { Component } from 'vue';
2
+ /** 一个被扫描到的场景。由 @rinova/playground-vite 在构建期生成。 */
3
+ export interface SceneDescriptor {
4
+ /** 场景 id,等于相对 scenes 根目录的路径(不含扩展名),如 `button/basic` */
5
+ id: string;
6
+ /** 侧栏显示的标题,默认由文件名推导 */
7
+ title: string;
8
+ /** 一级分组名,等于场景所在目录名(按目录首字母大写化) */
9
+ group: string;
10
+ /** 相对项目根的 URL,用于动态 import */
11
+ path: string;
12
+ /** 绝对文件路径,用于展示与错误提示 */
13
+ file: string;
14
+ /** 相对项目根的路径,如 `src/scenes/button/basic.vue` */
15
+ rel: string;
16
+ /** 源码语言(固定 'vue',源码面板高亮用) */
17
+ lang: 'vue';
18
+ /** 同层排序权重,未声明时为 Number.MAX_SAFE_INTEGER */
19
+ order: number;
20
+ /** sceneMeta.tags */
21
+ tags: string[] | null;
22
+ /** sceneMeta.description,显示在预览区上方 */
23
+ description: string | null;
24
+ /** sceneMeta.hideInNav:不进侧栏但可通过 URL 直达 */
25
+ hidden: boolean;
26
+ /** 懒加载场景组件 */
27
+ load: () => Promise<{
28
+ default: Component;
29
+ }>;
30
+ /** 懒加载场景源码(?raw) */
31
+ raw: () => Promise<string>;
32
+ /** 源码面板的文件列表:场景自身在前,sceneMeta.files 在后 */
33
+ sources: {
34
+ rel: string;
35
+ raw: () => Promise<string>;
36
+ }[];
37
+ }