o(c,n)))break e;e[r]=c,e[s]=n,r=s}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var l=performance;t.unstable_now=function(){return l.now()}}else{var i=Date,u=i.now();t.unstable_now=function(){return i.now()-u}}var s=[],c=[],f=1,d=null,p=3,h=!1,m=!1,v=!1,g="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,b="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)a(c);else{if(!(t.startTime<=e))break;a(c),t.sortIndex=t.expirationTime,n(s,t)}t=r(c)}}function k(e){if(v=!1,w(e),!m)if(null!==r(s))m=!0,z(x);else{var t=r(c);null!==t&&R(k,t.startTime-e)}}function x(e,n){m=!1,v&&(v=!1,y(_),_=-1),h=!0;var o=p;try{for(w(n),d=r(s);null!==d&&(!(d.expirationTime>n)||e&&!O());){var l=d.callback;if("function"==typeof l){d.callback=null,p=d.priorityLevel;var i=l(d.expirationTime<=n);n=t.unstable_now(),"function"==typeof i?d.callback=i:d===r(s)&&a(s),w(n)}else a(s);d=r(s)}if(null!==d)var u=!0;else{var f=r(c);null!==f&&R(k,f.startTime-n),u=!1}return u}finally{d=null,p=o,h=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,E=!1,C=null,_=-1,P=5,N=-1;function O(){return!(t.unstable_now()-Ne||125l?(e.sortIndex=o,n(c,e),null===r(s)&&e===r(c)&&(v?(y(_),_=-1):v=!0,R(k,o-l))):(e.sortIndex=i,n(s,e),m||h||(m=!0,z(x))),e},t.unstable_shouldYield=O,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},5655:(e,t,n)=>{"use strict";e.exports=n(2197)},6929:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{Banner:function(){return i},default:function(){return u}});const r=o(n(9497)),a=n(3717);function o(e){return e&&e.__esModule?e:{default:e}}n(4047);const l="banner",i=({alignIcon:e="right",children:t,className:n,icon:o,onClick:i,to:u,type:s="default"})=>{const c=[l,`${l}--type-${s}`,n&&n,u&&`${l}--has-link`,(u||i)&&`${l}--has-action`,o&&`${l}--has-icon`,o&&`${l}--align-icon-${e}`].filter(Boolean).join(" ");let f="div";return i&&!u&&(f="button"),u&&(f=a.Link),r.default.createElement(f,{className:c,onClick:i,to:u||void 0},o&&"left"===e&&r.default.createElement(r.default.Fragment,null,o),r.default.createElement("span",{className:`${l}__content`},t),o&&"right"===e&&r.default.createElement(r.default.Fragment,null,o))},u=i},8564:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return y}});const r=h(n(9497)),a=n(3717),o=d(n(4795)),l=d(n(8620)),i=d(n(9102)),u=d(n(4439)),s=d(n(5254)),c=d(n(3763)),f=d(n(6623));function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(r,o,l):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}n(4355);const m={chevron:o.default,edit:l.default,link:i.default,plus:u.default,swap:s.default,x:c.default},v="btn",g=({children:e,icon:t,showTooltip:n,tooltip:a})=>{const o=m[t];return r.default.createElement(r.Fragment,null,a&&r.default.createElement(f.default,{className:`${v}__tooltip`,show:n},a),r.default.createElement("span",{className:`${v}__content`},e&&r.default.createElement("span",{className:`${v}__label`},e),t&&r.default.createElement("span",{className:`${v}__icon`},(0,r.isValidElement)(t)&&t,o&&r.default.createElement(o,null))))},y=(0,r.forwardRef)(((e,t)=>{const{id:n,"aria-label":o,buttonStyle:l="primary",children:i,className:u,disabled:s,el:c="button",icon:f,iconPosition:d="right",iconStyle:p="without-border",newTab:h,onClick:m,round:y,size:b="medium",to:w,tooltip:k,type:x="button",url:S}=e,[E,C]=r.default.useState(!1);const _={id:n,"aria-disabled":s,"aria-label":o,className:[v,u&&u,l&&`${v}--style-${l}`,f&&`${v}--icon`,p&&`${v}--icon-style-${p}`,f&&!i&&`${v}--icon-only`,s&&`${v}--disabled`,y&&`${v}--round`,b&&`${v}--size-${b}`,d&&`${v}--icon-position-${d}`,k&&`${v}--has-tooltip`].filter(Boolean).join(" "),disabled:s,onClick:s?void 0:function(e){C(!1),"submit"!==x&&m&&e.preventDefault(),m&&m(e)},onMouseEnter:k?()=>C(!0):void 0,onMouseLeave:k?()=>C(!1):void 0,rel:h?"noopener noreferrer":void 0,target:h?"_blank":void 0,type:x};switch(c){case"link":return r.default.createElement(a.Link,{..._,to:w||S},r.default.createElement(g,{icon:f,showTooltip:E,tooltip:k},i));case"anchor":return r.default.createElement("a",{..._,href:S,ref:t},r.default.createElement(g,{icon:f,showTooltip:E,tooltip:k},i));default:const e=c;return r.default.createElement(e,{ref:t,type:"submit",..._},r.default.createElement(g,{icon:f,showTooltip:E,tooltip:k},i))}}))},8254:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useDraggableSortable",{enumerable:!0,get:function(){return a}});const r=n(9509),a=e=>{const{id:t,disabled:n}=e,{attributes:a,isDragging:o,listeners:l,setNodeRef:i,transform:u}=(0,r.useSortable)({id:t,disabled:n});return{attributes:{...a,style:{cursor:o?"grabbing":"grab"}},isDragging:o,listeners:l,setNodeRef:i,transform:u&&`translate3d(${u.x}px, ${u.y}px, 0)`}}},2946:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return c}});const r=l(n(9497)),a=n(3717),o=n(8254);function l(e){return e&&e.__esModule?e:{default:e}}n(1997);const i="pill",u=e=>{const{id:t,className:n}=e,{attributes:a,isDragging:l,listeners:u,setNodeRef:c,transform:f}=(0,o.useDraggableSortable)({id:t});return r.default.createElement(s,{...e,className:[l&&`${i}--is-dragging`,n].filter(Boolean).join(" "),elementProps:{...u,...a,ref:c,style:{transform:f}}})},s=e=>{const{alignIcon:t="right","aria-checked":n,"aria-controls":o,"aria-expanded":l,"aria-label":u,children:s,className:c,draggable:f,elementProps:d,icon:p,onClick:h,pillStyle:m="light",rounded:v,to:g}=e,y=[i,`${i}--style-${m}`,c&&c,g&&`${i}--has-link`,(g||h)&&`${i}--has-action`,p&&`${i}--has-icon`,p&&`${i}--align-icon-${t}`,f&&`${i}--draggable`,v&&`${i}--rounded`].filter(Boolean).join(" ");let b="div";return h&&!g&&(b="button"),g&&(b=a.Link),r.default.createElement(b,{...d,"aria-checked":n,"aria-controls":o,"aria-expanded":l,"aria-label":u,className:y,onClick:h,to:g||void 0,type:"button"===b?"button":void 0},p&&"left"===t&&r.default.createElement("span",{className:`${i}__icon`},p),r.default.createElement("span",{className:`${i}__label`},s),p&&"right"===t&&r.default.createElement("span",{className:`${i}__icon`},p))},c=e=>{const{draggable:t}=e;return t?r.default.createElement(u,e):r.default.createElement(s,e)}},2377:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PopupTrigger",{enumerable:!0,get:function(){return l}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(9772);const o="popup-button",l=e=>{const{active:t,button:n,buttonType:a,className:l,setActive:i}=e,u=[o,l,`${o}--${a}`].filter(Boolean).join(" "),s=()=>{i(!t)};return"none"===a?null:"custom"===a?r.default.createElement("div",{className:u,onClick:s,onKeyDown:e=>{"Enter"===e.key&&s()},role:"button",tabIndex:0},n):r.default.createElement("button",{className:u,onClick:()=>i(!t),tabIndex:0,type:"button"},n)}},3567:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return f}});const r=n(9130),a=s(n(9497)),o=i(n(1593)),l=n(2377);function i(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function s(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(r,o,l):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}n(3710);const c="popup",f=e=>{const{boundingRef:t,button:n,buttonClassName:i,buttonType:u="default",caret:s=!0,children:f,className:d,forceOpen:p,horizontalAlign:h="left",initActive:m=!1,onToggleOpen:v,render:g,showOnHover:y=!1,showScrollbar:b=!1,size:w="medium",verticalAlign:k="top"}=e,{height:x,width:S}=(0,r.useWindowInfo)(),[E,C]=(0,o.default)({root:t?.current||null,rootMargin:"-100px 0px 0px 0px",threshold:1}),_=(0,a.useRef)(null),[P,N]=(0,a.useState)(m),[O,T]=(0,a.useState)(k),[M,L]=(0,a.useState)(h),z=(0,a.useCallback)((({horizontal:e=!1,vertical:n=!1})=>{if(_.current){const r=_.current.getBoundingClientRect(),{bottom:a,left:o,right:l,top:i}=r;let u=100,s=document.documentElement.clientWidth,c=document.documentElement.clientHeight,f=0;t?.current&&({bottom:c,left:f,right:s,top:u}=t.current.getBoundingClientRect()),e&&(l>s&&o>f?L("right"):oc&&i>u&&T("top"))}}),[t]),R=(0,a.useCallback)((e=>{_.current.contains(e.target)||N(!1)}),[_]);(0,a.useEffect)((()=>{z({horizontal:!0})}),[C,z,S]),(0,a.useEffect)((()=>{z({vertical:!0})}),[C,z,x]),(0,a.useEffect)((()=>("function"==typeof v&&v(P),P?document.addEventListener("mousedown",R):document.removeEventListener("mousedown",R),()=>{document.removeEventListener("mousedown",R)})),[P,R,v]),(0,a.useEffect)((()=>{N(p)}),[p]);const D=[c,d,`${c}--size-${w}`,`${c}--v-align-${O}`,`${c}--h-align-${M}`,P&&`${c}--active`,b&&`${c}--show-scrollbar`].filter(Boolean).join(" ");return a.default.createElement("div",{className:D},a.default.createElement("div",{className:`${c}__trigger-wrap`},y?a.default.createElement("div",{className:`${c}__on-hover-watch`,onMouseEnter:()=>N(!0),onMouseLeave:()=>N(!1)},a.default.createElement(l.PopupTrigger,{active:P,button:n,buttonType:u,className:i,setActive:N})):a.default.createElement(l.PopupTrigger,{active:P,button:n,buttonType:u,className:i,setActive:N})),a.default.createElement("div",{className:`${c}__content`,ref:_},a.default.createElement("div",{className:`${c}__hide-scrollbar`,ref:E},a.default.createElement("div",{className:`${c}__scroll-container`},a.default.createElement("div",{className:`${c}__scroll-content`},g&&g({close:()=>N(!1)}),f&&f))),s&&a.default.createElement("div",{className:`${c}__caret`})))}},6623:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});const r=i(n(9497)),a=o(n(1593));function o(e){return e&&e.__esModule?e:{default:e}}function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function i(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}n(2286);const u=e=>{const{alignCaret:t="center",boundingRef:n,children:o,className:l,delay:i=350,show:u=!0}=e,[s,c]=r.default.useState(u),[f,d]=r.default.useState("top"),p=e=>"string"==typeof e?e:"",[h,m]=(0,a.default)({root:n?.current||null,rootMargin:"-145px 0px 0px 100px",threshold:0});return(0,r.useEffect)((()=>{let e;return i&&u?e=setTimeout((()=>{c(u)}),i):c(u),()=>{e&&clearTimeout(e)}}),[u,i]),(0,r.useEffect)((()=>{d(m?.isIntersecting?"top":"bottom")}),[m]),r.default.createElement(r.default.Fragment,null,r.default.createElement("aside",{"aria-hidden":"true",className:["tooltip",l,`tooltip--caret-${t}`,"tooltip--position-top"].filter(Boolean).join(" "),ref:h,title:p(o)},r.default.createElement("div",{className:"tooltip-content"},o)),r.default.createElement("aside",{className:["tooltip",l,s&&"tooltip--show",`tooltip--caret-${t}`,`tooltip--position-${f}`].filter(Boolean).join(" "),title:p(o)},r.default.createElement("div",{className:"tooltip-content"},o)))}},2281:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(9498);const o=()=>r.default.createElement("svg",{className:"icon icon--check",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("path",{className:"stroke",d:"M10.6092 16.0192L17.6477 8.98076",strokeLinecap:"square",strokeLinejoin:"bevel"}),r.default.createElement("path",{className:"stroke",d:"M7.35229 12.7623L10.6092 16.0192",strokeLinecap:"square",strokeLinejoin:"bevel"}))},4795:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(7484);const o=({className:e,direction:t,size:n})=>r.default.createElement("svg",{className:["icon icon--chevron",e,n&&`icon--size-${n}`].filter(Boolean).join(" "),viewBox:"0 0 9 7",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",style:{transform:"left"===t?"rotate(90deg)":"right"===t?"rotate(-90deg)":"up"===t?"rotate(180deg)":void 0}},r.default.createElement("path",{className:"stroke",d:"M1.42871 1.5332L4.42707 4.96177L7.42543 1.5332"}))},8620:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(7601);const o=()=>r.default.createElement("svg",{className:"icon icon--edit",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("polygon",{className:"fill",points:"16.92 16.86 8.25 16.86 8.25 8.21 12.54 8.21 12.54 6.63 6.68 6.63 6.68 18.43 18.5 18.43 18.5 12.53 16.92 12.53 16.92 16.86"}),r.default.createElement("polygon",{className:"fill",points:"16.31 7.33 17.42 8.44 12.66 13.2 11.51 13.24 11.55 12.09 16.31 7.33"}),r.default.createElement("rect",{className:"fill",height:"1.15",transform:"translate(10.16 -10.48) rotate(45)",width:"1.58",x:"16.94",y:"6.44"}))},9102:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(1519);const o=()=>r.default.createElement("svg",{"aria-hidden":"true",className:"graphic link icon icon--link",fill:"currentColor",focusable:"false",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),r.default.createElement("path",{className:"fill",d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"}))},8227:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(2125);const o=()=>r.default.createElement("svg",{className:"icon icon--menu",fill:"none",height:"25",viewBox:"0 0 25 25",width:"25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("rect",{className:"fill",height:"2",width:"18",x:"3.5",y:"4.5"}),r.default.createElement("rect",{className:"fill",height:"2",width:"18",x:"3.5",y:"11.5"}),r.default.createElement("rect",{className:"fill",height:"2",width:"18",x:"3.5",y:"18.5"}))},4439:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(3160);const o=()=>r.default.createElement("svg",{className:"icon icon--plus",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("line",{className:"stroke",x1:"12.4589",x2:"12.4589",y1:"16.9175",y2:"8.50115"}),r.default.createElement("line",{className:"stroke",x1:"8.05164",x2:"16.468",y1:"12.594",y2:"12.594"}))},454:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(9094);const o=()=>r.default.createElement("svg",{className:"icon icon--search",fill:"none",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("circle",{className:"stroke",cx:"11.2069",cy:"10.7069",r:"5"}),r.default.createElement("line",{className:"stroke",x1:"14.914",x2:"20.5002",y1:"13.9998",y2:"19.586"}))},5254:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(7889);const o=()=>r.default.createElement("svg",{className:"icon icon--swap",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("path",{className:"stroke",d:"M9.84631 4.78679L6.00004 8.63306L9.84631 12.4793"}),r.default.createElement("path",{className:"stroke",d:"M15.1537 20.1059L19 16.2596L15.1537 12.4133"}),r.default.createElement("line",{className:"stroke",stroke:"#333333",x1:"7",x2:"15",y1:"8.7013",y2:"8.7013"}),r.default.createElement("line",{className:"stroke",x1:"18",x2:"10",y1:"16.1195",y2:"16.1195"}))},3763:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(6039);const o=({className:e})=>r.default.createElement("svg",{className:[e,"icon icon--x"].filter(Boolean).join(" "),height:"25",viewBox:"0 0 25 25",width:"25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("line",{className:"stroke",x1:"8.74612",x2:"16.3973",y1:"16.347",y2:"8.69584"}),r.default.createElement("line",{className:"stroke",x1:"8.6027",x2:"16.2539",y1:"8.69585",y2:"16.3471"}))},7714:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{Banner:function(){return r.default},Button:function(){return a.default},Check:function(){return i.default},Chevron:function(){return u.default},Menu:function(){return s.default},MinimalTemplate:function(){return d.default},Pill:function(){return o.default},Popup:function(){return l.default},Search:function(){return c.default},X:function(){return f.default}});const r=p(n(6929)),a=p(n(8564)),o=p(n(2946)),l=p(n(3567)),i=p(n(2281)),u=p(n(4795)),s=p(n(8227)),c=p(n(454)),f=p(n(3763)),d=p(n(662));function p(e){return e&&e.__esModule?e:{default:e}}},662:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(7565);const o="template-minimal",l=e=>{const{children:t,className:n,style:a={},width:l="normal"}=e,i=[n,o,`${o}--width-${l}`].filter(Boolean).join(" ");return r.default.createElement("section",{className:i,style:a},r.default.createElement("div",{className:`${o}__wrap`},t))}},1593:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});const r=n(9497),a=({root:e=null,rootMargin:t="0px",threshold:n=0}={},a)=>{const[o,l]=(0,r.useState)(),[i,u]=(0,r.useState)(null),s=(0,r.useRef)(new window.IntersectionObserver((([e])=>l(e)),{root:e,rootMargin:t,threshold:n}));return(0,r.useEffect)((()=>{if(a)return;const{current:e}=s;return e.disconnect(),i&&e.observe(i),()=>e.disconnect()}),[i,a]),[u,o]}},9497:e=>{"use strict";e.exports=require("react")}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r=n(7714);module.exports=r})();
\ No newline at end of file
diff --git a/packages/payload/components/preferences.d.ts b/packages/payload/components/preferences.d.ts
deleted file mode 100644
index 4641285b5..000000000
--- a/packages/payload/components/preferences.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { usePreferences } from '../dist/admin/components/utilities/Preferences';
-//# sourceMappingURL=preferences.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/components/preferences.js b/packages/payload/components/preferences.js
deleted file mode 100644
index 55d8f951c..000000000
--- a/packages/payload/components/preferences.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-Object.defineProperty(exports, "usePreferences", {
- enumerable: true,
- get: function() {
- return _Preferences.usePreferences;
- }
-});
-const _Preferences = require("../dist/admin/components/utilities/Preferences");
-
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvcHJlZmVyZW5jZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgdXNlUHJlZmVyZW5jZXMgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL3V0aWxpdGllcy9QcmVmZXJlbmNlcydcbiJdLCJuYW1lcyI6WyJ1c2VQcmVmZXJlbmNlcyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBU0E7OztlQUFBQSwyQkFBYzs7OzZCQUFRIn0=
\ No newline at end of file
diff --git a/packages/payload/components/rich-text.d.ts b/packages/payload/components/rich-text.d.ts
deleted file mode 100644
index 3071e43bb..000000000
--- a/packages/payload/components/rich-text.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export { default as ElementButton } from '../dist/admin/components/forms/field-types/RichText/elements/Button';
-export { default as toggleElement } from '../dist/admin/components/forms/field-types/RichText/elements/toggle';
-export { default as LeafButton } from '../dist/admin/components/forms/field-types/RichText/leaves/Button';
-//# sourceMappingURL=rich-text.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/components/rich-text.js b/packages/payload/components/rich-text.js
deleted file mode 100644
index 5d9888cee..000000000
--- a/packages/payload/components/rich-text.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-function _export(target, all) {
- for(var name in all)Object.defineProperty(target, name, {
- enumerable: true,
- get: all[name]
- });
-}
-_export(exports, {
- ElementButton: function() {
- return _Button.default;
- },
- toggleElement: function() {
- return _toggle.default;
- },
- LeafButton: function() {
- return _Button1.default;
- }
-});
-const _Button = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/field-types/RichText/elements/Button"));
-const _toggle = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/field-types/RichText/elements/toggle"));
-const _Button1 = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/field-types/RichText/leaves/Button"));
-function _interop_require_default(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
-}
-
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvcmljaC10ZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgRWxlbWVudEJ1dHRvbiB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvZmllbGQtdHlwZXMvUmljaFRleHQvZWxlbWVudHMvQnV0dG9uJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0b2dnbGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9maWVsZC10eXBlcy9SaWNoVGV4dC9lbGVtZW50cy90b2dnbGUnXG5leHBvcnQgeyBkZWZhdWx0IGFzIExlYWZCdXR0b24gfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JpY2hUZXh0L2xlYXZlcy9CdXR0b24nXG4iXSwibmFtZXMiOlsiRWxlbWVudEJ1dHRvbiIsInRvZ2dsZUVsZW1lbnQiLCJMZWFmQnV0dG9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUFvQkEsYUFBYTtlQUFiQSxlQUFhOztJQUNiQyxhQUFhO2VBQWJBLGVBQWE7O0lBQ2JDLFVBQVU7ZUFBVkEsZ0JBQVU7OzsrREFGVzsrREFDQTtnRUFDSCJ9
\ No newline at end of file
diff --git a/packages/payload/components/root.d.ts b/packages/payload/components/root.d.ts
deleted file mode 100644
index b2599f783..000000000
--- a/packages/payload/components/root.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { default as Root } from '../dist/admin/Root';
-//# sourceMappingURL=root.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/components/root.js b/packages/payload/components/root.js
deleted file mode 100644
index 12e200505..000000000
--- a/packages/payload/components/root.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-Object.defineProperty(exports, "Root", {
- enumerable: true,
- get: function() {
- return _Root.default;
- }
-});
-const _Root = /*#__PURE__*/ _interop_require_default(require("../dist/admin/Root"));
-function _interop_require_default(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
-}
-
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvcm9vdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIFJvb3QgfSBmcm9tICcuLi8uLi9hZG1pbi9Sb290J1xuIl0sIm5hbWVzIjpbIlJvb3QiXSwibWFwcGluZ3MiOiI7Ozs7K0JBQW9CQTs7O2VBQUFBLGFBQUk7Ozs2REFBUSJ9
\ No newline at end of file
diff --git a/packages/payload/components/styles.css b/packages/payload/components/styles.css
deleted file mode 100644
index 8ab8eb170..000000000
--- a/packages/payload/components/styles.css
+++ /dev/null
@@ -1 +0,0 @@
-.banner{background:var(--theme-elevation-100);border:0;border-radius:3px;color:var(--theme-elevation-800);font-size:1rem;line-height:1.9230769231rem;margin-bottom:1.9230769231rem;padding:.9615384615rem;vertical-align:middle}.banner--has-action{cursor:pointer;-webkit-text-decoration:none;text-decoration:none}.banner--has-icon{display:flex}.banner--has-icon svg{display:block}.banner--type-default.button--has-action:hover{background:var(--theme-elevation-900)}.banner--type-default.button--has-action:active{background:var(--theme-elevation-950)}.banner--type-error{background:var(--theme-error-100);color:var(--theme-error-500)}.banner--type-error svg .stroke{stroke:var(--theme-error-500);fill:none}.banner--type-error svg .fill{fill:var(--theme-error-500)}.banner--type-error.button--has-action:hover{background:var(--theme-error-200)}.banner--type-error.button--has-action:active{background:var(--theme-error-300)}.banner--type-success{background:var(--theme-success-500);color:var(--color-base-800)}.banner--type-success.button--has-action:active,.banner--type-success.button--has-action:hover{background:var(--theme-success-200)}.icon--chevron{height:calc(var(--base)/2);width:calc(var(--base)/2)}.icon--chevron .stroke{fill:none;stroke:var(--theme-elevation-800);stroke-width:2px;vector-effect:non-scaling-stroke}.icon--chevron--size-large{height:var(--base);width:var(--base)}.icon--edit{shape-rendering:auto;height:1.9230769231rem;width:1.9230769231rem}.icon--edit .fill{fill:var(--theme-elevation-800);stroke:none}.icon--link{height:1.9230769231rem;width:1.9230769231rem}.icon--link .stroke{stroke:var(--theme-elevation-800);stroke-width:1px}.icon--plus{height:1.9230769231rem;width:1.9230769231rem}.icon--plus .stroke{stroke:var(--theme-elevation-800);stroke-width:1px}.icon--swap{height:1.9230769231rem;width:1.9230769231rem}.icon--swap .stroke{fill:none;stroke:var(--theme-elevation-800);stroke-width:2px}.icon--x line{stroke:var(--theme-elevation-800);stroke-width:1px}.tooltip{--caret-size:6px;background-color:var(--theme-elevation-800);border-radius:2px;color:var(--theme-elevation-0);font-weight:400;left:50%;line-height:1.4423076923rem;opacity:0;padding:.3846153846rem .7692307692rem;position:absolute;visibility:hidden;white-space:nowrap;z-index:2}.tooltip:after{border-left:var(--caret-size) solid transparent;border-right:var(--caret-size) solid transparent;content:" ";display:block;height:0;position:absolute;transform:translate3d(-50%,100%,0);width:0}.tooltip--show{cursor:default;opacity:1;transition:opacity .2s ease-in-out;visibility:visible}.tooltip--caret-center:after{left:50%}.tooltip--caret-left:after{left:calc(var(--base)*.5)}.tooltip--caret-right:after{right:calc(var(--base)*.5)}.tooltip--position-top{bottom:100%;transform:translate3d(-50%,calc(var(--caret-size)*-1),0)}.tooltip--position-top:after{border-top:var(--caret-size) solid var(--theme-elevation-800);bottom:1px}.tooltip--position-bottom{top:100%;transform:translate3d(-50%,var(--caret-size),0)}.tooltip--position-bottom:after{border-bottom:var(--caret-size) solid var(--theme-elevation-800);bottom:calc(100% + var(--caret-size) - 1px)}.tooltip .tooltip-content{overflow:hidden;text-overflow:ellipsis;width:100%}@media(max-width:1024px){.tooltip{display:none}}html[data-theme=light] .tooltip{background-color:var(--theme-error-250);color:var(--theme-error-750)}html[data-theme=light] .tooltip--position-top:after{border-top-color:var(--theme-error-250)}html[data-theme=light] .tooltip--position-bottom:after{border-bottom-color:var(--theme-error-250)}a.btn{display:inline-block}.btn{background:transparent;border:0;border-radius:4px;color:inherit;cursor:pointer;font-size:1rem;font-weight:400;line-height:1.9230769231rem;margin-bottom:1.9230769231rem;margin-top:1.9230769231rem;text-align:center;-webkit-text-decoration:none;text-decoration:none}.btn .btn__icon{border:1px solid;border-radius:100%}.btn .btn__icon .stroke{stroke:currentColor;fill:none}.btn .btn__icon .fill{fill:currentColor}.btn--has-tooltip{position:relative}.btn--icon-style-none .btn__icon,.btn--icon-style-without-border .btn__icon{border:none}.btn span{line-height:1.9230769231rem}.btn span,.btn svg{vertical-align:top}.btn--size-medium{padding:.9615384615rem 1.9230769231rem}.btn--size-small{padding:.4807692308rem .9615384615rem}.btn--style-primary{background-color:var(--theme-elevation-800);color:var(--theme-elevation-0)}.btn--style-primary.btn--disabled{background-color:var(--theme-elevation-400)}.btn--style-primary:not(.btn--disabled):focus-visible,.btn--style-primary:not(.btn--disabled):hover{background:var(--theme-elevation-750)}.btn--style-primary:not(.btn--disabled):active{background:var(--theme-elevation-700)}.btn--style-primary:focus:not(:focus-visible){box-shadow:0 0 0 2px var(--theme-success-500);outline:none}.btn--style-secondary{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:none;box-shadow:inset 0 0 0 1px var(--theme-elevation-800);color:var(--theme-elevation-800)}.btn--style-secondary:focus-visible,.btn--style-secondary:hover{background:var(--theme-elevation-100);box-shadow:inset 0 0 0 1px var(--theme-elevation-700)}.btn--style-secondary:active{background:var(--theme-elevation-200)}.btn--style-secondary.btn--disabled{background:none;box-shadow:inset 0 0 0 1px var(--theme-elevation-400);color:var(--theme-elevation-400)}.btn--style-secondary:focus:not(:focus-visible){box-shadow:inset 0 0 0 1px var(--theme-elevation-700),0 0 0 2px var(--theme-success-500);outline:none}.btn--style-none{border-radius:0;margin:0;padding:0}.btn--style-none:focus{opacity:.8}.btn--style-none:active{opacity:.7}.btn--round{border-radius:100%}[dir=rtl] .btn--icon span{margin-left:5px}.btn--icon span{display:flex;justify-content:space-between}.btn--icon.btn--style-primary .icon .stroke{stroke:var(--theme-elevation-0);fill:none}.btn--icon.btn--style-primary .icon .fill{fill:var(--theme-elevation-0)}.btn--style-icon-label{font-weight:600;padding:0}.btn--style-light-gray{box-shadow:inset 0 0 0 1px var(--theme-elevation-800)}.btn--icon-position-left .btn__content{flex-direction:row-reverse}.btn--icon-position-left .btn__icon{margin-right:.9615384615rem}.btn--icon-position-right .btn__icon{margin-left:.9615384615rem}.btn--icon-only .btn__icon{margin:0;padding:0}.btn--disabled{cursor:default}.btn:focus-visible .btn__icon,.btn:hover .btn__icon{background:var(--theme-elevation-800)}.btn:focus-visible .btn__icon .stroke,.btn:hover .btn__icon .stroke{stroke:var(--theme-elevation-0);fill:none}.btn:focus-visible .btn__icon .fill,.btn:hover .btn__icon .fill{fill:var(--theme-elevation-0)}.btn:focus:not(:focus-visible){outline:none}.btn:focus:not(:focus-visible) .btn__icon{background:var(--theme-elevation-150)}.btn:focus:not(:focus-visible) .btn__icon .stroke{stroke:var(--theme-elevation-800);fill:none}.btn:focus:not(:focus-visible) .btn__icon .fill{fill:var(--theme-elevation-800)}.btn:active .btn__icon{background:var(--theme-elevation-700)}.btn:active .btn__icon .stroke{stroke:var(--theme-elevation-0);fill:none}.btn:active .btn__icon .fill{fill:var(--theme-elevation-0)}.btn:focus-visible{outline:var(--accessibility-outline);outline-offset:var(--accessibility-outline-offset)}.pill{align-items:center;background:var(--theme-elevation-150);border:0;border-radius:3px;color:var(--theme-elevation-800);cursor:default;display:inline-flex;flex-shrink:0;font-size:1rem;line-height:1.9230769231rem;overflow:hidden;padding:0 .4807692308rem;text-overflow:ellipsis;white-space:nowrap}.pill--rounded{border-radius:var(--style-radius-l);font-size:12px;line-height:18px}.pill:active,.pill:focus:not(:focus-visible){outline:none}.pill:focus-visible{outline:var(--accessibility-outline);outline-offset:var(--accessibility-outline-offset)}.pill .icon{flex-shrink:0}.pill__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill__icon{padding:calc(var(--base)/4)}.pill--has-action{cursor:pointer;-webkit-text-decoration:none;text-decoration:none}.pill--is-dragging{cursor:grabbing}.pill--has-icon svg{display:block}[dir=rtl] .pill--align-icon-left{padding-left:10px;padding-right:0}[dir=rtl] .pill--align-icon-right{padding-left:0;padding-right:10px}.pill--align-icon-left{padding-left:0}.pill--align-icon-right{padding-right:0}.pill--style-white{background:var(--theme-elevation-0)}.pill--style-light-gray,.pill--style-light.pill--has-action:active,.pill--style-light.pill--has-action:hover,.pill--style-white.pill--has-action:active,.pill--style-white.pill--has-action:hover{background:var(--theme-elevation-100)}.pill--style-light-gray{color:var(--theme-elevation-800)}.pill--style-warning{background:var(--theme-warning-500)}.pill--style-success{background:var(--theme-success-500);color:var(--color-base-800)}.pill--style-dark{background:var(--theme-elevation-800);color:var(--theme-elevation-0)}.pill--style-dark svg .stroke{stroke:var(--theme-elevation-0);fill:none}.pill--style-dark svg .fill{fill:var(--theme-elevation-0)}.pill--style-dark.pill--has-action:hover{background:var(--theme-elevation-750)}.pill--style-dark.pill--has-action:active{background:var(--theme-elevation-700)}html[data-theme=dark] .pill--style-error{background:var(--theme-error-500);color:var(--color-base-1000)}html[data-theme=light] .pill--style-error{background:var(--theme-error-250);color:var(--theme-error-750)}.popup-button{background:transparent;border:0;color:currentColor;cursor:pointer;display:inline-flex;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;padding:0}.popup{--popup-button-highlight:var(--theme-elevation-200);--popup-bg:var(--theme-input-bg);--popup-text:var(--theme-text);--popup-caret-size:10px;--popup-x-padding:calc(var(--base)*0.33);--popup-padding:calc(var(--base)*0.5);position:relative}.popup__content{background:var(--popup-bg);border-radius:4px;color:var(--popup-text);max-width:calc(100vw - 1.92308rem);min-width:auto;min-width:var(--popup-width,auto);opacity:0;padding-left:var(--popup-padding);padding-right:var(--popup-padding);pointer-events:none;position:absolute;visibility:hidden;z-index:var(--z-popup)}.popup__hide-scrollbar{overflow:hidden}.popup__scroll-container{overflow-y:auto;padding-bottom:var(--popup-padding);padding-top:var(--popup-padding);white-space:nowrap;width:calc(100% + var(--scrollbar-width))}.popup__scroll-content{width:calc(100% - var(--scrollbar-width))}.popup--show-scrollbar .popup__scroll-container,.popup--show-scrollbar .popup__scroll-content{width:100%}.popup:active,.popup:focus{outline:none}.popup--size-small{--popup-width:100px}.popup--size-small .popup__content{box-shadow:0 0 30px 0 rgba(0,2,4,.12),0 30px 25px -8px rgba(0,2,4,.1)}.popup--size-medium{--popup-width:150px}.popup--size-medium .popup__content{box-shadow:0 20px 35px -10px rgba(0,2,4,.2),0 6px 4px -4px rgba(0,2,4,.02)}.popup--size-large{--popup-width:200px}.popup--size-large .popup__content{box-shadow:0 20px 35px -10px rgba(0,2,4,.2),0 6px 4px -4px rgba(0,2,4,.02)}[dir=rtl] .popup--h-align-left .popup__caret{left:auto;right:var(--popup-padding)}.popup--h-align-left .popup__caret{left:var(--popup-padding)}.popup--h-align-center .popup__caret,.popup--h-align-center .popup__content{left:50%;transform:translateX(-50%)}[dir=rtl] .popup--h-align-right .popup__content{left:0;right:auto}[dir=rtl] .popup--h-align-right .popup__caret{left:var(--popup-padding);right:auto}.popup--h-align-right .popup__content{right:0}.popup--h-align-right .popup__caret{right:var(--popup-padding)}.popup__caret{border:var(--popup-caret-size) solid transparent;position:absolute}.popup--v-align-top .popup__content{bottom:calc(100% + var(--popup-caret-size));box-shadow:0 20px 35px -10px rgba(0,2,4,.2),0 6px 4px -4px rgba(0,2,4,.02)}.popup--v-align-top .popup__caret{border-top-color:var(--popup-bg);top:calc(100% - 1px)}.popup--v-align-bottom .popup__content{box-shadow:0 -20px 35px -10px rgba(0,2,4,.2),0 -6px 4px -4px rgba(0,2,4,.02);top:calc(100% + var(--popup-caret-size))}.popup--v-align-bottom .popup__caret{border-bottom-color:var(--popup-bg);bottom:calc(100% - 1px)}.popup--active .popup__content{opacity:1;pointer-events:all;visibility:visible}@media(max-width:1024px){.popup{--popup-padding:calc(var(--base)*0.25)}.popup--h-align-center .popup__caret,.popup--h-align-center .popup__content{left:50%;transform:translateX(0)}.popup--h-align-right .popup__content{right:0}.popup--h-align-right .popup__caret{right:var(--popup-padding)}.popup--force-h-align-left .popup__content{left:0;right:auto;transform:none}.popup--force-h-align-left .popup__caret{left:var(--popup-padding);right:auto;transform:none}.popup--force-h-align-right .popup__content{left:auto;right:0;transform:none}.popup--force-h-align-right .popup__caret{left:auto;right:var(--popup-padding);transform:none}}.icon--check{height:1.9230769231rem;width:1.9230769231rem}.icon--check .stroke{fill:none;stroke:var(--theme-elevation-800);stroke-width:2px}.icon--menu .fill{fill:var(--theme-text)}.icon--search{height:1.9230769231rem;width:1.9230769231rem}.icon--search .stroke{stroke:var(--theme-elevation-800);stroke-width:1px}.template-minimal{align-items:center;display:flex;justify-content:center;margin-left:auto;margin-right:auto;min-height:100%;padding:5.7692307692rem 1.9230769231rem;width:100%}.template-minimal--width-normal .template-minimal__wrap{max-width:500px;width:100%}.template-minimal--width-wide .template-minimal__wrap{max-width:1024px;width:100%}
\ No newline at end of file
diff --git a/packages/payload/components/templates.d.ts b/packages/payload/components/templates.d.ts
deleted file mode 100644
index d344dc353..000000000
--- a/packages/payload/components/templates.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export { default as DefaultTemplate } from '../dist/admin/components/templates/Default';
-export { default as MinimalTemplate } from '../dist/admin/components/templates/Minimal';
-//# sourceMappingURL=templates.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/components/templates.js b/packages/payload/components/templates.js
deleted file mode 100644
index 1b995ee32..000000000
--- a/packages/payload/components/templates.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-function _export(target, all) {
- for(var name in all)Object.defineProperty(target, name, {
- enumerable: true,
- get: all[name]
- });
-}
-_export(exports, {
- DefaultTemplate: function() {
- return _Default.default;
- },
- MinimalTemplate: function() {
- return _Minimal.default;
- }
-});
-const _Default = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/templates/Default"));
-const _Minimal = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/templates/Minimal"));
-function _interop_require_default(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
-}
-
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvdGVtcGxhdGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgRGVmYXVsdFRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy90ZW1wbGF0ZXMvRGVmYXVsdCdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWluaW1hbFRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy90ZW1wbGF0ZXMvTWluaW1hbCdcbiJdLCJuYW1lcyI6WyJEZWZhdWx0VGVtcGxhdGUiLCJNaW5pbWFsVGVtcGxhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQW9CQSxlQUFlO2VBQWZBLGdCQUFlOztJQUNmQyxlQUFlO2VBQWZBLGdCQUFlOzs7Z0VBRFE7Z0VBQ0EifQ==
\ No newline at end of file
diff --git a/packages/payload/components/utilities.d.ts b/packages/payload/components/utilities.d.ts
deleted file mode 100644
index 78fd12127..000000000
--- a/packages/payload/components/utilities.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export {};
-//# sourceMappingURL=utilities.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/components/utilities.js b/packages/payload/components/utilities.js
deleted file mode 100644
index 9a2301c2a..000000000
--- a/packages/payload/components/utilities.js
+++ /dev/null
@@ -1,2 +0,0 @@
-
-//# sourceMappingURL=utilities.js.map
\ No newline at end of file
diff --git a/packages/payload/components/views/Cell.d.ts b/packages/payload/components/views/Cell.d.ts
deleted file mode 100644
index 7d1408705..000000000
--- a/packages/payload/components/views/Cell.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export { default as Cell } from '../../dist/admin/components/views/collections/List/Cell';
-export type { Props } from '../../dist/admin/components/views/collections/List/Cell/types';
-//# sourceMappingURL=Cell.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/components/views/Cell.js b/packages/payload/components/views/Cell.js
deleted file mode 100644
index db79f796c..000000000
--- a/packages/payload/components/views/Cell.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-Object.defineProperty(exports, "Cell", {
- enumerable: true,
- get: function() {
- return _Cell.default;
- }
-});
-const _Cell = /*#__PURE__*/ _interop_require_default(require("../../dist/admin/components/views/collections/List/Cell"));
-function _interop_require_default(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
-}
-
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvdmlld3MvQ2VsbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIENlbGwgfSBmcm9tICcuLi8uLi8uLi9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL2NvbGxlY3Rpb25zL0xpc3QvQ2VsbCdcbmV4cG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuLi8uLi8uLi9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL2NvbGxlY3Rpb25zL0xpc3QvQ2VsbC90eXBlcydcbiJdLCJuYW1lcyI6WyJDZWxsIl0sIm1hcHBpbmdzIjoiOzs7OytCQUFvQkE7OztlQUFBQSxhQUFJOzs7NkRBQVEifQ==
\ No newline at end of file
diff --git a/packages/payload/components/views/Dashboard.d.ts b/packages/payload/components/views/Dashboard.d.ts
deleted file mode 100644
index f867c81be..000000000
--- a/packages/payload/components/views/Dashboard.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export { default as Dashboard } from '../../dist/admin/components/views/Dashboard/Default';
-export type { Props } from '../../dist/admin/components/views/Dashboard/types';
-//# sourceMappingURL=Dashboard.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/components/views/Dashboard.js b/packages/payload/components/views/Dashboard.js
deleted file mode 100644
index 7c6519a6f..000000000
--- a/packages/payload/components/views/Dashboard.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-Object.defineProperty(exports, "Dashboard", {
- enumerable: true,
- get: function() {
- return _Default.default;
- }
-});
-const _Default = /*#__PURE__*/ _interop_require_default(require("../../dist/admin/components/views/Dashboard/Default"));
-function _interop_require_default(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
-}
-
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvdmlld3MvRGFzaGJvYXJkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgRGFzaGJvYXJkIH0gZnJvbSAnLi4vLi4vLi4vYWRtaW4vY29tcG9uZW50cy92aWV3cy9EYXNoYm9hcmQvRGVmYXVsdCdcblxuZXhwb3J0IHR5cGUgeyBQcm9wcyB9IGZyb20gJy4uLy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdmlld3MvRGFzaGJvYXJkL3R5cGVzJ1xuIl0sIm5hbWVzIjpbIkRhc2hib2FyZCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBb0JBOzs7ZUFBQUEsZ0JBQVM7OztnRUFBUSJ9
\ No newline at end of file
diff --git a/packages/payload/components/views/Edit.d.ts b/packages/payload/components/views/Edit.d.ts
deleted file mode 100644
index 21340ba1e..000000000
--- a/packages/payload/components/views/Edit.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { default as Edit } from '../../dist/admin/components/views/collections/Edit/Default';
-//# sourceMappingURL=Edit.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/components/views/Edit.js b/packages/payload/components/views/Edit.js
deleted file mode 100644
index c01afd2af..000000000
--- a/packages/payload/components/views/Edit.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-Object.defineProperty(exports, "Edit", {
- enumerable: true,
- get: function() {
- return _Default.default;
- }
-});
-const _Default = /*#__PURE__*/ _interop_require_default(require("../../dist/admin/components/views/collections/Edit/Default"));
-function _interop_require_default(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
-}
-
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvdmlld3MvRWRpdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIEVkaXQgfSBmcm9tICcuLi8uLi8uLi9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL2NvbGxlY3Rpb25zL0VkaXQvRGVmYXVsdCdcbiJdLCJuYW1lcyI6WyJFZGl0Il0sIm1hcHBpbmdzIjoiOzs7OytCQUFvQkE7OztlQUFBQSxnQkFBSTs7O2dFQUFRIn0=
\ No newline at end of file
diff --git a/packages/payload/components/views/List.d.ts b/packages/payload/components/views/List.d.ts
deleted file mode 100644
index 778c83790..000000000
--- a/packages/payload/components/views/List.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export { default as List } from '../../dist/admin/components/views/collections/List/Default';
-export type { Props } from '../../dist/admin/components/views/collections/List/types';
-//# sourceMappingURL=List.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/components/views/List.js b/packages/payload/components/views/List.js
deleted file mode 100644
index 39e0bfc38..000000000
--- a/packages/payload/components/views/List.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-Object.defineProperty(exports, "List", {
- enumerable: true,
- get: function() {
- return _Default.default;
- }
-});
-const _Default = /*#__PURE__*/ _interop_require_default(require("../../dist/admin/components/views/collections/List/Default"));
-function _interop_require_default(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
-}
-
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvdmlld3MvTGlzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIExpc3QgfSBmcm9tICcuLi8uLi8uLi9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL2NvbGxlY3Rpb25zL0xpc3QvRGVmYXVsdCdcbmV4cG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuLi8uLi8uLi9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL2NvbGxlY3Rpb25zL0xpc3QvdHlwZXMnXG4iXSwibmFtZXMiOlsiTGlzdCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBb0JBOzs7ZUFBQUEsZ0JBQUk7OztnRUFBUSJ9
\ No newline at end of file
diff --git a/packages/payload/config.d.ts b/packages/payload/config.d.ts
deleted file mode 100644
index a90d257b2..000000000
--- a/packages/payload/config.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export { buildConfig } from './dist/config/build.js';
-export * from './dist/config/types.js';
-export type { FieldTypes } from './dist/admin/forms/FieldTypes.js';
-export { createClientCollectionConfig } from './dist/collections/config/client.js';
-export { defaults as collectionDefaults } from './dist/collections/config/defaults.js';
-export { createClientConfig } from './dist/config/client.js';
-export { defaults } from './dist/config/defaults.js';
-export { sanitizeConfig } from './dist/config/sanitize.js';
-export { baseBlockFields } from './dist/fields/baseFields/baseBlockFields.js';
-export { baseIDField } from './dist/fields/baseFields/baseIDField.js';
-export { createClientFieldConfig } from './dist/fields/config/client.js';
-export { sanitizeFields } from './dist/fields/config/sanitize.js';
-export { createClientGlobalConfig } from './dist/globals/config/client.js';
-//# sourceMappingURL=config.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/config.js b/packages/payload/config.js
deleted file mode 100644
index e14070b41..000000000
--- a/packages/payload/config.js
+++ /dev/null
@@ -1,14 +0,0 @@
-export { buildConfig } from './dist/config/build.js';
-export * from './dist/config/types.js';
-export { createClientCollectionConfig } from './dist/collections/config/client.js';
-export { defaults as collectionDefaults } from './dist/collections/config/defaults.js';
-export { createClientConfig } from './dist/config/client.js';
-export { defaults } from './dist/config/defaults.js';
-export { sanitizeConfig } from './dist/config/sanitize.js';
-export { baseBlockFields } from './dist/fields/baseFields/baseBlockFields.js';
-export { baseIDField } from './dist/fields/baseFields/baseIDField.js';
-export { createClientFieldConfig } from './dist/fields/config/client.js';
-export { sanitizeFields } from './dist/fields/config/sanitize.js';
-export { createClientGlobalConfig } from './dist/globals/config/client.js';
-
-//# sourceMappingURL=config.js.map
\ No newline at end of file
diff --git a/packages/payload/database.d.ts b/packages/payload/database.d.ts
deleted file mode 100644
index fd2103c76..000000000
--- a/packages/payload/database.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-export type { BaseDatabaseAdapter, BeginTransaction, CommitTransaction, Connect, Create, CreateArgs, CreateGlobal, CreateGlobalArgs, CreateGlobalVersion, CreateGlobalVersionArgs, CreateMigration, CreateVersion, CreateVersionArgs, DBIdentifierName, DatabaseAdapterResult as DatabaseAdapterObj, DeleteMany, DeleteManyArgs, DeleteOne, DeleteOneArgs, DeleteVersions, DeleteVersionsArgs, Destroy, Find, FindArgs, FindGlobal, FindGlobalArgs, FindGlobalVersions, FindGlobalVersionsArgs, FindOne, FindOneArgs, FindVersions, FindVersionsArgs, Init, Migration, MigrationData, PaginatedDocs, QueryDrafts, QueryDraftsArgs, RollbackTransaction, Transaction, TypeWithVersion, UpdateGlobal, UpdateGlobalArgs, UpdateGlobalVersion, UpdateGlobalVersionArgs, UpdateOne, UpdateOneArgs, UpdateVersion, UpdateVersionArgs, } from './dist/database/types.js';
-export * from './dist/database/queryValidation/types.js';
-export { combineQueries } from './dist/database/combineQueries.js';
-export { createDatabaseAdapter } from './dist/database/createDatabaseAdapter.js';
-export { default as flattenWhereToOperators } from './dist/database/flattenWhereToOperators.js';
-export { getLocalizedPaths } from './dist/database/getLocalizedPaths.js';
-export { createMigration } from './dist/database/migrations/createMigration.js';
-export { getMigrations } from './dist/database/migrations/getMigrations.js';
-export { migrate } from './dist/database/migrations/migrate.js';
-export { migrateDown } from './dist/database/migrations/migrateDown.js';
-export { migrateRefresh } from './dist/database/migrations/migrateRefresh.js';
-export { migrateReset } from './dist/database/migrations/migrateReset.js';
-export { migrateStatus } from './dist/database/migrations/migrateStatus.js';
-export { migrationTemplate } from './dist/database/migrations/migrationTemplate.js';
-export { migrationsCollection } from './dist/database/migrations/migrationsCollection.js';
-export { readMigrationFiles } from './dist/database/migrations/readMigrationFiles.js';
-export type { EntityPolicies, PathToQuery } from './dist/database/queryValidation/types.js';
-export { validateQueryPaths } from './dist/database/queryValidation/validateQueryPaths.js';
-export { validateSearchParam } from './dist/database/queryValidation/validateSearchParams.js';
-export { commitTransaction } from './dist/utilities/commitTransaction.js';
-export { initTransaction } from './dist/utilities/initTransaction.js';
-export { killTransaction } from './dist/utilities/killTransaction.js';
-//# sourceMappingURL=database.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/database.js b/packages/payload/database.js
deleted file mode 100644
index 168847034..000000000
--- a/packages/payload/database.js
+++ /dev/null
@@ -1,22 +0,0 @@
-export * from './dist/database/queryValidation/types.js';
-export { combineQueries } from './dist/database/combineQueries.js';
-export { createDatabaseAdapter } from './dist/database/createDatabaseAdapter.js';
-export { default as flattenWhereToOperators } from './dist/database/flattenWhereToOperators.js';
-export { getLocalizedPaths } from './dist/database/getLocalizedPaths.js';
-export { createMigration } from './dist/database/migrations/createMigration.js';
-export { getMigrations } from './dist/database/migrations/getMigrations.js';
-export { migrate } from './dist/database/migrations/migrate.js';
-export { migrateDown } from './dist/database/migrations/migrateDown.js';
-export { migrateRefresh } from './dist/database/migrations/migrateRefresh.js';
-export { migrateReset } from './dist/database/migrations/migrateReset.js';
-export { migrateStatus } from './dist/database/migrations/migrateStatus.js';
-export { migrationTemplate } from './dist/database/migrations/migrationTemplate.js';
-export { migrationsCollection } from './dist/database/migrations/migrationsCollection.js';
-export { readMigrationFiles } from './dist/database/migrations/readMigrationFiles.js';
-export { validateQueryPaths } from './dist/database/queryValidation/validateQueryPaths.js';
-export { validateSearchParam } from './dist/database/queryValidation/validateSearchParams.js';
-export { commitTransaction } from './dist/utilities/commitTransaction.js';
-export { initTransaction } from './dist/utilities/initTransaction.js';
-export { killTransaction } from './dist/utilities/killTransaction.js';
-
-//# sourceMappingURL=database.js.map
\ No newline at end of file
diff --git a/packages/payload/errors.d.ts b/packages/payload/errors.d.ts
deleted file mode 100644
index 0f84d13cf..000000000
--- a/packages/payload/errors.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { APIError, AuthenticationError, DuplicateCollection, DuplicateGlobal, ErrorDeletingFile, FileUploadError, Forbidden, InvalidConfiguration, InvalidFieldName, InvalidFieldRelationship, LockedAuth, MissingCollectionLabel, MissingFieldInputOptions, MissingFieldType, MissingFile, NotFound, QueryError, ValidationError, } from './dist/errors/index.js';
-//# sourceMappingURL=errors.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/errors.js b/packages/payload/errors.js
deleted file mode 100644
index b3a2728aa..000000000
--- a/packages/payload/errors.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export { APIError, AuthenticationError, DuplicateCollection, DuplicateGlobal, ErrorDeletingFile, FileUploadError, Forbidden, InvalidConfiguration, InvalidFieldName, InvalidFieldRelationship, LockedAuth, MissingCollectionLabel, MissingFieldInputOptions, MissingFieldType, MissingFile, NotFound, QueryError, ValidationError } from './dist/errors/index.js';
-
-//# sourceMappingURL=errors.js.map
\ No newline at end of file
diff --git a/packages/payload/fields/index.d.ts b/packages/payload/fields/index.d.ts
deleted file mode 100644
index 352cb37bc..000000000
--- a/packages/payload/fields/index.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export { default as getDefaultValue } from '../dist/fields/getDefaultValue.js';
-export { default as sortableFieldTypes } from '../dist/fields/sortableFieldTypes.js';
-//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/fields/index.js b/packages/payload/fields/index.js
deleted file mode 100644
index 9e778550c..000000000
--- a/packages/payload/fields/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export { default as getDefaultValue } from '../dist/fields/getDefaultValue.js';
-export { default as sortableFieldTypes } from '../dist/fields/sortableFieldTypes.js';
-
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/packages/payload/fields/validations.d.ts b/packages/payload/fields/validations.d.ts
deleted file mode 100644
index f2bffb49d..000000000
--- a/packages/payload/fields/validations.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from '../dist/fields/validations.js';
-//# sourceMappingURL=validations.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/fields/validations.js b/packages/payload/fields/validations.js
deleted file mode 100644
index 5ad79d6b2..000000000
--- a/packages/payload/fields/validations.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from '../dist/fields/validations.js';
-
-//# sourceMappingURL=validations.js.map
\ No newline at end of file
diff --git a/packages/payload/graphql.d.ts b/packages/payload/graphql.d.ts
deleted file mode 100644
index dafb2a8de..000000000
--- a/packages/payload/graphql.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export { default as buildPaginatedListType } from './dist/graphql/schema/buildPaginatedListType';
-export { default as GraphQL } from 'graphql';
-//# sourceMappingURL=graphql.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/graphql.js b/packages/payload/graphql.js
deleted file mode 100644
index 24f4db608..000000000
--- a/packages/payload/graphql.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-function _export(target, all) {
- for(var name in all)Object.defineProperty(target, name, {
- enumerable: true,
- get: all[name]
- });
-}
-_export(exports, {
- GraphQL: function() {
- return _graphql.default;
- },
- buildPaginatedListType: function() {
- return _buildPaginatedListType.default;
- }
-});
-const _buildPaginatedListType = /*#__PURE__*/ _interop_require_default(require("./dist/graphql/schema/buildPaginatedListType"));
-const _graphql = /*#__PURE__*/ _interop_require_default(require("graphql"));
-function _interop_require_default(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
-}
-
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRzL2dyYXBocWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBidWlsZFBhZ2luYXRlZExpc3RUeXBlIH0gZnJvbSAnLi8uLi9ncmFwaHFsL3NjaGVtYS9idWlsZFBhZ2luYXRlZExpc3RUeXBlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHcmFwaFFMIH0gZnJvbSAnZ3JhcGhxbCdcbiJdLCJuYW1lcyI6WyJHcmFwaFFMIiwiYnVpbGRQYWdpbmF0ZWRMaXN0VHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFDb0JBLE9BQU87ZUFBUEEsZ0JBQU87O0lBRFBDLHNCQUFzQjtlQUF0QkEsK0JBQXNCOzs7K0VBQVE7Z0VBQ2YifQ==
\ No newline at end of file
diff --git a/packages/payload/operations.d.ts b/packages/payload/operations.d.ts
deleted file mode 100644
index 2d795ebdc..000000000
--- a/packages/payload/operations.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-export { accessOperation } from './dist/auth/operations/access.js';
-export { forgotPasswordOperation } from './dist/auth/operations/forgotPassword.js';
-export { initOperation } from './dist/auth/operations/init.js';
-export { loginOperation } from './dist/auth/operations/login.js';
-export { logoutOperation } from './dist/auth/operations/logout.js';
-export { meOperation } from './dist/auth/operations/me.js';
-export { refreshOperation } from './dist/auth/operations/refresh.js';
-export { registerFirstUserOperation } from './dist/auth/operations/registerFirstUser.js';
-export { resetPasswordOperation } from './dist/auth/operations/resetPassword.js';
-export { unlockOperation } from './dist/auth/operations/unlock.js';
-export { verifyEmailOperation } from './dist/auth/operations/verifyEmail.js';
-export { createOperation } from './dist/collections/operations/create.js';
-export { deleteOperation } from './dist/collections/operations/delete.js';
-export { deleteByIDOperation } from './dist/collections/operations/deleteByID.js';
-export { docAccessOperation } from './dist/collections/operations/docAccess.js';
-export { duplicateOperation } from './dist/collections/operations/duplicate.js';
-export { findOperation } from './dist/collections/operations/find.js';
-export { findByIDOperation } from './dist/collections/operations/findByID.js';
-export { findVersionByIDOperation } from './dist/collections/operations/findVersionByID.js';
-export { findVersionsOperation } from './dist/collections/operations/findVersions.js';
-export { restoreVersionOperation } from './dist/collections/operations/restoreVersion.js';
-export { updateOperation } from './dist/collections/operations/update.js';
-export { updateByIDOperation } from './dist/collections/operations/updateByID.js';
-export { docAccessOperation as docAccessOperationGlobal } from './dist/globals/operations/docAccess.js';
-export { findOneOperation } from './dist/globals/operations/findOne.js';
-export { findVersionByIDOperation as findVersionByIDOperationGlobal } from './dist/globals/operations/findVersionByID.js';
-export { findVersionsOperation as findVersionsOperationGlobal } from './dist/globals/operations/findVersions.js';
-export { restoreVersionOperation as restoreVersionOperationGlobal } from './dist/globals/operations/restoreVersion.js';
-export { updateOperation as updateOperationGlobal } from './dist/globals/operations/update.js';
-//# sourceMappingURL=operations.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/operations.js b/packages/payload/operations.js
deleted file mode 100644
index 6d1e2615b..000000000
--- a/packages/payload/operations.js
+++ /dev/null
@@ -1,31 +0,0 @@
-export { accessOperation } from './dist/auth/operations/access.js';
-export { forgotPasswordOperation } from './dist/auth/operations/forgotPassword.js';
-export { initOperation } from './dist/auth/operations/init.js';
-export { loginOperation } from './dist/auth/operations/login.js';
-export { logoutOperation } from './dist/auth/operations/logout.js';
-export { meOperation } from './dist/auth/operations/me.js';
-export { refreshOperation } from './dist/auth/operations/refresh.js';
-export { registerFirstUserOperation } from './dist/auth/operations/registerFirstUser.js';
-export { resetPasswordOperation } from './dist/auth/operations/resetPassword.js';
-export { unlockOperation } from './dist/auth/operations/unlock.js';
-export { verifyEmailOperation } from './dist/auth/operations/verifyEmail.js';
-export { createOperation } from './dist/collections/operations/create.js';
-export { deleteOperation } from './dist/collections/operations/delete.js';
-export { deleteByIDOperation } from './dist/collections/operations/deleteByID.js';
-export { docAccessOperation } from './dist/collections/operations/docAccess.js';
-export { duplicateOperation } from './dist/collections/operations/duplicate.js';
-export { findOperation } from './dist/collections/operations/find.js';
-export { findByIDOperation } from './dist/collections/operations/findByID.js';
-export { findVersionByIDOperation } from './dist/collections/operations/findVersionByID.js';
-export { findVersionsOperation } from './dist/collections/operations/findVersions.js';
-export { restoreVersionOperation } from './dist/collections/operations/restoreVersion.js';
-export { updateOperation } from './dist/collections/operations/update.js';
-export { updateByIDOperation } from './dist/collections/operations/updateByID.js';
-export { docAccessOperation as docAccessOperationGlobal } from './dist/globals/operations/docAccess.js';
-export { findOneOperation } from './dist/globals/operations/findOne.js';
-export { findVersionByIDOperation as findVersionByIDOperationGlobal } from './dist/globals/operations/findVersionByID.js';
-export { findVersionsOperation as findVersionsOperationGlobal } from './dist/globals/operations/findVersions.js';
-export { restoreVersionOperation as restoreVersionOperationGlobal } from './dist/globals/operations/restoreVersion.js';
-export { updateOperation as updateOperationGlobal } from './dist/globals/operations/update.js';
-
-//# sourceMappingURL=operations.js.map
\ No newline at end of file
diff --git a/packages/payload/package.json b/packages/payload/package.json
index c075efbff..f8a66f15b 100644
--- a/packages/payload/package.json
+++ b/packages/payload/package.json
@@ -41,18 +41,28 @@
"type": "module",
"exports": {
".": {
- "import": "./src/index.ts",
- "require": "./src/index.ts",
- "types": "./src/index.ts"
+ "import": "./src/exports/index.ts",
+ "require": "./src/exports/index.ts",
+ "types": "./src/exports/index.ts"
},
- "./*": {
- "import": "./src/exports/*.ts",
- "require": "./src/exports/*.ts",
- "types": "./src/exports/*.ts"
+ "./shared": {
+ "import": "./src/exports/shared.ts",
+ "require": "./src/exports/shared.ts",
+ "types": "./src/exports/shared.ts"
+ },
+ "./node": {
+ "import": "./src/exports/node.ts",
+ "require": "./src/exports/node.ts",
+ "types": "./src/exports/node.ts"
+ },
+ "./i18n/*": {
+ "import": "./src/exports/i18n/*.ts",
+ "require": "./src/exports/i18n/*.ts",
+ "types": "./src/exports/i18n/*.ts"
}
},
- "main": "./src/index.ts",
- "types": "./src/index.ts",
+ "main": "./src/exports/index.ts",
+ "types": "./src/exports/index.ts",
"bin": {
"payload": "bin.js"
},
@@ -66,8 +76,9 @@
"!jest.components.config.js"
],
"scripts": {
- "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build": "rimraf .dist && rimraf tsconfig.tsbuildinfo && pnpm copyfiles && pnpm build:types && pnpm build:swc && pnpm build:esbuild",
+ "build:esbuild": "echo skipping esbuild",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"clean:cache": "rimraf node_modules/.cache",
@@ -80,12 +91,12 @@
"dependencies": {
"@next/env": "^15.0.0-rc.0",
"@payloadcms/translations": "workspace:*",
- "@swc-node/core": "^1.13.0",
- "@swc-node/sourcemap-support": "^0.5.0",
+ "@swc-node/core": "1.13.1",
+ "@swc-node/sourcemap-support": "0.5.0",
"ajv": "8.14.0",
"bson-objectid": "2.0.4",
"ci-info": "^4.0.0",
- "conf": "10.2.0",
+ "conf": "12.0.0",
"console-table-printer": "2.11.2",
"dataloader": "2.2.2",
"deepmerge": "4.3.1",
@@ -106,9 +117,10 @@
"sanitize-filename": "1.6.3",
"scmp": "2.1.0",
"ts-essentials": "7.0.3",
- "uuid": "^9.0.1"
+ "uuid": "10.0.0"
},
"devDependencies": {
+ "@hyrious/esbuild-plugin-commonjs": "^0.2.4",
"@monaco-editor/react": "4.5.1",
"@payloadcms/eslint-config": "workspace:*",
"@types/express-fileupload": "1.4.1",
@@ -123,12 +135,13 @@
"@types/uuid": "^9.0.8",
"copyfiles": "2.4.1",
"cross-env": "7.0.3",
+ "esbuild": "^0.21.4",
"graphql-http": "^1.22.0",
"rimraf": "3.0.2",
"sharp": "0.32.6"
},
"peerDependencies": {
- "@swc/core": "^1.4.13",
+ "@swc/core": "^1.6.1",
"graphql": "^16.8.1"
},
"peerDependenciesMeta": {
@@ -142,18 +155,28 @@
"publishConfig": {
"exports": {
".": {
- "import": "./dist/index.js",
- "require": "./dist/index.js",
- "types": "./dist/index.d.ts"
+ "import": "./dist/exports/index.js",
+ "require": "./dist/exports/index.js",
+ "types": "./dist/exports/index.d.ts"
},
- "./*": {
- "import": "./dist/exports/*.js",
- "require": "./dist/exports/*.js",
- "types": "./dist/exports/*.d.ts"
+ "./node": {
+ "import": "./dist/exports/node.js",
+ "require": "./dist/exports/node.js",
+ "types": "./dist/exports/node.d.ts"
+ },
+ "./shared": {
+ "import": "./dist/exports/shared.js",
+ "require": "./dist/exports/shared.js",
+ "types": "./dist/exports/shared.d.ts"
+ },
+ "./i18n/*": {
+ "import": "./dist/exports/i18n/*.js",
+ "require": "./dist/exports/i18n/*.js",
+ "types": "./dist/exports/i18n/*.d.ts"
}
},
- "main": "./dist/index.js",
+ "main": "./dist/exports/index.js",
"registry": "https://registry.npmjs.org/",
- "types": "./dist/index.d.ts"
+ "types": "./dist/exports/index.d.ts"
}
}
diff --git a/packages/payload/src/auth/operations/local/login.ts b/packages/payload/src/auth/operations/local/login.ts
index c5f55c3dc..cd1404700 100644
--- a/packages/payload/src/auth/operations/local/login.ts
+++ b/packages/payload/src/auth/operations/local/login.ts
@@ -1,4 +1,4 @@
-import type { GeneratedTypes, Payload , RequestContext } from '../../../index.js'
+import type { GeneratedTypes, Payload, RequestContext } from '../../../index.js'
import type { PayloadRequestWithData } from '../../../types/index.js'
import type { Result } from '../login.js'
diff --git a/packages/payload/src/auth/operations/local/resetPassword.ts b/packages/payload/src/auth/operations/local/resetPassword.ts
index 28d6da698..6113474ef 100644
--- a/packages/payload/src/auth/operations/local/resetPassword.ts
+++ b/packages/payload/src/auth/operations/local/resetPassword.ts
@@ -1,4 +1,4 @@
-import type { GeneratedTypes, Payload , RequestContext } from '../../../index.js'
+import type { GeneratedTypes, Payload, RequestContext } from '../../../index.js'
import type { PayloadRequestWithData } from '../../../types/index.js'
import type { Result } from '../resetPassword.js'
diff --git a/packages/payload/src/auth/operations/local/unlock.ts b/packages/payload/src/auth/operations/local/unlock.ts
index 463518196..196c1112f 100644
--- a/packages/payload/src/auth/operations/local/unlock.ts
+++ b/packages/payload/src/auth/operations/local/unlock.ts
@@ -1,4 +1,4 @@
-import type { GeneratedTypes, Payload , RequestContext } from '../../../index.js'
+import type { GeneratedTypes, Payload, RequestContext } from '../../../index.js'
import type { PayloadRequestWithData } from '../../../types/index.js'
import { APIError } from '../../../errors/index.js'
diff --git a/packages/payload/src/auth/operations/local/verifyEmail.ts b/packages/payload/src/auth/operations/local/verifyEmail.ts
index 76411573e..053ec7da0 100644
--- a/packages/payload/src/auth/operations/local/verifyEmail.ts
+++ b/packages/payload/src/auth/operations/local/verifyEmail.ts
@@ -1,4 +1,4 @@
-import type { GeneratedTypes, Payload , RequestContext } from '../../../index.js'
+import type { GeneratedTypes, Payload, RequestContext } from '../../../index.js'
import type { PayloadRequestWithData } from '../../../types/index.js'
import { APIError } from '../../../errors/index.js'
diff --git a/packages/payload/src/auth/operations/refresh.ts b/packages/payload/src/auth/operations/refresh.ts
index 6ece98f34..a3362f79b 100644
--- a/packages/payload/src/auth/operations/refresh.ts
+++ b/packages/payload/src/auth/operations/refresh.ts
@@ -2,7 +2,7 @@ import jwt from 'jsonwebtoken'
import url from 'url'
import type { BeforeOperationHook, Collection } from '../../collections/config/types.js'
-import type { Document , PayloadRequestWithData } from '../../types/index.js'
+import type { Document, PayloadRequestWithData } from '../../types/index.js'
import { buildAfterOperation } from '../../collections/operations/utils.js'
import { Forbidden } from '../../errors/index.js'
diff --git a/packages/payload/src/collections/operations/local/create.ts b/packages/payload/src/collections/operations/local/create.ts
index c3695dc35..2cc119b1f 100644
--- a/packages/payload/src/collections/operations/local/create.ts
+++ b/packages/payload/src/collections/operations/local/create.ts
@@ -1,6 +1,6 @@
import type { MarkOptional } from 'ts-essentials'
-import type { GeneratedTypes , Payload } from '../../../index.js'
+import type { GeneratedTypes, Payload } from '../../../index.js'
import type { Document, PayloadRequestWithData, RequestContext } from '../../../types/index.js'
import type { File } from '../../../uploads/types.js'
diff --git a/packages/payload/src/collections/operations/local/delete.ts b/packages/payload/src/collections/operations/local/delete.ts
index 6dbbed3d1..6515014f2 100644
--- a/packages/payload/src/collections/operations/local/delete.ts
+++ b/packages/payload/src/collections/operations/local/delete.ts
@@ -1,5 +1,10 @@
-import type { GeneratedTypes , Payload } from '../../../index.js'
-import type { Document, PayloadRequestWithData , RequestContext, Where } from '../../../types/index.js'
+import type { GeneratedTypes, Payload } from '../../../index.js'
+import type {
+ Document,
+ PayloadRequestWithData,
+ RequestContext,
+ Where,
+} from '../../../types/index.js'
import type { BulkOperationResult } from '../../config/types.js'
import { APIError } from '../../../errors/index.js'
diff --git a/packages/payload/src/config/shared/openGraphSchema.ts b/packages/payload/src/config/shared/openGraphSchema.ts
index 057295718..6ce779ce0 100644
--- a/packages/payload/src/config/shared/openGraphSchema.ts
+++ b/packages/payload/src/config/shared/openGraphSchema.ts
@@ -11,6 +11,6 @@ const ogImageObj = joi.object({
export const openGraphSchema = joi.object({
description: joi.string(),
images: joi.alternatives().try(ogImageObj, joi.array().items(ogImageObj)),
- title: joi.string(),
siteName: joi.string(),
+ title: joi.string(),
})
diff --git a/packages/payload/src/exports/auth.ts b/packages/payload/src/exports/auth.ts
deleted file mode 100644
index 936016a2d..000000000
--- a/packages/payload/src/exports/auth.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-export * from '../auth/index.js'
-export { default as executeAccess } from '../auth/executeAccess.js'
-export { executeAuthStrategies } from '../auth/executeAuthStrategies.js'
-export { getAccessResults } from '../auth/getAccessResults.js'
-export { getFieldsToSign } from '../auth/getFieldsToSign.js'
-
-export type {
- AuthStrategyFunction,
- AuthStrategyFunctionArgs,
- CollectionPermission,
- FieldPermissions,
- GlobalPermission,
- IncomingAuthType,
- Permission,
- Permissions,
- User,
- VerifyConfig,
-} from '../auth/types.js'
diff --git a/packages/payload/src/exports/config.ts b/packages/payload/src/exports/config.ts
deleted file mode 100644
index 4ea145123..000000000
--- a/packages/payload/src/exports/config.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export { buildConfig } from '../config/build.js'
-export * from '../config/types.js'
-
-export type { FieldTypes } from '../admin/forms/FieldTypes.js'
-export { createClientCollectionConfig } from '../collections/config/client.js'
-export { defaults as collectionDefaults } from '../collections/config/defaults.js'
-export { createClientConfig } from '../config/client.js'
-export { defaults } from '../config/defaults.js'
-export { sanitizeConfig } from '../config/sanitize.js'
-export { baseBlockFields } from '../fields/baseFields/baseBlockFields.js'
-export { baseIDField } from '../fields/baseFields/baseIDField.js'
-export { createClientFieldConfig } from '../fields/config/client.js'
-export { sanitizeFields } from '../fields/config/sanitize.js'
-export { createClientGlobalConfig } from '../globals/config/client.js'
diff --git a/packages/payload/src/exports/database.ts b/packages/payload/src/exports/database.ts
deleted file mode 100644
index 49bb69bdf..000000000
--- a/packages/payload/src/exports/database.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-export type {
- BaseDatabaseAdapter,
- BeginTransaction,
- CommitTransaction,
- Connect,
- Count,
- CountArgs,
- Create,
- CreateArgs,
- CreateGlobal,
- CreateGlobalArgs,
- CreateGlobalVersion,
- CreateGlobalVersionArgs,
- CreateMigration,
- CreateVersion,
- CreateVersionArgs,
- DBIdentifierName,
- DatabaseAdapterResult as DatabaseAdapterObj,
- DeleteMany,
- DeleteManyArgs,
- DeleteOne,
- DeleteOneArgs,
- DeleteVersions,
- DeleteVersionsArgs,
- Destroy,
- Find,
- FindArgs,
- FindGlobal,
- FindGlobalArgs,
- FindGlobalVersions,
- FindGlobalVersionsArgs,
- FindOne,
- FindOneArgs,
- FindVersions,
- FindVersionsArgs,
- Init,
- Migration,
- MigrationData,
- MigrationTemplateArgs,
- PaginatedDocs,
- QueryDrafts,
- QueryDraftsArgs,
- RollbackTransaction,
- Transaction,
- TypeWithVersion,
- UpdateGlobal,
- UpdateGlobalArgs,
- UpdateGlobalVersion,
- UpdateGlobalVersionArgs,
- UpdateOne,
- UpdateOneArgs,
- UpdateVersion,
- UpdateVersionArgs,
-} from '../database/types.js'
-
-export type * from '../database/queryValidation/types.js'
-
-export { combineQueries } from '../database/combineQueries.js'
-
-export { createDatabaseAdapter } from '../database/createDatabaseAdapter.js'
-
-export { default as flattenWhereToOperators } from '../database/flattenWhereToOperators.js'
-
-export { getLocalizedPaths } from '../database/getLocalizedPaths.js'
-
-export { createMigration } from '../database/migrations/createMigration.js'
-
-export { getMigrations } from '../database/migrations/getMigrations.js'
-
-export { getPredefinedMigration } from '../database/migrations/getPredefinedMigration.js'
-
-export { migrate } from '../database/migrations/migrate.js'
-
-export { migrateDown } from '../database/migrations/migrateDown.js'
-
-export { migrateRefresh } from '../database/migrations/migrateRefresh.js'
-
-export { migrateReset } from '../database/migrations/migrateReset.js'
-
-export { migrateStatus } from '../database/migrations/migrateStatus.js'
-
-export { migrationTemplate } from '../database/migrations/migrationTemplate.js'
-
-export { migrationsCollection } from '../database/migrations/migrationsCollection.js'
-
-export { readMigrationFiles } from '../database/migrations/readMigrationFiles.js'
-
-export type { EntityPolicies, PathToQuery } from '../database/queryValidation/types.js'
-
-export { validateQueryPaths } from '../database/queryValidation/validateQueryPaths.js'
-
-export { validateSearchParam } from '../database/queryValidation/validateSearchParams.js'
-
-export { commitTransaction } from '../utilities/commitTransaction.js'
-export { initTransaction } from '../utilities/initTransaction.js'
-export { killTransaction } from '../utilities/killTransaction.js'
diff --git a/packages/payload/src/exports/errors.ts b/packages/payload/src/exports/errors.ts
deleted file mode 100644
index 05855f93e..000000000
--- a/packages/payload/src/exports/errors.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-export {
- APIError,
- AuthenticationError,
- DuplicateCollection,
- DuplicateFieldName,
- DuplicateGlobal,
- ErrorDeletingFile,
- FileRetrievalError,
- FileUploadError,
- Forbidden,
- InvalidConfiguration,
- InvalidFieldName,
- InvalidFieldRelationship,
- LockedAuth,
- MissingCollectionLabel,
- MissingEditorProp,
- MissingFieldInputOptions,
- MissingFieldType,
- MissingFile,
- NotFound,
- QueryError,
- ValidationError,
-} from '../errors/index.js'
diff --git a/packages/payload/src/exports/fields/index.ts b/packages/payload/src/exports/fields/index.ts
deleted file mode 100644
index c962d6b13..000000000
--- a/packages/payload/src/exports/fields/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { default as getDefaultValue } from '../../fields/getDefaultValue.js'
-export { default as sortableFieldTypes } from '../../fields/sortableFieldTypes.js'
diff --git a/packages/payload/src/exports/fields/validations.ts b/packages/payload/src/exports/fields/validations.ts
deleted file mode 100644
index ce5621f41..000000000
--- a/packages/payload/src/exports/fields/validations.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '../../fields/validations.js'
diff --git a/packages/payload/src/exports/i18n.ts b/packages/payload/src/exports/i18n.ts
deleted file mode 100644
index 607795920..000000000
--- a/packages/payload/src/exports/i18n.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { getLocalI18n } from '../translations/getLocalI18n.js'
diff --git a/packages/payload/src/exports/index.ts b/packages/payload/src/exports/index.ts
new file mode 100644
index 000000000..713056d4b
--- /dev/null
+++ b/packages/payload/src/exports/index.ts
@@ -0,0 +1,359 @@
+export * from './../types/index.js'
+export type * from '../admin/types.js'
+export type * from '../uploads/types.js'
+
+export type { MeOperationResult } from '../auth/operations/me.js'
+
+export { createDataloaderCacheKey, getDataLoader } from '../collections/dataloader.js'
+
+export { buildConfig } from '../config/build.js'
+
+export type { EmailAdapter as PayloadEmailAdapter, SendEmailOptions } from '../email/types.js'
+
+export {
+ APIError,
+ AuthenticationError,
+ DuplicateCollection,
+ DuplicateFieldName,
+ DuplicateGlobal,
+ ErrorDeletingFile,
+ FileRetrievalError,
+ FileUploadError,
+ Forbidden,
+ InvalidConfiguration,
+ InvalidFieldName,
+ InvalidFieldRelationship,
+ LockedAuth,
+ MissingCollectionLabel,
+ MissingEditorProp,
+ MissingFieldInputOptions,
+ MissingFieldType,
+ MissingFile,
+ NotFound,
+ QueryError,
+ ValidationError,
+} from '../errors/index.js'
+export { traverseFields as afterChangeTraverseFields } from '../fields/hooks/afterChange/traverseFields.js'
+export { promise as afterReadPromise } from '../fields/hooks/afterRead/promise.js'
+
+export { traverseFields as afterReadTraverseFields } from '../fields/hooks/afterRead/traverseFields.js'
+
+export { traverseFields as beforeChangeTraverseFields } from '../fields/hooks/beforeChange/traverseFields.js'
+
+export { traverseFields as beforeValidateTraverseFields } from '../fields/hooks/beforeValidate/traverseFields.js'
+
+export type {
+ CollapsedPreferences,
+ DocumentPreferences,
+ FieldsPreferences,
+ InsideFieldsPreferences,
+ PreferenceRequest,
+ PreferenceUpdateRequest,
+ TabsPreferences,
+} from '../preferences/types.js'
+export { getLocalI18n } from '../translations/getLocalI18n.js'
+
+export { combineMerge } from '../utilities/combineMerge.js'
+export {
+ configToJSONSchema,
+ entityToJSONSchema,
+ fieldsToJSONSchema,
+ withNullableJSONSchemaType,
+} from '../utilities/configToJSONSchema.js'
+export { createArrayFromCommaDelineated } from '../utilities/createArrayFromCommaDelineated.js'
+export { createLocalReq } from '../utilities/createLocalReq.js'
+
+export { default as flattenTopLevelFields } from '../utilities/flattenTopLevelFields.js'
+export { formatLabels, formatNames, toWords } from '../utilities/formatLabels.js'
+
+export { getCollectionIDFieldTypes } from '../utilities/getCollectionIDFieldTypes.js'
+export { getObjectDotNotation } from '../utilities/getObjectDotNotation.js'
+
+export { isEntityHidden } from '../utilities/isEntityHidden.js'
+
+export { isPlainObject } from '../utilities/isPlainObject.js'
+
+export { isValidID } from '../utilities/isValidID.js'
+export { default as isolateObjectProperty } from '../utilities/isolateObjectProperty.js'
+
+export { mapAsync } from '../utilities/mapAsync.js'
+
+export { mergeListSearchAndWhere } from '../utilities/mergeListSearchAndWhere.js'
+
+export { buildVersionCollectionFields } from '../versions/buildCollectionFields.js'
+export { buildVersionGlobalFields } from '../versions/buildGlobalFields.js'
+export { versionDefaults } from '../versions/defaults.js'
+export { deleteCollectionVersions } from '../versions/deleteCollectionVersions.js'
+export { enforceMaxVersions } from '../versions/enforceMaxVersions.js'
+export { getLatestCollectionVersion } from '../versions/getLatestCollectionVersion.js'
+export { getLatestGlobalVersion } from '../versions/getLatestGlobalVersion.js'
+
+export { saveVersion } from '../versions/saveVersion.js'
+export type { TypeWithVersion } from '../versions/types.js'
+export type { ClientCollectionConfig } from './../collections/config/client.js'
+export type {
+ AfterChangeHook as CollectionAfterChangeHook,
+ AfterDeleteHook as CollectionAfterDeleteHook,
+ AfterErrorHook as CollectionAfterErrorHook,
+ AfterForgotPasswordHook as CollectionAfterForgotPasswordHook,
+ AfterLoginHook as CollectionAfterLoginHook,
+ AfterOperationHook as CollectionAfterOperationHook,
+ AfterReadHook as CollectionAfterReadHook,
+ BeforeChangeHook as CollectionBeforeChangeHook,
+ BeforeDeleteHook as CollectionBeforeDeleteHook,
+ BeforeLoginHook as CollectionBeforeLoginHook,
+ BeforeOperationHook as CollectionBeforeOperationHook,
+ BeforeReadHook as CollectionBeforeReadHook,
+ BeforeValidateHook as CollectionBeforeValidateHook,
+ Collection,
+ CollectionConfig,
+ SanitizedCollectionConfig,
+ TypeWithID,
+ TypeWithTimestamps,
+} from './../collections/config/types.js'
+export type { ClientConfig } from './../config/client.js'
+export type {
+ Access,
+ AccessArgs,
+ EditViewComponent,
+ EntityDescription,
+ EntityDescriptionComponent,
+ EntityDescriptionFunction,
+ SanitizedConfig,
+} from './../config/types.js'
+export type { ClientFieldConfig } from './../fields/config/client.js'
+export type {
+ ArrayField,
+ Block,
+ BlockField,
+ CheckboxField,
+ ClientValidate,
+ CodeField,
+ CollapsibleField,
+ Condition,
+ DateField,
+ EmailField,
+ Field,
+ FieldAccess,
+ FieldAffectingData,
+ FieldBase,
+ FieldHook,
+ FieldHookArgs,
+ FieldPresentationalOnly,
+ FieldWithMany,
+ FieldWithMaxDepth,
+ FieldWithPath,
+ FieldWithSubFields,
+ FilterOptions,
+ FilterOptionsProps,
+ GroupField,
+ HookName,
+ JSONField,
+ Labels,
+ NamedTab,
+ NonPresentationalField,
+ NumberField,
+ Option,
+ OptionObject,
+ PointField,
+ PolymorphicRelationshipField,
+ RadioField,
+ RelationshipField,
+ RelationshipValue,
+ RichTextField,
+ RowAdmin,
+ RowField,
+ SelectField,
+ SingleRelationshipField,
+ Tab,
+ TabAsField,
+ TabsAdmin,
+ TabsField,
+ TextField,
+ TextareaField,
+ UIField,
+ UnnamedTab,
+ UploadField,
+ Validate,
+ ValidateOptions,
+ ValueWithRelation,
+} from './../fields/config/types.js'
+
+export type { ClientGlobalConfig } from './../globals/config/client.js'
+export type {
+ AfterChangeHook as GlobalAfterChangeHook,
+ AfterReadHook as GlobalAfterReadHook,
+ BeforeChangeHook as GlobalBeforeChangeHook,
+ BeforeReadHook as GlobalBeforeReadHook,
+ BeforeValidateHook as GlobalBeforeValidateHook,
+ GlobalConfig,
+ SanitizedGlobalConfig,
+} from './../globals/config/types.js'
+export * from '../config/types.js'
+
+export type { FieldTypes } from '../admin/forms/FieldTypes.js'
+export type {
+ AuthStrategyFunction,
+ AuthStrategyFunctionArgs,
+ CollectionPermission,
+ DocumentPermissions,
+ FieldPermissions,
+ GlobalPermission,
+ IncomingAuthType,
+ Permission,
+ Permissions,
+ User,
+ VerifyConfig,
+} from '../auth/types.js'
+export { createClientCollectionConfig } from '../collections/config/client.js'
+export { createClientConfig } from '../config/client.js'
+
+export { defaults } from '../config/defaults.js'
+export type {
+ BaseDatabaseAdapter,
+ BeginTransaction,
+ CommitTransaction,
+ Connect,
+ Count,
+ CountArgs,
+ Create,
+ CreateArgs,
+ CreateGlobal,
+ CreateGlobalArgs,
+ CreateGlobalVersion,
+ CreateGlobalVersionArgs,
+ CreateMigration,
+ CreateVersion,
+ CreateVersionArgs,
+ DBIdentifierName,
+ DatabaseAdapterResult as DatabaseAdapterObj,
+ DeleteMany,
+ DeleteManyArgs,
+ DeleteOne,
+ DeleteOneArgs,
+ DeleteVersions,
+ DeleteVersionsArgs,
+ Destroy,
+ Find,
+ FindArgs,
+ FindGlobal,
+ FindGlobalArgs,
+ FindGlobalVersions,
+ FindGlobalVersionsArgs,
+ FindOne,
+ FindOneArgs,
+ FindVersions,
+ FindVersionsArgs,
+ Init,
+ Migration,
+ MigrationData,
+ MigrationTemplateArgs,
+ PaginatedDocs,
+ QueryDrafts,
+ QueryDraftsArgs,
+ RollbackTransaction,
+ Transaction,
+ UpdateGlobal,
+ UpdateGlobalArgs,
+ UpdateGlobalVersion,
+ UpdateGlobalVersionArgs,
+ UpdateOne,
+ UpdateOneArgs,
+ UpdateVersion,
+ UpdateVersionArgs,
+} from '../database/types.js'
+export { baseBlockFields } from '../fields/baseFields/baseBlockFields.js'
+export { baseIDField } from '../fields/baseFields/baseIDField.js'
+export { createClientFieldConfig } from '../fields/config/client.js'
+export { sanitizeFields } from '../fields/config/sanitize.js'
+
+export { createClientGlobalConfig } from '../globals/config/client.js'
+
+export type * from '../database/queryValidation/types.js'
+
+export { accessOperation } from '../auth/operations/access.js'
+export { forgotPasswordOperation } from '../auth/operations/forgotPassword.js'
+export { initOperation } from '../auth/operations/init.js'
+export { loginOperation } from '../auth/operations/login.js'
+
+export { logoutOperation } from '../auth/operations/logout.js'
+export { meOperation } from '../auth/operations/me.js'
+export { refreshOperation } from '../auth/operations/refresh.js'
+export { registerFirstUserOperation } from '../auth/operations/registerFirstUser.js'
+export { resetPasswordOperation } from '../auth/operations/resetPassword.js'
+export { unlockOperation } from '../auth/operations/unlock.js'
+export { verifyEmailOperation } from '../auth/operations/verifyEmail.js'
+export { countOperation } from '../collections/operations/count.js'
+export { createOperation } from '../collections/operations/create.js'
+export { deleteOperation } from '../collections/operations/delete.js'
+export { deleteByIDOperation } from '../collections/operations/deleteByID.js'
+export { docAccessOperation } from '../collections/operations/docAccess.js'
+
+export { duplicateOperation } from '../collections/operations/duplicate.js'
+export { findOperation } from '../collections/operations/find.js'
+export { findByIDOperation } from '../collections/operations/findByID.js'
+export { findVersionByIDOperation } from '../collections/operations/findVersionByID.js'
+export { findVersionsOperation } from '../collections/operations/findVersions.js'
+export { restoreVersionOperation } from '../collections/operations/restoreVersion.js'
+export { updateOperation } from '../collections/operations/update.js'
+export { updateByIDOperation } from '../collections/operations/updateByID.js'
+export { sanitizeConfig } from '../config/sanitize.js'
+export type { EntityPolicies, PathToQuery } from '../database/queryValidation/types.js'
+export { default as getDefaultValue } from '../fields/getDefaultValue.js'
+export { default as sortableFieldTypes } from '../fields/sortableFieldTypes.js'
+
+export { docAccessOperation as docAccessOperationGlobal } from '../globals/operations/docAccess.js'
+export { findOneOperation } from '../globals/operations/findOne.js'
+export { findVersionByIDOperation as findVersionByIDOperationGlobal } from '../globals/operations/findVersionByID.js'
+export { findVersionsOperation as findVersionsOperationGlobal } from '../globals/operations/findVersions.js'
+export { restoreVersionOperation as restoreVersionOperationGlobal } from '../globals/operations/restoreVersion.js'
+export { updateOperation as updateOperationGlobal } from '../globals/operations/update.js'
+export type { DatabaseAdapter, GeneratedTypes, Payload, RequestContext } from '../index.js'
+
+export * from '../auth/index.js'
+export { default as executeAccess } from '../auth/executeAccess.js'
+export { executeAuthStrategies } from '../auth/executeAuthStrategies.js'
+export { getAccessResults } from '../auth/getAccessResults.js'
+export { getFieldsToSign } from '../auth/getFieldsToSign.js'
+export { combineQueries } from '../database/combineQueries.js'
+
+export { createDatabaseAdapter } from '../database/createDatabaseAdapter.js'
+
+export { default as flattenWhereToOperators } from '../database/flattenWhereToOperators.js'
+
+export { getLocalizedPaths } from '../database/getLocalizedPaths.js'
+
+export { createMigration } from '../database/migrations/createMigration.js'
+
+export { getMigrations } from '../database/migrations/getMigrations.js'
+
+export { getPredefinedMigration } from '../database/migrations/getPredefinedMigration.js'
+
+export { migrate } from '../database/migrations/migrate.js'
+
+export { migrateDown } from '../database/migrations/migrateDown.js'
+
+export { migrateRefresh } from '../database/migrations/migrateRefresh.js'
+
+export { migrateReset } from '../database/migrations/migrateReset.js'
+
+export { migrateStatus } from '../database/migrations/migrateStatus.js'
+
+export { migrationTemplate } from '../database/migrations/migrationTemplate.js'
+
+export { migrationsCollection } from '../database/migrations/migrationsCollection.js'
+
+export { readMigrationFiles } from '../database/migrations/readMigrationFiles.js'
+
+export { validateQueryPaths } from '../database/queryValidation/validateQueryPaths.js'
+
+export { validateSearchParam } from '../database/queryValidation/validateSearchParams.js'
+
+export { BasePayload, default, getPayload } from '../index.js'
+export { getFileByPath } from '../uploads/getFileByPath.js'
+
+export { commitTransaction } from '../utilities/commitTransaction.js'
+
+export { initTransaction } from '../utilities/initTransaction.js'
+
+export { killTransaction } from '../utilities/killTransaction.js'
diff --git a/packages/payload/src/exports/node.ts b/packages/payload/src/exports/node.ts
index 0d38bb8a3..3815010e4 100644
--- a/packages/payload/src/exports/node.ts
+++ b/packages/payload/src/exports/node.ts
@@ -1,5 +1,5 @@
/**
- * WARNING: This file contains exports that can only be safely used on the server.
+ * WARNING: This file contains exports that can only be safely used in Node environments.
*/
export { generateTypes } from '../bin/generateTypes.js'
diff --git a/packages/payload/src/exports/operations.ts b/packages/payload/src/exports/operations.ts
deleted file mode 100644
index 878a25ebe..000000000
--- a/packages/payload/src/exports/operations.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-export { accessOperation } from '../auth/operations/access.js'
-export { forgotPasswordOperation } from '../auth/operations/forgotPassword.js'
-export { initOperation } from '../auth/operations/init.js'
-export { loginOperation } from '../auth/operations/login.js'
-export { logoutOperation } from '../auth/operations/logout.js'
-export { meOperation } from '../auth/operations/me.js'
-export { refreshOperation } from '../auth/operations/refresh.js'
-export { registerFirstUserOperation } from '../auth/operations/registerFirstUser.js'
-export { resetPasswordOperation } from '../auth/operations/resetPassword.js'
-export { unlockOperation } from '../auth/operations/unlock.js'
-export { verifyEmailOperation } from '../auth/operations/verifyEmail.js'
-export { countOperation } from '../collections/operations/count.js'
-
-export { createOperation } from '../collections/operations/create.js'
-export { deleteOperation } from '../collections/operations/delete.js'
-export { deleteByIDOperation } from '../collections/operations/deleteByID.js'
-export { docAccessOperation } from '../collections/operations/docAccess.js'
-export { duplicateOperation } from '../collections/operations/duplicate.js'
-export { findOperation } from '../collections/operations/find.js'
-export { findByIDOperation } from '../collections/operations/findByID.js'
-export { findVersionByIDOperation } from '../collections/operations/findVersionByID.js'
-export { findVersionsOperation } from '../collections/operations/findVersions.js'
-export { restoreVersionOperation } from '../collections/operations/restoreVersion.js'
-export { updateOperation } from '../collections/operations/update.js'
-export { updateByIDOperation } from '../collections/operations/updateByID.js'
-
-export { docAccessOperation as docAccessOperationGlobal } from '../globals/operations/docAccess.js'
-export { findOneOperation } from '../globals/operations/findOne.js'
-export { findVersionByIDOperation as findVersionByIDOperationGlobal } from '../globals/operations/findVersionByID.js'
-export { findVersionsOperation as findVersionsOperationGlobal } from '../globals/operations/findVersions.js'
-export { restoreVersionOperation as restoreVersionOperationGlobal } from '../globals/operations/restoreVersion.js'
-export { updateOperation as updateOperationGlobal } from '../globals/operations/update.js'
diff --git a/packages/payload/src/exports/shared.ts b/packages/payload/src/exports/shared.ts
new file mode 100644
index 000000000..8a2b60cff
--- /dev/null
+++ b/packages/payload/src/exports/shared.ts
@@ -0,0 +1,51 @@
+export * from '../fields/validations.js'
+export { defaults as collectionDefaults } from '../collections/config/defaults.js'
+export { serverProps } from '../config/types.js'
+
+export {
+ fieldAffectsData,
+ fieldHasMaxDepth,
+ fieldHasSubFields,
+ fieldIsArrayType,
+ fieldIsBlockType,
+ fieldIsGroupType,
+ fieldIsLocalized,
+ fieldIsPresentationalOnly,
+ fieldSupportsMany,
+ optionIsObject,
+ optionIsValue,
+ optionsAreObjects,
+ tabHasName,
+ valueIsValueWithRelation,
+} from '../fields/config/types.js'
+
+export { validOperators } from '../types/constants.js'
+export { formatFilesize } from '../uploads/formatFilesize.js'
+
+export { isImage } from '../uploads/isImage.js'
+
+export { deepCopyObject } from '../utilities/deepCopyObject.js'
+
+export { deepMerge } from '../utilities/deepMerge.js'
+
+export { fieldSchemaToJSON } from '../utilities/fieldSchemaToJSON.js'
+
+export { getUniqueListBy } from '../utilities/getUniqueListBy.js'
+
+export { isNumber } from '../utilities/isNumber.js'
+
+export {
+ isReactClientComponent,
+ isReactComponentOrFunction,
+ isReactServerComponentOrFunction,
+} from '../utilities/isReactComponent.js'
+
+export { setsAreEqual } from '../utilities/setsAreEqual.js'
+
+export { default as toKebabCase } from '../utilities/toKebabCase.js'
+
+export { wait } from '../utilities/wait.js'
+
+export { default as wordBoundariesRegex } from '../utilities/wordBoundariesRegex.js'
+
+export { versionDefaults } from '../versions/defaults.js'
diff --git a/packages/payload/src/exports/types.ts b/packages/payload/src/exports/types.ts
deleted file mode 100644
index 493ff9708..000000000
--- a/packages/payload/src/exports/types.ts
+++ /dev/null
@@ -1,139 +0,0 @@
-export * from './../types/index.js'
-export type * from '../admin/types.js'
-export type * from '../uploads/types.js'
-
-export type { DocumentPermissions, FieldPermissions } from '../auth/index.js'
-export type { MeOperationResult } from '../auth/operations/me.js'
-
-export type { EmailAdapter as PayloadEmailAdapter, SendEmailOptions } from '../email/types.js'
-
-export type {
- CollapsedPreferences,
- DocumentPreferences,
- FieldsPreferences,
- InsideFieldsPreferences,
- PreferenceRequest,
- PreferenceUpdateRequest,
- TabsPreferences,
-} from '../preferences/types.js'
-
-export type { ClientCollectionConfig } from './../collections/config/client.js'
-
-export type {
- AfterChangeHook as CollectionAfterChangeHook,
- AfterDeleteHook as CollectionAfterDeleteHook,
- AfterErrorHook as CollectionAfterErrorHook,
- AfterForgotPasswordHook as CollectionAfterForgotPasswordHook,
- AfterLoginHook as CollectionAfterLoginHook,
- AfterOperationHook as CollectionAfterOperationHook,
- AfterReadHook as CollectionAfterReadHook,
- BeforeChangeHook as CollectionBeforeChangeHook,
- BeforeDeleteHook as CollectionBeforeDeleteHook,
- BeforeLoginHook as CollectionBeforeLoginHook,
- BeforeOperationHook as CollectionBeforeOperationHook,
- BeforeReadHook as CollectionBeforeReadHook,
- BeforeValidateHook as CollectionBeforeValidateHook,
- Collection,
- CollectionConfig,
- SanitizedCollectionConfig,
- TypeWithID,
- TypeWithTimestamps,
-} from './../collections/config/types.js'
-export type { ClientConfig } from './../config/client.js'
-export type {
- Access,
- AccessArgs,
- EditViewComponent,
- EntityDescription,
- EntityDescriptionComponent,
- EntityDescriptionFunction,
- SanitizedConfig,
-} from './../config/types.js'
-export type { ClientFieldConfig } from './../fields/config/client.js'
-
-export type {
- ArrayField,
- Block,
- BlockField,
- CheckboxField,
- ClientValidate,
- CodeField,
- CollapsibleField,
- Condition,
- DateField,
- EmailField,
- Field,
- FieldAccess,
- FieldAffectingData,
- FieldBase,
- FieldHook,
- FieldHookArgs,
- FieldPresentationalOnly,
- FieldWithMany,
- FieldWithMaxDepth,
- FieldWithPath,
- FieldWithSubFields,
- FilterOptions,
- FilterOptionsProps,
- GroupField,
- HookName,
- JSONField,
- Labels,
- NamedTab,
- NonPresentationalField,
- NumberField,
- Option,
- OptionObject,
- PointField,
- PolymorphicRelationshipField,
- RadioField,
- RelationshipField,
- RelationshipValue,
- RichTextField,
- RowAdmin,
- RowField,
- SelectField,
- SingleRelationshipField,
- Tab,
- TabAsField,
- TabsAdmin,
- TabsField,
- TextField,
- TextareaField,
- UIField,
- UnnamedTab,
- UploadField,
- Validate,
- ValidateOptions,
- ValueWithRelation,
-} from './../fields/config/types.js'
-
-export {
- fieldAffectsData,
- fieldHasMaxDepth,
- fieldHasSubFields,
- fieldIsArrayType,
- fieldIsBlockType,
- fieldIsGroupType,
- fieldIsLocalized,
- fieldIsPresentationalOnly,
- fieldSupportsMany,
- optionIsObject,
- optionIsValue,
- optionsAreObjects,
- tabHasName,
- valueIsValueWithRelation,
-} from './../fields/config/types.js'
-
-export type { ClientGlobalConfig } from './../globals/config/client.js'
-
-export type {
- AfterChangeHook as GlobalAfterChangeHook,
- AfterReadHook as GlobalAfterReadHook,
- BeforeChangeHook as GlobalBeforeChangeHook,
- BeforeReadHook as GlobalBeforeReadHook,
- BeforeValidateHook as GlobalBeforeValidateHook,
- GlobalConfig,
- SanitizedGlobalConfig,
-} from './../globals/config/types.js'
-export { validOperators } from './../types/constants.js'
diff --git a/packages/payload/src/exports/uploads.ts b/packages/payload/src/exports/uploads.ts
deleted file mode 100644
index 5fd9c289d..000000000
--- a/packages/payload/src/exports/uploads.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { getFileByPath } from '../uploads/getFileByPath.js'
diff --git a/packages/payload/src/exports/utilities.ts b/packages/payload/src/exports/utilities.ts
deleted file mode 100644
index 4528d6ae7..000000000
--- a/packages/payload/src/exports/utilities.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * WARNING: This file contains exports that can only be safely used on the front-end
- */
-
-export { createDataloaderCacheKey, getDataLoader } from '../collections/dataloader.js'
-export { default as getDefaultValue } from '../fields/getDefaultValue.js'
-export { traverseFields as afterChangeTraverseFields } from '../fields/hooks/afterChange/traverseFields.js'
-export { promise as afterReadPromise } from '../fields/hooks/afterRead/promise.js'
-export { traverseFields as afterReadTraverseFields } from '../fields/hooks/afterRead/traverseFields.js'
-export { traverseFields as beforeChangeTraverseFields } from '../fields/hooks/beforeChange/traverseFields.js'
-export { traverseFields as beforeValidateTraverseFields } from '../fields/hooks/beforeValidate/traverseFields.js'
-
-export { formatFilesize } from '../uploads/formatFilesize.js'
-
-export { isImage } from '../uploads/isImage.js'
-
-export { combineMerge } from '../utilities/combineMerge.js'
-export {
- configToJSONSchema,
- entityToJSONSchema,
- fieldsToJSONSchema,
- withNullableJSONSchemaType,
-} from '../utilities/configToJSONSchema.js'
-
-export { createArrayFromCommaDelineated } from '../utilities/createArrayFromCommaDelineated.js'
-export { createLocalReq } from '../utilities/createLocalReq.js'
-export { deepCopyObject } from '../utilities/deepCopyObject.js'
-
-export { deepMerge } from '../utilities/deepMerge.js'
-export { fieldSchemaToJSON } from '../utilities/fieldSchemaToJSON.js'
-
-export { default as flattenTopLevelFields } from '../utilities/flattenTopLevelFields.js'
-
-export { formatLabels, formatNames, toWords } from '../utilities/formatLabels.js'
-export { getCollectionIDFieldTypes } from '../utilities/getCollectionIDFieldTypes.js'
-export { getObjectDotNotation } from '../utilities/getObjectDotNotation.js'
-
-export { default as getUniqueListBy } from '../utilities/getUniqueListBy.js'
-
-export { isEntityHidden } from '../utilities/isEntityHidden.js'
-export { isNumber } from '../utilities/isNumber.js'
-
-export { isPlainObject } from '../utilities/isPlainObject.js'
-export {
- isReactClientComponent,
- isReactComponentOrFunction,
- isReactServerComponentOrFunction,
-} from '../utilities/isReactComponent.js'
-export { isValidID } from '../utilities/isValidID.js'
-
-export { default as isolateObjectProperty } from '../utilities/isolateObjectProperty.js'
-export { mapAsync } from '../utilities/mapAsync.js'
-export { mergeListSearchAndWhere } from '../utilities/mergeListSearchAndWhere.js'
-export { setsAreEqual } from '../utilities/setsAreEqual.js'
-export { default as toKebabCase } from '../utilities/toKebabCase.js'
-export { wait } from '../utilities/wait.js'
-export { default as wordBoundariesRegex } from '../utilities/wordBoundariesRegex.js'
diff --git a/packages/payload/src/exports/versions.ts b/packages/payload/src/exports/versions.ts
deleted file mode 100644
index e911ca3a9..000000000
--- a/packages/payload/src/exports/versions.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export { buildVersionCollectionFields } from '../versions/buildCollectionFields.js'
-export { buildVersionGlobalFields } from '../versions/buildGlobalFields.js'
-export { versionDefaults } from '../versions/defaults.js'
-export { deleteCollectionVersions } from '../versions/deleteCollectionVersions.js'
-export { enforceMaxVersions } from '../versions/enforceMaxVersions.js'
-export { getLatestCollectionVersion } from '../versions/getLatestCollectionVersion.js'
-export { getLatestGlobalVersion } from '../versions/getLatestGlobalVersion.js'
-export { saveVersion } from '../versions/saveVersion.js'
-export type { TypeWithVersion } from '../versions/types.js'
diff --git a/packages/payload/src/globals/config/types.ts b/packages/payload/src/globals/config/types.ts
index 69c3852d7..08f371456 100644
--- a/packages/payload/src/globals/config/types.ts
+++ b/packages/payload/src/globals/config/types.ts
@@ -19,7 +19,7 @@ import type {
} from '../../config/types.js'
import type { DBIdentifierName } from '../../database/types.js'
import type { Field } from '../../fields/config/types.js'
-import type { PayloadRequestWithData, RequestContext , Where } from '../../types/index.js'
+import type { PayloadRequestWithData, RequestContext, Where } from '../../types/index.js'
import type { IncomingGlobalVersions, SanitizedGlobalVersions } from '../../versions/types.js'
export type TypeWithID = {
diff --git a/packages/payload/src/utilities/getUniqueListBy.ts b/packages/payload/src/utilities/getUniqueListBy.ts
index af7b68879..8fd04c7ef 100644
--- a/packages/payload/src/utilities/getUniqueListBy.ts
+++ b/packages/payload/src/utilities/getUniqueListBy.ts
@@ -1,3 +1,3 @@
-export default function getUniqueListBy(arr: T[], key: string): T[] {
+export function getUniqueListBy(arr: T[], key: string): T[] {
return [...new Map(arr.map((item) => [item[key], item])).values()]
}
diff --git a/packages/payload/src/utilities/telemetry/index.ts b/packages/payload/src/utilities/telemetry/index.ts
index 6b95b6a01..c240fdc5c 100644
--- a/packages/payload/src/utilities/telemetry/index.ts
+++ b/packages/payload/src/utilities/telemetry/index.ts
@@ -1,6 +1,6 @@
import { execSync } from 'child_process'
import ciInfo from 'ci-info'
-import ConfImport from 'conf'
+import Conf from 'conf'
import { randomBytes } from 'crypto'
import { findUp } from 'find-up'
import fs from 'fs'
@@ -13,8 +13,6 @@ import type { ServerInitEvent } from './events/serverInit.js'
import { oneWayHash } from './oneWayHash.js'
-const Conf = (ConfImport.default || ConfImport) as unknown as typeof ConfImport.default
-
export type BaseEvent = {
ciName: null | string
dbAdapter: string
diff --git a/packages/payload/types.d.ts b/packages/payload/types.d.ts
deleted file mode 100644
index f857e88db..000000000
--- a/packages/payload/types.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-export * from './dist/types/index.js';
-export type * from './dist/admin/types.js';
-export type * from './dist/uploads/types.js';
-export type { DocumentPermissions, FieldPermissions } from './dist/auth/index.js';
-export type { MeOperationResult } from './dist/auth/operations/me.js';
-export type { CollapsedPreferences, DocumentPreferences, FieldsPreferences, InsideFieldsPreferences, PreferenceRequest, PreferenceUpdateRequest, TabsPreferences, } from './dist/preferences/types.js';
-export type { ClientCollectionConfig } from './dist/collections/config/client.js';
-export type { AfterChangeHook as CollectionAfterChangeHook, AfterDeleteHook as CollectionAfterDeleteHook, AfterErrorHook as CollectionAfterErrorHook, AfterForgotPasswordHook as CollectionAfterForgotPasswordHook, AfterLoginHook as CollectionAfterLoginHook, AfterOperationHook as CollectionAfterOperationHook, AfterReadHook as CollectionAfterReadHook, BeforeChangeHook as CollectionBeforeChangeHook, BeforeDeleteHook as CollectionBeforeDeleteHook, BeforeLoginHook as CollectionBeforeLoginHook, BeforeOperationHook as CollectionBeforeOperationHook, BeforeReadHook as CollectionBeforeReadHook, BeforeValidateHook as CollectionBeforeValidateHook, Collection, CollectionConfig, SanitizedCollectionConfig, TypeWithID, TypeWithTimestamps, } from './dist/collections/config/types.js';
-export type { ClientConfig } from './dist/config/client.js';
-export type { Access, AccessArgs, EditViewComponent, EntityDescription, EntityDescriptionComponent, EntityDescriptionFunction, SanitizedConfig, } from './dist/config/types.js';
-export type { ClientFieldConfig } from './dist/fields/config/client.js';
-export type { ArrayField, Block, BlockField, CheckboxField, ClientValidate, CodeField, CollapsibleField, Condition, DateField, EmailField, Field, FieldAccess, FieldAffectingData, FieldBase, FieldHook, FieldHookArgs, FieldPresentationalOnly, FieldWithMany, FieldWithMaxDepth, FieldWithPath, FieldWithRichTextRequiredEditor, FieldWithSubFields, FilterOptions, FilterOptionsProps, GroupField, HookName, JSONField, Labels, NamedTab, NonPresentationalField, NumberField, Option, OptionObject, PointField, PolymorphicRelationshipField, RadioField, RelationshipField, RelationshipValue, RichTextField, RichTextFieldRequiredEditor, RowAdmin, RowField, SelectField, SingleRelationshipField, Tab, TabAsField, TabsAdmin, TabsField, TextField, TextareaField, UIField, UnnamedTab, UploadField, Validate, ValidateOptions, ValueWithRelation, } from './dist/fields/config/types.js';
-export { fieldAffectsData, fieldHasMaxDepth, fieldHasSubFields, fieldIsArrayType, fieldIsBlockType, fieldIsGroupType, fieldIsLocalized, fieldIsPresentationalOnly, fieldSupportsMany, optionIsObject, optionIsValue, optionsAreObjects, tabHasName, valueIsValueWithRelation, } from './dist/fields/config/types.js';
-export type { ClientGlobalConfig } from './dist/globals/config/client.js';
-export type { AfterChangeHook as GlobalAfterChangeHook, AfterReadHook as GlobalAfterReadHook, BeforeChangeHook as GlobalBeforeChangeHook, BeforeReadHook as GlobalBeforeReadHook, BeforeValidateHook as GlobalBeforeValidateHook, GlobalConfig, SanitizedGlobalConfig, } from './dist/globals/config/types.js';
-export { validOperators } from './dist/types/constants.js';
-//# sourceMappingURL=types.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/types.js b/packages/payload/types.js
deleted file mode 100644
index bb6663e81..000000000
--- a/packages/payload/types.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export * from './dist/types/index.js';
-export { fieldAffectsData, fieldHasMaxDepth, fieldHasSubFields, fieldIsArrayType, fieldIsBlockType, fieldIsGroupType, fieldIsLocalized, fieldIsPresentationalOnly, fieldSupportsMany, optionIsObject, optionIsValue, optionsAreObjects, tabHasName, valueIsValueWithRelation } from './dist/fields/config/types.js';
-export { validOperators } from './dist/types/constants.js';
-
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/packages/payload/utilities.d.ts b/packages/payload/utilities.d.ts
deleted file mode 100644
index 72aa9c30f..000000000
--- a/packages/payload/utilities.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-export { getDataLoader } from './dist/collections/dataloader.js';
-export { default as getDefaultValue } from './dist/fields/getDefaultValue.js';
-export { promise as afterReadPromise } from './dist/fields/hooks/afterRead/promise.js';
-export { traverseFields as afterReadTraverseFields } from './dist/fields/hooks/afterRead/traverseFields.js';
-export { extractTranslations } from './dist/translations/extractTranslations.js';
-export { formatFilesize } from './dist/uploads/formatFilesize.js';
-export { default as isImage } from './dist/uploads/isImage.js';
-export { combineMerge } from './dist/utilities/combineMerge.js';
-export { configToJSONSchema, entityToJSONSchema, fieldsToJSONSchema, withNullableJSONSchemaType, } from './dist/utilities/configToJSONSchema.js';
-export { createArrayFromCommaDelineated } from './dist/utilities/createArrayFromCommaDelineated.js';
-export { createLocalReq } from './dist/utilities/createLocalReq.js';
-export { deepCopyObject } from './dist/utilities/deepCopyObject.js';
-export { deepMerge } from './dist/utilities/deepMerge.js';
-export { fieldSchemaToJSON } from './dist/utilities/fieldSchemaToJSON.js';
-export { default as flattenTopLevelFields } from './dist/utilities/flattenTopLevelFields.js';
-export { formatLabels, formatNames, toWords } from './dist/utilities/formatLabels.js';
-export { getCollectionIDFieldTypes } from './dist/utilities/getCollectionIDFieldTypes.js';
-export { getIDType } from './dist/utilities/getIDType.js';
-export { getObjectDotNotation } from './dist/utilities/getObjectDotNotation.js';
-export { default as getUniqueListBy } from './dist/utilities/getUniqueListBy.js';
-export { isEntityHidden } from './dist/utilities/isEntityHidden.js';
-export { isNumber } from './dist/utilities/isNumber.js';
-export { isPlainObject } from './dist/utilities/isPlainObject.js';
-export { isPlainFunction, isReactComponent } from './dist/utilities/isReactComponent.js';
-export { isValidID } from './dist/utilities/isValidID.js';
-export { default as isolateObjectProperty } from './dist/utilities/isolateObjectProperty.js';
-export { mapAsync } from './dist/utilities/mapAsync.js';
-export { mergeListSearchAndWhere } from './dist/utilities/mergeListSearchAndWhere.js';
-export { setsAreEqual } from './dist/utilities/setsAreEqual.js';
-export { default as toKebabCase } from './dist/utilities/toKebabCase.js';
-export { wait } from './dist/utilities/wait.js';
-export { default as wordBoundariesRegex } from './dist/utilities/wordBoundariesRegex.js';
-//# sourceMappingURL=utilities.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/utilities.js b/packages/payload/utilities.js
deleted file mode 100644
index 3723817c7..000000000
--- a/packages/payload/utilities.js
+++ /dev/null
@@ -1,34 +0,0 @@
-export { getDataLoader } from './dist/collections/dataloader.js';
-export { default as getDefaultValue } from './dist/fields/getDefaultValue.js';
-export { promise as afterReadPromise } from './dist/fields/hooks/afterRead/promise.js';
-export { traverseFields as afterReadTraverseFields } from './dist/fields/hooks/afterRead/traverseFields.js';
-export { extractTranslations } from './dist/translations/extractTranslations.js';
-export { formatFilesize } from './dist/uploads/formatFilesize.js';
-export { default as isImage } from './dist/uploads/isImage.js';
-export { combineMerge } from './dist/utilities/combineMerge.js';
-export { configToJSONSchema, entityToJSONSchema, fieldsToJSONSchema, withNullableJSONSchemaType } from './dist/utilities/configToJSONSchema.js';
-export { createArrayFromCommaDelineated } from './dist/utilities/createArrayFromCommaDelineated.js';
-export { createLocalReq } from './dist/utilities/createLocalReq.js';
-export { deepCopyObject } from './dist/utilities/deepCopyObject.js';
-export { deepMerge } from './dist/utilities/deepMerge.js';
-export { fieldSchemaToJSON } from './dist/utilities/fieldSchemaToJSON.js';
-export { default as flattenTopLevelFields } from './dist/utilities/flattenTopLevelFields.js';
-export { formatLabels, formatNames, toWords } from './dist/utilities/formatLabels.js';
-export { getCollectionIDFieldTypes } from './dist/utilities/getCollectionIDFieldTypes.js';
-export { getIDType } from './dist/utilities/getIDType.js';
-export { getObjectDotNotation } from './dist/utilities/getObjectDotNotation.js';
-export { default as getUniqueListBy } from './dist/utilities/getUniqueListBy.js';
-export { isEntityHidden } from './dist/utilities/isEntityHidden.js';
-export { isNumber } from './dist/utilities/isNumber.js';
-export { isPlainObject } from './dist/utilities/isPlainObject.js';
-export { isPlainFunction, isReactComponent } from './dist/utilities/isReactComponent.js';
-export { isValidID } from './dist/utilities/isValidID.js';
-export { default as isolateObjectProperty } from './dist/utilities/isolateObjectProperty.js';
-export { mapAsync } from './dist/utilities/mapAsync.js';
-export { mergeListSearchAndWhere } from './dist/utilities/mergeListSearchAndWhere.js';
-export { setsAreEqual } from './dist/utilities/setsAreEqual.js';
-export { default as toKebabCase } from './dist/utilities/toKebabCase.js';
-export { wait } from './dist/utilities/wait.js';
-export { default as wordBoundariesRegex } from './dist/utilities/wordBoundariesRegex.js';
-
-//# sourceMappingURL=utilities.js.map
\ No newline at end of file
diff --git a/packages/payload/versions.d.ts b/packages/payload/versions.d.ts
deleted file mode 100644
index e9cb20536..000000000
--- a/packages/payload/versions.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export { buildVersionCollectionFields } from './dist/versions/buildCollectionFields.js';
-export { buildVersionGlobalFields } from './dist/versions/buildGlobalFields.js';
-export { deleteCollectionVersions } from './dist/versions/deleteCollectionVersions.js';
-export { enforceMaxVersions } from './dist/versions/enforceMaxVersions.js';
-export { getLatestCollectionVersion } from './dist/versions/getLatestCollectionVersion.js';
-export { getLatestGlobalVersion } from './dist/versions/getLatestGlobalVersion.js';
-export { saveVersion } from './dist/versions/saveVersion.js';
-export type { TypeWithVersion } from './dist/versions/types.js';
-//# sourceMappingURL=versions.d.ts.map
\ No newline at end of file
diff --git a/packages/payload/versions.js b/packages/payload/versions.js
deleted file mode 100644
index 03bbc60ca..000000000
--- a/packages/payload/versions.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export { buildVersionCollectionFields } from './dist/versions/buildCollectionFields.js';
-export { buildVersionGlobalFields } from './dist/versions/buildGlobalFields.js';
-export { deleteCollectionVersions } from './dist/versions/deleteCollectionVersions.js';
-export { enforceMaxVersions } from './dist/versions/enforceMaxVersions.js';
-export { getLatestCollectionVersion } from './dist/versions/getLatestCollectionVersion.js';
-export { getLatestGlobalVersion } from './dist/versions/getLatestGlobalVersion.js';
-export { saveVersion } from './dist/versions/saveVersion.js';
-
-//# sourceMappingURL=versions.js.map
\ No newline at end of file
diff --git a/packages/plugin-cloud-storage/README.md b/packages/plugin-cloud-storage/README.md
index 47aa4a5d3..3c6d70d4a 100644
--- a/packages/plugin-cloud-storage/README.md
+++ b/packages/plugin-cloud-storage/README.md
@@ -20,7 +20,7 @@ This package is now best used for implementing custom storage solutions or third
## Usage
```ts
-import { buildConfig } from 'payload/config'
+import { buildConfig } from 'payload'
import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'
export default buildConfig({
diff --git a/packages/plugin-cloud-storage/azure.d.ts b/packages/plugin-cloud-storage/azure.d.ts
index a7191c870..a423190a7 100644
--- a/packages/plugin-cloud-storage/azure.d.ts
+++ b/packages/plugin-cloud-storage/azure.d.ts
@@ -1,2 +1,2 @@
-export { azureBlobStorageAdapter } from './dist/adapters/azure/index.js';
-//# sourceMappingURL=azure.d.ts.map
\ No newline at end of file
+export { azureBlobStorageAdapter } from './dist/adapters/azure/index.js'
+//# sourceMappingURL=azure.d.ts.map
diff --git a/packages/plugin-cloud-storage/azure.js b/packages/plugin-cloud-storage/azure.js
index 88f94b771..67c6b0c61 100644
--- a/packages/plugin-cloud-storage/azure.js
+++ b/packages/plugin-cloud-storage/azure.js
@@ -1,3 +1,3 @@
-export { azureBlobStorageAdapter } from './dist/adapters/azure/index.js';
+export { azureBlobStorageAdapter } from './dist/adapters/azure/index.js'
-//# sourceMappingURL=azure.js.map
\ No newline at end of file
+//# sourceMappingURL=azure.js.map
diff --git a/packages/plugin-cloud-storage/gcs.d.ts b/packages/plugin-cloud-storage/gcs.d.ts
index 1770cf935..3f1fb9e17 100644
--- a/packages/plugin-cloud-storage/gcs.d.ts
+++ b/packages/plugin-cloud-storage/gcs.d.ts
@@ -1,2 +1,2 @@
-export { gcsAdapter } from './dist/adapters/gcs/index.js';
-//# sourceMappingURL=gcs.d.ts.map
\ No newline at end of file
+export { gcsAdapter } from './dist/adapters/gcs/index.js'
+//# sourceMappingURL=gcs.d.ts.map
diff --git a/packages/plugin-cloud-storage/gcs.js b/packages/plugin-cloud-storage/gcs.js
index 6363d52f7..0b1f43b68 100644
--- a/packages/plugin-cloud-storage/gcs.js
+++ b/packages/plugin-cloud-storage/gcs.js
@@ -1,3 +1,3 @@
-export { gcsAdapter } from './dist/adapters/gcs/index.js';
+export { gcsAdapter } from './dist/adapters/gcs/index.js'
-//# sourceMappingURL=gcs.js.map
\ No newline at end of file
+//# sourceMappingURL=gcs.js.map
diff --git a/packages/plugin-cloud-storage/package.json b/packages/plugin-cloud-storage/package.json
index 3e044d9f9..6a596a92f 100644
--- a/packages/plugin-cloud-storage/package.json
+++ b/packages/plugin-cloud-storage/package.json
@@ -35,8 +35,8 @@
"*.d.ts"
],
"scripts": {
- "build": "pnpm build:swc && pnpm build:types",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build": "pnpm build:types && pnpm build:swc ",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"prepublishOnly": "pnpm clean && pnpm turbo build",
diff --git a/packages/plugin-cloud-storage/s3.d.ts b/packages/plugin-cloud-storage/s3.d.ts
index 42103ce61..4359cb797 100644
--- a/packages/plugin-cloud-storage/s3.d.ts
+++ b/packages/plugin-cloud-storage/s3.d.ts
@@ -1,2 +1,2 @@
-export { s3Adapter } from './dist/adapters/s3/index.js';
-//# sourceMappingURL=s3.d.ts.map
\ No newline at end of file
+export { s3Adapter } from './dist/adapters/s3/index.js'
+//# sourceMappingURL=s3.d.ts.map
diff --git a/packages/plugin-cloud-storage/s3.js b/packages/plugin-cloud-storage/s3.js
index 7b254f630..ea1c67d7f 100644
--- a/packages/plugin-cloud-storage/s3.js
+++ b/packages/plugin-cloud-storage/s3.js
@@ -1,3 +1,3 @@
-export { s3Adapter } from './dist/adapters/s3/index.js';
+export { s3Adapter } from './dist/adapters/s3/index.js'
-//# sourceMappingURL=s3.js.map
\ No newline at end of file
+//# sourceMappingURL=s3.js.map
diff --git a/packages/plugin-cloud-storage/src/adapters/azure/handleDelete.ts b/packages/plugin-cloud-storage/src/adapters/azure/handleDelete.ts
index 2f875a944..4144f2daf 100644
--- a/packages/plugin-cloud-storage/src/adapters/azure/handleDelete.ts
+++ b/packages/plugin-cloud-storage/src/adapters/azure/handleDelete.ts
@@ -1,5 +1,5 @@
import type { ContainerClient } from '@azure/storage-blob'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import path from 'path'
diff --git a/packages/plugin-cloud-storage/src/adapters/azure/handleUpload.ts b/packages/plugin-cloud-storage/src/adapters/azure/handleUpload.ts
index ca716bfec..331956bbe 100644
--- a/packages/plugin-cloud-storage/src/adapters/azure/handleUpload.ts
+++ b/packages/plugin-cloud-storage/src/adapters/azure/handleUpload.ts
@@ -1,5 +1,5 @@
import type { ContainerClient } from '@azure/storage-blob'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import { AbortController } from '@azure/abort-controller'
import fs from 'fs'
diff --git a/packages/plugin-cloud-storage/src/adapters/azure/staticHandler.ts b/packages/plugin-cloud-storage/src/adapters/azure/staticHandler.ts
index 86405c680..ece33650e 100644
--- a/packages/plugin-cloud-storage/src/adapters/azure/staticHandler.ts
+++ b/packages/plugin-cloud-storage/src/adapters/azure/staticHandler.ts
@@ -1,5 +1,5 @@
import type { ContainerClient } from '@azure/storage-blob'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import path from 'path'
diff --git a/packages/plugin-cloud-storage/src/adapters/gcs/handleUpload.ts b/packages/plugin-cloud-storage/src/adapters/gcs/handleUpload.ts
index 558bf7e44..543fef332 100644
--- a/packages/plugin-cloud-storage/src/adapters/gcs/handleUpload.ts
+++ b/packages/plugin-cloud-storage/src/adapters/gcs/handleUpload.ts
@@ -1,5 +1,5 @@
import type { Storage } from '@google-cloud/storage'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import path from 'path'
diff --git a/packages/plugin-cloud-storage/src/adapters/gcs/staticHandler.ts b/packages/plugin-cloud-storage/src/adapters/gcs/staticHandler.ts
index 31f5c84d1..a844b3d6d 100644
--- a/packages/plugin-cloud-storage/src/adapters/gcs/staticHandler.ts
+++ b/packages/plugin-cloud-storage/src/adapters/gcs/staticHandler.ts
@@ -1,5 +1,5 @@
import type { Storage } from '@google-cloud/storage'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import path from 'path'
diff --git a/packages/plugin-cloud-storage/src/adapters/s3/handleUpload.ts b/packages/plugin-cloud-storage/src/adapters/s3/handleUpload.ts
index f2f6023f5..6ae38166e 100644
--- a/packages/plugin-cloud-storage/src/adapters/s3/handleUpload.ts
+++ b/packages/plugin-cloud-storage/src/adapters/s3/handleUpload.ts
@@ -1,5 +1,5 @@
import type * as AWS from '@aws-sdk/client-s3'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import type stream from 'stream'
import { Upload } from '@aws-sdk/lib-storage'
diff --git a/packages/plugin-cloud-storage/src/adapters/s3/staticHandler.ts b/packages/plugin-cloud-storage/src/adapters/s3/staticHandler.ts
index cb14d3bba..8fc6fa2f9 100644
--- a/packages/plugin-cloud-storage/src/adapters/s3/staticHandler.ts
+++ b/packages/plugin-cloud-storage/src/adapters/s3/staticHandler.ts
@@ -1,5 +1,5 @@
import type * as AWS from '@aws-sdk/client-s3'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import path from 'path'
diff --git a/packages/plugin-cloud-storage/src/adapters/vercelBlob/staticHandler.ts b/packages/plugin-cloud-storage/src/adapters/vercelBlob/staticHandler.ts
index f77f5dec9..d49e95983 100644
--- a/packages/plugin-cloud-storage/src/adapters/vercelBlob/staticHandler.ts
+++ b/packages/plugin-cloud-storage/src/adapters/vercelBlob/staticHandler.ts
@@ -1,5 +1,5 @@
import type { StaticHandler } from '@payloadcms/plugin-cloud-storage/types'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import { head } from '@vercel/blob'
import path from 'path'
diff --git a/packages/plugin-cloud-storage/src/admin/fields/getFields.ts b/packages/plugin-cloud-storage/src/admin/fields/getFields.ts
index 1b520190f..8696654b1 100644
--- a/packages/plugin-cloud-storage/src/admin/fields/getFields.ts
+++ b/packages/plugin-cloud-storage/src/admin/fields/getFields.ts
@@ -1,4 +1,4 @@
-import type { CollectionConfig, Field , GroupField, TextField } from 'payload/types'
+import type { CollectionConfig, Field, GroupField, TextField } from 'payload'
import path from 'path'
diff --git a/packages/plugin-cloud-storage/src/admin/index.ts b/packages/plugin-cloud-storage/src/admin/index.ts
index 90dedae83..918490c63 100644
--- a/packages/plugin-cloud-storage/src/admin/index.ts
+++ b/packages/plugin-cloud-storage/src/admin/index.ts
@@ -1,4 +1,4 @@
-import type { Config } from 'payload/config'
+import type { Config } from 'payload'
import type { PluginOptions } from '../types.js'
diff --git a/packages/plugin-cloud-storage/src/fields/getFields.ts b/packages/plugin-cloud-storage/src/fields/getFields.ts
index 3817624fa..39b2d54a8 100644
--- a/packages/plugin-cloud-storage/src/fields/getFields.ts
+++ b/packages/plugin-cloud-storage/src/fields/getFields.ts
@@ -1,4 +1,4 @@
-import type { CollectionConfig, Field , GroupField, TextField } from 'payload/types'
+import type { CollectionConfig, Field, GroupField, TextField } from 'payload'
import path from 'path'
diff --git a/packages/plugin-cloud-storage/src/hooks/afterDelete.ts b/packages/plugin-cloud-storage/src/hooks/afterDelete.ts
index f4c1a9115..7c2f90cd0 100644
--- a/packages/plugin-cloud-storage/src/hooks/afterDelete.ts
+++ b/packages/plugin-cloud-storage/src/hooks/afterDelete.ts
@@ -1,4 +1,4 @@
-import type { CollectionAfterDeleteHook, CollectionConfig , FileData, TypeWithID } from 'payload/types'
+import type { CollectionAfterDeleteHook, CollectionConfig, FileData, TypeWithID } from 'payload'
import type { GeneratedAdapter, TypeWithPrefix } from '../types.js'
diff --git a/packages/plugin-cloud-storage/src/hooks/afterRead.ts b/packages/plugin-cloud-storage/src/hooks/afterRead.ts
index 0818250e1..f96af0be4 100644
--- a/packages/plugin-cloud-storage/src/hooks/afterRead.ts
+++ b/packages/plugin-cloud-storage/src/hooks/afterRead.ts
@@ -1,4 +1,4 @@
-import type { CollectionConfig, FieldHook, ImageSize } from 'payload/types'
+import type { CollectionConfig, FieldHook, ImageSize } from 'payload'
import type { GenerateFileURL, GeneratedAdapter } from '../types.js'
diff --git a/packages/plugin-cloud-storage/src/hooks/beforeChange.ts b/packages/plugin-cloud-storage/src/hooks/beforeChange.ts
index fb5130d32..5450683a8 100644
--- a/packages/plugin-cloud-storage/src/hooks/beforeChange.ts
+++ b/packages/plugin-cloud-storage/src/hooks/beforeChange.ts
@@ -1,4 +1,4 @@
-import type { CollectionBeforeChangeHook, CollectionConfig , FileData, TypeWithID } from 'payload/types'
+import type { CollectionBeforeChangeHook, CollectionConfig, FileData, TypeWithID } from 'payload'
import type { GeneratedAdapter } from '../types.js'
diff --git a/packages/plugin-cloud-storage/src/plugin.ts b/packages/plugin-cloud-storage/src/plugin.ts
index 412415296..9d8033861 100644
--- a/packages/plugin-cloud-storage/src/plugin.ts
+++ b/packages/plugin-cloud-storage/src/plugin.ts
@@ -1,4 +1,4 @@
-import type { Config } from 'payload/config'
+import type { Config } from 'payload'
import type { PluginOptions } from './types.js'
diff --git a/packages/plugin-cloud-storage/src/types.ts b/packages/plugin-cloud-storage/src/types.ts
index 0bd4cb116..f734a5faa 100644
--- a/packages/plugin-cloud-storage/src/types.ts
+++ b/packages/plugin-cloud-storage/src/types.ts
@@ -1,4 +1,11 @@
-import type { CollectionConfig, Field, FileData , ImageSize , PayloadRequestWithData, TypeWithID } from 'payload/types'
+import type {
+ CollectionConfig,
+ Field,
+ FileData,
+ ImageSize,
+ PayloadRequestWithData,
+ TypeWithID,
+} from 'payload'
export interface File {
buffer: Buffer
diff --git a/packages/plugin-cloud-storage/src/utilities/getFilePrefix.ts b/packages/plugin-cloud-storage/src/utilities/getFilePrefix.ts
index 4efddfd9c..43a4ee630 100644
--- a/packages/plugin-cloud-storage/src/utilities/getFilePrefix.ts
+++ b/packages/plugin-cloud-storage/src/utilities/getFilePrefix.ts
@@ -1,4 +1,4 @@
-import type { CollectionConfig, PayloadRequestWithData, UploadConfig } from 'payload/types'
+import type { CollectionConfig, PayloadRequestWithData, UploadConfig } from 'payload'
export async function getFilePrefix({
collection,
diff --git a/packages/plugin-cloud-storage/src/utilities/getIncomingFiles.ts b/packages/plugin-cloud-storage/src/utilities/getIncomingFiles.ts
index b04ff1e3b..18746341d 100644
--- a/packages/plugin-cloud-storage/src/utilities/getIncomingFiles.ts
+++ b/packages/plugin-cloud-storage/src/utilities/getIncomingFiles.ts
@@ -1,4 +1,4 @@
-import type { FileData, PayloadRequestWithData } from 'payload/types'
+import type { FileData, PayloadRequestWithData } from 'payload'
import type { File } from '../types.js'
diff --git a/packages/plugin-cloud/README.md b/packages/plugin-cloud/README.md
index 3e8b7212f..2d7ddc3f7 100644
--- a/packages/plugin-cloud/README.md
+++ b/packages/plugin-cloud/README.md
@@ -22,7 +22,7 @@ Add the plugin to your Payload config
```ts
import { payloadCloud } from '@payloadcms/plugin-cloud'
-import { buildConfig } from 'payload/config'
+import { buildConfig } from 'payload'
export default buildConfig({
plugins: [payloadCloud()],
diff --git a/packages/plugin-cloud/package.json b/packages/plugin-cloud/package.json
index e00a1ffa8..bc914d888 100644
--- a/packages/plugin-cloud/package.json
+++ b/packages/plugin-cloud/package.json
@@ -23,8 +23,8 @@
"dist"
],
"scripts": {
- "build": "pnpm build:swc && pnpm build:types",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc-build",
+ "build": "pnpm build:types && pnpm build:swc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc-build --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo} && rimraf dev/yarn.lock",
"prepublishOnly": "pnpm clean && pnpm turbo build",
diff --git a/packages/plugin-cloud/src/email.spec.ts b/packages/plugin-cloud/src/email.spec.ts
index 596c91a54..8e01eb5fe 100644
--- a/packages/plugin-cloud/src/email.spec.ts
+++ b/packages/plugin-cloud/src/email.spec.ts
@@ -1,9 +1,9 @@
-import type { Config } from 'payload/config'
+import type { Config } from 'payload'
import type { Payload } from 'payload'
import nodemailer from 'nodemailer'
import { jest } from '@jest/globals'
-import { defaults } from 'payload/config'
+import { defaults } from 'payload'
import { payloadCloudEmail } from './email.js'
diff --git a/packages/plugin-cloud/src/hooks/afterDelete.ts b/packages/plugin-cloud/src/hooks/afterDelete.ts
index e29dff310..820896b42 100644
--- a/packages/plugin-cloud/src/hooks/afterDelete.ts
+++ b/packages/plugin-cloud/src/hooks/afterDelete.ts
@@ -1,9 +1,4 @@
-import type {
- CollectionAfterDeleteHook,
- CollectionConfig,
- FileData,
- TypeWithID,
-} from 'payload/types'
+import type { CollectionAfterDeleteHook, CollectionConfig, FileData, TypeWithID } from 'payload'
import type { TypeWithPrefix } from '../types.js'
diff --git a/packages/plugin-cloud/src/hooks/beforeChange.ts b/packages/plugin-cloud/src/hooks/beforeChange.ts
index c715f46f9..7fd66c735 100644
--- a/packages/plugin-cloud/src/hooks/beforeChange.ts
+++ b/packages/plugin-cloud/src/hooks/beforeChange.ts
@@ -1,9 +1,4 @@
-import type {
- CollectionBeforeChangeHook,
- CollectionConfig,
- FileData,
- TypeWithID,
-} from 'payload/types'
+import type { CollectionBeforeChangeHook, CollectionConfig, FileData, TypeWithID } from 'payload'
import type stream from 'stream'
import { Upload } from '@aws-sdk/lib-storage'
diff --git a/packages/plugin-cloud/src/hooks/uploadCache.ts b/packages/plugin-cloud/src/hooks/uploadCache.ts
index 1e8a884a4..2078f3819 100644
--- a/packages/plugin-cloud/src/hooks/uploadCache.ts
+++ b/packages/plugin-cloud/src/hooks/uploadCache.ts
@@ -2,7 +2,7 @@ import type {
CollectionAfterChangeHook,
CollectionAfterDeleteHook,
PayloadRequestWithData,
-} from 'payload/types'
+} from 'payload'
interface Args {
endpoint: string
diff --git a/packages/plugin-cloud/src/plugin.spec.ts b/packages/plugin-cloud/src/plugin.spec.ts
index 109976a8a..ee99dc5e5 100644
--- a/packages/plugin-cloud/src/plugin.spec.ts
+++ b/packages/plugin-cloud/src/plugin.spec.ts
@@ -1,9 +1,9 @@
-import type { Config } from 'payload/config'
+import type { Config } from 'payload'
import type { Payload } from 'payload'
import { jest } from '@jest/globals'
import nodemailer from 'nodemailer'
-import { defaults } from 'payload/config'
+import { defaults } from 'payload'
import { payloadCloudPlugin } from './plugin.js'
import { nodemailerAdapter } from '@payloadcms/email-nodemailer'
diff --git a/packages/plugin-cloud/src/plugin.ts b/packages/plugin-cloud/src/plugin.ts
index 62a432b6b..f0d0e56d3 100644
--- a/packages/plugin-cloud/src/plugin.ts
+++ b/packages/plugin-cloud/src/plugin.ts
@@ -1,4 +1,4 @@
-import type { Config } from 'payload/config'
+import type { Config } from 'payload'
import type { PluginOptions } from './types.js'
diff --git a/packages/plugin-cloud/src/staticHandler.ts b/packages/plugin-cloud/src/staticHandler.ts
index 36fba3822..f9c46b960 100644
--- a/packages/plugin-cloud/src/staticHandler.ts
+++ b/packages/plugin-cloud/src/staticHandler.ts
@@ -1,4 +1,4 @@
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import type { CollectionCachingConfig, PluginOptions, StaticHandler } from './types.js'
diff --git a/packages/plugin-cloud/src/types.ts b/packages/plugin-cloud/src/types.ts
index 3540f92c1..49a8fbbc2 100644
--- a/packages/plugin-cloud/src/types.ts
+++ b/packages/plugin-cloud/src/types.ts
@@ -1,5 +1,10 @@
-import type { Config } from 'payload/config'
-import type { CollectionConfig, FileData, PayloadRequestWithData, TypeWithID } from 'payload/types'
+import type {
+ CollectionConfig,
+ Config,
+ FileData,
+ PayloadRequestWithData,
+ TypeWithID,
+} from 'payload'
export interface File {
buffer: Buffer
diff --git a/packages/plugin-cloud/src/utilities/getIncomingFiles.ts b/packages/plugin-cloud/src/utilities/getIncomingFiles.ts
index b04ff1e3b..18746341d 100644
--- a/packages/plugin-cloud/src/utilities/getIncomingFiles.ts
+++ b/packages/plugin-cloud/src/utilities/getIncomingFiles.ts
@@ -1,4 +1,4 @@
-import type { FileData, PayloadRequestWithData } from 'payload/types'
+import type { FileData, PayloadRequestWithData } from 'payload'
import type { File } from '../types.js'
diff --git a/packages/plugin-form-builder/package.json b/packages/plugin-form-builder/package.json
index b916514a5..e2b44995a 100644
--- a/packages/plugin-form-builder/package.json
+++ b/packages/plugin-form-builder/package.json
@@ -39,8 +39,8 @@
"dist"
],
"scripts": {
- "build": "pnpm build:swc && pnpm build:types",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build": "pnpm build:types && pnpm build:swc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"prepublishOnly": "pnpm clean && pnpm turbo build",
diff --git a/packages/plugin-form-builder/src/collections/FormSubmissions/index.ts b/packages/plugin-form-builder/src/collections/FormSubmissions/index.ts
index c9b54417d..19d7fd9af 100644
--- a/packages/plugin-form-builder/src/collections/FormSubmissions/index.ts
+++ b/packages/plugin-form-builder/src/collections/FormSubmissions/index.ts
@@ -1,4 +1,4 @@
-import type { CollectionConfig, Field } from 'payload/types'
+import type { CollectionConfig, Field } from 'payload'
import type { FormBuilderPluginConfig } from '../../types.js'
diff --git a/packages/plugin-form-builder/src/collections/Forms/DynamicPriceSelector.tsx b/packages/plugin-form-builder/src/collections/Forms/DynamicPriceSelector.tsx
index 76e9d9125..e56c8f453 100644
--- a/packages/plugin-form-builder/src/collections/Forms/DynamicPriceSelector.tsx
+++ b/packages/plugin-form-builder/src/collections/Forms/DynamicPriceSelector.tsx
@@ -1,7 +1,7 @@
'use client'
import type { TextFieldProps } from '@payloadcms/ui/fields/Text'
-import type { Data } from 'payload/types'
+import type { Data } from 'payload'
import { Text } from '@payloadcms/ui/fields/Text'
import { useWatchForm } from '@payloadcms/ui/forms/Form'
diff --git a/packages/plugin-form-builder/src/collections/Forms/fields.ts b/packages/plugin-form-builder/src/collections/Forms/fields.ts
index a9d505488..8b393b873 100644
--- a/packages/plugin-form-builder/src/collections/Forms/fields.ts
+++ b/packages/plugin-form-builder/src/collections/Forms/fields.ts
@@ -1,4 +1,4 @@
-import type { Block, Field } from 'payload/types'
+import type { Block, Field } from 'payload'
import type { FieldConfig, PaymentFieldConfig } from '../../types.js'
diff --git a/packages/plugin-form-builder/src/collections/Forms/index.ts b/packages/plugin-form-builder/src/collections/Forms/index.ts
index 094c6c4c0..f87756ff6 100644
--- a/packages/plugin-form-builder/src/collections/Forms/index.ts
+++ b/packages/plugin-form-builder/src/collections/Forms/index.ts
@@ -1,4 +1,4 @@
-import type { Block, CollectionConfig, Field } from 'payload/types'
+import type { Block, CollectionConfig, Field } from 'payload'
import merge from 'deepmerge'
diff --git a/packages/plugin-form-builder/src/index.ts b/packages/plugin-form-builder/src/index.ts
index d6f78ea8c..56cd9fd03 100644
--- a/packages/plugin-form-builder/src/index.ts
+++ b/packages/plugin-form-builder/src/index.ts
@@ -1,4 +1,4 @@
-import type { Config } from 'payload/config'
+import type { Config } from 'payload'
import type { FormBuilderPluginConfig } from './types.js'
diff --git a/packages/plugin-form-builder/src/types.ts b/packages/plugin-form-builder/src/types.ts
index 44db8911a..61021c9bd 100644
--- a/packages/plugin-form-builder/src/types.ts
+++ b/packages/plugin-form-builder/src/types.ts
@@ -1,4 +1,4 @@
-import type { Block, CollectionConfig, Field } from 'payload/types'
+import type { Block, CollectionConfig, Field } from 'payload'
export interface BlockConfig {
block: Block
diff --git a/packages/plugin-nested-docs/package.json b/packages/plugin-nested-docs/package.json
index 2d08905e1..85af62953 100644
--- a/packages/plugin-nested-docs/package.json
+++ b/packages/plugin-nested-docs/package.json
@@ -29,8 +29,8 @@
"dist"
],
"scripts": {
- "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build": "pnpm copyfiles && pnpm build:types && pnpm build:swc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
diff --git a/packages/plugin-nested-docs/src/fields/breadcrumbs.ts b/packages/plugin-nested-docs/src/fields/breadcrumbs.ts
index 262a21a76..28400242f 100644
--- a/packages/plugin-nested-docs/src/fields/breadcrumbs.ts
+++ b/packages/plugin-nested-docs/src/fields/breadcrumbs.ts
@@ -1,4 +1,4 @@
-import type { ArrayField, Field } from 'payload/types'
+import type { ArrayField, Field } from 'payload'
export const createBreadcrumbsField = (
relationTo: string,
diff --git a/packages/plugin-nested-docs/src/fields/parent.ts b/packages/plugin-nested-docs/src/fields/parent.ts
index 67b6d09b9..3e982d1ec 100644
--- a/packages/plugin-nested-docs/src/fields/parent.ts
+++ b/packages/plugin-nested-docs/src/fields/parent.ts
@@ -1,4 +1,4 @@
-import type { SingleRelationshipField } from 'payload/types'
+import type { SingleRelationshipField } from 'payload'
export const createParentField = (
relationTo: string,
diff --git a/packages/plugin-nested-docs/src/fields/parentFilterOptions.ts b/packages/plugin-nested-docs/src/fields/parentFilterOptions.ts
index 13ddc51ef..1c38e14cd 100644
--- a/packages/plugin-nested-docs/src/fields/parentFilterOptions.ts
+++ b/packages/plugin-nested-docs/src/fields/parentFilterOptions.ts
@@ -1,4 +1,4 @@
-import type { FilterOptions } from 'payload/types'
+import type { FilterOptions } from 'payload'
export const parentFilterOptions: (breadcrumbsFieldSlug?: string) => FilterOptions =
(breadcrumbsFieldSlug = 'breadcrumbs') =>
diff --git a/packages/plugin-nested-docs/src/hooks/resaveChildren.ts b/packages/plugin-nested-docs/src/hooks/resaveChildren.ts
index b8491d5ca..48e2f8fa0 100644
--- a/packages/plugin-nested-docs/src/hooks/resaveChildren.ts
+++ b/packages/plugin-nested-docs/src/hooks/resaveChildren.ts
@@ -1,8 +1,4 @@
-import type {
- CollectionAfterChangeHook,
- CollectionConfig,
- PayloadRequestWithData,
-} from 'payload/types'
+import type { CollectionAfterChangeHook, CollectionConfig, PayloadRequestWithData } from 'payload'
import type { NestedDocsPluginConfig } from '../types.js'
diff --git a/packages/plugin-nested-docs/src/hooks/resaveSelfAfterCreate.ts b/packages/plugin-nested-docs/src/hooks/resaveSelfAfterCreate.ts
index eb605ac23..b91256051 100644
--- a/packages/plugin-nested-docs/src/hooks/resaveSelfAfterCreate.ts
+++ b/packages/plugin-nested-docs/src/hooks/resaveSelfAfterCreate.ts
@@ -1,4 +1,4 @@
-import type { CollectionAfterChangeHook, CollectionConfig } from 'payload/types'
+import type { CollectionAfterChangeHook, CollectionConfig } from 'payload'
import type { NestedDocsPluginConfig } from '../types.js'
diff --git a/packages/plugin-nested-docs/src/index.ts b/packages/plugin-nested-docs/src/index.ts
index 2275f6d0c..c3aad4f19 100644
--- a/packages/plugin-nested-docs/src/index.ts
+++ b/packages/plugin-nested-docs/src/index.ts
@@ -1,5 +1,4 @@
-import type { Plugin } from 'payload/config'
-import type { SingleRelationshipField } from 'payload/types'
+import type { Plugin, SingleRelationshipField } from 'payload'
import type { NestedDocsPluginConfig } from './types.js'
diff --git a/packages/plugin-nested-docs/src/utilities/formatBreadcrumb.ts b/packages/plugin-nested-docs/src/utilities/formatBreadcrumb.ts
index 290277a3b..b7ee116e9 100644
--- a/packages/plugin-nested-docs/src/utilities/formatBreadcrumb.ts
+++ b/packages/plugin-nested-docs/src/utilities/formatBreadcrumb.ts
@@ -1,4 +1,4 @@
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import type { Breadcrumb, NestedDocsPluginConfig } from '../types.js'
diff --git a/packages/plugin-nested-docs/src/utilities/getParents.ts b/packages/plugin-nested-docs/src/utilities/getParents.ts
index 4fab94417..c64df1bdc 100644
--- a/packages/plugin-nested-docs/src/utilities/getParents.ts
+++ b/packages/plugin-nested-docs/src/utilities/getParents.ts
@@ -1,4 +1,4 @@
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import type { NestedDocsPluginConfig } from '../types.js'
diff --git a/packages/plugin-nested-docs/src/utilities/populateBreadcrumbs.ts b/packages/plugin-nested-docs/src/utilities/populateBreadcrumbs.ts
index 1d69992a4..671db1d51 100644
--- a/packages/plugin-nested-docs/src/utilities/populateBreadcrumbs.ts
+++ b/packages/plugin-nested-docs/src/utilities/populateBreadcrumbs.ts
@@ -1,4 +1,4 @@
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import type { NestedDocsPluginConfig } from '../types.js'
diff --git a/packages/plugin-redirects/package.json b/packages/plugin-redirects/package.json
index ae93b2305..e61fa8a17 100644
--- a/packages/plugin-redirects/package.json
+++ b/packages/plugin-redirects/package.json
@@ -39,8 +39,8 @@
"types.d.ts"
],
"scripts": {
- "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build": "pnpm copyfiles && pnpm build:types && pnpm build:swc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
diff --git a/packages/plugin-redirects/src/index.ts b/packages/plugin-redirects/src/index.ts
index 51a200b07..c3ff6974a 100644
--- a/packages/plugin-redirects/src/index.ts
+++ b/packages/plugin-redirects/src/index.ts
@@ -1,5 +1,4 @@
-import type { Config } from 'payload/config'
-import type { CollectionConfig, Field } from 'payload/types'
+import type { CollectionConfig, Config, Field } from 'payload'
import type { RedirectsPluginConfig } from './types.js'
diff --git a/packages/plugin-redirects/src/types.ts b/packages/plugin-redirects/src/types.ts
index 35473d869..4ced52cd5 100644
--- a/packages/plugin-redirects/src/types.ts
+++ b/packages/plugin-redirects/src/types.ts
@@ -1,4 +1,4 @@
-import type { CollectionConfig, Field } from 'payload/types'
+import type { CollectionConfig, Field } from 'payload'
export type FieldsOverride = (args: { defaultFields: Field[] }) => Field[]
diff --git a/packages/plugin-relationship-object-ids/README.md b/packages/plugin-relationship-object-ids/README.md
index 0571f1a26..c21931e3d 100644
--- a/packages/plugin-relationship-object-ids/README.md
+++ b/packages/plugin-relationship-object-ids/README.md
@@ -14,7 +14,7 @@ Simply import and install the plugin to make it work:
```ts
import { relationshipsAsObjectID } from '@payloadcms/plugin-relationship-object-ids'
-import { buildConfig } from 'payload/config'
+import { buildConfig } from 'payload'
export default buildConfig({
// your config here
diff --git a/packages/plugin-relationship-object-ids/package.json b/packages/plugin-relationship-object-ids/package.json
index 48b8712e0..d042e2756 100644
--- a/packages/plugin-relationship-object-ids/package.json
+++ b/packages/plugin-relationship-object-ids/package.json
@@ -30,8 +30,8 @@
"dist"
],
"scripts": {
- "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build": "pnpm copyfiles && pnpm build:types && pnpm build:swc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
diff --git a/packages/plugin-relationship-object-ids/src/hooks/beforeChange.ts b/packages/plugin-relationship-object-ids/src/hooks/beforeChange.ts
index d7a79af93..f09949906 100644
--- a/packages/plugin-relationship-object-ids/src/hooks/beforeChange.ts
+++ b/packages/plugin-relationship-object-ids/src/hooks/beforeChange.ts
@@ -1,8 +1,7 @@
-import type { Config } from 'payload/config'
-import type { CollectionConfig, FieldHook, RelationshipField, UploadField } from 'payload/types'
+import type { CollectionConfig, Config, FieldHook, RelationshipField, UploadField } from 'payload'
import mongoose from 'mongoose'
-import { fieldAffectsData } from 'payload/types'
+import { fieldAffectsData } from 'payload/shared'
const convertValue = ({
relatedCollection,
diff --git a/packages/plugin-relationship-object-ids/src/index.ts b/packages/plugin-relationship-object-ids/src/index.ts
index 7ae188861..4a3bc4b8a 100644
--- a/packages/plugin-relationship-object-ids/src/index.ts
+++ b/packages/plugin-relationship-object-ids/src/index.ts
@@ -1,5 +1,4 @@
-import type { Config } from 'payload/config'
-import type { Field } from 'payload/types'
+import type { Config, Field } from 'payload'
import { getBeforeChangeHook } from './hooks/beforeChange.js'
diff --git a/packages/plugin-search/package.json b/packages/plugin-search/package.json
index 40c4ead17..f1095242a 100644
--- a/packages/plugin-search/package.json
+++ b/packages/plugin-search/package.json
@@ -36,8 +36,8 @@
"dist"
],
"scripts": {
- "build": "pnpm build:swc && pnpm build:types",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build": "pnpm build:types && pnpm build:swc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"prepublishOnly": "pnpm clean && pnpm turbo build",
diff --git a/packages/plugin-search/src/Search/hooks/deleteFromSearch.ts b/packages/plugin-search/src/Search/hooks/deleteFromSearch.ts
index 7b0857b0d..67bbc25ec 100644
--- a/packages/plugin-search/src/Search/hooks/deleteFromSearch.ts
+++ b/packages/plugin-search/src/Search/hooks/deleteFromSearch.ts
@@ -1,4 +1,4 @@
-import type { CollectionAfterDeleteHook } from 'payload/types'
+import type { CollectionAfterDeleteHook } from 'payload'
export const deleteFromSearch: CollectionAfterDeleteHook = async ({
doc,
diff --git a/packages/plugin-search/src/Search/index.ts b/packages/plugin-search/src/Search/index.ts
index d4aca7515..224f250f0 100644
--- a/packages/plugin-search/src/Search/index.ts
+++ b/packages/plugin-search/src/Search/index.ts
@@ -1,4 +1,4 @@
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import deepMerge from 'deepmerge'
diff --git a/packages/plugin-search/src/Search/ui/index.client.tsx b/packages/plugin-search/src/Search/ui/index.client.tsx
index dc6a9f7d4..49788ed0b 100644
--- a/packages/plugin-search/src/Search/ui/index.client.tsx
+++ b/packages/plugin-search/src/Search/ui/index.client.tsx
@@ -1,6 +1,6 @@
'use client'
-import type { FormState } from 'payload/types'
+import type { FormState } from 'payload'
import { useWatchForm } from '@payloadcms/ui/forms/Form'
import { useConfig } from '@payloadcms/ui/providers/Config'
diff --git a/packages/plugin-search/src/Search/ui/index.tsx b/packages/plugin-search/src/Search/ui/index.tsx
index fb619224f..65d12217d 100644
--- a/packages/plugin-search/src/Search/ui/index.tsx
+++ b/packages/plugin-search/src/Search/ui/index.tsx
@@ -1,4 +1,4 @@
-import type { UIField } from 'payload/types'
+import type { UIField } from 'payload'
import React from 'react'
diff --git a/packages/plugin-search/src/index.ts b/packages/plugin-search/src/index.ts
index cdf500f27..fe8a026bf 100644
--- a/packages/plugin-search/src/index.ts
+++ b/packages/plugin-search/src/index.ts
@@ -1,4 +1,4 @@
-import type { Config } from 'payload/config'
+import type { Config } from 'payload'
import type { SearchPluginConfig } from './types.js'
diff --git a/packages/plugin-search/src/types.ts b/packages/plugin-search/src/types.ts
index 97873475f..38722734f 100644
--- a/packages/plugin-search/src/types.ts
+++ b/packages/plugin-search/src/types.ts
@@ -1,9 +1,9 @@
-import type { Payload } from 'payload'
import type {
CollectionAfterChangeHook,
CollectionConfig,
+ Payload,
PayloadRequestWithData,
-} from 'payload/types'
+} from 'payload'
export type DocToSync = {
[key: string]: any
diff --git a/packages/plugin-sentry/package.json b/packages/plugin-sentry/package.json
index 5f8b24b1d..dde5728d9 100644
--- a/packages/plugin-sentry/package.json
+++ b/packages/plugin-sentry/package.json
@@ -32,7 +32,7 @@
],
"scripts": {
"build": "echo \"Build temporarily disabled.\" && exit 0",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc-build",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc-build --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"prepublishOnly": "pnpm clean && pnpm turbo build"
diff --git a/packages/plugin-sentry/src/plugin.spec.ts b/packages/plugin-sentry/src/plugin.spec.ts
index 10d2fa787..8961c0a00 100644
--- a/packages/plugin-sentry/src/plugin.spec.ts
+++ b/packages/plugin-sentry/src/plugin.spec.ts
@@ -1,5 +1,5 @@
-import type { Config } from 'payload/config'
-import { defaults } from 'payload/config'
+import type { Config } from 'payload'
+import { defaults } from 'payload'
import { sentryPlugin } from './plugin'
diff --git a/packages/plugin-sentry/src/plugin.ts b/packages/plugin-sentry/src/plugin.ts
index bc85f118e..4761623dd 100644
--- a/packages/plugin-sentry/src/plugin.ts
+++ b/packages/plugin-sentry/src/plugin.ts
@@ -1,5 +1,5 @@
/* eslint-disable no-console */
-import type { Config } from 'payload/config'
+import type { Config } from 'payload'
import type { PluginOptions } from './types.js'
diff --git a/packages/plugin-seo/package.json b/packages/plugin-seo/package.json
index 6a29fbee1..eda123ce1 100644
--- a/packages/plugin-seo/package.json
+++ b/packages/plugin-seo/package.json
@@ -37,8 +37,8 @@
"dist"
],
"scripts": {
- "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build": "pnpm copyfiles && pnpm build:types && pnpm build:swc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
diff --git a/packages/plugin-seo/src/fields/MetaDescription.tsx b/packages/plugin-seo/src/fields/MetaDescription.tsx
index 2cdedfc8a..245f2724d 100644
--- a/packages/plugin-seo/src/fields/MetaDescription.tsx
+++ b/packages/plugin-seo/src/fields/MetaDescription.tsx
@@ -3,8 +3,8 @@
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
import type { FieldType, Options } from '@payloadcms/ui/forms/useField'
+import { FieldLabel } from '@payloadcms/ui/fields/FieldLabel'
import { TextareaInput } from '@payloadcms/ui/fields/Textarea'
-import { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'
import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
import { useAllFormFields } from '@payloadcms/ui/forms/Form'
import { useField } from '@payloadcms/ui/forms/useField'
diff --git a/packages/plugin-seo/src/fields/MetaImage.tsx b/packages/plugin-seo/src/fields/MetaImage.tsx
index 13b0f9ae7..11bd834cb 100644
--- a/packages/plugin-seo/src/fields/MetaImage.tsx
+++ b/packages/plugin-seo/src/fields/MetaImage.tsx
@@ -3,8 +3,8 @@
import type { UploadInputProps } from '@payloadcms/ui/fields/Upload'
import type { FieldType, Options } from '@payloadcms/ui/forms/useField'
+import { FieldLabel } from '@payloadcms/ui/fields/FieldLabel'
import { UploadInput } from '@payloadcms/ui/fields/Upload'
-import { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'
import { useAllFormFields } from '@payloadcms/ui/forms/Form'
import { useField } from '@payloadcms/ui/forms/useField'
import { useConfig } from '@payloadcms/ui/providers/Config'
diff --git a/packages/plugin-seo/src/fields/MetaTitle.tsx b/packages/plugin-seo/src/fields/MetaTitle.tsx
index 109e33504..28b98dc5b 100644
--- a/packages/plugin-seo/src/fields/MetaTitle.tsx
+++ b/packages/plugin-seo/src/fields/MetaTitle.tsx
@@ -1,11 +1,10 @@
'use client'
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
-import type { Options } from '@payloadcms/ui/forms/useField'
-import type { FieldType } from '@payloadcms/ui/forms/useField'
+import type { FieldType, Options } from '@payloadcms/ui/forms/useField'
+import { FieldLabel } from '@payloadcms/ui/fields/FieldLabel'
import { TextInput } from '@payloadcms/ui/fields/Text'
-import { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'
import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
import { useAllFormFields } from '@payloadcms/ui/forms/Form'
import { useField } from '@payloadcms/ui/forms/useField'
diff --git a/packages/plugin-seo/src/fields/index.scss b/packages/plugin-seo/src/fields/index.scss
index 27f37aea7..bd00870c4 100644
--- a/packages/plugin-seo/src/fields/index.scss
+++ b/packages/plugin-seo/src/fields/index.scss
@@ -1,5 +1,5 @@
.plugin-seo__field {
.field-label {
- display: inline!important;
+ display: inline !important;
}
}
diff --git a/packages/plugin-seo/src/index.tsx b/packages/plugin-seo/src/index.tsx
index 3c9423bef..ea5f1ea8c 100644
--- a/packages/plugin-seo/src/index.tsx
+++ b/packages/plugin-seo/src/index.tsx
@@ -1,9 +1,8 @@
-import type { Config } from 'payload/config'
-import type { Field, GroupField, TabsField, TextField } from 'payload/types'
+import type { Config, Field, GroupField, TabsField, TextField } from 'payload'
import { addDataAndFileToRequest } from '@payloadcms/next/utilities'
import { withMergedProps } from '@payloadcms/ui/elements/withMergedProps'
-import { deepMerge } from 'payload/utilities'
+import { deepMerge } from 'payload/shared'
import type {
GenerateDescription,
diff --git a/packages/plugin-seo/src/types.ts b/packages/plugin-seo/src/types.ts
index 596ff884a..2b59b7c4a 100644
--- a/packages/plugin-seo/src/types.ts
+++ b/packages/plugin-seo/src/types.ts
@@ -1,5 +1,5 @@
import type { DocumentInfoContext } from '@payloadcms/ui/providers/DocumentInfo'
-import type { Field, TextField, TextareaField, UploadField } from 'payload/types'
+import type { Field, TextField, TextareaField, UploadField } from 'payload'
export type GenerateTitle = (
args: DocumentInfoContext & { doc: T; locale?: string },
diff --git a/packages/plugin-seo/src/ui/Overview.tsx b/packages/plugin-seo/src/ui/Overview.tsx
index f1b891c14..2385bcc6c 100644
--- a/packages/plugin-seo/src/ui/Overview.tsx
+++ b/packages/plugin-seo/src/ui/Overview.tsx
@@ -1,6 +1,6 @@
'use client'
-import type { FormField } from 'payload/types'
+import type { FormField } from 'payload'
import { useAllFormFields, useForm } from '@payloadcms/ui/forms/Form'
import { useTranslation } from '@payloadcms/ui/providers/Translation'
diff --git a/packages/plugin-seo/src/ui/Preview.tsx b/packages/plugin-seo/src/ui/Preview.tsx
index 3b214d00c..f055dfdd5 100644
--- a/packages/plugin-seo/src/ui/Preview.tsx
+++ b/packages/plugin-seo/src/ui/Preview.tsx
@@ -1,6 +1,6 @@
'use client'
-import type { FormField, UIField } from 'payload/types'
+import type { FormField, UIField } from 'payload'
import { useAllFormFields } from '@payloadcms/ui/forms/Form'
import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'
diff --git a/packages/plugin-stripe/package.json b/packages/plugin-stripe/package.json
index fddf8f66e..7a3a218f0 100644
--- a/packages/plugin-stripe/package.json
+++ b/packages/plugin-stripe/package.json
@@ -39,8 +39,8 @@
"dist"
],
"scripts": {
- "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build": "pnpm copyfiles && pnpm build:types && pnpm build:swc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
@@ -52,7 +52,7 @@
"@payloadcms/ui": "workspace:*",
"lodash.get": "^4.4.2",
"stripe": "^10.2.0",
- "uuid": "^9.0.0"
+ "uuid": "10.0.0"
},
"devDependencies": {
"@payloadcms/eslint-config": "workspace:*",
diff --git a/packages/plugin-stripe/src/admin.ts b/packages/plugin-stripe/src/admin.ts
index 9927efc83..f154af209 100644
--- a/packages/plugin-stripe/src/admin.ts
+++ b/packages/plugin-stripe/src/admin.ts
@@ -1,4 +1,4 @@
-import type { Config } from 'payload/config'
+import type { Config } from 'payload'
import type { SanitizedStripePluginConfig, StripePluginConfig } from './types.js'
diff --git a/packages/plugin-stripe/src/fields/getFields.ts b/packages/plugin-stripe/src/fields/getFields.ts
index 36a560b2c..d8aa1ec0a 100644
--- a/packages/plugin-stripe/src/fields/getFields.ts
+++ b/packages/plugin-stripe/src/fields/getFields.ts
@@ -1,4 +1,4 @@
-import type { CollectionConfig, Field } from 'payload/types'
+import type { CollectionConfig, Field } from 'payload'
import type { SanitizedStripePluginConfig } from '../types.js'
diff --git a/packages/plugin-stripe/src/hooks/createNewInStripe.ts b/packages/plugin-stripe/src/hooks/createNewInStripe.ts
index 2339f1870..c6e67c3d4 100644
--- a/packages/plugin-stripe/src/hooks/createNewInStripe.ts
+++ b/packages/plugin-stripe/src/hooks/createNewInStripe.ts
@@ -1,6 +1,6 @@
-import type { CollectionBeforeValidateHook, CollectionConfig } from 'payload/types'
+import type { CollectionBeforeValidateHook, CollectionConfig } from 'payload'
-import { APIError } from 'payload/errors'
+import { APIError } from 'payload'
import Stripe from 'stripe'
import type { StripePluginConfig } from '../types.js'
diff --git a/packages/plugin-stripe/src/hooks/deleteFromStripe.ts b/packages/plugin-stripe/src/hooks/deleteFromStripe.ts
index 0a9e3e934..8b6cee68e 100644
--- a/packages/plugin-stripe/src/hooks/deleteFromStripe.ts
+++ b/packages/plugin-stripe/src/hooks/deleteFromStripe.ts
@@ -1,6 +1,6 @@
-import type { CollectionAfterDeleteHook, CollectionConfig } from 'payload/types'
+import type { CollectionAfterDeleteHook, CollectionConfig } from 'payload'
-import { APIError } from 'payload/errors'
+import { APIError } from 'payload'
import Stripe from 'stripe'
import type { StripePluginConfig } from '../types.js'
diff --git a/packages/plugin-stripe/src/hooks/syncExistingWithStripe.ts b/packages/plugin-stripe/src/hooks/syncExistingWithStripe.ts
index be0032805..12ceae887 100644
--- a/packages/plugin-stripe/src/hooks/syncExistingWithStripe.ts
+++ b/packages/plugin-stripe/src/hooks/syncExistingWithStripe.ts
@@ -1,6 +1,6 @@
-import type { CollectionBeforeChangeHook, CollectionConfig } from 'payload/types'
+import type { CollectionBeforeChangeHook, CollectionConfig } from 'payload'
-import { APIError } from 'payload/errors'
+import { APIError } from 'payload'
import Stripe from 'stripe'
import type { StripePluginConfig } from '../types.js'
diff --git a/packages/plugin-stripe/src/index.ts b/packages/plugin-stripe/src/index.ts
index bfcf150ad..45169ca1c 100644
--- a/packages/plugin-stripe/src/index.ts
+++ b/packages/plugin-stripe/src/index.ts
@@ -1,4 +1,4 @@
-import type { Config, Endpoint } from 'payload/config'
+import type { Config, Endpoint } from 'payload'
import type { SanitizedStripePluginConfig, StripePluginConfig } from './types.js'
diff --git a/packages/plugin-stripe/src/routes/rest.ts b/packages/plugin-stripe/src/routes/rest.ts
index 1a55870b4..768258e50 100644
--- a/packages/plugin-stripe/src/routes/rest.ts
+++ b/packages/plugin-stripe/src/routes/rest.ts
@@ -1,7 +1,7 @@
-import type { PayloadRequest, PayloadRequestWithData } from 'payload/types'
+import type { PayloadRequest, PayloadRequestWithData } from 'payload'
import { addDataAndFileToRequest } from '@payloadcms/next/utilities'
-import { Forbidden } from 'payload/errors'
+import { Forbidden } from 'payload'
import type { StripePluginConfig } from '../types.js'
diff --git a/packages/plugin-stripe/src/routes/webhooks.ts b/packages/plugin-stripe/src/routes/webhooks.ts
index 0871f4a3a..3373b9da3 100644
--- a/packages/plugin-stripe/src/routes/webhooks.ts
+++ b/packages/plugin-stripe/src/routes/webhooks.ts
@@ -1,5 +1,4 @@
-import type { Config as PayloadConfig } from 'payload/config'
-import type { PayloadRequest } from 'payload/types'
+import type { Config as PayloadConfig, PayloadRequest } from 'payload'
import Stripe from 'stripe'
diff --git a/packages/plugin-stripe/src/types.ts b/packages/plugin-stripe/src/types.ts
index 4e7784c02..f1901e556 100644
--- a/packages/plugin-stripe/src/types.ts
+++ b/packages/plugin-stripe/src/types.ts
@@ -1,6 +1,4 @@
-import type { Payload } from 'payload'
-import type { Config as PayloadConfig } from 'payload/config'
-import type { PayloadRequest } from 'payload/types'
+import type { Payload, Config as PayloadConfig, PayloadRequest } from 'payload'
import type Stripe from 'stripe'
export type StripeWebhookHandler = (args: {
diff --git a/packages/plugin-stripe/src/ui/LinkToDoc.tsx b/packages/plugin-stripe/src/ui/LinkToDoc.tsx
index f6ff4f4d1..a66e5665c 100644
--- a/packages/plugin-stripe/src/ui/LinkToDoc.tsx
+++ b/packages/plugin-stripe/src/ui/LinkToDoc.tsx
@@ -1,6 +1,5 @@
'use client'
-import type { CustomComponent } from 'payload/config'
-import type { UIField } from 'payload/types'
+import type { CustomComponent, UIField } from 'payload'
import { CopyToClipboard } from '@payloadcms/ui/elements/CopyToClipboard'
import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
diff --git a/packages/richtext-lexical/.eslintrc.cjs b/packages/richtext-lexical/.eslintrc.cjs
index 5147b5d25..954fc11fb 100644
--- a/packages/richtext-lexical/.eslintrc.cjs
+++ b/packages/richtext-lexical/.eslintrc.cjs
@@ -4,7 +4,5 @@ module.exports = {
project: ['./tsconfig.json'],
tsconfigRootDir: __dirname,
},
- extends: [
- 'plugin:@lexical/recommended'
- ],
+ extends: ['plugin:@lexical/recommended'],
}
diff --git a/packages/richtext-lexical/.swcrc b/packages/richtext-lexical/.swcrc
index b4fb882ca..63ccf1287 100644
--- a/packages/richtext-lexical/.swcrc
+++ b/packages/richtext-lexical/.swcrc
@@ -16,6 +16,16 @@
"development": false,
"useBuiltins": true
}
+ },
+ "experimental": {
+ "plugins": [
+ [
+ "swc-plugin-transform-remove-imports",
+ {
+ "test": "\\.(scss)$"
+ }
+ ]
+ ]
}
},
"module": {
diff --git a/packages/richtext-lexical/README.md b/packages/richtext-lexical/README.md
index 7aba3b34c..3b045623f 100644
--- a/packages/richtext-lexical/README.md
+++ b/packages/richtext-lexical/README.md
@@ -14,7 +14,7 @@ npm install @payloadcms/richtext-lexical
## Usage
```ts
-import { buildConfig } from 'payload/config'
+import { buildConfig } from 'payload'
import { lexicalEditor } from '@payloadcms/richtext-lexical'
export default buildConfig({
diff --git a/packages/richtext-lexical/bundle.js b/packages/richtext-lexical/bundle.js
new file mode 100644
index 000000000..f0f5feb5c
--- /dev/null
+++ b/packages/richtext-lexical/bundle.js
@@ -0,0 +1,105 @@
+import * as esbuild from 'esbuild'
+import fs from 'fs'
+import path from 'path'
+import { fileURLToPath } from 'url'
+const filename = fileURLToPath(import.meta.url)
+const dirname = path.dirname(filename)
+import { sassPlugin } from 'esbuild-sass-plugin'
+
+const removeCSSImports = {
+ name: 'remove-css-imports',
+ setup(build) {
+ build.onLoad({ filter: /.*/ }, async (args) => {
+ if (args.path.includes('node_modules') || !args.path.includes(dirname)) return
+ const contents = await fs.promises.readFile(args.path, 'utf8')
+ const withRemovedImports = contents.replace(/import\s+.*\.scss';?[\r\n\s]*/g, '')
+ return { contents: withRemovedImports, loader: 'default' }
+ })
+ },
+}
+
+// Bundle only the .scss files into a single css file
+await esbuild
+ .build({
+ entryPoints: ['src/exports/client/index.ts'],
+ bundle: true,
+ minify: true,
+ outdir: 'dist/field',
+ loader: { '.svg': 'dataurl' },
+ packages: 'external',
+ //external: ['*.svg'],
+ plugins: [sassPlugin({ css: 'external' })],
+ })
+ .then(() => {
+ fs.rename('dist/field/index.css', 'dist/exports/client/bundled.css', (err) => {
+ if (err) console.error(`Error while renaming index.css: ${err}`)
+ })
+
+ console.log('dist/field/bundled.css bundled successfully')
+ })
+ .catch(() => process.exit(1))
+
+// Bundle `client.ts`
+const resultClient = await esbuild
+ .build({
+ entryPoints: ['src/exports/client/index.ts'],
+ bundle: true,
+ platform: 'browser',
+ format: 'esm',
+ outdir: 'dist/exports/client',
+ //outfile: 'index.js',
+ // IMPORTANT: splitting the client bundle means that the `use client` directive will be lost for every chunk
+ splitting: true,
+ external: [
+ '*.scss',
+ '*.css',
+ '*.svg',
+ 'qs',
+ '@dnd-kit/core',
+ '@payloadcms/graphql',
+ '@payloadcms/translations',
+ 'deep-equal',
+ 'react-toastify',
+
+ //'side-channel',
+ '@payloadcms/ui',
+ '@payloadcms/ui/*',
+ '@payloadcms/ui/client',
+ '@payloadcms/ui/shared',
+ 'lexical',
+ 'lexical/*',
+ '@lexical',
+ '@lexical/*',
+ '@faceless-ui/*',
+ 'bson-objectid',
+ 'payload',
+ 'payload/*',
+ 'react',
+ 'react-dom',
+ 'next',
+ 'react-animate-height',
+ 'crypto',
+ 'lodash',
+ 'ui',
+ ],
+ packages: 'external',
+ minify: true,
+ metafile: true,
+ treeShaking: true,
+
+ tsconfig: path.resolve(dirname, './tsconfig.json'),
+ plugins: [
+ removeCSSImports,
+ /*commonjs({
+ ignore: ['date-fns', '@floating-ui/react'],
+ }),*/
+ ],
+ sourcemap: true,
+ })
+ .then((res, err) => {
+ console.log('client/index.ts bundled successfully')
+ return res
+ })
+ .catch(() => process.exit(1))
+
+fs.writeFileSync('meta_client.json', JSON.stringify(resultClient.metafile))
diff --git a/packages/richtext-lexical/components.d.ts b/packages/richtext-lexical/components.d.ts
deleted file mode 100644
index 5a0008d87..000000000
--- a/packages/richtext-lexical/components.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export { RichTextCell } from './dist/cell/index.js';
-export { RichTextField } from './dist/field/index.js';
-export { defaultEditorLexicalConfig } from './dist/field/lexical/config/client/default.js';
-export { ToolbarButton } from './dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js';
-export { ToolbarDropdown } from './dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js';
-//# sourceMappingURL=components.d.ts.map
\ No newline at end of file
diff --git a/packages/richtext-lexical/components.js b/packages/richtext-lexical/components.js
deleted file mode 100644
index 8e5d73c9f..000000000
--- a/packages/richtext-lexical/components.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export { RichTextCell } from './dist/cell/index.js';
-export { RichTextField } from './dist/field/index.js';
-export { defaultEditorLexicalConfig } from './dist/field/lexical/config/client/default.js';
-export { ToolbarButton } from './dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js';
-export { ToolbarDropdown } from './dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js';
-
-//# sourceMappingURL=components.js.map
\ No newline at end of file
diff --git a/packages/richtext-lexical/package.json b/packages/richtext-lexical/package.json
index 1f6ae17ef..72e74ccf2 100644
--- a/packages/richtext-lexical/package.json
+++ b/packages/richtext-lexical/package.json
@@ -10,6 +10,7 @@
},
"license": "MIT",
"author": "Payload (https://payloadcms.com)",
+ "sideEffects": false,
"type": "module",
"exports": {
".": {
@@ -17,26 +18,25 @@
"require": "./src/index.ts",
"types": "./src/index.ts"
},
- "./*": {
- "import": "./src/exports/*.ts",
- "require": "./src/exports/*.ts",
- "types": "./src/exports/*.ts"
+ "./client": {
+ "import": "./src/exports/client/index.ts",
+ "require": "./src/exports/client/index.ts",
+ "types": "./src/exports/client/index.ts"
}
},
"main": "./src/index.ts",
"types": "./src/index.ts",
"files": [
- "dist",
- "components.js",
- "components.d.ts"
+ "dist"
],
"scripts": {
- "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
+ "build": "rm -rf dist && rm -rf tsconfig.tsbuildinfo && pnpm copyfiles && pnpm build:types && pnpm build:swc && pnpm build:esbuild",
"build:clean": "find . \\( -type d \\( -name build -o -name dist -o -name .cache \\) -o -type f -name tsconfig.tsbuildinfo \\) -exec rm -rf {} + && pnpm build",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build:esbuild": "node bundle.js",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
- "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
+ "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
"prepublishOnly": "pnpm clean && pnpm turbo build",
"translateNewKeys": "tsx scripts/translateNewKeys.ts"
},
@@ -54,13 +54,11 @@
"@lexical/utils": "0.16.0",
"@types/uuid": "^9.0.8",
"bson-objectid": "2.0.4",
- "classnames": "^2.3.2",
"deep-equal": "2.2.3",
"json-schema": "^0.4.0",
"lexical": "0.16.0",
- "lodash": "4.17.21",
"react-error-boundary": "4.0.13",
- "uuid": "^9.0.1"
+ "uuid": "10.0.0"
},
"devDependencies": {
"@lexical/eslint-plugin": "0.15.0",
@@ -72,6 +70,8 @@
"@types/node": "20.12.5",
"@types/react": "npm:types-react@19.0.0-beta.2",
"@types/react-dom": "npm:types-react-dom@19.0.0-beta.2",
+ "esbuild": "^0.21.4",
+ "esbuild-sass-plugin": "^3.3.0",
"payload": "workspace:*"
},
"peerDependencies": {
@@ -104,10 +104,10 @@
"require": "./dist/index.js",
"types": "./dist/index.d.ts"
},
- "./*": {
- "import": "./dist/exports/*.js",
- "require": "./dist/exports/*.js",
- "types": "./dist/exports/*.d.ts"
+ "./client": {
+ "import": "./dist/exports/client/index.js",
+ "require": "./dist/exports/*client/index.js",
+ "types": "./dist/exports/client/index.d.ts"
}
},
"main": "./dist/index.js",
diff --git a/packages/richtext-lexical/src/cell/index.tsx b/packages/richtext-lexical/src/cell/index.tsx
index 695866537..5f865ebd0 100644
--- a/packages/richtext-lexical/src/cell/index.tsx
+++ b/packages/richtext-lexical/src/cell/index.tsx
@@ -1,10 +1,9 @@
'use client'
import type { EditorConfig as LexicalEditorConfig } from 'lexical'
-import type { CellComponentProps } from 'payload/types'
+import type { CellComponentProps } from 'payload'
import { createHeadlessEditor } from '@lexical/headless'
-import { useTableCell } from '@payloadcms/ui/elements/Table'
-import { useClientFunctions } from '@payloadcms/ui/providers/ClientFunction'
+import { useClientFunctions, useTableCell } from '@payloadcms/ui/client'
import { $getRoot } from 'lexical'
import React, { useEffect, useState } from 'react'
diff --git a/packages/richtext-lexical/src/exports/client/index.ts b/packages/richtext-lexical/src/exports/client/index.ts
new file mode 100644
index 000000000..9bd9d9c38
--- /dev/null
+++ b/packages/richtext-lexical/src/exports/client/index.ts
@@ -0,0 +1,73 @@
+/* eslint-disable perfectionist/sort-exports */
+'use client'
+
+export { RichTextCell } from '../../cell/index.js'
+export { AlignFeatureClientComponent } from '../../field/features/align/feature.client.js'
+export { BlockquoteFeatureClientComponent } from '../../field/features/blockquote/feature.client.js'
+export { BlocksFeatureClientComponent } from '../../field/features/blocks/feature.client.js'
+export { createClientComponent } from '../../field/features/createClientComponent.js'
+export { TestRecorderFeatureClientComponent } from '../../field/features/debug/testRecorder/feature.client.js'
+export { TreeViewFeatureClientComponent } from '../../field/features/debug/treeView/feature.client.js'
+export { BoldFeatureClientComponent } from '../../field/features/format/bold/feature.client.js'
+export { InlineCodeFeatureClientComponent } from '../../field/features/format/inlineCode/feature.client.js'
+export { ItalicFeatureClientComponent } from '../../field/features/format/italic/feature.client.js'
+export { toolbarFormatGroupWithItems } from '../../field/features/format/shared/toolbarFormatGroup.js'
+export { StrikethroughFeatureClientComponent } from '../../field/features/format/strikethrough/feature.client.js'
+export { SubscriptFeatureClientComponent } from '../../field/features/format/subscript/feature.client.js'
+export { SuperscriptFeatureClientComponent } from '../../field/features/format/superscript/feature.client.js'
+export { UnderlineFeatureClientComponent } from '../../field/features/format/underline/feature.client.js'
+export { HeadingFeatureClientComponent } from '../../field/features/heading/feature.client.js'
+export { HorizontalRuleFeatureClientComponent } from '../../field/features/horizontalRule/feature.client.js'
+export { IndentFeatureClientComponent } from '../../field/features/indent/feature.client.js'
+export { LinkFeatureClientComponent } from '../../field/features/link/feature.client.js'
+export { ChecklistFeatureClientComponent } from '../../field/features/lists/checklist/feature.client.js'
+export { OrderedListFeatureClientComponent } from '../../field/features/lists/orderedList/feature.client.js'
+export { UnorderedListFeatureClientComponent } from '../../field/features/lists/unorderedList/feature.client.js'
+export { LexicalPluginToLexicalFeatureClientComponent } from '../../field/features/migrations/lexicalPluginToLexical/feature.client.js'
+export { SlateToLexicalFeatureClientComponent } from '../../field/features/migrations/slateToLexical/feature.client.js'
+export { ParagraphFeatureClientComponent } from '../../field/features/paragraph/feature.client.js'
+
+export { RelationshipFeatureClientComponent } from '../../field/features/relationship/feature.client.js'
+
+export { toolbarAddDropdownGroupWithItems } from '../../field/features/shared/toolbar/addDropdownGroup.js'
+export { toolbarFeatureButtonsGroupWithItems } from '../../field/features/shared/toolbar/featureButtonsGroup.js'
+export { toolbarTextDropdownGroupWithItems } from '../../field/features/shared/toolbar/textDropdownGroup.js'
+export { FixedToolbarFeatureClientComponent } from '../../field/features/toolbars/fixed/feature.client.js'
+export { InlineToolbarFeatureClientComponent } from '../../field/features/toolbars/inline/feature.client.js'
+export { ToolbarButton } from '../../field/features/toolbars/shared/ToolbarButton/index.js'
+
+export { ToolbarDropdown } from '../../field/features/toolbars/shared/ToolbarDropdown/index.js'
+export { UploadFeatureClientComponent } from '../../field/features/upload/feature.client.js'
+
+export { RichTextField } from '../../field/index.js'
+export {
+ type EditorConfigContextType,
+ EditorConfigProvider,
+ useEditorConfigContext,
+} from '../../field/lexical/config/client/EditorConfigProvider.js'
+export { defaultEditorLexicalConfig } from '../../field/lexical/config/client/default.js'
+
+export {
+ sanitizeClientEditorConfig,
+ sanitizeClientFeatures,
+} from '../../field/lexical/config/client/sanitize.js'
+export { CAN_USE_DOM } from '../../field/lexical/utils/canUseDOM.js'
+export { cloneDeep } from '../../field/lexical/utils/cloneDeep.js'
+export { getDOMRangeRect } from '../../field/lexical/utils/getDOMRangeRect.js'
+export { getSelectedNode } from '../../field/lexical/utils/getSelectedNode.js'
+export { isHTMLElement } from '../../field/lexical/utils/guard.js'
+export { invariant } from '../../field/lexical/utils/invariant.js'
+export { joinClasses } from '../../field/lexical/utils/joinClasses.js'
+
+export { createBlockNode } from '../../field/lexical/utils/markdown/createBlockNode.js'
+export { Point, isPoint } from '../../field/lexical/utils/point.js'
+export { Rect } from '../../field/lexical/utils/rect.js'
+export { setFloatingElemPosition } from '../../field/lexical/utils/setFloatingElemPosition.js'
+export { setFloatingElemPositionForLinkEditor } from '../../field/lexical/utils/setFloatingElemPositionForLinkEditor.js'
+
+export {
+ addSwipeDownListener,
+ addSwipeLeftListener,
+ addSwipeRightListener,
+ addSwipeUpListener,
+} from '../../field/lexical/utils/swipe.js'
diff --git a/packages/richtext-lexical/src/exports/components.ts b/packages/richtext-lexical/src/exports/components.ts
deleted file mode 100644
index 6a038988b..000000000
--- a/packages/richtext-lexical/src/exports/components.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-export { RichTextCell } from '../cell/index.js'
-export { createClientComponent } from '../field/features/createClientComponent.js'
-
-export { toolbarFormatGroupWithItems } from '../field/features/format/shared/toolbarFormatGroup.js'
-export { toolbarAddDropdownGroupWithItems } from '../field/features/shared/toolbar/addDropdownGroup.js'
-export { toolbarFeatureButtonsGroupWithItems } from '../field/features/shared/toolbar/featureButtonsGroup.js'
-export { toolbarTextDropdownGroupWithItems } from '../field/features/shared/toolbar/textDropdownGroup.js'
-export { ToolbarButton } from '../field/features/toolbars/shared/ToolbarButton/index.js'
-export { ToolbarDropdown } from '../field/features/toolbars/shared/ToolbarDropdown/index.js'
-
-export { RichTextField } from '../field/index.js'
-
-export { defaultEditorLexicalConfig } from '../field/lexical/config/client/default.js'
diff --git a/packages/richtext-lexical/src/field/Field.tsx b/packages/richtext-lexical/src/field/Field.tsx
index b1eca441e..05ccf18c8 100644
--- a/packages/richtext-lexical/src/field/Field.tsx
+++ b/packages/richtext-lexical/src/field/Field.tsx
@@ -2,18 +2,21 @@
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
import type { SerializedEditorState } from 'lexical'
-import { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'
-import { FieldError } from '@payloadcms/ui/forms/FieldError'
-import { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'
-import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
-import { useField } from '@payloadcms/ui/forms/useField'
-import { withCondition } from '@payloadcms/ui/forms/withCondition'
+import {
+ FieldDescription,
+ FieldError,
+ FieldLabel,
+ useField,
+ useFieldProps,
+ withCondition,
+} from '@payloadcms/ui/client'
import React, { useCallback } from 'react'
import { ErrorBoundary } from 'react-error-boundary'
import type { SanitizedClientEditorConfig } from './lexical/config/types.js'
import './index.scss'
+import './bundled.css'
import { LexicalProvider } from './lexical/LexicalProvider.js'
const baseClass = 'rich-text-lexical'
diff --git a/packages/payload/src/exports/components/utilities.ts b/packages/richtext-lexical/src/field/bundled.css
similarity index 100%
rename from packages/payload/src/exports/components/utilities.ts
rename to packages/richtext-lexical/src/field/bundled.css
diff --git a/packages/richtext-lexical/src/field/features/align/feature.server.ts b/packages/richtext-lexical/src/field/features/align/feature.server.ts
index e4fd5a080..19c4a1939 100644
--- a/packages/richtext-lexical/src/field/features/align/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/align/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../types.js'
-import { AlignFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { AlignFeatureClientComponent } from '../../../exports/client/index.js'
import { i18n } from './i18n.js'
export const AlignFeature: FeatureProviderProviderServer = (props) => {
diff --git a/packages/richtext-lexical/src/field/features/blockquote/feature.server.ts b/packages/richtext-lexical/src/field/features/blockquote/feature.server.ts
index 40c9b6479..1facc5ab6 100644
--- a/packages/richtext-lexical/src/field/features/blockquote/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/blockquote/feature.server.ts
@@ -2,9 +2,10 @@ import { QuoteNode } from '@lexical/rich-text'
import type { FeatureProviderProviderServer } from '../types.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { BlockquoteFeatureClientComponent } from '../../../exports/client/index.js'
import { convertLexicalNodesToHTML } from '../converters/html/converter/index.js'
import { createNode } from '../typeUtilities.js'
-import { BlockquoteFeatureClientComponent } from './feature.client.js'
import { i18n } from './i18n.js'
import { MarkdownTransformer } from './markdownTransformer.js'
diff --git a/packages/richtext-lexical/src/field/features/blocks/component/BlockContent.tsx b/packages/richtext-lexical/src/field/features/blocks/component/BlockContent.tsx
index 7859aee47..bf8fd4df3 100644
--- a/packages/richtext-lexical/src/field/features/blocks/component/BlockContent.tsx
+++ b/packages/richtext-lexical/src/field/features/blocks/component/BlockContent.tsx
@@ -1,20 +1,20 @@
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
import type { FieldMap, ReducedBlock } from '@payloadcms/ui/utilities/buildComponentMap'
-import type { FormState } from 'payload/types'
-import type { Data } from 'payload/types'
-import type { CollapsedPreferences } from 'payload/types'
+import type { CollapsedPreferences, Data, FormState } from 'payload'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'
import { getTranslation } from '@payloadcms/translations'
-import { Button } from '@payloadcms/ui/elements/Button'
-import { Collapsible } from '@payloadcms/ui/elements/Collapsible'
-import { ErrorPill } from '@payloadcms/ui/elements/ErrorPill'
-import { Pill } from '@payloadcms/ui/elements/Pill'
-import { SectionTitle } from '@payloadcms/ui/fields/Blocks/SectionTitle'
-import { useFormSubmitted } from '@payloadcms/ui/forms/Form'
-import { RenderFields } from '@payloadcms/ui/forms/RenderFields'
-import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
+import {
+ Button,
+ Collapsible,
+ ErrorPill,
+ Pill,
+ RenderFields,
+ SectionTitle,
+ useDocumentInfo,
+ useFormSubmitted,
+ useTranslation,
+} from '@payloadcms/ui/client'
import isDeepEqual from 'deep-equal'
import { $getNodeByKey } from 'lexical'
import React, { useCallback } from 'react'
diff --git a/packages/richtext-lexical/src/field/features/blocks/component/FormSavePlugin.tsx b/packages/richtext-lexical/src/field/features/blocks/component/FormSavePlugin.tsx
index d2ee08198..bee78880b 100644
--- a/packages/richtext-lexical/src/field/features/blocks/component/FormSavePlugin.tsx
+++ b/packages/richtext-lexical/src/field/features/blocks/component/FormSavePlugin.tsx
@@ -1,9 +1,8 @@
-import type { FormState } from 'payload/types'
-import type { Data } from 'payload/types'
+import type { Data, FormState } from 'payload'
import type React from 'react'
-import { useAllFormFields } from '@payloadcms/ui/forms/Form'
-import { reduceFieldsToValues } from '@payloadcms/ui/utilities/reduceFieldsToValues'
+import { useAllFormFields } from '@payloadcms/ui/client'
+import { reduceFieldsToValues } from '@payloadcms/ui/shared'
import { useEffect } from 'react'
import { removeEmptyArrayValues } from './removeEmptyArrayValues.js'
diff --git a/packages/richtext-lexical/src/field/features/blocks/component/index.tsx b/packages/richtext-lexical/src/field/features/blocks/component/index.tsx
index 298982404..215b6c52a 100644
--- a/packages/richtext-lexical/src/field/features/blocks/component/index.tsx
+++ b/packages/richtext-lexical/src/field/features/blocks/component/index.tsx
@@ -2,25 +2,27 @@
import type { FormProps } from '@payloadcms/ui/forms/Form'
-import { Form } from '@payloadcms/ui/forms/Form'
+import {
+ Collapsible,
+ Form,
+ Pill,
+ SectionTitle,
+ ShimmerEffect,
+ useConfig,
+ useDocumentInfo,
+ useFieldProps,
+ useFormSubmitted,
+ useTranslation,
+} from '@payloadcms/ui/client'
import React, { useCallback, useEffect, useMemo, useState } from 'react'
import { type BlockFields } from '../nodes/BlocksNode.js'
const baseClass = 'lexical-block'
import type { ReducedBlock } from '@payloadcms/ui/utilities/buildComponentMap'
-import type { FormState } from 'payload/types'
+import type { FormState } from 'payload'
import { getTranslation } from '@payloadcms/translations'
-import { Collapsible } from '@payloadcms/ui/elements/Collapsible'
-import { Pill } from '@payloadcms/ui/elements/Pill'
-import { ShimmerEffect } from '@payloadcms/ui/elements/ShimmerEffect'
-import { SectionTitle } from '@payloadcms/ui/fields/Blocks/SectionTitle'
-import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
-import { useFormSubmitted } from '@payloadcms/ui/forms/Form'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
-import { getFormState } from '@payloadcms/ui/utilities/getFormState'
+import { getFormState } from '@payloadcms/ui/shared'
import { v4 as uuid } from 'uuid'
import type { ClientComponentProps } from '../../types.js'
diff --git a/packages/richtext-lexical/src/field/features/blocks/component/removeEmptyArrayValues.ts b/packages/richtext-lexical/src/field/features/blocks/component/removeEmptyArrayValues.ts
index 800d25675..7d2216a7e 100644
--- a/packages/richtext-lexical/src/field/features/blocks/component/removeEmptyArrayValues.ts
+++ b/packages/richtext-lexical/src/field/features/blocks/component/removeEmptyArrayValues.ts
@@ -1,4 +1,4 @@
-import type { FormState } from 'payload/types'
+import type { FormState } from 'payload'
/**
* By default, if an array field is empty, it will be included in the form state with a value of 0.
diff --git a/packages/richtext-lexical/src/field/features/blocks/drawer/index.tsx b/packages/richtext-lexical/src/field/features/blocks/drawer/index.tsx
index 51c8934b8..f532635a5 100644
--- a/packages/richtext-lexical/src/field/features/blocks/drawer/index.tsx
+++ b/packages/richtext-lexical/src/field/features/blocks/drawer/index.tsx
@@ -3,10 +3,7 @@ import type { LexicalCommand, LexicalEditor } from 'lexical'
import { useModal } from '@faceless-ui/modal'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'
-import { formatDrawerSlug } from '@payloadcms/ui/elements/Drawer'
-import { BlocksDrawer } from '@payloadcms/ui/fields/Blocks/BlocksDrawer'
-import { useEditDepth } from '@payloadcms/ui/providers/EditDepth'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
+import { BlocksDrawer, formatDrawerSlug, useEditDepth, useTranslation } from '@payloadcms/ui/client'
import { $getNodeByKey, COMMAND_PRIORITY_EDITOR, createCommand } from 'lexical'
import React, { useCallback, useEffect, useState } from 'react'
diff --git a/packages/richtext-lexical/src/field/features/blocks/feature.server.ts b/packages/richtext-lexical/src/field/features/blocks/feature.server.ts
index 95e841290..a6f34d3b2 100644
--- a/packages/richtext-lexical/src/field/features/blocks/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/blocks/feature.server.ts
@@ -1,15 +1,14 @@
-import type { Config } from 'payload/config'
-import type { Block, BlockField, Field } from 'payload/types'
+import type { Block, BlockField, Config, Field } from 'payload'
import { traverseFields } from '@payloadcms/ui/utilities/buildFieldSchemaMap/traverseFields'
-import { baseBlockFields, sanitizeFields } from 'payload/config'
-import { fieldsToJSONSchema, formatLabels } from 'payload/utilities'
+import { baseBlockFields, fieldsToJSONSchema, formatLabels, sanitizeFields } from 'payload'
import type { FeatureProviderProviderServer } from '../types.js'
import type { BlocksFeatureClientProps } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { BlocksFeatureClientComponent } from '../../../exports/client/index.js'
import { createNode } from '../typeUtilities.js'
-import { BlocksFeatureClientComponent } from './feature.client.js'
import { blockPopulationPromiseHOC } from './graphQLPopulationPromise.js'
import { i18n } from './i18n.js'
import { BlockNode } from './nodes/BlocksNode.js'
diff --git a/packages/richtext-lexical/src/field/features/converters/html/field/index.ts b/packages/richtext-lexical/src/field/features/converters/html/field/index.ts
index 9f7be10b7..d98394c65 100644
--- a/packages/richtext-lexical/src/field/features/converters/html/field/index.ts
+++ b/packages/richtext-lexical/src/field/features/converters/html/field/index.ts
@@ -1,5 +1,5 @@
import type { SerializedEditorState } from 'lexical'
-import type { Field, FieldAffectingData, RichTextField } from 'payload/types'
+import type { Field, FieldAffectingData, RichTextField } from 'payload'
import type { AdapterProps, LexicalRichTextAdapter } from '../../../../../types.js'
import type { SanitizedServerEditorConfig } from '../../../../lexical/config/types.js'
diff --git a/packages/richtext-lexical/src/field/features/createFeaturePropComponent.tsx b/packages/richtext-lexical/src/field/features/createFeaturePropComponent.tsx
index b96a7a4e3..7c0e02246 100644
--- a/packages/richtext-lexical/src/field/features/createFeaturePropComponent.tsx
+++ b/packages/richtext-lexical/src/field/features/createFeaturePropComponent.tsx
@@ -2,9 +2,7 @@
import type React from 'react'
-import { useTableCell } from '@payloadcms/ui/elements/Table'
-import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
-import { useAddClientFunction } from '@payloadcms/ui/providers/ClientFunction'
+import { useAddClientFunction, useFieldProps, useTableCell } from '@payloadcms/ui/client'
const useLexicalFeatureProp = (featureKey: string, componentKey: string, prop: T) => {
const { schemaPath: schemaPathFromFieldProps } = useFieldProps()
diff --git a/packages/richtext-lexical/src/field/features/debug/testRecorder/feature.server.ts b/packages/richtext-lexical/src/field/features/debug/testRecorder/feature.server.ts
index 863909164..a7110743b 100644
--- a/packages/richtext-lexical/src/field/features/debug/testRecorder/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/debug/testRecorder/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../../types.js'
-import { TestRecorderFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { TestRecorderFeatureClientComponent } from '../../../../exports/client/index.js'
export const TestRecorderFeature: FeatureProviderProviderServer = (props) => {
return {
diff --git a/packages/richtext-lexical/src/field/features/debug/treeView/feature.server.ts b/packages/richtext-lexical/src/field/features/debug/treeView/feature.server.ts
index b4859d7d5..9c0a80cb2 100644
--- a/packages/richtext-lexical/src/field/features/debug/treeView/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/debug/treeView/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../../types.js'
-import { TreeViewFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { TreeViewFeatureClientComponent } from '../../../../exports/client/index.js'
export const TreeViewFeature: FeatureProviderProviderServer = (props) => {
return {
diff --git a/packages/richtext-lexical/src/field/features/format/bold/feature.server.ts b/packages/richtext-lexical/src/field/features/format/bold/feature.server.ts
index 77337c5c3..abcb78e61 100644
--- a/packages/richtext-lexical/src/field/features/format/bold/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/format/bold/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../../types.js'
-import { BoldFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { BoldFeatureClientComponent } from '../../../../exports/client/index.js'
import {
BOLD_ITALIC_STAR,
BOLD_ITALIC_UNDERSCORE,
diff --git a/packages/richtext-lexical/src/field/features/format/inlineCode/feature.server.ts b/packages/richtext-lexical/src/field/features/format/inlineCode/feature.server.ts
index c7d2d2136..ca839c237 100644
--- a/packages/richtext-lexical/src/field/features/format/inlineCode/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/format/inlineCode/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../../types.js'
-import { InlineCodeFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { InlineCodeFeatureClientComponent } from '../../../../exports/client/index.js'
import { INLINE_CODE } from './markdownTransformers.js'
export const InlineCodeFeature: FeatureProviderProviderServer = (props) => {
diff --git a/packages/richtext-lexical/src/field/features/format/italic/feature.server.ts b/packages/richtext-lexical/src/field/features/format/italic/feature.server.ts
index 8c32151a2..1c731b033 100644
--- a/packages/richtext-lexical/src/field/features/format/italic/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/format/italic/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../../types.js'
-import { ItalicFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { ItalicFeatureClientComponent } from '../../../../exports/client/index.js'
import { ITALIC_STAR, ITALIC_UNDERSCORE } from './markdownTransformers.js'
export const ItalicFeature: FeatureProviderProviderServer = (props) => {
diff --git a/packages/richtext-lexical/src/field/features/format/strikethrough/feature.server.ts b/packages/richtext-lexical/src/field/features/format/strikethrough/feature.server.ts
index ef65e05e7..bc15079ee 100644
--- a/packages/richtext-lexical/src/field/features/format/strikethrough/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/format/strikethrough/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../../types.js'
-import { StrikethroughFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { StrikethroughFeatureClientComponent } from '../../../../exports/client/index.js'
import { STRIKETHROUGH } from './markdownTransformers.js'
export const StrikethroughFeature: FeatureProviderProviderServer = (
diff --git a/packages/richtext-lexical/src/field/features/format/subscript/feature.server.ts b/packages/richtext-lexical/src/field/features/format/subscript/feature.server.ts
index 2484782a7..08d5e125e 100644
--- a/packages/richtext-lexical/src/field/features/format/subscript/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/format/subscript/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../../types.js'
-import { SubscriptFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { SubscriptFeatureClientComponent } from '../../../../exports/client/index.js'
export const SubscriptFeature: FeatureProviderProviderServer = (props) => {
return {
diff --git a/packages/richtext-lexical/src/field/features/format/superscript/feature.server.ts b/packages/richtext-lexical/src/field/features/format/superscript/feature.server.ts
index 02509efc3..0b0f90072 100644
--- a/packages/richtext-lexical/src/field/features/format/superscript/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/format/superscript/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../../types.js'
-import { SuperscriptFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { SuperscriptFeatureClientComponent } from '../../../../exports/client/index.js'
export const SuperscriptFeature: FeatureProviderProviderServer = (props) => {
return {
diff --git a/packages/richtext-lexical/src/field/features/format/underline/feature.server.ts b/packages/richtext-lexical/src/field/features/format/underline/feature.server.ts
index b06a501bc..939278004 100644
--- a/packages/richtext-lexical/src/field/features/format/underline/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/format/underline/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../../types.js'
-import { UnderlineFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { UnderlineFeatureClientComponent } from '../../../../exports/client/index.js'
export const UnderlineFeature: FeatureProviderProviderServer = (props) => {
return {
diff --git a/packages/richtext-lexical/src/field/features/heading/feature.client.tsx b/packages/richtext-lexical/src/field/features/heading/feature.client.tsx
index 71172644c..ea37a08af 100644
--- a/packages/richtext-lexical/src/field/features/heading/feature.client.tsx
+++ b/packages/richtext-lexical/src/field/features/heading/feature.client.tsx
@@ -2,8 +2,7 @@
import type { HeadingTagType } from '@lexical/rich-text'
-import { $isHeadingNode } from '@lexical/rich-text'
-import { $createHeadingNode, HeadingNode } from '@lexical/rich-text'
+import { $createHeadingNode, $isHeadingNode, HeadingNode } from '@lexical/rich-text'
import { $setBlocksType } from '@lexical/selection'
import { $getSelection, $isRangeSelection } from 'lexical'
diff --git a/packages/richtext-lexical/src/field/features/heading/feature.server.ts b/packages/richtext-lexical/src/field/features/heading/feature.server.ts
index 1890131dc..0a460e134 100644
--- a/packages/richtext-lexical/src/field/features/heading/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/heading/feature.server.ts
@@ -4,9 +4,10 @@ import { HeadingNode } from '@lexical/rich-text'
import type { FeatureProviderProviderServer } from '../types.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { HeadingFeatureClientComponent } from '../../../exports/client/index.js'
import { convertLexicalNodesToHTML } from '../converters/html/converter/index.js'
import { createNode } from '../typeUtilities.js'
-import { HeadingFeatureClientComponent } from './feature.client.js'
import { i18n } from './i18n.js'
import { MarkdownTransformer } from './markdownTransformer.js'
diff --git a/packages/richtext-lexical/src/field/features/horizontalRule/feature.server.ts b/packages/richtext-lexical/src/field/features/horizontalRule/feature.server.ts
index 11fbb9ed1..96f293a27 100644
--- a/packages/richtext-lexical/src/field/features/horizontalRule/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/horizontalRule/feature.server.ts
@@ -1,7 +1,8 @@
import type { FeatureProviderProviderServer } from '../types.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { HorizontalRuleFeatureClientComponent } from '../../../exports/client/index.js'
import { createNode } from '../typeUtilities.js'
-import { HorizontalRuleFeatureClientComponent } from './feature.client.js'
import { i18n } from './i18n.js'
import { MarkdownTransformer } from './markdownTransformer.js'
import { HorizontalRuleNode } from './nodes/HorizontalRuleNode.js'
diff --git a/packages/richtext-lexical/src/field/features/indent/feature.server.ts b/packages/richtext-lexical/src/field/features/indent/feature.server.ts
index 9ed6a9be3..10c8dd89a 100644
--- a/packages/richtext-lexical/src/field/features/indent/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/indent/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../types.js'
-import { IndentFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { IndentFeatureClientComponent } from '../../../exports/client/index.js'
import { i18n } from './i18n.js'
export const IndentFeature: FeatureProviderProviderServer = (props) => {
diff --git a/packages/richtext-lexical/src/field/features/link/drawer/baseFields.ts b/packages/richtext-lexical/src/field/features/link/drawer/baseFields.ts
index be58cc065..08428c09f 100644
--- a/packages/richtext-lexical/src/field/features/link/drawer/baseFields.ts
+++ b/packages/richtext-lexical/src/field/features/link/drawer/baseFields.ts
@@ -1,6 +1,4 @@
-import type { User } from 'payload/auth'
-import type { SanitizedConfig } from 'payload/config'
-import type { FieldAffectingData, RadioField, TextField } from 'payload/types'
+import type { FieldAffectingData, RadioField, SanitizedConfig, TextField, User } from 'payload'
import { validateUrl } from '../../../lexical/utils/url.js'
diff --git a/packages/richtext-lexical/src/field/features/link/drawer/index.tsx b/packages/richtext-lexical/src/field/features/link/drawer/index.tsx
index 11efc1855..07f986672 100644
--- a/packages/richtext-lexical/src/field/features/link/drawer/index.tsx
+++ b/packages/richtext-lexical/src/field/features/link/drawer/index.tsx
@@ -1,15 +1,17 @@
import type { FormProps } from '@payloadcms/ui/forms/Form'
-import type { FormState } from 'payload/types'
+import type { FormState } from 'payload'
-import { Drawer } from '@payloadcms/ui/elements/Drawer'
-import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
-import { Form } from '@payloadcms/ui/forms/Form'
-import { RenderFields } from '@payloadcms/ui/forms/RenderFields'
-import { FormSubmit } from '@payloadcms/ui/forms/Submit'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
-import { getFormState } from '@payloadcms/ui/utilities/getFormState'
+import {
+ Drawer,
+ Form,
+ FormSubmit,
+ RenderFields,
+ useConfig,
+ useDocumentInfo,
+ useFieldProps,
+ useTranslation,
+} from '@payloadcms/ui/client'
+import { getFormState } from '@payloadcms/ui/shared'
import React, { useCallback, useEffect, useState } from 'react'
import { v4 as uuid } from 'uuid'
diff --git a/packages/richtext-lexical/src/field/features/link/drawer/types.ts b/packages/richtext-lexical/src/field/features/link/drawer/types.ts
index 5899c5ac5..cb85606ab 100644
--- a/packages/richtext-lexical/src/field/features/link/drawer/types.ts
+++ b/packages/richtext-lexical/src/field/features/link/drawer/types.ts
@@ -1,4 +1,4 @@
-import type { FormState } from 'payload/types'
+import type { FormState } from 'payload'
import type { LinkFields } from '../nodes/types.js'
diff --git a/packages/richtext-lexical/src/field/features/link/feature.server.ts b/packages/richtext-lexical/src/field/features/link/feature.server.ts
index 61ee87e97..c4842dd1f 100644
--- a/packages/richtext-lexical/src/field/features/link/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/link/feature.server.ts
@@ -1,16 +1,16 @@
-import type { Config, SanitizedConfig } from 'payload/config'
-import type { Field, FieldAffectingData } from 'payload/types'
+import type { Config, Field, FieldAffectingData, SanitizedConfig } from 'payload'
import { traverseFields } from '@payloadcms/ui/utilities/buildFieldSchemaMap/traverseFields'
-import { sanitizeFields } from 'payload/config'
-import { deepCopyObject } from 'payload/utilities'
+import { sanitizeFields } from 'payload'
+import { deepCopyObject } from 'payload/shared'
import type { FeatureProviderProviderServer } from '../types.js'
import type { ClientProps } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { LinkFeatureClientComponent } from '../../../exports/client/index.js'
import { convertLexicalNodesToHTML } from '../converters/html/converter/index.js'
import { createNode } from '../typeUtilities.js'
-import { LinkFeatureClientComponent } from './feature.client.js'
import { linkPopulationPromiseHOC } from './graphQLPopulationPromise.js'
import { i18n } from './i18n.js'
import { LinkMarkdownTransformer } from './markdownTransformer.js'
@@ -186,7 +186,7 @@ export const LinkFeature: FeatureProviderProviderServer {
+ getSubFields: () => {
return sanitizedFieldsWithoutText
},
getSubFieldsData: ({ node }) => {
diff --git a/packages/richtext-lexical/src/field/features/link/nodes/LinkNode.ts b/packages/richtext-lexical/src/field/features/link/nodes/LinkNode.ts
index e6e699374..1feb05b78 100644
--- a/packages/richtext-lexical/src/field/features/link/nodes/LinkNode.ts
+++ b/packages/richtext-lexical/src/field/features/link/nodes/LinkNode.ts
@@ -1,4 +1,5 @@
-import type { BaseSelection ,
+import type {
+ BaseSelection,
DOMConversionMap,
DOMConversionOutput,
EditorConfig,
diff --git a/packages/richtext-lexical/src/field/features/link/plugins/autoLink/index.tsx b/packages/richtext-lexical/src/field/features/link/plugins/autoLink/index.tsx
index 906b7deca..c65e7afde 100644
--- a/packages/richtext-lexical/src/field/features/link/plugins/autoLink/index.tsx
+++ b/packages/richtext-lexical/src/field/features/link/plugins/autoLink/index.tsx
@@ -11,9 +11,9 @@ import {
$isNodeSelection,
$isRangeSelection,
$isTextNode,
+ type TextNode,
TextNode as TextNodeValue,
} from 'lexical'
-import { type TextNode } from 'lexical'
import { useEffect } from 'react'
import type { PluginComponent } from '../../../types.js'
diff --git a/packages/richtext-lexical/src/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.tsx b/packages/richtext-lexical/src/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.tsx
index ebb07d298..f496daa8a 100644
--- a/packages/richtext-lexical/src/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.tsx
+++ b/packages/richtext-lexical/src/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.tsx
@@ -1,19 +1,15 @@
'use client'
import type { LexicalNode } from 'lexical'
-import type { FormState } from 'payload/types'
-import type { Data } from 'payload/types'
+import type { Data, FormState } from 'payload'
import { useModal } from '@faceless-ui/modal'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'
import { $findMatchingParent, mergeRegister } from '@lexical/utils'
import { getTranslation } from '@payloadcms/translations'
-import { formatDrawerSlug } from '@payloadcms/ui/elements/Drawer'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useEditDepth } from '@payloadcms/ui/providers/EditDepth'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
-import { $isLineBreakNode } from 'lexical'
+import { formatDrawerSlug, useConfig, useEditDepth, useTranslation } from '@payloadcms/ui/client'
import {
$getSelection,
+ $isLineBreakNode,
$isRangeSelection,
COMMAND_PRIORITY_HIGH,
COMMAND_PRIORITY_LOW,
@@ -31,8 +27,7 @@ import { getSelectedNode } from '../../../../../lexical/utils/getSelectedNode.js
import { setFloatingElemPositionForLinkEditor } from '../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js'
import { LinkDrawer } from '../../../drawer/index.js'
import { $isAutoLinkNode } from '../../../nodes/AutoLinkNode.js'
-import { $createLinkNode } from '../../../nodes/LinkNode.js'
-import { $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../nodes/LinkNode.js'
+import { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../nodes/LinkNode.js'
import { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js'
export function LinkEditor({ anchorElem }: { anchorElem: HTMLElement }): React.ReactNode {
diff --git a/packages/richtext-lexical/src/field/features/link/plugins/floatingLinkEditor/utilities.ts b/packages/richtext-lexical/src/field/features/link/plugins/floatingLinkEditor/utilities.ts
index 40efad636..e167784a6 100644
--- a/packages/richtext-lexical/src/field/features/link/plugins/floatingLinkEditor/utilities.ts
+++ b/packages/richtext-lexical/src/field/features/link/plugins/floatingLinkEditor/utilities.ts
@@ -1,5 +1,4 @@
-import type { SanitizedConfig } from 'payload/config'
-import type { Field, FieldAffectingData } from 'payload/types'
+import type { Field, FieldAffectingData, SanitizedConfig } from 'payload'
import { getBaseFields } from '../../drawer/baseFields.js'
diff --git a/packages/richtext-lexical/src/field/features/link/validate.ts b/packages/richtext-lexical/src/field/features/link/validate.ts
index 86250254c..832d4ad1e 100644
--- a/packages/richtext-lexical/src/field/features/link/validate.ts
+++ b/packages/richtext-lexical/src/field/features/link/validate.ts
@@ -1,4 +1,4 @@
-import type { Field } from 'payload/types'
+import type { Field } from 'payload'
import { buildStateFromSchema } from '@payloadcms/ui/forms/buildStateFromSchema'
diff --git a/packages/richtext-lexical/src/field/features/lists/checklist/feature.server.ts b/packages/richtext-lexical/src/field/features/lists/checklist/feature.server.ts
index ca4f4a6cd..7aa9cbd46 100644
--- a/packages/richtext-lexical/src/field/features/lists/checklist/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/lists/checklist/feature.server.ts
@@ -2,9 +2,10 @@ import { ListItemNode, ListNode } from '@lexical/list'
import type { FeatureProviderProviderServer } from '../../types.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { ChecklistFeatureClientComponent } from '../../../../exports/client/index.js'
import { createNode } from '../../typeUtilities.js'
import { ListHTMLConverter, ListItemHTMLConverter } from '../htmlConverter.js'
-import { ChecklistFeatureClientComponent } from './feature.client.js'
import { i18n } from './i18n.js'
import { CHECK_LIST } from './markdownTransformers.js'
diff --git a/packages/richtext-lexical/src/field/features/lists/orderedList/feature.server.ts b/packages/richtext-lexical/src/field/features/lists/orderedList/feature.server.ts
index 4f515ca43..58947de34 100644
--- a/packages/richtext-lexical/src/field/features/lists/orderedList/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/lists/orderedList/feature.server.ts
@@ -2,9 +2,10 @@ import { ListItemNode, ListNode } from '@lexical/list'
import type { FeatureProviderProviderServer } from '../../types.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { OrderedListFeatureClientComponent } from '../../../../exports/client/index.js'
import { createNode } from '../../typeUtilities.js'
import { ListHTMLConverter, ListItemHTMLConverter } from '../htmlConverter.js'
-import { OrderedListFeatureClientComponent } from './feature.client.js'
import { i18n } from './i18n.js'
import { ORDERED_LIST } from './markdownTransformer.js'
diff --git a/packages/richtext-lexical/src/field/features/lists/unorderedList/feature.server.ts b/packages/richtext-lexical/src/field/features/lists/unorderedList/feature.server.ts
index 30fb23efc..48516e72a 100644
--- a/packages/richtext-lexical/src/field/features/lists/unorderedList/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/lists/unorderedList/feature.server.ts
@@ -2,9 +2,10 @@ import { ListItemNode, ListNode } from '@lexical/list'
import type { FeatureProviderProviderServer } from '../../types.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { UnorderedListFeatureClientComponent } from '../../../../exports/client/index.js'
import { createNode } from '../../typeUtilities.js'
import { ListHTMLConverter, ListItemHTMLConverter } from '../htmlConverter.js'
-import { UnorderedListFeatureClientComponent } from './feature.client.js'
import { i18n } from './i18n.js'
import { UNORDERED_LIST } from './markdownTransformer.js'
diff --git a/packages/richtext-lexical/src/field/features/migrations/lexicalPluginToLexical/feature.server.ts b/packages/richtext-lexical/src/field/features/migrations/lexicalPluginToLexical/feature.server.ts
index e0bd0fc77..1022a1856 100644
--- a/packages/richtext-lexical/src/field/features/migrations/lexicalPluginToLexical/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/migrations/lexicalPluginToLexical/feature.server.ts
@@ -3,8 +3,9 @@ import type React from 'react'
import type { FeatureProviderProviderServer } from '../../types.js'
import type { LexicalPluginNodeConverterProvider } from './converter/types.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { LexicalPluginToLexicalFeatureClientComponent } from '../../../../exports/client/index.js'
import { defaultConverters } from './converter/defaultConverters.js'
-import { LexicalPluginToLexicalFeatureClientComponent } from './feature.client.js'
import { UnknownConvertedNode } from './nodes/unknownConvertedNode/index.js'
export type LexicalPluginToLexicalFeatureProps = {
diff --git a/packages/richtext-lexical/src/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.tsx b/packages/richtext-lexical/src/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.tsx
index 2c13b5946..3f62c05c0 100644
--- a/packages/richtext-lexical/src/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.tsx
+++ b/packages/richtext-lexical/src/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.tsx
@@ -1,5 +1,4 @@
-import type { SerializedLexicalNode, Spread } from 'lexical'
-import type { EditorConfig, LexicalNode, NodeKey } from 'lexical'
+import type { EditorConfig, LexicalNode, NodeKey, SerializedLexicalNode, Spread } from 'lexical'
import type { JSX } from 'react'
import { addClassNamesToElement } from '@lexical/utils'
diff --git a/packages/richtext-lexical/src/field/features/migrations/slateToLexical/feature.server.ts b/packages/richtext-lexical/src/field/features/migrations/slateToLexical/feature.server.ts
index e27b6e3c3..6f9944cdb 100644
--- a/packages/richtext-lexical/src/field/features/migrations/slateToLexical/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/migrations/slateToLexical/feature.server.ts
@@ -3,8 +3,9 @@ import type React from 'react'
import type { FeatureProviderProviderServer } from '../../types.js'
import type { SlateNodeConverterProvider } from './converter/types.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { SlateToLexicalFeatureClientComponent } from '../../../../exports/client/index.js'
import { defaultSlateConverters } from './converter/defaultConverters.js'
-import { SlateToLexicalFeatureClientComponent } from './feature.client.js'
import { UnknownConvertedNode } from './nodes/unknownConvertedNode/index.js'
export type SlateToLexicalFeatureProps = {
diff --git a/packages/richtext-lexical/src/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.tsx b/packages/richtext-lexical/src/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.tsx
index 2c13b5946..3f62c05c0 100644
--- a/packages/richtext-lexical/src/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.tsx
+++ b/packages/richtext-lexical/src/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.tsx
@@ -1,5 +1,4 @@
-import type { SerializedLexicalNode, Spread } from 'lexical'
-import type { EditorConfig, LexicalNode, NodeKey } from 'lexical'
+import type { EditorConfig, LexicalNode, NodeKey, SerializedLexicalNode, Spread } from 'lexical'
import type { JSX } from 'react'
import { addClassNamesToElement } from '@lexical/utils'
diff --git a/packages/richtext-lexical/src/field/features/paragraph/feature.server.ts b/packages/richtext-lexical/src/field/features/paragraph/feature.server.ts
index a8b8efa64..721bceebe 100644
--- a/packages/richtext-lexical/src/field/features/paragraph/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/paragraph/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../types.js'
-import { ParagraphFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { ParagraphFeatureClientComponent } from '../../../exports/client/index.js'
import { i18n } from './i18n.js'
export const ParagraphFeature: FeatureProviderProviderServer = (props) => {
diff --git a/packages/richtext-lexical/src/field/features/relationship/drawer/index.tsx b/packages/richtext-lexical/src/field/features/relationship/drawer/index.tsx
index f9be27b5c..226ea2c47 100644
--- a/packages/richtext-lexical/src/field/features/relationship/drawer/index.tsx
+++ b/packages/richtext-lexical/src/field/features/relationship/drawer/index.tsx
@@ -2,7 +2,7 @@
import type { LexicalEditor } from 'lexical'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'
-import { useListDrawer } from '@payloadcms/ui/elements/ListDrawer'
+import { useListDrawer } from '@payloadcms/ui/client'
import { $getNodeByKey, COMMAND_PRIORITY_EDITOR } from 'lexical'
import React, { useCallback, useEffect, useState } from 'react'
diff --git a/packages/richtext-lexical/src/field/features/relationship/feature.server.ts b/packages/richtext-lexical/src/field/features/relationship/feature.server.ts
index b0733342a..03ad9d1a0 100644
--- a/packages/richtext-lexical/src/field/features/relationship/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/relationship/feature.server.ts
@@ -1,8 +1,9 @@
import type { FeatureProviderProviderServer } from '../types.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { RelationshipFeatureClientComponent } from '../../../exports/client/index.js'
import { populate } from '../../../populateGraphQL/populate.js'
import { createNode } from '../typeUtilities.js'
-import { RelationshipFeatureClientComponent } from './feature.client.js'
import { relationshipPopulationPromiseHOC } from './graphQLPopulationPromise.js'
import { i18n } from './i18n.js'
import { RelationshipNode } from './nodes/RelationshipNode.js'
diff --git a/packages/richtext-lexical/src/field/features/relationship/nodes/components/RelationshipComponent.tsx b/packages/richtext-lexical/src/field/features/relationship/nodes/components/RelationshipComponent.tsx
index ea4f6ec57..f0dfd8d1d 100644
--- a/packages/richtext-lexical/src/field/features/relationship/nodes/components/RelationshipComponent.tsx
+++ b/packages/richtext-lexical/src/field/features/relationship/nodes/components/RelationshipComponent.tsx
@@ -5,12 +5,15 @@ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext
import { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection.js'
import { mergeRegister } from '@lexical/utils'
import { getTranslation } from '@payloadcms/translations'
-import { Button } from '@payloadcms/ui/elements/Button'
-import { useDocumentDrawer } from '@payloadcms/ui/elements/DocumentDrawer'
-import usePayloadAPI from '@payloadcms/ui/hooks/usePayloadAPI'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
import {
+ Button,
+ useConfig,
+ useDocumentDrawer,
+ usePayloadAPI,
+ useTranslation,
+} from '@payloadcms/ui/client'
+import {
+ $getNodeByKey,
$getSelection,
$isNodeSelection,
CLICK_COMMAND,
@@ -18,7 +21,6 @@ import {
KEY_BACKSPACE_COMMAND,
KEY_DELETE_COMMAND,
} from 'lexical'
-import { $getNodeByKey } from 'lexical'
import React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'
import type { RelationshipData } from '../RelationshipNode.js'
diff --git a/packages/richtext-lexical/src/field/features/relationship/plugins/index.tsx b/packages/richtext-lexical/src/field/features/relationship/plugins/index.tsx
index 215dd3105..fffcc07c3 100644
--- a/packages/richtext-lexical/src/field/features/relationship/plugins/index.tsx
+++ b/packages/richtext-lexical/src/field/features/relationship/plugins/index.tsx
@@ -3,7 +3,7 @@ import type { LexicalCommand } from 'lexical'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'
import { $insertNodeToNearestRoot } from '@lexical/utils'
-import { useConfig } from '@payloadcms/ui/providers/Config'
+import { useConfig } from '@payloadcms/ui/client'
import {
$getPreviousSelection,
$getSelection,
@@ -12,8 +12,7 @@ import {
COMMAND_PRIORITY_EDITOR,
createCommand,
} from 'lexical'
-import { useEffect } from 'react'
-import React from 'react'
+import React, { useEffect } from 'react'
import type { PluginComponent } from '../../types.js'
import type { RelationshipFeatureProps } from '../feature.server.js'
diff --git a/packages/richtext-lexical/src/field/features/relationship/utils/EnabledRelationshipsCondition.tsx b/packages/richtext-lexical/src/field/features/relationship/utils/EnabledRelationshipsCondition.tsx
index 8bcf4639c..af0f478e9 100644
--- a/packages/richtext-lexical/src/field/features/relationship/utils/EnabledRelationshipsCondition.tsx
+++ b/packages/richtext-lexical/src/field/features/relationship/utils/EnabledRelationshipsCondition.tsx
@@ -1,9 +1,6 @@
-import type { ClientUser } from 'payload/auth'
-import type { ClientCollectionConfig, VisibleEntities } from 'payload/types'
+import type { ClientCollectionConfig, ClientUser, VisibleEntities } from 'payload'
-import { useAuth } from '@payloadcms/ui/providers/Auth'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useEntityVisibility } from '@payloadcms/ui/providers/EntityVisibility'
+import { useAuth, useConfig, useEntityVisibility } from '@payloadcms/ui/client'
import * as React from 'react'
type Options = {
diff --git a/packages/richtext-lexical/src/field/features/toolbars/fixed/Toolbar/index.scss b/packages/richtext-lexical/src/field/features/toolbars/fixed/Toolbar/index.scss
index f964b041b..7d6656514 100644
--- a/packages/richtext-lexical/src/field/features/toolbars/fixed/Toolbar/index.scss
+++ b/packages/richtext-lexical/src/field/features/toolbars/fixed/Toolbar/index.scss
@@ -104,14 +104,13 @@ html[data-theme='dark'] {
}
}
-
.rich-text-lexical--show-gutter {
.fixed-toolbar {
+ .editor-container {
> .editor-scroller > .editor {
> .ContentEditable__root::before {
- top: calc(var(--base) * 1.25)!important;
- height: calc(100% - calc(var(--base) * 1.25) - 8px)!important;
+ top: calc(var(--base) * 1.25) !important;
+ height: calc(100% - calc(var(--base) * 1.25) - 8px) !important;
}
}
}
diff --git a/packages/richtext-lexical/src/field/features/toolbars/fixed/Toolbar/index.tsx b/packages/richtext-lexical/src/field/features/toolbars/fixed/Toolbar/index.tsx
index b70cf66fb..ab67e61da 100644
--- a/packages/richtext-lexical/src/field/features/toolbars/fixed/Toolbar/index.tsx
+++ b/packages/richtext-lexical/src/field/features/toolbars/fixed/Toolbar/index.tsx
@@ -3,8 +3,7 @@ import type { LexicalEditor } from 'lexical'
import * as scrollInfoImport from '@faceless-ui/scroll-info'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'
-import useThrottledEffect from '@payloadcms/ui/hooks/useThrottledEffect'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
+import { useThrottledEffect, useTranslation } from '@payloadcms/ui/client'
import * as React from 'react'
import { useMemo } from 'react'
diff --git a/packages/richtext-lexical/src/field/features/toolbars/fixed/feature.server.ts b/packages/richtext-lexical/src/field/features/toolbars/fixed/feature.server.ts
index 42cafdc25..a278c29d9 100644
--- a/packages/richtext-lexical/src/field/features/toolbars/fixed/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/toolbars/fixed/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../../types.js'
-import { FixedToolbarFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { FixedToolbarFeatureClientComponent } from '../../../../exports/client/index.js'
export type FixedToolbarFeatureProps = {
/**
diff --git a/packages/richtext-lexical/src/field/features/toolbars/inline/Toolbar/index.scss b/packages/richtext-lexical/src/field/features/toolbars/inline/Toolbar/index.scss
index e2a69d00c..f4c8dbc7f 100644
--- a/packages/richtext-lexical/src/field/features/toolbars/inline/Toolbar/index.scss
+++ b/packages/richtext-lexical/src/field/features/toolbars/inline/Toolbar/index.scss
@@ -49,5 +49,4 @@ html[data-theme='light'] {
margin: 0 6.25px;
}
}
-
}
diff --git a/packages/richtext-lexical/src/field/features/toolbars/inline/feature.server.ts b/packages/richtext-lexical/src/field/features/toolbars/inline/feature.server.ts
index f34190fa6..97d81a4de 100644
--- a/packages/richtext-lexical/src/field/features/toolbars/inline/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/toolbars/inline/feature.server.ts
@@ -1,6 +1,7 @@
import type { FeatureProviderProviderServer } from '../../types.js'
-import { InlineToolbarFeatureClientComponent } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { InlineToolbarFeatureClientComponent } from '../../../../exports/client/index.js'
export const InlineToolbarFeature: FeatureProviderProviderServer = (
props,
diff --git a/packages/richtext-lexical/src/field/features/toolbars/shared/ToolbarDropdown/DropDown.tsx b/packages/richtext-lexical/src/field/features/toolbars/shared/ToolbarDropdown/DropDown.tsx
index d167abc30..7f4bf78dc 100644
--- a/packages/richtext-lexical/src/field/features/toolbars/shared/ToolbarDropdown/DropDown.tsx
+++ b/packages/richtext-lexical/src/field/features/toolbars/shared/ToolbarDropdown/DropDown.tsx
@@ -1,8 +1,7 @@
'use client'
import type { LexicalEditor } from 'lexical'
-import { type ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'
-import React from 'react'
+import React, { type ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { createPortal } from 'react-dom'
import type { ToolbarGroupItem } from '../../types.js'
diff --git a/packages/richtext-lexical/src/field/features/toolbars/shared/ToolbarDropdown/index.scss b/packages/richtext-lexical/src/field/features/toolbars/shared/ToolbarDropdown/index.scss
index 1a581cd35..4f62a71e2 100644
--- a/packages/richtext-lexical/src/field/features/toolbars/shared/ToolbarDropdown/index.scss
+++ b/packages/richtext-lexical/src/field/features/toolbars/shared/ToolbarDropdown/index.scss
@@ -79,7 +79,8 @@
text-overflow: ellipsis;
}
- &:hover:not([disabled]), &.active {
+ &:hover:not([disabled]),
+ &.active {
background-color: var(--color-base-100);
}
diff --git a/packages/richtext-lexical/src/field/features/toolbars/shared/ToolbarDropdown/index.tsx b/packages/richtext-lexical/src/field/features/toolbars/shared/ToolbarDropdown/index.tsx
index 0c944e463..fd8fca4a7 100644
--- a/packages/richtext-lexical/src/field/features/toolbars/shared/ToolbarDropdown/index.tsx
+++ b/packages/richtext-lexical/src/field/features/toolbars/shared/ToolbarDropdown/index.tsx
@@ -6,7 +6,7 @@ const baseClass = 'toolbar-popup__dropdown'
import type { LexicalEditor } from 'lexical'
import { mergeRegister } from '@lexical/utils'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
+import { useTranslation } from '@payloadcms/ui/client'
import { $getSelection } from 'lexical'
import type { ToolbarGroupItem } from '../../types.js'
diff --git a/packages/richtext-lexical/src/field/features/types.ts b/packages/richtext-lexical/src/field/features/types.ts
index 1b0430546..95a0aaa25 100644
--- a/packages/richtext-lexical/src/field/features/types.ts
+++ b/packages/richtext-lexical/src/field/features/types.ts
@@ -1,16 +1,23 @@
import type { Transformer } from '@lexical/markdown'
import type { GenericLanguages, I18nClient } from '@payloadcms/translations'
import type { JSONSchema4 } from 'json-schema'
-import type { Klass, LexicalEditor, LexicalNode, LexicalNodeReplacement , SerializedEditorState , SerializedLexicalNode } from 'lexical'
-import type { RequestContext } from 'payload'
-import type { SanitizedConfig } from 'payload/config'
+import type {
+ Klass,
+ LexicalEditor,
+ LexicalNode,
+ LexicalNodeReplacement,
+ SerializedEditorState,
+ SerializedLexicalNode,
+} from 'lexical'
import type {
Field,
PayloadRequestWithData,
ReplaceAny,
+ RequestContext,
RichTextField,
+ SanitizedConfig,
ValidateOptions,
-} from 'payload/types'
+} from 'payload'
import type React from 'react'
import type { AdapterProps } from '../../types.js'
diff --git a/packages/richtext-lexical/src/field/features/upload/component/ExtraFieldsDrawer/index.tsx b/packages/richtext-lexical/src/field/features/upload/component/ExtraFieldsDrawer/index.tsx
index dc336bcbb..8394359c1 100644
--- a/packages/richtext-lexical/src/field/features/upload/component/ExtraFieldsDrawer/index.tsx
+++ b/packages/richtext-lexical/src/field/features/upload/component/ExtraFieldsDrawer/index.tsx
@@ -1,21 +1,23 @@
'use client'
import type { FormProps } from '@payloadcms/ui/forms/Form'
-import type { ClientCollectionConfig, FormState } from 'payload/types'
+import type { ClientCollectionConfig, FormState } from 'payload'
import { useModal } from '@faceless-ui/modal'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'
import { getTranslation } from '@payloadcms/translations'
-import { Drawer } from '@payloadcms/ui/elements/Drawer'
-import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
-import { Form } from '@payloadcms/ui/forms/Form'
-import { RenderFields } from '@payloadcms/ui/forms/RenderFields'
-import { FormSubmit } from '@payloadcms/ui/forms/Submit'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
-import { getFormState } from '@payloadcms/ui/utilities/getFormState'
+import {
+ Drawer,
+ Form,
+ FormSubmit,
+ RenderFields,
+ useConfig,
+ useDocumentInfo,
+ useFieldProps,
+ useTranslation,
+} from '@payloadcms/ui/client'
+import { getFormState } from '@payloadcms/ui/shared'
import { $getNodeByKey } from 'lexical'
-import { deepCopyObject } from 'payload/utilities'
+import { deepCopyObject } from 'payload/shared'
import React, { useCallback, useEffect, useState } from 'react'
import { v4 as uuid } from 'uuid'
diff --git a/packages/richtext-lexical/src/field/features/upload/component/index.tsx b/packages/richtext-lexical/src/field/features/upload/component/index.tsx
index 0568548b6..71072b105 100644
--- a/packages/richtext-lexical/src/field/features/upload/component/index.tsx
+++ b/packages/richtext-lexical/src/field/features/upload/component/index.tsx
@@ -1,18 +1,20 @@
'use client'
-import type { ClientCollectionConfig } from 'payload/types'
+import type { ClientCollectionConfig } from 'payload'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'
import { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection.js'
import { mergeRegister } from '@lexical/utils'
import { getTranslation } from '@payloadcms/translations'
-import { Button } from '@payloadcms/ui/elements/Button'
-import { useDocumentDrawer } from '@payloadcms/ui/elements/DocumentDrawer'
-import { DrawerToggler } from '@payloadcms/ui/elements/Drawer'
-import { useDrawerSlug } from '@payloadcms/ui/elements/Drawer'
-import { File } from '@payloadcms/ui/graphics/File'
-import usePayloadAPI from '@payloadcms/ui/hooks/usePayloadAPI'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
+import {
+ Button,
+ DrawerToggler,
+ File,
+ useConfig,
+ useDocumentDrawer,
+ useDrawerSlug,
+ usePayloadAPI,
+ useTranslation,
+} from '@payloadcms/ui/client'
import {
$getNodeByKey,
$getSelection,
diff --git a/packages/richtext-lexical/src/field/features/upload/drawer/index.tsx b/packages/richtext-lexical/src/field/features/upload/drawer/index.tsx
index e49387f06..750d9ab4e 100644
--- a/packages/richtext-lexical/src/field/features/upload/drawer/index.tsx
+++ b/packages/richtext-lexical/src/field/features/upload/drawer/index.tsx
@@ -2,7 +2,7 @@
import type { LexicalEditor } from 'lexical'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'
-import { useListDrawer } from '@payloadcms/ui/elements/ListDrawer'
+import { useListDrawer } from '@payloadcms/ui/client'
import { $getNodeByKey, COMMAND_PRIORITY_EDITOR } from 'lexical'
import React, { useCallback, useEffect, useState } from 'react'
diff --git a/packages/richtext-lexical/src/field/features/upload/feature.server.ts b/packages/richtext-lexical/src/field/features/upload/feature.server.ts
index 1e70a33b5..1a13601e4 100644
--- a/packages/richtext-lexical/src/field/features/upload/feature.server.ts
+++ b/packages/richtext-lexical/src/field/features/upload/feature.server.ts
@@ -1,15 +1,15 @@
-import type { Config } from 'payload/config'
-import type { Field, FileData, FileSize, Payload, TypeWithID } from 'payload/types'
+import type { Config, Field, FileData, FileSize, Payload, TypeWithID } from 'payload'
import { traverseFields } from '@payloadcms/ui/utilities/buildFieldSchemaMap/traverseFields'
-import { sanitizeFields } from 'payload/config'
+import { sanitizeFields } from 'payload'
import type { FeatureProviderProviderServer } from '../types.js'
import type { UploadFeaturePropsClient } from './feature.client.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { UploadFeatureClientComponent } from '../../../exports/client/index.js'
import { populate } from '../../../populateGraphQL/populate.js'
import { createNode } from '../typeUtilities.js'
-import { UploadFeatureClientComponent } from './feature.client.js'
import { uploadPopulationPromiseHOC } from './graphQLPopulationPromise.js'
import { i18n } from './i18n.js'
import { UploadNode } from './nodes/UploadNode.js'
diff --git a/packages/richtext-lexical/src/field/features/upload/nodes/UploadNode.tsx b/packages/richtext-lexical/src/field/features/upload/nodes/UploadNode.tsx
index feac83a26..0e9d8415a 100644
--- a/packages/richtext-lexical/src/field/features/upload/nodes/UploadNode.tsx
+++ b/packages/richtext-lexical/src/field/features/upload/nodes/UploadNode.tsx
@@ -1,10 +1,11 @@
import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'
-import type { ElementFormatType, NodeKey } from 'lexical'
import type {
DOMConversionMap,
DOMConversionOutput,
DOMExportOutput,
+ ElementFormatType,
LexicalNode,
+ NodeKey,
Spread,
} from 'lexical'
import type { JSX } from 'react'
diff --git a/packages/richtext-lexical/src/field/features/upload/plugin/index.tsx b/packages/richtext-lexical/src/field/features/upload/plugin/index.tsx
index c75716274..5f225328d 100644
--- a/packages/richtext-lexical/src/field/features/upload/plugin/index.tsx
+++ b/packages/richtext-lexical/src/field/features/upload/plugin/index.tsx
@@ -3,7 +3,7 @@ import type { LexicalCommand } from 'lexical'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'
import { $insertNodeToNearestRoot, mergeRegister } from '@lexical/utils'
-import { useConfig } from '@payloadcms/ui/providers/Config'
+import { useConfig } from '@payloadcms/ui/client'
import {
$getPreviousSelection,
$getSelection,
diff --git a/packages/richtext-lexical/src/field/features/upload/validate.ts b/packages/richtext-lexical/src/field/features/upload/validate.ts
index 73f58c16c..4f62c40ea 100644
--- a/packages/richtext-lexical/src/field/features/upload/validate.ts
+++ b/packages/richtext-lexical/src/field/features/upload/validate.ts
@@ -1,5 +1,5 @@
import { buildStateFromSchema } from '@payloadcms/ui/forms/buildStateFromSchema'
-import { isValidID } from 'payload/utilities'
+import { isValidID } from 'payload'
import type { NodeValidation } from '../types.js'
import type { UploadFeatureProps } from './feature.server.js'
diff --git a/packages/richtext-lexical/src/field/index.scss b/packages/richtext-lexical/src/field/index.scss
index 949f77c71..62fd32263 100644
--- a/packages/richtext-lexical/src/field/index.scss
+++ b/packages/richtext-lexical/src/field/index.scss
@@ -22,4 +22,3 @@
}
}
}
-
diff --git a/packages/richtext-lexical/src/field/index.tsx b/packages/richtext-lexical/src/field/index.tsx
index b72daeb2c..f5541d726 100644
--- a/packages/richtext-lexical/src/field/index.tsx
+++ b/packages/richtext-lexical/src/field/index.tsx
@@ -2,9 +2,7 @@
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
import type { EditorConfig as LexicalEditorConfig } from 'lexical'
-import { ShimmerEffect } from '@payloadcms/ui/elements/ShimmerEffect'
-import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
-import { useClientFunctions } from '@payloadcms/ui/providers/ClientFunction'
+import { ShimmerEffect, useClientFunctions, useFieldProps } from '@payloadcms/ui/client'
import React, { Suspense, lazy, useEffect, useState } from 'react'
import type { GeneratedFeatureProviderComponent, LexicalFieldAdminProps } from '../types.js'
diff --git a/packages/richtext-lexical/src/field/lexical/LexicalEditor.scss b/packages/richtext-lexical/src/field/lexical/LexicalEditor.scss
index ad7497b4f..8823c51b2 100644
--- a/packages/richtext-lexical/src/field/lexical/LexicalEditor.scss
+++ b/packages/richtext-lexical/src/field/lexical/LexicalEditor.scss
@@ -22,7 +22,7 @@
}
}
- &--show-gutter {
+ &--show-gutter {
> .rich-text-lexical__wrap > .editor-container > .editor-placeholder {
left: 3rem;
}
diff --git a/packages/richtext-lexical/src/field/lexical/LexicalEditor.tsx b/packages/richtext-lexical/src/field/lexical/LexicalEditor.tsx
index 24346b585..599ad066f 100644
--- a/packages/richtext-lexical/src/field/lexical/LexicalEditor.tsx
+++ b/packages/richtext-lexical/src/field/lexical/LexicalEditor.tsx
@@ -5,7 +5,7 @@ import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin.js'
import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin.js'
import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin.js'
import { TabIndentationPlugin } from '@lexical/react/LexicalTabIndentationPlugin.js'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
+import { useTranslation } from '@payloadcms/ui/client'
import { BLUR_COMMAND, COMMAND_PRIORITY_LOW, FOCUS_COMMAND } from 'lexical'
import * as React from 'react'
import { useEffect, useState } from 'react'
diff --git a/packages/richtext-lexical/src/field/lexical/LexicalProvider.tsx b/packages/richtext-lexical/src/field/lexical/LexicalProvider.tsx
index adc605133..a790398c9 100644
--- a/packages/richtext-lexical/src/field/lexical/LexicalProvider.tsx
+++ b/packages/richtext-lexical/src/field/lexical/LexicalProvider.tsx
@@ -1,8 +1,7 @@
'use client'
import type { InitialConfigType } from '@lexical/react/LexicalComposer.js'
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
-import type { EditorState, SerializedEditorState } from 'lexical'
-import type { LexicalEditor } from 'lexical'
+import type { EditorState, LexicalEditor, SerializedEditorState } from 'lexical'
import { LexicalComposer } from '@lexical/react/LexicalComposer.js'
import * as React from 'react'
@@ -30,13 +29,12 @@ export type LexicalProviderProps = {
value: SerializedEditorState
}
export const LexicalProvider: React.FC = (props) => {
- const { editorConfig, fieldProps, value, onChange, path, readOnly } = props
+ const { editorConfig, fieldProps, onChange, path, readOnly, value } = props
const parentContext = useEditorConfigContext()
const editorContainerRef = React.useRef(null)
-
const processedValue = useMemo(() => {
let processed = value
if (editorConfig?.features?.hooks?.load?.length) {
diff --git a/packages/richtext-lexical/src/field/lexical/config/server/loader.ts b/packages/richtext-lexical/src/field/lexical/config/server/loader.ts
index 3ca4a159c..5440033bc 100644
--- a/packages/richtext-lexical/src/field/lexical/config/server/loader.ts
+++ b/packages/richtext-lexical/src/field/lexical/config/server/loader.ts
@@ -1,4 +1,4 @@
-import type { SanitizedConfig } from 'payload/config'
+import type { SanitizedConfig } from 'payload'
import type {
FeatureProviderServer,
diff --git a/packages/richtext-lexical/src/field/lexical/config/server/sanitize.ts b/packages/richtext-lexical/src/field/lexical/config/server/sanitize.ts
index 84a27f4ff..2fa528514 100644
--- a/packages/richtext-lexical/src/field/lexical/config/server/sanitize.ts
+++ b/packages/richtext-lexical/src/field/lexical/config/server/sanitize.ts
@@ -1,4 +1,4 @@
-import type { SanitizedConfig } from 'payload/config'
+import type { SanitizedConfig } from 'payload'
import type { ResolvedServerFeatureMap, SanitizedServerFeatures } from '../../../features/types.js'
import type { SanitizedServerEditorConfig, ServerEditorConfig } from '../types.js'
diff --git a/packages/richtext-lexical/src/field/lexical/nodes/index.ts b/packages/richtext-lexical/src/field/lexical/nodes/index.ts
index 80ed1a7db..69dc1b672 100644
--- a/packages/richtext-lexical/src/field/lexical/nodes/index.ts
+++ b/packages/richtext-lexical/src/field/lexical/nodes/index.ts
@@ -1,4 +1,4 @@
-import type { Klass, LexicalNode , LexicalNodeReplacement } from 'lexical'
+import type { Klass, LexicalNode, LexicalNodeReplacement } from 'lexical'
import type { SanitizedClientEditorConfig, SanitizedServerEditorConfig } from '../config/types.js'
diff --git a/packages/richtext-lexical/src/field/lexical/plugins/SlashMenu/index.tsx b/packages/richtext-lexical/src/field/lexical/plugins/SlashMenu/index.tsx
index fb78bbec4..1fe5d7056 100644
--- a/packages/richtext-lexical/src/field/lexical/plugins/SlashMenu/index.tsx
+++ b/packages/richtext-lexical/src/field/lexical/plugins/SlashMenu/index.tsx
@@ -2,7 +2,7 @@
import type { TextNode } from 'lexical'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
+import { useTranslation } from '@payloadcms/ui/client'
import { useCallback, useMemo, useState } from 'react'
import * as React from 'react'
import * as ReactDOM from 'react-dom'
@@ -58,7 +58,7 @@ function SlashMenuItem({
onClick={onClick}
onMouseEnter={onMouseEnter}
ref={item.ref}
- role="item"
+ role="option"
tabIndex={-1}
type="button"
>
diff --git a/packages/richtext-lexical/src/field/lexical/plugins/handles/DraggableBlockPlugin/index.scss b/packages/richtext-lexical/src/field/lexical/plugins/handles/DraggableBlockPlugin/index.scss
index 4b3bca8b2..c952c055e 100644
--- a/packages/richtext-lexical/src/field/lexical/plugins/handles/DraggableBlockPlugin/index.scss
+++ b/packages/richtext-lexical/src/field/lexical/plugins/handles/DraggableBlockPlugin/index.scss
@@ -36,7 +36,11 @@
}
}
-.rich-text-lexical--show-gutter > .rich-text-lexical__wrap > .editor-container > .editor-scroller > .editor {
+.rich-text-lexical--show-gutter
+ > .rich-text-lexical__wrap
+ > .editor-container
+ > .editor-scroller
+ > .editor {
> .draggable-block-target-line {
left: 3rem;
}
@@ -63,10 +67,11 @@
}
}
-
.rich-text-lexical {
.ContentEditable__root > * {
will-change: margin-top, margin-bottom;
- transition: margin-top 0.08s, margin-bottom 0.08s;
+ transition:
+ margin-top 0.08s,
+ margin-bottom 0.08s;
}
}
diff --git a/packages/richtext-lexical/src/field/lexical/ui/ContentEditable.scss b/packages/richtext-lexical/src/field/lexical/ui/ContentEditable.scss
index a812e3e8a..f5fa0d654 100644
--- a/packages/richtext-lexical/src/field/lexical/ui/ContentEditable.scss
+++ b/packages/richtext-lexical/src/field/lexical/ui/ContentEditable.scss
@@ -3,7 +3,6 @@
$lexical-contenteditable-top-padding: 8px;
$lexical-contenteditable-bottom-padding: 8px;
-
.ContentEditable__root {
border: 0;
font-size: 15px;
@@ -25,7 +24,6 @@ $lexical-contenteditable-bottom-padding: 8px;
}
}
-
@media (max-width: 768px) {
.ContentEditable__root {
padding-left: 0;
@@ -34,7 +32,11 @@ $lexical-contenteditable-bottom-padding: 8px;
}
@media (min-width: 769px) {
- .rich-text-lexical--show-gutter > .rich-text-lexical__wrap > .editor-container > .editor-scroller > .editor {
+ .rich-text-lexical--show-gutter
+ > .rich-text-lexical__wrap
+ > .editor-container
+ > .editor-scroller
+ > .editor {
> .ContentEditable__root {
padding-left: 3rem;
}
@@ -43,7 +45,9 @@ $lexical-contenteditable-bottom-padding: 8px;
position: absolute;
top: $lexical-contenteditable-top-padding;
left: 0;
- height: calc(100% - #{$lexical-contenteditable-top-padding} - #{$lexical-contenteditable-bottom-padding});
+ height: calc(
+ 100% - #{$lexical-contenteditable-top-padding} - #{$lexical-contenteditable-bottom-padding}
+ );
border-left: 1px solid var(--theme-elevation-100);
}
}
@@ -52,13 +56,21 @@ $lexical-contenteditable-bottom-padding: 8px;
html[data-theme='light'] {
.rich-text-lexical.rich-text-lexical--show-gutter {
&.error:not(:hover) {
- > .rich-text-lexical__wrap > .editor-container > .editor-scroller > .editor > .ContentEditable__root::before {
+ > .rich-text-lexical__wrap
+ > .editor-container
+ > .editor-scroller
+ > .editor
+ > .ContentEditable__root::before {
border-left: 2px solid var(--theme-error-400);
}
}
&.error:hover {
- > .rich-text-lexical__wrap > .editor-container > .editor-scroller > .editor > .ContentEditable__root::before {
+ > .rich-text-lexical__wrap
+ > .editor-container
+ > .editor-scroller
+ > .editor
+ > .ContentEditable__root::before {
border-left: 2px solid var(--theme-error-500);
}
}
@@ -68,7 +80,11 @@ html[data-theme='light'] {
html[data-theme='dark'] {
.rich-text-lexical.rich-text-lexical--show-gutter {
&.error {
- > .rich-text-lexical__wrap > .editor-container > .editor-scroller > .editor > .ContentEditable__root::before {
+ > .rich-text-lexical__wrap
+ > .editor-container
+ > .editor-scroller
+ > .editor
+ > .ContentEditable__root::before {
border-left: 2px solid var(--theme-error-500);
}
}
diff --git a/packages/richtext-lexical/src/generateComponentMap.tsx b/packages/richtext-lexical/src/generateComponentMap.tsx
index 565b51a7a..e1e36fec1 100644
--- a/packages/richtext-lexical/src/generateComponentMap.tsx
+++ b/packages/richtext-lexical/src/generateComponentMap.tsx
@@ -1,4 +1,4 @@
-import type { RichTextAdapter } from 'payload/types'
+import type { RichTextAdapter } from 'payload'
import { mapFields } from '@payloadcms/ui/utilities/buildComponentMap'
import React from 'react'
diff --git a/packages/richtext-lexical/src/generateSchemaMap.ts b/packages/richtext-lexical/src/generateSchemaMap.ts
index f0bcd6dbc..368e7b097 100644
--- a/packages/richtext-lexical/src/generateSchemaMap.ts
+++ b/packages/richtext-lexical/src/generateSchemaMap.ts
@@ -1,4 +1,4 @@
-import type { RichTextAdapter } from 'payload/types'
+import type { RichTextAdapter } from 'payload'
import type { ResolvedServerFeatureMap } from './field/features/types.js'
diff --git a/packages/richtext-lexical/src/index.ts b/packages/richtext-lexical/src/index.ts
index 86009666f..d457bfa73 100644
--- a/packages/richtext-lexical/src/index.ts
+++ b/packages/richtext-lexical/src/index.ts
@@ -12,7 +12,7 @@ import {
beforeChangeTraverseFields,
beforeValidateTraverseFields,
withNullableJSONSchemaType,
-} from 'payload/utilities'
+} from 'payload'
import type { FeatureProviderServer, ResolvedServerFeatureMap } from './field/features/types.js'
import type { SanitizedServerEditorConfig } from './field/lexical/config/types.js'
@@ -23,8 +23,8 @@ import type {
LexicalRichTextAdapterProvider,
} from './types.js'
-import { RichTextCell } from './cell/index.js'
-import { RichTextField } from './field/index.js'
+// eslint-disable-next-line payload/no-imports-from-exports-dir
+import { RichTextCell, RichTextField } from './exports/client/index.js'
import {
defaultEditorConfig,
defaultEditorFeatures,
@@ -805,7 +805,6 @@ export { BoldFeature } from './field/features/format/bold/feature.server.js'
export { InlineCodeFeature } from './field/features/format/inlineCode/feature.server.js'
export { ItalicFeature } from './field/features/format/italic/feature.server.js'
-export { toolbarFormatGroupWithItems } from './field/features/format/shared/toolbarFormatGroup.js'
export { StrikethroughFeature } from './field/features/format/strikethrough/feature.server.js'
export { SubscriptFeature } from './field/features/format/subscript/feature.server.js'
export { SuperscriptFeature } from './field/features/format/superscript/feature.server.js'
@@ -873,10 +872,7 @@ export {
RelationshipNode,
type SerializedRelationshipNode,
} from './field/features/relationship/nodes/RelationshipNode.js'
-export { toolbarAddDropdownGroupWithItems } from './field/features/shared/toolbar/addDropdownGroup.js'
-export { toolbarFeatureButtonsGroupWithItems } from './field/features/shared/toolbar/featureButtonsGroup.js'
-export { toolbarTextDropdownGroupWithItems } from './field/features/shared/toolbar/textDropdownGroup.js'
export { FixedToolbarFeature } from './field/features/toolbars/fixed/feature.server.js'
export { InlineToolbarFeature } from './field/features/toolbars/inline/feature.server.js'
@@ -926,15 +922,6 @@ export {
UploadNode,
} from './field/features/upload/nodes/UploadNode.js'
-export {
- type EditorConfigContextType,
- EditorConfigProvider,
- useEditorConfigContext,
-} from './field/lexical/config/client/EditorConfigProvider.js'
-export {
- sanitizeClientEditorConfig,
- sanitizeClientFeatures,
-} from './field/lexical/config/client/sanitize.js'
export {
defaultEditorConfig,
defaultEditorFeatures,
@@ -964,14 +951,7 @@ export type {
SlashMenuGroup,
SlashMenuItem,
} from './field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'
-export { CAN_USE_DOM } from './field/lexical/utils/canUseDOM.js'
-export { cloneDeep } from './field/lexical/utils/cloneDeep.js'
-export { getDOMRangeRect } from './field/lexical/utils/getDOMRangeRect.js'
-export { getSelectedNode } from './field/lexical/utils/getSelectedNode.js'
-export { isHTMLElement } from './field/lexical/utils/guard.js'
-export { invariant } from './field/lexical/utils/invariant.js'
-export { joinClasses } from './field/lexical/utils/joinClasses.js'
-export { createBlockNode } from './field/lexical/utils/markdown/createBlockNode.js'
+
export {
DETAIL_TYPE_TO_DETAIL,
DOUBLE_LINE_BREAK,
@@ -986,16 +966,7 @@ export {
TEXT_TYPE_TO_FORMAT,
TEXT_TYPE_TO_MODE,
} from './field/lexical/utils/nodeFormat.js'
-export { Point, isPoint } from './field/lexical/utils/point.js'
-export { Rect } from './field/lexical/utils/rect.js'
-export { setFloatingElemPosition } from './field/lexical/utils/setFloatingElemPosition.js'
-export { setFloatingElemPositionForLinkEditor } from './field/lexical/utils/setFloatingElemPositionForLinkEditor.js'
-export {
- addSwipeDownListener,
- addSwipeLeftListener,
- addSwipeRightListener,
- addSwipeUpListener,
-} from './field/lexical/utils/swipe.js'
+
export { sanitizeUrl, validateUrl } from './field/lexical/utils/url.js'
export { defaultRichTextValue } from './populateGraphQL/defaultValue.js'
diff --git a/packages/richtext-lexical/src/populateGraphQL/populate.ts b/packages/richtext-lexical/src/populateGraphQL/populate.ts
index f518954e9..4685515b5 100644
--- a/packages/richtext-lexical/src/populateGraphQL/populate.ts
+++ b/packages/richtext-lexical/src/populateGraphQL/populate.ts
@@ -1,6 +1,6 @@
-import type { Collection , PayloadRequestWithData } from 'payload/types'
+import type { Collection, PayloadRequestWithData } from 'payload'
-import { createDataloaderCacheKey } from 'payload/utilities'
+import { createDataloaderCacheKey } from 'payload'
type Arguments = {
currentDepth?: number
diff --git a/packages/richtext-lexical/src/populateGraphQL/populateLexicalPopulationPromises.ts b/packages/richtext-lexical/src/populateGraphQL/populateLexicalPopulationPromises.ts
index 4a67ac07d..6f7e281f9 100644
--- a/packages/richtext-lexical/src/populateGraphQL/populateLexicalPopulationPromises.ts
+++ b/packages/richtext-lexical/src/populateGraphQL/populateLexicalPopulationPromises.ts
@@ -1,5 +1,5 @@
import type { SerializedEditorState } from 'lexical'
-import type { RichTextAdapter } from 'payload/types'
+import type { RichTextAdapter } from 'payload'
import type { PopulationPromise } from '../field/features/types.js'
import type { AdapterProps } from '../types.js'
diff --git a/packages/richtext-lexical/src/populateGraphQL/recursivelyPopulateFieldsForGraphQL.ts b/packages/richtext-lexical/src/populateGraphQL/recursivelyPopulateFieldsForGraphQL.ts
index 25f37ad69..3f8d3c31d 100644
--- a/packages/richtext-lexical/src/populateGraphQL/recursivelyPopulateFieldsForGraphQL.ts
+++ b/packages/richtext-lexical/src/populateGraphQL/recursivelyPopulateFieldsForGraphQL.ts
@@ -1,7 +1,6 @@
-import type { RequestContext } from 'payload'
-import type { Field, PayloadRequestWithData } from 'payload/types'
+import type { Field, PayloadRequestWithData, RequestContext } from 'payload'
-import { afterReadTraverseFields } from 'payload/utilities'
+import { afterReadTraverseFields } from 'payload'
import type { PopulationPromise } from '../field/features/types.js'
diff --git a/packages/richtext-lexical/src/types.ts b/packages/richtext-lexical/src/types.ts
index 847509070..93657a6c7 100644
--- a/packages/richtext-lexical/src/types.ts
+++ b/packages/richtext-lexical/src/types.ts
@@ -1,7 +1,11 @@
import type { EditorConfig as LexicalEditorConfig, SerializedEditorState } from 'lexical'
-import type { FieldPermissions } from 'payload/auth'
-import type { FieldTypes, SanitizedConfig } from 'payload/config'
-import type { RichTextAdapter, RichTextFieldProps } from 'payload/types'
+import type {
+ FieldPermissions,
+ FieldTypes,
+ RichTextAdapter,
+ RichTextFieldProps,
+ SanitizedConfig,
+} from 'payload'
import type React from 'react'
import type { FeatureProviderServer } from './field/features/types.js'
diff --git a/packages/richtext-lexical/src/useLexicalFeature.tsx b/packages/richtext-lexical/src/useLexicalFeature.tsx
index aedf91b7b..f8aea3d5a 100644
--- a/packages/richtext-lexical/src/useLexicalFeature.tsx
+++ b/packages/richtext-lexical/src/useLexicalFeature.tsx
@@ -1,8 +1,6 @@
'use client'
-import { useTableCell } from '@payloadcms/ui/elements/Table'
-import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
-import { useAddClientFunction } from '@payloadcms/ui/providers/ClientFunction'
+import { useAddClientFunction, useFieldProps, useTableCell } from '@payloadcms/ui/client'
import type { FeatureProviderClient } from './field/features/types.js'
diff --git a/packages/richtext-lexical/src/validate/index.ts b/packages/richtext-lexical/src/validate/index.ts
index 24497e7ac..e14203c9b 100644
--- a/packages/richtext-lexical/src/validate/index.ts
+++ b/packages/richtext-lexical/src/validate/index.ts
@@ -1,5 +1,5 @@
import type { SerializedEditorState, SerializedParagraphNode } from 'lexical'
-import type { RichTextField, Validate } from 'payload/types'
+import type { RichTextField, Validate } from 'payload'
import type { SanitizedServerEditorConfig } from '../field/lexical/config/types.js'
diff --git a/packages/richtext-lexical/src/validate/validateNodes.ts b/packages/richtext-lexical/src/validate/validateNodes.ts
index 4dffda31f..e3ac54b14 100644
--- a/packages/richtext-lexical/src/validate/validateNodes.ts
+++ b/packages/richtext-lexical/src/validate/validateNodes.ts
@@ -1,5 +1,5 @@
import type { SerializedEditorState, SerializedLexicalNode } from 'lexical'
-import type { RichTextField, ValidateOptions } from 'payload/types'
+import type { RichTextField, ValidateOptions } from 'payload'
import type { NodeValidation } from '../field/features/types.js'
diff --git a/packages/richtext-slate/README.md b/packages/richtext-slate/README.md
index 879244e36..a1537558a 100644
--- a/packages/richtext-slate/README.md
+++ b/packages/richtext-slate/README.md
@@ -14,7 +14,7 @@ npm install @payloadcms/richtext-slate
## Usage
```ts
-import { buildConfig } from 'payload/config'
+import { buildConfig } from 'payload'
import { slateEditor } from '@payloadcms/richtext-slate'
export default buildConfig({
diff --git a/packages/richtext-slate/package.json b/packages/richtext-slate/package.json
index 53b078974..f122fef2b 100644
--- a/packages/richtext-slate/package.json
+++ b/packages/richtext-slate/package.json
@@ -24,8 +24,8 @@
"dist"
],
"scripts": {
- "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build": "pnpm copyfiles && pnpm build:types && pnpm build:swc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
diff --git a/packages/richtext-slate/src/cell/index.tsx b/packages/richtext-slate/src/cell/index.tsx
index 8d5e7a380..67bf711a2 100644
--- a/packages/richtext-slate/src/cell/index.tsx
+++ b/packages/richtext-slate/src/cell/index.tsx
@@ -1,7 +1,7 @@
'use client'
-import type { DefaultCellComponentProps } from 'payload/types'
+import type { DefaultCellComponentProps } from 'payload'
-import { useTableCell } from '@payloadcms/ui/elements/Table'
+import { useTableCell } from '@payloadcms/ui/client'
import React from 'react'
export const RichTextCell: React.FC> = () => {
diff --git a/packages/richtext-slate/src/data/populate.ts b/packages/richtext-slate/src/data/populate.ts
index 277edb26c..0967c32f9 100644
--- a/packages/richtext-slate/src/data/populate.ts
+++ b/packages/richtext-slate/src/data/populate.ts
@@ -1,6 +1,6 @@
-import type { Collection, Field, PayloadRequestWithData, RichTextField } from 'payload/types'
+import type { Collection, Field, PayloadRequestWithData, RichTextField } from 'payload'
-import { createDataloaderCacheKey } from 'payload/utilities'
+import { createDataloaderCacheKey } from 'payload'
import type { AdapterArguments } from '../types.js'
diff --git a/packages/richtext-slate/src/data/recurseNestedFields.ts b/packages/richtext-slate/src/data/recurseNestedFields.ts
index 76fe3da25..5bd267e5e 100644
--- a/packages/richtext-slate/src/data/recurseNestedFields.ts
+++ b/packages/richtext-slate/src/data/recurseNestedFields.ts
@@ -1,6 +1,6 @@
-import type { Field, PayloadRequestWithData } from 'payload/types'
+import type { Field, PayloadRequestWithData } from 'payload'
-import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType } from 'payload/types'
+import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType } from 'payload/shared'
import { populate } from './populate.js'
import { recurseRichText } from './richTextRelationshipPromise.js'
diff --git a/packages/richtext-slate/src/data/richTextRelationshipPromise.ts b/packages/richtext-slate/src/data/richTextRelationshipPromise.ts
index 7f301ab6d..a379f8573 100644
--- a/packages/richtext-slate/src/data/richTextRelationshipPromise.ts
+++ b/packages/richtext-slate/src/data/richTextRelationshipPromise.ts
@@ -1,4 +1,4 @@
-import type { PayloadRequestWithData, RichTextAdapter, RichTextField } from 'payload/types'
+import type { PayloadRequestWithData, RichTextAdapter, RichTextField } from 'payload'
import type { AdapterArguments } from '../types.js'
diff --git a/packages/richtext-slate/src/data/validation.ts b/packages/richtext-slate/src/data/validation.ts
index ebf7a4901..a304b098f 100644
--- a/packages/richtext-slate/src/data/validation.ts
+++ b/packages/richtext-slate/src/data/validation.ts
@@ -1,4 +1,4 @@
-import type { RichTextField, Validate } from 'payload/types'
+import type { RichTextField, Validate } from 'payload'
import type { AdapterArguments } from '../types.js'
diff --git a/packages/richtext-slate/src/field/RichText.tsx b/packages/richtext-slate/src/field/RichText.tsx
index 35d01bbfd..4f2d72dca 100644
--- a/packages/richtext-slate/src/field/RichText.tsx
+++ b/packages/richtext-slate/src/field/RichText.tsx
@@ -1,20 +1,22 @@
'use client'
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
-import type { ClientValidate } from 'payload/types'
+import type { ClientValidate } from 'payload'
import type { BaseEditor, BaseOperation } from 'slate'
import type { HistoryEditor } from 'slate-history'
import type { ReactEditor } from 'slate-react'
import { getTranslation } from '@payloadcms/translations'
-import { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'
-import { FieldError } from '@payloadcms/ui/forms/FieldError'
-import { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'
-import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
-import { useField } from '@payloadcms/ui/forms/useField'
-import { withCondition } from '@payloadcms/ui/forms/withCondition'
-import { useEditDepth } from '@payloadcms/ui/providers/EditDepth'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
+import {
+ FieldDescription,
+ FieldError,
+ FieldLabel,
+ useEditDepth,
+ useField,
+ useFieldProps,
+ useTranslation,
+ withCondition,
+} from '@payloadcms/ui/client'
import { isHotkey } from 'is-hotkey'
import React, { useCallback, useEffect, useMemo, useRef } from 'react'
import { Node, Element as SlateElement, Text, Transforms, createEditor } from 'slate'
diff --git a/packages/richtext-slate/src/field/elements/Button.tsx b/packages/richtext-slate/src/field/elements/Button.tsx
index a671b0eae..3c00ff0e7 100644
--- a/packages/richtext-slate/src/field/elements/Button.tsx
+++ b/packages/richtext-slate/src/field/elements/Button.tsx
@@ -1,7 +1,7 @@
'use client'
import type { ElementType } from 'react'
-import { Tooltip } from '@payloadcms/ui/elements/Tooltip'
+import { Tooltip } from '@payloadcms/ui/client'
import React, { useCallback, useState } from 'react'
import { useSlate } from 'slate-react'
diff --git a/packages/richtext-slate/src/field/elements/EnabledRelationshipsCondition.tsx b/packages/richtext-slate/src/field/elements/EnabledRelationshipsCondition.tsx
index 9a0642a92..7ce7e3e2d 100644
--- a/packages/richtext-slate/src/field/elements/EnabledRelationshipsCondition.tsx
+++ b/packages/richtext-slate/src/field/elements/EnabledRelationshipsCondition.tsx
@@ -1,11 +1,8 @@
'use client'
-import type { ClientUser } from 'payload/auth'
-import type { ClientCollectionConfig, VisibleEntities } from 'payload/types'
+import type { ClientCollectionConfig, ClientUser, VisibleEntities } from 'payload'
-import { useAuth } from '@payloadcms/ui/providers/Auth'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useEntityVisibility } from '@payloadcms/ui/providers/EntityVisibility'
+import { useAuth, useConfig, useEntityVisibility } from '@payloadcms/ui/client'
import * as React from 'react'
type Options = {
diff --git a/packages/richtext-slate/src/field/elements/indent/Button.tsx b/packages/richtext-slate/src/field/elements/indent/Button.tsx
index c9d09cba0..3a5bfb27b 100644
--- a/packages/richtext-slate/src/field/elements/indent/Button.tsx
+++ b/packages/richtext-slate/src/field/elements/indent/Button.tsx
@@ -1,7 +1,6 @@
'use client'
-import React from 'react'
-import { useCallback } from 'react'
+import React, { useCallback } from 'react'
import { Editor, Element, Text, Transforms } from 'slate'
import { ReactEditor, useSlate } from 'slate-react'
diff --git a/packages/richtext-slate/src/field/elements/link/Button/index.tsx b/packages/richtext-slate/src/field/elements/link/Button/index.tsx
index 9a54e1944..0b1f33dd3 100644
--- a/packages/richtext-slate/src/field/elements/link/Button/index.tsx
+++ b/packages/richtext-slate/src/field/elements/link/Button/index.tsx
@@ -1,14 +1,10 @@
'use client'
-import type { FormState } from 'payload/types'
+import type { FormState } from 'payload'
import { useModal } from '@faceless-ui/modal'
-import { useDrawerSlug } from '@payloadcms/ui/elements/Drawer'
-import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
-import { getFormState } from '@payloadcms/ui/utilities/getFormState'
-import { reduceFieldsToValues } from '@payloadcms/ui/utilities/reduceFieldsToValues'
+import { useConfig, useDrawerSlug, useFieldProps, useTranslation } from '@payloadcms/ui/client'
+import { getFormState, reduceFieldsToValues } from '@payloadcms/ui/shared'
import React, { Fragment, useState } from 'react'
import { Editor, Range, Transforms } from 'slate'
import { ReactEditor, useSlate } from 'slate-react'
diff --git a/packages/richtext-slate/src/field/elements/link/Element/index.tsx b/packages/richtext-slate/src/field/elements/link/Element/index.tsx
index 3b30f1491..d62d72267 100644
--- a/packages/richtext-slate/src/field/elements/link/Element/index.tsx
+++ b/packages/richtext-slate/src/field/elements/link/Element/index.tsx
@@ -1,21 +1,21 @@
'use client'
-
-import type { FormState } from 'payload/types'
+import type { FormState } from 'payload'
import { useModal } from '@faceless-ui/modal'
import { getTranslation } from '@payloadcms/translations'
-import { Button } from '@payloadcms/ui/elements/Button'
-import { useDrawerSlug } from '@payloadcms/ui/elements/Drawer'
-import { Popup } from '@payloadcms/ui/elements/Popup'
-import { Translation } from '@payloadcms/ui/elements/Translation'
-import { useAuth } from '@payloadcms/ui/providers/Auth'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'
-import { useLocale } from '@payloadcms/ui/providers/Locale'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
-import { getFormState } from '@payloadcms/ui/utilities/getFormState'
-import { reduceFieldsToValues } from '@payloadcms/ui/utilities/reduceFieldsToValues'
-import { deepCopyObject } from 'payload/utilities'
+import {
+ Button,
+ Popup,
+ Translation,
+ useAuth,
+ useConfig,
+ useDocumentInfo,
+ useDrawerSlug,
+ useLocale,
+ useTranslation,
+} from '@payloadcms/ui/client'
+import { getFormState, reduceFieldsToValues } from '@payloadcms/ui/shared'
+import { deepCopyObject } from 'payload/shared'
import React, { useCallback, useEffect, useState } from 'react'
import { Editor, Node, Transforms } from 'slate'
import { ReactEditor, useSlate } from 'slate-react'
diff --git a/packages/richtext-slate/src/field/elements/link/LinkDrawer/baseFields.ts b/packages/richtext-slate/src/field/elements/link/LinkDrawer/baseFields.ts
index 8ffaab052..0afbee6ff 100644
--- a/packages/richtext-slate/src/field/elements/link/LinkDrawer/baseFields.ts
+++ b/packages/richtext-slate/src/field/elements/link/LinkDrawer/baseFields.ts
@@ -1,6 +1,4 @@
-import type { User } from 'payload/auth'
-import type { SanitizedConfig } from 'payload/config'
-import type { Field } from 'payload/types'
+import type { Field, SanitizedConfig, User } from 'payload'
export const getBaseFields = (config: SanitizedConfig): Field[] => [
{
diff --git a/packages/richtext-slate/src/field/elements/link/LinkDrawer/index.tsx b/packages/richtext-slate/src/field/elements/link/LinkDrawer/index.tsx
index 5529768ae..4faef5c73 100644
--- a/packages/richtext-slate/src/field/elements/link/LinkDrawer/index.tsx
+++ b/packages/richtext-slate/src/field/elements/link/LinkDrawer/index.tsx
@@ -2,17 +2,19 @@
import type { FormProps } from '@payloadcms/ui/forms/Form'
-import { Drawer } from '@payloadcms/ui/elements/Drawer'
-import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
-import { Form } from '@payloadcms/ui/forms/Form'
-import { RenderFields } from '@payloadcms/ui/forms/RenderFields'
-import { FormSubmit } from '@payloadcms/ui/forms/Submit'
-import { useHotkey } from '@payloadcms/ui/hooks/useHotkey'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'
-import { useEditDepth } from '@payloadcms/ui/providers/EditDepth'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
-import { getFormState } from '@payloadcms/ui/utilities/getFormState'
+import {
+ Drawer,
+ Form,
+ FormSubmit,
+ RenderFields,
+ useConfig,
+ useDocumentInfo,
+ useEditDepth,
+ useFieldProps,
+ useHotkey,
+ useTranslation,
+} from '@payloadcms/ui/client'
+import { getFormState } from '@payloadcms/ui/shared'
import React, { useCallback, useRef } from 'react'
import type { Props } from './types.js'
diff --git a/packages/richtext-slate/src/field/elements/link/LinkDrawer/types.ts b/packages/richtext-slate/src/field/elements/link/LinkDrawer/types.ts
index 041669457..fc0d9ca6e 100644
--- a/packages/richtext-slate/src/field/elements/link/LinkDrawer/types.ts
+++ b/packages/richtext-slate/src/field/elements/link/LinkDrawer/types.ts
@@ -1,5 +1,5 @@
import type { FieldMap } from '@payloadcms/ui/utilities/buildComponentMap'
-import type { FormState } from 'payload/types'
+import type { FormState } from 'payload'
export type Props = {
drawerSlug: string
diff --git a/packages/richtext-slate/src/field/elements/link/utilities.tsx b/packages/richtext-slate/src/field/elements/link/utilities.tsx
index d09dbb4a7..c55af7718 100644
--- a/packages/richtext-slate/src/field/elements/link/utilities.tsx
+++ b/packages/richtext-slate/src/field/elements/link/utilities.tsx
@@ -1,5 +1,4 @@
-import type { SanitizedConfig } from 'payload/config'
-import type { Field } from 'payload/types'
+import type { Field, SanitizedConfig } from 'payload'
import type { Editor } from 'slate'
import { Element, Range, Transforms } from 'slate'
diff --git a/packages/richtext-slate/src/field/elements/relationship/Button/index.tsx b/packages/richtext-slate/src/field/elements/relationship/Button/index.tsx
index d60c621ff..ff92534e4 100644
--- a/packages/richtext-slate/src/field/elements/relationship/Button/index.tsx
+++ b/packages/richtext-slate/src/field/elements/relationship/Button/index.tsx
@@ -1,7 +1,6 @@
'use client'
-import { useListDrawer } from '@payloadcms/ui/elements/ListDrawer'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
+import { useListDrawer, useTranslation } from '@payloadcms/ui/client'
import React, { Fragment, useCallback, useEffect, useState } from 'react'
import { ReactEditor, useSlate } from 'slate-react'
diff --git a/packages/richtext-slate/src/field/elements/relationship/Element/index.tsx b/packages/richtext-slate/src/field/elements/relationship/Element/index.tsx
index fe933b49a..34dd60f37 100644
--- a/packages/richtext-slate/src/field/elements/relationship/Element/index.tsx
+++ b/packages/richtext-slate/src/field/elements/relationship/Element/index.tsx
@@ -3,12 +3,14 @@
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
import { getTranslation } from '@payloadcms/translations'
-import { Button } from '@payloadcms/ui/elements/Button'
-import { useDocumentDrawer } from '@payloadcms/ui/elements/DocumentDrawer'
-import { useListDrawer } from '@payloadcms/ui/elements/ListDrawer'
-import usePayloadAPI from '@payloadcms/ui/hooks/usePayloadAPI'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
+import {
+ Button,
+ useConfig,
+ useDocumentDrawer,
+ useListDrawer,
+ usePayloadAPI,
+ useTranslation,
+} from '@payloadcms/ui/client'
import React, { useCallback, useReducer, useState } from 'react'
import { Transforms } from 'slate'
import { ReactEditor, useFocused, useSelected, useSlateStatic } from 'slate-react'
diff --git a/packages/richtext-slate/src/field/elements/upload/Button/index.tsx b/packages/richtext-slate/src/field/elements/upload/Button/index.tsx
index 4cc06a07f..1ee5ba428 100644
--- a/packages/richtext-slate/src/field/elements/upload/Button/index.tsx
+++ b/packages/richtext-slate/src/field/elements/upload/Button/index.tsx
@@ -1,7 +1,6 @@
'use client'
-import { useListDrawer } from '@payloadcms/ui/elements/ListDrawer'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
+import { useListDrawer, useTranslation } from '@payloadcms/ui/client'
import React, { Fragment, useCallback } from 'react'
import { ReactEditor, useSlate } from 'slate-react'
diff --git a/packages/richtext-slate/src/field/elements/upload/Element/UploadDrawer/index.tsx b/packages/richtext-slate/src/field/elements/upload/Element/UploadDrawer/index.tsx
index b54380e3f..a49ed5621 100644
--- a/packages/richtext-slate/src/field/elements/upload/Element/UploadDrawer/index.tsx
+++ b/packages/richtext-slate/src/field/elements/upload/Element/UploadDrawer/index.tsx
@@ -1,21 +1,24 @@
'use client'
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
-import type { ClientCollectionConfig } from 'payload/types'
+import type { ClientCollectionConfig } from 'payload'
import { useModal } from '@faceless-ui/modal'
import { getTranslation } from '@payloadcms/translations'
-import { Drawer } from '@payloadcms/ui/elements/Drawer'
-import { Form, type FormProps } from '@payloadcms/ui/forms/Form'
+import {
+ Drawer,
+ Form,
+ FormSubmit,
+ useAuth,
+ useConfig,
+ useDocumentInfo,
+ useLocale,
+ useTranslation,
+} from '@payloadcms/ui/client'
+import { type FormProps } from '@payloadcms/ui/forms/Form'
import { RenderFields } from '@payloadcms/ui/forms/RenderFields'
-import { FormSubmit } from '@payloadcms/ui/forms/Submit'
-import { useAuth } from '@payloadcms/ui/providers/Auth'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'
-import { useLocale } from '@payloadcms/ui/providers/Locale'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
-import { getFormState } from '@payloadcms/ui/utilities/getFormState'
-import { deepCopyObject } from 'payload/utilities'
+import { getFormState } from '@payloadcms/ui/shared'
+import { deepCopyObject } from 'payload/shared'
import React, { useCallback, useEffect, useState } from 'react'
import { Transforms } from 'slate'
import { ReactEditor, useSlateStatic } from 'slate-react'
diff --git a/packages/richtext-slate/src/field/elements/upload/Element/index.tsx b/packages/richtext-slate/src/field/elements/upload/Element/index.tsx
index 0dfeecbcb..76fbabc31 100644
--- a/packages/richtext-slate/src/field/elements/upload/Element/index.tsx
+++ b/packages/richtext-slate/src/field/elements/upload/Element/index.tsx
@@ -1,17 +1,20 @@
'use client'
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
-import type { ClientCollectionConfig } from 'payload/types'
+import type { ClientCollectionConfig } from 'payload'
import { getTranslation } from '@payloadcms/translations'
-import { Button } from '@payloadcms/ui/elements/Button'
-import { useDocumentDrawer } from '@payloadcms/ui/elements/DocumentDrawer'
-import { DrawerToggler, useDrawerSlug } from '@payloadcms/ui/elements/Drawer'
-import { useListDrawer } from '@payloadcms/ui/elements/ListDrawer'
+import {
+ Button,
+ DrawerToggler,
+ useConfig,
+ useDocumentDrawer,
+ useDrawerSlug,
+ useListDrawer,
+ usePayloadAPI,
+ useTranslation,
+} from '@payloadcms/ui/client'
import { File } from '@payloadcms/ui/graphics/File'
-import usePayloadAPI from '@payloadcms/ui/hooks/usePayloadAPI'
-import { useConfig } from '@payloadcms/ui/providers/Config'
-import { useTranslation } from '@payloadcms/ui/providers/Translation'
import React, { useCallback, useReducer, useState } from 'react'
import { Transforms } from 'slate'
import { ReactEditor, useFocused, useSelected, useSlateStatic } from 'slate-react'
diff --git a/packages/richtext-slate/src/field/index.tsx b/packages/richtext-slate/src/field/index.tsx
index 5bf1813c8..859c9a162 100644
--- a/packages/richtext-slate/src/field/index.tsx
+++ b/packages/richtext-slate/src/field/index.tsx
@@ -2,9 +2,7 @@
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
-import { ShimmerEffect } from '@payloadcms/ui/elements/ShimmerEffect'
-import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
-import { useClientFunctions } from '@payloadcms/ui/providers/ClientFunction'
+import { ShimmerEffect, useClientFunctions, useFieldProps } from '@payloadcms/ui/client'
import React, { Suspense, lazy, useEffect, useState } from 'react'
import type { RichTextPlugin } from '../types.js'
diff --git a/packages/richtext-slate/src/generateComponentMap.tsx b/packages/richtext-slate/src/generateComponentMap.tsx
index 4def6f195..3f2c096c6 100644
--- a/packages/richtext-slate/src/generateComponentMap.tsx
+++ b/packages/richtext-slate/src/generateComponentMap.tsx
@@ -1,4 +1,4 @@
-import type { Field, RichTextAdapter } from 'payload/types'
+import type { Field, RichTextAdapter } from 'payload'
import { mapFields } from '@payloadcms/ui/utilities/buildComponentMap'
import React from 'react'
diff --git a/packages/richtext-slate/src/generateSchemaMap.ts b/packages/richtext-slate/src/generateSchemaMap.ts
index 4f46e81ea..9b134ae6f 100644
--- a/packages/richtext-slate/src/generateSchemaMap.ts
+++ b/packages/richtext-slate/src/generateSchemaMap.ts
@@ -1,4 +1,4 @@
-import type { Field, RichTextAdapter } from 'payload/types'
+import type { Field, RichTextAdapter } from 'payload'
import type { AdapterArguments, RichTextCustomElement } from './types.js'
diff --git a/packages/richtext-slate/src/index.tsx b/packages/richtext-slate/src/index.tsx
index 8b9940e21..62ccb8b05 100644
--- a/packages/richtext-slate/src/index.tsx
+++ b/packages/richtext-slate/src/index.tsx
@@ -1,8 +1,6 @@
-import type { Config } from 'payload/config'
-import type { RichTextAdapterProvider } from 'payload/types'
+import type { Config, RichTextAdapterProvider } from 'payload'
-import { sanitizeFields } from 'payload/config'
-import { withNullableJSONSchemaType } from 'payload/utilities'
+import { sanitizeFields, withNullableJSONSchemaType } from 'payload'
import type { AdapterArguments } from './types.js'
diff --git a/packages/richtext-slate/src/types.ts b/packages/richtext-slate/src/types.ts
index 4da723d1a..52a4ad85c 100644
--- a/packages/richtext-slate/src/types.ts
+++ b/packages/richtext-slate/src/types.ts
@@ -1,5 +1,4 @@
-import type { SanitizedConfig } from 'payload/config'
-import type { Field, RichTextFieldProps } from 'payload/types'
+import type { Field, RichTextFieldProps, SanitizedConfig } from 'payload'
import type { Editor } from 'slate'
export type TextNode = { [x: string]: unknown; text: string }
diff --git a/packages/richtext-slate/src/utilities/useSlatePlugin.tsx b/packages/richtext-slate/src/utilities/useSlatePlugin.tsx
index 34cd7de6f..f12459f66 100644
--- a/packages/richtext-slate/src/utilities/useSlatePlugin.tsx
+++ b/packages/richtext-slate/src/utilities/useSlatePlugin.tsx
@@ -1,7 +1,6 @@
import type { Editor } from 'slate'
-import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
-import { useAddClientFunction } from '@payloadcms/ui/providers/ClientFunction'
+import { useAddClientFunction, useFieldProps } from '@payloadcms/ui/client'
type Plugin = (editor: Editor) => Editor
diff --git a/packages/storage-azure/package.json b/packages/storage-azure/package.json
index a3eb18b74..30268592d 100644
--- a/packages/storage-azure/package.json
+++ b/packages/storage-azure/package.json
@@ -24,9 +24,9 @@
"dist"
],
"scripts": {
- "build": "pnpm build:swc && pnpm build:types",
+ "build": "pnpm build:types && pnpm build:swc",
"build:clean": "find . \\( -type d \\( -name build -o -name dist -o -name .cache \\) -o -type f -name tsconfig.tsbuildinfo \\) -exec rm -rf {} + && pnpm build",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"prepublishOnly": "pnpm clean && pnpm turbo build"
diff --git a/packages/storage-azure/src/handleDelete.ts b/packages/storage-azure/src/handleDelete.ts
index 2ebaeebc7..93fee1737 100644
--- a/packages/storage-azure/src/handleDelete.ts
+++ b/packages/storage-azure/src/handleDelete.ts
@@ -1,6 +1,6 @@
import type { ContainerClient } from '@azure/storage-blob'
import type { HandleDelete } from '@payloadcms/plugin-cloud-storage/types'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import path from 'path'
diff --git a/packages/storage-azure/src/handleUpload.ts b/packages/storage-azure/src/handleUpload.ts
index 3b48a1a2d..d4cec8913 100644
--- a/packages/storage-azure/src/handleUpload.ts
+++ b/packages/storage-azure/src/handleUpload.ts
@@ -1,6 +1,6 @@
import type { ContainerClient } from '@azure/storage-blob'
import type { HandleUpload } from '@payloadcms/plugin-cloud-storage/types'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import { AbortController } from '@azure/abort-controller'
import fs from 'fs'
diff --git a/packages/storage-azure/src/index.ts b/packages/storage-azure/src/index.ts
index de908a0fc..cd1c4bd74 100644
--- a/packages/storage-azure/src/index.ts
+++ b/packages/storage-azure/src/index.ts
@@ -5,7 +5,7 @@ import type {
CollectionOptions,
GeneratedAdapter,
} from '@payloadcms/plugin-cloud-storage/types'
-import type { Config, Plugin } from 'payload/config'
+import type { Config, Plugin } from 'payload'
import { BlobServiceClient } from '@azure/storage-blob'
import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'
diff --git a/packages/storage-azure/src/staticHandler.ts b/packages/storage-azure/src/staticHandler.ts
index ca328a720..b05c493df 100644
--- a/packages/storage-azure/src/staticHandler.ts
+++ b/packages/storage-azure/src/staticHandler.ts
@@ -1,6 +1,6 @@
import type { ContainerClient } from '@azure/storage-blob'
import type { StaticHandler } from '@payloadcms/plugin-cloud-storage/types'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import { getFilePrefix } from '@payloadcms/plugin-cloud-storage/utilities'
import path from 'path'
diff --git a/packages/storage-azure/tsconfig.json b/packages/storage-azure/tsconfig.json
index 5880d1adc..ecb0fe770 100644
--- a/packages/storage-azure/tsconfig.json
+++ b/packages/storage-azure/tsconfig.json
@@ -6,15 +6,9 @@
"emitDeclarationOnly": true,
"outDir": "./dist" /* Specify an output folder for all emitted files. */,
"rootDir": "./src" /* Specify the root folder within your source files. */,
- "strict": true,
+ "strict": true
},
- "exclude": [
- "dist",
- "node_modules",
- ],
+ "exclude": ["dist", "node_modules"],
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.d.ts", "src/**/*.json"],
- "references": [
- { "path": "../payload" },
- { "path": "../plugin-cloud-storage" },
- ]
+ "references": [{ "path": "../payload" }, { "path": "../plugin-cloud-storage" }]
}
diff --git a/packages/storage-gcs/package.json b/packages/storage-gcs/package.json
index 07a739cb9..02cc095f4 100644
--- a/packages/storage-gcs/package.json
+++ b/packages/storage-gcs/package.json
@@ -24,9 +24,9 @@
"dist"
],
"scripts": {
- "build": "pnpm build:swc && pnpm build:types",
+ "build": "pnpm build:types && pnpm build:swc",
"build:clean": "find . \\( -type d \\( -name build -o -name dist -o -name .cache \\) -o -type f -name tsconfig.tsbuildinfo \\) -exec rm -rf {} + && pnpm build",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"prepublishOnly": "pnpm clean && pnpm turbo build"
diff --git a/packages/storage-gcs/src/handleUpload.ts b/packages/storage-gcs/src/handleUpload.ts
index 3b7cfe4a5..2f7f4f29a 100644
--- a/packages/storage-gcs/src/handleUpload.ts
+++ b/packages/storage-gcs/src/handleUpload.ts
@@ -1,6 +1,6 @@
import type { Storage } from '@google-cloud/storage'
import type { HandleUpload } from '@payloadcms/plugin-cloud-storage/types'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import path from 'path'
diff --git a/packages/storage-gcs/src/index.ts b/packages/storage-gcs/src/index.ts
index 36341b311..f1b3a9b9f 100644
--- a/packages/storage-gcs/src/index.ts
+++ b/packages/storage-gcs/src/index.ts
@@ -5,7 +5,7 @@ import type {
CollectionOptions,
GeneratedAdapter,
} from '@payloadcms/plugin-cloud-storage/types'
-import type { Config, Plugin } from 'payload/config'
+import type { Config, Plugin } from 'payload'
import { Storage } from '@google-cloud/storage'
import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'
diff --git a/packages/storage-gcs/src/staticHandler.ts b/packages/storage-gcs/src/staticHandler.ts
index bc6b5610f..51baa5d0b 100644
--- a/packages/storage-gcs/src/staticHandler.ts
+++ b/packages/storage-gcs/src/staticHandler.ts
@@ -1,6 +1,6 @@
import type { Storage } from '@google-cloud/storage'
import type { StaticHandler } from '@payloadcms/plugin-cloud-storage/types'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import { getFilePrefix } from '@payloadcms/plugin-cloud-storage/utilities'
import path from 'path'
diff --git a/packages/storage-gcs/tsconfig.json b/packages/storage-gcs/tsconfig.json
index 5880d1adc..ecb0fe770 100644
--- a/packages/storage-gcs/tsconfig.json
+++ b/packages/storage-gcs/tsconfig.json
@@ -6,15 +6,9 @@
"emitDeclarationOnly": true,
"outDir": "./dist" /* Specify an output folder for all emitted files. */,
"rootDir": "./src" /* Specify the root folder within your source files. */,
- "strict": true,
+ "strict": true
},
- "exclude": [
- "dist",
- "node_modules",
- ],
+ "exclude": ["dist", "node_modules"],
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.d.ts", "src/**/*.json"],
- "references": [
- { "path": "../payload" },
- { "path": "../plugin-cloud-storage" },
- ]
+ "references": [{ "path": "../payload" }, { "path": "../plugin-cloud-storage" }]
}
diff --git a/packages/storage-s3/package.json b/packages/storage-s3/package.json
index c019e8dec..d0742d769 100644
--- a/packages/storage-s3/package.json
+++ b/packages/storage-s3/package.json
@@ -24,9 +24,9 @@
"dist"
],
"scripts": {
- "build": "pnpm build:swc && pnpm build:types",
+ "build": "pnpm build:types && pnpm build:swc",
"build:clean": "find . \\( -type d \\( -name build -o -name dist -o -name .cache \\) -o -type f -name tsconfig.tsbuildinfo \\) -exec rm -rf {} + && pnpm build",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"prepublishOnly": "pnpm clean && pnpm turbo build"
diff --git a/packages/storage-s3/src/handleUpload.ts b/packages/storage-s3/src/handleUpload.ts
index ce74a2403..5591e71a6 100644
--- a/packages/storage-s3/src/handleUpload.ts
+++ b/packages/storage-s3/src/handleUpload.ts
@@ -1,6 +1,6 @@
import type * as AWS from '@aws-sdk/client-s3'
import type { HandleUpload } from '@payloadcms/plugin-cloud-storage/types'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import { Upload } from '@aws-sdk/lib-storage'
import fs from 'fs'
diff --git a/packages/storage-s3/src/index.ts b/packages/storage-s3/src/index.ts
index 28ff6b81a..04aed8a8d 100644
--- a/packages/storage-s3/src/index.ts
+++ b/packages/storage-s3/src/index.ts
@@ -4,7 +4,7 @@ import type {
CollectionOptions,
GeneratedAdapter,
} from '@payloadcms/plugin-cloud-storage/types'
-import type { Config, Plugin } from 'payload/config'
+import type { Config, Plugin } from 'payload'
import * as AWS from '@aws-sdk/client-s3'
import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'
diff --git a/packages/storage-s3/src/staticHandler.ts b/packages/storage-s3/src/staticHandler.ts
index f904cdaf9..5c375cc7f 100644
--- a/packages/storage-s3/src/staticHandler.ts
+++ b/packages/storage-s3/src/staticHandler.ts
@@ -1,6 +1,6 @@
import type * as AWS from '@aws-sdk/client-s3'
import type { StaticHandler } from '@payloadcms/plugin-cloud-storage/types'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import { getFilePrefix } from '@payloadcms/plugin-cloud-storage/utilities'
import path from 'path'
diff --git a/packages/storage-s3/tsconfig.json b/packages/storage-s3/tsconfig.json
index 5880d1adc..ecb0fe770 100644
--- a/packages/storage-s3/tsconfig.json
+++ b/packages/storage-s3/tsconfig.json
@@ -6,15 +6,9 @@
"emitDeclarationOnly": true,
"outDir": "./dist" /* Specify an output folder for all emitted files. */,
"rootDir": "./src" /* Specify the root folder within your source files. */,
- "strict": true,
+ "strict": true
},
- "exclude": [
- "dist",
- "node_modules",
- ],
+ "exclude": ["dist", "node_modules"],
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.d.ts", "src/**/*.json"],
- "references": [
- { "path": "../payload" },
- { "path": "../plugin-cloud-storage" },
- ]
+ "references": [{ "path": "../payload" }, { "path": "../plugin-cloud-storage" }]
}
diff --git a/packages/storage-uploadthing/package.json b/packages/storage-uploadthing/package.json
index bb8654d55..a91a8e801 100644
--- a/packages/storage-uploadthing/package.json
+++ b/packages/storage-uploadthing/package.json
@@ -24,9 +24,9 @@
"dist"
],
"scripts": {
- "build": "pnpm build:swc && pnpm build:types",
+ "build": "pnpm build:types && pnpm build:swc",
"build:clean": "find . \\( -type d \\( -name build -o -name dist -o -name .cache \\) -o -type f -name tsconfig.tsbuildinfo \\) -exec rm -rf {} + && pnpm build",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"prepublishOnly": "pnpm clean && pnpm turbo build"
diff --git a/packages/storage-uploadthing/src/handleDelete.ts b/packages/storage-uploadthing/src/handleDelete.ts
index bc51c1139..541d38b02 100644
--- a/packages/storage-uploadthing/src/handleDelete.ts
+++ b/packages/storage-uploadthing/src/handleDelete.ts
@@ -1,7 +1,7 @@
import type { HandleDelete } from '@payloadcms/plugin-cloud-storage/types'
import type { UTApi } from 'uploadthing/server'
-import { APIError } from 'payload/errors'
+import { APIError } from 'payload'
import { getKeyFromFilename } from './utilities.js'
diff --git a/packages/storage-uploadthing/src/handleUpload.ts b/packages/storage-uploadthing/src/handleUpload.ts
index f140252a6..a20f59058 100644
--- a/packages/storage-uploadthing/src/handleUpload.ts
+++ b/packages/storage-uploadthing/src/handleUpload.ts
@@ -1,7 +1,7 @@
import type { HandleUpload } from '@payloadcms/plugin-cloud-storage/types'
import type { UTApi } from 'uploadthing/server'
-import { APIError } from 'payload/errors'
+import { APIError } from 'payload'
import { UTFile } from 'uploadthing/server'
import type { ACL } from './index.js'
diff --git a/packages/storage-uploadthing/src/index.ts b/packages/storage-uploadthing/src/index.ts
index 88e44b643..fbc15386f 100644
--- a/packages/storage-uploadthing/src/index.ts
+++ b/packages/storage-uploadthing/src/index.ts
@@ -4,8 +4,7 @@ import type {
CollectionOptions,
GeneratedAdapter,
} from '@payloadcms/plugin-cloud-storage/types'
-import type { Config, Plugin } from 'payload/config'
-import type { Field } from 'payload/types'
+import type { Config, Field, Plugin } from 'payload'
import type { UTApiOptions } from 'uploadthing/types'
import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'
diff --git a/packages/storage-uploadthing/src/staticHandler.ts b/packages/storage-uploadthing/src/staticHandler.ts
index 91677bd68..9ce481f3d 100644
--- a/packages/storage-uploadthing/src/staticHandler.ts
+++ b/packages/storage-uploadthing/src/staticHandler.ts
@@ -1,5 +1,5 @@
import type { StaticHandler } from '@payloadcms/plugin-cloud-storage/types'
-import type { Where } from 'payload/types'
+import type { Where } from 'payload'
import type { UTApi } from 'uploadthing/server'
import { getKeyFromFilename } from './utilities.js'
diff --git a/packages/storage-uploadthing/tsconfig.json b/packages/storage-uploadthing/tsconfig.json
index 5880d1adc..ecb0fe770 100644
--- a/packages/storage-uploadthing/tsconfig.json
+++ b/packages/storage-uploadthing/tsconfig.json
@@ -6,15 +6,9 @@
"emitDeclarationOnly": true,
"outDir": "./dist" /* Specify an output folder for all emitted files. */,
"rootDir": "./src" /* Specify the root folder within your source files. */,
- "strict": true,
+ "strict": true
},
- "exclude": [
- "dist",
- "node_modules",
- ],
+ "exclude": ["dist", "node_modules"],
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.d.ts", "src/**/*.json"],
- "references": [
- { "path": "../payload" },
- { "path": "../plugin-cloud-storage" },
- ]
+ "references": [{ "path": "../payload" }, { "path": "../plugin-cloud-storage" }]
}
diff --git a/packages/storage-vercel-blob/package.json b/packages/storage-vercel-blob/package.json
index 2a74a24a2..c993570b2 100644
--- a/packages/storage-vercel-blob/package.json
+++ b/packages/storage-vercel-blob/package.json
@@ -24,9 +24,9 @@
"dist"
],
"scripts": {
- "build": "pnpm build:swc && pnpm build:types",
+ "build": "pnpm build:types && pnpm build:swc",
"build:clean": "find . \\( -type d \\( -name build -o -name dist -o -name .cache \\) -o -type f -name tsconfig.tsbuildinfo \\) -exec rm -rf {} + && pnpm build",
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
"clean": "rimraf {dist,*.tsbuildinfo}",
"prepublishOnly": "pnpm clean && pnpm turbo build"
diff --git a/packages/storage-vercel-blob/src/index.ts b/packages/storage-vercel-blob/src/index.ts
index c6807fcf4..aacf4885b 100644
--- a/packages/storage-vercel-blob/src/index.ts
+++ b/packages/storage-vercel-blob/src/index.ts
@@ -1,8 +1,10 @@
import type {
Adapter,
PluginOptions as CloudStoragePluginOptions,
- CollectionOptions, GeneratedAdapter } from '@payloadcms/plugin-cloud-storage/types'
-import type { Config, Plugin } from 'payload/config'
+ CollectionOptions,
+ GeneratedAdapter,
+} from '@payloadcms/plugin-cloud-storage/types'
+import type { Config, Plugin } from 'payload'
import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'
diff --git a/packages/storage-vercel-blob/src/staticHandler.ts b/packages/storage-vercel-blob/src/staticHandler.ts
index de7077386..5eca404dc 100644
--- a/packages/storage-vercel-blob/src/staticHandler.ts
+++ b/packages/storage-vercel-blob/src/staticHandler.ts
@@ -1,5 +1,5 @@
import type { StaticHandler } from '@payloadcms/plugin-cloud-storage/types'
-import type { CollectionConfig } from 'payload/types'
+import type { CollectionConfig } from 'payload'
import { getFilePrefix } from '@payloadcms/plugin-cloud-storage/utilities'
import { head } from '@vercel/blob'
diff --git a/packages/storage-vercel-blob/tsconfig.json b/packages/storage-vercel-blob/tsconfig.json
index 5880d1adc..ecb0fe770 100644
--- a/packages/storage-vercel-blob/tsconfig.json
+++ b/packages/storage-vercel-blob/tsconfig.json
@@ -6,15 +6,9 @@
"emitDeclarationOnly": true,
"outDir": "./dist" /* Specify an output folder for all emitted files. */,
"rootDir": "./src" /* Specify the root folder within your source files. */,
- "strict": true,
+ "strict": true
},
- "exclude": [
- "dist",
- "node_modules",
- ],
+ "exclude": ["dist", "node_modules"],
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.d.ts", "src/**/*.json"],
- "references": [
- { "path": "../payload" },
- { "path": "../plugin-cloud-storage" },
- ]
+ "references": [{ "path": "../payload" }, { "path": "../plugin-cloud-storage" }]
}
diff --git a/packages/translations/package.json b/packages/translations/package.json
index c95d7ad88..ff69cb8ac 100644
--- a/packages/translations/package.json
+++ b/packages/translations/package.json
@@ -39,7 +39,7 @@
},
"devDependencies": {
"@payloadcms/eslint-config": "workspace:*",
- "@swc/core": "^1.4.13",
+ "@swc/core": "^1.6.1",
"@types/react": "npm:types-react@19.0.0-beta.2",
"@types/react-dom": "npm:types-react-dom@19.0.0-beta.2",
"dotenv": "16.4.5",
diff --git a/packages/translations/src/utilities/init.ts b/packages/translations/src/utilities/init.ts
index 7528b9e2d..ded7cebce 100644
--- a/packages/translations/src/utilities/init.ts
+++ b/packages/translations/src/utilities/init.ts
@@ -4,7 +4,8 @@ import type {
I18n,
InitI18n,
InitTFunction,
- Language } from '../types.js'
+ Language,
+} from '../types.js'
import { importDateFNSLocale } from '../importDateFNSLocale.js'
import { deepMerge } from './deepMerge.js'
diff --git a/packages/translations/tsconfig.json b/packages/translations/tsconfig.json
index 9885eb76a..4bf581f22 100644
--- a/packages/translations/tsconfig.json
+++ b/packages/translations/tsconfig.json
@@ -11,5 +11,5 @@
"noEmit": false /* Do not emit outputs. */,
"emitDeclarationOnly": false
},
- "include": ["src/**/*.ts", "src/**/*.js"],
+ "include": ["src/**/*.ts", "src/**/*.js"]
}
diff --git a/packages/ui/.swcrc b/packages/ui/.swcrc
index 662e653e5..b4fb882ca 100644
--- a/packages/ui/.swcrc
+++ b/packages/ui/.swcrc
@@ -16,16 +16,6 @@
"development": false,
"useBuiltins": true
}
- },
- "experimental": {
- "plugins": [
- [
- "swc-plugin-transform-remove-imports",
- {
- "test": "\\.(scss|css)$"
- }
- ]
- ]
}
},
"module": {
diff --git a/packages/ui/babel.config.cjs b/packages/ui/babel.config.cjs
index a4167afe9..41d25beee 100644
--- a/packages/ui/babel.config.cjs
+++ b/packages/ui/babel.config.cjs
@@ -2,26 +2,25 @@ const fs = require('fs')
const ReactCompilerConfig = {
sources: (filename) => {
-
- if(!filename.endsWith('.tsx') && !filename.endsWith('.jsx')) {
+ if (!filename.endsWith('.tsx') && !filename.endsWith('.jsx')) {
return false
}
// read file and check if 'use client' is at top. if not, return false
// if it is, return true
const file = fs.readFileSync(filename, 'utf8')
- if(file.includes("'use client'")) {
+ if (file.includes("'use client'")) {
//console.log("Compiling: " + filename)
return true
}
- console.log("Skipping: " + filename)
+ console.log('Skipping: ' + filename)
return false
},
//runtimeModule: "react"
}
module.exports = function (api) {
- api.cache(false);
+ api.cache(false)
return {
plugins: [
diff --git a/packages/ui/bundle.js b/packages/ui/bundle.js
new file mode 100644
index 000000000..a98b84b73
--- /dev/null
+++ b/packages/ui/bundle.js
@@ -0,0 +1,140 @@
+import * as esbuild from 'esbuild'
+import fs from 'fs'
+import path from 'path'
+import { fileURLToPath } from 'url'
+const filename = fileURLToPath(import.meta.url)
+const dirname = path.dirname(filename)
+import { sassPlugin } from 'esbuild-sass-plugin'
+import { commonjs } from '@hyrious/esbuild-plugin-commonjs'
+
+const removeCSSImports = {
+ name: 'remove-css-imports',
+ setup(build) {
+ build.onLoad({ filter: /.*/ }, async (args) => {
+ if (args.path.includes('node_modules') || !args.path.includes(dirname)) return
+ const contents = await fs.promises.readFile(args.path, 'utf8')
+ const withRemovedImports = contents.replace(/import\s+.*\.scss';?[\r\n\s]*/g, '')
+ return { contents: withRemovedImports, loader: 'default' }
+ })
+ },
+}
+
+// Bundle only the .scss files into a single css file
+await esbuild
+ .build({
+ entryPoints: ['src/exports/client/index.ts'],
+ bundle: true,
+ minify: true,
+ outdir: 'dist',
+ packages: 'external',
+ plugins: [sassPlugin({ css: 'external' })],
+ })
+ .then(() => {
+ fs.rename('dist/index.css', 'dist/styles.css', (err) => {
+ if (err) console.error(`Error while renaming index.css: ${err}`)
+ })
+
+ fs.unlink('dist/index.js', (err) => {
+ if (err) console.error(`Error while deleting index.js: ${err}`)
+ })
+
+ console.log('styles.css bundled successfully')
+ })
+ .catch(() => process.exit(1))
+
+// Bundle `client.ts`
+const resultClient = await esbuild
+ .build({
+ entryPoints: ['src/exports/client/index.ts'],
+ bundle: true,
+ platform: 'browser',
+ format: 'esm',
+ outdir: 'dist/exports/client',
+ //outfile: 'index.js',
+ // IMPORTANT: splitting the client bundle means that the `use client` directive will be lost for every chunk
+ splitting: true,
+ external: [
+ '*.scss',
+ '*.css',
+ 'qs',
+ '@dnd-kit/core',
+ '@payloadcms/graphql',
+ '@payloadcms/translations',
+ 'deep-equal',
+ 'react-toastify',
+
+ //'side-channel',
+ 'payload',
+ 'payload/*',
+ 'react',
+ 'react-dom',
+ 'next',
+ 'react-animate-height',
+ 'crypto',
+ ],
+ //packages: 'external',
+ minify: true,
+ metafile: true,
+ treeShaking: true,
+
+ tsconfig: path.resolve(dirname, './tsconfig.json'),
+ plugins: [
+ removeCSSImports,
+ /*commonjs({
+ ignore: ['date-fns', '@floating-ui/react'],
+ }),*/
+ ],
+ sourcemap: true,
+ })
+ .then((res, err) => {
+ console.log('client.ts bundled successfully')
+ return res
+ })
+ .catch(() => process.exit(1))
+
+const resultShared = await esbuild
+ .build({
+ entryPoints: ['src/exports/shared/index.ts'],
+ bundle: true,
+ platform: 'node',
+ format: 'esm',
+ outdir: 'dist/exports/shared',
+ //outfile: 'index.js',
+ // IMPORTANT: splitting the client bundle means that the `use client` directive will be lost for every chunk
+ splitting: false,
+ treeShaking: true,
+ external: [
+ '*.scss',
+ '*.css',
+ 'qs',
+ '@dnd-kit/core',
+ '@payloadcms/graphql',
+ '@payloadcms/translations',
+ 'deep-equal',
+ 'react-toastify',
+ 'payload',
+ 'payload/*',
+ 'react',
+ 'react-dom',
+ 'next',
+ 'react-animate-height',
+ 'crypto',
+ '@floating-ui/react',
+ 'date-fns',
+ 'react-datepicker',
+ ],
+ //packages: 'external',
+ minify: true,
+ metafile: true,
+ tsconfig: path.resolve(dirname, './tsconfig.json'),
+ plugins: [removeCSSImports, commonjs()],
+ sourcemap: true,
+ })
+ .then((res, err) => {
+ console.log('shared.ts bundled successfully')
+ return res
+ })
+ .catch(() => process.exit(1))
+
+fs.writeFileSync('meta_client.json', JSON.stringify(resultClient.metafile))
+fs.writeFileSync('meta_shared.json', JSON.stringify(resultShared.metafile))
diff --git a/packages/ui/package.json b/packages/ui/package.json
index 8a52cbfc7..d5547df8d 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -7,6 +7,7 @@
"url": "https://github.com/payloadcms/payload.git",
"directory": "packages/ui"
},
+ "sideEffects": false,
"type": "module",
"exports": {
"./assets": {
@@ -15,6 +16,11 @@
"default": "./src/assets/index.ts",
"types": "./src/assets/index.tsx"
},
+ "./client": {
+ "import": "./src/exports/client/index.ts",
+ "require": "./src/exports/client/index.ts",
+ "types": "./src/exports/client/index.ts"
+ },
"./elements/*": {
"import": "./src/elements/*/index.tsx",
"require": "./src/elements/*/index.tsx",
@@ -57,11 +63,10 @@
"default": "./src/providers/*/index.tsx",
"types": "./src/providers/*/index.tsx"
},
- "./templates/*": {
- "import": "./src/templates/*/index.tsx",
- "require": "./src/templates/*/index.tsx",
- "default": "./src/templates/*/index.tsx",
- "types": "./src/templates/*/index.tsx"
+ "./shared": {
+ "import": "./src/exports/shared/index.ts",
+ "require": "./src/exports/shared/index.ts",
+ "types": "./src/exports/shared/index.ts"
},
"./utilities/*": {
"import": "./src/utilities/*.ts",
@@ -74,19 +79,20 @@
"require": "./src/scss/styles.scss",
"default": "./src/scss/styles.scss"
},
- "./scss/app.scss": "./src/scss/app.scss"
+ "./scss/app.scss": "./src/scss/app.scss",
+ "./styles.css": "./dist/styles.css"
},
"files": [
"dist"
],
"scripts": {
- "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
+ "build": "rm -rf dist && rm -rf tsconfig.tsbuildinfo && pnpm copyfiles && pnpm build:types && pnpm build:swc && pnpm build:esbuild",
"build:babel": "babel src --out-dir dist --source-maps --extensions .ts,.js,.tsx,.jsx,.cjs,.mjs",
+ "build:esbuild": "node bundle.js",
"build:reactcompiler": "pnpm copyfiles && pnpm build:babel && pnpm build:types",
"build:remove-artifact": "rm dist/prod/index.js",
- "build:swc": "swc ./src -d dist --config-file .swcrc",
+ "build:swc": "swc ./src -d dist --config-file .swcrc --strip-leading-paths",
"build:types": "tsc --emitDeclarationOnly --outDir dist",
- "build:webpack": "webpack --config webpack.config.js",
"clean": "rimraf {dist,*.tsbuildinfo}",
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
"fix": "eslint \"src/**/*.{ts,tsx}\" --fix",
@@ -116,7 +122,7 @@
"scheduler": "0.25.0-rc-f994737d14-20240522",
"sonner": "^1.5.0",
"use-context-selector": "2.0.0",
- "uuid": "^9.0.1"
+ "uuid": "10.0.0"
},
"devDependencies": {
"@babel/cli": "^7.24.5",
@@ -124,6 +130,7 @@
"@babel/preset-env": "^7.24.5",
"@babel/preset-react": "^7.24.1",
"@babel/preset-typescript": "^7.24.1",
+ "@hyrious/esbuild-plugin-commonjs": "^0.2.4",
"@payloadcms/eslint-config": "workspace:*",
"@types/body-scroll-lock": "^3.1.0",
"@types/qs": "6.9.7",
@@ -132,19 +139,16 @@
"@types/react-dom": "npm:types-react-dom@19.0.0-beta.2",
"@types/uuid": "^9.0.8",
"babel-plugin-react-compiler": "0.0.0-experimental-592953e-20240517",
- "babel-plugin-transform-remove-imports": "^1.7.1",
"css-loader": "^6.10.0",
- "css-minimizer-webpack-plugin": "^6.0.0",
+ "esbuild": "^0.21.4",
+ "esbuild-sass-plugin": "^3.3.0",
"mini-css-extract-plugin": "1.6.2",
"payload": "workspace:*",
"postcss-loader": "^8.1.1",
"postcss-preset-env": "^9.5.14",
"sass-loader": "14.2.1",
"swc-loader": "^0.2.6",
- "swc-plugin-transform-remove-imports": "^1.12.1",
- "terser-webpack-plugin": "^5.3.10",
- "webpack": "^5.78.0",
- "webpack-cli": "^5.1.4"
+ "turbopack": "^0.0.1"
},
"peerDependencies": {
"next": "^15.0.0-rc.0",
@@ -157,19 +161,18 @@
},
"publishConfig": {
"exports": {
- ".": "./dist/exports/index.js",
"./assets/*": "./dist/assets/*",
- "./*": {
- "import": "./dist/exports/*.js",
- "require": "./dist/exports/*.js",
- "types": "./dist/exports/*.d.ts"
- },
"./assets": {
"import": "./dist/assets/index.js",
"require": "./dist/assets/index.js",
"default": "./dist/assets/index.js",
"types": "./dist/assets/index.d.ts"
},
+ "./client": {
+ "import": "./dist/exports/client/index.js",
+ "require": "./dist/exports/client/index.js",
+ "types": "./dist/exports/client/index.d.ts"
+ },
"./elements/*": {
"import": "./dist/elements/*/index.js",
"require": "./dist/elements/*/index.js",
@@ -212,11 +215,10 @@
"default": "./dist/providers/*/index.js",
"types": "./dist/providers/*/index.d.ts"
},
- "./templates/*": {
- "import": "./dist/templates/*/index.js",
- "require": "./dist/templates/*/index.js",
- "default": "./dist/templates/*/index.js",
- "types": "./dist/templates/*/index.d.ts"
+ "./shared": {
+ "import": "./dist/exports/shared/index.js",
+ "require": "./dist/exports/shared/index.js",
+ "types": "./dist/exports/shared/index.d.ts"
},
"./utilities/*": {
"import": "./dist/utilities/*.js",
@@ -234,7 +236,8 @@
"require": "./dist/scss/styles.scss",
"default": "./dist/scss/styles.scss"
},
- "./scss/app.scss": "./dist/scss/app.scss"
+ "./scss/app.scss": "./dist/scss/app.scss",
+ "./styles.css": "./dist/styles.css"
}
},
"overrides": {
diff --git a/packages/ui/src/elements/AppHeader/index.scss b/packages/ui/src/elements/AppHeader/index.scss
index f4ff2c14d..81aba4b67 100644
--- a/packages/ui/src/elements/AppHeader/index.scss
+++ b/packages/ui/src/elements/AppHeader/index.scss
@@ -16,7 +16,7 @@
right: unset;
left: base(4.5);
}
- &__localizer {
+ &__localizer.localizer {
position: absolute;
top: 50%;
right: base(4.5);
diff --git a/packages/ui/src/elements/ArrayAction/index.tsx b/packages/ui/src/elements/ArrayAction/index.tsx
index 6c48125c9..ea015c683 100644
--- a/packages/ui/src/elements/ArrayAction/index.tsx
+++ b/packages/ui/src/elements/ArrayAction/index.tsx
@@ -1,14 +1,13 @@
'use client'
import React from 'react'
-import { Chevron } from '../../icons/Chevron/index.js'
-import { Copy } from '../../icons/Copy/index.js'
+import { ChevronIcon } from '../../icons/Chevron/index.js'
+import { CopyIcon } from '../../icons/Copy/index.js'
import { MoreIcon } from '../../icons/More/index.js'
-import { Plus } from '../../icons/Plus/index.js'
-import { X } from '../../icons/X/index.js'
+import { PlusIcon } from '../../icons/Plus/index.js'
+import { XIcon } from '../../icons/X/index.js'
import { useTranslation } from '../../providers/Translation/index.js'
-import { PopupList } from '../Popup/index.js'
-import { Popup } from '../Popup/index.js'
+import { Popup, PopupList } from '../Popup/index.js'
import './index.scss'
const baseClass = 'array-actions'
@@ -54,7 +53,7 @@ export const ArrayAction: React.FC = ({
}}
>
-
+
{t('general:moveUp')}
@@ -68,7 +67,7 @@ export const ArrayAction: React.FC = ({
}}
>
-
+
{t('general:moveDown')}
@@ -82,7 +81,7 @@ export const ArrayAction: React.FC = ({
close()
}}
>
-
+
{t('general:addBelow')}
= ({
close()
}}
>
-
+
{t('general:duplicate')}
@@ -104,7 +103,7 @@ export const ArrayAction: React.FC = ({
close()
}}
>
-
+
{t('general:remove')}
diff --git a/packages/ui/src/elements/Autosave/index.tsx b/packages/ui/src/elements/Autosave/index.tsx
index 0c87152da..02fe04c66 100644
--- a/packages/ui/src/elements/Autosave/index.tsx
+++ b/packages/ui/src/elements/Autosave/index.tsx
@@ -1,8 +1,8 @@
'use client'
// TODO: abstract the `next/navigation` dependency out from this component
-import type { ClientCollectionConfig, ClientGlobalConfig } from 'payload/types'
+import type { ClientCollectionConfig, ClientGlobalConfig } from 'payload'
-import { versionDefaults } from 'payload/versions'
+import { versionDefaults } from 'payload/shared'
import React, { useEffect, useRef, useState } from 'react'
import { toast } from 'sonner'
diff --git a/packages/ui/src/elements/Button/index.tsx b/packages/ui/src/elements/Button/index.tsx
index c6dc2ec28..394414a68 100644
--- a/packages/ui/src/elements/Button/index.tsx
+++ b/packages/ui/src/elements/Button/index.tsx
@@ -3,22 +3,22 @@ import React, { Fragment, forwardRef, isValidElement } from 'react'
import type { Props } from './types.js'
-import { Chevron } from '../../icons/Chevron/index.js'
-import { Edit } from '../../icons/Edit/index.js'
+import { ChevronIcon } from '../../icons/Chevron/index.js'
+import { EditIcon } from '../../icons/Edit/index.js'
import { LinkIcon } from '../../icons/Link/index.js'
-import { Plus } from '../../icons/Plus/index.js'
-import { Swap } from '../../icons/Swap/index.js'
-import { X } from '../../icons/X/index.js'
+import { PlusIcon } from '../../icons/Plus/index.js'
+import { SwapIcon } from '../../icons/Swap/index.js'
+import { XIcon } from '../../icons/X/index.js'
import { Tooltip } from '../Tooltip/index.js'
import './index.scss'
const icons = {
- chevron: Chevron,
- edit: Edit,
+ chevron: ChevronIcon,
+ edit: EditIcon,
link: LinkIcon,
- plus: Plus,
- swap: Swap,
- x: X,
+ plus: PlusIcon,
+ swap: SwapIcon,
+ x: XIcon,
}
const baseClass = 'btn'
diff --git a/packages/ui/src/elements/Collapsible/index.tsx b/packages/ui/src/elements/Collapsible/index.tsx
index 8037837ff..8f094c0bb 100644
--- a/packages/ui/src/elements/Collapsible/index.tsx
+++ b/packages/ui/src/elements/Collapsible/index.tsx
@@ -7,8 +7,8 @@ import type { DragHandleProps } from '../DraggableSortable/DraggableSortableItem
const AnimateHeight = (AnimateHeightImport.default ||
AnimateHeightImport) as typeof AnimateHeightImport.default
-import { Chevron } from '../../icons/Chevron/index.js'
-import { DragHandle } from '../../icons/DragHandle/index.js'
+import { ChevronIcon } from '../../icons/Chevron/index.js'
+import { DragHandleIcon } from '../../icons/DragHandle/index.js'
import { useTranslation } from '../../providers/Translation/index.js'
import './index.scss'
import { CollapsibleProvider, useCollapsible } from './provider.js'
@@ -78,7 +78,7 @@ export const Collapsible: React.FC = ({
{...dragHandleProps.attributes}
{...dragHandleProps.listeners}
>
-
+