Puck vPermissions

puck vpermissions

puck 是由 measured 构建的 react 开源可视化编辑器 – 是 builder.io、wordpress 和其他所见即所得工具的自托管替代品。

我们正在庆祝 github 上获得 5,000 颗星!感谢我们美好的社区!

puck v0.16 是一个重大版本,引入了头条权限 api 以及(你猜对了)生活质量的改进。这个花了一些时间来整理,我们感谢您的耐心和支持。

权限:通过新权限和resolvepermissions api 切换 puck 功能,例如复制、拖动、删除。操作栏覆盖:使用actionbar 覆盖创建自定义操作栏,或使用新的 组件扩展默认操作栏。iframe 样式注入:访问 iframe 文档以直接注入样式,或通过新的 iframe 覆盖进行其他更改。我们还为常见的情感用例引入了情感缓存插件。历史注入:通过一系列新的api注入撤消/重做历史对操作做出反应:对 puck 通过 onaction 回调调度的操作做出反应。可选字段:可选属性不再需要在字段中定义,因为它们可以被定义

立即升级或开始使用:

npx create-puck-app@latest

权限

权限使您能够在全局范围内、基于每个组件或动态地切换核心 puck 功能。 非常感谢@xaviemirmon 为此所做的努力。

export function editor() {  return (      );}

操作栏覆盖

新的 actionbar 覆盖使您能够创建自定义操作栏覆盖,或使用 组件扩展默认操作栏:

const overrides = {  actionbar: ({ children }) => (          {/* render default actions */}      {children}      {/* render new actions */}               console.log("clicked!")}>          ★                    ),};

iframe样式注入

iframe 覆盖使您能够访问 iframe 文档,从而可以将样式注入到头部:

