From 3db213ecec0b2a2203507a74fbf502d2e5d4e62a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Apr 2026 10:48:57 +0000 Subject: [PATCH 1/2] Initial plan From 61f95809a63204e1fec0132118bb968ec19f5d9d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Apr 2026 11:00:36 +0000 Subject: [PATCH 2/2] feat: update PrimeVue to 4.5.5 and refresh patch for portal/toast behavior Agent-Logs-Url: https://github.com/effect-app/patchman/sessions/d2e80d6f-662e-4466-b5b5-4590c39f80bd Co-authored-by: patroza <42661+patroza@users.noreply.github.com> --- package.json | 6 +- patches/primevue@3.49.1.patch | 614 ---------------------------------- patches/primevue@4.5.5.patch | 201 +++++++++++ pnpm-lock.yaml | 71 +++- 4 files changed, 264 insertions(+), 628 deletions(-) delete mode 100644 patches/primevue@3.49.1.patch create mode 100644 patches/primevue@4.5.5.patch diff --git a/package.json b/package.json index 235a1e7..5c5f304 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "effect": "4.0.0-beta.40", "eslint-plugin-codegen": "^0.17.0", "fast-check": "^3.23.2", - "primevue": "3.49.1", + "primevue": "4.5.5", "ts-plugin-sort-import-suggestions": "^1.0.4", "tsx": "^4.21.0", "typescript": "~6.0.2", @@ -43,7 +43,7 @@ "@phaphoso/eslint-plugin-dprint@0.5.2": "patches/@phaphoso__eslint-plugin-dprint@0.5.2.patch", "date-fns@2.30.0": "patches/date-fns@2.30.0.patch", "@hebilicious/vue-query-nuxt@0.3.0": "patches/@hebilicious__vue-query-nuxt@0.3.0.patch", - "primevue@3.49.1": "patches/primevue@3.49.1.patch", + "primevue@4.5.5": "patches/primevue@4.5.5.patch", "@fp-ts/optic": "patches/@fp-ts__optic.patch", "typescript": "patches/typescript.patch", "madge": "patches/madge.patch", @@ -59,4 +59,4 @@ "patch:dir": "./patch-package-dir.sh", "patch:query-core": "./patch-query-core.sh" } -} \ No newline at end of file +} diff --git a/patches/primevue@3.49.1.patch b/patches/primevue@3.49.1.patch deleted file mode 100644 index 7e6d73a..0000000 --- a/patches/primevue@3.49.1.patch +++ /dev/null @@ -1,614 +0,0 @@ -diff --git a/core/core.js b/core/core.js -index 32bd131ded98e721a788b061b8d87fcfb1b6f6ea..331c512d413528ee97f62c86ba6fbca14fa1e85e 100644 ---- a/core/core.js -+++ b/core/core.js -@@ -6902,9 +6902,10 @@ this.primevue.ripple = (function (utils, BaseDirective, RippleStyle) { - })(primevue.utils, primevue.basedirective, primevue.ripple.style); - - this.primevue = this.primevue || {}; --this.primevue.portal = (function (utils, vue) { -+this.primevue.portal = (function (exports, utils, vue) { - 'use strict'; - -+ var globalAppendTo = vue.ref(); - var script = { - name: 'Portal', - props: { -@@ -6926,6 +6927,10 @@ this.primevue.portal = (function (utils, vue) { - this.mounted = utils.DomHandler.isClient(); - }, - computed: { -+ globalOrAppendTo: function globalOrAppendTo() { -+ var _globalAppendTo$value; -+ return this.appendTo === 'body' ? (_globalAppendTo$value = globalAppendTo.value) !== null && _globalAppendTo$value !== void 0 ? _globalAppendTo$value : this.appendTo : this.appendTo; -+ }, - inline: function inline() { - return this.disabled || this.appendTo === 'self'; - } -@@ -6937,15 +6942,20 @@ this.primevue.portal = (function (utils, vue) { - key: 0 - }) : $data.mounted ? (vue.openBlock(), vue.createBlock(vue.Teleport, { - key: 1, -- to: $props.appendTo -+ to: $options.globalOrAppendTo - }, [vue.renderSlot(_ctx.$slots, "default")], 8, ["to"])) : vue.createCommentVNode("", true); - } - - script.render = render; - -- return script; -+ exports["default"] = script; -+ exports.globalAppendTo = globalAppendTo; -+ -+ Object.defineProperty(exports, '__esModule', { value: true }); - --})(primevue.utils, Vue); -+ return exports; -+ -+})({}, primevue.utils, Vue); - - this.primevue = this.primevue || {}; - this.primevue.basecomponent = (function (BaseStyle, utils, vue, usestyle) { -diff --git a/core/core.min.js b/core/core.min.js -index 760975871f01fb5c4463a56aed0de9c4bab89330..7c8a3a64343ac163b4fd911574509f64034d48eb 100644 ---- a/core/core.min.js -+++ b/core/core.min.js -@@ -224,7 +224,7 @@ this.primevue=this.primevue||{},this.primevue.basedirective=function(t,e,n){"use - - this.primevue=this.primevue||{},this.primevue.ripple=function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(t,e){if(t){if("string"==typeof t)return d(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(t,e):void 0}}function a(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function s(t){if(Array.isArray(t))return d(t)}function d(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:{}))}});function v(t){return v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},v(t)}function d(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function f(t,e){return b(t)||m(t,e)||g(t,e)||h()}function h(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(t,e){if(t){if("string"==typeof t)return y(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(t,e):void 0}}function y(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n1?i-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:{},i=e.ObjectUtils.toFlatCase(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").split("."),o=i.shift();return o?e.ObjectUtils.isObject(t)?this._getOptionValue(e.ObjectUtils.getItemValue(t[Object.keys(t).find((function(t){return e.ObjectUtils.toFlatCase(t)===o}))||""],n),i.join("."),n):void 0:e.ObjectUtils.getItemValue(t,n)},_getPTValue:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=/./g.test(n)&&!!i[n.split(".")[0]],l=this._getPropValue("ptOptions")||(null===(t=this.$config)||void 0===t?void 0:t.ptOptions)||{},s=l.mergeSections,u=void 0===s||s,a=l.mergeProps,c=void 0!==a&&a,p=o?r?this._useGlobalPT(this._getPTClassValue,n,i):this._useDefaultPT(this._getPTClassValue,n,i):void 0,v=r?void 0:this._getPTSelf(e,this._getPTClassValue,n,P(P({},i),{},{global:p||{}})),d=this._getPTDatasets(n);return u||!u&&v?c?this._mergeProps(c,p,v,d):P(P(P({},p),v),d):P(P({},v),d)},_getPTSelf:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length,i=new Array(e>1?e-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:"",o="data-pc-",r="root"===i&&e.ObjectUtils.isNotEmpty(null===(t=this.pt)||void 0===t?void 0:t["data-pc-section"]);return"transition"!==i&&P(P({},"root"===i&&P(_({},"".concat(o,"name"),e.ObjectUtils.toFlatCase(r?null===(n=this.pt)||void 0===n?void 0:n["data-pc-section"]:this.$.type.name)),r&&_({},"".concat(o,"extend"),e.ObjectUtils.toFlatCase(this.$.type.name)))),{},_({},"".concat(o,"section"),e.ObjectUtils.toFlatCase(i)))},_getPTClassValue:function(){var t=this._getOptionValue.apply(this,arguments);return e.ObjectUtils.isString(t)||e.ObjectUtils.isArray(t)?{class:t}:t},_getPT:function(t){var n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=arguments.length>2?arguments[2]:void 0,r=function(t){var r,l=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=o?o(t):t,u=e.ObjectUtils.toFlatCase(i),a=e.ObjectUtils.toFlatCase(n.$name);return null!==(r=l?u!==a?null==s?void 0:s[u]:void 0:null==s?void 0:s[u])&&void 0!==r?r:s};return null!=t&&t.hasOwnProperty("_usept")?{_usept:t._usept,originalValue:r(t.originalValue),value:r(t.value)}:r(t,!0)},_usePT:function(t,n,i,o){var r=function(t){return n(t,i,o)};if(null!=t&&t.hasOwnProperty("_usept")){var l,s=t._usept||(null===(l=this.$config)||void 0===l?void 0:l.ptOptions)||{},u=s.mergeSections,a=void 0===u||u,c=s.mergeProps,p=void 0!==c&&c,v=r(t.originalValue),d=r(t.value);if(void 0===v&&void 0===d)return;return e.ObjectUtils.isString(d)?d:e.ObjectUtils.isString(v)?v:a||!a&&d?p?this._mergeProps(p,v,d):P(P({},v),d):d}return r(t)},_useGlobalPT:function(t,e,n){return this._usePT(this.globalPT,t,e,n)},_useDefaultPT:function(t,e,n){return this._usePT(this.defaultPT,t,e,n)},ptm:function(){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._getPTValue(this.pt,arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",P(P({},this.$params),t))},ptmi:function(){return n.mergeProps(this.$_attrsNoPT,this.ptm(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}))},ptmo:function(){return this._getPTValue(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",P({instance:this},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}),!1)},cx:function(){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.isUnstyled?void 0:this._getOptionValue(this.$style.classes,arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",P(P({},this.$params),t))},sx:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!(arguments.length>1&&void 0!==arguments[1])||arguments[1]){var n=this._getOptionValue(this.$style.inlineStyles,t,P(P({},this.$params),e));return[this._getOptionValue(p.inlineStyles,t,P(P({},this.$params),e)),n]}}},computed:{globalPT:function(){var t,n=this;return this._getPT(null===(t=this.$config)||void 0===t?void 0:t.pt,void 0,(function(t){return e.ObjectUtils.getItemValue(t,{instance:n})}))},defaultPT:function(){var t,n=this;return this._getPT(null===(t=this.$config)||void 0===t?void 0:t.pt,void 0,(function(t){return n._getOptionValue(t,n.$name,P({},n.$params))||e.ObjectUtils.getItemValue(t,P({},n.$params))}))},isUnstyled:function(){var t;return void 0!==this.unstyled?this.unstyled:null===(t=this.$config)||void 0===t?void 0:t.unstyled},$params:function(){var t=this._getHostInstance(this)||this.$parent;return{instance:this,props:this.$props,state:this.$data,attrs:this.$attrs,parent:{instance:t,props:null==t?void 0:t.$props,state:null==t?void 0:t.$data,attrs:null==t?void 0:t.$attrs},parentInstance:t}},$style:function(){return P(P({classes:void 0,inlineStyles:void 0,loadStyle:function(){},loadCustomStyle:function(){}},(this._getHostInstance(this)||{}).$style),this.$options.style)},$config:function(){var t;return null===(t=this.$primevue)||void 0===t?void 0:t.config},$name:function(){return this.$options.hostName||this.$.type.name},$_attrsPT:function(){return Object.entries(this.$attrs||{}).filter((function(t){var e=f(t,1)[0];return null==e?void 0:e.startsWith("pt:")})).reduce((function(t,e){var n,i=f(e,2),o=i[1],r=i[0].split(":"),l=(b(n=r)||d(n)||g(n)||h()).slice(1);return null==l||l.reduce((function(t,e,n,i){return!t[e]&&(t[e]=n===i.length-1?o:{}),t[e]}),t),t}),{})},$_attrsNoPT:function(){return Object.entries(this.$attrs||{}).filter((function(t){var e=f(t,1)[0];return!(null!=e&&e.startsWith("pt:"))})).reduce((function(t,e){var n=f(e,2);return t[n[0]]=n[1],t}),{})}}};return j}(primevue.base.style,primevue.utils,Vue,primevue.usestyle); - -diff --git a/package.json b/package.json -index ccc3f0783eef2e7bda9764f9ae57df5eb5e8aeda..aca21aa5b308a7c61a04df21fa761336daae6317 100644 ---- a/package.json -+++ b/package.json -@@ -1,39 +1,39 @@ - { -- "name": "primevue", -- "version": "3.49.1", -- "private": false, -- "author": "PrimeTek Informatics", -- "description": "PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock, which has 370+ ready to use UI blocks to build spectacular applications in no time.", -- "homepage": "https://primevue.org/", -- "repository": { -- "type": "git", -- "url": "https://github.com/primefaces/primevue.git" -- }, -- "license": "MIT", -- "bugs": { -- "url": "https://github.com/primefaces/primevue/issues" -- }, -- "keywords": [ -- "primevue", -- "vue", -- "vue.js", -- "vue2", -- "vue3", -- "ui library", -- "component library", -- "material", -- "bootstrap", -- "fluent", -- "tailwind", -- "unstyled", -- "passthrough" -- ], -- "web-types": "./web-types.json", -- "vetur": { -- "tags": "./vetur-tags.json", -- "attributes": "./vetur-attributes.json" -- }, -- "peerDependencies": { -- "vue": "^3.0.0" -- } -+ "name": "primevue", -+ "version": "3.49.1", -+ "private": false, -+ "author": "PrimeTek Informatics", -+ "description": "PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock, which has 370+ ready to use UI blocks to build spectacular applications in no time.", -+ "homepage": "https://primevue.org/", -+ "repository": { -+ "type": "git", -+ "url": "https://github.com/primefaces/primevue.git" -+ }, -+ "license": "MIT", -+ "bugs": { -+ "url": "https://github.com/primefaces/primevue/issues" -+ }, -+ "keywords": [ -+ "primevue", -+ "vue", -+ "vue.js", -+ "vue2", -+ "vue3", -+ "ui library", -+ "component library", -+ "material", -+ "bootstrap", -+ "fluent", -+ "tailwind", -+ "unstyled", -+ "passthrough" -+ ], -+ "web-types": "./web-types.json", -+ "vetur": { -+ "tags": "./vetur-tags.json", -+ "attributes": "./vetur-attributes.json" -+ }, -+ "peerDependencies": { -+ "vue": "^3.0.0" -+ } - } -diff --git a/portal/Portal.d.ts b/portal/Portal.d.ts -index 9d5c7434a4347b5b24b1f3eeae95fe613fdcc299..b77ddfce4843e0613791f21622880c20fd04ed95 100644 ---- a/portal/Portal.d.ts -+++ b/portal/Portal.d.ts -@@ -1,4 +1,4 @@ --import { VNode } from 'vue'; -+import { Ref, VNode } from 'vue'; - import { ClassComponent, GlobalComponentConstructor, HintedString } from '../ts-helpers'; - - type PortalAppendToType = HintedString<'body' | 'self'> | undefined | HTMLElement; -@@ -26,6 +26,12 @@ export interface PortalSlots { - - export declare type PortalEmits = {}; - -+/** -+ * Provides a way to globally set the appendTo value for all Portals, used if the appendTo prop is set to 'body' (default). -+ * It is useful for e.g when you are building web components and you need to portal into another web component on the host page to inherit styles. -+ */ -+export declare const globalAppendTo: Ref; -+ - declare class Portal extends ClassComponent {} - - declare module '@vue/runtime-core' { -diff --git a/portal/Portal.vue b/portal/Portal.vue -index e80660f4ca32876a09e9e628ec61f99c31613086..b674fb545c5ddb1ebbcf36f64eb8df08fe752bd5 100644 ---- a/portal/Portal.vue -+++ b/portal/Portal.vue -@@ -3,7 +3,7 @@ - - - -@@ -11,6 +11,9 @@ - -