@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.
Files changed (81) hide show
  1. package/README.md +23 -6
  2. package/dist/PlaygroundRoot-Bcq7hG6m.js +4114 -0
  3. package/dist/bash-DXbFn1Mw.js +2 -0
  4. package/dist/diff-BbCHXb9k.js +2 -0
  5. package/dist/html-BheHDAwJ.js +10 -0
  6. package/dist/index.js +646 -5
  7. package/dist/less-DcFvX2iI.js +2 -0
  8. package/dist/light-plus-DuoQWI9Q.js +3 -0
  9. package/dist/markdown-qYHfSPvL.js +2 -0
  10. package/dist/marked.esm-CNYX-ybC.js +1796 -0
  11. package/dist/{App-BzlvncHB.js → plugin-S72dg7Tb.js} +560 -1608
  12. package/dist/style.css +2880 -9004
  13. package/dist/tokyo-night-A7e3DMsQ.js +3 -0
  14. package/dist/types/app/App.vue.d.ts +1 -0
  15. package/dist/types/app/PlaygroundApiTable.vue.d.ts +16 -0
  16. package/dist/types/app/PlaygroundEditorPicker.vue.d.ts +3 -0
  17. package/dist/types/app/PlaygroundModuleApi.vue.d.ts +17 -0
  18. package/dist/types/app/PlaygroundPage.vue.d.ts +30 -0
  19. package/dist/types/app/{PlaygroundSourcePanel.vue.d.ts → PlaygroundPageIndex.vue.d.ts} +4 -4
  20. package/dist/types/app/PlaygroundPluginPanel.vue.d.ts +3 -0
  21. package/dist/types/app/PlaygroundPluginSlot.vue.d.ts +12 -0
  22. package/dist/types/app/PlaygroundPluginWrappers.vue.d.ts +25 -0
  23. package/dist/types/app/PlaygroundRoot.vue.d.ts +4 -0
  24. package/dist/types/app/{PlaygroundParamsPanel.vue.d.ts → PlaygroundSceneArgs.vue.d.ts} +1 -1
  25. package/dist/types/app/PlaygroundSceneOutput.vue.d.ts +6 -0
  26. package/dist/types/app/PlaygroundSceneSection.vue.d.ts +16 -0
  27. package/dist/types/app/{PlaygroundStage.vue.d.ts → PlaygroundSceneSource.vue.d.ts} +0 -1
  28. package/dist/types/app/PlaygroundSidebar.vue.d.ts +19 -8
  29. package/dist/types/app/viewport.d.ts +39 -0
  30. package/dist/types/code/CodeBlock.vue.d.ts +19 -1
  31. package/dist/types/code/clipboard.d.ts +2 -0
  32. package/dist/types/code/find.d.ts +42 -0
  33. package/dist/types/code/highlighter.d.ts +9 -2
  34. package/dist/types/code/openInEditor.d.ts +35 -0
  35. package/dist/types/components/PwApiBrief.vue.d.ts +16 -0
  36. package/dist/types/components/PwButton.vue.d.ts +2 -2
  37. package/dist/types/components/PwDemo.vue.d.ts +39 -0
  38. package/dist/types/components/PwDemoGrid.vue.d.ts +32 -0
  39. package/dist/types/components/PwInput.vue.d.ts +8 -8
  40. package/dist/types/components/PwSceneBoundary.vue.d.ts +20 -0
  41. package/dist/types/components/PwSceneNote.vue.d.ts +19 -0
  42. package/dist/types/components/PwTooltip.vue.d.ts +3 -0
  43. package/dist/types/components/prose/PwCallout.vue.d.ts +24 -0
  44. package/dist/types/components/prose/PwMarkdown.vue.d.ts +11 -0
  45. package/dist/types/components/prose/PwProse.vue.d.ts +27 -0
  46. package/dist/types/components/prose/PwStep.vue.d.ts +27 -0
  47. package/dist/types/components/prose/PwSteps.vue.d.ts +26 -0
  48. package/dist/types/components/prose/enhance.d.ts +4 -0
  49. package/dist/types/components/prose/index.d.ts +7 -0
  50. package/dist/types/components/prose/markdown-scene.d.ts +10 -0
  51. package/dist/types/components/prose/parse.d.ts +20 -0
  52. package/dist/types/components/prose/render.d.ts +22 -0
  53. package/dist/types/components/scene.d.ts +5 -0
  54. package/dist/types/config.d.ts +43 -5
  55. package/dist/types/index.d.ts +15 -8
  56. package/dist/types/module-api.d.ts +55 -0
  57. package/dist/types/payload/args.d.ts +22 -3
  58. package/dist/types/payload/context.d.ts +3 -0
  59. package/dist/types/payload/output.d.ts +18 -3
  60. package/dist/types/plugin.d.ts +119 -0
  61. package/dist/types/scene-meta.d.ts +38 -3
  62. package/dist/types/shims.d.ts +26 -5
  63. package/dist/types/types.d.ts +107 -15
  64. package/dist/vue-B_A2yz16.js +30 -0
  65. package/dist/yaml-CoEYOy4X.js +2 -0
  66. package/package.json +3 -4
  67. package/dist/assets/editor.worker-G4Kxf7Y6.js +0 -15827
  68. package/dist/assets/ts.worker-Dee0cZZb.js +0 -164076
  69. package/dist/dist-CiAXGmAo.js +0 -151
  70. package/dist/editor.api-6f2aPN2V.js +0 -126730
  71. package/dist/editor.worker-VDFPHiZj.js +0 -5
  72. package/dist/monaco.contribution-jrnupplv.js +0 -220
  73. package/dist/output-Dx3ubog9.js +0 -51
  74. package/dist/ts.worker-CpQm_d0w.js +0 -5
  75. package/dist/tsMode-C6DRwdZC.js +0 -52173
  76. package/dist/types/app/PlaygroundToolbar.vue.d.ts +0 -22
  77. package/dist/types/code/CodeEditor.vue.d.ts +0 -18
  78. package/dist/types/code/monaco.d.ts +0 -6
  79. package/dist/vitesse-dark-B9O9KI0c.js +0 -3
  80. package/dist/vitesse-light-Cs2DYTIe.js +0 -3
  81. 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` 文件,侧栏、预览、源码面板、入参/出参面板自己就长出来了 —— 没有注册 API,没有配置要改。
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
- - `theme.code` 未接线
176
+ - 代码配色随外壳明暗固定使用 `light-plus` / `tokyo-night`,暂不提供配置项
160
177
  - 只支持 Vue3,不支持 React / Svelte
161
178
 
162
179
  ## 相关包