@rinova/playground 0.1.4 → 0.5.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.
- package/README.md +23 -6
- package/dist/PlaygroundRoot-Bcq7hG6m.js +4114 -0
- package/dist/bash-DXbFn1Mw.js +2 -0
- package/dist/diff-BbCHXb9k.js +2 -0
- package/dist/html-BheHDAwJ.js +10 -0
- package/dist/index.js +646 -5
- package/dist/less-DcFvX2iI.js +2 -0
- package/dist/light-plus-DuoQWI9Q.js +3 -0
- package/dist/markdown-qYHfSPvL.js +2 -0
- package/dist/marked.esm-CNYX-ybC.js +1796 -0
- package/dist/{App-BzlvncHB.js → plugin-S72dg7Tb.js} +560 -1608
- package/dist/style.css +2880 -9004
- package/dist/tokyo-night-A7e3DMsQ.js +3 -0
- package/dist/types/app/App.vue.d.ts +1 -0
- package/dist/types/app/PlaygroundApiTable.vue.d.ts +16 -0
- package/dist/types/app/PlaygroundEditorPicker.vue.d.ts +3 -0
- package/dist/types/app/PlaygroundModuleApi.vue.d.ts +17 -0
- package/dist/types/app/PlaygroundPage.vue.d.ts +30 -0
- package/dist/types/app/{PlaygroundSourcePanel.vue.d.ts → PlaygroundPageIndex.vue.d.ts} +4 -4
- package/dist/types/app/PlaygroundPluginPanel.vue.d.ts +3 -0
- package/dist/types/app/PlaygroundPluginSlot.vue.d.ts +12 -0
- package/dist/types/app/PlaygroundPluginWrappers.vue.d.ts +25 -0
- package/dist/types/app/PlaygroundRoot.vue.d.ts +4 -0
- package/dist/types/app/{PlaygroundParamsPanel.vue.d.ts → PlaygroundSceneArgs.vue.d.ts} +1 -1
- package/dist/types/app/PlaygroundSceneOutput.vue.d.ts +6 -0
- package/dist/types/app/PlaygroundSceneSection.vue.d.ts +16 -0
- package/dist/types/app/{PlaygroundStage.vue.d.ts → PlaygroundSceneSource.vue.d.ts} +0 -1
- package/dist/types/app/PlaygroundSidebar.vue.d.ts +19 -8
- package/dist/types/app/viewport.d.ts +39 -0
- package/dist/types/code/CodeBlock.vue.d.ts +19 -1
- package/dist/types/code/clipboard.d.ts +2 -0
- package/dist/types/code/find.d.ts +42 -0
- package/dist/types/code/highlighter.d.ts +9 -2
- package/dist/types/code/openInEditor.d.ts +35 -0
- package/dist/types/components/PwApiBrief.vue.d.ts +16 -0
- package/dist/types/components/PwButton.vue.d.ts +2 -2
- package/dist/types/components/PwDemo.vue.d.ts +39 -0
- package/dist/types/components/PwDemoGrid.vue.d.ts +32 -0
- package/dist/types/components/PwInput.vue.d.ts +8 -8
- package/dist/types/components/PwSceneBoundary.vue.d.ts +20 -0
- package/dist/types/components/PwSceneNote.vue.d.ts +19 -0
- package/dist/types/components/PwTooltip.vue.d.ts +3 -0
- package/dist/types/components/prose/PwCallout.vue.d.ts +24 -0
- package/dist/types/components/prose/PwMarkdown.vue.d.ts +11 -0
- package/dist/types/components/prose/PwProse.vue.d.ts +27 -0
- package/dist/types/components/prose/PwStep.vue.d.ts +27 -0
- package/dist/types/components/prose/PwSteps.vue.d.ts +26 -0
- package/dist/types/components/prose/enhance.d.ts +4 -0
- package/dist/types/components/prose/index.d.ts +7 -0
- package/dist/types/components/prose/markdown-scene.d.ts +10 -0
- package/dist/types/components/prose/parse.d.ts +20 -0
- package/dist/types/components/prose/render.d.ts +22 -0
- package/dist/types/components/scene.d.ts +5 -0
- package/dist/types/config.d.ts +43 -5
- package/dist/types/index.d.ts +15 -8
- package/dist/types/module-api.d.ts +55 -0
- package/dist/types/payload/args.d.ts +22 -3
- package/dist/types/payload/context.d.ts +3 -0
- package/dist/types/payload/output.d.ts +18 -3
- package/dist/types/plugin.d.ts +119 -0
- package/dist/types/scene-meta.d.ts +38 -3
- package/dist/types/shims.d.ts +26 -5
- package/dist/types/types.d.ts +107 -15
- package/dist/vue-B_A2yz16.js +30 -0
- package/dist/yaml-CoEYOy4X.js +2 -0
- package/package.json +3 -4
- package/dist/assets/editor.worker-G4Kxf7Y6.js +0 -15827
- package/dist/assets/ts.worker-Dee0cZZb.js +0 -164076
- package/dist/dist-CiAXGmAo.js +0 -151
- package/dist/editor.api-6f2aPN2V.js +0 -126730
- package/dist/editor.worker-VDFPHiZj.js +0 -5
- package/dist/monaco.contribution-jrnupplv.js +0 -220
- package/dist/output-Dx3ubog9.js +0 -51
- package/dist/ts.worker-CpQm_d0w.js +0 -5
- package/dist/tsMode-C6DRwdZC.js +0 -52173
- package/dist/types/app/PlaygroundToolbar.vue.d.ts +0 -22
- package/dist/types/code/CodeEditor.vue.d.ts +0 -18
- package/dist/types/code/monaco.d.ts +0 -6
- package/dist/vitesse-dark-B9O9KI0c.js +0 -3
- package/dist/vitesse-light-Cs2DYTIe.js +0 -3
- package/dist/vue-tjAT-6a9.js +0 -36
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @rinova/playground
|
|
2
2
|
|
|
3
|
-
Vue3 的「文件即场景」组件演示框架。往 `src/scenes/` 里放 `.vue`
|
|
3
|
+
Vue3 的「文件即场景」组件演示框架。往 `src/scenes/` 里放 `.vue` 文件,侧栏、预览、源码面板、输入/输出面板自己就长出来了 —— 没有注册 API,没有配置要改。
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
pnpm add @rinova/playground
|
|
@@ -83,12 +83,13 @@ const size = ref<'sm' | 'md' | 'lg'>('lg')
|
|
|
83
83
|
| `sources` | `true` | 是否显示源码面板 |
|
|
84
84
|
| `codeViewer` | `'monaco'` | `'monaco'` 只读编辑器 / `'shiki'` 静态高亮块(更轻,不加载编辑器 worker) |
|
|
85
85
|
| `theme.ui` | `'auto'` | `'light' \| 'dark' \| 'auto'` |
|
|
86
|
-
| `theme.code` | 随明暗用 `vitesse-light` / `vitesse-dark` | **v0.1 尚未接线,改这个值暂时无效** |
|
|
87
86
|
| `exclude` | — | 排除的 glob(相对 `scenes` 根) |
|
|
88
87
|
| `base` | Vite 默认 | 部署子路径 |
|
|
89
88
|
| `port` | Vite 默认(5173) | dev server 端口 |
|
|
90
89
|
| `components` | — | 契约清单要扫的组件 glob;不配则不生成 `.playground/manifest.json` |
|
|
91
90
|
| `tsconfig` | 项目根 `tsconfig.json` | 组件契约提取用的 tsconfig |
|
|
91
|
+
| `groups` | — | 分组(`scenes` 下一级目录名)→ 侧栏显示名,**声明顺序即侧栏顺序**:`{ 'tao-common': 'Tao 通用组件' }` |
|
|
92
|
+
| `groupIndex` | `false` | 为每个分组自动合成一个「概览」落地页,点分组标题即可进入 |
|
|
92
93
|
|
|
93
94
|
## 场景内 API
|
|
94
95
|
|
|
@@ -105,7 +106,7 @@ const size = ref<'sm' | 'md' | 'lg'>('lg')
|
|
|
105
106
|
|
|
106
107
|
`SceneMeta` 类型里还有 `payload` 字段,但构建期拿不到组件状态,**请改用下面的 `useSceneArgs` / `useSceneOutput`**。
|
|
107
108
|
|
|
108
|
-
### useSceneArgs ——
|
|
109
|
+
### useSceneArgs —— 输入面板
|
|
109
110
|
|
|
110
111
|
```ts
|
|
111
112
|
const args = useSceneArgs(
|
|
@@ -123,13 +124,28 @@ const args = useSceneArgs(
|
|
|
123
124
|
|
|
124
125
|
> 字面量会被拓宽成 `string`,直接传给只接受联合类型的 prop 会报 TS2322,所以写 `'md' as 'sm' | 'md' | 'lg'`。
|
|
125
126
|
|
|
126
|
-
### useSceneOutput ——
|
|
127
|
+
### useSceneOutput —— 输出快照
|
|
127
128
|
|
|
128
129
|
```ts
|
|
129
130
|
useSceneOutput(() => ({ size: args.size, clicked: count.value }))
|
|
130
131
|
```
|
|
131
132
|
|
|
132
|
-
面板以 400ms 轮询这个 getter
|
|
133
|
+
面板以 400ms 轮询这个 getter,把返回值显示在输出区。
|
|
134
|
+
|
|
135
|
+
### 一个场景多个 demo —— 参数槽位
|
|
136
|
+
|
|
137
|
+
同一场景里放多个 demo 时,各自调用一次并在选项里写 `slot`,面板会按槽位名分块,
|
|
138
|
+
互不干扰(改一块的输入只影响那一个 demo):
|
|
139
|
+
|
|
140
|
+
```ts
|
|
141
|
+
const primary = useSceneArgs({ label: '主按钮', size: 'md' }, { slot: '主按钮' })
|
|
142
|
+
const ghost = useSceneArgs({ label: '次按钮', size: 'sm' }, { slot: '次按钮' })
|
|
143
|
+
|
|
144
|
+
useSceneOutput(() => ({ clicked: primaryCount.value }), '主按钮')
|
|
145
|
+
useSceneOutput(() => ({ clicked: ghostCount.value }), '次按钮')
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
槽位按代码里声明的顺序排列;只有一块时不显示槽位标题。
|
|
133
149
|
|
|
134
150
|
### toast
|
|
135
151
|
|
|
@@ -142,6 +158,7 @@ toast('保存失败', 'error') // 'info' | 'success' | 'warning' | 'error'
|
|
|
142
158
|
|
|
143
159
|
## 样式约定
|
|
144
160
|
|
|
161
|
+
- 只需引入一次 `@rinova/playground/style.css`(外壳样式)。**编辑器界面样式由包内按需加载**:打开代码面板时才会去拉 `@rinova/playground/editor.css`(≈125 KB gzip),不用手动引入;配 `codeViewer: 'shiki'` 的项目则永远不加载它。
|
|
145
162
|
- 场景写 `<style scoped lang="less">`(使用方需要装 `less`)。**v0.1 没有 DOM 隔离**,非 scoped 样式会污染外壳。
|
|
146
163
|
- 不要硬编码颜色,用外壳暴露的 12 个变量,明暗主题自动切换:
|
|
147
164
|
|
|
@@ -156,7 +173,7 @@ toast('保存失败', 'error') // 'info' | 'success' | 'warning' | 'error'
|
|
|
156
173
|
|
|
157
174
|
- 场景与外壳无 DOM 隔离,必须写 scoped
|
|
158
175
|
- 源码面板只读,不支持编辑(实时预览也已明确不做:只在 dev 可用,价值不足)
|
|
159
|
-
- `
|
|
176
|
+
- 代码配色随外壳明暗固定使用 `light-plus` / `tokyo-night`,暂不提供配置项
|
|
160
177
|
- 只支持 Vue3,不支持 React / Svelte
|
|
161
178
|
|
|
162
179
|
## 相关包
|