用途:为 Mistica 的在线 Playroom 编辑器生成可直接粘贴运行的 JSX 代码,用于在浏览器中即时预览组件、页面和交互原型,而非在本地仓库中开发。适用场景包括用户要求构建或编辑 Mistica 的 Playroom 示例,以及强制移动端/桌面端视图(/playroom-mobile、/playroom-desktop)。
主要能力:输出单个 fenced jsx 代码块,内容自包含,用户全选粘贴到编辑器即可运行;同时附上编辑器链接。代码需与设计系统保持一致,建议先通过 Skill 工具调用 mistica-react 作为组件选择、属性、变体、布局、间距、颜色令牌和无障碍的事实来源;若不可用需说明未验证设计系统一致性。
必要用法与硬性规则:Playroom 将编辑器内容作为单个 JSX 表达式求值,框架已挂载主题提供者、SheetRoot 和 overscroll 提供者。因此禁止任何 import;禁止 export、函数/组件声明和 return;禁止 React hooks;不要手动添加主题提供者或 SheetRoot。交互使用注入的 getState(key, defaultValue?)、setState(key, value)、resetState(...keys)。setState 为柯里化且感知事件:setState('foo') 返回处理器,传入 DOM 事件时提取 currentTarget.checked 或 currentTarget.value。注意陷阱:onPress={setState('open', true)} 会在渲染时立即执行,应写为 onPress={() => setState('open', true)};裸 setState('key') 仅适用于首参为待存值或 DOM 事件的回调。
作用域内可用:完整 Mistica 公共 API 及 src/community(含 CYBER_SKIN 等社区皮肤);colors、rawColors、theme;alert、confirm、dialog、showSheet;屏幕尺寸标志 isMobile、isTablet、isTabletOrBigger 等;iconKeywords、iconCategories。Playroom 专有组件 Loader 和 Animation 不属于 @telefonica/mistica,若用户计划移植到真实应用需另行处理数据获取和 lottie-react。
约定:填充内容用 Placeholder;示例媒体可用公开图片/视频 URL;布局用 Box、Stack、Inline、ResponsiveLayout 等原语;颜色用 colors.* 而非硬编码;用屏幕尺寸标志而非 CSS 媒体查询适配视口。参考示例可 grep 本地 playroom/snippets.tsx,无本地仓库时可从 GitHub raw 获取相关片段。
限制:资料未提供收费、价格、平台支持范围等信息。