const overrides = {  iframe: ({ children, document }) => {    useeffect(() => {      if (document) {        document.body.setattribute("style", "background: hotpink;");      }    }, [document]);    return {children}

新的情感缓存插件使用此 api 在 iframe 内创建情感缓存,使 puck 易于与任何基于情感的组件库一起使用。

历史注射

使用新的历史记录注入api通过initialhistory属性提供您自己的撤消/重做历史记录,或者通过usepuck().history中的sethistories和sethistoryindex函数动态提供您自己的撤消/重做历史记录。

const historystate = {  data: {    root: {      props: { title: "my history" },    },  },};export function editor() {  return (      );}

对动作作出反应

onaction api 使您能够在 puck 的内部操作被调度时做出反应:

export function Editor() {  return (     {        if (action.type === "insert") {          console.log("New component was inserted", appState);        }      }}    />  );}

重大变化

历史数据现在是历史状态

使用 usepuck 历史记录 api 时,数据现在重命名为状态。

history.id 现在是可选的(typescript)

使用 usepuck 历史记录 api 时,id 现在是可选的。 puck 总是会生成一个 id,但 typescript 可能会抱怨。

当解析器中为空时,lastdata 现在返回为 null,而不是 {}

当使用为resolvedata或resolvefields函数提供的lastdata选项时,并且没有以前的数据,lastdata现在将为null而不是{}。

完整变更日志

特征

添加 actionbar 覆盖以添加组件控件 (48ec0d7)添加自动 rsc 导出,替换 /rsc 捆绑包 (d21eba6)将 isdisabled 属性添加到 drawer.item (cad95b8)为 usepuck hook 添加泛型类型 (01703a9)添加 iframe 覆盖以进行样式注入 (7cac376)将initialhistory属性添加到puck (54b5a87)添加 onaction api 来跟踪状态变化并做出反应 (c7007ac)添加权限api (a43914d)添加用于注入情感缓存的插件(f8a88b9)添加resolvepermissions api (f0655f0)将 waitforstyles 选项添加到 iframe 配置 (bc81d9c)插入新项目时调用resolvedata (3298831)不要强制指定可选属性的字段 (5a219ef)导出 actionbar 组件以用于覆盖 (04fd6c5)从用户配置推断数据类型 (50045bb)在历史记录类型中将 id 设为可选(重大更改)(d917229)提供es模块构建(ff9076b)将history.data重命名为history.state(重大变更)(b09244c)如果 iframe 加载时间超过 500 毫秒则显示微调器 (cfecf54)简化 usepuck 历史 api (c8b2807)将“下一个”配方升级到 typescript@5.5.4 (60fe631)

错误修复

将图标添加到下一个配方中以防止 puck 404 (2c52d27)将缺少的只读状态添加到外部字段 (bf1449d)始终记录组件插入历史记录 (88c5ab6)不要在下一个配方中缓存/编辑路线(94f16b2)如果在表单 (f761e5f) 中使用 puck,则不要提交按钮确保演示类型满足 typescript@5 (958dc25)导出缺少的插件类型 (eb42734)修复配置中缺少数据组件时崩溃的问题 (0daf478)提高某些框架的 iframe css 弹性,例如 mantine (538cb05)使配置和数据类型更加健壮(6bcf555)在某些框架中使用插件时防止无限循环 (3870871)防止 tailwind 与视口缩放选择发生冲突 (9151255)删除混音配方中的主体边缘(0898b26)通过应用状态更改时调整视口大小 (14419ec)在相同类型的项目之间切换时解析字段 (a3518ca)在解析器中将 lastdata 返回为 null,而不是空对象(重大更改)(648eb92)如果未加载标题分析器样式则显示警告 (4e7110b)在 fieldlabel 标签中使用正确的颜色 (b0469a1)

新贡献者

@mkilpatrick 在 https://github.com/measuredco/puck/pull/505 中做出了第一个贡献@nova4u 在 https://github.com/measuredco/puck/pull/538 中做出了第一个贡献@antonmalyavkin 在 https://github.com/measuredco/puck/pull/585 中做出了第一个贡献

完整变更日志:https://github.com/measuredco/puck/compare/v0.15.0...v0.16.0

以上就是Puck vPermissions的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1491517.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 14:01:53
下一篇 2025年12月19日 14:02:04

相关推荐

  • 如何实现类似横向U型步骤条的组件或 CSS 样式?

    寻找类似的横向u型步骤条组件 许多开发人员都在寻求具有类似功能的横向u型步骤条组件。以下是这些问题的答案和对应的解决方案: 问题:有哪些与横向u型步骤条相似的组件或 css 实现? 答案:有一个类似的组件,如下图所示: 立即学习“前端免费学习笔记(深入)”; [图片:类似的横向u型步骤条组件示例] …

    2025年12月19日
    000
  • 如何用CSS实现横向U型步骤条?

    探索与横向u型步骤条相似的组件或css 横向u型步骤条是一种流行的设计元素,用于可视化流程并指导用户。如果您正在寻找类似的组件或css实现,以下是一些可供考虑的选项: 组件 seven segment display:一种数字显示组件,其外观类似于横向u型步骤条。led slides rule:一种…

    2025年12月19日
    000
  • 雇用 WordPress 开发人员:创建丰富网站的整个过程

    每家公司都需要拥有在线业务才能领先。因此,无论是小型企业、电子商务网站还是博客,网站都是品牌的面孔。此外,实际上,全球使用的最流行的 cms 占其网站的 40% 以上。要获得此优势,您需要聘请经验丰富的 wordpress 开发人员。以下指南介绍了您为何需要雇用 wordpress 开发人员、如何以…

    2025年12月19日
    000
  • 横向U型步骤条:有哪些替代组件或CSS实现?

    横向u型步骤条的替代组件或css实现 对于需要创建横向u型步骤条的需求,可以使用以下替代组件或css实现: 替代组件: semantic ui step:提供了丰富的步骤条功能,包括横向u型布局。bulma steps:另一个流行的步骤条库,支持多种布局,包括横向u型。vuetify progres…

    2025年12月19日
    000
  • 如何使用 CSS Flexbox 实现横向 U 型步骤条效果?

    横向u型步骤条的替代组件 想要实现横向u型步骤条效果,可以使用类似的组件或 css 实现。一种替代组件是 css flexbox,可以轻松创建水平排列的元素。 css flexbox 实现 使用 flexbox,你可以创建如下代码: .steps { display: flex; justify-c…

    2025年12月19日
    000
  • 原生JS树形插件有哪些推荐?

    原生JS树形插件推荐 在编写原生JavaScript应用程序时,有时我们需要创建树形结构来组织和显示复杂的数据。为此,有许多出色的树形插件可供选择。 jstree jstree是一个功能强大的树形插件,满足了您提出的所有要求: 支持搜索自定义图标显示成员头像 它还提供了大量的附加功能,例如拖放、节点…

    2025年12月19日
    000
  • MaweJS:花盆编辑器

    嗨! 即将宣布一个针对作家的编辑器项目。它是我 15 年写作和编码编辑器的一代之一。 https://github.com/mkoskim/mawejs 正在为您的故事寻找编辑吗? Notepad、Word 和 Googledocs 太少,而 Scrivener、Manuskript 和 yWrit…

    2025年12月19日
    000
  • 流畅的视频滑动 Web 应用程序 — 开源

    刚刚开源了一个项目:一个视频滑动源,类似于您在社交媒体应用程序上看到的内容,但它完全基于网络,允许它在任何网络域上提供服务。结果非常顺利,尤其是在手机上。您可以在 www.swipetor.com 查看 github 链接和演示 虽然社交媒体视频刷屏在各大平台上变得越来越流行,但通常很难获得量身定制…

    好文分享 2025年12月19日
    000
  • 仅使用 HTML 和 CSS 的垂直卡片滑动动画

    想仅用 HTML 和 CSS 为您的网站创建炫酷、时尚的垂直卡片滑动动画吗?没有 JavaScript 的混乱,给您的网站带来一丝优雅!让我们深入研究这个综合指南,我们将探索如何创建一个时尚的垂直卡片滑块,具有流畅的动画,根本不需要 JavaScript。那么,让我们体验一下这些流畅的动画和现代设计…

    2025年12月19日
    000
  • 如何比较(差异)两个对象

    javascript 中的对象比较 javascript 中的对象比较看似复杂。虽然比较数字和字符串等原始值很简单,但比较对象可能会导致意想不到的结果。让我们探索不同的对象比较方法,并构建一个强大的解决方案来检测对象之间的变化。 直接比较的陷阱 当开发人员第一次遇到 javascript 中的对象比…

    2025年12月19日
    000
  • js如何定义样式

    在 JavaScript 中,定义样式可以使用内联样式或 CSSOM(文档对象模型)。内联样式适合一次性修改,而 CSSOM 更适合动态、可重复使用的修改。CSSOM 操作步骤包括获取元素样式对象、设置或获取样式属性、添加 CSS 规则。具体场景中选择哪种方法取决于修改需求和适用性。 如何在 Jav…

    好文分享 2025年12月19日
    000
  • js如何抓取网页

    JavaScript提供多种方法抓取网页数据,包括:DOM解析(Document Object Model):使用DOM接口提取元素和内容。正则表达式:使用模式匹配从文本中提取数据。AJAX(XMLHttpRequest):与服务器通信,在不刷新网页的情况下获取数据。第三方库:例如Cheerio、J…

    2025年12月19日
    000
  • 如何分析js特效

    通过以下步骤分析 JS 特效:识别元素。检查 CSS 样式。分析 JS 代码。确定事件触发器。分析动态样式。检查时间函数。调试问题。自定义特效。 如何分析 JS 特效 简介 JavaScript 特效通过动态地修改元素的属性和样式,为 웹页面增添了交互性和视觉效果。分析 JS 特效对于理解其工作原理…

    2025年12月19日
    000
  • js如何获取边框

    使用 JavaScript 获取元素边框属性的方法:获取元素引用使用 getComputedStyle() 获取计算样式根据不同的边框属性(如 border-top-width)获取具体属性值 如何使用 JavaScript 获取边框 在 JavaScript 中,您可以使用 getComputed…

    2025年12月19日
    000
  • js如何控制csd

    JavaScript 可通过加载、解析、操纵、导出 CSD 文件或使用库来控制 CSD。 如何用 JavaScript 控制 CSD CSD(Cutting Sheet Data)是一种用于描述裁切、冲压和弯曲钣金零件的 XML 格式。JavaScript 可以通过以下方法来控制 CSD: 1. 加…

    2025年12月19日
    000
  • Hacktoberfest 对 ZTM-Quest 的贡献

    介绍 对于我对 hacktoberfest 的第三次贡献,我发现了一个我从未想过会贡献给我的存储库,这个存储库特别以 javascript 中的 2d 游戏开发为中心,因为我已经掌握了 javascript 的工作知识,潜水和探索代码库不会成为问题,因此我选择了此存储库中的问题之一来做出贡献。 zt…

    2025年12月19日
    000
  • js字符串如何查重

    JS 字符串查重方法包括:使用 Set 数据结构去除重复项,计算 Set 长度。使用 Map 数据结构存储键值对,检查是否存在重复键。使用正则表达式查找特定模式的字符串,计算匹配长度。使用外部库(如 lodash.uniq())去除重复项。 JS 字符串查重 如何查重? 查重 JavaScript …

    2025年12月19日
    000
  • js中如何一键全选

    使用 JavaScript 一键全选文本的方法有多种:原生 JavaScript:设置 selectionStart 和 selectionEnd 属性为文本长度。JavaScript 库(如 jQuery):使用 select() 方法。HTML select 属性:在文本元素中指定 select…

    2025年12月19日
    000
  • 响应式网站在 4 年内表现如何?

    概述 到 2024 年,移动设备将占所有互联网流量的一半以上。对于许多人来说,笔记本电脑或台式电脑不再是必需的工具,他们越来越多地使用智能手机和平板电脑来探索网络。现在,无论是生产力、社交媒体还是电子商务,互联网都是移动优先的。由于这一变化,响应式网页设计对于确保网站在各种屏幕和设备上正常运行和美观…

    2025年12月19日
    000
  • js如何打开网页

    在 JavaScript 中,可以使用 window.open() 函数直接打开网页,其中 URL 参数指定目标网页地址,_blank(默认)在新选项卡或窗口打开,_self 在当前窗口打开,_parent 在父窗口打开。此外,可以通过设置 width、height、features 参数自定义新窗…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信