@yunsoft/yuncms-api 0.1.18 → 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
var e=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports);(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var t=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ee=/\/+/g;function A(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function j(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+A(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(ee,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ee,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+A(a,u),c+=M(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+A(a,u++),c+=M(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return M(j(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function N(e,t,n){if(e==null)return e;var r=[],i=0;return M(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function P(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var F=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},I={map:N,forEach:function(e,t,n){N(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=I,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:P}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,F)}catch(e){F(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.7`})),n=e(((e,n)=>{n.exports=t()})),r=e((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&A(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&A(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,ee=k.port2;k.port1.onmessage=D,O=function(){ee.postMessage(null)}}else O=function(){_(D,0)};function A(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,A(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),i=e(((e,t)=>{t.exports=r()})),a=e((e=>{var t=n();function r(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function i(){}var a={d:{f:i,r:function(){throw Error(r(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},o=Symbol.for(`react.portal`);function s(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var c=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(r(299));return s(e,t,null,n)},e.flushSync=function(e){var t=c.T,n=a.p;try{if(c.T=null,a.p=2,e)return e()}finally{c.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin),i=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:i,fetchPriority:o}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:i,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=l(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??a.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=l(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else a.d.m(e)}},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return c.H.useFormState(e,t,n)},e.useFormStatus=function(){return c.H.useHostTransitionStatus()},e.version=`19.2.7`})),o=e(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=a()})),s=e((e=>{var t=i(),r=n(),a=o();function s(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function c(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function l(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function u(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function d(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function f(e){if(l(e)!==e)throw Error(s(188))}function p(e){var t=e.alternate;if(!t){if(t=l(e),t===null)throw Error(s(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var a=i.alternate;if(a===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===a.child){for(a=i.child;a;){if(a===n)return f(i),e;if(a===r)return f(i),t;a=a.sibling}throw Error(s(188))}if(n.return!==r.return)n=i,r=a;else{for(var o=!1,c=i.child;c;){if(c===n){o=!0,n=i,r=a;break}if(c===r){o=!0,r=i,n=a;break}c=c.sibling}if(!o){for(c=a.child;c;){if(c===n){o=!0,n=a,r=i;break}if(c===r){o=!0,r=a,n=i;break}c=c.sibling}if(!o)throw Error(s(189))}}if(n.alternate!==r)throw Error(s(190))}if(n.tag!==3)throw Error(s(188));return n.stateNode.current===n?e:t}function m(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=m(e),t!==null)return t;e=e.sibling}return null}var h=Object.assign,g=Symbol.for(`react.element`),_=Symbol.for(`react.transitional.element`),v=Symbol.for(`react.portal`),y=Symbol.for(`react.fragment`),b=Symbol.for(`react.strict_mode`),x=Symbol.for(`react.profiler`),S=Symbol.for(`react.consumer`),C=Symbol.for(`react.context`),w=Symbol.for(`react.forward_ref`),T=Symbol.for(`react.suspense`),E=Symbol.for(`react.suspense_list`),D=Symbol.for(`react.memo`),O=Symbol.for(`react.lazy`),k=Symbol.for(`react.activity`),ee=Symbol.for(`react.memo_cache_sentinel`),A=Symbol.iterator;function j(e){return typeof e!=`object`||!e?null:(e=A&&e[A]||e[`@@iterator`],typeof e==`function`?e:null)}var M=Symbol.for(`react.client.reference`);function N(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===M?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case y:return`Fragment`;case x:return`Profiler`;case b:return`StrictMode`;case T:return`Suspense`;case E:return`SuspenseList`;case k:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case v:return`Portal`;case C:return e.displayName||`Context`;case S:return(e._context.displayName||`Context`)+`.Consumer`;case w:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case D:return t=e.displayName||null,t===null?N(e.type)||`Memo`:t;case O:t=e._payload,e=e._init;try{return N(e(t))}catch{}}return null}var P=Array.isArray,F=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I=a.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,te={pending:!1,data:null,method:null,action:null},L=[],ne=-1;function R(e){return{current:e}}function z(e){0>ne||(e.current=L[ne],L[ne]=null,ne--)}function B(e,t){ne++,L[ne]=e.current,e.current=t}var re=R(null),ie=R(null),V=R(null),ae=R(null);function H(e,t){switch(B(V,t),B(ie,e),B(re,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}z(re),B(re,e)}function oe(){z(re),z(ie),z(V)}function se(e){e.memoizedState!==null&&B(ae,e);var t=re.current,n=Hd(t,e.type);t!==n&&(B(ie,e),B(re,n))}function U(e){ie.current===e&&(z(re),z(ie)),ae.current===e&&(z(ae),Qf._currentValue=te)}var ce,le;function ue(e){if(ce===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ce=t&&t[1]||``,le=-1<e.stack.indexOf(`
|
|
2
|
+
at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
|
|
3
|
+
`+ce+e+le}var W=!1;function de(e,t){if(!e||W)return``;W=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
|
|
4
|
+
`),l=s.split(`
|
|
5
|
+
`);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
|
|
6
|
+
`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{W=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?ue(n):``}function G(e,t){switch(e.tag){case 26:case 27:case 5:return ue(e.type);case 16:return ue(`Lazy`);case 13:return e.child!==t&&t!==null?ue(`Suspense Fallback`):ue(`Suspense`);case 19:return ue(`SuspenseList`);case 0:case 15:return de(e.type,!1);case 11:return de(e.type.render,!1);case 1:return de(e.type,!0);case 31:return ue(`Activity`);default:return``}}function fe(e){try{var t=``,n=null;do t+=G(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
|
|
7
|
+
Error generating stack: `+e.message+`
|
|
8
|
+
`+e.stack}}var pe=Object.prototype.hasOwnProperty,me=t.unstable_scheduleCallback,he=t.unstable_cancelCallback,ge=t.unstable_shouldYield,_e=t.unstable_requestPaint,ve=t.unstable_now,ye=t.unstable_getCurrentPriorityLevel,be=t.unstable_ImmediatePriority,xe=t.unstable_UserBlockingPriority,Se=t.unstable_NormalPriority,Ce=t.unstable_LowPriority,we=t.unstable_IdlePriority,Te=t.log,Ee=t.unstable_setDisableYieldValue,De=null,Oe=null;function ke(e){if(typeof Te==`function`&&Ee(e),Oe&&typeof Oe.setStrictMode==`function`)try{Oe.setStrictMode(De,e)}catch{}}var Ae=Math.clz32?Math.clz32:Me,K=Math.log,je=Math.LN2;function Me(e){return e>>>=0,e===0?32:31-(K(e)/je|0)|0}var Ne=256,Pe=262144,Fe=4194304;function Ie(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Le(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ie(n))):i=Ie(o):i=Ie(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ie(n))):i=Ie(o)):i=Ie(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Re(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ze(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Be(){var e=Fe;return Fe<<=1,!(Fe&62914560)&&(Fe=4194304),e}function Ve(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function He(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ue(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Ae(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&We(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function We(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Ae(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function Ge(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Ae(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function Ke(e,t){var n=t&-t;return n=n&42?1:qe(n),(n&(e.suspendedLanes|t))===0?n:0}function qe(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Je(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function Ye(){var e=I.p;return e===0?(e=window.event,e===void 0?32:mp(e.type)):e}function Xe(e,t){var n=I.p;try{return I.p=e,t()}finally{I.p=n}}var Ze=Math.random().toString(36).slice(2),Qe=`__reactFiber$`+Ze,$e=`__reactProps$`+Ze,et=`__reactContainer$`+Ze,tt=`__reactEvents$`+Ze,nt=`__reactListeners$`+Ze,rt=`__reactHandles$`+Ze,it=`__reactResources$`+Ze,at=`__reactMarker$`+Ze;function ot(e){delete e[Qe],delete e[$e],delete e[tt],delete e[nt],delete e[rt]}function st(e){var t=e[Qe];if(t)return t;for(var n=e.parentNode;n;){if(t=n[et]||n[Qe]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=df(e);e!==null;){if(n=e[Qe])return n;e=df(e)}return t}e=n,n=e.parentNode}return null}function ct(e){if(e=e[Qe]||e[et]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function lt(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(s(33))}function ut(e){var t=e[it];return t||=e[it]={hoistableStyles:new Map,hoistableScripts:new Map},t}function dt(e){e[at]=!0}var ft=new Set,pt={};function mt(e,t){ht(e,t),ht(e+`Capture`,t)}function ht(e,t){for(pt[e]=t,e=0;e<t.length;e++)ft.add(t[e])}var gt=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),_t={},vt={};function yt(e){return pe.call(vt,e)?!0:pe.call(_t,e)?!1:gt.test(e)?vt[e]=!0:(_t[e]=!0,!1)}function bt(e,t,n){if(yt(t)){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}}function xt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function St(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function Ct(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function wt(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Tt(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Et(e){if(!e._valueTracker){var t=wt(e)?`checked`:`value`;e._valueTracker=Tt(e,t,``+e[t])}}function Dt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=wt(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}function Ot(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var kt=/[\n"\\]/g;function At(e){return e.replace(kt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function jt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Ct(t)):e.value!==``+Ct(t)&&(e.value=``+Ct(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Nt(e,o,Ct(n)):Nt(e,o,Ct(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Ct(s):e.removeAttribute(`name`)}function Mt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Et(e);return}n=n==null?``:``+Ct(n),t=t==null?n:``+Ct(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Et(e)}function Nt(e,t,n){t===`number`&&Ot(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Pt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+Ct(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Ft(e,t,n){if(t!=null&&(t=``+Ct(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+Ct(n)}function It(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(s(92));if(P(r)){if(1<r.length)throw Error(s(93));r=r[0]}n=r}n??=``,t=n}n=Ct(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Et(e)}function Lt(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Rt=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function zt(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||Rt.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function Bt(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(s(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var i in t)r=t[i],t.hasOwnProperty(i)&&n[i]!==r&&zt(e,i,r)}else for(var a in t)t.hasOwnProperty(a)&&zt(e,a,t[a])}function Vt(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var Ht=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),Ut=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Wt(e){return Ut.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function Gt(){}var Kt=null;function qt(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Jt=null,Yt=null;function Xt(e){var t=ct(e);if(t&&(e=t.stateNode)){var n=e[$e]||null;a:switch(e=t.stateNode,t.type){case`input`:if(jt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+At(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var i=r[$e]||null;if(!i)throw Error(s(90));jt(r,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Dt(r)}break a;case`textarea`:Ft(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Pt(e,!!n.multiple,t,!1)}}}var Zt=!1;function Qt(e,t,n){if(Zt)return e(t,n);Zt=!0;try{return e(t)}finally{if(Zt=!1,(Jt!==null||Yt!==null)&&(vu(),Jt&&(t=Jt,e=Yt,Yt=Jt=null,Xt(t),e)))for(t=0;t<e.length;t++)Xt(e[t])}}function $t(e,t){var n=e.stateNode;if(n===null)return null;var r=n[$e]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=e!==`button`&&e!==`input`&&e!==`select`&&e!==`textarea`),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(s(231,t,typeof n));return n}var en=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),tn=!1;if(en)try{var nn={};Object.defineProperty(nn,"passive",{get:function(){tn=!0}}),window.addEventListener(`test`,nn,nn),window.removeEventListener(`test`,nn,nn)}catch{tn=!1}var rn=null,an=null,on=null;function sn(){if(on)return on;var e,t=an,n=t.length,r,i=`value`in rn?rn.value:rn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return on=i.slice(e,1<r?1-r:void 0)}function cn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function ln(){return!0}function un(){return!1}function q(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?ln:un,this.isPropagationStopped=un,this}return h(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=ln)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=ln)},persist:function(){},isPersistent:ln}),t}var dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=q(dn),pn=h({},dn,{view:0,detail:0}),mn=q(pn),hn,gn,_n,vn=h({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:On,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==_n&&(_n&&e.type===`mousemove`?(hn=e.screenX-_n.screenX,gn=e.screenY-_n.screenY):gn=hn=0,_n=e),hn)},movementY:function(e){return`movementY`in e?e.movementY:gn}}),yn=q(vn),bn=q(h({},vn,{dataTransfer:0})),J=q(h({},pn,{relatedTarget:0})),xn=q(h({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),Sn=q(h({},dn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Cn=q(h({},dn,{data:0})),wn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Tn={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},En={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Dn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=En[e])?!!t[e]:!1}function On(){return Dn}var kn=q(h({},pn,{key:function(e){if(e.key){var t=wn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=cn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Tn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:On,charCode:function(e){return e.type===`keypress`?cn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?cn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),An=q(h({},vn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),jn=q(h({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:On})),Mn=q(h({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Nn=q(h({},vn,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Pn=q(h({},dn,{newState:0,oldState:0})),Fn=[9,13,27,32],In=en&&`CompositionEvent`in window,Ln=null;en&&`documentMode`in document&&(Ln=document.documentMode);var Rn=en&&`TextEvent`in window&&!Ln,zn=en&&(!In||Ln&&8<Ln&&11>=Ln),Bn=` `,Vn=!1;function Hn(e,t){switch(e){case`keyup`:return Fn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Un(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Wn=!1;function Gn(e,t){switch(e){case`compositionend`:return Un(t);case`keypress`:return t.which===32?(Vn=!0,Bn):null;case`textInput`:return e=t.data,e===Bn&&Vn?null:e;default:return null}}function Kn(e,t){if(Wn)return e===`compositionend`||!In&&Hn(e,t)?(e=sn(),on=an=rn=null,Wn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return zn&&t.locale!==`ko`?null:t.data;default:return null}}var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Jn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!qn[e.type]:t===`textarea`}function Yn(e,t,n,r){Jt?Yt?Yt.push(r):Yt=[r]:Jt=r,t=Td(t,`onChange`),0<t.length&&(n=new fn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var Xn=null,Zn=null;function Qn(e){vd(e,0)}function $n(e){if(Dt(lt(e)))return e}function er(e,t){if(e===`change`)return t}var tr=!1;if(en){var nr;if(en){var rr=`oninput`in document;if(!rr){var ir=document.createElement(`div`);ir.setAttribute(`oninput`,`return;`),rr=typeof ir.oninput==`function`}nr=rr}else nr=!1;tr=nr&&(!document.documentMode||9<document.documentMode)}function ar(){Xn&&(Xn.detachEvent(`onpropertychange`,or),Zn=Xn=null)}function or(e){if(e.propertyName===`value`&&$n(Zn)){var t=[];Yn(t,Zn,e,qt(e)),Qt(Qn,t)}}function sr(e,t,n){e===`focusin`?(ar(),Xn=t,Zn=n,Xn.attachEvent(`onpropertychange`,or)):e===`focusout`&&ar()}function cr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return $n(Zn)}function lr(e,t){if(e===`click`)return $n(t)}function ur(e,t){if(e===`input`||e===`change`)return $n(t)}function dr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var fr=typeof Object.is==`function`?Object.is:dr;function pr(e,t){if(fr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!pe.call(t,i)||!fr(e[i],t[i]))return!1}return!0}function mr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function hr(e,t){var n=mr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=mr(n)}}function gr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?gr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function _r(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Ot(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ot(e.document)}return t}function vr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var yr=en&&`documentMode`in document&&11>=document.documentMode,br=null,xr=null,Sr=null,Cr=!1;function wr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Cr||br==null||br!==Ot(r)||(r=br,`selectionStart`in r&&vr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Sr&&pr(Sr,r)||(Sr=r,r=Td(xr,`onSelect`),0<r.length&&(t=new fn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=br)))}function Tr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Er={animationend:Tr(`Animation`,`AnimationEnd`),animationiteration:Tr(`Animation`,`AnimationIteration`),animationstart:Tr(`Animation`,`AnimationStart`),transitionrun:Tr(`Transition`,`TransitionRun`),transitionstart:Tr(`Transition`,`TransitionStart`),transitioncancel:Tr(`Transition`,`TransitionCancel`),transitionend:Tr(`Transition`,`TransitionEnd`)},Dr={},Or={};en&&(Or=document.createElement(`div`).style,`AnimationEvent`in window||(delete Er.animationend.animation,delete Er.animationiteration.animation,delete Er.animationstart.animation),`TransitionEvent`in window||delete Er.transitionend.transition);function kr(e){if(Dr[e])return Dr[e];if(!Er[e])return e;var t=Er[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Or)return Dr[e]=t[n];return e}var Ar=kr(`animationend`),jr=kr(`animationiteration`),Mr=kr(`animationstart`),Nr=kr(`transitionrun`),Pr=kr(`transitionstart`),Fr=kr(`transitioncancel`),Ir=kr(`transitionend`),Lr=new Map,Rr=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);Rr.push(`scrollEnd`);function zr(e,t){Lr.set(e,t),mt(t,[e])}var Br=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},Vr=[],Hr=0,Ur=0;function Wr(){for(var e=Hr,t=Ur=Hr=0;t<e;){var n=Vr[t];Vr[t++]=null;var r=Vr[t];Vr[t++]=null;var i=Vr[t];Vr[t++]=null;var a=Vr[t];if(Vr[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&Jr(n,i,a)}}function Gr(e,t,n,r){Vr[Hr++]=e,Vr[Hr++]=t,Vr[Hr++]=n,Vr[Hr++]=r,Ur|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function Kr(e,t,n,r){return Gr(e,t,n,r),Yr(e)}function qr(e,t){return Gr(e,null,null,t),Yr(e)}function Jr(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Ae(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function Yr(e){if(50<lu)throw lu=0,uu=null,Error(s(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Xr={};function Zr(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Qr(e,t,n,r){return new Zr(e,t,n,r)}function $r(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ei(e,t){var n=e.alternate;return n===null?(n=Qr(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function ti(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ni(e,t,n,r,i,a){var o=0;if(r=e,typeof e==`function`)$r(e)&&(o=1);else if(typeof e==`string`)o=Uf(e,n,re.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case k:return e=Qr(31,n,t,i),e.elementType=k,e.lanes=a,e;case y:return ri(n.children,i,a,t);case b:o=8,i|=24;break;case x:return e=Qr(12,n,t,i|2),e.elementType=x,e.lanes=a,e;case T:return e=Qr(13,n,t,i),e.elementType=T,e.lanes=a,e;case E:return e=Qr(19,n,t,i),e.elementType=E,e.lanes=a,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case C:o=10;break a;case S:o=9;break a;case w:o=11;break a;case D:o=14;break a;case O:o=16,r=null;break a}o=29,n=Error(s(130,e===null?`null`:typeof e,``)),r=null}return t=Qr(o,n,t,i),t.elementType=e,t.type=r,t.lanes=a,t}function ri(e,t,n,r){return e=Qr(7,e,r,t),e.lanes=n,e}function ii(e,t,n){return e=Qr(6,e,null,t),e.lanes=n,e}function ai(e){var t=Qr(18,null,null,0);return t.stateNode=e,t}function oi(e,t,n){return t=Qr(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var si=new WeakMap;function ci(e,t){if(typeof e==`object`&&e){var n=si.get(e);return n===void 0?(t={value:e,source:t,stack:fe(t)},si.set(e,t),t):n}return{value:e,source:t,stack:fe(t)}}var li=[],ui=0,di=null,fi=0,pi=[],mi=0,hi=null,gi=1,_i=``;function vi(e,t){li[ui++]=fi,li[ui++]=di,di=e,fi=t}function yi(e,t,n){pi[mi++]=gi,pi[mi++]=_i,pi[mi++]=hi,hi=e;var r=gi;e=_i;var i=32-Ae(r)-1;r&=~(1<<i),n+=1;var a=32-Ae(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,gi=1<<32-Ae(t)+i|n<<i|r,_i=a+e}else gi=1<<a|n<<i|r,_i=e}function bi(e){e.return!==null&&(vi(e,1),yi(e,1,0))}function xi(e){for(;e===di;)di=li[--ui],li[ui]=null,fi=li[--ui],li[ui]=null;for(;e===hi;)hi=pi[--mi],pi[mi]=null,_i=pi[--mi],pi[mi]=null,gi=pi[--mi],pi[mi]=null}function Si(e,t){pi[mi++]=gi,pi[mi++]=_i,pi[mi++]=hi,gi=t.id,_i=t.overflow,hi=e}var Ci=null,wi=null,Y=!1,Ti=null,Ei=!1,Di=Error(s(519));function Oi(e){throw Pi(ci(Error(s(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Di}function ki(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[Qe]=e,t[$e]=r,n){case`dialog`:$(`cancel`,t),$(`close`,t);break;case`iframe`:case`object`:case`embed`:$(`load`,t);break;case`video`:case`audio`:for(n=0;n<gd.length;n++)$(gd[n],t);break;case`source`:$(`error`,t);break;case`img`:case`image`:case`link`:$(`error`,t),$(`load`,t);break;case`details`:$(`toggle`,t);break;case`input`:$(`invalid`,t),Mt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:$(`invalid`,t);break;case`textarea`:$(`invalid`,t),It(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||jd(t.textContent,n)?(r.popover!=null&&($(`beforetoggle`,t),$(`toggle`,t)),r.onScroll!=null&&$(`scroll`,t),r.onScrollEnd!=null&&$(`scrollend`,t),r.onClick!=null&&(t.onclick=Gt),t=!0):t=!1,t||Oi(e,!0)}function Ai(e){for(Ci=e.return;Ci;)switch(Ci.tag){case 5:case 31:case 13:Ei=!1;return;case 27:case 3:Ei=!0;return;default:Ci=Ci.return}}function ji(e){if(e!==Ci)return!1;if(!Y)return Ai(e),Y=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=n===`form`||n===`button`||Ud(e.type,e.memoizedProps)),n=!n),n&&wi&&Oi(e),Ai(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(s(317));wi=uf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(s(317));wi=uf(e)}else t===27?(t=wi,Zd(e.type)?(e=lf,lf=null,wi=e):wi=t):wi=Ci?cf(e.stateNode.nextSibling):null;return!0}function Mi(){wi=Ci=null,Y=!1}function Ni(){var e=Ti;return e!==null&&(Yl===null?Yl=e:Yl.push.apply(Yl,e),Ti=null),e}function Pi(e){Ti===null?Ti=[e]:Ti.push(e)}var Fi=R(null),Ii=null,Li=null;function Ri(e,t,n){B(Fi,t._currentValue),t._currentValue=n}function zi(e){e._currentValue=Fi.current,z(Fi)}function Bi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Vi(e,t,n,r){var i=e.child;for(i!==null&&(i.return=e);i!==null;){var a=i.dependencies;if(a!==null){var o=i.child;a=a.firstContext;a:for(;a!==null;){var c=a;a=i;for(var l=0;l<t.length;l++)if(c.context===t[l]){a.lanes|=n,c=a.alternate,c!==null&&(c.lanes|=n),Bi(a.return,n,e),r||(o=null);break a}a=c.next}}else if(i.tag===18){if(o=i.return,o===null)throw Error(s(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),Bi(o,n,e),o=null}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===e){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}}function Hi(e,t,n,r){e=null;for(var i=t,a=!1;i!==null;){if(!a){if(i.flags&524288)a=!0;else if(i.flags&262144)break}if(i.tag===10){var o=i.alternate;if(o===null)throw Error(s(387));if(o=o.memoizedProps,o!==null){var c=i.type;fr(i.pendingProps.value,o.value)||(e===null?e=[c]:e.push(c))}}else if(i===ae.current){if(o=i.alternate,o===null)throw Error(s(387));o.memoizedState.memoizedState!==i.memoizedState.memoizedState&&(e===null?e=[Qf]:e.push(Qf))}i=i.return}e!==null&&Vi(t,e,n,r),t.flags|=262144}function Ui(e){for(e=e.firstContext;e!==null;){if(!fr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Wi(e){Ii=e,Li=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Gi(e){return qi(Ii,e)}function Ki(e,t){return Ii===null&&Wi(e),qi(e,t)}function qi(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Li===null){if(e===null)throw Error(s(308));Li=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Li=Li.next=t;return n}var Ji=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},Yi=t.unstable_scheduleCallback,Xi=t.unstable_NormalPriority,Zi={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Qi(){return{controller:new Ji,data:new Map,refCount:0}}function $i(e){e.refCount--,e.refCount===0&&Yi(Xi,function(){e.controller.abort()})}var ea=null,ta=0,na=0,ra=null;function ia(e,t){if(ea===null){var n=ea=[];ta=0,na=ud(),ra={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return ta++,t.then(aa,aa),t}function aa(){if(--ta===0&&ea!==null){ra!==null&&(ra.status=`fulfilled`);var e=ea;ea=null,na=0,ra=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function oa(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var sa=F.S;F.S=function(e,t){Ql=ve(),typeof t==`object`&&t&&typeof t.then==`function`&&ia(e,t),sa!==null&&sa(e,t)};var ca=R(null);function la(){var e=ca.current;return e===null?Fl.pooledCache:e}function ua(e,t){t===null?B(ca,ca.current):B(ca,t.pool)}function da(){var e=la();return e===null?null:{parent:Zi._currentValue,pool:e}}var fa=Error(s(460)),pa=Error(s(474)),ma=Error(s(542)),ha={then:function(){}};function ga(e){return e=e.status,e===`fulfilled`||e===`rejected`}function _a(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(Gt,Gt),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,xa(e),e;default:if(typeof t.status==`string`)t.then(Gt,Gt);else{if(e=Fl,e!==null&&100<e.shellSuspendCounter)throw Error(s(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,xa(e),e}throw ya=t,fa}}function va(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(ya=e,fa):e}}var ya=null;function ba(){if(ya===null)throw Error(s(459));var e=ya;return ya=null,e}function xa(e){if(e===fa||e===ma)throw Error(s(483))}var Sa=null,Ca=0;function wa(e){var t=Ca;return Ca+=1,Sa===null&&(Sa=[]),_a(Sa,e,t)}function Ta(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Ea(e,t){throw t.$$typeof===g?Error(s(525)):(e=Object.prototype.toString.call(t),Error(s(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Da(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function i(e,t){return e=ei(e,t),e.index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function o(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=ii(n,e.mode,r),t.return=e,t):(t=i(t,n),t.return=e,t)}function l(e,t,n,r){var a=n.type;return a===y?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===a||typeof a==`object`&&a&&a.$$typeof===O&&va(a)===t.type)?(t=i(t,n.props),Ta(t,n),t.return=e,t):(t=ni(n.type,n.key,n.props,null,e.mode,r),Ta(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=oi(n,e.mode,r),t.return=e,t):(t=i(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,a){return t===null||t.tag!==7?(t=ri(n,e.mode,r,a),t.return=e,t):(t=i(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=ii(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case _:return n=ni(t.type,t.key,t.props,null,e.mode,n),Ta(n,t),n.return=e,n;case v:return t=oi(t,e.mode,n),t.return=e,t;case O:return t=va(t),f(e,t,n)}if(P(t)||j(t))return t=ri(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,wa(t),n);if(t.$$typeof===C)return f(e,Ki(e,t),n);Ea(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case _:return n.key===i?l(e,t,n,r):null;case v:return n.key===i?u(e,t,n,r):null;case O:return n=va(n),p(e,t,n,r)}if(P(n)||j(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,wa(n),r);if(n.$$typeof===C)return p(e,t,Ki(e,n),r);Ea(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case _:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case v:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case O:return r=va(r),m(e,t,n,r,i)}if(P(r)||j(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,wa(r),i);if(r.$$typeof===C)return m(e,t,n,Ki(t,r),i);Ea(t,r)}return null}function h(i,o,s,c){for(var l=null,u=null,d=o,h=o=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),o=a(_,o,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),Y&&vi(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(o=a(d,o,h),u===null?l=d:u.sibling=d,u=d);return Y&&vi(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),o=a(g,o,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),Y&&vi(i,h),l}function g(i,o,c,l){if(c==null)throw Error(s(151));for(var u=null,d=null,h=o,g=o=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),o=a(y,o,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),Y&&vi(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(o=a(v,o,g),d===null?u=v:d.sibling=v,d=v);return Y&&vi(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),o=a(v,o,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),Y&&vi(i,g),u}function b(e,r,a,c){if(typeof a==`object`&&a&&a.type===y&&a.key===null&&(a=a.props.children),typeof a==`object`&&a){switch(a.$$typeof){case _:a:{for(var l=a.key;r!==null;){if(r.key===l){if(l=a.type,l===y){if(r.tag===7){n(e,r.sibling),c=i(r,a.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&va(l)===r.type){n(e,r.sibling),c=i(r,a.props),Ta(c,a),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}a.type===y?(c=ri(a.props.children,e.mode,c,a.key),c.return=e,e=c):(c=ni(a.type,a.key,a.props,null,e.mode,c),Ta(c,a),c.return=e,e=c)}return o(e);case v:a:{for(l=a.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),c=i(r,a.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=oi(a,e.mode,c),c.return=e,e=c}return o(e);case O:return a=va(a),b(e,r,a,c)}if(P(a))return h(e,r,a,c);if(j(a)){if(l=j(a),typeof l!=`function`)throw Error(s(150));return a=l.call(a),g(e,r,a,c)}if(typeof a.then==`function`)return b(e,r,wa(a),c);if(a.$$typeof===C)return b(e,r,Ki(e,a),c);Ea(e,a)}return typeof a==`string`&&a!==``||typeof a==`number`||typeof a==`bigint`?(a=``+a,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,a),c.return=e,e=c):(n(e,r),c=ii(a,e.mode,c),c.return=e,e=c),o(e)):n(e,r)}return function(e,t,n,r){try{Ca=0;var i=b(e,t,n,r);return Sa=null,i}catch(t){if(t===fa||t===ma)throw t;var a=Qr(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Oa=Da(!0),ka=Da(!1),Aa=!1;function ja(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ma(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Na(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Pa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Pl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Yr(e),Jr(e,null,n),t}return Gr(e,r,t,n),Yr(e)}function Fa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ge(e,n)}}function Ia(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var La=!1;function Ra(){if(La){var e=ra;if(e!==null)throw e}}function za(e,t,n,r){La=!1;var i=e.updateQueue;Aa=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Q&f)===f:(r&f)===f){f!==0&&f===na&&(La=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:Aa=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Ul|=o,e.lanes=o,e.memoizedState=d}}function Ba(e,t){if(typeof e!=`function`)throw Error(s(191,e));e.call(t)}function Va(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Ba(n[e],t)}var Ha=R(null),Ua=R(0);function Wa(e,t){e=Vl,B(Ua,e),B(Ha,t),Vl=e|t.baseLanes}function Ga(){B(Ua,Vl),B(Ha,Ha.current)}function Ka(){Vl=Ua.current,z(Ha),z(Ua)}var qa=R(null),Ja=null;function Ya(e){var t=e.alternate;B(eo,eo.current&1),B(qa,e),Ja===null&&(t===null||Ha.current!==null||t.memoizedState!==null)&&(Ja=e)}function Xa(e){B(eo,eo.current),B(qa,e),Ja===null&&(Ja=e)}function Za(e){e.tag===22?(B(eo,eo.current),B(qa,e),Ja===null&&(Ja=e)):Qa(e)}function Qa(){B(eo,eo.current),B(qa,qa.current)}function $a(e){z(qa),Ja===e&&(Ja=null),z(eo)}var eo=R(0);function to(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||af(n)||of(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var no=0,X=null,ro=null,io=null,ao=!1,oo=!1,so=!1,co=0,lo=0,uo=null,fo=0;function po(){throw Error(s(321))}function mo(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!fr(e[n],t[n]))return!1;return!0}function ho(e,t,n,r,i,a){return no=a,X=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,F.H=e===null||e.memoizedState===null?Ms:Ns,so=!1,a=n(r,i),so=!1,oo&&(a=_o(t,n,r,i)),go(e),a}function go(e){F.H=js;var t=ro!==null&&ro.next!==null;if(no=0,io=ro=X=null,ao=!1,lo=0,uo=null,t)throw Error(s(300));e===null||Xs||(e=e.dependencies,e!==null&&Ui(e)&&(Xs=!0))}function _o(e,t,n,r){X=e;var i=0;do{if(oo&&(uo=null),lo=0,oo=!1,25<=i)throw Error(s(301));if(i+=1,io=ro=null,e.updateQueue!=null){var a=e.updateQueue;a.lastEffect=null,a.events=null,a.stores=null,a.memoCache!=null&&(a.memoCache.index=0)}F.H=Ps,a=t(n,r)}while(oo);return a}function vo(){var e=F.H,t=e.useState()[0];return t=typeof t.then==`function`?To(t):t,e=e.useState()[0],(ro===null?null:ro.memoizedState)!==e&&(X.flags|=1024),t}function yo(){var e=co!==0;return co=0,e}function bo(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function xo(e){if(ao){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}ao=!1}no=0,io=ro=X=null,oo=!1,lo=co=0,uo=null}function So(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return io===null?X.memoizedState=io=e:io=io.next=e,io}function Co(){if(ro===null){var e=X.alternate;e=e===null?null:e.memoizedState}else e=ro.next;var t=io===null?X.memoizedState:io.next;if(t!==null)io=t,ro=e;else{if(e===null)throw X.alternate===null?Error(s(467)):Error(s(310));ro=e,e={memoizedState:ro.memoizedState,baseState:ro.baseState,baseQueue:ro.baseQueue,queue:ro.queue,next:null},io===null?X.memoizedState=io=e:io=io.next=e}return io}function wo(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function To(e){var t=lo;return lo+=1,uo===null&&(uo=[]),e=_a(uo,e,t),t=X,(io===null?t.memoizedState:io.next)===null&&(t=t.alternate,F.H=t===null||t.memoizedState===null?Ms:Ns),e}function Eo(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return To(e);if(e.$$typeof===C)return Gi(e)}throw Error(s(438,String(e)))}function Do(e){var t=null,n=X.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=X.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=wo(),X.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=ee;return t.index++,n}function Oo(e,t){return typeof t==`function`?t(e):t}function ko(e){return Ao(Co(),ro,e)}function Ao(e,t,n){var r=e.queue;if(r===null)throw Error(s(311));r.lastRenderedReducer=n;var i=e.baseQueue,a=r.pending;if(a!==null){if(i!==null){var o=i.next;i.next=a.next,a.next=o}t.baseQueue=i=a,r.pending=null}if(a=e.baseState,i===null)e.memoizedState=a;else{t=i.next;var c=o=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(no&f)===f:(Q&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===na&&(d=!0);else if((no&p)===p){u=u.next,p===na&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,o=a):l=l.next=f,X.lanes|=p,Ul|=p;f=u.action,so&&n(a,f),a=u.hasEagerState?u.eagerState:n(a,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,o=a):l=l.next=p,X.lanes|=f,Ul|=f;u=u.next}while(u!==null&&u!==t);if(l===null?o=a:l.next=c,!fr(a,e.memoizedState)&&(Xs=!0,d&&(n=ra,n!==null)))throw n;e.memoizedState=a,e.baseState=o,e.baseQueue=l,r.lastRenderedState=a}return i===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function jo(e){var t=Co(),n=t.queue;if(n===null)throw Error(s(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,a=t.memoizedState;if(i!==null){n.pending=null;var o=i=i.next;do a=e(a,o.action),o=o.next;while(o!==i);fr(a,t.memoizedState)||(Xs=!0),t.memoizedState=a,t.baseQueue===null&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function Mo(e,t,n){var r=X,i=Co(),a=Y;if(a){if(n===void 0)throw Error(s(407));n=n()}else n=t();var o=!fr((ro||i).memoizedState,n);if(o&&(i.memoizedState=n,Xs=!0),i=i.queue,rs(Fo.bind(null,r,i,e),[e]),i.getSnapshot!==t||o||io!==null&&io.memoizedState.tag&1){if(r.flags|=2048,Qo(9,{destroy:void 0},Po.bind(null,r,i,n,t),null),Fl===null)throw Error(s(349));a||no&127||No(r,t,n)}return n}function No(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=X.updateQueue,t===null?(t=wo(),X.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Po(e,t,n,r){t.value=n,t.getSnapshot=r,Io(t)&&Lo(e)}function Fo(e,t,n){return n(function(){Io(t)&&Lo(e)})}function Io(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!fr(e,n)}catch{return!0}}function Lo(e){var t=qr(e,2);t!==null&&pu(t,e,2)}function Ro(e){var t=So();if(typeof e==`function`){var n=e;if(e=n(),so){ke(!0);try{n()}finally{ke(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Oo,lastRenderedState:e},t}function zo(e,t,n,r){return e.baseState=n,Ao(e,ro,typeof r==`function`?r:Oo)}function Bo(e,t,n,r,i){if(Os(e))throw Error(s(485));if(e=t.action,e!==null){var a={payload:i,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){a.listeners.push(e)}};F.T===null?a.isTransition=!1:n(!0),r(a),n=t.pending,n===null?(a.next=t.pending=a,Vo(t,a)):(a.next=n.next,t.pending=n.next=a)}}function Vo(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=F.T,o={};F.T=o;try{var s=n(i,r),c=F.S;c!==null&&c(o,s),Ho(e,t,s)}catch(n){Wo(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),F.T=a}}else try{a=n(i,r),Ho(e,t,a)}catch(n){Wo(e,t,n)}}function Ho(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){Uo(e,t,n)},function(n){return Wo(e,t,n)}):Uo(e,t,n)}function Uo(e,t,n){t.status=`fulfilled`,t.value=n,Go(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Vo(e,n)))}function Wo(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,Go(t),t=t.next;while(t!==r)}e.action=null}function Go(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Ko(e,t){return t}function qo(e,t){if(Y){var n=Fl.formState;if(n!==null){a:{var r=X;if(Y){if(wi){b:{for(var i=wi,a=Ei;i.nodeType!==8;){if(!a){i=null;break b}if(i=cf(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){wi=cf(i.nextSibling),r=i.data===`F!`;break a}}Oi(r)}r=!1}r&&(t=n[0])}}return n=So(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ko,lastRenderedState:t},n.queue=r,n=Ts.bind(null,X,r),r.dispatch=n,r=Ro(!1),a=Ds.bind(null,X,!1,r.queue),r=So(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Bo.bind(null,X,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function Jo(e){return Yo(Co(),ro,e)}function Yo(e,t,n){if(t=Ao(e,t,Ko)[0],e=ko(Oo)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=To(t)}catch(e){throw e===fa?ma:e}else r=t;t=Co();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(X.flags|=2048,Qo(9,{destroy:void 0},Xo.bind(null,i,n),null)),[r,a,e]}function Xo(e,t){e.action=t}function Zo(e){var t=Co(),n=ro;if(n!==null)return Yo(t,n,e);Co(),t=t.memoizedState,n=Co();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function Qo(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=X.updateQueue,t===null&&(t=wo(),X.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function $o(){return Co().memoizedState}function es(e,t,n,r){var i=So();X.flags|=e,i.memoizedState=Qo(1|t,{destroy:void 0},n,r===void 0?null:r)}function ts(e,t,n,r){var i=Co();r=r===void 0?null:r;var a=i.memoizedState.inst;ro!==null&&r!==null&&mo(r,ro.memoizedState.deps)?i.memoizedState=Qo(t,a,n,r):(X.flags|=e,i.memoizedState=Qo(1|t,a,n,r))}function ns(e,t){es(8390656,8,e,t)}function rs(e,t){ts(2048,8,e,t)}function is(e){X.flags|=4;var t=X.updateQueue;if(t===null)t=wo(),X.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function as(e){var t=Co().memoizedState;return is({ref:t,nextImpl:e}),function(){if(Pl&2)throw Error(s(440));return t.impl.apply(void 0,arguments)}}function os(e,t){return ts(4,2,e,t)}function ss(e,t){return ts(4,4,e,t)}function cs(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function ls(e,t,n){n=n==null?null:n.concat([e]),ts(4,4,cs.bind(null,t,e),n)}function us(){}function ds(e,t){var n=Co();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&mo(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function fs(e,t){var n=Co();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&mo(t,r[1]))return r[0];if(r=e(),so){ke(!0);try{e()}finally{ke(!1)}}return n.memoizedState=[r,t],r}function ps(e,t,n){return n===void 0||no&1073741824&&!(Q&261930)?e.memoizedState=t:(e.memoizedState=n,e=fu(),X.lanes|=e,Ul|=e,n)}function ms(e,t,n,r){return fr(n,t)?n:Ha.current===null?!(no&42)||no&1073741824&&!(Q&261930)?(Xs=!0,e.memoizedState=n):(e=fu(),X.lanes|=e,Ul|=e,t):(e=ps(e,n,r),fr(e,t)||(Xs=!0),e)}function hs(e,t,n,r,i){var a=I.p;I.p=a!==0&&8>a?a:8;var o=F.T,s={};F.T=s,Ds(e,!1,t,n);try{var c=i(),l=F.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Es(e,t,oa(c,r),du(e)):Es(e,t,r,du(e))}catch(n){Es(e,t,{then:function(){},status:`rejected`,reason:n},du())}finally{I.p=a,o!==null&&s.types!==null&&(o.types=s.types),F.T=o}}function gs(){}function _s(e,t,n,r){if(e.tag!==5)throw Error(s(476));var i=vs(e).queue;hs(e,i,t,te,n===null?gs:function(){return ys(e),n(r)})}function vs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:te,baseState:te,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Oo,lastRenderedState:te},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Oo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ys(e){var t=vs(e);t.next===null&&(t=e.alternate.memoizedState),Es(e,t.next.queue,{},du())}function bs(){return Gi(Qf)}function xs(){return Co().memoizedState}function Ss(){return Co().memoizedState}function Cs(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=du();e=Na(n);var r=Pa(t,e,n);r!==null&&(pu(r,t,n),Fa(r,t,n)),t={cache:Qi()},e.payload=t;return}t=t.return}}function ws(e,t,n){var r=du();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Os(e)?ks(t,n):(n=Kr(e,t,n,r),n!==null&&(pu(n,e,r),As(n,t,r)))}function Ts(e,t,n){Es(e,t,n,du())}function Es(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Os(e))ks(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,fr(s,o))return Gr(e,t,i,0),Fl===null&&Wr(),!1}catch{}if(n=Kr(e,t,i,r),n!==null)return pu(n,e,r),As(n,t,r),!0}return!1}function Ds(e,t,n,r){if(r={lane:2,revertLane:ud(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Os(e)){if(t)throw Error(s(479))}else t=Kr(e,n,r,2),t!==null&&pu(t,e,2)}function Os(e){var t=e.alternate;return e===X||t!==null&&t===X}function ks(e,t){oo=ao=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function As(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ge(e,n)}}var js={readContext:Gi,use:Eo,useCallback:po,useContext:po,useEffect:po,useImperativeHandle:po,useLayoutEffect:po,useInsertionEffect:po,useMemo:po,useReducer:po,useRef:po,useState:po,useDebugValue:po,useDeferredValue:po,useTransition:po,useSyncExternalStore:po,useId:po,useHostTransitionStatus:po,useFormState:po,useActionState:po,useOptimistic:po,useMemoCache:po,useCacheRefresh:po};js.useEffectEvent=po;var Ms={readContext:Gi,use:Eo,useCallback:function(e,t){return So().memoizedState=[e,t===void 0?null:t],e},useContext:Gi,useEffect:ns,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),es(4194308,4,cs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return es(4194308,4,e,t)},useInsertionEffect:function(e,t){es(4,2,e,t)},useMemo:function(e,t){var n=So();t=t===void 0?null:t;var r=e();if(so){ke(!0);try{e()}finally{ke(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=So();if(n!==void 0){var i=n(t);if(so){ke(!0);try{n(t)}finally{ke(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=ws.bind(null,X,e),[r.memoizedState,e]},useRef:function(e){var t=So();return e={current:e},t.memoizedState=e},useState:function(e){e=Ro(e);var t=e.queue,n=Ts.bind(null,X,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:us,useDeferredValue:function(e,t){return ps(So(),e,t)},useTransition:function(){var e=Ro(!1);return e=hs.bind(null,X,e.queue,!0,!1),So().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=X,i=So();if(Y){if(n===void 0)throw Error(s(407));n=n()}else{if(n=t(),Fl===null)throw Error(s(349));Q&127||No(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,ns(Fo.bind(null,r,a,e),[e]),r.flags|=2048,Qo(9,{destroy:void 0},Po.bind(null,r,a,n,t),null),n},useId:function(){var e=So(),t=Fl.identifierPrefix;if(Y){var n=_i,r=gi;n=(r&~(1<<32-Ae(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=co++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=fo++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:bs,useFormState:qo,useActionState:qo,useOptimistic:function(e){var t=So();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Ds.bind(null,X,!0,n),n.dispatch=t,[e,t]},useMemoCache:Do,useCacheRefresh:function(){return So().memoizedState=Cs.bind(null,X)},useEffectEvent:function(e){var t=So(),n={impl:e};return t.memoizedState=n,function(){if(Pl&2)throw Error(s(440));return n.impl.apply(void 0,arguments)}}},Ns={readContext:Gi,use:Eo,useCallback:ds,useContext:Gi,useEffect:rs,useImperativeHandle:ls,useInsertionEffect:os,useLayoutEffect:ss,useMemo:fs,useReducer:ko,useRef:$o,useState:function(){return ko(Oo)},useDebugValue:us,useDeferredValue:function(e,t){return ms(Co(),ro.memoizedState,e,t)},useTransition:function(){var e=ko(Oo)[0],t=Co().memoizedState;return[typeof e==`boolean`?e:To(e),t]},useSyncExternalStore:Mo,useId:xs,useHostTransitionStatus:bs,useFormState:Jo,useActionState:Jo,useOptimistic:function(e,t){return zo(Co(),ro,e,t)},useMemoCache:Do,useCacheRefresh:Ss};Ns.useEffectEvent=as;var Ps={readContext:Gi,use:Eo,useCallback:ds,useContext:Gi,useEffect:rs,useImperativeHandle:ls,useInsertionEffect:os,useLayoutEffect:ss,useMemo:fs,useReducer:jo,useRef:$o,useState:function(){return jo(Oo)},useDebugValue:us,useDeferredValue:function(e,t){var n=Co();return ro===null?ps(n,e,t):ms(n,ro.memoizedState,e,t)},useTransition:function(){var e=jo(Oo)[0],t=Co().memoizedState;return[typeof e==`boolean`?e:To(e),t]},useSyncExternalStore:Mo,useId:xs,useHostTransitionStatus:bs,useFormState:Zo,useActionState:Zo,useOptimistic:function(e,t){var n=Co();return ro===null?(n.baseState=e,[e,n.queue.dispatch]):zo(n,ro,e,t)},useMemoCache:Do,useCacheRefresh:Ss};Ps.useEffectEvent=as;function Fs(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:h({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Is={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=du(),i=Na(r);i.payload=t,n!=null&&(i.callback=n),t=Pa(e,i,r),t!==null&&(pu(t,e,r),Fa(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=du(),i=Na(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Pa(e,i,r),t!==null&&(pu(t,e,r),Fa(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=du(),r=Na(n);r.tag=2,t!=null&&(r.callback=t),t=Pa(e,r,n),t!==null&&(pu(t,e,n),Fa(t,e,n))}};function Ls(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!pr(n,r)||!pr(i,a):!0}function Rs(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Is.enqueueReplaceState(t,t.state,null)}function zs(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=h({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Bs(e){Br(e)}function Vs(e){console.error(e)}function Hs(e){Br(e)}function Us(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Ws(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Gs(e,t,n){return n=Na(n),n.tag=3,n.payload={element:null},n.callback=function(){Us(e,t)},n}function Ks(e){return e=Na(e),e.tag=3,e}function qs(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){Ws(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){Ws(t,n,r),typeof i!=`function`&&(tu===null?tu=new Set([this]):tu.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function Js(e,t,n,r,i){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Hi(t,n,i,!0),n=qa.current,n!==null){switch(n.tag){case 31:case 13:return Ja===null?Tu():n.alternate===null&&Hl===0&&(Hl=3),n.flags&=-257,n.flags|=65536,n.lanes=i,r===ha?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Wu(e,r,i)),!1;case 22:return n.flags|=65536,r===ha?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Wu(e,r,i)),!1}throw Error(s(435,n.tag))}return Wu(e,r,i),Tu(),!1}if(Y)return t=qa.current,t===null?(r!==Di&&(t=Error(s(423),{cause:r}),Pi(ci(t,n))),e=e.current.alternate,e.flags|=65536,i&=-i,e.lanes|=i,r=ci(r,n),i=Gs(e.stateNode,r,i),Ia(e,i),Hl!==4&&(Hl=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=i,r!==Di&&(e=Error(s(422),{cause:r}),Pi(ci(e,n)))),!1;var a=Error(s(520),{cause:r});if(a=ci(a,n),Jl===null?Jl=[a]:Jl.push(a),Hl!==4&&(Hl=2),t===null)return!0;r=ci(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=i&-i,n.lanes|=e,e=Gs(n.stateNode,r,e),Ia(n,e),!1;case 1:if(t=n.type,a=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||a!==null&&typeof a.componentDidCatch==`function`&&(tu===null||!tu.has(a))))return n.flags|=65536,i&=-i,n.lanes|=i,i=Ks(i),qs(i,e,n,r),Ia(n,i),!1}n=n.return}while(n!==null);return!1}var Ys=Error(s(461)),Xs=!1;function Zs(e,t,n,r){t.child=e===null?ka(t,null,n,r):Oa(t,e.child,n,r)}function Qs(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return Wi(t),r=ho(e,t,n,o,a,i),s=yo(),e!==null&&!Xs?(bo(e,t,i),Sc(e,t,i)):(Y&&s&&bi(t),t.flags|=1,Zs(e,t,r,i),t.child)}function $s(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!$r(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,ec(e,t,a,r,i)):(e=ni(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Cc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?pr:n,n(o,r)&&e.ref===t.ref)return Sc(e,t,i)}return t.flags|=1,e=ei(a,r),e.ref=t.ref,e.return=t,t.child=e}function ec(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(pr(a,r)&&e.ref===t.ref){if(Xs=!1,t.pendingProps=r=a,Cc(e,i))e.flags&131072&&(Xs=!0);else return t.lanes=e.lanes,Sc(e,t,i)}}return cc(e,t,n,r,i)}function tc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return rc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&ua(t,a===null?null:a.cachePool),a===null?Ga():Wa(t,a),Za(t);else return r=t.lanes=536870912,rc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&ua(t,null),Ga(),Qa(t)):(ua(t,a.cachePool),Wa(t,a),Qa(t),t.memoizedState=null);return Zs(e,t,i,n),t.child}function nc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function rc(e,t,n,r,i){var a=la();return a=a===null?null:{parent:Zi._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&ua(t,null),Ga(),Za(t),e!==null&&Hi(e,t,r,!0),t.childLanes=i,null}function ic(e,t){return t=_c({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function ac(e,t,n){return Oa(t,e.child,null,n),e=ic(t,t.pendingProps),e.flags|=2,$a(t),t.memoizedState=null,e}function oc(e,t,n){var r=t.pendingProps,i=!!(t.flags&128);if(t.flags&=-129,e===null){if(Y){if(r.mode===`hidden`)return e=ic(t,r),t.lanes=536870912,nc(null,e);if(Xa(t),(e=wi)?(e=rf(e,Ei),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:hi===null?null:{id:gi,overflow:_i},retryLane:536870912,hydrationErrors:null},n=ai(e),n.return=t,t.child=n,Ci=t,wi=null)):e=null,e===null)throw Oi(t);return t.lanes=536870912,null}return ic(t,r)}var a=e.memoizedState;if(a!==null){var o=a.dehydrated;if(Xa(t),i){if(t.flags&256)t.flags&=-257,t=ac(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(s(558))}else if(Xs||Hi(e,t,n,!1),i=(n&e.childLanes)!==0,Xs||i){if(r=Fl,r!==null&&(o=Ke(r,n),o!==0&&o!==a.retryLane))throw a.retryLane=o,qr(e,o),pu(r,e,o),Ys;Tu(),t=ac(e,t,n)}else e=a.treeContext,wi=cf(o.nextSibling),Ci=t,Y=!0,Ti=null,Ei=!1,e!==null&&Si(t,e),t=ic(t,r),t.flags|=4096;return t}return e=ei(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function sc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(s(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function cc(e,t,n,r,i){return Wi(t),n=ho(e,t,n,r,void 0,i),r=yo(),e!==null&&!Xs?(bo(e,t,i),Sc(e,t,i)):(Y&&r&&bi(t),t.flags|=1,Zs(e,t,n,i),t.child)}function lc(e,t,n,r,i,a){return Wi(t),t.updateQueue=null,n=_o(t,r,n,i),go(e),r=yo(),e!==null&&!Xs?(bo(e,t,a),Sc(e,t,a)):(Y&&r&&bi(t),t.flags|=1,Zs(e,t,n,a),t.child)}function uc(e,t,n,r,i){if(Wi(t),t.stateNode===null){var a=Xr,o=n.contextType;typeof o==`object`&&o&&(a=Gi(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Is,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},ja(t),o=n.contextType,a.context=typeof o==`object`&&o?Gi(o):Xr,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Fs(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Is.enqueueReplaceState(a,a.state,null),za(t,r,a,i),Ra(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=zs(n,s);a.props=c;var l=a.context,u=n.contextType;o=Xr,typeof u==`object`&&u&&(o=Gi(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Rs(t,a,r,o),Aa=!1;var f=t.memoizedState;a.state=f,za(t,r,a,i),Ra(),l=t.memoizedState,s||f!==l||Aa?(typeof d==`function`&&(Fs(t,n,d,r),l=t.memoizedState),(c=Aa||Ls(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Ma(e,t),o=t.memoizedProps,u=zs(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=Xr,typeof l==`object`&&l&&(c=Gi(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Rs(t,a,r,c),Aa=!1,f=t.memoizedState,a.state=f,za(t,r,a,i),Ra();var p=t.memoizedState;o!==d||f!==p||Aa||e!==null&&e.dependencies!==null&&Ui(e.dependencies)?(typeof s==`function`&&(Fs(t,n,s,r),p=t.memoizedState),(u=Aa||Ls(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&Ui(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,sc(e,t),r=!!(t.flags&128),a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Oa(t,e.child,null,i),t.child=Oa(t,null,n,i)):Zs(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Sc(e,t,i),e}function dc(e,t,n,r){return Mi(),t.flags|=256,Zs(e,t,n,r),t.child}var fc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function pc(e){return{baseLanes:e,cachePool:da()}}function mc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=Kl),e}function hc(e,t,n){var r=t.pendingProps,i=!1,a=!!(t.flags&128),o;if((o=a)||(o=e!==null&&e.memoizedState===null?!1:!!(eo.current&2)),o&&(i=!0,t.flags&=-129),o=!!(t.flags&32),t.flags&=-33,e===null){if(Y){if(i?Ya(t):Qa(t),(e=wi)?(e=rf(e,Ei),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:hi===null?null:{id:gi,overflow:_i},retryLane:536870912,hydrationErrors:null},n=ai(e),n.return=t,t.child=n,Ci=t,wi=null)):e=null,e===null)throw Oi(t);return of(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,i?(Qa(t),i=t.mode,c=_c({mode:`hidden`,children:c},i),r=ri(r,i,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=pc(n),r.childLanes=mc(e,o,n),t.memoizedState=fc,nc(null,r)):(Ya(t),gc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(a)t.flags&256?(Ya(t),t.flags&=-257,t=vc(e,t,n)):t.memoizedState===null?(Qa(t),c=r.fallback,i=t.mode,r=_c({mode:`visible`,children:r.children},i),c=ri(c,i,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Oa(t,e.child,null,n),r=t.child,r.memoizedState=pc(n),r.childLanes=mc(e,o,n),t.memoizedState=fc,t=nc(null,r)):(Qa(t),t.child=e.child,t.flags|=128,t=null);else if(Ya(t),of(c)){if(o=c.nextSibling&&c.nextSibling.dataset,o)var u=o.dgst;o=u,r=Error(s(419)),r.stack=``,r.digest=o,Pi({value:r,source:null,stack:null}),t=vc(e,t,n)}else if(Xs||Hi(e,t,n,!1),o=(n&e.childLanes)!==0,Xs||o){if(o=Fl,o!==null&&(r=Ke(o,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,qr(e,r),pu(o,e,r),Ys;af(c)||Tu(),t=vc(e,t,n)}else af(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,wi=cf(c.nextSibling),Ci=t,Y=!0,Ti=null,Ei=!1,e!==null&&Si(t,e),t=gc(t,r.children),t.flags|=4096);return t}return i?(Qa(t),c=r.fallback,i=t.mode,l=e.child,u=l.sibling,r=ei(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=ri(c,i,n,null),c.flags|=2):c=ei(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,nc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=pc(n):(i=c.cachePool,i===null?i=da():(l=Zi._currentValue,i=i.parent===l?i:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:i}),r.memoizedState=c,r.childLanes=mc(e,o,n),t.memoizedState=fc,nc(e.child,r)):(Ya(t),n=e.child,e=n.sibling,n=ei(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(o=t.deletions,o===null?(t.deletions=[e],t.flags|=16):o.push(e)),t.child=n,t.memoizedState=null,n)}function gc(e,t){return t=_c({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function _c(e,t){return e=Qr(22,e,null,t),e.lanes=0,e}function vc(e,t,n){return Oa(t,e.child,null,n),e=gc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function yc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Bi(e.return,t,n)}function bc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function xc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=eo.current,s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,B(eo,o),Zs(e,t,r,n),r=Y?fi:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&yc(e,n,t);else if(e.tag===19)yc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&to(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),bc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&to(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}bc(t,!0,n,null,a,r);break;case`together`:bc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Sc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Ul|=t.lanes,(n&t.childLanes)===0){if(e!==null){if(Hi(e,t,n,!1),(n&t.childLanes)===0)return null}else return null}if(e!==null&&t.child!==e.child)throw Error(s(153));if(t.child!==null){for(e=t.child,n=ei(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ei(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Cc(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&Ui(e)))}function wc(e,t,n){switch(t.tag){case 3:H(t,t.stateNode.containerInfo),Ri(t,Zi,e.memoizedState.cache),Mi();break;case 27:case 5:se(t);break;case 4:H(t,t.stateNode.containerInfo);break;case 10:Ri(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Xa(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(Ya(t),e=Sc(e,t,n),e===null?null:e.sibling):hc(e,t,n):(Ya(t),t.flags|=128,null);Ya(t);break;case 19:var i=!!(e.flags&128);if(r=(n&t.childLanes)!==0,r||=(Hi(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return xc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),B(eo,eo.current),r)break;return null;case 22:return t.lanes=0,tc(e,t,n,t.pendingProps);case 24:Ri(t,Zi,e.memoizedState.cache)}return Sc(e,t,n)}function Tc(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps)Xs=!0;else{if(!Cc(e,n)&&!(t.flags&128))return Xs=!1,wc(e,t,n);Xs=!!(e.flags&131072)}}else Xs=!1,Y&&t.flags&1048576&&yi(t,fi,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=va(t.elementType),t.type=e,typeof e==`function`)$r(e)?(r=zs(e,r),t.tag=1,t=uc(null,t,e,r,n)):(t.tag=0,t=cc(null,t,e,r,n));else{if(e!=null){var i=e.$$typeof;if(i===w){t.tag=11,t=Qs(null,t,e,r,n);break a}if(i===D){t.tag=14,t=$s(null,t,e,r,n);break a}}throw t=N(e)||e,Error(s(306,t,``))}}return t;case 0:return cc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,i=zs(r,t.pendingProps),uc(e,t,r,i,n);case 3:a:{if(H(t,t.stateNode.containerInfo),e===null)throw Error(s(387));r=t.pendingProps;var a=t.memoizedState;i=a.element,Ma(e,t),za(t,r,null,n);var o=t.memoizedState;if(r=o.cache,Ri(t,Zi,r),r!==a.cache&&Vi(t,[Zi],n,!0),Ra(),r=o.element,a.isDehydrated){if(a={element:r,isDehydrated:!1,cache:o.cache},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){t=dc(e,t,r,n);break a}if(r!==i){i=ci(Error(s(424)),t),Pi(i),t=dc(e,t,r,n);break a}switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(wi=cf(e.firstChild),Ci=t,Y=!0,Ti=null,Ei=!0,n=ka(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Mi(),r===i){t=Sc(e,t,n);break a}Zs(e,t,r,n)}t=t.child}return t;case 26:return sc(e,t),e===null?(n=kf(t.type,null,t.pendingProps,null))?t.memoizedState=n:Y||(n=t.type,e=t.pendingProps,r=Bd(V.current).createElement(n),r[Qe]=t,r[$e]=e,Pd(r,n,e),dt(r),t.stateNode=r):t.memoizedState=kf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return se(t),e===null&&Y&&(r=t.stateNode=ff(t.type,t.pendingProps,V.current),Ci=t,Ei=!0,i=wi,Zd(t.type)?(lf=i,wi=cf(r.firstChild)):wi=i),Zs(e,t,t.pendingProps.children,n),sc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Y&&((i=r=wi)&&(r=tf(r,t.type,t.pendingProps,Ei),r===null?i=!1:(t.stateNode=r,Ci=t,wi=cf(r.firstChild),Ei=!1,i=!0)),i||Oi(t)),se(t),i=t.type,a=t.pendingProps,o=e===null?null:e.memoizedProps,r=a.children,Ud(i,a)?r=null:o!==null&&Ud(i,o)&&(t.flags|=32),t.memoizedState!==null&&(i=ho(e,t,vo,null,null,n),Qf._currentValue=i),sc(e,t),Zs(e,t,r,n),t.child;case 6:return e===null&&Y&&((e=n=wi)&&(n=nf(n,t.pendingProps,Ei),n===null?e=!1:(t.stateNode=n,Ci=t,wi=null,e=!0)),e||Oi(t)),null;case 13:return hc(e,t,n);case 4:return H(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Oa(t,null,r,n):Zs(e,t,r,n),t.child;case 11:return Qs(e,t,t.type,t.pendingProps,n);case 7:return Zs(e,t,t.pendingProps,n),t.child;case 8:return Zs(e,t,t.pendingProps.children,n),t.child;case 12:return Zs(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,Ri(t,t.type,r.value),Zs(e,t,r.children,n),t.child;case 9:return i=t.type._context,r=t.pendingProps.children,Wi(t),i=Gi(i),r=r(i),t.flags|=1,Zs(e,t,r,n),t.child;case 14:return $s(e,t,t.type,t.pendingProps,n);case 15:return ec(e,t,t.type,t.pendingProps,n);case 19:return xc(e,t,n);case 31:return oc(e,t,n);case 22:return tc(e,t,n,t.pendingProps);case 24:return Wi(t),r=Gi(Zi),e===null?(i=la(),i===null&&(i=Fl,a=Qi(),i.pooledCache=a,a.refCount++,a!==null&&(i.pooledCacheLanes|=n),i=a),t.memoizedState={parent:r,cache:i},ja(t),Ri(t,Zi,i)):((e.lanes&n)!==0&&(Ma(e,t),za(t,null,null,n),Ra()),i=e.memoizedState,a=t.memoizedState,i.parent===r?(r=a.cache,Ri(t,Zi,r),r!==i.cache&&Vi(t,[Zi],n,!0)):(i={parent:r,cache:r},t.memoizedState=i,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=i),Ri(t,Zi,r))),Zs(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(s(156,t.tag))}function Ec(e){e.flags|=4}function Dc(e,t,n,r,i){if((t=!!(e.mode&32))&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i){if(e.stateNode.complete)e.flags|=8192;else if(Su())e.flags|=8192;else throw ya=ha,pa}}else e.flags&=-16777217}function Oc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Wf(t)){if(Su())e.flags|=8192;else throw ya=ha,pa}}function kc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:Be(),e.lanes|=t,ql|=t)}function Ac(e,t){if(!Y)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function jc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Mc(e,t,n){var r=t.pendingProps;switch(xi(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return jc(t),null;case 1:return jc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),zi(Zi),oe(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(ji(t)?Ec(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ni())),jc(t),null;case 26:var i=t.type,a=t.memoizedState;return e===null?(Ec(t),a===null?(jc(t),Dc(t,i,null,r,n)):(jc(t),Oc(t,a))):a?a===e.memoizedState?(jc(t),t.flags&=-16777217):(Ec(t),jc(t),Oc(t,a)):(e=e.memoizedProps,e!==r&&Ec(t),jc(t),Dc(t,i,e,r,n)),null;case 27:if(U(t),n=V.current,i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Ec(t);else{if(!r){if(t.stateNode===null)throw Error(s(166));return jc(t),null}e=re.current,ji(t)?ki(t,e):(e=ff(i,r,n),t.stateNode=e,Ec(t))}return jc(t),null;case 5:if(U(t),i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Ec(t);else{if(!r){if(t.stateNode===null)throw Error(s(166));return jc(t),null}if(a=re.current,ji(t))ki(t,a);else{var o=Bd(V.current);switch(a){case 1:a=o.createElementNS(`http://www.w3.org/2000/svg`,i);break;case 2:a=o.createElementNS(`http://www.w3.org/1998/Math/MathML`,i);break;default:switch(i){case`svg`:a=o.createElementNS(`http://www.w3.org/2000/svg`,i);break;case`math`:a=o.createElementNS(`http://www.w3.org/1998/Math/MathML`,i);break;case`script`:a=o.createElement(`div`),a.innerHTML=`<script><\/script>`,a=a.removeChild(a.firstChild);break;case`select`:a=typeof r.is==`string`?o.createElement(`select`,{is:r.is}):o.createElement(`select`),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=typeof r.is==`string`?o.createElement(i,{is:r.is}):o.createElement(i)}}a[Qe]=t,a[$e]=r;a:for(o=t.child;o!==null;){if(o.tag===5||o.tag===6)a.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break a;for(;o.sibling===null;){if(o.return===null||o.return===t)break a;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=a;a:switch(Pd(a,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Ec(t)}}return jc(t),Dc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Ec(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(s(166));if(e=V.current,ji(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=Ci,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[Qe]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||jd(e.nodeValue,n)),e||Oi(t,!0)}else e=Bd(e).createTextNode(r),e[Qe]=t,t.stateNode=e}return jc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=ji(t),n!==null){if(e===null){if(!r)throw Error(s(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(s(557));e[Qe]=t}else Mi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;jc(t),e=!1}else n=Ni(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?($a(t),t):($a(t),null);if(t.flags&128)throw Error(s(558))}return jc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=ji(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(s(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(s(317));i[Qe]=t}else Mi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;jc(t),i=!1}else i=Ni(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?($a(t),t):($a(t),null)}return $a(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),a=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(a=r.memoizedState.cachePool.pool),a!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),kc(t,t.updateQueue),jc(t),null);case 4:return oe(),e===null&&xd(t.stateNode.containerInfo),jc(t),null;case 10:return zi(t.type),jc(t),null;case 19:if(z(eo),r=t.memoizedState,r===null)return jc(t),null;if(i=!!(t.flags&128),a=r.rendering,a===null){if(i)Ac(r,!1);else{if(Hl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(a=to(e),a!==null){for(t.flags|=128,Ac(r,!1),e=a.updateQueue,t.updateQueue=e,kc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ti(n,e),n=n.sibling;return B(eo,eo.current&1|2),Y&&vi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&ve()>$l&&(t.flags|=128,i=!0,Ac(r,!1),t.lanes=4194304)}}else{if(!i){if(e=to(a),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,kc(t,e),Ac(r,!0),r.tail===null&&r.tailMode===`hidden`&&!a.alternate&&!Y)return jc(t),null}else 2*ve()-r.renderingStartTime>$l&&n!==536870912&&(t.flags|=128,i=!0,Ac(r,!1),t.lanes=4194304)}r.isBackwards?(a.sibling=t.child,t.child=a):(e=r.last,e===null?t.child=a:e.sibling=a,r.last=a)}return r.tail===null?(jc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ve(),e.sibling=null,n=eo.current,B(eo,i?n&1|2:n&1),Y&&vi(t,r.treeForkCount),e);case 22:case 23:return $a(t),Ka(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(jc(t),t.subtreeFlags&6&&(t.flags|=8192)):jc(t),n=t.updateQueue,n!==null&&kc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&z(ca),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),zi(Zi),jc(t),null;case 25:return null;case 30:return null}throw Error(s(156,t.tag))}function Nc(e,t){switch(xi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return zi(Zi),oe(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return U(t),null;case 31:if(t.memoizedState!==null){if($a(t),t.alternate===null)throw Error(s(340));Mi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if($a(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(s(340));Mi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return z(eo),null;case 4:return oe(),null;case 10:return zi(t.type),null;case 22:case 23:return $a(t),Ka(),e!==null&&z(ca),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return zi(Zi),null;case 25:return null;default:return null}}function Pc(e,t){switch(xi(t),t.tag){case 3:zi(Zi),oe();break;case 26:case 27:case 5:U(t);break;case 4:oe();break;case 31:t.memoizedState!==null&&$a(t);break;case 13:$a(t);break;case 19:z(eo);break;case 10:zi(t.type);break;case 22:case 23:$a(t),Ka(),e!==null&&z(ca);break;case 24:zi(Zi)}}function Fc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Uu(t,t.return,e)}}function Ic(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Uu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Uu(t,t.return,e)}}function Lc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Va(t,n)}catch(t){Uu(e,e.return,t)}}}function Rc(e,t,n){n.props=zs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Uu(e,t,n)}}function zc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Uu(e,t,n)}}function Bc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Uu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Uu(e,t,n)}else n.current=null}}function Vc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Uu(e,e.return,t)}}function Hc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[$e]=t}catch(t){Uu(e,e.return,t)}}function Uc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function Wc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Uc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Gc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Gt));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Gc(e,t,n),e=e.sibling;e!==null;)Gc(e,t,n),e=e.sibling}function Kc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Kc(e,t,n),e=e.sibling;e!==null;)Kc(e,t,n),e=e.sibling}function qc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[Qe]=e,t[$e]=n}catch(t){Uu(e,e.return,t)}}var Jc=!1,Yc=!1,Xc=!1,Zc=typeof WeakSet==`function`?WeakSet:Set,Qc=null;function $c(e,t){if(e=e.containerInfo,Rd=sp,e=_r(e),vr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break a}var o=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=o+i),f!==a||r!==0&&f.nodeType!==3||(l=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=o),p===a&&++d===r&&(l=o),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,Qc=t;Qc!==null;)if(t=Qc,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,Qc=e;else for(;Qc!==null;){switch(t=Qc,a=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)i=e[n],i.ref.impl=i.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&a!==null){e=void 0,n=t,i=a.memoizedProps,a=a.memoizedState,r=n.stateNode;try{var h=zs(n.type,i);e=r.getSnapshotBeforeUpdate(h,a),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){Uu(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)ef(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:ef(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(s(163))}if(e=t.sibling,e!==null){e.return=t.return,Qc=e;break}Qc=t.return}}function el(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:hl(e,n),r&4&&Fc(5,n);break;case 1:if(hl(e,n),r&4){if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Uu(n,n.return,e)}else{var i=zs(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Uu(n,n.return,e)}}}r&64&&Lc(n),r&512&&zc(n,n.return);break;case 3:if(hl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Va(e,t)}catch(e){Uu(n,n.return,e)}}break;case 27:t===null&&r&4&&qc(n);case 26:case 5:hl(e,n),t===null&&r&4&&Vc(n),r&512&&zc(n,n.return);break;case 12:hl(e,n);break;case 31:hl(e,n),r&4&&ol(e,n);break;case 13:hl(e,n),r&4&&sl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=qu.bind(null,n),sf(e,n))));break;case 22:if(r=n.memoizedState!==null||Jc,!r){t=t!==null&&t.memoizedState!==null||Yc,i=Jc;var a=Yc;Jc=r,(Yc=t)&&!a?_l(e,n,!!(n.subtreeFlags&8772)):hl(e,n),Jc=i,Yc=a}break;case 30:break;default:hl(e,n)}}function tl(e){var t=e.alternate;t!==null&&(e.alternate=null,tl(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&ot(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var nl=null,rl=!1;function il(e,t,n){for(n=n.child;n!==null;)al(e,t,n),n=n.sibling}function al(e,t,n){if(Oe&&typeof Oe.onCommitFiberUnmount==`function`)try{Oe.onCommitFiberUnmount(De,n)}catch{}switch(n.tag){case 26:Yc||Bc(n,t),il(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:Yc||Bc(n,t);var r=nl,i=rl;Zd(n.type)&&(nl=n.stateNode,rl=!1),il(e,t,n),pf(n.stateNode),nl=r,rl=i;break;case 5:Yc||Bc(n,t);case 6:if(r=nl,i=rl,nl=null,il(e,t,n),nl=r,rl=i,nl!==null){if(rl)try{(nl.nodeType===9?nl.body:nl.nodeName===`HTML`?nl.ownerDocument.body:nl).removeChild(n.stateNode)}catch(e){Uu(n,t,e)}else try{nl.removeChild(n.stateNode)}catch(e){Uu(n,t,e)}}break;case 18:nl!==null&&(rl?(e=nl,Qd(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Np(e)):Qd(nl,n.stateNode));break;case 4:r=nl,i=rl,nl=n.stateNode.containerInfo,rl=!0,il(e,t,n),nl=r,rl=i;break;case 0:case 11:case 14:case 15:Ic(2,n,t),Yc||Ic(4,n,t),il(e,t,n);break;case 1:Yc||(Bc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Rc(n,t,r)),il(e,t,n);break;case 21:il(e,t,n);break;case 22:Yc=(r=Yc)||n.memoizedState!==null,il(e,t,n),Yc=r;break;default:il(e,t,n)}}function ol(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Np(e)}catch(e){Uu(t,t.return,e)}}}function sl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Np(e)}catch(e){Uu(t,t.return,e)}}function cl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new Zc),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new Zc),t;default:throw Error(s(435,e.tag))}}function ll(e,t){var n=cl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Ju.bind(null,e,t);t.then(r,r)}})}function ul(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r],a=e,o=t,c=o;a:for(;c!==null;){switch(c.tag){case 27:if(Zd(c.type)){nl=c.stateNode,rl=!1;break a}break;case 5:nl=c.stateNode,rl=!1;break a;case 3:case 4:nl=c.stateNode.containerInfo,rl=!0;break a}c=c.return}if(nl===null)throw Error(s(160));al(a,o,i),nl=null,rl=!1,a=i.alternate,a!==null&&(a.return=null),i.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)fl(t,e),t=t.sibling}var dl=null;function fl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:ul(t,e),pl(e),r&4&&(Ic(3,e,e.return),Fc(3,e),Ic(5,e,e.return));break;case 1:ul(t,e),pl(e),r&512&&(Yc||n===null||Bc(n,n.return)),r&64&&Jc&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var i=dl;if(ul(t,e),pl(e),r&512&&(Yc||n===null||Bc(n,n.return)),r&4){var a=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null){if(r===null){if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,i=i.ownerDocument||i;b:switch(r){case`title`:a=i.getElementsByTagName(`title`)[0],(!a||a[at]||a[Qe]||a.namespaceURI===`http://www.w3.org/2000/svg`||a.hasAttribute(`itemprop`))&&(a=i.createElement(r),i.head.insertBefore(a,i.querySelector(`head > title`))),Pd(a,r,n),a[Qe]=e,dt(a),r=a;break a;case`link`:var o=Vf(`link`,`href`,i).get(r+(n.href||``));if(o){for(var c=0;c<o.length;c++)if(a=o[c],a.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&a.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&a.getAttribute(`title`)===(n.title==null?null:n.title)&&a.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){o.splice(c,1);break b}}a=i.createElement(r),Pd(a,r,n),i.head.appendChild(a);break;case`meta`:if(o=Vf(`meta`,`content`,i).get(r+(n.content||``))){for(c=0;c<o.length;c++)if(a=o[c],a.getAttribute(`content`)===(n.content==null?null:``+n.content)&&a.getAttribute(`name`)===(n.name==null?null:n.name)&&a.getAttribute(`property`)===(n.property==null?null:n.property)&&a.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&a.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){o.splice(c,1);break b}}a=i.createElement(r),Pd(a,r,n),i.head.appendChild(a);break;default:throw Error(s(468,r))}a[Qe]=e,dt(a),r=a}e.stateNode=r}else Hf(i,e.type,e.stateNode)}else e.stateNode=If(i,r,e.memoizedProps)}else a===r?r===null&&e.stateNode!==null&&Hc(e,e.memoizedProps,n.memoizedProps):(a===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):a.count--,r===null?Hf(i,e.type,e.stateNode):If(i,r,e.memoizedProps))}break;case 27:ul(t,e),pl(e),r&512&&(Yc||n===null||Bc(n,n.return)),n!==null&&r&4&&Hc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(ul(t,e),pl(e),r&512&&(Yc||n===null||Bc(n,n.return)),e.flags&32){i=e.stateNode;try{Lt(i,``)}catch(t){Uu(e,e.return,t)}}r&4&&e.stateNode!=null&&(i=e.memoizedProps,Hc(e,i,n===null?i:n.memoizedProps)),r&1024&&(Xc=!0);break;case 6:if(ul(t,e),pl(e),r&4){if(e.stateNode===null)throw Error(s(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){Uu(e,e.return,t)}}break;case 3:if(Bf=null,i=dl,dl=gf(t.containerInfo),ul(t,e),dl=i,pl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Np(t.containerInfo)}catch(t){Uu(e,e.return,t)}Xc&&(Xc=!1,ml(e));break;case 4:r=dl,dl=gf(e.stateNode.containerInfo),ul(t,e),pl(e),dl=r;break;case 12:ul(t,e),pl(e);break;case 31:ul(t,e),pl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ll(e,r)));break;case 13:ul(t,e),pl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(Zl=ve()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ll(e,r)));break;case 22:i=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=Jc,d=Yc;if(Jc=u||i,Yc=d||l,ul(t,e),Yc=d,Jc=u,pl(e),r&8192)a:for(t=e.stateNode,t._visibility=i?t._visibility&-2:t._visibility|1,i&&(n===null||l||Jc||Yc||gl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(a=l.stateNode,i)o=a.style,typeof o.setProperty==`function`?o.setProperty(`display`,`none`,`important`):o.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){Uu(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=i?``:l.memoizedProps}catch(e){Uu(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;i?$d(m,!0):$d(l.stateNode,!1)}catch(e){Uu(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,ll(e,n))));break;case 19:ul(t,e),pl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ll(e,r)));break;case 30:break;case 21:break;default:ul(t,e),pl(e)}}function pl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Uc(r)){n=r;break}r=r.return}if(n==null)throw Error(s(160));switch(n.tag){case 27:var i=n.stateNode;Kc(e,Wc(e),i);break;case 5:var a=n.stateNode;n.flags&32&&(Lt(a,``),n.flags&=-33),Kc(e,Wc(e),a);break;case 3:case 4:var o=n.stateNode.containerInfo;Gc(e,Wc(e),o);break;default:throw Error(s(161))}}catch(t){Uu(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function ml(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;ml(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function hl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)el(e,t.alternate,t),t=t.sibling}function gl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Ic(4,t,t.return),gl(t);break;case 1:Bc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Rc(t,t.return,n),gl(t);break;case 27:pf(t.stateNode);case 26:case 5:Bc(t,t.return),gl(t);break;case 22:t.memoizedState===null&&gl(t);break;case 30:gl(t);break;default:gl(t)}e=e.sibling}}function _l(e,t,n){for(n&&=!!(t.subtreeFlags&8772),t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:_l(i,a,n),Fc(4,a);break;case 1:if(_l(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Uu(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)Ba(c[i],s)}catch(e){Uu(r,r.return,e)}}n&&o&64&&Lc(a),zc(a,a.return);break;case 27:qc(a);case 26:case 5:_l(i,a,n),n&&r===null&&o&4&&Vc(a),zc(a,a.return);break;case 12:_l(i,a,n);break;case 31:_l(i,a,n),n&&o&4&&ol(i,a);break;case 13:_l(i,a,n),n&&o&4&&sl(i,a);break;case 22:a.memoizedState===null&&_l(i,a,n),zc(a,a.return);break;case 30:break;default:_l(i,a,n)}t=t.sibling}}function vl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&$i(n))}function yl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&$i(e))}function bl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)xl(e,t,n,r),t=t.sibling}function xl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:bl(e,t,n,r),i&2048&&Fc(9,t);break;case 1:bl(e,t,n,r);break;case 3:bl(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&$i(e)));break;case 12:if(i&2048){bl(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){Uu(t,t.return,e)}}else bl(e,t,n,r);break;case 31:bl(e,t,n,r);break;case 13:bl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?bl(e,t,n,r):(a._visibility|=2,Sl(e,t,n,r,!!(t.subtreeFlags&10256)||!1)):a._visibility&2?bl(e,t,n,r):Cl(e,t),i&2048&&vl(o,t);break;case 24:bl(e,t,n,r),i&2048&&yl(t.alternate,t);break;default:bl(e,t,n,r)}}function Sl(e,t,n,r,i){for(i&&=!!(t.subtreeFlags&10256)||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Sl(a,o,s,c,i),Fc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Sl(a,o,s,c,i)):u._visibility&2?Sl(a,o,s,c,i):Cl(a,o),i&&l&2048&&vl(o.alternate,o);break;case 24:Sl(a,o,s,c,i),i&&l&2048&&yl(o.alternate,o);break;default:Sl(a,o,s,c,i)}t=t.sibling}}function Cl(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Cl(n,r),i&2048&&vl(r.alternate,r);break;case 24:Cl(n,r),i&2048&&yl(r.alternate,r);break;default:Cl(n,r)}t=t.sibling}}var wl=8192;function Tl(e,t,n){if(e.subtreeFlags&wl)for(e=e.child;e!==null;)El(e,t,n),e=e.sibling}function El(e,t,n){switch(e.tag){case 26:Tl(e,t,n),e.flags&wl&&e.memoizedState!==null&&Gf(n,dl,e.memoizedState,e.memoizedProps);break;case 5:Tl(e,t,n);break;case 3:case 4:var r=dl;dl=gf(e.stateNode.containerInfo),Tl(e,t,n),dl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=wl,wl=16777216,Tl(e,t,n),wl=r):Tl(e,t,n));break;default:Tl(e,t,n)}}function Dl(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Ol(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];Qc=r,jl(r,e)}Dl(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)kl(e),e=e.sibling}function kl(e){switch(e.tag){case 0:case 11:case 15:Ol(e),e.flags&2048&&Ic(9,e,e.return);break;case 3:Ol(e);break;case 12:Ol(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Al(e)):Ol(e);break;default:Ol(e)}}function Al(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];Qc=r,jl(r,e)}Dl(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Ic(8,t,t.return),Al(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Al(t));break;default:Al(t)}e=e.sibling}}function jl(e,t){for(;Qc!==null;){var n=Qc;switch(n.tag){case 0:case 11:case 15:Ic(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:$i(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,Qc=r;else a:for(n=e;Qc!==null;){r=Qc;var i=r.sibling,a=r.return;if(tl(r),r===n){Qc=null;break a}if(i!==null){i.return=a,Qc=i;break a}Qc=a}}}var Ml={getCacheForType:function(e){var t=Gi(Zi),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Gi(Zi).controller.signal}},Nl=typeof WeakMap==`function`?WeakMap:Map,Pl=0,Fl=null,Z=null,Q=0,Il=0,Ll=null,Rl=!1,zl=!1,Bl=!1,Vl=0,Hl=0,Ul=0,Wl=0,Gl=0,Kl=0,ql=0,Jl=null,Yl=null,Xl=!1,Zl=0,Ql=0,$l=1/0,eu=null,tu=null,nu=0,ru=null,iu=null,au=0,ou=0,su=null,cu=null,lu=0,uu=null;function du(){return Pl&2&&Q!==0?Q&-Q:F.T===null?Ye():ud()}function fu(){if(Kl===0){if(!(Q&536870912)||Y){var e=Pe;Pe<<=1,!(Pe&3932160)&&(Pe=262144),Kl=e}else Kl=536870912}return e=qa.current,e!==null&&(e.flags|=32),Kl}function pu(e,t,n){(e===Fl&&(Il===2||Il===9)||e.cancelPendingCommit!==null)&&(bu(e,0),_u(e,Q,Kl,!1)),He(e,n),(!(Pl&2)||e!==Fl)&&(e===Fl&&(!(Pl&2)&&(Wl|=n),Hl===4&&_u(e,Q,Kl,!1)),nd(e))}function mu(e,t,n){if(Pl&6)throw Error(s(327));var r=!n&&!(t&127)&&(t&e.expiredLanes)===0||Re(e,t),i=r?Ou(e,t):Eu(e,t,!0),a=r;do{if(i===0){zl&&!r&&_u(e,t,0,!1);break}if(n=e.current.alternate,a&&!gu(n)){i=Eu(e,t,!1),a=!1;continue}if(i===2){if(a=t,e.errorRecoveryDisabledLanes&a)var o=0;else o=e.pendingLanes&-536870913,o=o===0?o&536870912?536870912:0:o;if(o!==0){t=o;a:{var c=e;i=Jl;var l=c.current.memoizedState.isDehydrated;if(l&&(bu(c,o).flags|=256),o=Eu(c,o,!1),o!==2){if(Bl&&!l){c.errorRecoveryDisabledLanes|=a,Wl|=a,i=4;break a}a=Yl,Yl=i,a!==null&&(Yl===null?Yl=a:Yl.push.apply(Yl,a))}i=o}if(a=!1,i!==2)continue}}if(i===1){bu(e,0),_u(e,t,0,!0);break}a:{switch(r=e,a=i,a){case 0:case 1:throw Error(s(345));case 4:if((t&4194048)!==t)break;case 6:_u(r,t,Kl,!Rl);break a;case 2:Yl=null;break;case 3:case 5:break;default:throw Error(s(329))}if((t&62914560)===t&&(i=Zl+300-ve(),10<i)){if(_u(r,t,Kl,!Rl),Le(r,0,!0)!==0)break a;au=t,r.timeoutHandle=Kd(hu.bind(null,r,n,Yl,eu,Xl,t,Kl,Wl,ql,Rl,a,`Throttled`,-0,0),i);break a}hu(r,n,Yl,eu,Xl,t,Kl,Wl,ql,Rl,a,null,-0,0)}break}while(1);nd(e)}function hu(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Gt},El(t,a,d);var m=(a&62914560)===a?Zl-ve():(a&4194048)===a?Ql-ve():0;if(m=qf(d,m),m!==null){au=a,e.cancelPendingCommit=m(Fu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),_u(e,a,o,!l);return}}Fu(e,t,a,n,r,i,o,s,c)}function gu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!fr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function _u(e,t,n,r){t&=~Gl,t&=~Wl,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Ae(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&We(e,n,t)}function vu(){return Pl&6?!0:(rd(0,!1),!1)}function yu(){if(Z!==null){if(Il===0)var e=Z.return;else e=Z,Li=Ii=null,xo(e),Sa=null,Ca=0,e=Z;for(;e!==null;)Pc(e.alternate,e),e=e.return;Z=null}}function bu(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,qd(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),au=0,yu(),Fl=e,Z=n=ei(e.current,null),Q=t,Il=0,Ll=null,Rl=!1,zl=Re(e,t),Bl=!1,ql=Kl=Gl=Wl=Ul=Hl=0,Yl=Jl=null,Xl=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Ae(r),a=1<<i;t|=e[i],r&=~a}return Vl=t,Wr(),n}function xu(e,t){X=null,F.H=js,t===fa||t===ma?(t=ba(),Il=3):t===pa?(t=ba(),Il=4):Il=t===Ys?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Ll=t,Z===null&&(Hl=1,Us(e,ci(t,e.current)))}function Su(){var e=qa.current;return e===null?!0:(Q&4194048)===Q?Ja===null:(Q&62914560)===Q||Q&536870912?e===Ja:!1}function Cu(){var e=F.H;return F.H=js,e===null?js:e}function wu(){var e=F.A;return F.A=Ml,e}function Tu(){Hl=4,Rl||(Q&4194048)!==Q&&qa.current!==null||(zl=!0),!(Ul&134217727)&&!(Wl&134217727)||Fl===null||_u(Fl,Q,Kl,!1)}function Eu(e,t,n){var r=Pl;Pl|=2;var i=Cu(),a=wu();(Fl!==e||Q!==t)&&(eu=null,bu(e,t)),t=!1;var o=Hl;a:do try{if(Il!==0&&Z!==null){var s=Z,c=Ll;switch(Il){case 8:yu(),o=6;break a;case 3:case 2:case 9:case 6:qa.current===null&&(t=!0);var l=Il;if(Il=0,Ll=null,Mu(e,s,c,l),n&&zl){o=0;break a}break;default:l=Il,Il=0,Ll=null,Mu(e,s,c,l)}}Du(),o=Hl;break}catch(t){xu(e,t)}while(1);return t&&e.shellSuspendCounter++,Li=Ii=null,Pl=r,F.H=i,F.A=a,Z===null&&(Fl=null,Q=0,Wr()),o}function Du(){for(;Z!==null;)Au(Z)}function Ou(e,t){var n=Pl;Pl|=2;var r=Cu(),i=wu();Fl!==e||Q!==t?(eu=null,$l=ve()+500,bu(e,t)):zl=Re(e,t);a:do try{if(Il!==0&&Z!==null){t=Z;var a=Ll;b:switch(Il){case 1:Il=0,Ll=null,Mu(e,t,a,1);break;case 2:case 9:if(ga(a)){Il=0,Ll=null,ju(t);break}t=function(){Il!==2&&Il!==9||Fl!==e||(Il=7),nd(e)},a.then(t,t);break a;case 3:Il=7;break a;case 4:Il=5;break a;case 7:ga(a)?(Il=0,Ll=null,ju(t)):(Il=0,Ll=null,Mu(e,t,a,7));break;case 5:var o=null;switch(Z.tag){case 26:o=Z.memoizedState;case 5:case 27:var c=Z;if(o?Wf(o):c.stateNode.complete){Il=0,Ll=null;var l=c.sibling;if(l!==null)Z=l;else{var u=c.return;u===null?Z=null:(Z=u,Nu(u))}break b}}Il=0,Ll=null,Mu(e,t,a,5);break;case 6:Il=0,Ll=null,Mu(e,t,a,6);break;case 8:yu(),Hl=6;break a;default:throw Error(s(462))}}ku();break}catch(t){xu(e,t)}while(1);return Li=Ii=null,F.H=r,F.A=i,Pl=n,Z===null?(Fl=null,Q=0,Wr(),Hl):0}function ku(){for(;Z!==null&&!ge();)Au(Z)}function Au(e){var t=Tc(e.alternate,e,Vl);e.memoizedProps=e.pendingProps,t===null?Nu(e):Z=t}function ju(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=lc(n,t,t.pendingProps,t.type,void 0,Q);break;case 11:t=lc(n,t,t.pendingProps,t.type.render,t.ref,Q);break;case 5:xo(t);default:Pc(n,t),t=Z=ti(t,Vl),t=Tc(n,t,Vl)}e.memoizedProps=e.pendingProps,t===null?Nu(e):Z=t}function Mu(e,t,n,r){Li=Ii=null,xo(t),Sa=null,Ca=0;var i=t.return;try{if(Js(e,i,t,n,Q)){Hl=1,Us(e,ci(n,e.current)),Z=null;return}}catch(t){if(i!==null)throw Z=i,t;Hl=1,Us(e,ci(n,e.current)),Z=null;return}t.flags&32768?(Y||r===1?e=!0:zl||Q&536870912?e=!1:(Rl=e=!0,(r===2||r===9||r===3||r===6)&&(r=qa.current,r!==null&&r.tag===13&&(r.flags|=16384))),Pu(t,e)):Nu(t)}function Nu(e){var t=e;do{if(t.flags&32768){Pu(t,Rl);return}e=t.return;var n=Mc(t.alternate,t,Vl);if(n!==null){Z=n;return}if(t=t.sibling,t!==null){Z=t;return}Z=t=e}while(t!==null);Hl===0&&(Hl=5)}function Pu(e,t){do{var n=Nc(e.alternate,e);if(n!==null){n.flags&=32767,Z=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){Z=e;return}Z=e=n}while(e!==null);Hl=6,Z=null}function Fu(e,t,n,r,i,a,o,c,l){e.cancelPendingCommit=null;do Bu();while(nu!==0);if(Pl&6)throw Error(s(327));if(t!==null){if(t===e.current)throw Error(s(177));if(a=t.lanes|t.childLanes,a|=Ur,Ue(e,n,a,o,c,l),e===Fl&&(Z=Fl=null,Q=0),iu=t,ru=e,au=n,ou=a,su=i,cu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,Yu(Se,function(){return Vu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=!!(t.flags&13878),t.subtreeFlags&13878||r){r=F.T,F.T=null,i=I.p,I.p=2,o=Pl,Pl|=4;try{$c(e,t,n)}finally{Pl=o,I.p=i,F.T=r}}nu=1,Iu(),Lu(),Ru()}}function Iu(){if(nu===1){nu=0;var e=ru,t=iu,n=!!(t.flags&13878);if(t.subtreeFlags&13878||n){n=F.T,F.T=null;var r=I.p;I.p=2;var i=Pl;Pl|=4;try{fl(t,e);var a=zd,o=_r(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&gr(s.ownerDocument.documentElement,s)){if(c!==null&&vr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=hr(s,h),v=hr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}sp=!!Rd,zd=Rd=null}finally{Pl=i,I.p=r,F.T=n}}e.current=t,nu=2}}function Lu(){if(nu===2){nu=0;var e=ru,t=iu,n=!!(t.flags&8772);if(t.subtreeFlags&8772||n){n=F.T,F.T=null;var r=I.p;I.p=2;var i=Pl;Pl|=4;try{el(e,t.alternate,t)}finally{Pl=i,I.p=r,F.T=n}}nu=3}}function Ru(){if(nu===4||nu===3){nu=0,_e();var e=ru,t=iu,n=au,r=cu;t.subtreeFlags&10256||t.flags&10256?nu=5:(nu=0,iu=ru=null,zu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(tu=null),Je(n),t=t.stateNode,Oe&&typeof Oe.onCommitFiberRoot==`function`)try{Oe.onCommitFiberRoot(De,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=F.T,i=I.p,I.p=2,F.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{F.T=t,I.p=i}}au&3&&Bu(),nd(e),i=e.pendingLanes,n&261930&&i&42?e===uu?lu++:(lu=0,uu=e):lu=0,rd(0,!1)}}function zu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,$i(t)))}function Bu(){return Iu(),Lu(),Ru(),Vu()}function Vu(){if(nu!==5)return!1;var e=ru,t=ou;ou=0;var n=Je(au),r=F.T,i=I.p;try{I.p=32>n?32:n,F.T=null,n=su,su=null;var a=ru,o=au;if(nu=0,iu=ru=null,au=0,Pl&6)throw Error(s(331));var c=Pl;if(Pl|=4,kl(a.current),xl(a,a.current,o,n),Pl=c,rd(0,!1),Oe&&typeof Oe.onPostCommitFiberRoot==`function`)try{Oe.onPostCommitFiberRoot(De,a)}catch{}return!0}finally{I.p=i,F.T=r,zu(e,t)}}function Hu(e,t,n){t=ci(n,t),t=Gs(e.stateNode,t,2),e=Pa(e,t,2),e!==null&&(He(e,2),nd(e))}function Uu(e,t,n){if(e.tag===3)Hu(e,e,n);else for(;t!==null;){if(t.tag===3){Hu(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(tu===null||!tu.has(r))){e=ci(n,e),n=Ks(2),r=Pa(t,n,2),r!==null&&(qs(n,r,t,e),He(r,2),nd(r));break}}t=t.return}}function Wu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Nl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Bl=!0,i.add(n),e=Gu.bind(null,e,t,n),t.then(e,e))}function Gu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Fl===e&&(Q&n)===n&&(Hl===4||Hl===3&&(Q&62914560)===Q&&300>ve()-Zl?!(Pl&2)&&bu(e,0):Gl|=n,ql===Q&&(ql=0)),nd(e)}function Ku(e,t){t===0&&(t=Be()),e=qr(e,t),e!==null&&(He(e,t),nd(e))}function qu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ku(e,n)}function Ju(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(s(314))}r!==null&&r.delete(t),Ku(e,n)}function Yu(e,t){return me(e,t)}var Xu=null,Zu=null,Qu=!1,$u=!1,ed=!1,td=0;function nd(e){e!==Zu&&e.next===null&&(Zu===null?Xu=Zu=e:Zu=Zu.next=e),$u=!0,Qu||(Qu=!0,ld())}function rd(e,t){if(!ed&&$u){ed=!0;do for(var n=!1,r=Xu;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Ae(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,cd(r,a))}else a=Q,a=Le(r,r===Fl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Re(r,a)||(n=!0,cd(r,a))}r=r.next}while(n);ed=!1}}function id(){ad()}function ad(){$u=Qu=!1;var e=0;td!==0&&Gd()&&(e=td);for(var t=ve(),n=null,r=Xu;r!==null;){var i=r.next,a=od(r,t);a===0?(r.next=null,n===null?Xu=i:n.next=i,i===null&&(Zu=n)):(n=r,(e!==0||a&3)&&($u=!0)),r=i}nu!==0&&nu!==5||rd(e,!1),td!==0&&(td=0)}function od(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Ae(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=ze(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Fl,n=Q,n=Le(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(Il===2||Il===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&he(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||Re(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&he(r),Je(n)){case 2:case 8:n=xe;break;case 32:n=Se;break;case 268435456:n=we;break;default:n=Se}return r=sd.bind(null,e),n=me(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&he(r),e.callbackPriority=2,e.callbackNode=null,2}function sd(e,t){if(nu!==0&&nu!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Bu()&&e.callbackNode!==n)return null;var r=Q;return r=Le(e,e===Fl?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(mu(e,r,t),od(e,ve()),e.callbackNode!=null&&e.callbackNode===n?sd.bind(null,e):null)}function cd(e,t){if(Bu())return null;mu(e,t,!0)}function ld(){Yd(function(){Pl&6?me(be,id):ad()})}function ud(){if(td===0){var e=na;e===0&&(e=Ne,Ne<<=1,!(Ne&261888)&&(Ne=256)),td=e}return td}function dd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:Wt(``+e)}function fd(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function pd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=dd((i[$e]||null).action),o=r.submitter;o&&(t=(t=o[$e]||null)?dd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new fn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(td!==0){var e=o?fd(i,o):new FormData(i);_s(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?fd(i,o):new FormData(i),_s(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var md=0;md<Rr.length;md++){var hd=Rr[md];zr(hd.toLowerCase(),`on`+(hd[0].toUpperCase()+hd.slice(1)))}zr(Ar,`onAnimationEnd`),zr(jr,`onAnimationIteration`),zr(Mr,`onAnimationStart`),zr(`dblclick`,`onDoubleClick`),zr(`focusin`,`onFocus`),zr(`focusout`,`onBlur`),zr(Nr,`onTransitionRun`),zr(Pr,`onTransitionStart`),zr(Fr,`onTransitionCancel`),zr(Ir,`onTransitionEnd`),ht(`onMouseEnter`,[`mouseout`,`mouseover`]),ht(`onMouseLeave`,[`mouseout`,`mouseover`]),ht(`onPointerEnter`,[`pointerout`,`pointerover`]),ht(`onPointerLeave`,[`pointerout`,`pointerover`]),mt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),mt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),mt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),mt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),mt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),mt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var gd=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),_d=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(gd));function vd(e,t){t=!!(t&4);for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Br(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Br(e)}i.currentTarget=null,a=c}}}}function $(e,t){var n=t[tt];n===void 0&&(n=t[tt]=new Set);var r=e+`__bubble`;n.has(r)||(Sd(t,e,2,!1),n.add(r))}function yd(e,t,n){var r=0;t&&(r|=4),Sd(n,e,r,t)}var bd=`_reactListening`+Math.random().toString(36).slice(2);function xd(e){if(!e[bd]){e[bd]=!0,ft.forEach(function(t){t!==`selectionchange`&&(_d.has(t)||yd(t,!1,e),yd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[bd]||(t[bd]=!0,yd(`selectionchange`,!1,t))}}function Sd(e,t,n,r){switch(mp(t)){case 2:var i=cp;break;case 8:i=lp;break;default:i=up}n=i.bind(null,t,n,e),i=void 0,!tn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Cd(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var o=r.tag;if(o===3||o===4){var s=r.stateNode.containerInfo;if(s===i)break;if(o===4)for(o=r.return;o!==null;){var c=o.tag;if((c===3||c===4)&&o.stateNode.containerInfo===i)return;o=o.return}for(;s!==null;){if(o=st(s),o===null)return;if(c=o.tag,c===5||c===6||c===26||c===27){r=a=o;continue a}s=s.parentNode}}r=r.return}Qt(function(){var r=a,i=qt(n),o=[];a:{var s=Lr.get(e);if(s!==void 0){var c=fn,u=e;switch(e){case`keypress`:if(cn(n)===0)break a;case`keydown`:case`keyup`:c=kn;break;case`focusin`:u=`focus`,c=J;break;case`focusout`:u=`blur`,c=J;break;case`beforeblur`:case`afterblur`:c=J;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:c=yn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:c=bn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:c=jn;break;case Ar:case jr:case Mr:c=xn;break;case Ir:c=Mn;break;case`scroll`:case`scrollend`:c=mn;break;case`wheel`:c=Nn;break;case`copy`:case`cut`:case`paste`:c=Sn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:c=An;break;case`toggle`:case`beforetoggle`:c=Pn}var d=!!(t&4),f=!d&&(e===`scroll`||e===`scrollend`),p=d?s===null?null:s+`Capture`:s;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=$t(m,p),g!=null&&d.push(wd(m,g,h))),f)break;m=m.return}0<d.length&&(s=new c(s,u,null,n,i),o.push({event:s,listeners:d}))}}if(!(t&7)){a:{if(s=e===`mouseover`||e===`pointerover`,c=e===`mouseout`||e===`pointerout`,s&&n!==Kt&&(u=n.relatedTarget||n.fromElement)&&(st(u)||u[et]))break a;if((c||s)&&(s=i.window===i?i:(s=i.ownerDocument)?s.defaultView||s.parentWindow:window,c?(u=n.relatedTarget||n.toElement,c=r,u=u?st(u):null,u!==null&&(f=l(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(c=null,u=r),c!==u)){if(d=yn,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=An,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=c==null?s:lt(c),h=u==null?s:lt(u),s=new d(g,m+`leave`,c,n,i),s.target=f,s.relatedTarget=h,g=null,st(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,c&&u)b:{for(d=Ed,p=c,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;c!==null&&Dd(o,s,c,d,!1),u!==null&&f!==null&&Dd(o,f,u,d,!0)}}a:{if(s=r?lt(r):window,c=s.nodeName&&s.nodeName.toLowerCase(),c===`select`||c===`input`&&s.type===`file`)var v=er;else if(Jn(s)){if(tr)v=ur;else{v=cr;var y=sr}}else c=s.nodeName,!c||c.toLowerCase()!==`input`||s.type!==`checkbox`&&s.type!==`radio`?r&&Vt(r.elementType)&&(v=er):v=lr;if(v&&=v(e,r)){Yn(o,v,n,i);break a}y&&y(e,s,r),e===`focusout`&&r&&s.type===`number`&&r.memoizedProps.value!=null&&Nt(s,`number`,s.value)}switch(y=r?lt(r):window,e){case`focusin`:(Jn(y)||y.contentEditable===`true`)&&(br=y,xr=r,Sr=null);break;case`focusout`:Sr=xr=br=null;break;case`mousedown`:Cr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Cr=!1,wr(o,n,i);break;case`selectionchange`:if(yr)break;case`keydown`:case`keyup`:wr(o,n,i)}var b;if(In)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else Wn?Hn(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(zn&&n.locale!==`ko`&&(Wn||x!==`onCompositionStart`?x===`onCompositionEnd`&&Wn&&(b=sn()):(rn=i,an=`value`in rn?rn.value:rn.textContent,Wn=!0)),y=Td(r,x),0<y.length&&(x=new Cn(x,e,null,n,i),o.push({event:x,listeners:y}),b?x.data=b:(b=Un(n),b!==null&&(x.data=b)))),(b=Rn?Gn(e,n):Kn(e,n))&&(x=Td(r,`onBeforeInput`),0<x.length&&(y=new Cn(`onBeforeInput`,`beforeinput`,null,n,i),o.push({event:y,listeners:x}),y.data=b)),pd(o,e,r,n,i)}vd(o,t)})}function wd(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Td(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=$t(e,n),i!=null&&r.unshift(wd(e,i,a)),i=$t(e,t),i!=null&&r.push(wd(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Ed(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Dd(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=$t(n,a),l!=null&&o.unshift(wd(n,l,c))):i||(l=$t(n,a),l!=null&&o.push(wd(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Od=/\r\n?/g,kd=/\u0000|\uFFFD/g;function Ad(e){return(typeof e==`string`?e:``+e).replace(Od,`
|
|
9
|
+
`).replace(kd,``)}function jd(e,t){return t=Ad(t),Ad(e)===t}function Md(e,t,n,r,i,a){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Lt(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Lt(e,``+r);break;case`className`:xt(e,`class`,r);break;case`tabIndex`:xt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:xt(e,n,r);break;case`style`:Bt(e,r,a);break;case`data`:if(t!==`object`){xt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Wt(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}if(typeof a==`function`&&(n===`formAction`?(t!==`input`&&Md(e,t,`name`,i.name,i,null),Md(e,t,`formEncType`,i.formEncType,i,null),Md(e,t,`formMethod`,i.formMethod,i,null),Md(e,t,`formTarget`,i.formTarget,i,null)):(Md(e,t,`encType`,i.encType,i,null),Md(e,t,`method`,i.method,i,null),Md(e,t,`target`,i.target,i,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Wt(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=Gt);break;case`onScroll`:r!=null&&$(`scroll`,e);break;case`onScrollEnd`:r!=null&&$(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(s(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(s(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=Wt(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:$(`beforetoggle`,e),$(`toggle`,e),bt(e,`popover`,r);break;case`xlinkActuate`:St(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:St(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:St(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:St(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:St(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:St(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:St(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:St(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:St(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:bt(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=Ht.get(n)||n,bt(e,n,r))}}function Nd(e,t,n,r,i,a){switch(n){case`style`:Bt(e,r,a);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(s(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(s(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?Lt(e,r):(typeof r==`number`||typeof r==`bigint`)&&Lt(e,``+r);break;case`onScroll`:r!=null&&$(`scroll`,e);break;case`onScrollEnd`:r!=null&&$(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=Gt);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!pt.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(i=n.endsWith(`Capture`),t=n.slice(2,i?n.length-7:void 0),a=e[$e]||null,a=a==null?null:a[n],typeof a==`function`&&e.removeEventListener(t,a,i),typeof r==`function`)){typeof a!=`function`&&a!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,i);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):bt(e,n,r)}}}function Pd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:$(`error`,e),$(`load`,e);var r=!1,i=!1,a;for(a in n)if(n.hasOwnProperty(a)){var o=n[a];if(o!=null)switch(a){case`src`:r=!0;break;case`srcSet`:i=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(s(137,t));default:Md(e,t,a,o,n,null)}}i&&Md(e,t,`srcSet`,n.srcSet,n,null),r&&Md(e,t,`src`,n.src,n,null);return;case`input`:$(`invalid`,e);var c=a=o=i=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:i=d;break;case`type`:o=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:a=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(s(137,t));break;default:Md(e,t,r,d,n,null)}}Mt(e,a,c,l,u,o,i,!1);return;case`select`:for(i in $(`invalid`,e),r=o=a=null,n)if(n.hasOwnProperty(i)&&(c=n[i],c!=null))switch(i){case`value`:a=c;break;case`defaultValue`:o=c;break;case`multiple`:r=c;default:Md(e,t,i,c,n,null)}t=a,n=o,e.multiple=!!r,t==null?n!=null&&Pt(e,!!r,n,!0):Pt(e,!!r,t,!1);return;case`textarea`:for(o in $(`invalid`,e),a=i=r=null,n)if(n.hasOwnProperty(o)&&(c=n[o],c!=null))switch(o){case`value`:r=c;break;case`defaultValue`:i=c;break;case`children`:a=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(s(91));break;default:Md(e,t,o,c,n,null)}It(e,r,i,a);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Md(e,t,l,r,n,null)}return;case`dialog`:$(`beforetoggle`,e),$(`toggle`,e),$(`cancel`,e),$(`close`,e);break;case`iframe`:case`object`:$(`load`,e);break;case`video`:case`audio`:for(r=0;r<gd.length;r++)$(gd[r],e);break;case`image`:$(`error`,e),$(`load`,e);break;case`details`:$(`toggle`,e);break;case`embed`:case`source`:case`link`:$(`error`,e),$(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(s(137,t));default:Md(e,t,u,r,n,null)}return;default:if(Vt(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Nd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Md(e,t,c,r,n,null))}function Fd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var i=null,a=null,o=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Md(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:a=m;break;case`name`:i=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:o=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(s(137,t));break;default:m!==f&&Md(e,t,p,m,r,f)}}jt(e,o,c,l,u,d,a,i);return;case`select`:for(a in m=o=c=p=null,n)if(l=n[a],n.hasOwnProperty(a)&&l!=null)switch(a){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(a)||Md(e,t,a,null,r,l)}for(i in r)if(a=r[i],l=n[i],r.hasOwnProperty(i)&&(a!=null||l!=null))switch(i){case`value`:p=a;break;case`defaultValue`:c=a;break;case`multiple`:o=a;default:a!==l&&Md(e,t,i,a,r,l)}t=c,n=o,r=m,p==null?!!r!=!!n&&(t==null?Pt(e,!!n,n?[]:``,!1):Pt(e,!!n,t,!0)):Pt(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(i=n[c],n.hasOwnProperty(c)&&i!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Md(e,t,c,null,r,i)}for(o in r)if(i=r[o],a=n[o],r.hasOwnProperty(o)&&(i!=null||a!=null))switch(o){case`value`:p=i;break;case`defaultValue`:m=i;break;case`children`:break;case`dangerouslySetInnerHTML`:if(i!=null)throw Error(s(91));break;default:i!==a&&Md(e,t,o,i,r,a)}Ft(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Md(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Md(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Md(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(s(137,t));break;default:Md(e,t,u,p,r,m)}return;default:if(Vt(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Nd(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Nd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Md(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Md(e,t,f,p,r,m)}function Id(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Ld(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Id(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Rd=null,zd=null;function Bd(e){return e.nodeType===9?e:e.ownerDocument}function Vd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Hd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Ud(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Wd=null;function Gd(){var e=window.event;return e&&e.type===`popstate`?e!==Wd&&(Wd=e,!0):(Wd=null,!1)}var Kd=typeof setTimeout==`function`?setTimeout:void 0,qd=typeof clearTimeout==`function`?clearTimeout:void 0,Jd=typeof Promise==`function`?Promise:void 0,Yd=typeof queueMicrotask==`function`?queueMicrotask:Jd===void 0?Kd:function(e){return Jd.resolve(null).then(e).catch(Xd)};function Xd(e){setTimeout(function(){throw e})}function Zd(e){return e===`head`}function Qd(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8){if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Np(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)pf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,pf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[at]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&pf(e.ownerDocument.body)}n=i}while(n);Np(t)}function $d(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8){if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++}n=r}while(n)}function ef(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:ef(n),ot(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function tf(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r){if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e}else if(!e[at])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=cf(e.nextSibling),e===null)break}return null}function nf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=cf(e.nextSibling),e===null))return null;return e}function rf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=cf(e.nextSibling),e===null))return null;return e}function af(e){return e.data===`$?`||e.data===`$~`}function of(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function sf(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function cf(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var lf=null;function uf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return cf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function df(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function ff(e,t,n){switch(t=Bd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(s(452));return e;case`head`:if(e=t.head,!e)throw Error(s(453));return e;case`body`:if(e=t.body,!e)throw Error(s(454));return e;default:throw Error(s(451))}}function pf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);ot(e)}var mf=new Map,hf=new Set;function gf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var _f=I.d;I.d={f:vf,r:yf,D:Sf,C:Cf,L:wf,m:Tf,X:Df,S:Ef,M:Of};function vf(){var e=_f.f(),t=vu();return e||t}function yf(e){var t=ct(e);t!==null&&t.tag===5&&t.type===`form`?ys(t):_f.r(e)}var bf=typeof document>`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=At(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),dt(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+At(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+At(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+At(n.imageSizes)+`"]`)):i+=`[href="`+At(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),dt(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+At(r)+`"][href="`+At(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),dt(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=ut(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);dt(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=ut(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),dt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=ut(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),dt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=V.current)?gf(i):null;if(!i)throw Error(s(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=ut(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var a=ut(i).hoistableStyles,o=a.get(e);if(o||(i=i.ownerDocument||i,o={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},a.set(e,o),(a=i.querySelector(jf(e)))&&!a._p&&(o.instance=a,o.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),a||Nf(i,e,n,o.state))),t&&r===null)throw Error(s(528,``));return o}if(t&&r!==null)throw Error(s(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=ut(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(s(444,e))}}function Af(e){return`href="`+At(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),dt(t),e.head.appendChild(t))}function Pf(e){return`[src="`+At(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+At(n.href)+`"]`);if(r)return t.instance=r,dt(r),r;var i=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),dt(r),Pd(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var a=e.querySelector(jf(i));if(a)return t.state.loading|=4,t.instance=a,dt(a),a;r=Mf(n),(i=mf.get(i))&&Rf(r,i),a=(e.ownerDocument||e).createElement(`link`),dt(a);var o=a;return o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),t.state.loading|=4,Lf(a,n.precedence,e),t.instance=a;case`script`:return a=Pf(n.src),(i=e.querySelector(Ff(a)))?(t.instance=i,dt(i),i):(r=n,(i=mf.get(a))&&(r=h({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),dt(i),Pd(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(s(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Rf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function zf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Bf=null;function Vf(e,t,n){if(Bf===null){var r=new Map,i=Bf=new Map;i.set(n,r)}else i=Bf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[at]||a[Qe]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Hf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,dt(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),dt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Kf===0&&(Kf=62500*Ld());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=Jf.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var Qf={$$typeof:C,Provider:null,Consumer:null,_currentValue:te,_currentValue2:te,_threadCount:0};function $f(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Ve(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ve(0),this.hiddenUpdates=Ve(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function ep(e,t,n,r,i,a,o,s,c,l,u,d){return e=new $f(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=Qr(3,null,null,t),e.current=a,a.stateNode=e,t=Qi(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},ja(a),e}function tp(e){return e?(e=Xr,e):Xr}function np(e,t,n,r,i,a){i=tp(i),r.context===null?r.context=i:r.pendingContext=i,r=Na(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Pa(e,r,t),n!==null&&(pu(n,e,t),Fa(n,e,t))}function rp(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ip(e,t){rp(e,t),(e=e.alternate)&&rp(e,t)}function ap(e){if(e.tag===13||e.tag===31){var t=qr(e,67108864);t!==null&&pu(t,e,67108864),ip(e,67108864)}}function op(e){if(e.tag===13||e.tag===31){var t=du();t=qe(t);var n=qr(e,t);n!==null&&pu(n,e,t),ip(e,t)}}var sp=!0;function cp(e,t,n,r){var i=F.T;F.T=null;var a=I.p;try{I.p=2,up(e,t,n,r)}finally{I.p=a,F.T=i}}function lp(e,t,n,r){var i=F.T;F.T=null;var a=I.p;try{I.p=8,up(e,t,n,r)}finally{I.p=a,F.T=i}}function up(e,t,n,r){if(sp){var i=dp(r);if(i===null)Cd(e,t,r,fp,n),Cp(e,r);else if(Tp(i,e,t,n,r))r.stopPropagation();else if(Cp(e,r),t&4&&-1<Sp.indexOf(e)){for(;i!==null;){var a=ct(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=Ie(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Ae(o);s.entanglements[1]|=c,o&=~c}nd(a),!(Pl&6)&&($l=ve()+500,rd(0,!1))}}break;case 31:case 13:s=qr(a,2),s!==null&&pu(s,a,2),vu(),ip(a,2)}if(a=dp(r),a===null&&Cd(e,t,r,fp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Cd(e,t,r,null,n)}}function dp(e){return e=qt(e),pp(e)}var fp=null;function pp(e){if(fp=null,e=st(e),e!==null){var t=l(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=u(t),e!==null)return e;e=null}else if(n===31){if(e=d(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return fp=e,null}function mp(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(ye()){case be:return 2;case xe:return 8;case Se:case Ce:return 32;case we:return 268435456;default:return 32}default:return 32}}var hp=!1,gp=null,_p=null,vp=null,yp=new Map,bp=new Map,xp=[],Sp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Cp(e,t){switch(e){case`focusin`:case`focusout`:gp=null;break;case`dragenter`:case`dragleave`:_p=null;break;case`mouseover`:case`mouseout`:vp=null;break;case`pointerover`:case`pointerout`:yp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:bp.delete(t.pointerId)}}function wp(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=ct(t),t!==null&&ap(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Tp(e,t,n,r,i){switch(t){case`focusin`:return gp=wp(gp,e,t,n,r,i),!0;case`dragenter`:return _p=wp(_p,e,t,n,r,i),!0;case`mouseover`:return vp=wp(vp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return yp.set(a,wp(yp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,bp.set(a,wp(bp.get(a)||null,e,t,n,r,i)),!0}return!1}function Ep(e){var t=st(e.target);if(t!==null){var n=l(t);if(n!==null){if(t=n.tag,t===13){if(t=u(n),t!==null){e.blockedOn=t,Xe(e.priority,function(){op(n)});return}}else if(t===31){if(t=d(n),t!==null){e.blockedOn=t,Xe(e.priority,function(){op(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Dp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=dp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Kt=r,n.target.dispatchEvent(r),Kt=null}else return t=ct(n),t!==null&&ap(t),e.blockedOn=n,!1;t.shift()}return!0}function Op(e,t,n){Dp(e)&&n.delete(t)}function kp(){hp=!1,gp!==null&&Dp(gp)&&(gp=null),_p!==null&&Dp(_p)&&(_p=null),vp!==null&&Dp(vp)&&(vp=null),yp.forEach(Op),bp.forEach(Op)}function Ap(e,n){e.blockedOn===n&&(e.blockedOn=null,hp||(hp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,kp)))}var jp=null;function Mp(e){jp!==e&&(jp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){jp===e&&(jp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(pp(r||n)===null)continue;break}var a=ct(n);a!==null&&(e.splice(t,3),t-=3,_s(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Np(e){function t(t){return Ap(t,e)}gp!==null&&Ap(gp,e),_p!==null&&Ap(_p,e),vp!==null&&Ap(vp,e),yp.forEach(t),bp.forEach(t);for(var n=0;n<xp.length;n++){var r=xp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<xp.length&&(n=xp[0],n.blockedOn===null);)Ep(n),n.blockedOn===null&&xp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[$e]||null;if(typeof a==`function`)o||Mp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[$e]||null)s=o.formAction;else if(pp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Mp(n)}}}function Pp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Fp(e){this._internalRoot=e}Ip.prototype.render=Fp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(s(409));var n=t.current;np(n,du(),e,t,null,null)},Ip.prototype.unmount=Fp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;np(e.current,2,null,e,null,null),vu(),t[et]=null}};function Ip(e){this._internalRoot=e}Ip.prototype.unstable_scheduleHydration=function(e){if(e){var t=Ye();e={blockedOn:null,target:e,priority:t};for(var n=0;n<xp.length&&t!==0&&t<xp[n].priority;n++);xp.splice(n,0,e),n===0&&Ep(e)}};var Lp=r.version;if(Lp!==`19.2.7`)throw Error(s(527,Lp,`19.2.7`));I.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(s(188)):(e=Object.keys(e).join(`,`),Error(s(268,e)));return e=p(t),e=e===null?null:m(e),e=e===null?null:e.stateNode,e};var Rp={bundleType:0,version:`19.2.7`,rendererPackageName:`react-dom`,currentDispatcherRef:F,reconcilerVersion:`19.2.7`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var zp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!zp.isDisabled&&zp.supportsFiber)try{De=zp.inject(Rp),Oe=zp}catch{}}e.createRoot=function(e,t){if(!c(e))throw Error(s(299));var n=!1,r=``,i=Bs,a=Vs,o=Hs;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(i=t.onUncaughtError),t.onCaughtError!==void 0&&(a=t.onCaughtError),t.onRecoverableError!==void 0&&(o=t.onRecoverableError)),t=ep(e,1,!1,null,null,n,r,null,i,a,o,Pp),e[et]=t.current,xd(e),new Fp(t)}})),c=e(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=s()})),l=n(),u=c(),d=typeof window<`u`?window.location.origin:`http://127.0.0.1:3008`,f=`yuncms.studio.session`,p=`yuncms:session-changed`,m=null,h=class extends Error{constructor(e,{status:t=0,code:n=`REQUEST_FAILED`,body:r=null}={}){super(e),this.name=`ApiError`,this.status=t,this.code=n,this.body=r}};function g(){typeof window<`u`&&window.dispatchEvent(new Event(p))}function _(){try{let e=sessionStorage.getItem(f);if(!e)return null;let t=JSON.parse(e);return!t?.access_token||!t?.refresh_token?null:t}catch{return null}}function v(e){return e?(sessionStorage.setItem(f,JSON.stringify(e)),g(),e):(sessionStorage.removeItem(f),g(),null)}function y(){sessionStorage.removeItem(f),g()}function b(e){return window.addEventListener(p,e),()=>window.removeEventListener(p,e)}async function x(e){return e.status===204||!(e.headers.get(`content-type`)||``).includes(`application/json`)?null:e.json()}function S(e,t){let n=t?.errors?.[0];return new h(n?.message||`Request failed with HTTP ${e.status}`,{status:e.status,code:n?.code||`REQUEST_FAILED`,body:t})}function C(e){return!!(e==null||typeof e==`string`||typeof Blob<`u`&&e instanceof Blob||typeof FormData<`u`&&e instanceof FormData||typeof URLSearchParams<`u`&&e instanceof URLSearchParams||typeof ArrayBuffer<`u`&&(e instanceof ArrayBuffer||ArrayBuffer.isView(e)))}async function w(e,t={},n=null){let r=new Headers(t.headers||{}),i=C(t.body);t.body!=null&&!i&&!r.has(`content-type`)&&r.set(`content-type`,`application/json`),n&&r.set(`authorization`,`Bearer ${n}`);let a=await fetch(`${d}${e}`,{...t,headers:r,body:t.body==null||i?t.body:JSON.stringify(t.body)});return{response:a,body:await x(a)}}async function T(){if(m)return m;m=(async()=>{let e=_();if(!e?.refresh_token)throw new h(`Authentication required`,{status:401,code:`UNAUTHORIZED`});let{response:t,body:n}=await w(`/auth/refresh`,{method:`POST`,body:{refresh_token:e.refresh_token}});if(!t.ok)throw y(),S(t,n);let r={...e,...n.data,user:n.data?.user??e.user};return v(r),r})();try{return await m}finally{m=null}}async function E(e,t={},n=!0){let r=_(),i=await w(e,t,r?.access_token??null);return i.response.status===401&&n&&r?.refresh_token?w(e,t,(await T()).access_token):i}async function D(e,t={},{retryAuth:n=!0}={}){let r=await E(e,t,n);if(!r.response.ok)throw S(r.response,r.body);return r.body}async function O(e,t={},{retryAuth:n=!0}={}){let r=await E(e,t,n);if(!r.response.ok)throw S(r.response,r.body);return r.response.blob()}async function k(e,t){let{response:n,body:r}=await w(`/auth/login`,{method:`POST`,body:{email:e,password:t}});if(!n.ok)throw S(n,r);return v(r.data),r.data}async function ee(){let{response:e,body:t}=await w(`/auth/providers`);if(!e.ok)throw S(e,t);return Array.isArray(t?.data)?t.data:[]}function A(e,t=`/`){let n=new URL(`${d}/auth/login/${encodeURIComponent(e)}`);return n.searchParams.set(`redirect`,t),n.toString()}async function j(e,t,n){let{response:r,body:i}=await w(`/auth/login/${encodeURIComponent(e)}`,{method:`POST`,body:{username:t,password:n}});if(!r.ok)throw S(r,i);return v(i.data),i.data}async function M(e){let{response:t,body:n}=await w(`/auth/exchange`,{method:`POST`,body:{auth_code:e}});if(!t.ok)throw S(t,n);return v(n.data),n.data}async function N(){return(await D(`/ai/status`))?.data??null}async function P(){return(await D(`/ai/settings`))?.data??null}async function F(e){return(await D(`/ai/settings`,{method:`PATCH`,body:e}))?.data??null}async function I(){return(await D(`/mcp/settings`))?.data??null}async function te(e){return(await D(`/mcp/settings`,{method:`PATCH`,body:e}))?.data??null}async function L(e,{locale:t=`tr`,allowWrites:n=!1,allowDeletes:r=!1}={}){return(await D(`/ai/chat`,{method:`POST`,body:{messages:e,locale:t,allow_writes:n,allow_deletes:n&&r}}))?.data??null}async function ne(){let e=await D(`/studio-navigation/groups`);return Array.isArray(e?.data)?e.data:[]}async function R(e){return(await D(`/studio-navigation/groups`,{method:`POST`,body:e}))?.data??null}async function z(e,t){return(await D(`/studio-navigation/groups/${encodeURIComponent(e)}`,{method:`PATCH`,body:t}))?.data??null}async function B(e){return(await D(`/studio-navigation/groups/${encodeURIComponent(e)}`,{method:`DELETE`}))?.data??null}async function re(){let e=_();try{e?.access_token&&await w(`/auth/logout`,{method:`POST`},e.access_token)}finally{y()}}async function ie(){let{response:e,body:t}=await w(`/health`);if(!e.ok)throw S(e,t);return t}var V=Object.freeze([{id:`collection`,label:`Collection`,keywords:`table data database records list`},{id:`article`,label:`Article`,keywords:`article post blog content document text`},{id:`folder`,label:`Folder`,keywords:`folder directory files archive`},{id:`image`,label:`Image`,keywords:`image photo media gallery picture`},{id:`user`,label:`User`,keywords:`user person member customer contact`},{id:`users`,label:`Users`,keywords:`users team people members staff`},{id:`company`,label:`Company`,keywords:`company business organization office`},{id:`cart`,label:`Cart`,keywords:`cart commerce order sales shop ecommerce`},{id:`product`,label:`Product`,keywords:`product box inventory item stock`},{id:`tag`,label:`Tag`,keywords:`tag label category taxonomy`},{id:`calendar`,label:`Calendar`,keywords:`calendar date event schedule booking`},{id:`clock`,label:`Clock`,keywords:`clock time history activity`},{id:`check`,label:`Check`,keywords:`check task todo approval done`},{id:`clipboard`,label:`Clipboard`,keywords:`clipboard task form inspection checklist`},{id:`message`,label:`Message`,keywords:`message chat comment conversation support`},{id:`mail`,label:`Mail`,keywords:`mail email inbox newsletter`},{id:`phone`,label:`Phone`,keywords:`phone call mobile contact`},{id:`location`,label:`Location`,keywords:`location map place address pin`},{id:`link`,label:`Link`,keywords:`link relation connection url`},{id:`star`,label:`Star`,keywords:`star favorite featured rating`},{id:`heart`,label:`Heart`,keywords:`heart like favorite health`},{id:`chart`,label:`Chart`,keywords:`chart analytics report metric statistics`},{id:`money`,label:`Money`,keywords:`money finance invoice payment accounting`},{id:`briefcase`,label:`Briefcase`,keywords:`briefcase work job project business`},{id:`truck`,label:`Truck`,keywords:`truck delivery shipping logistics`},{id:`factory`,label:`Factory`,keywords:`factory manufacturing production machine`},{id:`wrench`,label:`Wrench`,keywords:`wrench service maintenance settings tool`},{id:`shield`,label:`Shield`,keywords:`shield security permission role protection`},{id:`key`,label:`Key`,keywords:`key access credential token permission`},{id:`code`,label:`Code`,keywords:`code api developer integration script`},{id:`book`,label:`Book`,keywords:`book knowledge wiki documentation`},{id:`graduation`,label:`Graduation`,keywords:`graduation education course student school`}]),ae=`collection`;function H(e){return V.some(t=>t.id===e)?e:ae}function oe(e){if(!e)return{};if(typeof e==`object`)return e;try{return JSON.parse(e)??{}}catch{return{}}}function se(e=``){let t=String(e).toLowerCase(),n=0;for(let e=0;e<6;e+=1){let r=t.charCodeAt(e)||0;n=n*128+Math.min(r,127)}let r=2166136261;for(let e of t.slice(6))r^=e.charCodeAt(0),r=Math.imul(r,16777619)>>>0;return n*1e3+r%1e3}function U(e){let t=oe(e?.metadata),n=Number(t.sort),r=typeof t.group==`string`&&t.group.trim()?t.group.trim():null;return{icon:H(t.icon||`collection`),sort:Number.isFinite(n)?n:se(e?.collection),hidden:!!e?.hidden,group:r}}function ce(e=[]){return e.filter(e=>!e.system&&!e.hidden).slice().sort((e,t)=>{let n=U(e),r=U(t);return n.sort-r.sort||String(e.collection).localeCompare(String(t.collection))})}function le(e,t={}){let n={...oe(e?.metadata),...t};return(n.group==null||n.group===``)&&delete n.group,n}var ue=Object.freeze({en:Object.freeze({code:`en`,name:`English`,nativeName:`English`,direction:`ltr`,enabled:!0}),tr:Object.freeze({code:`tr`,name:`Turkish`,nativeName:`Türkçe`,direction:`ltr`,enabled:!0}),es:Object.freeze({code:`es`,name:`Spanish`,nativeName:`Español`,direction:`ltr`,enabled:!0}),de:Object.freeze({code:`de`,name:`German`,nativeName:`Deutsch`,direction:`ltr`,enabled:!0}),fr:Object.freeze({code:`fr`,name:`French`,nativeName:`Français`,direction:`ltr`,enabled:!0}),"pt-BR":Object.freeze({code:`pt-BR`,name:`Portuguese (Brazil)`,nativeName:`Português (Brasil)`,direction:`ltr`,enabled:!0}),ja:Object.freeze({code:`ja`,name:`Japanese`,nativeName:`日本語`,direction:`ltr`,enabled:!0}),"zh-CN":Object.freeze({code:`zh-CN`,name:`Chinese (Simplified)`,nativeName:`简体中文`,direction:`ltr`,enabled:!0}),it:Object.freeze({code:`it`,name:`Italian`,nativeName:`Italiano`,direction:`ltr`,enabled:!1}),ru:Object.freeze({code:`ru`,name:`Russian`,nativeName:`Русский`,direction:`ltr`,enabled:!1}),pl:Object.freeze({code:`pl`,name:`Polish`,nativeName:`Polski`,direction:`ltr`,enabled:!1}),ko:Object.freeze({code:`ko`,name:`Korean`,nativeName:`한국어`,direction:`ltr`,enabled:!1}),id:Object.freeze({code:`id`,name:`Indonesian`,nativeName:`Bahasa Indonesia`,direction:`ltr`,enabled:!1}),ar:Object.freeze({code:`ar`,name:`Arabic`,nativeName:`العربية`,direction:`rtl`,enabled:!1})}),W=Object.freeze(Object.values(ue).filter(e=>e.enabled).map(e=>e.code));function de(e){return W.includes(e)}function G(e){return ue[e]??ue.en}function fe(){return W.map(e=>ue[e])}var pe=`https://yunsoft.com/light-logo.png`,me=`https://yunsoft.com/dark-logo.png`,he=`https://yunsoft.com/light-icon.png`,ge=`/studio-settings/logo`,_e=`/studio-settings/favicon`,ve=Object.freeze({brand_name:`YunCMS`,logo_url:pe,logo_file:null,favicon_file:null,accent_color:`#2563eb`,theme:`system`,default_locale:`en`,public_registration_enabled:!1,public_registration_require_email_verification:!1}),ye=`yuncms.studio.locale`,be=new Set([`system`,`light`,`dark`]),xe=/^#[0-9a-f]{6}$/i;function Se(e={}){return{brand_name:typeof e.brand_name==`string`&&e.brand_name.trim()?e.brand_name.trim():ve.brand_name,logo_url:typeof e.logo_url==`string`&&e.logo_url.trim()?e.logo_url.trim():ve.logo_url,logo_file:typeof e.logo_file==`string`&&e.logo_file.trim()?e.logo_file.trim():null,favicon_file:typeof e.favicon_file==`string`&&e.favicon_file.trim()?e.favicon_file.trim():null,accent_color:xe.test(e.accent_color||``)?e.accent_color.toLowerCase():ve.accent_color,theme:be.has(e.theme)?e.theme:ve.theme,default_locale:de(e.default_locale)?e.default_locale:ve.default_locale,public_registration_enabled:e.public_registration_enabled===!0,public_registration_require_email_verification:e.public_registration_require_email_verification===!0,updated_at:e.updated_at??null}}function Ce(){if(typeof window>`u`)return null;let e=window.localStorage.getItem(ye);return de(e)?e:null}function we(e){if(!(typeof window>`u`)){if(e==null){window.localStorage.removeItem(ye);return}if(!de(e))throw Error(`Unsupported Studio locale: ${e}`);window.localStorage.setItem(ye,e)}}function Te(e,t=!1){return e===`dark`?`dark`:e===`light`?`light`:t?`dark`:`light`}function Ee(e,t=`light`){let n=Se(e);return n.logo_file?ge:n.logo_url!==`https://yunsoft.com/light-logo.png`&&n.logo_url!==`https://yunsoft.com/dark-logo.png`?n.logo_url:t===`dark`?pe:me}function De(e){return Se(e).favicon_file?_e:he}function Oe(e,t=``){if(typeof document>`u`)return;let n=De(e),r=n.startsWith(`/`)?`${t}${n}`:n,i=document.querySelector(`link[data-yuncms-favicon]`);i||(i=document.createElement(`link`),i.rel=`icon`,i.dataset.yuncmsFavicon=`true`,document.head.append(i)),i.href=r}function ke(e,t=!1){if(typeof document>`u`)return;let n=Se(e),r=document.documentElement;r.dataset.theme=Te(n.theme,t),r.style.setProperty(`--studio-accent`,n.accent_color),r.style.setProperty(`--studio-accent-soft`,`${n.accent_color}18`),r.style.setProperty(`--studio-accent-border`,`${n.accent_color}55`)}var Ae=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),K=e(((e,t)=>{t.exports=Ae()}))(),je=(0,l.createContext)(null);function Me(){return typeof window<`u`&&window.matchMedia?.(`(prefers-color-scheme: dark)`).matches===!0}function Ne({children:e}){let[t,n]=(0,l.useState)(ve),[r,i]=(0,l.useState)(()=>Te(ve.theme,Me())),[a,o]=(0,l.useState)(()=>Ce()),[s,c]=(0,l.useState)(!0),[u,f]=(0,l.useState)(``),p=(0,l.useCallback)(e=>{let t=Se(e),r=Me();return n(t),i(Te(t.theme,r)),ke(t,r),Oe(t,d),t},[]);(0,l.useEffect)(()=>{let e=!1;return D(`/studio-settings`,{},{retryAuth:!1}).then(t=>{e||p(t?.data??ve)}).catch(t=>{e||(p(ve),f(t?.message||`Studio settings could not be loaded`))}).finally(()=>{e||c(!1)}),()=>{e=!0}},[p]),(0,l.useEffect)(()=>{if(t.theme!==`system`||typeof window>`u`||!window.matchMedia)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`),n=()=>{i(Te(t.theme,e.matches)),ke(t,e.matches)};return e.addEventListener?.(`change`,n),()=>e.removeEventListener?.(`change`,n)},[t]);let m=a||t.default_locale;(0,l.useEffect)(()=>{if(typeof document>`u`)return;let e=G(m);document.documentElement.lang=e.code,document.documentElement.dir=e.direction},[m]);let h=(0,l.useCallback)(e=>{we(e),o(e)},[]),g=(0,l.useCallback)(()=>{we(null),o(null)},[]),_=(0,l.useCallback)(async e=>{let n=await D(`/studio-settings`,{method:`PATCH`,body:e});return p(n?.data??t)},[p,t]),v=(0,l.useMemo)(()=>({settings:t,resolvedTheme:r,locale:m,localeOverride:a,loading:s,loadError:u,setLocale:h,useDefaultLocale:g,saveSettings:_}),[t,r,m,a,s,u,h,g,_]);return(0,K.jsx)(je.Provider,{value:v,children:e})}function Pe(){let e=(0,l.useContext)(je);if(!e)throw Error(`useStudioSettings must be used inside StudioSettingsProvider`);return e}var Fe=Object.freeze({"nav.ai":`KI`,"section.aiTitle":`KI`,"section.aiDescription":`Sprich mit deinen YunCMS-Daten, prüfe dein Schema und führe – wenn du es erlaubst – Datensatzoperationen in natürlicher Sprache aus.`,"ai.title":`KI`,"ai.ready":`Bereit`,"ai.readyHint":`Arbeitet mit den Berechtigungen deines aktuellen Kontos.`,"ai.notReady":`Konfiguration erforderlich`,"ai.notReadyHint":`Noch kein KI-Modell verbunden.`,"ai.statusFailed":`KI-Status konnte nicht geladen werden.`,"ai.setupTitle":`KI ist noch nicht konfiguriert`,"ai.setupDescription":`Dieser Bildschirm ist verfügbar, nachdem ein Administrator in den KI-Einstellungen einen Modellanbieter verbunden hat.`,"ai.setupDescriptionAdmin":`Speichere Anbieter-URL, Modell und API-Schlüssel direkt in diesem Bereich. Keine separate Anwendung oder Umgebungskonfiguration erforderlich.`,"ai.settings":`Einstellungen`,"ai.openSettings":`KI-Einstellungen öffnen`,"ai.settingsTitle":`KI-Einstellungen`,"ai.settingsDescription":`Verwalte hier Modellanbieter und Sicherheitsgrenzen. Der API-Schlüssel wird verschlüsselt gespeichert und nach dem Speichern nie wieder angezeigt.`,"ai.settingsClose":`Schließen`,"ai.settingsSave":`Einstellungen speichern`,"ai.settingsSaving":`Wird gespeichert…`,"ai.settingsSaved":`KI-Einstellungen gespeichert.`,"ai.settingsSaveFailed":`KI-Einstellungen konnten nicht gespeichert werden.`,"ai.baseUrl":`Anbieter-URL`,"ai.baseUrlHint":`Basis-URL einer OpenAI-kompatiblen Chat-Completions-API.`,"ai.model":`Modell`,"ai.apiKey":`API-Schlüssel`,"ai.apiKeyPlaceholder":`API-Schlüssel eingeben`,"ai.apiKeyHint":`Der Schlüssel wird ausschließlich verschlüsselt auf dem Server gespeichert.`,"ai.apiKeySaved":`Neuen Schlüssel eingeben, um den gespeicherten zu ersetzen`,"ai.apiKeySavedHint":`Ein API-Schlüssel ist gespeichert. Sein aktueller Wert wird niemals an Studio zurückgegeben.`,"ai.clearApiKey":`Gespeicherten API-Schlüssel entfernen`,"ai.enableAssistant":`KI aktivieren`,"ai.enableAssistantHint":`Der Chat ist im deaktivierten Zustand nicht verfügbar.`,"ai.enableWrites":`Datenändernde Aktionen verfügbar machen`,"ai.enableWritesHint":`Dadurch wird die Funktion nur verfügbar. Benutzer müssen Datenänderungen weiterhin in jedem Chat ausdrücklich erlauben.`,"ai.advancedSettings":`Erweiterte Grenzen`,"ai.maxToolRounds":`Maximale Werkzeugrunden`,"ai.maxToolCalls":`Maximale Aktionen pro Runde`,"ai.maxHistory":`Nachrichten im Gesprächsverlauf`,"ai.maxOutputTokens":`Maximale Ausgabe-Tokens`,"ai.timeout":`Zeitlimit (ms)`,"ai.maxMessageChars":`Zeichenlimit für Nachrichten`,"ai.maxToolResultBytes":`Byte-Limit für Werkzeugergebnisse`,"ai.newChat":`Neuer Chat`,"ai.welcomeTitle":`Sprich mit deinen YunCMS-Daten`,"ai.welcomeDescription":`Ich kann Collections und Datensätze innerhalb deiner aktuellen Benutzerberechtigungen prüfen. Daten, auf die dein Konto keinen Zugriff hat, kann ich nicht sehen.`,"ai.starterCollections":`Meine Collections zusammenfassen`,"ai.starterStructure":`Meine Inhaltsstruktur und Beziehungen erklären`,"ai.starterOverview":`Die für mich zugänglichen Daten auf hoher Ebene prüfen`,"ai.assistantName":`KI`,"ai.you":`Du`,"ai.operations":`Ausgeführte Operationen`,"ai.operationCollections":`Collections geprüft`,"ai.operationSchema":`Struktur von {collection} geprüft`,"ai.operationReadMany":`Datensätze aus {collection} gelesen`,"ai.operationReadOne":`Einen Datensatz aus {collection} gelesen`,"ai.operationCreate":`Einen Datensatz in {collection} erstellt`,"ai.operationUpdate":`Einen Datensatz in {collection} aktualisiert`,"ai.operationDelete":`Einen Datensatz aus {collection} gelöscht`,"ai.operationGeneric":`Daten von {collection} verarbeitet`,"ai.operationData":`YunCMS`,"ai.thinking":`KI denkt nach`,"ai.accessMode":`Aktionszugriff`,"ai.accessRead":`Nur lesen`,"ai.accessReadHint":`Prüft Schema und Datensätze, ohne Daten zu verändern.`,"ai.accessWrite":`Automatische Schreibvorgänge`,"ai.accessWriteHint":`Darf auf deine ausdrückliche Anfrage erstellen und aktualisieren, ohne weitere Freigabe; Löschen ist nicht erlaubt.`,"ai.accessFull":`Vollzugriff (mit Löschen)`,"ai.accessFullHint":`Darf auf deine ausdrückliche Anfrage erstellen, aktualisieren und löschen, ohne weitere Freigabe.`,"ai.accessBoundary":`Die Auswahl gilt nur für die nächste Nachricht und überschreitet niemals deine bestehenden YunCMS-Berechtigungen.`,"ai.placeholder":`Frage etwas zu YunCMS oder fordere eine Operation auf deinen Daten an…`,"ai.disabledPlaceholder":`Der Chat ist verfügbar, nachdem die KI konfiguriert wurde.`,"ai.send":`Senden`,"ai.sending":`Wird verarbeitet…`,"ai.composerHint":`Enter sendet, Shift + Enter fügt eine neue Zeile ein. Die KI kann nur Daten verwenden, auf die dein Konto zugreifen darf.`,"ai.emptyResponse":`Die KI hat eine leere Antwort zurückgegeben.`,"ai.requestFailed":`Die KI-Anfrage konnte nicht abgeschlossen werden.`}),Ie=Object.freeze({"nav.ai":`AI`,"section.aiTitle":`AI`,"section.aiDescription":`Talk to your YunCMS data, inspect your schema and, when you allow it, perform record operations with natural language.`,"ai.title":`AI`,"ai.ready":`Ready`,"ai.readyHint":`Works with the permissions of your current account.`,"ai.notReady":`Configuration required`,"ai.notReadyHint":`No AI model is connected yet.`,"ai.statusFailed":`AI status could not be loaded.`,"ai.setupTitle":`AI is not configured yet`,"ai.setupDescription":`This screen becomes available after an administrator connects a model provider in AI settings.`,"ai.setupDescriptionAdmin":`Save the provider URL, model and API key directly in this panel. No separate application or environment setup is required.`,"ai.settings":`Settings`,"ai.openSettings":`Open AI settings`,"ai.settingsTitle":`AI settings`,"ai.settingsDescription":`Manage the model provider and safety limits here. The API key is stored encrypted and is never shown again after saving.`,"ai.settingsClose":`Close`,"ai.settingsSave":`Save settings`,"ai.settingsSaving":`Saving…`,"ai.settingsSaved":`AI settings saved.`,"ai.settingsSaveFailed":`AI settings could not be saved.`,"ai.baseUrl":`Provider URL`,"ai.baseUrlHint":`Root URL of an OpenAI-compatible chat completions API.`,"ai.model":`Model`,"ai.apiKey":`API key`,"ai.apiKeyPlaceholder":`Enter API key`,"ai.apiKeyHint":`The key is stored encrypted on the server only.`,"ai.apiKeySaved":`Enter a new key to replace the saved key`,"ai.apiKeySavedHint":`An API key is saved. Its existing value is never returned to Studio.`,"ai.clearApiKey":`Remove the saved API key`,"ai.enableAssistant":`Enable AI`,"ai.enableAssistantHint":`Chat is unavailable while disabled.`,"ai.enableWrites":`Make data-changing actions available`,"ai.enableWritesHint":`This only makes the feature available. Users must still explicitly allow data changes in each chat.`,"ai.advancedSettings":`Advanced limits`,"ai.maxToolRounds":`Maximum tool rounds`,"ai.maxToolCalls":`Maximum actions per round`,"ai.maxHistory":`Conversation history messages`,"ai.maxOutputTokens":`Maximum output tokens`,"ai.timeout":`Timeout (ms)`,"ai.maxMessageChars":`Message character limit`,"ai.maxToolResultBytes":`Tool result byte limit`,"ai.newChat":`New chat`,"ai.welcomeTitle":`Talk to your YunCMS data`,"ai.welcomeDescription":`I can inspect collections and records within your current user permissions. I cannot see data your account cannot access.`,"ai.starterCollections":`Summarize my collections`,"ai.starterStructure":`Explain my content structure and relations`,"ai.starterOverview":`Review the data I can access at a high level`,"ai.assistantName":`AI`,"ai.you":`You`,"ai.operations":`Operations performed`,"ai.operationCollections":`Inspected collections`,"ai.operationSchema":`Inspected the {collection} structure`,"ai.operationReadMany":`Read {collection} records`,"ai.operationReadOne":`Read a {collection} record`,"ai.operationCreate":`Created a {collection} record`,"ai.operationUpdate":`Updated a {collection} record`,"ai.operationDelete":`Deleted a {collection} record`,"ai.operationGeneric":`Processed {collection} data`,"ai.operationData":`YunCMS`,"ai.thinking":`AI is thinking`,"ai.accessMode":`Action access`,"ai.accessRead":`Read only`,"ai.accessReadHint":`Inspects schema and records without changing data.`,"ai.accessWrite":`Automatic writes`,"ai.accessWriteHint":`May create and update for your explicit request without another approval; cannot delete.`,"ai.accessFull":`Full access (with delete)`,"ai.accessFullHint":`May create, update and delete for your explicit request without another approval.`,"ai.accessBoundary":`The choice applies to the next message only and never exceeds your existing YunCMS permissions.`,"ai.placeholder":`Ask something about YunCMS or request an operation on your data…`,"ai.disabledPlaceholder":`Chat becomes available after AI is configured.`,"ai.send":`Send`,"ai.sending":`Working…`,"ai.composerHint":`Enter sends, Shift + Enter adds a new line. AI can only use data your account is allowed to access.`,"ai.emptyResponse":`AI returned an empty response.`,"ai.requestFailed":`The AI request could not be completed.`}),Le=Object.freeze({"nav.ai":`IA`,"section.aiTitle":`IA`,"section.aiDescription":`Habla con tus datos de YunCMS, inspecciona tu esquema y, cuando lo permitas, realiza operaciones sobre registros con lenguaje natural.`,"ai.title":`IA`,"ai.ready":`Lista`,"ai.readyHint":`Funciona con los permisos de tu cuenta actual.`,"ai.notReady":`Configuración necesaria`,"ai.notReadyHint":`Todavía no hay ningún modelo de IA conectado.`,"ai.statusFailed":`No se pudo cargar el estado de la IA.`,"ai.setupTitle":`La IA todavía no está configurada`,"ai.setupDescription":`Esta pantalla estará disponible después de que un administrador conecte un proveedor de modelos en los ajustes de IA.`,"ai.setupDescriptionAdmin":`Guarda la URL del proveedor, el modelo y la clave de API directamente en este panel. No se necesita otra aplicación ni configuración de entorno.`,"ai.settings":`Ajustes`,"ai.openSettings":`Abrir ajustes de IA`,"ai.settingsTitle":`Ajustes de IA`,"ai.settingsDescription":`Gestiona aquí el proveedor del modelo y los límites de seguridad. La clave de API se almacena cifrada y nunca se vuelve a mostrar después de guardarla.`,"ai.settingsClose":`Cerrar`,"ai.settingsSave":`Guardar ajustes`,"ai.settingsSaving":`Guardando…`,"ai.settingsSaved":`Ajustes de IA guardados.`,"ai.settingsSaveFailed":`No se pudieron guardar los ajustes de IA.`,"ai.baseUrl":`URL del proveedor`,"ai.baseUrlHint":`URL raíz de una API de chat completions compatible con OpenAI.`,"ai.model":`Modelo`,"ai.apiKey":`Clave de API`,"ai.apiKeyPlaceholder":`Introduce la clave de API`,"ai.apiKeyHint":`La clave se almacena cifrada únicamente en el servidor.`,"ai.apiKeySaved":`Introduce una clave nueva para reemplazar la guardada`,"ai.apiKeySavedHint":`Hay una clave de API guardada. Su valor actual nunca se devuelve a Studio.`,"ai.clearApiKey":`Eliminar la clave de API guardada`,"ai.enableAssistant":`Habilitar IA`,"ai.enableAssistantHint":`El chat no está disponible mientras esté deshabilitada.`,"ai.enableWrites":`Habilitar acciones que modifican datos`,"ai.enableWritesHint":`Esto solo habilita la función. Los usuarios todavía deben permitir explícitamente los cambios de datos en cada chat.`,"ai.advancedSettings":`Límites avanzados`,"ai.maxToolRounds":`Máximo de rondas de herramientas`,"ai.maxToolCalls":`Máximo de acciones por ronda`,"ai.maxHistory":`Mensajes del historial de conversación`,"ai.maxOutputTokens":`Máximo de tokens de salida`,"ai.timeout":`Tiempo de espera (ms)`,"ai.maxMessageChars":`Límite de caracteres del mensaje`,"ai.maxToolResultBytes":`Límite de bytes del resultado de herramienta`,"ai.newChat":`Nuevo chat`,"ai.welcomeTitle":`Habla con tus datos de YunCMS`,"ai.welcomeDescription":`Puedo inspeccionar colecciones y registros dentro de los permisos de tu usuario actual. No puedo ver datos a los que tu cuenta no tenga acceso.`,"ai.starterCollections":`Resume mis colecciones`,"ai.starterStructure":`Explica mi estructura de contenido y sus relaciones`,"ai.starterOverview":`Revisa a alto nivel los datos a los que puedo acceder`,"ai.assistantName":`IA`,"ai.you":`Tú`,"ai.operations":`Operaciones realizadas`,"ai.operationCollections":`Colecciones inspeccionadas`,"ai.operationSchema":`Se inspeccionó la estructura de {collection}`,"ai.operationReadMany":`Se leyeron registros de {collection}`,"ai.operationReadOne":`Se leyó un registro de {collection}`,"ai.operationCreate":`Se creó un registro de {collection}`,"ai.operationUpdate":`Se actualizó un registro de {collection}`,"ai.operationDelete":`Se eliminó un registro de {collection}`,"ai.operationGeneric":`Se procesaron datos de {collection}`,"ai.operationData":`YunCMS`,"ai.thinking":`La IA está pensando`,"ai.accessMode":`Acceso a acciones`,"ai.accessRead":`Solo lectura`,"ai.accessReadHint":`Inspecciona esquemas y registros sin modificar datos.`,"ai.accessWrite":`Escrituras automáticas`,"ai.accessWriteHint":`Puede crear y actualizar cuando lo solicites explícitamente sin otra aprobación; no puede eliminar.`,"ai.accessFull":`Acceso total (con eliminación)`,"ai.accessFullHint":`Puede crear, actualizar y eliminar cuando lo solicites explícitamente sin otra aprobación.`,"ai.accessBoundary":`La elección se aplica solo al siguiente mensaje y nunca supera tus permisos existentes de YunCMS.`,"ai.placeholder":`Pregunta algo sobre YunCMS o solicita una operación sobre tus datos…`,"ai.disabledPlaceholder":`El chat estará disponible después de configurar la IA.`,"ai.send":`Enviar`,"ai.sending":`Procesando…`,"ai.composerHint":`Enter envía; Shift + Enter añade una línea nueva. La IA solo puede usar datos a los que tu cuenta tenga permiso de acceso.`,"ai.emptyResponse":`La IA devolvió una respuesta vacía.`,"ai.requestFailed":`No se pudo completar la solicitud de IA.`}),Re=Object.freeze({"nav.ai":`IA`,"section.aiTitle":`IA`,"section.aiDescription":`Discutez avec vos données YunCMS, inspectez votre schéma et, lorsque vous l’autorisez, effectuez des opérations sur les enregistrements en langage naturel.`,"ai.title":`IA`,"ai.ready":`Prête`,"ai.readyHint":`Fonctionne avec les permissions de votre compte actuel.`,"ai.notReady":`Configuration requise`,"ai.notReadyHint":`Aucun modèle d’IA n’est encore connecté.`,"ai.statusFailed":`Impossible de charger le statut de l’IA.`,"ai.setupTitle":`L’IA n’est pas encore configurée`,"ai.setupDescription":`Cet écran devient disponible après qu’un administrateur a connecté un fournisseur de modèle dans les paramètres IA.`,"ai.setupDescriptionAdmin":`Enregistrez l’URL du fournisseur, le modèle et la clé API directement dans ce panneau. Aucune application ou configuration d’environnement séparée n’est nécessaire.`,"ai.settings":`Paramètres`,"ai.openSettings":`Ouvrir les paramètres IA`,"ai.settingsTitle":`Paramètres IA`,"ai.settingsDescription":`Gérez ici le fournisseur de modèle et les limites de sécurité. La clé API est stockée chiffrée et n’est jamais réaffichée après l’enregistrement.`,"ai.settingsClose":`Fermer`,"ai.settingsSave":`Enregistrer les paramètres`,"ai.settingsSaving":`Enregistrement…`,"ai.settingsSaved":`Paramètres IA enregistrés.`,"ai.settingsSaveFailed":`Impossible d’enregistrer les paramètres IA.`,"ai.baseUrl":`URL du fournisseur`,"ai.baseUrlHint":`URL racine d’une API de chat completions compatible OpenAI.`,"ai.model":`Modèle`,"ai.apiKey":`Clé API`,"ai.apiKeyPlaceholder":`Saisissez la clé API`,"ai.apiKeyHint":`La clé est stockée chiffrée uniquement sur le serveur.`,"ai.apiKeySaved":`Saisissez une nouvelle clé pour remplacer celle enregistrée`,"ai.apiKeySavedHint":`Une clé API est enregistrée. Sa valeur existante n’est jamais renvoyée à Studio.`,"ai.clearApiKey":`Supprimer la clé API enregistrée`,"ai.enableAssistant":`Activer l’IA`,"ai.enableAssistantHint":`Le chat est indisponible lorsqu’elle est désactivée.`,"ai.enableWrites":`Rendre disponibles les actions qui modifient les données`,"ai.enableWritesHint":`Cela rend uniquement la fonctionnalité disponible. Les utilisateurs doivent toujours autoriser explicitement les modifications de données dans chaque chat.`,"ai.advancedSettings":`Limites avancées`,"ai.maxToolRounds":`Nombre maximal de tours d’outils`,"ai.maxToolCalls":`Nombre maximal d’actions par tour`,"ai.maxHistory":`Messages de l’historique de conversation`,"ai.maxOutputTokens":`Nombre maximal de tokens de sortie`,"ai.timeout":`Délai d’expiration (ms)`,"ai.maxMessageChars":`Limite de caractères du message`,"ai.maxToolResultBytes":`Limite en octets du résultat d’outil`,"ai.newChat":`Nouvelle discussion`,"ai.welcomeTitle":`Discutez avec vos données YunCMS`,"ai.welcomeDescription":`Je peux inspecter les collections et enregistrements selon les permissions de votre utilisateur actuel. Je ne peux pas voir les données auxquelles votre compte n’a pas accès.`,"ai.starterCollections":`Résumer mes collections`,"ai.starterStructure":`Expliquer ma structure de contenu et mes relations`,"ai.starterOverview":`Examiner globalement les données auxquelles j’ai accès`,"ai.assistantName":`IA`,"ai.you":`Vous`,"ai.operations":`Opérations effectuées`,"ai.operationCollections":`Collections inspectées`,"ai.operationSchema":`Structure de {collection} inspectée`,"ai.operationReadMany":`Enregistrements de {collection} lus`,"ai.operationReadOne":`Un enregistrement de {collection} lu`,"ai.operationCreate":`Un enregistrement de {collection} créé`,"ai.operationUpdate":`Un enregistrement de {collection} mis à jour`,"ai.operationDelete":`Un enregistrement de {collection} supprimé`,"ai.operationGeneric":`Données de {collection} traitées`,"ai.operationData":`YunCMS`,"ai.thinking":`L’IA réfléchit`,"ai.accessMode":`Accès aux actions`,"ai.accessRead":`Lecture seule`,"ai.accessReadHint":`Inspecte le schéma et les enregistrements sans modifier les données.`,"ai.accessWrite":`Écritures automatiques`,"ai.accessWriteHint":`Peut créer et mettre à jour sur votre demande explicite sans nouvelle approbation ; ne peut pas supprimer.`,"ai.accessFull":`Accès complet (avec suppression)`,"ai.accessFullHint":`Peut créer, mettre à jour et supprimer sur votre demande explicite sans nouvelle approbation.`,"ai.accessBoundary":`Le choix s’applique uniquement au prochain message et ne dépasse jamais vos permissions YunCMS existantes.`,"ai.placeholder":`Posez une question sur YunCMS ou demandez une opération sur vos données…`,"ai.disabledPlaceholder":`Le chat devient disponible après la configuration de l’IA.`,"ai.send":`Envoyer`,"ai.sending":`Traitement…`,"ai.composerHint":`Entrée envoie, Maj + Entrée ajoute une nouvelle ligne. L’IA peut uniquement utiliser les données auxquelles votre compte est autorisé à accéder.`,"ai.emptyResponse":`L’IA a renvoyé une réponse vide.`,"ai.requestFailed":`Impossible de terminer la requête IA.`}),ze=Object.freeze({"nav.ai":`AI`,"section.aiTitle":`AI`,"section.aiDescription":`YunCMSのデータと会話し、スキーマを確認し、許可した場合は自然言語でレコード操作を実行できます。`,"ai.title":`AI`,"ai.ready":`準備完了`,"ai.readyHint":`現在のアカウント権限で動作します。`,"ai.notReady":`設定が必要です`,"ai.notReadyHint":`AIモデルがまだ接続されていません。`,"ai.statusFailed":`AIの状態を読み込めませんでした。`,"ai.setupTitle":`AIはまだ設定されていません`,"ai.setupDescription":`管理者がAI設定でモデルプロバイダーを接続すると、この画面を利用できます。`,"ai.setupDescriptionAdmin":`プロバイダーURL、モデル、APIキーをこのパネルで直接保存します。別のアプリケーションや環境設定は不要です。`,"ai.settings":`設定`,"ai.openSettings":`AI設定を開く`,"ai.settingsTitle":`AI設定`,"ai.settingsDescription":`モデルプロバイダーと安全上の制限を管理します。APIキーは暗号化して保存され、保存後に再表示されることはありません。`,"ai.settingsClose":`閉じる`,"ai.settingsSave":`設定を保存`,"ai.settingsSaving":`保存中…`,"ai.settingsSaved":`AI設定を保存しました。`,"ai.settingsSaveFailed":`AI設定を保存できませんでした。`,"ai.baseUrl":`プロバイダーURL`,"ai.baseUrlHint":`OpenAI互換Chat Completions APIのルートURL。`,"ai.model":`モデル`,"ai.apiKey":`APIキー`,"ai.apiKeyPlaceholder":`APIキーを入力`,"ai.apiKeyHint":`キーはサーバー上にのみ暗号化して保存されます。`,"ai.apiKeySaved":`保存済みキーを置き換えるには新しいキーを入力`,"ai.apiKeySavedHint":`APIキーが保存されています。既存の値がStudioに返されることはありません。`,"ai.clearApiKey":`保存済みAPIキーを削除`,"ai.enableAssistant":`AIを有効化`,"ai.enableAssistantHint":`無効の間はチャットを利用できません。`,"ai.enableWrites":`データ変更操作を利用可能にする`,"ai.enableWritesHint":`これは機能を利用可能にするだけです。ユーザーは各チャットでデータ変更を明示的に許可する必要があります。`,"ai.advancedSettings":`詳細制限`,"ai.maxToolRounds":`最大ツールラウンド数`,"ai.maxToolCalls":`1ラウンドの最大操作数`,"ai.maxHistory":`会話履歴メッセージ数`,"ai.maxOutputTokens":`最大出力トークン数`,"ai.timeout":`タイムアウト (ms)`,"ai.maxMessageChars":`メッセージ文字数上限`,"ai.maxToolResultBytes":`ツール結果バイト上限`,"ai.newChat":`新しいチャット`,"ai.welcomeTitle":`YunCMSのデータと会話`,"ai.welcomeDescription":`現在のユーザー権限の範囲でコレクションとレコードを確認できます。アカウントがアクセスできないデータは参照できません。`,"ai.starterCollections":`コレクションを要約して`,"ai.starterStructure":`コンテンツ構造とリレーションを説明して`,"ai.starterOverview":`アクセスできるデータを高いレベルで確認して`,"ai.assistantName":`AI`,"ai.you":`あなた`,"ai.operations":`実行した操作`,"ai.operationCollections":`コレクションを確認`,"ai.operationSchema":`{collection} の構造を確認`,"ai.operationReadMany":`{collection} のレコードを読み取り`,"ai.operationReadOne":`{collection} のレコードを1件読み取り`,"ai.operationCreate":`{collection} のレコードを作成`,"ai.operationUpdate":`{collection} のレコードを更新`,"ai.operationDelete":`{collection} のレコードを削除`,"ai.operationGeneric":`{collection} のデータを処理`,"ai.operationData":`YunCMS`,"ai.thinking":`AIが考えています`,"ai.accessMode":`操作アクセス`,"ai.accessRead":`読み取り専用`,"ai.accessReadHint":`データを変更せずにスキーマとレコードを確認します。`,"ai.accessWrite":`自動書き込み`,"ai.accessWriteHint":`明示的な依頼に対して追加確認なしで作成・更新できますが、削除はできません。`,"ai.accessFull":`フルアクセス(削除を含む)`,"ai.accessFullHint":`明示的な依頼に対して追加確認なしで作成、更新、削除できます。`,"ai.accessBoundary":`選択は次のメッセージにのみ適用され、既存のYunCMS権限を超えることはありません。`,"ai.placeholder":`YunCMSについて質問するか、データ操作を依頼してください…`,"ai.disabledPlaceholder":`AIの設定後にチャットを利用できます。`,"ai.send":`送信`,"ai.sending":`処理中…`,"ai.composerHint":`Enterで送信、Shift + Enterで改行。AIはアカウントがアクセスを許可されたデータのみ使用できます。`,"ai.emptyResponse":`AIから空の応答が返されました。`,"ai.requestFailed":`AIリクエストを完了できませんでした。`}),Be=Object.freeze({"nav.ai":`IA`,"section.aiTitle":`IA`,"section.aiDescription":`Converse com seus dados do YunCMS, inspecione seu esquema e, quando permitido, execute operações em registros com linguagem natural.`,"ai.title":`IA`,"ai.ready":`Pronto`,"ai.readyHint":`Funciona com as permissões da sua conta atual.`,"ai.notReady":`Configuração necessária`,"ai.notReadyHint":`Nenhum modelo de IA está conectado ainda.`,"ai.statusFailed":`O status da IA não pôde ser carregado.`,"ai.setupTitle":`A IA ainda não está configurada`,"ai.setupDescription":`Esta tela ficará disponível depois que um administrador conectar um provedor de modelo nas configurações de IA.`,"ai.setupDescriptionAdmin":`Salve a URL do provedor, o modelo e a chave da API diretamente neste painel. Nenhuma configuração separada de aplicativo ou ambiente é necessária.`,"ai.settings":`Configurações`,"ai.openSettings":`Abrir configurações de IA`,"ai.settingsTitle":`Configurações de IA`,"ai.settingsDescription":`Gerencie o provedor do modelo e os limites de segurança aqui. A chave da API é armazenada criptografada e nunca volta a ser exibida depois de salva.`,"ai.settingsClose":`Fechar`,"ai.settingsSave":`Salvar configurações`,"ai.settingsSaving":`Salvando…`,"ai.settingsSaved":`Configurações de IA salvas.`,"ai.settingsSaveFailed":`As configurações de IA não puderam ser salvas.`,"ai.baseUrl":`URL do provedor`,"ai.baseUrlHint":`URL raiz de uma API de chat completions compatível com OpenAI.`,"ai.model":`Modelo`,"ai.apiKey":`Chave da API`,"ai.apiKeyPlaceholder":`Digite a chave da API`,"ai.apiKeyHint":`A chave é armazenada criptografada apenas no servidor.`,"ai.apiKeySaved":`Digite uma nova chave para substituir a chave salva`,"ai.apiKeySavedHint":`Há uma chave da API salva. Seu valor atual nunca é retornado ao Studio.`,"ai.clearApiKey":`Remover a chave da API salva`,"ai.enableAssistant":`Habilitar IA`,"ai.enableAssistantHint":`O chat fica indisponível enquanto estiver desabilitado.`,"ai.enableWrites":`Disponibilizar ações que alteram dados`,"ai.enableWritesHint":`Isso apenas disponibiliza o recurso. Os usuários ainda precisam permitir explicitamente alterações de dados em cada chat.`,"ai.advancedSettings":`Limites avançados`,"ai.maxToolRounds":`Máximo de rodadas de ferramentas`,"ai.maxToolCalls":`Máximo de ações por rodada`,"ai.maxHistory":`Mensagens no histórico da conversa`,"ai.maxOutputTokens":`Máximo de tokens de saída`,"ai.timeout":`Tempo limite (ms)`,"ai.maxMessageChars":`Limite de caracteres da mensagem`,"ai.maxToolResultBytes":`Limite em bytes do resultado da ferramenta`,"ai.newChat":`Novo chat`,"ai.welcomeTitle":`Converse com seus dados do YunCMS`,"ai.welcomeDescription":`Posso inspecionar coleções e registros dentro das permissões do usuário atual. Não posso ver dados aos quais sua conta não tem acesso.`,"ai.starterCollections":`Resuma minhas coleções`,"ai.starterStructure":`Explique minha estrutura de conteúdo e relações`,"ai.starterOverview":`Revise em alto nível os dados aos quais tenho acesso`,"ai.assistantName":`IA`,"ai.you":`Você`,"ai.operations":`Operações realizadas`,"ai.operationCollections":`Coleções inspecionadas`,"ai.operationSchema":`Estrutura de {collection} inspecionada`,"ai.operationReadMany":`Registros de {collection} lidos`,"ai.operationReadOne":`Um registro de {collection} foi lido`,"ai.operationCreate":`Um registro de {collection} foi criado`,"ai.operationUpdate":`Um registro de {collection} foi atualizado`,"ai.operationDelete":`Um registro de {collection} foi excluído`,"ai.operationGeneric":`Dados de {collection} processados`,"ai.operationData":`YunCMS`,"ai.thinking":`A IA está pensando`,"ai.accessMode":`Acesso às ações`,"ai.accessRead":`Somente leitura`,"ai.accessReadHint":`Inspeciona esquema e registros sem alterar dados.`,"ai.accessWrite":`Escritas automáticas`,"ai.accessWriteHint":`Pode criar e atualizar mediante sua solicitação explícita sem outra aprovação; não pode excluir.`,"ai.accessFull":`Acesso total (com exclusão)`,"ai.accessFullHint":`Pode criar, atualizar e excluir mediante sua solicitação explícita sem outra aprovação.`,"ai.accessBoundary":`A escolha vale apenas para a próxima mensagem e nunca ultrapassa suas permissões existentes no YunCMS.`,"ai.placeholder":`Pergunte algo sobre o YunCMS ou solicite uma operação nos seus dados…`,"ai.disabledPlaceholder":`O chat ficará disponível depois que a IA for configurada.`,"ai.send":`Enviar`,"ai.sending":`Processando…`,"ai.composerHint":`Enter envia, Shift + Enter adiciona uma nova linha. A IA só pode usar dados aos quais sua conta tem acesso.`,"ai.emptyResponse":`A IA retornou uma resposta vazia.`,"ai.requestFailed":`A solicitação de IA não pôde ser concluída.`}),Ve=Object.freeze({"nav.ai":`Yapay Zeka`,"section.aiTitle":`Yapay Zeka`,"section.aiDescription":`YunCMS verilerinle konuş, şemanı incelet ve izin verdiğinde kayıt işlemlerini doğal dille yaptır.`,"ai.title":`Yapay Zeka`,"ai.ready":`Hazır`,"ai.readyHint":`Mevcut hesabının izinleriyle çalışıyor.`,"ai.notReady":`Yapılandırma gerekli`,"ai.notReadyHint":`Henüz bir yapay zeka modeli bağlanmamış.`,"ai.statusFailed":`Yapay Zeka durumu alınamadı.`,"ai.setupTitle":`Yapay Zeka henüz yapılandırılmamış`,"ai.setupDescription":`Bir yönetici Yapay Zeka ayarlarından model sağlayıcısını bağladığında bu ekran kullanıma açılır.`,"ai.setupDescriptionAdmin":`Sağlayıcı adresini, modeli ve API anahtarını doğrudan bu panelden kaydedebilirsin. Ayrı bir uygulama veya sunucu ayarı gerekmez.`,"ai.settings":`Ayarlar`,"ai.openSettings":`Yapay Zeka ayarlarını aç`,"ai.settingsTitle":`Yapay Zeka ayarları`,"ai.settingsDescription":`Model sağlayıcısını ve güvenlik sınırlarını buradan yönet. API anahtarı şifreli saklanır ve kaydedildikten sonra tekrar gösterilmez.`,"ai.settingsClose":`Kapat`,"ai.settingsSave":`Ayarları kaydet`,"ai.settingsSaving":`Kaydediliyor…`,"ai.settingsSaved":`Yapay Zeka ayarları kaydedildi.`,"ai.settingsSaveFailed":`Yapay Zeka ayarları kaydedilemedi.`,"ai.baseUrl":`Sağlayıcı adresi`,"ai.baseUrlHint":`OpenAI uyumlu chat completions API kök adresi.`,"ai.model":`Model`,"ai.apiKey":`API anahtarı`,"ai.apiKeyPlaceholder":`API anahtarını gir`,"ai.apiKeyHint":`Anahtar yalnız sunucuda şifrelenmiş olarak saklanır.`,"ai.apiKeySaved":`Kayıtlı anahtarı değiştirmek için yeni anahtar gir`,"ai.apiKeySavedHint":`Bir API anahtarı kayıtlı. Güvenlik nedeniyle mevcut değer gösterilmez.`,"ai.clearApiKey":`Kayıtlı API anahtarını sil`,"ai.enableAssistant":`Yapay Zeka açık`,"ai.enableAssistantHint":`Kapalıyken sohbet kullanılamaz.`,"ai.enableWrites":`Veri değiştirme özelliğini kullanılabilir yap`,"ai.enableWritesHint":`Bu yalnız özelliği açar; kullanıcı yine her sohbette ayrıca veri değişikliklerine izin vermelidir.`,"ai.advancedSettings":`Gelişmiş sınırlar`,"ai.maxToolRounds":`Maksimum araç turu`,"ai.maxToolCalls":`Tur başına maksimum işlem`,"ai.maxHistory":`Sohbet geçmişi mesajı`,"ai.maxOutputTokens":`Maksimum çıktı tokenı`,"ai.timeout":`Zaman aşımı (ms)`,"ai.maxMessageChars":`Mesaj karakter sınırı`,"ai.maxToolResultBytes":`Araç sonucu byte sınırı`,"ai.newChat":`Yeni sohbet`,"ai.welcomeTitle":`YunCMS verilerinle konuş`,"ai.welcomeDescription":`Koleksiyonlarını ve kayıtlarını mevcut kullanıcı izinlerin dahilinde inceleyebilirim. Erişimin olmayan verileri göremem.`,"ai.starterCollections":`Koleksiyonlarımı özetle`,"ai.starterStructure":`İçerik yapımı ve ilişkilerimi anlat`,"ai.starterOverview":`Erişebildiğim verileri genel olarak incele`,"ai.assistantName":`Yapay Zeka`,"ai.you":`Sen`,"ai.operations":`Yapılan işlemler`,"ai.operationCollections":`Koleksiyonları inceledi`,"ai.operationSchema":`{collection} yapısını inceledi`,"ai.operationReadMany":`{collection} kayıtlarını okudu`,"ai.operationReadOne":`{collection} kaydını okudu`,"ai.operationCreate":`{collection} kaydı oluşturdu`,"ai.operationUpdate":`{collection} kaydını güncelledi`,"ai.operationDelete":`{collection} kaydını sildi`,"ai.operationGeneric":`{collection} verisini işledi`,"ai.operationData":`YunCMS`,"ai.thinking":`Yapay Zeka düşünüyor`,"ai.accessMode":`İşlem yetkisi`,"ai.accessRead":`Salt okunur`,"ai.accessReadHint":`Yalnız şema ve kayıtları inceler; hiçbir veriyi değiştirmez.`,"ai.accessWrite":`Otomatik yazma`,"ai.accessWriteHint":`Açık isteğinde ayrıca onay sormadan kayıt oluşturabilir ve güncelleyebilir; silemez.`,"ai.accessFull":`Tam yetki (silme dahil)`,"ai.accessFullHint":`Açık isteğinde ayrıca onay sormadan oluşturabilir, güncelleyebilir ve silebilir.`,"ai.accessBoundary":`Seçim yalnız yeni mesaj için geçerlidir ve hesabının mevcut YunCMS yetkilerini aşmaz.`,"ai.placeholder":`YunCMS hakkında bir şey sor veya verilerinle ilgili bir işlem iste…`,"ai.disabledPlaceholder":`Yapay Zeka yapılandırıldığında sohbet kullanılabilir.`,"ai.send":`Gönder`,"ai.sending":`Çalışıyor…`,"ai.composerHint":`Enter gönderir, Shift + Enter yeni satır açar. Yapay Zeka yalnız hesabının erişebildiği verileri kullanabilir.`,"ai.emptyResponse":`Yapay Zeka boş bir yanıt döndürdü.`,"ai.requestFailed":`Yapay Zeka isteği tamamlanamadı.`}),He=Object.freeze({"nav.ai":`AI`,"section.aiTitle":`AI`,"section.aiDescription":`与 YunCMS 数据对话、检查架构,并在您允许时用自然语言执行记录操作。`,"ai.title":`AI`,"ai.ready":`已就绪`,"ai.readyHint":`按当前账户的权限工作。`,"ai.notReady":`需要配置`,"ai.notReadyHint":`尚未连接 AI 模型。`,"ai.statusFailed":`无法加载 AI 状态。`,"ai.setupTitle":`AI 尚未配置`,"ai.setupDescription":`管理员在 AI 设置中连接模型提供商后,此屏幕即可使用。`,"ai.setupDescriptionAdmin":`直接在此面板保存提供商 URL、模型和 API 密钥。不需要额外的应用或环境配置。`,"ai.settings":`设置`,"ai.openSettings":`打开 AI 设置`,"ai.settingsTitle":`AI 设置`,"ai.settingsDescription":`在这里管理模型提供商和安全限制。API 密钥会加密存储,保存后不会再次显示。`,"ai.settingsClose":`关闭`,"ai.settingsSave":`保存设置`,"ai.settingsSaving":`保存中…`,"ai.settingsSaved":`AI 设置已保存。`,"ai.settingsSaveFailed":`无法保存 AI 设置。`,"ai.baseUrl":`提供商 URL`,"ai.baseUrlHint":`OpenAI 兼容 Chat Completions API 的根 URL。`,"ai.model":`模型`,"ai.apiKey":`API 密钥`,"ai.apiKeyPlaceholder":`输入 API 密钥`,"ai.apiKeyHint":`密钥仅在服务器上加密存储。`,"ai.apiKeySaved":`输入新密钥以替换已保存密钥`,"ai.apiKeySavedHint":`已有 API 密钥保存。现有值永远不会返回到 Studio。`,"ai.clearApiKey":`移除已保存的 API 密钥`,"ai.enableAssistant":`启用 AI`,"ai.enableAssistantHint":`禁用时无法使用聊天。`,"ai.enableWrites":`允许提供会修改数据的操作`,"ai.enableWritesHint":`这只会让功能可用。用户仍需在每次聊天中明确允许数据更改。`,"ai.advancedSettings":`高级限制`,"ai.maxToolRounds":`最大工具轮次`,"ai.maxToolCalls":`每轮最大操作数`,"ai.maxHistory":`会话历史消息数`,"ai.maxOutputTokens":`最大输出 token 数`,"ai.timeout":`超时(ms)`,"ai.maxMessageChars":`消息字符上限`,"ai.maxToolResultBytes":`工具结果字节上限`,"ai.newChat":`新聊天`,"ai.welcomeTitle":`与您的 YunCMS 数据对话`,"ai.welcomeDescription":`我可以在当前用户权限范围内检查集合和记录。无法查看账户无权访问的数据。`,"ai.starterCollections":`总结我的集合`,"ai.starterStructure":`解释我的内容结构和关系`,"ai.starterOverview":`高层查看我可以访问的数据`,"ai.assistantName":`AI`,"ai.you":`你`,"ai.operations":`已执行操作`,"ai.operationCollections":`已检查集合`,"ai.operationSchema":`已检查 {collection} 的结构`,"ai.operationReadMany":`已读取 {collection} 记录`,"ai.operationReadOne":`已读取一条 {collection} 记录`,"ai.operationCreate":`已创建一条 {collection} 记录`,"ai.operationUpdate":`已更新一条 {collection} 记录`,"ai.operationDelete":`已删除一条 {collection} 记录`,"ai.operationGeneric":`已处理 {collection} 数据`,"ai.operationData":`YunCMS`,"ai.thinking":`AI 正在思考`,"ai.accessMode":`操作访问`,"ai.accessRead":`只读`,"ai.accessReadHint":`检查架构和记录,不修改数据。`,"ai.accessWrite":`自动写入`,"ai.accessWriteHint":`可根据您的明确请求在无需再次确认的情况下创建和更新;不能删除。`,"ai.accessFull":`完全访问(含删除)`,"ai.accessFullHint":`可根据您的明确请求在无需再次确认的情况下创建、更新和删除。`,"ai.accessBoundary":`此选择仅适用于下一条消息,并且不会超过您现有的 YunCMS 权限。`,"ai.placeholder":`询问有关 YunCMS 的问题,或请求对数据执行操作…`,"ai.disabledPlaceholder":`配置 AI 后即可使用聊天。`,"ai.send":`发送`,"ai.sending":`处理中…`,"ai.composerHint":`Enter 发送,Shift + Enter 换行。AI 只能使用您的账户有权访问的数据。`,"ai.emptyResponse":`AI 返回了空响应。`,"ai.requestFailed":`无法完成 AI 请求。`}),Ue=Object.freeze({"common.cancel":`Abbrechen`,"common.confirm":`Bestätigen`,"common.save":`Speichern`,"common.saving":`Wird gespeichert…`,"common.saved":`Gespeichert`,"common.delete":`Löschen`,"common.edit":`Bearbeiten`,"common.create":`Erstellen`,"common.creating":`Wird erstellt…`,"common.search":`Suchen`,"common.reset":`Zurücksetzen`,"common.loading":`Wird geladen…`,"common.none":`Keine`,"common.optional":`Optional`,"common.required":`Erforderlich`,"common.readonly":`Nur lesen`,"common.yes":`Ja`,"common.no":`Nein`,"common.all":`Alle`,"common.close":`Schließen`,"common.back":`Zurück`,"common.next":`Weiter`,"common.previous":`Zurück`,"common.name":`Name`,"common.status":`Status`,"common.actions":`Aktionen`,"common.type":`Typ`,"common.filter":`Filter`,"common.sort":`Sortieren`,"common.direction":`Richtung`,"common.ascending":`Aufsteigend`,"common.descending":`Absteigend`,"common.refresh":`Aktualisieren`,"common.resetFilters":`Filter zurücksetzen`,"common.confirmation":`Bestätigung`,"nav.content":`Inhalte`,"nav.library":`Bibliothek`,"nav.settings":`Einstellungen`,"nav.files":`Dateien`,"nav.contentVisibility":`Inhaltssichtbarkeit`,"nav.dataModel":`Datenmodell`,"nav.users":`Benutzer`,"nav.roles":`Rollen & Berechtigungen`,"nav.appearance":`Branding & Erscheinungsbild`,"nav.createFirstCollection":`Erste Collection erstellen`,"app.studio":`Studio`,"app.apiChecking":`API wird geprüft…`,"app.apiOnline":`API online`,"app.apiUnavailable":`API nicht verfügbar`,"app.authenticatedUser":`Authentifizierter Benutzer`,"app.noRole":`Keine Rolle`,"app.signOut":`Abmelden`,"app.signingOut":`Abmeldung läuft…`,"app.contentEmpty":`Erstelle unter Einstellungen eine Collection, um Inhalte zu verwalten.`,"app.contentDescription":`Verwalte die Datensätze dieser Collection.`,"section.visibilityTitle":`Inhaltssichtbarkeit`,"section.visibilityDescription":`Wähle aus, welche Collections in der Inhaltsnavigation erscheinen, ohne ihre Daten zu verändern.`,"section.dataModelTitle":`Datenmodell`,"section.dataModelDescription":`Erstelle MySQL-gestützte Collections, Felder und Beziehungen.`,"section.usersTitle":`Benutzer`,"section.usersDescription":`Verwalte von Administratoren erstellte Benutzer, Rollen und Kontostatus.`,"section.rolesTitle":`Rollen & Berechtigungen`,"section.rolesDescription":`Konfiguriere Rollenzugriff, Feldfreigaben und Zeilenfilter.`,"section.filesTitle":`Dateien`,"section.filesDescription":`Lade Dateien über den konfigurierten Speichertreiber hoch, zeige Vorschauen an und verwalte sie.`,"section.appearanceTitle":`Branding & Erscheinungsbild`,"section.appearanceDescription":`Passe Studio-Logo, Akzentfarbe, Design und Standardsprache an.`,"auth.signIn":`Anmelden`,"auth.resetPassword":`Passwort zurücksetzen`,"auth.signInDescription":`Verwende ein Administratorkonto, um Schema, Inhalte, Benutzer und Berechtigungen zu verwalten.`,"auth.resetDescription":`Gib die E-Mail-Adresse deines Kontos ein, um einen einmaligen Zurücksetzungslink anzufordern.`,"auth.email":`E-Mail`,"auth.password":`Passwort`,"auth.working":`Wird verarbeitet…`,"auth.sendResetLink":`Zurücksetzungslink senden`,"auth.backToSignIn":`Zurück zur Anmeldung`,"auth.forgotPassword":`Passwort vergessen?`,"auth.resetNotice":`Wenn ein aktives Konto zu dieser E-Mail-Adresse existiert, wird ein Zurücksetzungslink gesendet.`,"auth.requestFailed":`Anfrage fehlgeschlagen`,"auth.signInFailed":`Anmeldung fehlgeschlagen`,"auth.verifyEmail":`E-Mail bestätigen`,"auth.setNewPassword":`Neues Passwort festlegen`,"auth.actionWorking":`Anfrage wird abgeschlossen…`,"auth.actionDone":`Deine Anfrage wurde erfolgreich abgeschlossen.`,"auth.actionFailed":`Die Authentifizierungsaktion ist fehlgeschlagen.`,"auth.newPassword":`Neues Passwort`,"auth.confirmPassword":`Passwort bestätigen`,"auth.passwordMismatch":`Die Passwörter stimmen nicht überein.`,"auth.passwordChanged":`Passwort geändert. Bestehende Sitzungen wurden widerrufen.`,"auth.verifyDescription":`Der einmalige Bestätigungstoken wird geprüft.`,"auth.newPasswordDescription":`Wähle ein neues Passwort für dein YunCMS-Konto.`,"auth.complete":`Abschließen`,"appearance.branding":`Branding`,"appearance.brandName":`Markenname`,"appearance.brandNameHint":`Wird in Studio neben dem Logo angezeigt.`,"appearance.logoUrl":`Logo-URL`,"appearance.logoHint":`Ein benutzerdefiniertes Logo ersetzt das standardmäßige Yunsoft-Logo vollständig.`,"appearance.accentColor":`Akzentfarbe`,"appearance.theme":`Design`,"appearance.themeSystem":`System`,"appearance.themeLight":`Hell`,"appearance.themeDark":`Dunkel`,"appearance.defaultLanguage":`Standardsprache`,"appearance.defaultLanguageHint":`Wird verwendet, wenn ein Benutzer keine persönliche Sprache ausgewählt hat.`,"appearance.english":`Englisch`,"appearance.turkish":`Türkçe`,"appearance.currentLanguage":`Meine Sprache`,"appearance.followDefault":`Systemstandard verwenden`,"appearance.preview":`Vorschau`,"appearance.resetYunsoft":`Yunsoft-Branding zurücksetzen`,"appearance.saved":`Studio-Erscheinungsbildeinstellungen gespeichert.`,"appearance.loadWarning":`Das Standard-Branding wird verwendet, da die gespeicherten Studio-Einstellungen nicht geladen werden konnten.`,"appearance.copyright":`© {year} Yunsoft. Alle Rechte vorbehalten.`,"appearance.poweredBy":`Bereitgestellt von Yunsoft`,"visibility.loading":`Collections werden geladen…`,"visibility.empty":`Es sind noch keine Projekt-Collections vorhanden.`,"visibility.showInContent":`In Inhalte anzeigen`,"visibility.visible":`Sichtbar`,"visibility.hidden":`Ausgeblendet`,"visibility.junction":`M2M-Verknüpfung`,"visibility.collection":`Collection`,"visibility.updated":`Sichtbarkeit der Collection aktualisiert.`,"visibility.hint":`M2M-Verknüpfungs-Collections sind standardmäßig ausgeblendet, da sie normalerweise Beziehungslinks statt primärer Inhalte speichern. Du kannst jede Verknüpfung hier sichtbar machen, wenn die direkte Datensatzverwaltung sinnvoll ist.`,"visibility.loadError":`Einstellungen zur Collection-Sichtbarkeit konnten nicht geladen werden`,"visibility.updateError":`Collection-Sichtbarkeit konnte nicht aktualisiert werden`,"visibility.noticeVisible":`{collection} ist jetzt unter Inhalte sichtbar`,"visibility.noticeHidden":`{collection} ist jetzt unter Inhalte ausgeblendet`,"visibility.description":`Wähle aus, welche Collections in der Inhaltsnavigation erscheinen. Das Ausblenden einer Collection löscht niemals ihr Schema oder ihre Datensätze.`,"visibility.visibleCount":`{count} sichtbar`,"visibility.hiddenCount":`{count} ausgeblendet`,"visibility.junctionCount":`{count} Verknüpfungen`,"visibility.searchCollections":`Collections suchen`,"visibility.searchPlaceholder":`Name oder Beschreibung…`,"visibility.show":`Anzeigen`,"visibility.allCollections":`Alle Collections`,"visibility.visibleInContent":`Unter Inhalte sichtbar`,"visibility.hiddenFromContent":`Unter Inhalte ausgeblendet`,"visibility.m2mJunctions":`M2M-Verknüpfungen`,"visibility.emptyTitle":`Keine Projekt-Collections`,"visibility.emptyDescription":`Erstelle zuerst eine Collection im Datenmodell.`,"visibility.noMatchesTitle":`Keine passenden Collections`,"visibility.noMatchesDescription":`Ändere die Suche oder den Sichtbarkeitsfilter.`,"visibility.contentNavigation":`Inhaltsnavigation`,"visibility.showCollection":`{collection} unter Inhalte anzeigen`,"visibility.collections":`Collections`,"files.uploadFile":`Datei hochladen`,"files.uploadFirst":`Erste Datei hochladen`,"files.gallery":`Galerie`,"files.list":`Liste`,"files.searchPlaceholder":`Name, MIME-Typ oder Speicher…`,"files.noFiles":`Keine Dateien entsprechen der aktuellen Ansicht.`,"files.download":`Herunterladen`,"files.previewUnavailable":`Vorschau nicht verfügbar`,"files.editMetadata":`Metadaten bearbeiten`,"files.filename":`Dateiname`,"files.title":`Titel`,"files.size":`Größe`,"files.uploaded":`Hochgeladen`,"files.newest":`Neueste zuerst`,"files.oldest":`Älteste zuerst`,"files.nameAsc":`Name A–Z`,"files.nameDesc":`Name Z–A`,"files.sizeAsc":`Kleinste zuerst`,"files.sizeDesc":`Größte zuerst`,"files.allTypes":`Alle Typen`,"files.images":`Bilder`,"files.image":`Bild`,"files.video":`Video`,"files.audio":`Audio`,"files.pdf":`PDF`,"files.other":`Sonstige`,"files.file":`Datei`,"files.untitled":`Unbenannte Datei`,"files.loadError":`Dateien konnten nicht geladen werden`,"files.uploadedNotice":`Datei hochgeladen`,"files.uploadError":`Datei konnte nicht hochgeladen werden`,"files.downloadError":`Datei konnte nicht heruntergeladen werden`,"files.updatedNotice":`Dateimetadaten aktualisiert`,"files.updateError":`Dateimetadaten konnten nicht aktualisiert werden`,"files.deleteTitle":`Datei löschen?`,"files.deleteDescription":`{file} und der gespeicherte Inhalt werden dauerhaft gelöscht.`,"files.deleteFile":`Datei löschen`,"files.deletedNotice":`Datei gelöscht`,"files.deleteError":`Datei konnte nicht gelöscht werden`,"files.libraryEmptyDescription":`Lade Dateien hoch und verwalte ihre Metadaten.`,"files.libraryCount":`{count} Dateien in der Bibliothek.`,"files.view":`Dateiansicht`,"files.closeUpload":`Upload schließen`,"files.searchFiles":`Dateien suchen`,"files.fileType":`Dateityp`,"files.matchingCount":`{count} Treffer`,"files.upload":`Hochladen`,"files.addFile":`Datei hinzufügen`,"files.dropDescription":`Lege eine Datei hier ab oder wähle sie von deinem Gerät aus.`,"files.chooseFile":`Datei auswählen`,"files.dragDrop":`oder hierher ziehen und ablegen`,"files.uploading":`Wird hochgeladen…`,"files.fileDetails":`Dateidetails`,"files.editDescription":`Bearbeite Titel und Download-Dateinamen, ohne die gespeicherte Datei zu ändern.`,"files.optionalTitle":`Optionaler Anzeigetitel`,"files.downloadFilename":`Download-Dateiname`,"files.saveChanges":`Änderungen speichern`,"files.loading":`Dateien werden geladen…`,"files.noFilesYet":`Noch keine Dateien`,"files.noMatchingFiles":`Keine passenden Dateien`,"files.emptyDescription":`Lade die erste Datei hoch, um deine Bibliothek aufzubauen.`,"files.noMatchDescription":`Versuche eine allgemeinere Suche oder setze die Filter zurück.`,"files.fileGallery":`Dateigalerie`,"files.files":`Dateien`,"files.storage":`Speicher`,"files.loadingPreviewFor":`Vorschau für {file} wird geladen`,"files.loadingPreview":`Vorschau wird geladen`,"users.newUser":`Neuer Benutzer`,"users.searchPlaceholder":`E-Mail, Rolle oder Status…`,"users.role":`Rolle`,"users.verified":`Bestätigt`,"users.unverified":`Nicht bestätigt`,"users.active":`Aktiv`,"users.inactive":`Inaktiv`,"users.suspended":`Gesperrt`,"users.disabled":`Deaktiviert`,"users.noUsers":`Keine passenden Benutzer`,"users.createUser":`Benutzer erstellen`,"users.sendVerification":`Bestätigung senden`,"users.deleteTitle":`Benutzer löschen?`,"users.deleteDescription":`Dadurch wird der ausgewählte Benutzer dauerhaft entfernt.`,"users.emailAsc":`E-Mail A–Z`,"users.emailDesc":`E-Mail Z–A`,"users.recentAccess":`Letzter Zugriff`,"users.oldestAccess":`Ältester Zugriff`,"users.loadError":`Benutzer konnten nicht geladen werden`,"users.createdNotice":`Benutzer erstellt`,"users.createError":`Benutzer konnte nicht erstellt werden`,"users.updatedNotice":`{email} aktualisiert`,"users.updateError":`Benutzer konnte nicht aktualisiert werden`,"users.verificationQueued":`Bestätigungs-E-Mail für {email} in Warteschlange gestellt`,"users.verificationError":`Bestätigungs-E-Mail konnte nicht gesendet werden`,"users.deleteDescriptionEmail":`{email} verliert dauerhaft den Zugriff auf dieses Projekt.`,"users.deleteUser":`Benutzer löschen`,"users.deletedNotice":`{email} gelöscht`,"users.deleteError":`Benutzer konnte nicht gelöscht werden`,"users.summary":`{total} insgesamt · {active} aktiv`,"users.closeForm":`Formular schließen`,"users.allRoles":`Alle Rollen`,"users.allStatuses":`Alle Status`,"users.matchingCount":`{count} passende Benutzer`,"users.resetView":`Ansicht zurücksetzen`,"users.createDescription":`Lege Anmeldedaten und optional eine Rolle fest.`,"users.noMatchDescription":`Versuche eine allgemeinere Suche oder setze die Filter zurück.`,"users.user":`Benutzer`,"users.openUser":`Benutzerseite öffnen`,"users.userDetails":`Benutzerdetails`,"users.userNotFound":`Benutzer nicht gefunden`,"users.userActions":`Kontoaktionen`,"users.userActionsHint":`Sende eine Bestätigung oder lösche ein ungenutztes Konto dauerhaft.`,"users.verification":`Bestätigung`,"users.lastAccess":`Letzter Zugriff`,"users.you":`du`,"users.roleFor":`Rolle für {email}`,"users.statusFor":`Status für {email}`,"users.never":`Nie`,"users.loading":`Benutzer werden geladen…`,"users.noneFound":`Keine Benutzer gefunden.`,"users.users":`Benutzer`,"dataModel.newCollection":`Neue Collection`,"dataModel.projectCollections":`Projekt-Collections`,"dataModel.systemCollections":`System-Collections`,"dataModel.fields":`Felder`,"dataModel.relations":`Beziehungen`,"dataModel.addField":`Feld hinzufügen`,"dataModel.collectionName":`Collection-Name`,"dataModel.fieldName":`Feldname`,"dataModel.noCollections":`Keine Collection entspricht den aktuellen Filtern.`,"dataModel.noFields":`Kein Feld entspricht dieser Suche.`,"dataModel.deleteCollection":`Collection löschen?`,"dataModel.deleteField":`Feld löschen?`,"dataModel.nameAsc":`Name A–Z`,"dataModel.nameDesc":`Name Z–A`,"dataModel.requiredFirst":`Erforderliche zuerst`,"dataModel.schemaLoadError":`Schema konnte nicht geladen werden`,"dataModel.collectionLoadError":`Collection-Schema konnte nicht geladen werden`,"dataModel.collectionCreated":`Collection {name} erstellt`,"dataModel.collectionCreateError":`Collection konnte nicht erstellt werden`,"dataModel.deleteCollectionDescription":`{name} und alle enthaltenen Datensätze werden dauerhaft gelöscht.`,"dataModel.deleteCollectionAction":`Collection löschen`,"dataModel.collectionDeleted":`Collection {name} gelöscht`,"dataModel.collectionDeleteError":`Collection konnte nicht gelöscht werden`,"dataModel.fieldAdded":`Feld {name} hinzugefügt`,"dataModel.fieldCreateError":`Feld konnte nicht erstellt werden`,"dataModel.deleteFieldDescription":`{collection}.{field} und alle darin gespeicherten Werte werden dauerhaft gelöscht.`,"dataModel.deleteFieldAction":`Feld löschen`,"dataModel.fieldDeleted":`Feld {name} gelöscht`,"dataModel.fieldDeleteError":`Feld konnte nicht gelöscht werden`,"dataModel.fieldUpdated":`{name} aktualisiert`,"dataModel.fieldUpdateError":`Feldschema konnte nicht aktualisiert werden`,"dataModel.relationCreated":`Beziehung {collection}.{field} erstellt`,"dataModel.relationCreateError":`Beziehung konnte nicht erstellt werden`,"dataModel.deleteRelation":`Beziehung löschen?`,"dataModel.deleteRelationDescription":`{collection}.{field} verweist nicht mehr auf {target}.`,"dataModel.deleteRelationAction":`Beziehung löschen`,"dataModel.relationDeleted":`Beziehung gelöscht`,"dataModel.relationDeleteError":`Beziehung konnte nicht gelöscht werden`,"dataModel.junctionCreated":`M2M-Verknüpfung {name} erstellt`,"dataModel.m2mCreateError":`M2M-Beziehung konnte nicht erstellt werden`,"dataModel.deleteM2M":`Viele-zu-viele-Beziehung löschen?`,"dataModel.deleteM2MDescription":`{name} und alle enthaltenen Verknüpfungsdatensätze werden dauerhaft gelöscht.`,"dataModel.junctionDeleted":`M2M-Verknüpfung {name} gelöscht`,"dataModel.m2mDeleteError":`M2M-Beziehung konnte nicht gelöscht werden`,"dataModel.collections":`Collections`,"dataModel.collectionSummary":`{project} Projekt · {system} System`,"dataModel.createCollection":`Collection erstellen`,"dataModel.createCollectionHint":"Verwende einen kurzen, maschinenfreundlichen Namen wie `articles`.","dataModel.description":`Beschreibung`,"dataModel.optionalDescription":`Optionale Beschreibung`,"dataModel.findCollection":`Collection suchen`,"dataModel.noProjectCollections":`Noch keine Projekt-Collections.`,"dataModel.noMatchingProject":`Keine passenden Projekt-Collections.`,"dataModel.collectionsLower":`Collections`,"dataModel.systemCollectionsCount":`System-Collections ({count})`,"dataModel.systemManaged":`systemverwaltet`,"dataModel.noMatchingSystem":`Keine passenden System-Collections.`,"dataModel.systemCollectionsLower":`System-Collections`,"dataModel.selectCollection":`Collection auswählen`,"dataModel.selectCollectionDescription":`Wähle links eine Collection aus, um ihre Felder und Beziehungen zu prüfen.`,"dataModel.systemCollection":`System-Collection`,"dataModel.noDescription":`Es wurde keine Beschreibung hinzugefügt.`,"dataModel.fieldCount":`{count} Felder`,"dataModel.collectionSettings":`Collection-Einstellungen`,"dataModel.openField":`Feldseite öffnen`,"dataModel.fieldDetail":`Felddetails`,"dataModel.fieldNotFound":`Dieses Feld wurde nicht gefunden oder entfernt.`,"dataModel.backToFields":`Zurück zu Feldern`,"dataModel.fieldActions":`Feldverhalten`,"dataModel.fieldActionsHint":`Ändere, ob das Feld erforderlich ist, oder lösche ein ungenutztes Feld dauerhaft.`,"dataModel.relationPageHint":`Wähle einen Beziehungstyp; die Konfiguration öffnet sich auf einer eigenen Seite.`,"dataModel.startRelation":`Konfigurieren`,"dataModel.fieldsDescription":`Suche und verwalte die in dieser Collection gespeicherten Felder.`,"dataModel.addFieldHint":`Wähle Feldnamen und Speichertyp. Typkonvertierung ist in V1 bewusst nicht verfügbar.`,"dataModel.maxLength":`Maximale Länge`,"dataModel.requiredValue":`Erforderlicher Wert`,"dataModel.findField":`Feld suchen`,"dataModel.fieldSearchPlaceholder":`Name, Typ, erforderlich…`,"dataModel.sortFields":`Felder sortieren`,"dataModel.makeOptional":`Optional machen`,"dataModel.makeRequired":`Erforderlich machen`,"dataModel.fieldsLower":`Felder`,"dataModel.systemRelationInfo":`Beziehungen von System-Collections sind über Metadaten sichtbar, werden auf diesem Bildschirm jedoch nicht bearbeitet.`,"dataModel.manyToOne":`Viele zu eins`,"dataModel.linkOneRecord":`Mit einem Datensatz verknüpfen`,"dataModel.m2oDescription":`Verwende ein vorhandenes Feld in {collection} als Fremdschlüsselfeld und wähle dann die Ziel-Collection.`,"dataModel.noDirectRelations":`Keine direkten Beziehungen für diese Collection.`,"dataModel.linksTo":`verknüpft mit {collection}.{field}`,"dataModel.fieldIn":`Feld in {collection}`,"dataModel.chooseField":`Feld auswählen`,"dataModel.targetCollection":`Ziel-Collection`,"dataModel.chooseCollection":`Collection auswählen`,"dataModel.ifTargetDeleted":`Wenn das Ziel gelöscht wird`,"dataModel.preventDeletion":`Löschen verhindern`,"dataModel.deleteLinked":`Verknüpfte Datensätze löschen`,"dataModel.clearField":`Dieses Feld leeren`,"dataModel.createRelation":`Beziehung erstellen`,"dataModel.manyToMany":`Viele zu viele`,"dataModel.connectCollections":`Zwei Collections verbinden`,"dataModel.m2mDescription":`YunCMS erstellt eine ausgeblendete Verknüpfungs-Collection, die beide Links speichert.`,"dataModel.noM2MJunctions":`Keine Viele-zu-viele-Verknüpfungen für diese Collection.`,"dataModel.junctionName":`Name der Verknüpfung`,"dataModel.firstCollection":`Erste Collection`,"dataModel.secondCollection":`Zweite Collection`,"dataModel.createJunction":`Verknüpfung erstellen`,"dataModel.loadingSchema":`Schema wird geladen…`,"roles.newRole":`Neue Rolle`,"roles.public":`Öffentlich`,"roles.administrator":`Administrator`,"roles.custom":`Benutzerdefiniert`,"roles.configuredOnly":`Nur konfigurierte`,"roles.collection":`Collection`,"roles.read":`Lesen`,"roles.create":`Erstellen`,"roles.update":`Aktualisieren`,"roles.delete":`Löschen`,"roles.advanced":`Erweitert`,"roles.fieldAccess":`Feldzugriff`,"roles.rowFilter":`Zeilenfilter-JSON`,"roles.validation":`Schreibvalidierungs-JSON`,"roles.noRoles":`Keine passenden Rollen.`,"roles.nameAsc":`Name A–Z`,"roles.nameDesc":`Name Z–A`,"roles.mostRules":`Meiste Regeln`,"roles.loadError":`Rollen und Berechtigungen konnten nicht geladen werden`,"roles.createdNotice":`Rolle erstellt`,"roles.createError":`Rolle konnte nicht erstellt werden`,"roles.updatedNotice":`Rolle aktualisiert`,"roles.updateError":`Rolle konnte nicht aktualisiert werden`,"roles.deleteTitle":`Rolle löschen?`,"roles.deleteDescription":`{name} und alle zugehörigen Berechtigungsregeln werden dauerhaft gelöscht.`,"roles.deleteRole":`Rolle löschen`,"roles.deletedNotice":`Rolle gelöscht`,"roles.deleteError":`Rolle konnte nicht gelöscht werden`,"roles.accessRemoved":`{action}-Zugriff für {collection} entfernt`,"roles.accessGranted":`{action}-Zugriff für {collection} gewährt`,"roles.permissionUpdateError":`Berechtigung konnte nicht aktualisiert werden`,"roles.permissionDetailsError":`Berechtigungsdetails konnten nicht geladen werden`,"roles.chooseFieldError":`Wähle mindestens ein erlaubtes Feld aus oder aktiviere alle Felder.`,"roles.advancedSaved":`Erweiterte Berechtigungsregeln gespeichert`,"roles.invalidJson":`Filter- und Validierungsregeln müssen gültiges JSON enthalten.`,"roles.access":`Zugriff`,"roles.roles":`Rollen`,"roles.summary":`{count} Rollen · wähle eine aus, um den Zugriff zu verwalten.`,"roles.publicRole":`Öffentliche Rolle`,"roles.createRole":`Rolle erstellen`,"roles.findRole":`Rolle suchen`,"roles.adminFullAccess":`Administrator · Vollzugriff`,"roles.customRole":`Benutzerdefinierte Rolle`,"roles.rolesLower":`Rollen`,"roles.selectRole":`Rolle auswählen`,"roles.selectRoleDescription":`Wähle eine Rolle aus, um ihren Zugriff zu verwalten.`,"roles.roleKind":`{kind}-Rolle`,"roles.roleName":`Rollenname`,"roles.saveName":`Name speichern`,"roles.permissionRules":`Berechtigungsregeln`,"roles.fullAdmin":`Voller Administratorzugriff`,"roles.fullAdminDescription":`Diese Rolle umgeht Collection-Berechtigungszeilen. Es ist keine Matrixkonfiguration erforderlich.`,"roles.permissions":`Berechtigungen`,"roles.collectionAccess":`Collection-Zugriff`,"roles.collectionAccessDescription":`Aktiviere die grundlegende Aktion und verwende Konfigurieren nur, wenn Feld- oder Zeilenbeschränkungen erforderlich sind.`,"roles.ruleCount":`{count} Regeln`,"roles.collectionCount":`{visible}/{total} Collections`,"roles.actionCollection":`{action} {collection}`,"roles.allowed":`Erlaubt`,"roles.off":`Aus`,"roles.restricted":`Eingeschränkt`,"roles.configure":`Konfigurieren`,"roles.createCollectionFirst":`Erstelle eine Collection, bevor du Berechtigungen konfigurierst.`,"roles.noMatchingCollections":`Keine Collections entsprechen den aktuellen Berechtigungsfiltern.`,"roles.advancedPermission":`Erweiterte Berechtigung`,"roles.advancedDescription":`Beschränke Felder oder füge Regeln auf Zeilenebene hinzu. Leere JSON-Regeln bedeuten keine zusätzliche Einschränkung.`,"roles.saveRules":`Regeln speichern`,"roles.allowedFields":`Erlaubte Felder`,"roles.allowedFieldsDescription":`Alle Felder ist die einfache Standardeinstellung. Deaktiviere sie, um Felder ausdrücklich auszuwählen.`,"roles.allowAllFields":`Alle Felder erlauben`,"roles.rowFilterDescription":`Nur Zeilen, die dieser Regel entsprechen, sind für diese Aktion zugänglich.`,"roles.validationWriteDescription":`Beim Erstellen/Aktualisieren muss der endgültige Datensatz dieser Regel entsprechen.`,"roles.validationUnsupported":`Validierung gilt nur für Erstell- und Aktualisierungsberechtigungen.`,"roles.openPermission":`Berechtigungsseite öffnen`,"roles.permissionDetail":`Berechtigungsdetails`,"roles.permissionDetailDescription":`Verwalte Zugriffsumfang und Feldregeln für diese Aktion.`,"roles.permissionEnabled":`Berechtigung aktiviert`,"roles.permissionDisabled":`Berechtigung deaktiviert`,"roles.permissionMasterSwitch":`Diese Aktion erlauben`,"roles.permissionMasterSwitchHint":`Wenn deaktiviert, verweigert die API diese Collection und Aktion.`,"roles.enableBeforeRules":`Aktiviere die Berechtigung, bevor du Feld-, Zeilenfilter- und Validierungsregeln bearbeitest.`,"roles.actionOnlyPermission":`Diese Systemressource unterstützt nur Zugriff auf Aktionsebene; es gibt keine zusätzlichen Feld- oder Zeilenregeln.`,"roles.permissionNotFound":`Berechtigungsressource nicht gefunden`,"roles.permissionNotFoundDescription":`Die Collection wurde möglicherweise entfernt oder diese Aktion wird nicht mehr unterstützt.`,"roles.backToRole":`Zurück zur Rolle`,"roles.collectionPermissionHint":`Verwalte Lesen, Erstellen, Aktualisieren und Löschen getrennt.`,"roles.allRecords":`Alle zulässigen Datensätze`,"content.newRecord":`Neuer Datensatz`,"content.searchPlaceholder":`Datensätze suchen…`,"content.noRecords":`Keine passenden Datensätze`,"content.editRecord":`Datensatz bearbeiten`,"content.createRecord":`Datensatz erstellen`,"content.deleteRecord":`Datensatz löschen?`,"content.deleteDescription":`Dadurch wird der ausgewählte Datensatz dauerhaft entfernt.`,"content.openDataModel":`Datenmodell öffnen`,"content.opContains":`Enthält`,"content.opStartsWith":`Beginnt mit`,"content.opEndsWith":`Endet mit`,"content.opExactly":`Ist genau`,"content.opNot":`Ist nicht`,"content.opEmpty":`Ist leer`,"content.opNotEmpty":`Ist nicht leer`,"content.opEquals":`Ist gleich`,"content.opDoesNotEqual":`Ist nicht gleich`,"content.opGreaterThan":`Größer als`,"content.opGreaterEqual":`Größer oder gleich`,"content.opLessThan":`Kleiner als`,"content.opLessEqual":`Kleiner oder gleich`,"content.opIs":`Ist`,"content.saveError":`Datensatz konnte nicht gespeichert werden`,"content.updateDescription":`Aktualisiere die Felder unten.`,"content.createDescription":`Füge dieser Collection einen neuen Eintrag hinzu.`,"content.select":`Auswählen…`,"content.unknownValue":`Unbekannt ({value})`,"content.relationHint":`{collection} · Anzeige: {field}`,"content.saveRecord":`Datensatz speichern`,"content.schemaLoadError":`Collection-Schema konnte nicht geladen werden`,"content.dataLoadError":`Collection-Daten konnten nicht geladen werden`,"content.recordNotFound":`Datensatz nicht gefunden`,"content.recordNotFoundDescription":`Dieser Datensatz wurde möglicherweise gelöscht oder die URL ist falsch.`,"content.deleteRecordDescription":`Datensatz {id} wird dauerhaft aus {collection} gelöscht.`,"content.deleteRecordAction":`Datensatz löschen`,"content.deleteError":`Datensatz konnte nicht gelöscht werden`,"content.empty":`leer`,"content.notEmpty":`nicht leer`,"content.noCollections":`Noch keine Collections`,"content.noCollectionsDescription":`Erstelle deine erste Collection im Datenmodell. Sie erscheint direkt in der Inhaltsseitenleiste.`,"content.matchingRecords":`{count} passende Datensätze`,"content.dataControls":`Datensteuerung für {collection}`,"content.searchTextFields":`Textfelder durchsuchen…`,"content.noTextFields":`Keine durchsuchbaren Textfelder`,"content.sortBy":`Sortieren nach`,"content.defaultOrder":`Standardreihenfolge`,"content.filterField":`Filterfeld`,"content.condition":`Bedingung`,"content.value":`Wert`,"content.noValueNeeded":`Kein Wert erforderlich`,"content.chooseRecord":`Datensatz auswählen`,"content.chooseValue":`Wert auswählen`,"content.filterValue":`Filterwert`,"content.chooseFieldFirst":`Wähle zuerst ein Feld`,"content.addFilter":`Filter hinzufügen`,"content.filters":`Filter`,"content.filterCount":`{count} aktiv`,"content.activeFilters":`Aktive Filter`,"content.filterHint":`Füge Filter hinzu, um diese Collection einzugrenzen.`,"content.resetView":`Ansicht zurücksetzen`,"content.loadingCollection":`Collection wird geladen…`,"content.noRecordsYet":`Noch keine Datensätze`,"content.firstRecordDescription":`Füge den ersten Datensatz zu {collection} hinzu.`,"content.createFirstRecord":`Ersten Datensatz erstellen`,"content.noMatchDescription":`Entferne einen Filter oder ändere die Suche, um mehr Ergebnisse zu erhalten.`,"content.records":`Datensätze`,"pagination.items":`Einträge`,"pagination.aria":`{label}-Seitennavigation`,"pagination.ofTotal":`von {total} {label}`,"pagination.previousPage":`Vorherige Seite`,"pagination.nextPage":`Nächste Seite`,"pagination.pageOf":`Seite {page} von {totalPages}`,"pagination.page":`Seite {page}`,"pagination.perPage":`Pro Seite`,"pagination.itemsPerPage":`{label} pro Seite`,"pagination.showing":`{start}–{end} von {total} {label}`}),We=Object.freeze({"common.cancel":`Cancel`,"common.confirm":`Confirm`,"common.save":`Save`,"common.saving":`Saving…`,"common.saved":`Saved`,"common.delete":`Delete`,"common.edit":`Edit`,"common.create":`Create`,"common.creating":`Creating…`,"common.search":`Search`,"common.reset":`Reset`,"common.loading":`Loading…`,"common.none":`None`,"common.optional":`Optional`,"common.required":`Required`,"common.readonly":`Read only`,"common.yes":`Yes`,"common.no":`No`,"common.all":`All`,"common.close":`Close`,"common.back":`Back`,"common.next":`Next`,"common.previous":`Previous`,"common.name":`Name`,"common.status":`Status`,"common.actions":`Actions`,"common.type":`Type`,"common.filter":`Filter`,"common.sort":`Sort`,"common.direction":`Direction`,"common.ascending":`Ascending`,"common.descending":`Descending`,"common.refresh":`Refresh`,"common.resetFilters":`Reset filters`,"common.confirmation":`Confirmation`,"nav.content":`Content`,"nav.library":`Library`,"nav.settings":`Settings`,"nav.files":`Files`,"nav.contentVisibility":`Content Visibility`,"nav.dataModel":`Data Model`,"nav.users":`Users`,"nav.roles":`Roles & Permissions`,"nav.appearance":`Branding & Appearance`,"nav.createFirstCollection":`Create first collection`,"app.studio":`Studio`,"app.apiChecking":`Checking API…`,"app.apiOnline":`API online`,"app.apiUnavailable":`API unavailable`,"app.authenticatedUser":`Authenticated user`,"app.noRole":`No role`,"app.signOut":`Sign out`,"app.signingOut":`Signing out…`,"app.contentEmpty":`Create a collection in Settings to start managing content.`,"app.contentDescription":`Manage records in this collection.`,"section.visibilityTitle":`Content Visibility`,"section.visibilityDescription":`Choose which collections appear in the Content navigation without changing their data.`,"section.dataModelTitle":`Data Model`,"section.dataModelDescription":`Create collections, fields and relations backed by MySQL.`,"section.usersTitle":`Users`,"section.usersDescription":`Manage administrator-created users, roles and account status.`,"section.rolesTitle":`Roles & Permissions`,"section.rolesDescription":`Configure role access, field allowlists and row filters.`,"section.filesTitle":`Files`,"section.filesDescription":`Upload, preview and manage files through the configured storage driver.`,"section.appearanceTitle":`Branding & Appearance`,"section.appearanceDescription":`Adjust the Studio logo, accent color, theme and default language.`,"auth.signIn":`Sign in`,"auth.resetPassword":`Reset password`,"auth.signInDescription":`Use an administrator account to manage schema, content, users and permissions.`,"auth.resetDescription":`Enter your account email to request a one-time reset link.`,"auth.email":`Email`,"auth.password":`Password`,"auth.working":`Working…`,"auth.sendResetLink":`Send reset link`,"auth.backToSignIn":`Back to sign in`,"auth.forgotPassword":`Forgot password?`,"auth.resetNotice":`If an active account matches this email, a reset link will be sent.`,"auth.requestFailed":`Request failed`,"auth.signInFailed":`Sign in failed`,"auth.verifyEmail":`Verify email`,"auth.setNewPassword":`Set new password`,"auth.actionWorking":`Completing request…`,"auth.actionDone":`Your request was completed successfully.`,"auth.actionFailed":`The authentication action failed.`,"auth.newPassword":`New password`,"auth.confirmPassword":`Confirm password`,"auth.passwordMismatch":`Passwords do not match.`,"auth.passwordChanged":`Password changed. Existing sessions were revoked.`,"auth.verifyDescription":`Checking the one-time verification token.`,"auth.newPasswordDescription":`Choose a new password for your YunCMS account.`,"auth.complete":`Complete`,"appearance.branding":`Branding`,"appearance.brandName":`Brand name`,"appearance.brandNameHint":`Shown next to the logo in Studio.`,"appearance.logoUrl":`Logo URL`,"appearance.logoHint":`Custom logo fully replaces the default Yunsoft logo.`,"appearance.accentColor":`Accent color`,"appearance.theme":`Theme`,"appearance.themeSystem":`System`,"appearance.themeLight":`Light`,"appearance.themeDark":`Dark`,"appearance.defaultLanguage":`Default language`,"appearance.defaultLanguageHint":`Used when a user has not selected a personal language.`,"appearance.english":`English`,"appearance.turkish":`Türkçe`,"appearance.currentLanguage":`My language`,"appearance.followDefault":`Follow system default`,"appearance.preview":`Preview`,"appearance.resetYunsoft":`Reset Yunsoft branding`,"appearance.saved":`Studio appearance settings saved.`,"appearance.loadWarning":`Default branding is being used because saved Studio settings could not be loaded.`,"appearance.copyright":`© {year} Yunsoft. All rights reserved.`,"appearance.poweredBy":`Powered by Yunsoft`,"visibility.loading":`Loading collections…`,"visibility.empty":`No project collections are available yet.`,"visibility.showInContent":`Show in Content`,"visibility.visible":`Visible`,"visibility.hidden":`Hidden`,"visibility.junction":`M2M junction`,"visibility.collection":`Collection`,"visibility.updated":`Collection visibility updated.`,"visibility.hint":`M2M junction collections are hidden by default because they usually store relation links rather than primary content. You can still make any junction visible here when direct record management is useful.`,"visibility.loadError":`Collection visibility settings could not be loaded`,"visibility.updateError":`Collection visibility could not be updated`,"visibility.noticeVisible":`{collection} is now visible in Content`,"visibility.noticeHidden":`{collection} is now hidden from Content`,"visibility.description":`Choose which collections appear in the Content navigation. Hiding a collection never deletes its schema or records.`,"visibility.visibleCount":`{count} visible`,"visibility.hiddenCount":`{count} hidden`,"visibility.junctionCount":`{count} junctions`,"visibility.searchCollections":`Search collections`,"visibility.searchPlaceholder":`Name or description…`,"visibility.show":`Show`,"visibility.allCollections":`All collections`,"visibility.visibleInContent":`Visible in Content`,"visibility.hiddenFromContent":`Hidden from Content`,"visibility.m2mJunctions":`M2M junctions`,"visibility.emptyTitle":`No project collections`,"visibility.emptyDescription":`Create a collection in Data Model first.`,"visibility.noMatchesTitle":`No matching collections`,"visibility.noMatchesDescription":`Change the search or visibility filter.`,"visibility.contentNavigation":`Content navigation`,"visibility.showCollection":`Show {collection} in Content`,"visibility.collections":`collections`,"files.uploadFile":`Upload file`,"files.uploadFirst":`Upload first file`,"files.gallery":`Gallery`,"files.list":`List`,"files.searchPlaceholder":`Name, MIME type or storage…`,"files.noFiles":`No files match the current view.`,"files.download":`Download`,"files.previewUnavailable":`Preview unavailable`,"files.editMetadata":`Edit metadata`,"files.filename":`Filename`,"files.title":`Title`,"files.size":`Size`,"files.uploaded":`Uploaded`,"files.newest":`Newest first`,"files.oldest":`Oldest first`,"files.nameAsc":`Name A–Z`,"files.nameDesc":`Name Z–A`,"files.sizeAsc":`Smallest first`,"files.sizeDesc":`Largest first`,"files.allTypes":`All types`,"files.images":`Images`,"files.image":`Image`,"files.video":`Video`,"files.audio":`Audio`,"files.pdf":`PDF`,"files.other":`Other`,"files.file":`File`,"files.untitled":`Untitled file`,"files.loadError":`Files could not be loaded`,"files.uploadedNotice":`File uploaded`,"files.uploadError":`File could not be uploaded`,"files.downloadError":`File could not be downloaded`,"files.updatedNotice":`File metadata updated`,"files.updateError":`File metadata could not be updated`,"files.deleteTitle":`Delete file?`,"files.deleteDescription":`{file} and its stored content will be permanently deleted.`,"files.deleteFile":`Delete file`,"files.deletedNotice":`File deleted`,"files.deleteError":`File could not be deleted`,"files.libraryEmptyDescription":`Upload files and manage their metadata.`,"files.libraryCount":`{count} files in the library.`,"files.view":`File view`,"files.closeUpload":`Close upload`,"files.searchFiles":`Search files`,"files.fileType":`File type`,"files.matchingCount":`{count} matching`,"files.upload":`Upload`,"files.addFile":`Add a file`,"files.dropDescription":`Drop one file here or choose it from your device.`,"files.chooseFile":`Choose a file`,"files.dragDrop":`or drag and drop it here`,"files.uploading":`Uploading…`,"files.fileDetails":`File details`,"files.editDescription":`Edit the title and download filename without changing the stored file.`,"files.optionalTitle":`Optional display title`,"files.downloadFilename":`Download filename`,"files.saveChanges":`Save changes`,"files.loading":`Loading files…`,"files.noFilesYet":`No files yet`,"files.noMatchingFiles":`No matching files`,"files.emptyDescription":`Upload the first file to start building your library.`,"files.noMatchDescription":`Try a broader search or reset the filters.`,"files.fileGallery":`File gallery`,"files.files":`files`,"files.storage":`Storage`,"files.loadingPreviewFor":`Loading preview for {file}`,"files.loadingPreview":`Loading preview`,"users.newUser":`New user`,"users.searchPlaceholder":`Email, role or status…`,"users.role":`Role`,"users.verified":`Verified`,"users.unverified":`Not verified`,"users.active":`Active`,"users.inactive":`Inactive`,"users.suspended":`Suspended`,"users.disabled":`Disabled`,"users.noUsers":`No matching users`,"users.createUser":`Create user`,"users.sendVerification":`Send verification`,"users.deleteTitle":`Delete user?`,"users.deleteDescription":`This permanently removes the selected user.`,"users.emailAsc":`Email A–Z`,"users.emailDesc":`Email Z–A`,"users.recentAccess":`Recent access`,"users.oldestAccess":`Oldest access`,"users.loadError":`Users could not be loaded`,"users.createdNotice":`User created`,"users.createError":`User could not be created`,"users.updatedNotice":`Updated {email}`,"users.updateError":`User could not be updated`,"users.verificationQueued":`Verification email queued for {email}`,"users.verificationError":`Verification email could not be sent`,"users.deleteDescriptionEmail":`{email} will permanently lose access to this project.`,"users.deleteUser":`Delete user`,"users.deletedNotice":`Deleted {email}`,"users.deleteError":`User could not be deleted`,"users.summary":`{total} total · {active} active`,"users.closeForm":`Close form`,"users.allRoles":`All roles`,"users.allStatuses":`All statuses`,"users.matchingCount":`{count} matching users`,"users.resetView":`Reset view`,"users.createDescription":`Set login credentials and an optional role.`,"users.noMatchDescription":`Try a broader search or reset the filters.`,"users.user":`User`,"users.openUser":`Open user page`,"users.userDetails":`User details`,"users.userNotFound":`User not found`,"users.userActions":`Account actions`,"users.userActionsHint":`Send verification or permanently delete an unused account.`,"users.verification":`Verification`,"users.lastAccess":`Last access`,"users.you":`you`,"users.roleFor":`Role for {email}`,"users.statusFor":`Status for {email}`,"users.never":`Never`,"users.loading":`Loading users…`,"users.noneFound":`No users found.`,"users.users":`users`,"dataModel.newCollection":`New collection`,"dataModel.projectCollections":`Project collections`,"dataModel.systemCollections":`System collections`,"dataModel.fields":`Fields`,"dataModel.relations":`Relations`,"dataModel.addField":`Add field`,"dataModel.collectionName":`Collection name`,"dataModel.fieldName":`Field name`,"dataModel.noCollections":`No collections match the current filters.`,"dataModel.noFields":`No fields match this search.`,"dataModel.deleteCollection":`Delete collection?`,"dataModel.deleteField":`Delete field?`,"dataModel.nameAsc":`Name A–Z`,"dataModel.nameDesc":`Name Z–A`,"dataModel.requiredFirst":`Required first`,"dataModel.schemaLoadError":`Schema could not be loaded`,"dataModel.collectionLoadError":`Collection schema could not be loaded`,"dataModel.collectionCreated":`Created collection {name}`,"dataModel.collectionCreateError":`Collection could not be created`,"dataModel.deleteCollectionDescription":`{name} and every record it contains will be permanently deleted.`,"dataModel.deleteCollectionAction":`Delete collection`,"dataModel.collectionDeleted":`Deleted collection {name}`,"dataModel.collectionDeleteError":`Collection could not be deleted`,"dataModel.fieldAdded":`Added field {name}`,"dataModel.fieldCreateError":`Field could not be created`,"dataModel.deleteFieldDescription":`{collection}.{field} and all values stored in it will be permanently deleted.`,"dataModel.deleteFieldAction":`Delete field`,"dataModel.fieldDeleted":`Deleted field {name}`,"dataModel.fieldDeleteError":`Field could not be deleted`,"dataModel.fieldUpdated":`Updated {name}`,"dataModel.fieldUpdateError":`Field schema could not be updated`,"dataModel.relationCreated":`Created relation {collection}.{field}`,"dataModel.relationCreateError":`Relation could not be created`,"dataModel.deleteRelation":`Delete relation?`,"dataModel.deleteRelationDescription":`{collection}.{field} will no longer reference {target}.`,"dataModel.deleteRelationAction":`Delete relation`,"dataModel.relationDeleted":`Relation deleted`,"dataModel.relationDeleteError":`Relation could not be deleted`,"dataModel.junctionCreated":`Created M2M junction {name}`,"dataModel.m2mCreateError":`M2M relation could not be created`,"dataModel.deleteM2M":`Delete many-to-many relation?`,"dataModel.deleteM2MDescription":`{name} and every link record it contains will be permanently deleted.`,"dataModel.junctionDeleted":`Deleted M2M junction {name}`,"dataModel.m2mDeleteError":`M2M relation could not be deleted`,"dataModel.collections":`Collections`,"dataModel.collectionSummary":`{project} project · {system} system`,"dataModel.createCollection":`Create collection`,"dataModel.createCollectionHint":"Use a short machine-friendly name such as `articles`.","dataModel.description":`Description`,"dataModel.optionalDescription":`Optional description`,"dataModel.findCollection":`Find collection`,"dataModel.noProjectCollections":`No project collections yet.`,"dataModel.noMatchingProject":`No matching project collections.`,"dataModel.collectionsLower":`collections`,"dataModel.systemCollectionsCount":`System collections ({count})`,"dataModel.systemManaged":`system managed`,"dataModel.noMatchingSystem":`No matching system collections.`,"dataModel.systemCollectionsLower":`system collections`,"dataModel.selectCollection":`Select a collection`,"dataModel.selectCollectionDescription":`Choose a collection on the left to inspect its fields and relations.`,"dataModel.systemCollection":`System collection`,"dataModel.noDescription":`No description has been added.`,"dataModel.fieldCount":`{count} fields`,"dataModel.collectionSettings":`Collection settings`,"dataModel.openField":`Open field page`,"dataModel.fieldDetail":`Field details`,"dataModel.fieldNotFound":`This field was not found or has been removed.`,"dataModel.backToFields":`Back to fields`,"dataModel.fieldActions":`Field behavior`,"dataModel.fieldActionsHint":`Change whether the field is required or permanently delete an unused field.`,"dataModel.relationPageHint":`Choose a relation type; configuration opens on its own page.`,"dataModel.startRelation":`Configure`,"dataModel.fieldsDescription":`Search and manage the fields stored on this collection.`,"dataModel.addFieldHint":`Choose a field name and storage type. Type conversion is intentionally not available in V1.`,"dataModel.maxLength":`Max length`,"dataModel.requiredValue":`Required value`,"dataModel.findField":`Find field`,"dataModel.fieldSearchPlaceholder":`Name, type, required…`,"dataModel.sortFields":`Sort fields`,"dataModel.makeOptional":`Make optional`,"dataModel.makeRequired":`Make required`,"dataModel.fieldsLower":`fields`,"dataModel.systemRelationInfo":`System collection relations are visible through metadata but are not edited from this screen.`,"dataModel.manyToOne":`Many to one`,"dataModel.linkOneRecord":`Link to one record`,"dataModel.m2oDescription":`Use an existing field in {collection} as the foreign-key field, then choose the target collection.`,"dataModel.noDirectRelations":`No direct relations for this collection.`,"dataModel.linksTo":`links to {collection}.{field}`,"dataModel.fieldIn":`Field in {collection}`,"dataModel.chooseField":`Choose field`,"dataModel.targetCollection":`Target collection`,"dataModel.chooseCollection":`Choose collection`,"dataModel.ifTargetDeleted":`If target is deleted`,"dataModel.preventDeletion":`Prevent deletion`,"dataModel.deleteLinked":`Delete linked records`,"dataModel.clearField":`Clear this field`,"dataModel.createRelation":`Create relation`,"dataModel.manyToMany":`Many to many`,"dataModel.connectCollections":`Connect two collections`,"dataModel.m2mDescription":`YunCMS creates a hidden junction collection that stores both links.`,"dataModel.noM2MJunctions":`No many-to-many junctions for this collection.`,"dataModel.junctionName":`Junction name`,"dataModel.firstCollection":`First collection`,"dataModel.secondCollection":`Second collection`,"dataModel.createJunction":`Create junction`,"dataModel.loadingSchema":`Loading schema…`,"roles.newRole":`New role`,"roles.public":`Public`,"roles.administrator":`Administrator`,"roles.custom":`Custom`,"roles.configuredOnly":`Configured only`,"roles.collection":`Collection`,"roles.read":`Read`,"roles.create":`Create`,"roles.update":`Update`,"roles.delete":`Delete`,"roles.advanced":`Advanced`,"roles.fieldAccess":`Field access`,"roles.rowFilter":`Row filter JSON`,"roles.validation":`Write validation JSON`,"roles.noRoles":`No matching roles.`,"roles.nameAsc":`Name A–Z`,"roles.nameDesc":`Name Z–A`,"roles.mostRules":`Most rules`,"roles.loadError":`Roles and permissions could not be loaded`,"roles.createdNotice":`Role created`,"roles.createError":`Role could not be created`,"roles.updatedNotice":`Role updated`,"roles.updateError":`Role could not be updated`,"roles.deleteTitle":`Delete role?`,"roles.deleteDescription":`{name} and all of its permission rules will be permanently deleted.`,"roles.deleteRole":`Delete role`,"roles.deletedNotice":`Role deleted`,"roles.deleteError":`Role could not be deleted`,"roles.accessRemoved":`{action} access removed for {collection}`,"roles.accessGranted":`{action} access granted for {collection}`,"roles.permissionUpdateError":`Permission could not be updated`,"roles.permissionDetailsError":`Permission details could not be loaded`,"roles.chooseFieldError":`Choose at least one allowed field or enable all fields.`,"roles.advancedSaved":`Advanced permission rules saved`,"roles.invalidJson":`Filter and validation rules must contain valid JSON.`,"roles.access":`Access`,"roles.roles":`Roles`,"roles.summary":`{count} roles · choose one to manage access.`,"roles.publicRole":`Public role`,"roles.createRole":`Create role`,"roles.findRole":`Find role`,"roles.adminFullAccess":`Administrator · full access`,"roles.customRole":`Custom role`,"roles.rolesLower":`roles`,"roles.selectRole":`Select a role`,"roles.selectRoleDescription":`Choose a role to manage its access.`,"roles.roleKind":`{kind} role`,"roles.roleName":`Role name`,"roles.saveName":`Save name`,"roles.permissionRules":`permission rules`,"roles.fullAdmin":`Full administrator access`,"roles.fullAdminDescription":`This role bypasses collection permission rows. No matrix configuration is required.`,"roles.permissions":`Permissions`,"roles.collectionAccess":`Collection access`,"roles.collectionAccessDescription":`Enable the basic action, then use Configure only when a field or row restriction is needed.`,"roles.ruleCount":`{count} rules`,"roles.collectionCount":`{visible}/{total} collections`,"roles.actionCollection":`{action} {collection}`,"roles.allowed":`Allowed`,"roles.off":`Off`,"roles.restricted":`Restricted`,"roles.configure":`Configure`,"roles.createCollectionFirst":`Create a collection before configuring permissions.`,"roles.noMatchingCollections":`No collections match the current permission filters.`,"roles.advancedPermission":`Advanced permission`,"roles.advancedDescription":`Limit fields or add row-level rules. Empty JSON rules mean no extra restriction.`,"roles.saveRules":`Save rules`,"roles.allowedFields":`Allowed fields`,"roles.allowedFieldsDescription":`All fields is the simple default. Turn it off to explicitly choose fields.`,"roles.allowAllFields":`Allow all fields`,"roles.rowFilterDescription":`Only rows matching this rule are accessible for this action.`,"roles.validationWriteDescription":`For create/update, the final record must match this rule.`,"roles.validationUnsupported":`Validation applies only to create and update permissions.`,"roles.openPermission":`Open permission page`,"roles.permissionDetail":`Permission details`,"roles.permissionDetailDescription":`Manage the access scope and field rules for this action.`,"roles.permissionEnabled":`Permission enabled`,"roles.permissionDisabled":`Permission disabled`,"roles.permissionMasterSwitch":`Allow this action`,"roles.permissionMasterSwitchHint":`When disabled, the API denies this collection and action.`,"roles.enableBeforeRules":`Enable the permission before editing field, row-filter and validation rules.`,"roles.actionOnlyPermission":`This system resource supports action-level access only; there are no extra field or row rules.`,"roles.permissionNotFound":`Permission resource not found`,"roles.permissionNotFoundDescription":`The collection may have been removed or this action may no longer be supported.`,"roles.backToRole":`Back to role`,"roles.collectionPermissionHint":`Manage read, create, update and delete actions separately.`,"roles.allRecords":`All eligible records`,"content.newRecord":`New record`,"content.searchPlaceholder":`Search records…`,"content.noRecords":`No matching records`,"content.editRecord":`Edit record`,"content.createRecord":`Create record`,"content.deleteRecord":`Delete record?`,"content.deleteDescription":`This permanently removes the selected record.`,"content.openDataModel":`Open Data Model`,"content.opContains":`Contains`,"content.opStartsWith":`Starts with`,"content.opEndsWith":`Ends with`,"content.opExactly":`Is exactly`,"content.opNot":`Is not`,"content.opEmpty":`Is empty`,"content.opNotEmpty":`Is not empty`,"content.opEquals":`Equals`,"content.opDoesNotEqual":`Does not equal`,"content.opGreaterThan":`Greater than`,"content.opGreaterEqual":`Greater than or equal`,"content.opLessThan":`Less than`,"content.opLessEqual":`Less than or equal`,"content.opIs":`Is`,"content.saveError":`Record could not be saved`,"content.updateDescription":`Update the fields below.`,"content.createDescription":`Add a new item to this collection.`,"content.select":`Select…`,"content.unknownValue":`Unknown ({value})`,"content.relationHint":`{collection} · display: {field}`,"content.saveRecord":`Save record`,"content.schemaLoadError":`Collection schema could not be loaded`,"content.dataLoadError":`Collection data could not be loaded`,"content.recordNotFound":`Record not found`,"content.recordNotFoundDescription":`This record may have been deleted, or the URL may be incorrect.`,"content.deleteRecordDescription":`Record {id} will be permanently deleted from {collection}.`,"content.deleteRecordAction":`Delete record`,"content.deleteError":`Record could not be deleted`,"content.empty":`empty`,"content.notEmpty":`not empty`,"content.noCollections":`No collections yet`,"content.noCollectionsDescription":`Create your first collection in Data Model. It will appear directly in the Content sidebar.`,"content.matchingRecords":`{count} matching records`,"content.dataControls":`{collection} data controls`,"content.searchTextFields":`Search text fields…`,"content.noTextFields":`No text fields to search`,"content.sortBy":`Sort by`,"content.defaultOrder":`Default order`,"content.filterField":`Filter field`,"content.condition":`Condition`,"content.value":`Value`,"content.noValueNeeded":`No value needed`,"content.chooseRecord":`Choose record`,"content.chooseValue":`Choose value`,"content.filterValue":`Filter value`,"content.chooseFieldFirst":`Choose a field first`,"content.addFilter":`Add filter`,"content.filters":`Filters`,"content.filterCount":`{count} active`,"content.activeFilters":`Active filters`,"content.filterHint":`Add filters to narrow this collection.`,"content.resetView":`Reset view`,"content.loadingCollection":`Loading collection…`,"content.noRecordsYet":`No records yet`,"content.firstRecordDescription":`Add the first record to {collection}.`,"content.createFirstRecord":`Create first record`,"content.noMatchDescription":`Remove a filter or change your search to broaden the results.`,"content.records":`records`,"pagination.items":`items`,"pagination.aria":`{label} pagination`,"pagination.ofTotal":`of {total} {label}`,"pagination.previousPage":`Previous page`,"pagination.nextPage":`Next page`,"pagination.pageOf":`Page {page} of {totalPages}`,"pagination.page":`Page {page}`,"pagination.perPage":`Per page`,"pagination.itemsPerPage":`{label} per page`,"pagination.showing":`Showing {start}–{end} of {total} {label}`}),Ge=Object.freeze({"common.cancel":`Cancelar`,"common.confirm":`Confirmar`,"common.save":`Guardar`,"common.saving":`Guardando…`,"common.saved":`Guardado`,"common.delete":`Eliminar`,"common.edit":`Editar`,"common.create":`Crear`,"common.creating":`Creando…`,"common.search":`Buscar`,"common.reset":`Restablecer`,"common.loading":`Cargando…`,"common.none":`Ninguno`,"common.optional":`Opcional`,"common.required":`Obligatorio`,"common.readonly":`Solo lectura`,"common.yes":`Sí`,"common.no":`No`,"common.all":`Todos`,"common.close":`Cerrar`,"common.back":`Atrás`,"common.next":`Siguiente`,"common.previous":`Anterior`,"common.name":`Nombre`,"common.status":`Estado`,"common.actions":`Acciones`,"common.type":`Tipo`,"common.filter":`Filtro`,"common.sort":`Ordenar`,"common.direction":`Dirección`,"common.ascending":`Ascendente`,"common.descending":`Descendente`,"common.refresh":`Actualizar`,"common.resetFilters":`Restablecer filtros`,"common.confirmation":`Confirmación`,"nav.content":`Contenido`,"nav.library":`Biblioteca`,"nav.settings":`Ajustes`,"nav.files":`Archivos`,"nav.contentVisibility":`Visibilidad del contenido`,"nav.dataModel":`Modelo de datos`,"nav.users":`Usuarios`,"nav.roles":`Roles y permisos`,"nav.appearance":`Marca y apariencia`,"nav.createFirstCollection":`Crear la primera colección`,"app.studio":`Studio`,"app.apiChecking":`Comprobando API…`,"app.apiOnline":`API disponible`,"app.apiUnavailable":`API no disponible`,"app.authenticatedUser":`Usuario autenticado`,"app.noRole":`Sin rol`,"app.signOut":`Cerrar sesión`,"app.signingOut":`Cerrando sesión…`,"app.contentEmpty":`Crea una colección en Ajustes para empezar a gestionar contenido.`,"app.contentDescription":`Gestiona los registros de esta colección.`,"section.visibilityTitle":`Visibilidad del contenido`,"section.visibilityDescription":`Elige qué colecciones aparecen en la navegación de Contenido sin modificar sus datos.`,"section.dataModelTitle":`Modelo de datos`,"section.dataModelDescription":`Crea colecciones, campos y relaciones respaldados por MySQL.`,"section.usersTitle":`Usuarios`,"section.usersDescription":`Gestiona usuarios creados por administradores, roles y estado de las cuentas.`,"section.rolesTitle":`Roles y permisos`,"section.rolesDescription":`Configura acceso por rol, listas de campos permitidos y filtros de filas.`,"section.filesTitle":`Archivos`,"section.filesDescription":`Sube, previsualiza y gestiona archivos mediante el controlador de almacenamiento configurado.`,"section.appearanceTitle":`Marca y apariencia`,"section.appearanceDescription":`Ajusta el logotipo de Studio, el color de acento, el tema y el idioma predeterminado.`,"auth.signIn":`Iniciar sesión`,"auth.resetPassword":`Restablecer contraseña`,"auth.signInDescription":`Usa una cuenta de administrador para gestionar el esquema, contenido, usuarios y permisos.`,"auth.resetDescription":`Introduce el correo de tu cuenta para solicitar un enlace de restablecimiento de un solo uso.`,"auth.email":`Correo electrónico`,"auth.password":`Contraseña`,"auth.working":`Procesando…`,"auth.sendResetLink":`Enviar enlace de restablecimiento`,"auth.backToSignIn":`Volver al inicio de sesión`,"auth.forgotPassword":`¿Olvidaste tu contraseña?`,"auth.resetNotice":`Si existe una cuenta activa con este correo, se enviará un enlace de restablecimiento.`,"auth.requestFailed":`La solicitud falló`,"auth.signInFailed":`No se pudo iniciar sesión`,"auth.verifyEmail":`Verificar correo`,"auth.setNewPassword":`Establecer nueva contraseña`,"auth.actionWorking":`Completando solicitud…`,"auth.actionDone":`La solicitud se completó correctamente.`,"auth.actionFailed":`La acción de autenticación falló.`,"auth.newPassword":`Nueva contraseña`,"auth.confirmPassword":`Confirmar contraseña`,"auth.passwordMismatch":`Las contraseñas no coinciden.`,"auth.passwordChanged":`Contraseña cambiada. Las sesiones existentes fueron revocadas.`,"auth.verifyDescription":`Comprobando el token de verificación de un solo uso.`,"auth.newPasswordDescription":`Elige una nueva contraseña para tu cuenta de YunCMS.`,"auth.complete":`Completar`,"appearance.branding":`Marca`,"appearance.brandName":`Nombre de la marca`,"appearance.brandNameHint":`Se muestra junto al logotipo en Studio.`,"appearance.logoUrl":`URL del logotipo`,"appearance.logoHint":`El logotipo personalizado reemplaza completamente el logotipo predeterminado de Yunsoft.`,"appearance.accentColor":`Color de acento`,"appearance.theme":`Tema`,"appearance.themeSystem":`Sistema`,"appearance.themeLight":`Claro`,"appearance.themeDark":`Oscuro`,"appearance.defaultLanguage":`Idioma predeterminado`,"appearance.defaultLanguageHint":`Se usa cuando un usuario no ha seleccionado un idioma personal.`,"appearance.english":`Inglés`,"appearance.turkish":`Türkçe`,"appearance.currentLanguage":`Mi idioma`,"appearance.followDefault":`Usar el predeterminado del sistema`,"appearance.preview":`Vista previa`,"appearance.resetYunsoft":`Restablecer marca de Yunsoft`,"appearance.saved":`Ajustes de apariencia de Studio guardados.`,"appearance.loadWarning":`Se está usando la marca predeterminada porque no se pudieron cargar los ajustes guardados de Studio.`,"appearance.copyright":`© {year} Yunsoft. Todos los derechos reservados.`,"appearance.poweredBy":`Desarrollado por Yunsoft`,"visibility.loading":`Cargando colecciones…`,"visibility.empty":`Todavía no hay colecciones del proyecto.`,"visibility.showInContent":`Mostrar en Contenido`,"visibility.visible":`Visible`,"visibility.hidden":`Oculta`,"visibility.junction":`Unión M2M`,"visibility.collection":`Colección`,"visibility.updated":`Visibilidad de la colección actualizada.`,"visibility.hint":`Las colecciones de unión M2M están ocultas de forma predeterminada porque normalmente almacenan enlaces de relaciones en lugar de contenido principal. Aun así, puedes hacer visible cualquier unión aquí cuando sea útil gestionar sus registros directamente.`,"visibility.loadError":`No se pudieron cargar los ajustes de visibilidad de colecciones`,"visibility.updateError":`No se pudo actualizar la visibilidad de la colección`,"visibility.noticeVisible":`{collection} ahora es visible en Contenido`,"visibility.noticeHidden":`{collection} ahora está oculta en Contenido`,"visibility.description":`Elige qué colecciones aparecen en la navegación de Contenido. Ocultar una colección nunca elimina su esquema ni sus registros.`,"visibility.visibleCount":`{count} visibles`,"visibility.hiddenCount":`{count} ocultas`,"visibility.junctionCount":`{count} uniones`,"visibility.searchCollections":`Buscar colecciones`,"visibility.searchPlaceholder":`Nombre o descripción…`,"visibility.show":`Mostrar`,"visibility.allCollections":`Todas las colecciones`,"visibility.visibleInContent":`Visible en Contenido`,"visibility.hiddenFromContent":`Oculta en Contenido`,"visibility.m2mJunctions":`Uniones M2M`,"visibility.emptyTitle":`No hay colecciones del proyecto`,"visibility.emptyDescription":`Crea primero una colección en Modelo de datos.`,"visibility.noMatchesTitle":`No hay colecciones coincidentes`,"visibility.noMatchesDescription":`Cambia la búsqueda o el filtro de visibilidad.`,"visibility.contentNavigation":`Navegación de Contenido`,"visibility.showCollection":`Mostrar {collection} en Contenido`,"visibility.collections":`colecciones`,"files.uploadFile":`Subir archivo`,"files.uploadFirst":`Subir el primer archivo`,"files.gallery":`Galería`,"files.list":`Lista`,"files.searchPlaceholder":`Nombre, tipo MIME o almacenamiento…`,"files.noFiles":`Ningún archivo coincide con la vista actual.`,"files.download":`Descargar`,"files.previewUnavailable":`Vista previa no disponible`,"files.editMetadata":`Editar metadatos`,"files.filename":`Nombre de archivo`,"files.title":`Título`,"files.size":`Tamaño`,"files.uploaded":`Subido`,"files.newest":`Más recientes primero`,"files.oldest":`Más antiguos primero`,"files.nameAsc":`Nombre A–Z`,"files.nameDesc":`Nombre Z–A`,"files.sizeAsc":`Más pequeños primero`,"files.sizeDesc":`Más grandes primero`,"files.allTypes":`Todos los tipos`,"files.images":`Imágenes`,"files.image":`Imagen`,"files.video":`Vídeo`,"files.audio":`Audio`,"files.pdf":`PDF`,"files.other":`Otro`,"files.file":`Archivo`,"files.untitled":`Archivo sin título`,"files.loadError":`No se pudieron cargar los archivos`,"files.uploadedNotice":`Archivo subido`,"files.uploadError":`No se pudo subir el archivo`,"files.downloadError":`No se pudo descargar el archivo`,"files.updatedNotice":`Metadatos del archivo actualizados`,"files.updateError":`No se pudieron actualizar los metadatos del archivo`,"files.deleteTitle":`¿Eliminar archivo?`,"files.deleteDescription":`{file} y su contenido almacenado se eliminarán permanentemente.`,"files.deleteFile":`Eliminar archivo`,"files.deletedNotice":`Archivo eliminado`,"files.deleteError":`No se pudo eliminar el archivo`,"files.libraryEmptyDescription":`Sube archivos y gestiona sus metadatos.`,"files.libraryCount":`{count} archivos en la biblioteca.`,"files.view":`Vista de archivos`,"files.closeUpload":`Cerrar subida`,"files.searchFiles":`Buscar archivos`,"files.fileType":`Tipo de archivo`,"files.matchingCount":`{count} coincidentes`,"files.upload":`Subir`,"files.addFile":`Añadir un archivo`,"files.dropDescription":`Suelta un archivo aquí o selecciónalo desde tu dispositivo.`,"files.chooseFile":`Elegir un archivo`,"files.dragDrop":`o arrástralo y suéltalo aquí`,"files.uploading":`Subiendo…`,"files.fileDetails":`Detalles del archivo`,"files.editDescription":`Edita el título y el nombre de descarga sin cambiar el archivo almacenado.`,"files.optionalTitle":`Título de visualización opcional`,"files.downloadFilename":`Nombre de archivo de descarga`,"files.saveChanges":`Guardar cambios`,"files.loading":`Cargando archivos…`,"files.noFilesYet":`Todavía no hay archivos`,"files.noMatchingFiles":`No hay archivos coincidentes`,"files.emptyDescription":`Sube el primer archivo para empezar a crear tu biblioteca.`,"files.noMatchDescription":`Prueba una búsqueda más amplia o restablece los filtros.`,"files.fileGallery":`Galería de archivos`,"files.files":`archivos`,"files.storage":`Almacenamiento`,"files.loadingPreviewFor":`Cargando vista previa de {file}`,"files.loadingPreview":`Cargando vista previa`,"users.newUser":`Nuevo usuario`,"users.searchPlaceholder":`Correo, rol o estado…`,"users.role":`Rol`,"users.verified":`Verificado`,"users.unverified":`No verificado`,"users.active":`Activo`,"users.inactive":`Inactivo`,"users.suspended":`Suspendido`,"users.disabled":`Deshabilitado`,"users.noUsers":`No hay usuarios coincidentes`,"users.createUser":`Crear usuario`,"users.sendVerification":`Enviar verificación`,"users.deleteTitle":`¿Eliminar usuario?`,"users.deleteDescription":`Esto elimina permanentemente al usuario seleccionado.`,"users.emailAsc":`Correo A–Z`,"users.emailDesc":`Correo Z–A`,"users.recentAccess":`Acceso reciente`,"users.oldestAccess":`Acceso más antiguo`,"users.loadError":`No se pudieron cargar los usuarios`,"users.createdNotice":`Usuario creado`,"users.createError":`No se pudo crear el usuario`,"users.updatedNotice":`{email} actualizado`,"users.updateError":`No se pudo actualizar el usuario`,"users.verificationQueued":`Correo de verificación puesto en cola para {email}`,"users.verificationError":`No se pudo enviar el correo de verificación`,"users.deleteDescriptionEmail":`{email} perderá permanentemente el acceso a este proyecto.`,"users.deleteUser":`Eliminar usuario`,"users.deletedNotice":`{email} eliminado`,"users.deleteError":`No se pudo eliminar el usuario`,"users.summary":`{total} en total · {active} activos`,"users.closeForm":`Cerrar formulario`,"users.allRoles":`Todos los roles`,"users.allStatuses":`Todos los estados`,"users.matchingCount":`{count} usuarios coincidentes`,"users.resetView":`Restablecer vista`,"users.createDescription":`Configura las credenciales de acceso y un rol opcional.`,"users.noMatchDescription":`Prueba una búsqueda más amplia o restablece los filtros.`,"users.user":`Usuario`,"users.openUser":`Abrir página del usuario`,"users.userDetails":`Detalles del usuario`,"users.userNotFound":`Usuario no encontrado`,"users.userActions":`Acciones de cuenta`,"users.userActionsHint":`Envía una verificación o elimina permanentemente una cuenta que no se usa.`,"users.verification":`Verificación`,"users.lastAccess":`Último acceso`,"users.you":`tú`,"users.roleFor":`Rol de {email}`,"users.statusFor":`Estado de {email}`,"users.never":`Nunca`,"users.loading":`Cargando usuarios…`,"users.noneFound":`No se encontraron usuarios.`,"users.users":`usuarios`,"dataModel.newCollection":`Nueva colección`,"dataModel.projectCollections":`Colecciones del proyecto`,"dataModel.systemCollections":`Colecciones del sistema`,"dataModel.fields":`Campos`,"dataModel.relations":`Relaciones`,"dataModel.addField":`Añadir campo`,"dataModel.collectionName":`Nombre de la colección`,"dataModel.fieldName":`Nombre del campo`,"dataModel.noCollections":`Ninguna colección coincide con los filtros actuales.`,"dataModel.noFields":`Ningún campo coincide con esta búsqueda.`,"dataModel.deleteCollection":`¿Eliminar colección?`,"dataModel.deleteField":`¿Eliminar campo?`,"dataModel.nameAsc":`Nombre A–Z`,"dataModel.nameDesc":`Nombre Z–A`,"dataModel.requiredFirst":`Obligatorios primero`,"dataModel.schemaLoadError":`No se pudo cargar el esquema`,"dataModel.collectionLoadError":`No se pudo cargar el esquema de la colección`,"dataModel.collectionCreated":`Colección {name} creada`,"dataModel.collectionCreateError":`No se pudo crear la colección`,"dataModel.deleteCollectionDescription":`{name} y todos los registros que contiene se eliminarán permanentemente.`,"dataModel.deleteCollectionAction":`Eliminar colección`,"dataModel.collectionDeleted":`Colección {name} eliminada`,"dataModel.collectionDeleteError":`No se pudo eliminar la colección`,"dataModel.fieldAdded":`Campo {name} añadido`,"dataModel.fieldCreateError":`No se pudo crear el campo`,"dataModel.deleteFieldDescription":`{collection}.{field} y todos los valores almacenados en él se eliminarán permanentemente.`,"dataModel.deleteFieldAction":`Eliminar campo`,"dataModel.fieldDeleted":`Campo {name} eliminado`,"dataModel.fieldDeleteError":`No se pudo eliminar el campo`,"dataModel.fieldUpdated":`{name} actualizado`,"dataModel.fieldUpdateError":`No se pudo actualizar el esquema del campo`,"dataModel.relationCreated":`Relación {collection}.{field} creada`,"dataModel.relationCreateError":`No se pudo crear la relación`,"dataModel.deleteRelation":`¿Eliminar relación?`,"dataModel.deleteRelationDescription":`{collection}.{field} dejará de hacer referencia a {target}.`,"dataModel.deleteRelationAction":`Eliminar relación`,"dataModel.relationDeleted":`Relación eliminada`,"dataModel.relationDeleteError":`No se pudo eliminar la relación`,"dataModel.junctionCreated":`Unión M2M {name} creada`,"dataModel.m2mCreateError":`No se pudo crear la relación M2M`,"dataModel.deleteM2M":`¿Eliminar relación muchos a muchos?`,"dataModel.deleteM2MDescription":`{name} y todos los registros de enlace que contiene se eliminarán permanentemente.`,"dataModel.junctionDeleted":`Unión M2M {name} eliminada`,"dataModel.m2mDeleteError":`No se pudo eliminar la relación M2M`,"dataModel.collections":`Colecciones`,"dataModel.collectionSummary":`{project} del proyecto · {system} del sistema`,"dataModel.createCollection":`Crear colección`,"dataModel.createCollectionHint":"Usa un nombre corto apto para máquinas, como `articles`.","dataModel.description":`Descripción`,"dataModel.optionalDescription":`Descripción opcional`,"dataModel.findCollection":`Buscar colección`,"dataModel.noProjectCollections":`Todavía no hay colecciones del proyecto.`,"dataModel.noMatchingProject":`No hay colecciones del proyecto coincidentes.`,"dataModel.collectionsLower":`colecciones`,"dataModel.systemCollectionsCount":`Colecciones del sistema ({count})`,"dataModel.systemManaged":`gestionado por el sistema`,"dataModel.noMatchingSystem":`No hay colecciones del sistema coincidentes.`,"dataModel.systemCollectionsLower":`colecciones del sistema`,"dataModel.selectCollection":`Selecciona una colección`,"dataModel.selectCollectionDescription":`Elige una colección a la izquierda para inspeccionar sus campos y relaciones.`,"dataModel.systemCollection":`Colección del sistema`,"dataModel.noDescription":`No se ha añadido ninguna descripción.`,"dataModel.fieldCount":`{count} campos`,"dataModel.collectionSettings":`Ajustes de la colección`,"dataModel.openField":`Abrir página del campo`,"dataModel.fieldDetail":`Detalles del campo`,"dataModel.fieldNotFound":`Este campo no se encontró o ha sido eliminado.`,"dataModel.backToFields":`Volver a campos`,"dataModel.fieldActions":`Comportamiento del campo`,"dataModel.fieldActionsHint":`Cambia si el campo es obligatorio o elimina permanentemente un campo que no se usa.`,"dataModel.relationPageHint":`Elige un tipo de relación; la configuración se abrirá en su propia página.`,"dataModel.startRelation":`Configurar`,"dataModel.fieldsDescription":`Busca y gestiona los campos almacenados en esta colección.`,"dataModel.addFieldHint":`Elige un nombre de campo y un tipo de almacenamiento. La conversión de tipos no está disponible intencionadamente en V1.`,"dataModel.maxLength":`Longitud máxima`,"dataModel.requiredValue":`Valor obligatorio`,"dataModel.findField":`Buscar campo`,"dataModel.fieldSearchPlaceholder":`Nombre, tipo, obligatorio…`,"dataModel.sortFields":`Ordenar campos`,"dataModel.makeOptional":`Hacer opcional`,"dataModel.makeRequired":`Hacer obligatorio`,"dataModel.fieldsLower":`campos`,"dataModel.systemRelationInfo":`Las relaciones de colecciones del sistema son visibles mediante metadatos, pero no se editan desde esta pantalla.`,"dataModel.manyToOne":`Muchos a uno`,"dataModel.linkOneRecord":`Vincular a un registro`,"dataModel.m2oDescription":`Usa un campo existente de {collection} como clave foránea y luego elige la colección de destino.`,"dataModel.noDirectRelations":`No hay relaciones directas para esta colección.`,"dataModel.linksTo":`vincula con {collection}.{field}`,"dataModel.fieldIn":`Campo en {collection}`,"dataModel.chooseField":`Elegir campo`,"dataModel.targetCollection":`Colección de destino`,"dataModel.chooseCollection":`Elegir colección`,"dataModel.ifTargetDeleted":`Si se elimina el destino`,"dataModel.preventDeletion":`Impedir eliminación`,"dataModel.deleteLinked":`Eliminar registros vinculados`,"dataModel.clearField":`Vaciar este campo`,"dataModel.createRelation":`Crear relación`,"dataModel.manyToMany":`Muchos a muchos`,"dataModel.connectCollections":`Conectar dos colecciones`,"dataModel.m2mDescription":`YunCMS crea una colección de unión oculta que almacena ambos enlaces.`,"dataModel.noM2MJunctions":`No hay uniones muchos a muchos para esta colección.`,"dataModel.junctionName":`Nombre de la unión`,"dataModel.firstCollection":`Primera colección`,"dataModel.secondCollection":`Segunda colección`,"dataModel.createJunction":`Crear unión`,"dataModel.loadingSchema":`Cargando esquema…`,"roles.newRole":`Nuevo rol`,"roles.public":`Público`,"roles.administrator":`Administrador`,"roles.custom":`Personalizado`,"roles.configuredOnly":`Solo configurados`,"roles.collection":`Colección`,"roles.read":`Leer`,"roles.create":`Crear`,"roles.update":`Actualizar`,"roles.delete":`Eliminar`,"roles.advanced":`Avanzado`,"roles.fieldAccess":`Acceso a campos`,"roles.rowFilter":`JSON de filtro de filas`,"roles.validation":`JSON de validación de escritura`,"roles.noRoles":`No hay roles coincidentes.`,"roles.nameAsc":`Nombre A–Z`,"roles.nameDesc":`Nombre Z–A`,"roles.mostRules":`Más reglas`,"roles.loadError":`No se pudieron cargar los roles y permisos`,"roles.createdNotice":`Rol creado`,"roles.createError":`No se pudo crear el rol`,"roles.updatedNotice":`Rol actualizado`,"roles.updateError":`No se pudo actualizar el rol`,"roles.deleteTitle":`¿Eliminar rol?`,"roles.deleteDescription":`{name} y todas sus reglas de permisos se eliminarán permanentemente.`,"roles.deleteRole":`Eliminar rol`,"roles.deletedNotice":`Rol eliminado`,"roles.deleteError":`No se pudo eliminar el rol`,"roles.accessRemoved":`Acceso {action} eliminado para {collection}`,"roles.accessGranted":`Acceso {action} concedido para {collection}`,"roles.permissionUpdateError":`No se pudo actualizar el permiso`,"roles.permissionDetailsError":`No se pudieron cargar los detalles del permiso`,"roles.chooseFieldError":`Elige al menos un campo permitido o habilita todos los campos.`,"roles.advancedSaved":`Reglas de permisos avanzadas guardadas`,"roles.invalidJson":`Las reglas de filtro y validación deben contener JSON válido.`,"roles.access":`Acceso`,"roles.roles":`Roles`,"roles.summary":`{count} roles · elige uno para gestionar el acceso.`,"roles.publicRole":`Rol público`,"roles.createRole":`Crear rol`,"roles.findRole":`Buscar rol`,"roles.adminFullAccess":`Administrador · acceso total`,"roles.customRole":`Rol personalizado`,"roles.rolesLower":`roles`,"roles.selectRole":`Selecciona un rol`,"roles.selectRoleDescription":`Elige un rol para gestionar su acceso.`,"roles.roleKind":`Rol {kind}`,"roles.roleName":`Nombre del rol`,"roles.saveName":`Guardar nombre`,"roles.permissionRules":`reglas de permisos`,"roles.fullAdmin":`Acceso total de administrador`,"roles.fullAdminDescription":`Este rol omite las filas de permisos de colecciones. No requiere configuración de matriz.`,"roles.permissions":`Permisos`,"roles.collectionAccess":`Acceso a colecciones`,"roles.collectionAccessDescription":`Habilita la acción básica y usa Configurar solo cuando necesites una restricción de campo o fila.`,"roles.ruleCount":`{count} reglas`,"roles.collectionCount":`{visible}/{total} colecciones`,"roles.actionCollection":`{action} {collection}`,"roles.allowed":`Permitido`,"roles.off":`Desactivado`,"roles.restricted":`Restringido`,"roles.configure":`Configurar`,"roles.createCollectionFirst":`Crea una colección antes de configurar permisos.`,"roles.noMatchingCollections":`Ninguna colección coincide con los filtros de permisos actuales.`,"roles.advancedPermission":`Permiso avanzado`,"roles.advancedDescription":`Limita campos o añade reglas por fila. Las reglas JSON vacías significan que no hay restricciones adicionales.`,"roles.saveRules":`Guardar reglas`,"roles.allowedFields":`Campos permitidos`,"roles.allowedFieldsDescription":`Todos los campos es la opción sencilla predeterminada. Desactívala para elegir campos explícitamente.`,"roles.allowAllFields":`Permitir todos los campos`,"roles.rowFilterDescription":`Solo las filas que coincidan con esta regla son accesibles para esta acción.`,"roles.validationWriteDescription":`Para crear/actualizar, el registro final debe cumplir esta regla.`,"roles.validationUnsupported":`La validación solo se aplica a permisos de creación y actualización.`,"roles.openPermission":`Abrir página del permiso`,"roles.permissionDetail":`Detalles del permiso`,"roles.permissionDetailDescription":`Gestiona el alcance de acceso y las reglas de campos para esta acción.`,"roles.permissionEnabled":`Permiso habilitado`,"roles.permissionDisabled":`Permiso deshabilitado`,"roles.permissionMasterSwitch":`Permitir esta acción`,"roles.permissionMasterSwitchHint":`Cuando está deshabilitado, la API deniega esta colección y acción.`,"roles.enableBeforeRules":`Habilita el permiso antes de editar reglas de campos, filtros de filas y validación.`,"roles.actionOnlyPermission":`Este recurso del sistema solo admite acceso a nivel de acción; no hay reglas adicionales de campos o filas.`,"roles.permissionNotFound":`Recurso de permiso no encontrado`,"roles.permissionNotFoundDescription":`La colección puede haber sido eliminada o esta acción ya no estar soportada.`,"roles.backToRole":`Volver al rol`,"roles.collectionPermissionHint":`Gestiona por separado las acciones de lectura, creación, actualización y eliminación.`,"roles.allRecords":`Todos los registros elegibles`,"content.newRecord":`Nuevo registro`,"content.searchPlaceholder":`Buscar registros…`,"content.noRecords":`No hay registros coincidentes`,"content.editRecord":`Editar registro`,"content.createRecord":`Crear registro`,"content.deleteRecord":`¿Eliminar registro?`,"content.deleteDescription":`Esto elimina permanentemente el registro seleccionado.`,"content.openDataModel":`Abrir Modelo de datos`,"content.opContains":`Contiene`,"content.opStartsWith":`Empieza por`,"content.opEndsWith":`Termina en`,"content.opExactly":`Es exactamente`,"content.opNot":`No es`,"content.opEmpty":`Está vacío`,"content.opNotEmpty":`No está vacío`,"content.opEquals":`Igual a`,"content.opDoesNotEqual":`No es igual a`,"content.opGreaterThan":`Mayor que`,"content.opGreaterEqual":`Mayor o igual que`,"content.opLessThan":`Menor que`,"content.opLessEqual":`Menor o igual que`,"content.opIs":`Es`,"content.saveError":`No se pudo guardar el registro`,"content.updateDescription":`Actualiza los campos de abajo.`,"content.createDescription":`Añade un nuevo elemento a esta colección.`,"content.select":`Seleccionar…`,"content.unknownValue":`Desconocido ({value})`,"content.relationHint":`{collection} · mostrar: {field}`,"content.saveRecord":`Guardar registro`,"content.schemaLoadError":`No se pudo cargar el esquema de la colección`,"content.dataLoadError":`No se pudieron cargar los datos de la colección`,"content.recordNotFound":`Registro no encontrado`,"content.recordNotFoundDescription":`Este registro puede haber sido eliminado o la URL puede ser incorrecta.`,"content.deleteRecordDescription":`El registro {id} se eliminará permanentemente de {collection}.`,"content.deleteRecordAction":`Eliminar registro`,"content.deleteError":`No se pudo eliminar el registro`,"content.empty":`vacío`,"content.notEmpty":`no vacío`,"content.noCollections":`Todavía no hay colecciones`,"content.noCollectionsDescription":`Crea tu primera colección en Modelo de datos. Aparecerá directamente en la barra lateral de Contenido.`,"content.matchingRecords":`{count} registros coincidentes`,"content.dataControls":`Controles de datos de {collection}`,"content.searchTextFields":`Buscar en campos de texto…`,"content.noTextFields":`No hay campos de texto para buscar`,"content.sortBy":`Ordenar por`,"content.defaultOrder":`Orden predeterminado`,"content.filterField":`Campo de filtro`,"content.condition":`Condición`,"content.value":`Valor`,"content.noValueNeeded":`No se necesita valor`,"content.chooseRecord":`Elegir registro`,"content.chooseValue":`Elegir valor`,"content.filterValue":`Valor del filtro`,"content.chooseFieldFirst":`Elige primero un campo`,"content.addFilter":`Añadir filtro`,"content.filters":`Filtros`,"content.filterCount":`{count} activos`,"content.activeFilters":`Filtros activos`,"content.filterHint":`Añade filtros para limitar esta colección.`,"content.resetView":`Restablecer vista`,"content.loadingCollection":`Cargando colección…`,"content.noRecordsYet":`Todavía no hay registros`,"content.firstRecordDescription":`Añade el primer registro a {collection}.`,"content.createFirstRecord":`Crear primer registro`,"content.noMatchDescription":`Elimina un filtro o cambia la búsqueda para ampliar los resultados.`,"content.records":`registros`,"pagination.items":`elementos`,"pagination.aria":`Paginación de {label}`,"pagination.ofTotal":`de {total} {label}`,"pagination.previousPage":`Página anterior`,"pagination.nextPage":`Página siguiente`,"pagination.pageOf":`Página {page} de {totalPages}`,"pagination.page":`Página {page}`,"pagination.perPage":`Por página`,"pagination.itemsPerPage":`{label} por página`,"pagination.showing":`Mostrando {start}–{end} de {total} {label}`}),Ke=Object.freeze({"common.cancel":`Annuler`,"common.confirm":`Confirmer`,"common.save":`Enregistrer`,"common.saving":`Enregistrement…`,"common.saved":`Enregistré`,"common.delete":`Supprimer`,"common.edit":`Modifier`,"common.create":`Créer`,"common.creating":`Création…`,"common.search":`Rechercher`,"common.reset":`Réinitialiser`,"common.loading":`Chargement…`,"common.none":`Aucun`,"common.optional":`Facultatif`,"common.required":`Obligatoire`,"common.readonly":`Lecture seule`,"common.yes":`Oui`,"common.no":`Non`,"common.all":`Tous`,"common.close":`Fermer`,"common.back":`Retour`,"common.next":`Suivant`,"common.previous":`Précédent`,"common.name":`Nom`,"common.status":`Statut`,"common.actions":`Actions`,"common.type":`Type`,"common.filter":`Filtre`,"common.sort":`Trier`,"common.direction":`Direction`,"common.ascending":`Croissant`,"common.descending":`Décroissant`,"common.refresh":`Actualiser`,"common.resetFilters":`Réinitialiser les filtres`,"common.confirmation":`Confirmation`,"nav.content":`Contenu`,"nav.library":`Bibliothèque`,"nav.settings":`Paramètres`,"nav.files":`Fichiers`,"nav.contentVisibility":`Visibilité du contenu`,"nav.dataModel":`Modèle de données`,"nav.users":`Utilisateurs`,"nav.roles":`Rôles et permissions`,"nav.appearance":`Marque et apparence`,"nav.createFirstCollection":`Créer la première collection`,"app.studio":`Studio`,"app.apiChecking":`Vérification de l’API…`,"app.apiOnline":`API en ligne`,"app.apiUnavailable":`API indisponible`,"app.authenticatedUser":`Utilisateur authentifié`,"app.noRole":`Aucun rôle`,"app.signOut":`Se déconnecter`,"app.signingOut":`Déconnexion…`,"app.contentEmpty":`Créez une collection dans Paramètres pour commencer à gérer du contenu.`,"app.contentDescription":`Gérez les enregistrements de cette collection.`,"section.visibilityTitle":`Visibilité du contenu`,"section.visibilityDescription":`Choisissez les collections affichées dans la navigation Contenu sans modifier leurs données.`,"section.dataModelTitle":`Modèle de données`,"section.dataModelDescription":`Créez des collections, champs et relations soutenus par MySQL.`,"section.usersTitle":`Utilisateurs`,"section.usersDescription":`Gérez les utilisateurs créés par les administrateurs, les rôles et le statut des comptes.`,"section.rolesTitle":`Rôles et permissions`,"section.rolesDescription":`Configurez l’accès par rôle, les listes de champs autorisés et les filtres de lignes.`,"section.filesTitle":`Fichiers`,"section.filesDescription":`Téléversez, prévisualisez et gérez les fichiers via le pilote de stockage configuré.`,"section.appearanceTitle":`Marque et apparence`,"section.appearanceDescription":`Ajustez le logo de Studio, la couleur d’accentuation, le thème et la langue par défaut.`,"auth.signIn":`Se connecter`,"auth.resetPassword":`Réinitialiser le mot de passe`,"auth.signInDescription":`Utilisez un compte administrateur pour gérer le schéma, le contenu, les utilisateurs et les permissions.`,"auth.resetDescription":`Saisissez l’adresse e-mail de votre compte pour demander un lien de réinitialisation à usage unique.`,"auth.email":`E-mail`,"auth.password":`Mot de passe`,"auth.working":`Traitement…`,"auth.sendResetLink":`Envoyer le lien de réinitialisation`,"auth.backToSignIn":`Retour à la connexion`,"auth.forgotPassword":`Mot de passe oublié ?`,"auth.resetNotice":`Si un compte actif correspond à cet e-mail, un lien de réinitialisation sera envoyé.`,"auth.requestFailed":`Échec de la requête`,"auth.signInFailed":`Échec de la connexion`,"auth.verifyEmail":`Vérifier l’e-mail`,"auth.setNewPassword":`Définir un nouveau mot de passe`,"auth.actionWorking":`Finalisation de la requête…`,"auth.actionDone":`Votre requête a été effectuée avec succès.`,"auth.actionFailed":`L’action d’authentification a échoué.`,"auth.newPassword":`Nouveau mot de passe`,"auth.confirmPassword":`Confirmer le mot de passe`,"auth.passwordMismatch":`Les mots de passe ne correspondent pas.`,"auth.passwordChanged":`Mot de passe modifié. Les sessions existantes ont été révoquées.`,"auth.verifyDescription":`Vérification du jeton à usage unique.`,"auth.newPasswordDescription":`Choisissez un nouveau mot de passe pour votre compte YunCMS.`,"auth.complete":`Terminer`,"appearance.branding":`Marque`,"appearance.brandName":`Nom de la marque`,"appearance.brandNameHint":`Affiché à côté du logo dans Studio.`,"appearance.logoUrl":`URL du logo`,"appearance.logoHint":`Le logo personnalisé remplace entièrement le logo Yunsoft par défaut.`,"appearance.accentColor":`Couleur d’accentuation`,"appearance.theme":`Thème`,"appearance.themeSystem":`Système`,"appearance.themeLight":`Clair`,"appearance.themeDark":`Sombre`,"appearance.defaultLanguage":`Langue par défaut`,"appearance.defaultLanguageHint":`Utilisée lorsqu’un utilisateur n’a pas choisi de langue personnelle.`,"appearance.english":`Anglais`,"appearance.turkish":`Türkçe`,"appearance.currentLanguage":`Ma langue`,"appearance.followDefault":`Suivre le réglage système`,"appearance.preview":`Aperçu`,"appearance.resetYunsoft":`Réinitialiser la marque Yunsoft`,"appearance.saved":`Paramètres d’apparence de Studio enregistrés.`,"appearance.loadWarning":`La marque par défaut est utilisée car les paramètres Studio enregistrés n’ont pas pu être chargés.`,"appearance.copyright":`© {year} Yunsoft. Tous droits réservés.`,"appearance.poweredBy":`Propulsé par Yunsoft`,"visibility.loading":`Chargement des collections…`,"visibility.empty":`Aucune collection de projet n’est encore disponible.`,"visibility.showInContent":`Afficher dans Contenu`,"visibility.visible":`Visible`,"visibility.hidden":`Masquée`,"visibility.junction":`Jonction M2M`,"visibility.collection":`Collection`,"visibility.updated":`Visibilité de la collection mise à jour.`,"visibility.hint":`Les collections de jonction M2M sont masquées par défaut car elles stockent généralement les liens de relation plutôt que du contenu principal. Vous pouvez tout de même rendre une jonction visible ici lorsque la gestion directe de ses enregistrements est utile.`,"visibility.loadError":`Impossible de charger les paramètres de visibilité des collections`,"visibility.updateError":`Impossible de mettre à jour la visibilité de la collection`,"visibility.noticeVisible":`{collection} est maintenant visible dans Contenu`,"visibility.noticeHidden":`{collection} est maintenant masquée dans Contenu`,"visibility.description":`Choisissez les collections affichées dans la navigation Contenu. Masquer une collection ne supprime jamais son schéma ni ses enregistrements.`,"visibility.visibleCount":`{count} visibles`,"visibility.hiddenCount":`{count} masquées`,"visibility.junctionCount":`{count} jonctions`,"visibility.searchCollections":`Rechercher des collections`,"visibility.searchPlaceholder":`Nom ou description…`,"visibility.show":`Afficher`,"visibility.allCollections":`Toutes les collections`,"visibility.visibleInContent":`Visible dans Contenu`,"visibility.hiddenFromContent":`Masquée dans Contenu`,"visibility.m2mJunctions":`Jonctions M2M`,"visibility.emptyTitle":`Aucune collection de projet`,"visibility.emptyDescription":`Créez d’abord une collection dans Modèle de données.`,"visibility.noMatchesTitle":`Aucune collection correspondante`,"visibility.noMatchesDescription":`Modifiez la recherche ou le filtre de visibilité.`,"visibility.contentNavigation":`Navigation Contenu`,"visibility.showCollection":`Afficher {collection} dans Contenu`,"visibility.collections":`collections`,"files.uploadFile":`Téléverser un fichier`,"files.uploadFirst":`Téléverser le premier fichier`,"files.gallery":`Galerie`,"files.list":`Liste`,"files.searchPlaceholder":`Nom, type MIME ou stockage…`,"files.noFiles":`Aucun fichier ne correspond à la vue actuelle.`,"files.download":`Télécharger`,"files.previewUnavailable":`Aperçu indisponible`,"files.editMetadata":`Modifier les métadonnées`,"files.filename":`Nom du fichier`,"files.title":`Titre`,"files.size":`Taille`,"files.uploaded":`Téléversé`,"files.newest":`Plus récents d’abord`,"files.oldest":`Plus anciens d’abord`,"files.nameAsc":`Nom A–Z`,"files.nameDesc":`Nom Z–A`,"files.sizeAsc":`Plus petits d’abord`,"files.sizeDesc":`Plus grands d’abord`,"files.allTypes":`Tous les types`,"files.images":`Images`,"files.image":`Image`,"files.video":`Vidéo`,"files.audio":`Audio`,"files.pdf":`PDF`,"files.other":`Autre`,"files.file":`Fichier`,"files.untitled":`Fichier sans titre`,"files.loadError":`Impossible de charger les fichiers`,"files.uploadedNotice":`Fichier téléversé`,"files.uploadError":`Impossible de téléverser le fichier`,"files.downloadError":`Impossible de télécharger le fichier`,"files.updatedNotice":`Métadonnées du fichier mises à jour`,"files.updateError":`Impossible de mettre à jour les métadonnées du fichier`,"files.deleteTitle":`Supprimer le fichier ?`,"files.deleteDescription":`{file} et son contenu stocké seront supprimés définitivement.`,"files.deleteFile":`Supprimer le fichier`,"files.deletedNotice":`Fichier supprimé`,"files.deleteError":`Impossible de supprimer le fichier`,"files.libraryEmptyDescription":`Téléversez des fichiers et gérez leurs métadonnées.`,"files.libraryCount":`{count} fichiers dans la bibliothèque.`,"files.view":`Vue des fichiers`,"files.closeUpload":`Fermer le téléversement`,"files.searchFiles":`Rechercher des fichiers`,"files.fileType":`Type de fichier`,"files.matchingCount":`{count} correspondances`,"files.upload":`Téléverser`,"files.addFile":`Ajouter un fichier`,"files.dropDescription":`Déposez un fichier ici ou choisissez-le sur votre appareil.`,"files.chooseFile":`Choisir un fichier`,"files.dragDrop":`ou glissez-déposez-le ici`,"files.uploading":`Téléversement…`,"files.fileDetails":`Détails du fichier`,"files.editDescription":`Modifiez le titre et le nom de téléchargement sans changer le fichier stocké.`,"files.optionalTitle":`Titre d’affichage facultatif`,"files.downloadFilename":`Nom du fichier téléchargé`,"files.saveChanges":`Enregistrer les modifications`,"files.loading":`Chargement des fichiers…`,"files.noFilesYet":`Aucun fichier pour le moment`,"files.noMatchingFiles":`Aucun fichier correspondant`,"files.emptyDescription":`Téléversez le premier fichier pour commencer à constituer votre bibliothèque.`,"files.noMatchDescription":`Essayez une recherche plus large ou réinitialisez les filtres.`,"files.fileGallery":`Galerie de fichiers`,"files.files":`fichiers`,"files.storage":`Stockage`,"files.loadingPreviewFor":`Chargement de l’aperçu de {file}`,"files.loadingPreview":`Chargement de l’aperçu`,"users.newUser":`Nouvel utilisateur`,"users.searchPlaceholder":`E-mail, rôle ou statut…`,"users.role":`Rôle`,"users.verified":`Vérifié`,"users.unverified":`Non vérifié`,"users.active":`Actif`,"users.inactive":`Inactif`,"users.suspended":`Suspendu`,"users.disabled":`Désactivé`,"users.noUsers":`Aucun utilisateur correspondant`,"users.createUser":`Créer un utilisateur`,"users.sendVerification":`Envoyer la vérification`,"users.deleteTitle":`Supprimer l’utilisateur ?`,"users.deleteDescription":`Cela supprime définitivement l’utilisateur sélectionné.`,"users.emailAsc":`E-mail A–Z`,"users.emailDesc":`E-mail Z–A`,"users.recentAccess":`Accès récent`,"users.oldestAccess":`Accès le plus ancien`,"users.loadError":`Impossible de charger les utilisateurs`,"users.createdNotice":`Utilisateur créé`,"users.createError":`Impossible de créer l’utilisateur`,"users.updatedNotice":`{email} mis à jour`,"users.updateError":`Impossible de mettre à jour l’utilisateur`,"users.verificationQueued":`E-mail de vérification mis en file pour {email}`,"users.verificationError":`Impossible d’envoyer l’e-mail de vérification`,"users.deleteDescriptionEmail":`{email} perdra définitivement l’accès à ce projet.`,"users.deleteUser":`Supprimer l’utilisateur`,"users.deletedNotice":`{email} supprimé`,"users.deleteError":`Impossible de supprimer l’utilisateur`,"users.summary":`{total} au total · {active} actifs`,"users.closeForm":`Fermer le formulaire`,"users.allRoles":`Tous les rôles`,"users.allStatuses":`Tous les statuts`,"users.matchingCount":`{count} utilisateurs correspondants`,"users.resetView":`Réinitialiser la vue`,"users.createDescription":`Définissez les identifiants de connexion et un rôle facultatif.`,"users.noMatchDescription":`Essayez une recherche plus large ou réinitialisez les filtres.`,"users.user":`Utilisateur`,"users.openUser":`Ouvrir la page utilisateur`,"users.userDetails":`Détails de l’utilisateur`,"users.userNotFound":`Utilisateur introuvable`,"users.userActions":`Actions du compte`,"users.userActionsHint":`Envoyez une vérification ou supprimez définitivement un compte inutilisé.`,"users.verification":`Vérification`,"users.lastAccess":`Dernier accès`,"users.you":`vous`,"users.roleFor":`Rôle de {email}`,"users.statusFor":`Statut de {email}`,"users.never":`Jamais`,"users.loading":`Chargement des utilisateurs…`,"users.noneFound":`Aucun utilisateur trouvé.`,"users.users":`utilisateurs`,"dataModel.newCollection":`Nouvelle collection`,"dataModel.projectCollections":`Collections du projet`,"dataModel.systemCollections":`Collections système`,"dataModel.fields":`Champs`,"dataModel.relations":`Relations`,"dataModel.addField":`Ajouter un champ`,"dataModel.collectionName":`Nom de la collection`,"dataModel.fieldName":`Nom du champ`,"dataModel.noCollections":`Aucune collection ne correspond aux filtres actuels.`,"dataModel.noFields":`Aucun champ ne correspond à cette recherche.`,"dataModel.deleteCollection":`Supprimer la collection ?`,"dataModel.deleteField":`Supprimer le champ ?`,"dataModel.nameAsc":`Nom A–Z`,"dataModel.nameDesc":`Nom Z–A`,"dataModel.requiredFirst":`Obligatoires d’abord`,"dataModel.schemaLoadError":`Impossible de charger le schéma`,"dataModel.collectionLoadError":`Impossible de charger le schéma de la collection`,"dataModel.collectionCreated":`Collection {name} créée`,"dataModel.collectionCreateError":`Impossible de créer la collection`,"dataModel.deleteCollectionDescription":`{name} et tous les enregistrements qu’elle contient seront supprimés définitivement.`,"dataModel.deleteCollectionAction":`Supprimer la collection`,"dataModel.collectionDeleted":`Collection {name} supprimée`,"dataModel.collectionDeleteError":`Impossible de supprimer la collection`,"dataModel.fieldAdded":`Champ {name} ajouté`,"dataModel.fieldCreateError":`Impossible de créer le champ`,"dataModel.deleteFieldDescription":`{collection}.{field} et toutes les valeurs qui y sont stockées seront supprimées définitivement.`,"dataModel.deleteFieldAction":`Supprimer le champ`,"dataModel.fieldDeleted":`Champ {name} supprimé`,"dataModel.fieldDeleteError":`Impossible de supprimer le champ`,"dataModel.fieldUpdated":`{name} mis à jour`,"dataModel.fieldUpdateError":`Impossible de mettre à jour le schéma du champ`,"dataModel.relationCreated":`Relation {collection}.{field} créée`,"dataModel.relationCreateError":`Impossible de créer la relation`,"dataModel.deleteRelation":`Supprimer la relation ?`,"dataModel.deleteRelationDescription":`{collection}.{field} ne référencera plus {target}.`,"dataModel.deleteRelationAction":`Supprimer la relation`,"dataModel.relationDeleted":`Relation supprimée`,"dataModel.relationDeleteError":`Impossible de supprimer la relation`,"dataModel.junctionCreated":`Jonction M2M {name} créée`,"dataModel.m2mCreateError":`Impossible de créer la relation M2M`,"dataModel.deleteM2M":`Supprimer la relation plusieurs-à-plusieurs ?`,"dataModel.deleteM2MDescription":`{name} et tous les enregistrements de liaison qu’elle contient seront supprimés définitivement.`,"dataModel.junctionDeleted":`Jonction M2M {name} supprimée`,"dataModel.m2mDeleteError":`Impossible de supprimer la relation M2M`,"dataModel.collections":`Collections`,"dataModel.collectionSummary":`{project} projet · {system} système`,"dataModel.createCollection":`Créer une collection`,"dataModel.createCollectionHint":"Utilisez un nom court adapté aux machines, comme `articles`.","dataModel.description":`Description`,"dataModel.optionalDescription":`Description facultative`,"dataModel.findCollection":`Rechercher une collection`,"dataModel.noProjectCollections":`Aucune collection de projet pour le moment.`,"dataModel.noMatchingProject":`Aucune collection de projet correspondante.`,"dataModel.collectionsLower":`collections`,"dataModel.systemCollectionsCount":`Collections système ({count})`,"dataModel.systemManaged":`géré par le système`,"dataModel.noMatchingSystem":`Aucune collection système correspondante.`,"dataModel.systemCollectionsLower":`collections système`,"dataModel.selectCollection":`Sélectionner une collection`,"dataModel.selectCollectionDescription":`Choisissez une collection à gauche pour examiner ses champs et relations.`,"dataModel.systemCollection":`Collection système`,"dataModel.noDescription":`Aucune description n’a été ajoutée.`,"dataModel.fieldCount":`{count} champs`,"dataModel.collectionSettings":`Paramètres de la collection`,"dataModel.openField":`Ouvrir la page du champ`,"dataModel.fieldDetail":`Détails du champ`,"dataModel.fieldNotFound":`Ce champ est introuvable ou a été supprimé.`,"dataModel.backToFields":`Retour aux champs`,"dataModel.fieldActions":`Comportement du champ`,"dataModel.fieldActionsHint":`Modifiez le caractère obligatoire du champ ou supprimez définitivement un champ inutilisé.`,"dataModel.relationPageHint":`Choisissez un type de relation ; sa configuration s’ouvrira sur une page dédiée.`,"dataModel.startRelation":`Configurer`,"dataModel.fieldsDescription":`Recherchez et gérez les champs stockés dans cette collection.`,"dataModel.addFieldHint":`Choisissez un nom de champ et un type de stockage. La conversion de type n’est volontairement pas disponible en V1.`,"dataModel.maxLength":`Longueur maximale`,"dataModel.requiredValue":`Valeur obligatoire`,"dataModel.findField":`Rechercher un champ`,"dataModel.fieldSearchPlaceholder":`Nom, type, obligatoire…`,"dataModel.sortFields":`Trier les champs`,"dataModel.makeOptional":`Rendre facultatif`,"dataModel.makeRequired":`Rendre obligatoire`,"dataModel.fieldsLower":`champs`,"dataModel.systemRelationInfo":`Les relations des collections système sont visibles via les métadonnées mais ne sont pas modifiées depuis cet écran.`,"dataModel.manyToOne":`Plusieurs à un`,"dataModel.linkOneRecord":`Lier à un enregistrement`,"dataModel.m2oDescription":`Utilisez un champ existant dans {collection} comme clé étrangère, puis choisissez la collection cible.`,"dataModel.noDirectRelations":`Aucune relation directe pour cette collection.`,"dataModel.linksTo":`lié à {collection}.{field}`,"dataModel.fieldIn":`Champ dans {collection}`,"dataModel.chooseField":`Choisir un champ`,"dataModel.targetCollection":`Collection cible`,"dataModel.chooseCollection":`Choisir une collection`,"dataModel.ifTargetDeleted":`Si la cible est supprimée`,"dataModel.preventDeletion":`Empêcher la suppression`,"dataModel.deleteLinked":`Supprimer les enregistrements liés`,"dataModel.clearField":`Vider ce champ`,"dataModel.createRelation":`Créer une relation`,"dataModel.manyToMany":`Plusieurs à plusieurs`,"dataModel.connectCollections":`Connecter deux collections`,"dataModel.m2mDescription":`YunCMS crée une collection de jonction masquée qui stocke les deux liens.`,"dataModel.noM2MJunctions":`Aucune jonction plusieurs-à-plusieurs pour cette collection.`,"dataModel.junctionName":`Nom de la jonction`,"dataModel.firstCollection":`Première collection`,"dataModel.secondCollection":`Deuxième collection`,"dataModel.createJunction":`Créer la jonction`,"dataModel.loadingSchema":`Chargement du schéma…`,"roles.newRole":`Nouveau rôle`,"roles.public":`Public`,"roles.administrator":`Administrateur`,"roles.custom":`Personnalisé`,"roles.configuredOnly":`Configurés uniquement`,"roles.collection":`Collection`,"roles.read":`Lire`,"roles.create":`Créer`,"roles.update":`Mettre à jour`,"roles.delete":`Supprimer`,"roles.advanced":`Avancé`,"roles.fieldAccess":`Accès aux champs`,"roles.rowFilter":`JSON du filtre de lignes`,"roles.validation":`JSON de validation d’écriture`,"roles.noRoles":`Aucun rôle correspondant.`,"roles.nameAsc":`Nom A–Z`,"roles.nameDesc":`Nom Z–A`,"roles.mostRules":`Le plus de règles`,"roles.loadError":`Impossible de charger les rôles et permissions`,"roles.createdNotice":`Rôle créé`,"roles.createError":`Impossible de créer le rôle`,"roles.updatedNotice":`Rôle mis à jour`,"roles.updateError":`Impossible de mettre à jour le rôle`,"roles.deleteTitle":`Supprimer le rôle ?`,"roles.deleteDescription":`{name} et toutes ses règles de permission seront supprimés définitivement.`,"roles.deleteRole":`Supprimer le rôle`,"roles.deletedNotice":`Rôle supprimé`,"roles.deleteError":`Impossible de supprimer le rôle`,"roles.accessRemoved":`Accès {action} supprimé pour {collection}`,"roles.accessGranted":`Accès {action} accordé pour {collection}`,"roles.permissionUpdateError":`Impossible de mettre à jour la permission`,"roles.permissionDetailsError":`Impossible de charger les détails de la permission`,"roles.chooseFieldError":`Choisissez au moins un champ autorisé ou activez tous les champs.`,"roles.advancedSaved":`Règles de permission avancées enregistrées`,"roles.invalidJson":`Les règles de filtre et de validation doivent contenir un JSON valide.`,"roles.access":`Accès`,"roles.roles":`Rôles`,"roles.summary":`{count} rôles · choisissez-en un pour gérer l’accès.`,"roles.publicRole":`Rôle public`,"roles.createRole":`Créer un rôle`,"roles.findRole":`Rechercher un rôle`,"roles.adminFullAccess":`Administrateur · accès complet`,"roles.customRole":`Rôle personnalisé`,"roles.rolesLower":`rôles`,"roles.selectRole":`Sélectionner un rôle`,"roles.selectRoleDescription":`Choisissez un rôle pour gérer son accès.`,"roles.roleKind":`Rôle {kind}`,"roles.roleName":`Nom du rôle`,"roles.saveName":`Enregistrer le nom`,"roles.permissionRules":`règles de permission`,"roles.fullAdmin":`Accès administrateur complet`,"roles.fullAdminDescription":`Ce rôle contourne les lignes de permission des collections. Aucune configuration de matrice n’est requise.`,"roles.permissions":`Permissions`,"roles.collectionAccess":`Accès aux collections`,"roles.collectionAccessDescription":`Activez l’action de base, puis utilisez Configurer uniquement lorsqu’une restriction de champ ou de ligne est nécessaire.`,"roles.ruleCount":`{count} règles`,"roles.collectionCount":`{visible}/{total} collections`,"roles.actionCollection":`{action} {collection}`,"roles.allowed":`Autorisé`,"roles.off":`Désactivé`,"roles.restricted":`Restreint`,"roles.configure":`Configurer`,"roles.createCollectionFirst":`Créez une collection avant de configurer les permissions.`,"roles.noMatchingCollections":`Aucune collection ne correspond aux filtres de permission actuels.`,"roles.advancedPermission":`Permission avancée`,"roles.advancedDescription":`Limitez les champs ou ajoutez des règles au niveau des lignes. Des règles JSON vides signifient qu’il n’y a aucune restriction supplémentaire.`,"roles.saveRules":`Enregistrer les règles`,"roles.allowedFields":`Champs autorisés`,"roles.allowedFieldsDescription":`Tous les champs est l’option simple par défaut. Désactivez-la pour choisir explicitement des champs.`,"roles.allowAllFields":`Autoriser tous les champs`,"roles.rowFilterDescription":`Seules les lignes correspondant à cette règle sont accessibles pour cette action.`,"roles.validationWriteDescription":`Pour créer/mettre à jour, l’enregistrement final doit respecter cette règle.`,"roles.validationUnsupported":`La validation s’applique uniquement aux permissions de création et de mise à jour.`,"roles.openPermission":`Ouvrir la page de permission`,"roles.permissionDetail":`Détails de la permission`,"roles.permissionDetailDescription":`Gérez la portée de l’accès et les règles de champs pour cette action.`,"roles.permissionEnabled":`Permission activée`,"roles.permissionDisabled":`Permission désactivée`,"roles.permissionMasterSwitch":`Autoriser cette action`,"roles.permissionMasterSwitchHint":`Lorsque désactivée, l’API refuse cette collection et cette action.`,"roles.enableBeforeRules":`Activez la permission avant de modifier les règles de champs, filtres de lignes et validation.`,"roles.actionOnlyPermission":`Cette ressource système prend uniquement en charge l’accès au niveau des actions ; il n’y a pas de règles supplémentaires de champs ou de lignes.`,"roles.permissionNotFound":`Ressource de permission introuvable`,"roles.permissionNotFoundDescription":`La collection a peut-être été supprimée ou cette action n’est peut-être plus prise en charge.`,"roles.backToRole":`Retour au rôle`,"roles.collectionPermissionHint":`Gérez séparément les actions de lecture, création, mise à jour et suppression.`,"roles.allRecords":`Tous les enregistrements admissibles`,"content.newRecord":`Nouvel enregistrement`,"content.searchPlaceholder":`Rechercher des enregistrements…`,"content.noRecords":`Aucun enregistrement correspondant`,"content.editRecord":`Modifier l’enregistrement`,"content.createRecord":`Créer un enregistrement`,"content.deleteRecord":`Supprimer l’enregistrement ?`,"content.deleteDescription":`Cela supprime définitivement l’enregistrement sélectionné.`,"content.openDataModel":`Ouvrir Modèle de données`,"content.opContains":`Contient`,"content.opStartsWith":`Commence par`,"content.opEndsWith":`Se termine par`,"content.opExactly":`Est exactement`,"content.opNot":`N’est pas`,"content.opEmpty":`Est vide`,"content.opNotEmpty":`N’est pas vide`,"content.opEquals":`Égal à`,"content.opDoesNotEqual":`Différent de`,"content.opGreaterThan":`Supérieur à`,"content.opGreaterEqual":`Supérieur ou égal à`,"content.opLessThan":`Inférieur à`,"content.opLessEqual":`Inférieur ou égal à`,"content.opIs":`Est`,"content.saveError":`Impossible d’enregistrer l’enregistrement`,"content.updateDescription":`Mettez à jour les champs ci-dessous.`,"content.createDescription":`Ajoutez un nouvel élément à cette collection.`,"content.select":`Sélectionner…`,"content.unknownValue":`Inconnu ({value})`,"content.relationHint":`{collection} · affichage : {field}`,"content.saveRecord":`Enregistrer l’enregistrement`,"content.schemaLoadError":`Impossible de charger le schéma de la collection`,"content.dataLoadError":`Impossible de charger les données de la collection`,"content.recordNotFound":`Enregistrement introuvable`,"content.recordNotFoundDescription":`Cet enregistrement a peut-être été supprimé ou l’URL est incorrecte.`,"content.deleteRecordDescription":`L’enregistrement {id} sera supprimé définitivement de {collection}.`,"content.deleteRecordAction":`Supprimer l’enregistrement`,"content.deleteError":`Impossible de supprimer l’enregistrement`,"content.empty":`vide`,"content.notEmpty":`non vide`,"content.noCollections":`Aucune collection pour le moment`,"content.noCollectionsDescription":`Créez votre première collection dans Modèle de données. Elle apparaîtra directement dans la barre latérale Contenu.`,"content.matchingRecords":`{count} enregistrements correspondants`,"content.dataControls":`Contrôles des données de {collection}`,"content.searchTextFields":`Rechercher dans les champs texte…`,"content.noTextFields":`Aucun champ texte à rechercher`,"content.sortBy":`Trier par`,"content.defaultOrder":`Ordre par défaut`,"content.filterField":`Champ du filtre`,"content.condition":`Condition`,"content.value":`Valeur`,"content.noValueNeeded":`Aucune valeur requise`,"content.chooseRecord":`Choisir un enregistrement`,"content.chooseValue":`Choisir une valeur`,"content.filterValue":`Valeur du filtre`,"content.chooseFieldFirst":`Choisissez d’abord un champ`,"content.addFilter":`Ajouter un filtre`,"content.filters":`Filtres`,"content.filterCount":`{count} actifs`,"content.activeFilters":`Filtres actifs`,"content.filterHint":`Ajoutez des filtres pour réduire cette collection.`,"content.resetView":`Réinitialiser la vue`,"content.loadingCollection":`Chargement de la collection…`,"content.noRecordsYet":`Aucun enregistrement pour le moment`,"content.firstRecordDescription":`Ajoutez le premier enregistrement à {collection}.`,"content.createFirstRecord":`Créer le premier enregistrement`,"content.noMatchDescription":`Supprimez un filtre ou modifiez votre recherche pour élargir les résultats.`,"content.records":`enregistrements`,"pagination.items":`éléments`,"pagination.aria":`Pagination de {label}`,"pagination.ofTotal":`sur {total} {label}`,"pagination.previousPage":`Page précédente`,"pagination.nextPage":`Page suivante`,"pagination.pageOf":`Page {page} sur {totalPages}`,"pagination.page":`Page {page}`,"pagination.perPage":`Par page`,"pagination.itemsPerPage":`{label} par page`,"pagination.showing":`Affichage de {start}–{end} sur {total} {label}`}),qe=Object.freeze({"common.cancel":`キャンセル`,"common.confirm":`確認`,"common.save":`保存`,"common.saving":`保存中…`,"common.saved":`保存済み`,"common.delete":`削除`,"common.edit":`編集`,"common.create":`作成`,"common.creating":`作成中…`,"common.search":`検索`,"common.reset":`リセット`,"common.loading":`読み込み中…`,"common.none":`なし`,"common.optional":`任意`,"common.required":`必須`,"common.readonly":`読み取り専用`,"common.yes":`はい`,"common.no":`いいえ`,"common.all":`すべて`,"common.close":`閉じる`,"common.back":`戻る`,"common.next":`次へ`,"common.previous":`前へ`,"common.name":`名前`,"common.status":`ステータス`,"common.actions":`操作`,"common.type":`種類`,"common.filter":`フィルター`,"common.sort":`並べ替え`,"common.direction":`方向`,"common.ascending":`昇順`,"common.descending":`降順`,"common.refresh":`更新`,"common.resetFilters":`フィルターをリセット`,"common.confirmation":`確認`,"nav.content":`コンテンツ`,"nav.library":`ライブラリ`,"nav.settings":`設定`,"nav.files":`ファイル`,"nav.contentVisibility":`コンテンツの表示設定`,"nav.dataModel":`データモデル`,"nav.users":`ユーザー`,"nav.roles":`ロールと権限`,"nav.appearance":`ブランドと外観`,"nav.createFirstCollection":`最初のコレクションを作成`,"app.studio":`Studio`,"app.apiChecking":`APIを確認中…`,"app.apiOnline":`APIオンライン`,"app.apiUnavailable":`APIを利用できません`,"app.authenticatedUser":`認証済みユーザー`,"app.noRole":`ロールなし`,"app.signOut":`サインアウト`,"app.signingOut":`サインアウト中…`,"app.contentEmpty":`コンテンツ管理を始めるには、設定でコレクションを作成してください。`,"app.contentDescription":`このコレクションのレコードを管理します。`,"section.visibilityTitle":`コンテンツの表示設定`,"section.visibilityDescription":`データを変更せずに、コンテンツナビゲーションに表示するコレクションを選択します。`,"section.dataModelTitle":`データモデル`,"section.dataModelDescription":`MySQLを基盤にコレクション、フィールド、リレーションを作成します。`,"section.usersTitle":`ユーザー`,"section.usersDescription":`管理者が作成したユーザー、ロール、アカウント状態を管理します。`,"section.rolesTitle":`ロールと権限`,"section.rolesDescription":`ロールアクセス、許可フィールド、行フィルターを設定します。`,"section.filesTitle":`ファイル`,"section.filesDescription":`設定されたストレージドライバーを通じてファイルをアップロード、プレビュー、管理します。`,"section.appearanceTitle":`ブランドと外観`,"section.appearanceDescription":`Studioのロゴ、アクセントカラー、テーマ、既定言語を調整します。`,"auth.signIn":`サインイン`,"auth.resetPassword":`パスワードをリセット`,"auth.signInDescription":`管理者アカウントを使用して、スキーマ、コンテンツ、ユーザー、権限を管理します。`,"auth.resetDescription":`アカウントのメールアドレスを入力して、1回限りのリセットリンクをリクエストしてください。`,"auth.email":`メール`,"auth.password":`パスワード`,"auth.working":`処理中…`,"auth.sendResetLink":`リセットリンクを送信`,"auth.backToSignIn":`サインインに戻る`,"auth.forgotPassword":`パスワードを忘れましたか?`,"auth.resetNotice":`このメールに一致する有効なアカウントがある場合、リセットリンクが送信されます。`,"auth.requestFailed":`リクエストに失敗しました`,"auth.signInFailed":`サインインに失敗しました`,"auth.verifyEmail":`メールを確認`,"auth.setNewPassword":`新しいパスワードを設定`,"auth.actionWorking":`リクエストを完了中…`,"auth.actionDone":`リクエストは正常に完了しました。`,"auth.actionFailed":`認証操作に失敗しました。`,"auth.newPassword":`新しいパスワード`,"auth.confirmPassword":`パスワードを確認`,"auth.passwordMismatch":`パスワードが一致しません。`,"auth.passwordChanged":`パスワードを変更しました。既存のセッションは無効化されました。`,"auth.verifyDescription":`1回限りの確認トークンを検証しています。`,"auth.newPasswordDescription":`YunCMSアカウントの新しいパスワードを選択してください。`,"auth.complete":`完了`,"appearance.branding":`ブランド`,"appearance.brandName":`ブランド名`,"appearance.brandNameHint":`Studioでロゴの横に表示されます。`,"appearance.logoUrl":`ロゴURL`,"appearance.logoHint":`カスタムロゴは既定のYunsoftロゴを完全に置き換えます。`,"appearance.accentColor":`アクセントカラー`,"appearance.theme":`テーマ`,"appearance.themeSystem":`システム`,"appearance.themeLight":`ライト`,"appearance.themeDark":`ダーク`,"appearance.defaultLanguage":`既定の言語`,"appearance.defaultLanguageHint":`ユーザーが個人言語を選択していない場合に使用されます。`,"appearance.english":`English`,"appearance.turkish":`Türkçe`,"appearance.currentLanguage":`自分の言語`,"appearance.followDefault":`システム既定に従う`,"appearance.preview":`プレビュー`,"appearance.resetYunsoft":`Yunsoftブランドに戻す`,"appearance.saved":`Studioの外観設定を保存しました。`,"appearance.loadWarning":`保存されたStudio設定を読み込めなかったため、既定のブランドを使用しています。`,"appearance.copyright":`© {year} Yunsoft. All rights reserved.`,"appearance.poweredBy":`Powered by Yunsoft`,"visibility.loading":`コレクションを読み込み中…`,"visibility.empty":`プロジェクトコレクションはまだありません。`,"visibility.showInContent":`コンテンツに表示`,"visibility.visible":`表示`,"visibility.hidden":`非表示`,"visibility.junction":`M2M中間`,"visibility.collection":`コレクション`,"visibility.updated":`コレクションの表示設定を更新しました。`,"visibility.hint":`M2M中間コレクションは主コンテンツではなくリレーションリンクを保存することが多いため、既定では非表示です。直接レコード管理が必要な場合は表示できます。`,"visibility.loadError":`コレクションの表示設定を読み込めませんでした`,"visibility.updateError":`コレクションの表示設定を更新できませんでした`,"visibility.noticeVisible":`{collection} をコンテンツに表示しました`,"visibility.noticeHidden":`{collection} をコンテンツから非表示にしました`,"visibility.description":`コンテンツナビゲーションに表示するコレクションを選択します。コレクションを非表示にしても、スキーマやレコードは削除されません。`,"visibility.visibleCount":`{count} 件表示`,"visibility.hiddenCount":`{count} 件非表示`,"visibility.junctionCount":`{count} 件の中間`,"visibility.searchCollections":`コレクションを検索`,"visibility.searchPlaceholder":`名前または説明…`,"visibility.show":`表示`,"visibility.allCollections":`すべてのコレクション`,"visibility.visibleInContent":`コンテンツに表示`,"visibility.hiddenFromContent":`コンテンツから非表示`,"visibility.m2mJunctions":`M2M中間`,"visibility.emptyTitle":`プロジェクトコレクションなし`,"visibility.emptyDescription":`まずデータモデルでコレクションを作成してください。`,"visibility.noMatchesTitle":`一致するコレクションなし`,"visibility.noMatchesDescription":`検索条件または表示フィルターを変更してください。`,"visibility.contentNavigation":`コンテンツナビゲーション`,"visibility.showCollection":`{collection} をコンテンツに表示`,"visibility.collections":`コレクション`,"files.uploadFile":`ファイルをアップロード`,"files.uploadFirst":`最初のファイルをアップロード`,"files.gallery":`ギャラリー`,"files.list":`リスト`,"files.searchPlaceholder":`名前、MIMEタイプ、ストレージ…`,"files.noFiles":`現在の表示に一致するファイルはありません。`,"files.download":`ダウンロード`,"files.previewUnavailable":`プレビューできません`,"files.editMetadata":`メタデータを編集`,"files.filename":`ファイル名`,"files.title":`タイトル`,"files.size":`サイズ`,"files.uploaded":`アップロード日時`,"files.newest":`新しい順`,"files.oldest":`古い順`,"files.nameAsc":`名前 A–Z`,"files.nameDesc":`名前 Z–A`,"files.sizeAsc":`小さい順`,"files.sizeDesc":`大きい順`,"files.allTypes":`すべての種類`,"files.images":`画像`,"files.image":`画像`,"files.video":`動画`,"files.audio":`音声`,"files.pdf":`PDF`,"files.other":`その他`,"files.file":`ファイル`,"files.untitled":`無題のファイル`,"files.loadError":`ファイルを読み込めませんでした`,"files.uploadedNotice":`ファイルをアップロードしました`,"files.uploadError":`ファイルをアップロードできませんでした`,"files.downloadError":`ファイルをダウンロードできませんでした`,"files.updatedNotice":`ファイルのメタデータを更新しました`,"files.updateError":`ファイルのメタデータを更新できませんでした`,"files.deleteTitle":`ファイルを削除しますか?`,"files.deleteDescription":`{file} と保存された内容は完全に削除されます。`,"files.deleteFile":`ファイルを削除`,"files.deletedNotice":`ファイルを削除しました`,"files.deleteError":`ファイルを削除できませんでした`,"files.libraryEmptyDescription":`ファイルをアップロードしてメタデータを管理します。`,"files.libraryCount":`ライブラリ内のファイル: {count} 件。`,"files.view":`ファイル表示`,"files.closeUpload":`アップロードを閉じる`,"files.searchFiles":`ファイルを検索`,"files.fileType":`ファイル種類`,"files.matchingCount":`{count} 件一致`,"files.upload":`アップロード`,"files.addFile":`ファイルを追加`,"files.dropDescription":`ここにファイルを1つドロップするか、デバイスから選択してください。`,"files.chooseFile":`ファイルを選択`,"files.dragDrop":`またはここにドラッグ&ドロップ`,"files.uploading":`アップロード中…`,"files.fileDetails":`ファイル詳細`,"files.editDescription":`保存されたファイルを変更せずに、タイトルとダウンロード名を編集します。`,"files.optionalTitle":`任意の表示タイトル`,"files.downloadFilename":`ダウンロードファイル名`,"files.saveChanges":`変更を保存`,"files.loading":`ファイルを読み込み中…`,"files.noFilesYet":`ファイルはまだありません`,"files.noMatchingFiles":`一致するファイルなし`,"files.emptyDescription":`最初のファイルをアップロードしてライブラリを作り始めましょう。`,"files.noMatchDescription":`検索範囲を広げるか、フィルターをリセットしてください。`,"files.fileGallery":`ファイルギャラリー`,"files.files":`ファイル`,"files.storage":`ストレージ`,"files.loadingPreviewFor":`{file} のプレビューを読み込み中`,"files.loadingPreview":`プレビューを読み込み中`,"users.newUser":`新しいユーザー`,"users.searchPlaceholder":`メール、ロール、ステータス…`,"users.role":`ロール`,"users.verified":`確認済み`,"users.unverified":`未確認`,"users.active":`有効`,"users.inactive":`無効`,"users.suspended":`停止中`,"users.disabled":`無効化`,"users.noUsers":`一致するユーザーなし`,"users.createUser":`ユーザーを作成`,"users.sendVerification":`確認メールを送信`,"users.deleteTitle":`ユーザーを削除しますか?`,"users.deleteDescription":`選択したユーザーを完全に削除します。`,"users.emailAsc":`メール A–Z`,"users.emailDesc":`メール Z–A`,"users.recentAccess":`最近のアクセス`,"users.oldestAccess":`古いアクセス`,"users.loadError":`ユーザーを読み込めませんでした`,"users.createdNotice":`ユーザーを作成しました`,"users.createError":`ユーザーを作成できませんでした`,"users.updatedNotice":`{email} を更新しました`,"users.updateError":`ユーザーを更新できませんでした`,"users.verificationQueued":`{email} への確認メールを送信キューに追加しました`,"users.verificationError":`確認メールを送信できませんでした`,"users.deleteDescriptionEmail":`{email} はこのプロジェクトへのアクセスを完全に失います。`,"users.deleteUser":`ユーザーを削除`,"users.deletedNotice":`{email} を削除しました`,"users.deleteError":`ユーザーを削除できませんでした`,"users.summary":`合計 {total} · 有効 {active}`,"users.closeForm":`フォームを閉じる`,"users.allRoles":`すべてのロール`,"users.allStatuses":`すべてのステータス`,"users.matchingCount":`一致するユーザー {count} 件`,"users.resetView":`表示をリセット`,"users.createDescription":`ログイン資格情報と任意のロールを設定します。`,"users.noMatchDescription":`検索範囲を広げるか、フィルターをリセットしてください。`,"users.user":`ユーザー`,"users.openUser":`ユーザーページを開く`,"users.userDetails":`ユーザー詳細`,"users.userNotFound":`ユーザーが見つかりません`,"users.userActions":`アカウント操作`,"users.userActionsHint":`確認メールの送信、または未使用アカウントの完全削除を行います。`,"users.verification":`確認`,"users.lastAccess":`最終アクセス`,"users.you":`あなた`,"users.roleFor":`{email} のロール`,"users.statusFor":`{email} のステータス`,"users.never":`なし`,"users.loading":`ユーザーを読み込み中…`,"users.noneFound":`ユーザーが見つかりません。`,"users.users":`ユーザー`,"dataModel.newCollection":`新しいコレクション`,"dataModel.projectCollections":`プロジェクトコレクション`,"dataModel.systemCollections":`システムコレクション`,"dataModel.fields":`フィールド`,"dataModel.relations":`リレーション`,"dataModel.addField":`フィールドを追加`,"dataModel.collectionName":`コレクション名`,"dataModel.fieldName":`フィールド名`,"dataModel.noCollections":`現在のフィルターに一致するコレクションはありません。`,"dataModel.noFields":`この検索に一致するフィールドはありません。`,"dataModel.deleteCollection":`コレクションを削除しますか?`,"dataModel.deleteField":`フィールドを削除しますか?`,"dataModel.nameAsc":`名前 A–Z`,"dataModel.nameDesc":`名前 Z–A`,"dataModel.requiredFirst":`必須項目を先に`,"dataModel.schemaLoadError":`スキーマを読み込めませんでした`,"dataModel.collectionLoadError":`コレクションスキーマを読み込めませんでした`,"dataModel.collectionCreated":`コレクション {name} を作成しました`,"dataModel.collectionCreateError":`コレクションを作成できませんでした`,"dataModel.deleteCollectionDescription":`{name} とその中のすべてのレコードは完全に削除されます。`,"dataModel.deleteCollectionAction":`コレクションを削除`,"dataModel.collectionDeleted":`コレクション {name} を削除しました`,"dataModel.collectionDeleteError":`コレクションを削除できませんでした`,"dataModel.fieldAdded":`フィールド {name} を追加しました`,"dataModel.fieldCreateError":`フィールドを作成できませんでした`,"dataModel.deleteFieldDescription":`{collection}.{field} と保存されているすべての値は完全に削除されます。`,"dataModel.deleteFieldAction":`フィールドを削除`,"dataModel.fieldDeleted":`フィールド {name} を削除しました`,"dataModel.fieldDeleteError":`フィールドを削除できませんでした`,"dataModel.fieldUpdated":`{name} を更新しました`,"dataModel.fieldUpdateError":`フィールドスキーマを更新できませんでした`,"dataModel.relationCreated":`リレーション {collection}.{field} を作成しました`,"dataModel.relationCreateError":`リレーションを作成できませんでした`,"dataModel.deleteRelation":`リレーションを削除しますか?`,"dataModel.deleteRelationDescription":`{collection}.{field} は {target} を参照しなくなります。`,"dataModel.deleteRelationAction":`リレーションを削除`,"dataModel.relationDeleted":`リレーションを削除しました`,"dataModel.relationDeleteError":`リレーションを削除できませんでした`,"dataModel.junctionCreated":`M2M中間 {name} を作成しました`,"dataModel.m2mCreateError":`M2Mリレーションを作成できませんでした`,"dataModel.deleteM2M":`多対多リレーションを削除しますか?`,"dataModel.deleteM2MDescription":`{name} とその中のすべてのリンクレコードは完全に削除されます。`,"dataModel.junctionDeleted":`M2M中間 {name} を削除しました`,"dataModel.m2mDeleteError":`M2Mリレーションを削除できませんでした`,"dataModel.collections":`コレクション`,"dataModel.collectionSummary":`プロジェクト {project} · システム {system}`,"dataModel.createCollection":`コレクションを作成`,"dataModel.createCollectionHint":"`articles` のような短く機械処理しやすい名前を使用してください。","dataModel.description":`説明`,"dataModel.optionalDescription":`任意の説明`,"dataModel.findCollection":`コレクションを探す`,"dataModel.noProjectCollections":`プロジェクトコレクションはまだありません。`,"dataModel.noMatchingProject":`一致するプロジェクトコレクションはありません。`,"dataModel.collectionsLower":`コレクション`,"dataModel.systemCollectionsCount":`システムコレクション ({count})`,"dataModel.systemManaged":`システム管理`,"dataModel.noMatchingSystem":`一致するシステムコレクションはありません。`,"dataModel.systemCollectionsLower":`システムコレクション`,"dataModel.selectCollection":`コレクションを選択`,"dataModel.selectCollectionDescription":`左側のコレクションを選択して、フィールドとリレーションを確認します。`,"dataModel.systemCollection":`システムコレクション`,"dataModel.noDescription":`説明は追加されていません。`,"dataModel.fieldCount":`{count} フィールド`,"dataModel.collectionSettings":`コレクション設定`,"dataModel.openField":`フィールドページを開く`,"dataModel.fieldDetail":`フィールド詳細`,"dataModel.fieldNotFound":`このフィールドは見つからないか、削除されています。`,"dataModel.backToFields":`フィールドに戻る`,"dataModel.fieldActions":`フィールドの動作`,"dataModel.fieldActionsHint":`必須かどうかを変更するか、未使用のフィールドを完全に削除します。`,"dataModel.relationPageHint":`リレーション種類を選択すると、設定が専用ページで開きます。`,"dataModel.startRelation":`設定`,"dataModel.fieldsDescription":`このコレクションに保存されているフィールドを検索・管理します。`,"dataModel.addFieldHint":`フィールド名と保存型を選択します。V1では型変換は意図的に利用できません。`,"dataModel.maxLength":`最大長`,"dataModel.requiredValue":`必須値`,"dataModel.findField":`フィールドを探す`,"dataModel.fieldSearchPlaceholder":`名前、型、必須…`,"dataModel.sortFields":`フィールドを並べ替え`,"dataModel.makeOptional":`任意にする`,"dataModel.makeRequired":`必須にする`,"dataModel.fieldsLower":`フィールド`,"dataModel.systemRelationInfo":`システムコレクションのリレーションはメタデータで確認できますが、この画面からは編集できません。`,"dataModel.manyToOne":`多対一`,"dataModel.linkOneRecord":`1つのレコードにリンク`,"dataModel.m2oDescription":`{collection} の既存フィールドを外部キーフィールドとして使用し、対象コレクションを選択します。`,"dataModel.noDirectRelations":`このコレクションに直接リレーションはありません。`,"dataModel.linksTo":`{collection}.{field} にリンク`,"dataModel.fieldIn":`{collection} のフィールド`,"dataModel.chooseField":`フィールドを選択`,"dataModel.targetCollection":`対象コレクション`,"dataModel.chooseCollection":`コレクションを選択`,"dataModel.ifTargetDeleted":`対象が削除された場合`,"dataModel.preventDeletion":`削除を防止`,"dataModel.deleteLinked":`リンクされたレコードを削除`,"dataModel.clearField":`このフィールドをクリア`,"dataModel.createRelation":`リレーションを作成`,"dataModel.manyToMany":`多対多`,"dataModel.connectCollections":`2つのコレクションを接続`,"dataModel.m2mDescription":`YunCMSは両方のリンクを保存する非表示の中間コレクションを作成します。`,"dataModel.noM2MJunctions":`このコレクションに多対多の中間はありません。`,"dataModel.junctionName":`中間名`,"dataModel.firstCollection":`最初のコレクション`,"dataModel.secondCollection":`2番目のコレクション`,"dataModel.createJunction":`中間を作成`,"dataModel.loadingSchema":`スキーマを読み込み中…`,"roles.newRole":`新しいロール`,"roles.public":`公開`,"roles.administrator":`管理者`,"roles.custom":`カスタム`,"roles.configuredOnly":`設定済みのみ`,"roles.collection":`コレクション`,"roles.read":`読み取り`,"roles.create":`作成`,"roles.update":`更新`,"roles.delete":`削除`,"roles.advanced":`詳細`,"roles.fieldAccess":`フィールドアクセス`,"roles.rowFilter":`行フィルターJSON`,"roles.validation":`書き込み検証JSON`,"roles.noRoles":`一致するロールはありません。`,"roles.nameAsc":`名前 A–Z`,"roles.nameDesc":`名前 Z–A`,"roles.mostRules":`ルールが多い順`,"roles.loadError":`ロールと権限を読み込めませんでした`,"roles.createdNotice":`ロールを作成しました`,"roles.createError":`ロールを作成できませんでした`,"roles.updatedNotice":`ロールを更新しました`,"roles.updateError":`ロールを更新できませんでした`,"roles.deleteTitle":`ロールを削除しますか?`,"roles.deleteDescription":`{name} とすべての権限ルールは完全に削除されます。`,"roles.deleteRole":`ロールを削除`,"roles.deletedNotice":`ロールを削除しました`,"roles.deleteError":`ロールを削除できませんでした`,"roles.accessRemoved":`{collection} の {action} アクセスを削除しました`,"roles.accessGranted":`{collection} の {action} アクセスを許可しました`,"roles.permissionUpdateError":`権限を更新できませんでした`,"roles.permissionDetailsError":`権限の詳細を読み込めませんでした`,"roles.chooseFieldError":`少なくとも1つの許可フィールドを選択するか、すべてのフィールドを有効にしてください。`,"roles.advancedSaved":`詳細な権限ルールを保存しました`,"roles.invalidJson":`フィルターと検証ルールには有効なJSONを指定してください。`,"roles.access":`アクセス`,"roles.roles":`ロール`,"roles.summary":`{count} ロール · アクセスを管理するロールを選択してください。`,"roles.publicRole":`公開ロール`,"roles.createRole":`ロールを作成`,"roles.findRole":`ロールを探す`,"roles.adminFullAccess":`管理者 · フルアクセス`,"roles.customRole":`カスタムロール`,"roles.rolesLower":`ロール`,"roles.selectRole":`ロールを選択`,"roles.selectRoleDescription":`アクセスを管理するロールを選択してください。`,"roles.roleKind":`{kind} ロール`,"roles.roleName":`ロール名`,"roles.saveName":`名前を保存`,"roles.permissionRules":`権限ルール`,"roles.fullAdmin":`管理者フルアクセス`,"roles.fullAdminDescription":`このロールはコレクション権限行を迂回します。マトリックス設定は不要です。`,"roles.permissions":`権限`,"roles.collectionAccess":`コレクションアクセス`,"roles.collectionAccessDescription":`基本操作を有効にし、フィールドまたは行制限が必要な場合だけ「設定」を使用します。`,"roles.ruleCount":`{count} ルール`,"roles.collectionCount":`{visible}/{total} コレクション`,"roles.actionCollection":`{action} {collection}`,"roles.allowed":`許可`,"roles.off":`オフ`,"roles.restricted":`制限あり`,"roles.configure":`設定`,"roles.createCollectionFirst":`権限を設定する前にコレクションを作成してください。`,"roles.noMatchingCollections":`現在の権限フィルターに一致するコレクションはありません。`,"roles.advancedPermission":`詳細権限`,"roles.advancedDescription":`フィールドを制限したり、行レベルのルールを追加したりします。空のJSONルールは追加制限なしを意味します。`,"roles.saveRules":`ルールを保存`,"roles.allowedFields":`許可フィールド`,"roles.allowedFieldsDescription":`既定ではすべてのフィールドを許可します。特定のフィールドを選ぶ場合はオフにしてください。`,"roles.allowAllFields":`すべてのフィールドを許可`,"roles.rowFilterDescription":`このルールに一致する行だけが、この操作でアクセス可能です。`,"roles.validationWriteDescription":`作成/更新では、最終レコードがこのルールに一致する必要があります。`,"roles.validationUnsupported":`検証は作成と更新の権限にのみ適用されます。`,"roles.openPermission":`権限ページを開く`,"roles.permissionDetail":`権限詳細`,"roles.permissionDetailDescription":`この操作のアクセス範囲とフィールドルールを管理します。`,"roles.permissionEnabled":`権限有効`,"roles.permissionDisabled":`権限無効`,"roles.permissionMasterSwitch":`この操作を許可`,"roles.permissionMasterSwitchHint":`無効の場合、APIはこのコレクションと操作を拒否します。`,"roles.enableBeforeRules":`フィールド、行フィルター、検証ルールを編集する前に権限を有効にしてください。`,"roles.actionOnlyPermission":`このシステムリソースは操作レベルのアクセスのみ対応しており、追加のフィールドや行ルールはありません。`,"roles.permissionNotFound":`権限リソースが見つかりません`,"roles.permissionNotFoundDescription":`コレクションが削除されたか、この操作がサポートされなくなった可能性があります。`,"roles.backToRole":`ロールに戻る`,"roles.collectionPermissionHint":`読み取り、作成、更新、削除の操作を個別に管理します。`,"roles.allRecords":`対象となるすべてのレコード`,"content.newRecord":`新しいレコード`,"content.searchPlaceholder":`レコードを検索…`,"content.noRecords":`一致するレコードなし`,"content.editRecord":`レコードを編集`,"content.createRecord":`レコードを作成`,"content.deleteRecord":`レコードを削除しますか?`,"content.deleteDescription":`選択したレコードを完全に削除します。`,"content.openDataModel":`データモデルを開く`,"content.opContains":`含む`,"content.opStartsWith":`次で始まる`,"content.opEndsWith":`次で終わる`,"content.opExactly":`完全一致`,"content.opNot":`一致しない`,"content.opEmpty":`空`,"content.opNotEmpty":`空ではない`,"content.opEquals":`等しい`,"content.opDoesNotEqual":`等しくない`,"content.opGreaterThan":`より大きい`,"content.opGreaterEqual":`以上`,"content.opLessThan":`より小さい`,"content.opLessEqual":`以下`,"content.opIs":`一致`,"content.saveError":`レコードを保存できませんでした`,"content.updateDescription":`以下のフィールドを更新してください。`,"content.createDescription":`このコレクションに新しい項目を追加します。`,"content.select":`選択…`,"content.unknownValue":`不明 ({value})`,"content.relationHint":`{collection} · 表示: {field}`,"content.saveRecord":`レコードを保存`,"content.schemaLoadError":`コレクションスキーマを読み込めませんでした`,"content.dataLoadError":`コレクションデータを読み込めませんでした`,"content.recordNotFound":`レコードが見つかりません`,"content.recordNotFoundDescription":`このレコードは削除されたか、URLが正しくない可能性があります。`,"content.deleteRecordDescription":`レコード {id} は {collection} から完全に削除されます。`,"content.deleteRecordAction":`レコードを削除`,"content.deleteError":`レコードを削除できませんでした`,"content.empty":`空`,"content.notEmpty":`空ではない`,"content.noCollections":`コレクションはまだありません`,"content.noCollectionsDescription":`データモデルで最初のコレクションを作成してください。コンテンツサイドバーに直接表示されます。`,"content.matchingRecords":`一致するレコード {count} 件`,"content.dataControls":`{collection} のデータコントロール`,"content.searchTextFields":`テキストフィールドを検索…`,"content.noTextFields":`検索できるテキストフィールドなし`,"content.sortBy":`並べ替え`,"content.defaultOrder":`既定順`,"content.filterField":`フィルターフィールド`,"content.condition":`条件`,"content.value":`値`,"content.noValueNeeded":`値は不要`,"content.chooseRecord":`レコードを選択`,"content.chooseValue":`値を選択`,"content.filterValue":`フィルター値`,"content.chooseFieldFirst":`先にフィールドを選択してください`,"content.addFilter":`フィルターを追加`,"content.filters":`フィルター`,"content.filterCount":`{count} 件有効`,"content.activeFilters":`有効なフィルター`,"content.filterHint":`フィルターを追加してこのコレクションを絞り込みます。`,"content.resetView":`表示をリセット`,"content.loadingCollection":`コレクションを読み込み中…`,"content.noRecordsYet":`レコードはまだありません`,"content.firstRecordDescription":`{collection} に最初のレコードを追加してください。`,"content.createFirstRecord":`最初のレコードを作成`,"content.noMatchDescription":`フィルターを削除するか検索条件を変更して、結果を広げてください。`,"content.records":`レコード`,"pagination.items":`項目`,"pagination.aria":`{label} のページネーション`,"pagination.ofTotal":`/ {total} {label}`,"pagination.previousPage":`前のページ`,"pagination.nextPage":`次のページ`,"pagination.pageOf":`{totalPages} ページ中 {page} ページ`,"pagination.page":`{page} ページ`,"pagination.perPage":`1ページあたり`,"pagination.itemsPerPage":`1ページあたりの {label}`,"pagination.showing":`{total} {label} 中 {start}–{end} を表示`}),Je=Object.freeze({"common.cancel":`Cancelar`,"common.confirm":`Confirmar`,"common.save":`Salvar`,"common.saving":`Salvando…`,"common.saved":`Salvo`,"common.delete":`Excluir`,"common.edit":`Editar`,"common.create":`Criar`,"common.creating":`Criando…`,"common.search":`Buscar`,"common.reset":`Redefinir`,"common.loading":`Carregando…`,"common.none":`Nenhum`,"common.optional":`Opcional`,"common.required":`Obrigatório`,"common.readonly":`Somente leitura`,"common.yes":`Sim`,"common.no":`Não`,"common.all":`Todos`,"common.close":`Fechar`,"common.back":`Voltar`,"common.next":`Próximo`,"common.previous":`Anterior`,"common.name":`Nome`,"common.status":`Status`,"common.actions":`Ações`,"common.type":`Tipo`,"common.filter":`Filtro`,"common.sort":`Ordenar`,"common.direction":`Direção`,"common.ascending":`Crescente`,"common.descending":`Decrescente`,"common.refresh":`Atualizar`,"common.resetFilters":`Redefinir filtros`,"common.confirmation":`Confirmação`,"nav.content":`Conteúdo`,"nav.library":`Biblioteca`,"nav.settings":`Configurações`,"nav.files":`Arquivos`,"nav.contentVisibility":`Visibilidade do conteúdo`,"nav.dataModel":`Modelo de dados`,"nav.users":`Usuários`,"nav.roles":`Funções e permissões`,"nav.appearance":`Marca e aparência`,"nav.createFirstCollection":`Criar primeira coleção`,"app.studio":`Studio`,"app.apiChecking":`Verificando API…`,"app.apiOnline":`API online`,"app.apiUnavailable":`API indisponível`,"app.authenticatedUser":`Usuário autenticado`,"app.noRole":`Sem função`,"app.signOut":`Sair`,"app.signingOut":`Saindo…`,"app.contentEmpty":`Crie uma coleção em Configurações para começar a gerenciar conteúdo.`,"app.contentDescription":`Gerencie os registros desta coleção.`,"section.visibilityTitle":`Visibilidade do conteúdo`,"section.visibilityDescription":`Escolha quais coleções aparecem na navegação de Conteúdo sem alterar seus dados.`,"section.dataModelTitle":`Modelo de dados`,"section.dataModelDescription":`Crie coleções, campos e relações com suporte do MySQL.`,"section.usersTitle":`Usuários`,"section.usersDescription":`Gerencie usuários criados por administradores, funções e status das contas.`,"section.rolesTitle":`Funções e permissões`,"section.rolesDescription":`Configure acesso por função, listas de campos permitidos e filtros de linha.`,"section.filesTitle":`Arquivos`,"section.filesDescription":`Envie, visualize e gerencie arquivos pelo driver de armazenamento configurado.`,"section.appearanceTitle":`Marca e aparência`,"section.appearanceDescription":`Ajuste o logotipo do Studio, cor de destaque, tema e idioma padrão.`,"auth.signIn":`Entrar`,"auth.resetPassword":`Redefinir senha`,"auth.signInDescription":`Use uma conta de administrador para gerenciar esquema, conteúdo, usuários e permissões.`,"auth.resetDescription":`Informe o e-mail da conta para solicitar um link de redefinição de uso único.`,"auth.email":`E-mail`,"auth.password":`Senha`,"auth.working":`Processando…`,"auth.sendResetLink":`Enviar link de redefinição`,"auth.backToSignIn":`Voltar para entrar`,"auth.forgotPassword":`Esqueceu a senha?`,"auth.resetNotice":`Se houver uma conta ativa com este e-mail, um link de redefinição será enviado.`,"auth.requestFailed":`Falha na solicitação`,"auth.signInFailed":`Falha ao entrar`,"auth.verifyEmail":`Verificar e-mail`,"auth.setNewPassword":`Definir nova senha`,"auth.actionWorking":`Concluindo solicitação…`,"auth.actionDone":`Sua solicitação foi concluída com sucesso.`,"auth.actionFailed":`A ação de autenticação falhou.`,"auth.newPassword":`Nova senha`,"auth.confirmPassword":`Confirmar senha`,"auth.passwordMismatch":`As senhas não coincidem.`,"auth.passwordChanged":`Senha alterada. As sessões existentes foram revogadas.`,"auth.verifyDescription":`Verificando o token de uso único.`,"auth.newPasswordDescription":`Escolha uma nova senha para sua conta YunCMS.`,"auth.complete":`Concluir`,"appearance.branding":`Marca`,"appearance.brandName":`Nome da marca`,"appearance.brandNameHint":`Exibido ao lado do logotipo no Studio.`,"appearance.logoUrl":`URL do logotipo`,"appearance.logoHint":`O logotipo personalizado substitui completamente o logotipo padrão da Yunsoft.`,"appearance.accentColor":`Cor de destaque`,"appearance.theme":`Tema`,"appearance.themeSystem":`Sistema`,"appearance.themeLight":`Claro`,"appearance.themeDark":`Escuro`,"appearance.defaultLanguage":`Idioma padrão`,"appearance.defaultLanguageHint":`Usado quando o usuário não selecionou um idioma pessoal.`,"appearance.english":`English`,"appearance.turkish":`Türkçe`,"appearance.currentLanguage":`Meu idioma`,"appearance.followDefault":`Seguir padrão do sistema`,"appearance.preview":`Pré-visualização`,"appearance.resetYunsoft":`Restaurar marca Yunsoft`,"appearance.saved":`Configurações de aparência do Studio salvas.`,"appearance.loadWarning":`A marca padrão está sendo usada porque as configurações salvas do Studio não puderam ser carregadas.`,"appearance.copyright":`© {year} Yunsoft. Todos os direitos reservados.`,"appearance.poweredBy":`Desenvolvido pela Yunsoft`,"visibility.loading":`Carregando coleções…`,"visibility.empty":`Ainda não há coleções de projeto disponíveis.`,"visibility.showInContent":`Mostrar em Conteúdo`,"visibility.visible":`Visível`,"visibility.hidden":`Oculto`,"visibility.junction":`Junção M2M`,"visibility.collection":`Coleção`,"visibility.updated":`Visibilidade da coleção atualizada.`,"visibility.hint":`Coleções de junção M2M ficam ocultas por padrão porque normalmente armazenam vínculos de relações, e não conteúdo principal. Você ainda pode torná-las visíveis quando o gerenciamento direto for útil.`,"visibility.loadError":`As configurações de visibilidade das coleções não puderam ser carregadas`,"visibility.updateError":`A visibilidade da coleção não pôde ser atualizada`,"visibility.noticeVisible":`{collection} agora está visível em Conteúdo`,"visibility.noticeHidden":`{collection} agora está oculto em Conteúdo`,"visibility.description":`Escolha quais coleções aparecem na navegação de Conteúdo. Ocultar uma coleção nunca exclui seu esquema ou registros.`,"visibility.visibleCount":`{count} visíveis`,"visibility.hiddenCount":`{count} ocultas`,"visibility.junctionCount":`{count} junções`,"visibility.searchCollections":`Buscar coleções`,"visibility.searchPlaceholder":`Nome ou descrição…`,"visibility.show":`Mostrar`,"visibility.allCollections":`Todas as coleções`,"visibility.visibleInContent":`Visíveis em Conteúdo`,"visibility.hiddenFromContent":`Ocultas de Conteúdo`,"visibility.m2mJunctions":`Junções M2M`,"visibility.emptyTitle":`Nenhuma coleção de projeto`,"visibility.emptyDescription":`Crie primeiro uma coleção no Modelo de dados.`,"visibility.noMatchesTitle":`Nenhuma coleção correspondente`,"visibility.noMatchesDescription":`Altere a busca ou o filtro de visibilidade.`,"visibility.contentNavigation":`Navegação de conteúdo`,"visibility.showCollection":`Mostrar {collection} em Conteúdo`,"visibility.collections":`coleções`,"files.uploadFile":`Enviar arquivo`,"files.uploadFirst":`Enviar primeiro arquivo`,"files.gallery":`Galeria`,"files.list":`Lista`,"files.searchPlaceholder":`Nome, tipo MIME ou armazenamento…`,"files.noFiles":`Nenhum arquivo corresponde à visualização atual.`,"files.download":`Baixar`,"files.previewUnavailable":`Pré-visualização indisponível`,"files.editMetadata":`Editar metadados`,"files.filename":`Nome do arquivo`,"files.title":`Título`,"files.size":`Tamanho`,"files.uploaded":`Enviado`,"files.newest":`Mais recentes primeiro`,"files.oldest":`Mais antigos primeiro`,"files.nameAsc":`Nome A–Z`,"files.nameDesc":`Nome Z–A`,"files.sizeAsc":`Menores primeiro`,"files.sizeDesc":`Maiores primeiro`,"files.allTypes":`Todos os tipos`,"files.images":`Imagens`,"files.image":`Imagem`,"files.video":`Vídeo`,"files.audio":`Áudio`,"files.pdf":`PDF`,"files.other":`Outro`,"files.file":`Arquivo`,"files.untitled":`Arquivo sem título`,"files.loadError":`Os arquivos não puderam ser carregados`,"files.uploadedNotice":`Arquivo enviado`,"files.uploadError":`O arquivo não pôde ser enviado`,"files.downloadError":`O arquivo não pôde ser baixado`,"files.updatedNotice":`Metadados do arquivo atualizados`,"files.updateError":`Os metadados do arquivo não puderam ser atualizados`,"files.deleteTitle":`Excluir arquivo?`,"files.deleteDescription":`{file} e seu conteúdo armazenado serão excluídos permanentemente.`,"files.deleteFile":`Excluir arquivo`,"files.deletedNotice":`Arquivo excluído`,"files.deleteError":`O arquivo não pôde ser excluído`,"files.libraryEmptyDescription":`Envie arquivos e gerencie seus metadados.`,"files.libraryCount":`{count} arquivos na biblioteca.`,"files.view":`Visualização de arquivos`,"files.closeUpload":`Fechar envio`,"files.searchFiles":`Buscar arquivos`,"files.fileType":`Tipo de arquivo`,"files.matchingCount":`{count} correspondentes`,"files.upload":`Enviar`,"files.addFile":`Adicionar arquivo`,"files.dropDescription":`Solte um arquivo aqui ou escolha-o no seu dispositivo.`,"files.chooseFile":`Escolher arquivo`,"files.dragDrop":`ou arraste e solte aqui`,"files.uploading":`Enviando…`,"files.fileDetails":`Detalhes do arquivo`,"files.editDescription":`Edite o título e o nome de download sem alterar o arquivo armazenado.`,"files.optionalTitle":`Título de exibição opcional`,"files.downloadFilename":`Nome do arquivo para download`,"files.saveChanges":`Salvar alterações`,"files.loading":`Carregando arquivos…`,"files.noFilesYet":`Ainda não há arquivos`,"files.noMatchingFiles":`Nenhum arquivo correspondente`,"files.emptyDescription":`Envie o primeiro arquivo para começar a montar sua biblioteca.`,"files.noMatchDescription":`Tente uma busca mais ampla ou redefina os filtros.`,"files.fileGallery":`Galeria de arquivos`,"files.files":`arquivos`,"files.storage":`Armazenamento`,"files.loadingPreviewFor":`Carregando pré-visualização de {file}`,"files.loadingPreview":`Carregando pré-visualização`,"users.newUser":`Novo usuário`,"users.searchPlaceholder":`E-mail, função ou status…`,"users.role":`Função`,"users.verified":`Verificado`,"users.unverified":`Não verificado`,"users.active":`Ativo`,"users.inactive":`Inativo`,"users.suspended":`Suspenso`,"users.disabled":`Desativado`,"users.noUsers":`Nenhum usuário correspondente`,"users.createUser":`Criar usuário`,"users.sendVerification":`Enviar verificação`,"users.deleteTitle":`Excluir usuário?`,"users.deleteDescription":`Isso remove permanentemente o usuário selecionado.`,"users.emailAsc":`E-mail A–Z`,"users.emailDesc":`E-mail Z–A`,"users.recentAccess":`Acesso recente`,"users.oldestAccess":`Acesso mais antigo`,"users.loadError":`Os usuários não puderam ser carregados`,"users.createdNotice":`Usuário criado`,"users.createError":`O usuário não pôde ser criado`,"users.updatedNotice":`{email} atualizado`,"users.updateError":`O usuário não pôde ser atualizado`,"users.verificationQueued":`E-mail de verificação enfileirado para {email}`,"users.verificationError":`O e-mail de verificação não pôde ser enviado`,"users.deleteDescriptionEmail":`{email} perderá permanentemente o acesso a este projeto.`,"users.deleteUser":`Excluir usuário`,"users.deletedNotice":`{email} excluído`,"users.deleteError":`O usuário não pôde ser excluído`,"users.summary":`{total} no total · {active} ativos`,"users.closeForm":`Fechar formulário`,"users.allRoles":`Todas as funções`,"users.allStatuses":`Todos os status`,"users.matchingCount":`{count} usuários correspondentes`,"users.resetView":`Redefinir visualização`,"users.createDescription":`Defina credenciais de acesso e uma função opcional.`,"users.noMatchDescription":`Tente uma busca mais ampla ou redefina os filtros.`,"users.user":`Usuário`,"users.openUser":`Abrir página do usuário`,"users.userDetails":`Detalhes do usuário`,"users.userNotFound":`Usuário não encontrado`,"users.userActions":`Ações da conta`,"users.userActionsHint":`Envie a verificação ou exclua permanentemente uma conta não utilizada.`,"users.verification":`Verificação`,"users.lastAccess":`Último acesso`,"users.you":`você`,"users.roleFor":`Função de {email}`,"users.statusFor":`Status de {email}`,"users.never":`Nunca`,"users.loading":`Carregando usuários…`,"users.noneFound":`Nenhum usuário encontrado.`,"users.users":`usuários`,"dataModel.newCollection":`Nova coleção`,"dataModel.projectCollections":`Coleções do projeto`,"dataModel.systemCollections":`Coleções do sistema`,"dataModel.fields":`Campos`,"dataModel.relations":`Relações`,"dataModel.addField":`Adicionar campo`,"dataModel.collectionName":`Nome da coleção`,"dataModel.fieldName":`Nome do campo`,"dataModel.noCollections":`Nenhuma coleção corresponde aos filtros atuais.`,"dataModel.noFields":`Nenhum campo corresponde a esta busca.`,"dataModel.deleteCollection":`Excluir coleção?`,"dataModel.deleteField":`Excluir campo?`,"dataModel.nameAsc":`Nome A–Z`,"dataModel.nameDesc":`Nome Z–A`,"dataModel.requiredFirst":`Obrigatórios primeiro`,"dataModel.schemaLoadError":`O esquema não pôde ser carregado`,"dataModel.collectionLoadError":`O esquema da coleção não pôde ser carregado`,"dataModel.collectionCreated":`Coleção {name} criada`,"dataModel.collectionCreateError":`A coleção não pôde ser criada`,"dataModel.deleteCollectionDescription":`{name} e todos os registros contidos nela serão excluídos permanentemente.`,"dataModel.deleteCollectionAction":`Excluir coleção`,"dataModel.collectionDeleted":`Coleção {name} excluída`,"dataModel.collectionDeleteError":`A coleção não pôde ser excluída`,"dataModel.fieldAdded":`Campo {name} adicionado`,"dataModel.fieldCreateError":`O campo não pôde ser criado`,"dataModel.deleteFieldDescription":`{collection}.{field} e todos os valores armazenados nele serão excluídos permanentemente.`,"dataModel.deleteFieldAction":`Excluir campo`,"dataModel.fieldDeleted":`Campo {name} excluído`,"dataModel.fieldDeleteError":`O campo não pôde ser excluído`,"dataModel.fieldUpdated":`{name} atualizado`,"dataModel.fieldUpdateError":`O esquema do campo não pôde ser atualizado`,"dataModel.relationCreated":`Relação {collection}.{field} criada`,"dataModel.relationCreateError":`A relação não pôde ser criada`,"dataModel.deleteRelation":`Excluir relação?`,"dataModel.deleteRelationDescription":`{collection}.{field} deixará de referenciar {target}.`,"dataModel.deleteRelationAction":`Excluir relação`,"dataModel.relationDeleted":`Relação excluída`,"dataModel.relationDeleteError":`A relação não pôde ser excluída`,"dataModel.junctionCreated":`Junção M2M {name} criada`,"dataModel.m2mCreateError":`A relação M2M não pôde ser criada`,"dataModel.deleteM2M":`Excluir relação muitos-para-muitos?`,"dataModel.deleteM2MDescription":`{name} e todos os registros de vínculo contidos nela serão excluídos permanentemente.`,"dataModel.junctionDeleted":`Junção M2M {name} excluída`,"dataModel.m2mDeleteError":`A relação M2M não pôde ser excluída`,"dataModel.collections":`Coleções`,"dataModel.collectionSummary":`{project} do projeto · {system} do sistema`,"dataModel.createCollection":`Criar coleção`,"dataModel.createCollectionHint":"Use um nome curto e amigável para máquinas, como `articles`.","dataModel.description":`Descrição`,"dataModel.optionalDescription":`Descrição opcional`,"dataModel.findCollection":`Encontrar coleção`,"dataModel.noProjectCollections":`Ainda não há coleções de projeto.`,"dataModel.noMatchingProject":`Nenhuma coleção de projeto correspondente.`,"dataModel.collectionsLower":`coleções`,"dataModel.systemCollectionsCount":`Coleções do sistema ({count})`,"dataModel.systemManaged":`gerenciado pelo sistema`,"dataModel.noMatchingSystem":`Nenhuma coleção do sistema correspondente.`,"dataModel.systemCollectionsLower":`coleções do sistema`,"dataModel.selectCollection":`Selecione uma coleção`,"dataModel.selectCollectionDescription":`Escolha uma coleção à esquerda para inspecionar seus campos e relações.`,"dataModel.systemCollection":`Coleção do sistema`,"dataModel.noDescription":`Nenhuma descrição foi adicionada.`,"dataModel.fieldCount":`{count} campos`,"dataModel.collectionSettings":`Configurações da coleção`,"dataModel.openField":`Abrir página do campo`,"dataModel.fieldDetail":`Detalhes do campo`,"dataModel.fieldNotFound":`Este campo não foi encontrado ou foi removido.`,"dataModel.backToFields":`Voltar aos campos`,"dataModel.fieldActions":`Comportamento do campo`,"dataModel.fieldActionsHint":`Altere se o campo é obrigatório ou exclua permanentemente um campo não utilizado.`,"dataModel.relationPageHint":`Escolha um tipo de relação; a configuração será aberta em sua própria página.`,"dataModel.startRelation":`Configurar`,"dataModel.fieldsDescription":`Busque e gerencie os campos armazenados nesta coleção.`,"dataModel.addFieldHint":`Escolha um nome de campo e um tipo de armazenamento. A conversão de tipo não está disponível intencionalmente na V1.`,"dataModel.maxLength":`Comprimento máximo`,"dataModel.requiredValue":`Valor obrigatório`,"dataModel.findField":`Encontrar campo`,"dataModel.fieldSearchPlaceholder":`Nome, tipo, obrigatório…`,"dataModel.sortFields":`Ordenar campos`,"dataModel.makeOptional":`Tornar opcional`,"dataModel.makeRequired":`Tornar obrigatório`,"dataModel.fieldsLower":`campos`,"dataModel.systemRelationInfo":`Relações de coleções do sistema são visíveis pelos metadados, mas não são editadas nesta tela.`,"dataModel.manyToOne":`Muitos para um`,"dataModel.linkOneRecord":`Vincular a um registro`,"dataModel.m2oDescription":`Use um campo existente em {collection} como chave estrangeira e depois escolha a coleção de destino.`,"dataModel.noDirectRelations":`Nenhuma relação direta para esta coleção.`,"dataModel.linksTo":`vincula a {collection}.{field}`,"dataModel.fieldIn":`Campo em {collection}`,"dataModel.chooseField":`Escolher campo`,"dataModel.targetCollection":`Coleção de destino`,"dataModel.chooseCollection":`Escolher coleção`,"dataModel.ifTargetDeleted":`Se o destino for excluído`,"dataModel.preventDeletion":`Impedir exclusão`,"dataModel.deleteLinked":`Excluir registros vinculados`,"dataModel.clearField":`Limpar este campo`,"dataModel.createRelation":`Criar relação`,"dataModel.manyToMany":`Muitos para muitos`,"dataModel.connectCollections":`Conectar duas coleções`,"dataModel.m2mDescription":`O YunCMS cria uma coleção de junção oculta que armazena ambos os vínculos.`,"dataModel.noM2MJunctions":`Nenhuma junção muitos-para-muitos para esta coleção.`,"dataModel.junctionName":`Nome da junção`,"dataModel.firstCollection":`Primeira coleção`,"dataModel.secondCollection":`Segunda coleção`,"dataModel.createJunction":`Criar junção`,"dataModel.loadingSchema":`Carregando esquema…`,"roles.newRole":`Nova função`,"roles.public":`Pública`,"roles.administrator":`Administrador`,"roles.custom":`Personalizada`,"roles.configuredOnly":`Somente configuradas`,"roles.collection":`Coleção`,"roles.read":`Ler`,"roles.create":`Criar`,"roles.update":`Atualizar`,"roles.delete":`Excluir`,"roles.advanced":`Avançado`,"roles.fieldAccess":`Acesso a campos`,"roles.rowFilter":`JSON de filtro de linha`,"roles.validation":`JSON de validação de escrita`,"roles.noRoles":`Nenhuma função correspondente.`,"roles.nameAsc":`Nome A–Z`,"roles.nameDesc":`Nome Z–A`,"roles.mostRules":`Mais regras`,"roles.loadError":`Funções e permissões não puderam ser carregadas`,"roles.createdNotice":`Função criada`,"roles.createError":`A função não pôde ser criada`,"roles.updatedNotice":`Função atualizada`,"roles.updateError":`A função não pôde ser atualizada`,"roles.deleteTitle":`Excluir função?`,"roles.deleteDescription":`{name} e todas as regras de permissão serão excluídas permanentemente.`,"roles.deleteRole":`Excluir função`,"roles.deletedNotice":`Função excluída`,"roles.deleteError":`A função não pôde ser excluída`,"roles.accessRemoved":`Acesso de {action} removido para {collection}`,"roles.accessGranted":`Acesso de {action} concedido para {collection}`,"roles.permissionUpdateError":`A permissão não pôde ser atualizada`,"roles.permissionDetailsError":`Os detalhes da permissão não puderam ser carregados`,"roles.chooseFieldError":`Escolha pelo menos um campo permitido ou habilite todos os campos.`,"roles.advancedSaved":`Regras avançadas de permissão salvas`,"roles.invalidJson":`As regras de filtro e validação devem conter JSON válido.`,"roles.access":`Acesso`,"roles.roles":`Funções`,"roles.summary":`{count} funções · escolha uma para gerenciar o acesso.`,"roles.publicRole":`Função pública`,"roles.createRole":`Criar função`,"roles.findRole":`Encontrar função`,"roles.adminFullAccess":`Administrador · acesso total`,"roles.customRole":`Função personalizada`,"roles.rolesLower":`funções`,"roles.selectRole":`Selecione uma função`,"roles.selectRoleDescription":`Escolha uma função para gerenciar seu acesso.`,"roles.roleKind":`Função {kind}`,"roles.roleName":`Nome da função`,"roles.saveName":`Salvar nome`,"roles.permissionRules":`regras de permissão`,"roles.fullAdmin":`Acesso total de administrador`,"roles.fullAdminDescription":`Esta função ignora as linhas de permissão das coleções. Não é necessária configuração de matriz.`,"roles.permissions":`Permissões`,"roles.collectionAccess":`Acesso à coleção`,"roles.collectionAccessDescription":`Habilite a ação básica e use Configurar apenas quando uma restrição de campo ou linha for necessária.`,"roles.ruleCount":`{count} regras`,"roles.collectionCount":`{visible}/{total} coleções`,"roles.actionCollection":`{action} {collection}`,"roles.allowed":`Permitido`,"roles.off":`Desativado`,"roles.restricted":`Restrito`,"roles.configure":`Configurar`,"roles.createCollectionFirst":`Crie uma coleção antes de configurar permissões.`,"roles.noMatchingCollections":`Nenhuma coleção corresponde aos filtros de permissão atuais.`,"roles.advancedPermission":`Permissão avançada`,"roles.advancedDescription":`Limite campos ou adicione regras em nível de linha. Regras JSON vazias significam nenhuma restrição adicional.`,"roles.saveRules":`Salvar regras`,"roles.allowedFields":`Campos permitidos`,"roles.allowedFieldsDescription":`Todos os campos é o padrão simples. Desative para escolher campos explicitamente.`,"roles.allowAllFields":`Permitir todos os campos`,"roles.rowFilterDescription":`Somente linhas correspondentes a esta regra ficam acessíveis para esta ação.`,"roles.validationWriteDescription":`Para criar/atualizar, o registro final deve corresponder a esta regra.`,"roles.validationUnsupported":`A validação se aplica apenas às permissões de criação e atualização.`,"roles.openPermission":`Abrir página da permissão`,"roles.permissionDetail":`Detalhes da permissão`,"roles.permissionDetailDescription":`Gerencie o escopo de acesso e as regras de campo desta ação.`,"roles.permissionEnabled":`Permissão habilitada`,"roles.permissionDisabled":`Permissão desabilitada`,"roles.permissionMasterSwitch":`Permitir esta ação`,"roles.permissionMasterSwitchHint":`Quando desabilitada, a API nega esta coleção e ação.`,"roles.enableBeforeRules":`Habilite a permissão antes de editar regras de campo, filtro de linha e validação.`,"roles.actionOnlyPermission":`Este recurso do sistema oferece apenas acesso por ação; não há regras adicionais de campo ou linha.`,"roles.permissionNotFound":`Recurso de permissão não encontrado`,"roles.permissionNotFoundDescription":`A coleção pode ter sido removida ou esta ação pode não ser mais compatível.`,"roles.backToRole":`Voltar para a função`,"roles.collectionPermissionHint":`Gerencie as ações de leitura, criação, atualização e exclusão separadamente.`,"roles.allRecords":`Todos os registros elegíveis`,"content.newRecord":`Novo registro`,"content.searchPlaceholder":`Buscar registros…`,"content.noRecords":`Nenhum registro correspondente`,"content.editRecord":`Editar registro`,"content.createRecord":`Criar registro`,"content.deleteRecord":`Excluir registro?`,"content.deleteDescription":`Isso remove permanentemente o registro selecionado.`,"content.openDataModel":`Abrir Modelo de dados`,"content.opContains":`Contém`,"content.opStartsWith":`Começa com`,"content.opEndsWith":`Termina com`,"content.opExactly":`É exatamente`,"content.opNot":`Não é`,"content.opEmpty":`Está vazio`,"content.opNotEmpty":`Não está vazio`,"content.opEquals":`Igual a`,"content.opDoesNotEqual":`Diferente de`,"content.opGreaterThan":`Maior que`,"content.opGreaterEqual":`Maior ou igual a`,"content.opLessThan":`Menor que`,"content.opLessEqual":`Menor ou igual a`,"content.opIs":`É`,"content.saveError":`O registro não pôde ser salvo`,"content.updateDescription":`Atualize os campos abaixo.`,"content.createDescription":`Adicione um novo item a esta coleção.`,"content.select":`Selecionar…`,"content.unknownValue":`Desconhecido ({value})`,"content.relationHint":`{collection} · exibição: {field}`,"content.saveRecord":`Salvar registro`,"content.schemaLoadError":`O esquema da coleção não pôde ser carregado`,"content.dataLoadError":`Os dados da coleção não puderam ser carregados`,"content.recordNotFound":`Registro não encontrado`,"content.recordNotFoundDescription":`Este registro pode ter sido excluído ou a URL pode estar incorreta.`,"content.deleteRecordDescription":`O registro {id} será excluído permanentemente de {collection}.`,"content.deleteRecordAction":`Excluir registro`,"content.deleteError":`O registro não pôde ser excluído`,"content.empty":`vazio`,"content.notEmpty":`não vazio`,"content.noCollections":`Ainda não há coleções`,"content.noCollectionsDescription":`Crie sua primeira coleção no Modelo de dados. Ela aparecerá diretamente na barra lateral de Conteúdo.`,"content.matchingRecords":`{count} registros correspondentes`,"content.dataControls":`Controles de dados de {collection}`,"content.searchTextFields":`Buscar campos de texto…`,"content.noTextFields":`Nenhum campo de texto para buscar`,"content.sortBy":`Ordenar por`,"content.defaultOrder":`Ordem padrão`,"content.filterField":`Campo de filtro`,"content.condition":`Condição`,"content.value":`Valor`,"content.noValueNeeded":`Nenhum valor necessário`,"content.chooseRecord":`Escolher registro`,"content.chooseValue":`Escolher valor`,"content.filterValue":`Valor do filtro`,"content.chooseFieldFirst":`Escolha um campo primeiro`,"content.addFilter":`Adicionar filtro`,"content.filters":`Filtros`,"content.filterCount":`{count} ativos`,"content.activeFilters":`Filtros ativos`,"content.filterHint":`Adicione filtros para restringir esta coleção.`,"content.resetView":`Redefinir visualização`,"content.loadingCollection":`Carregando coleção…`,"content.noRecordsYet":`Ainda não há registros`,"content.firstRecordDescription":`Adicione o primeiro registro a {collection}.`,"content.createFirstRecord":`Criar primeiro registro`,"content.noMatchDescription":`Remova um filtro ou altere a busca para ampliar os resultados.`,"content.records":`registros`,"pagination.items":`itens`,"pagination.aria":`Paginação de {label}`,"pagination.ofTotal":`de {total} {label}`,"pagination.previousPage":`Página anterior`,"pagination.nextPage":`Próxima página`,"pagination.pageOf":`Página {page} de {totalPages}`,"pagination.page":`Página {page}`,"pagination.perPage":`Por página`,"pagination.itemsPerPage":`{label} por página`,"pagination.showing":`Mostrando {start}–{end} de {total} {label}`}),Ye=Object.freeze({"common.cancel":`İptal`,"common.confirm":`Onayla`,"common.save":`Kaydet`,"common.saving":`Kaydediliyor…`,"common.saved":`Kaydedildi`,"common.delete":`Sil`,"common.edit":`Düzenle`,"common.create":`Oluştur`,"common.creating":`Oluşturuluyor…`,"common.search":`Ara`,"common.reset":`Sıfırla`,"common.loading":`Yükleniyor…`,"common.none":`Yok`,"common.optional":`İsteğe bağlı`,"common.required":`Zorunlu`,"common.readonly":`Salt okunur`,"common.yes":`Evet`,"common.no":`Hayır`,"common.all":`Tümü`,"common.close":`Kapat`,"common.back":`Geri`,"common.next":`Sonraki`,"common.previous":`Önceki`,"common.name":`Ad`,"common.status":`Durum`,"common.actions":`İşlemler`,"common.type":`Tür`,"common.filter":`Filtre`,"common.sort":`Sırala`,"common.direction":`Yön`,"common.ascending":`Artan`,"common.descending":`Azalan`,"common.refresh":`Yenile`,"common.resetFilters":`Filtreleri sıfırla`,"common.confirmation":`Onay`,"nav.content":`İçerik`,"nav.library":`Kütüphane`,"nav.settings":`Ayarlar`,"nav.files":`Dosyalar`,"nav.contentVisibility":`İçerik Görünürlüğü`,"nav.dataModel":`Veri Modeli`,"nav.users":`Kullanıcılar`,"nav.roles":`Roller ve İzinler`,"nav.appearance":`Marka ve Görünüm`,"nav.createFirstCollection":`İlk koleksiyonu oluştur`,"app.studio":`Studio`,"app.apiChecking":`API kontrol ediliyor…`,"app.apiOnline":`API çevrimiçi`,"app.apiUnavailable":`API kullanılamıyor`,"app.authenticatedUser":`Oturum açmış kullanıcı`,"app.noRole":`Rol yok`,"app.signOut":`Çıkış yap`,"app.signingOut":`Çıkış yapılıyor…`,"app.contentEmpty":`İçerik yönetmeye başlamak için Ayarlar bölümünde bir koleksiyon oluşturun.`,"app.contentDescription":`Bu koleksiyondaki kayıtları yönetin.`,"section.visibilityTitle":`İçerik Görünürlüğü`,"section.visibilityDescription":`Veriyi değiştirmeden hangi koleksiyonların İçerik menüsünde görüneceğini seçin.`,"section.dataModelTitle":`Veri Modeli`,"section.dataModelDescription":`MySQL üzerinde koleksiyon, alan ve ilişkiler oluşturun.`,"section.usersTitle":`Kullanıcılar`,"section.usersDescription":`Yönetici tarafından oluşturulan kullanıcıları, rolleri ve hesap durumlarını yönetin.`,"section.rolesTitle":`Roller ve İzinler`,"section.rolesDescription":`Rol erişimlerini, alan izinlerini ve satır filtrelerini yapılandırın.`,"section.filesTitle":`Dosyalar`,"section.filesDescription":`Yapılandırılmış depolama üzerinden dosyaları yükleyin, önizleyin ve yönetin.`,"section.appearanceTitle":`Marka ve Görünüm`,"section.appearanceDescription":`Studio logosunu, vurgu rengini, temayı ve varsayılan dili ayarlayın.`,"auth.signIn":`Giriş yap`,"auth.resetPassword":`Şifreyi sıfırla`,"auth.signInDescription":`Şema, içerik, kullanıcı ve izinleri yönetmek için bir yönetici hesabı kullanın.`,"auth.resetDescription":`Tek kullanımlık şifre sıfırlama bağlantısı istemek için hesap e-postanızı girin.`,"auth.email":`E-posta`,"auth.password":`Şifre`,"auth.working":`İşleniyor…`,"auth.sendResetLink":`Sıfırlama bağlantısı gönder`,"auth.backToSignIn":`Girişe dön`,"auth.forgotPassword":`Şifremi unuttum`,"auth.resetNotice":`Bu e-postayla eşleşen aktif bir hesap varsa sıfırlama bağlantısı gönderilecektir.`,"auth.requestFailed":`İstek başarısız oldu`,"auth.signInFailed":`Giriş başarısız oldu`,"auth.verifyEmail":`E-postayı doğrula`,"auth.setNewPassword":`Yeni şifre belirle`,"auth.actionWorking":`İşlem tamamlanıyor…`,"auth.actionDone":`İşlem başarıyla tamamlandı.`,"auth.actionFailed":`Kimlik doğrulama işlemi başarısız oldu.`,"auth.newPassword":`Yeni şifre`,"auth.confirmPassword":`Şifreyi doğrula`,"auth.passwordMismatch":`Şifreler eşleşmiyor.`,"auth.passwordChanged":`Şifre değiştirildi. Mevcut oturumlar kapatıldı.`,"auth.verifyDescription":`Tek kullanımlık doğrulama anahtarı kontrol ediliyor.`,"auth.newPasswordDescription":`YunCMS hesabınız için yeni bir şifre seçin.`,"auth.complete":`Tamamla`,"appearance.branding":`Marka`,"appearance.brandName":`Marka adı`,"appearance.brandNameHint":`Studio içinde logonun yanında gösterilir.`,"appearance.logoUrl":`Logo URL`,"appearance.logoHint":`Özel logo, varsayılan Yunsoft logosunun tamamen yerine geçer.`,"appearance.accentColor":`Vurgu rengi`,"appearance.theme":`Tema`,"appearance.themeSystem":`Sistem`,"appearance.themeLight":`Açık`,"appearance.themeDark":`Koyu`,"appearance.defaultLanguage":`Varsayılan dil`,"appearance.defaultLanguageHint":`Kullanıcının kişisel dil seçimi yoksa kullanılır.`,"appearance.english":`English`,"appearance.turkish":`Türkçe`,"appearance.currentLanguage":`Benim dilim`,"appearance.followDefault":`Sistem varsayılanını kullan`,"appearance.preview":`Önizleme`,"appearance.resetYunsoft":`Yunsoft markasına sıfırla`,"appearance.saved":`Studio görünüm ayarları kaydedildi.`,"appearance.loadWarning":`Kaydedilmiş Studio ayarları yüklenemediği için varsayılan marka kullanılıyor.`,"appearance.copyright":`© {year} Yunsoft. Tüm hakları saklıdır.`,"appearance.poweredBy":`Yunsoft tarafından geliştirildi`,"visibility.loading":`Koleksiyonlar yükleniyor…`,"visibility.empty":`Henüz proje koleksiyonu yok.`,"visibility.showInContent":`İçerikte göster`,"visibility.visible":`Görünür`,"visibility.hidden":`Gizli`,"visibility.junction":`M2M bağlantı koleksiyonu`,"visibility.collection":`Koleksiyon`,"visibility.updated":`Koleksiyon görünürlüğü güncellendi.`,"visibility.hint":`M2M bağlantı koleksiyonları genellikle ana içerik yerine ilişki kayıtlarını tuttuğu için varsayılan olarak gizlidir. Doğrudan kayıt yönetimi gerekiyorsa burada görünür yapabilirsiniz.`,"visibility.loadError":`Koleksiyon görünürlük ayarları yüklenemedi`,"visibility.updateError":`Koleksiyon görünürlüğü güncellenemedi`,"visibility.noticeVisible":`{collection} artık İçerik bölümünde görünüyor`,"visibility.noticeHidden":`{collection} artık İçerik bölümünde gizli`,"visibility.description":`İçerik menüsünde hangi koleksiyonların görüneceğini seçin. Bir koleksiyonu gizlemek şemasını veya kayıtlarını silmez.`,"visibility.visibleCount":`{count} görünür`,"visibility.hiddenCount":`{count} gizli`,"visibility.junctionCount":`{count} bağlantı koleksiyonu`,"visibility.searchCollections":`Koleksiyon ara`,"visibility.searchPlaceholder":`Ad veya açıklama…`,"visibility.show":`Göster`,"visibility.allCollections":`Tüm koleksiyonlar`,"visibility.visibleInContent":`İçerikte görünür`,"visibility.hiddenFromContent":`İçerikte gizli`,"visibility.m2mJunctions":`M2M bağlantıları`,"visibility.emptyTitle":`Proje koleksiyonu yok`,"visibility.emptyDescription":`Önce Veri Modeli bölümünde bir koleksiyon oluşturun.`,"visibility.noMatchesTitle":`Eşleşen koleksiyon yok`,"visibility.noMatchesDescription":`Arama veya görünürlük filtresini değiştirin.`,"visibility.contentNavigation":`İçerik menüsü`,"visibility.showCollection":`{collection} koleksiyonunu İçerikte göster`,"visibility.collections":`koleksiyon`,"files.uploadFile":`Dosya yükle`,"files.uploadFirst":`İlk dosyayı yükle`,"files.gallery":`Galeri`,"files.list":`Liste`,"files.searchPlaceholder":`Ad, MIME türü veya depolama…`,"files.noFiles":`Geçerli görünümle eşleşen dosya yok.`,"files.download":`İndir`,"files.previewUnavailable":`Önizleme yok`,"files.editMetadata":`Bilgileri düzenle`,"files.filename":`Dosya adı`,"files.title":`Başlık`,"files.size":`Boyut`,"files.uploaded":`Yüklenme`,"files.newest":`En yeni önce`,"files.oldest":`En eski önce`,"files.nameAsc":`Ada göre A–Z`,"files.nameDesc":`Ada göre Z–A`,"files.sizeAsc":`En küçük önce`,"files.sizeDesc":`En büyük önce`,"files.allTypes":`Tüm türler`,"files.images":`Görseller`,"files.image":`Görsel`,"files.video":`Video`,"files.audio":`Ses`,"files.pdf":`PDF`,"files.other":`Diğer`,"files.file":`Dosya`,"files.untitled":`Başlıksız dosya`,"files.loadError":`Dosyalar yüklenemedi`,"files.uploadedNotice":`Dosya yüklendi`,"files.uploadError":`Dosya yüklenemedi`,"files.downloadError":`Dosya indirilemedi`,"files.updatedNotice":`Dosya bilgileri güncellendi`,"files.updateError":`Dosya bilgileri güncellenemedi`,"files.deleteTitle":`Dosya silinsin mi?`,"files.deleteDescription":`{file} ve depolanan içeriği kalıcı olarak silinecek.`,"files.deleteFile":`Dosyayı sil`,"files.deletedNotice":`Dosya silindi`,"files.deleteError":`Dosya silinemedi`,"files.libraryEmptyDescription":`Dosya yükleyin ve bilgilerini yönetin.`,"files.libraryCount":`Kütüphanede {count} dosya var.`,"files.view":`Dosya görünümü`,"files.closeUpload":`Yüklemeyi kapat`,"files.searchFiles":`Dosya ara`,"files.fileType":`Dosya türü`,"files.matchingCount":`{count} eşleşme`,"files.upload":`Yükle`,"files.addFile":`Dosya ekle`,"files.dropDescription":`Bir dosyayı buraya bırakın veya cihazınızdan seçin.`,"files.chooseFile":`Dosya seç`,"files.dragDrop":`veya buraya sürükleyip bırakın`,"files.uploading":`Yükleniyor…`,"files.fileDetails":`Dosya ayrıntıları`,"files.editDescription":`Depolanan dosyayı değiştirmeden başlığı ve indirme dosya adını düzenleyin.`,"files.optionalTitle":`İsteğe bağlı görünen başlık`,"files.downloadFilename":`İndirme dosya adı`,"files.saveChanges":`Değişiklikleri kaydet`,"files.loading":`Dosyalar yükleniyor…`,"files.noFilesYet":`Henüz dosya yok`,"files.noMatchingFiles":`Eşleşen dosya yok`,"files.emptyDescription":`Kütüphaneyi oluşturmaya başlamak için ilk dosyayı yükleyin.`,"files.noMatchDescription":`Daha geniş bir arama deneyin veya filtreleri sıfırlayın.`,"files.fileGallery":`Dosya galerisi`,"files.files":`dosya`,"files.storage":`Depolama`,"files.loadingPreviewFor":`{file} için önizleme yükleniyor`,"files.loadingPreview":`Önizleme yükleniyor`,"users.newUser":`Yeni kullanıcı`,"users.searchPlaceholder":`E-posta, rol veya durum…`,"users.role":`Rol`,"users.verified":`Doğrulanmış`,"users.unverified":`Doğrulanmamış`,"users.active":`Aktif`,"users.inactive":`Pasif`,"users.suspended":`Askıya alınmış`,"users.disabled":`Devre dışı`,"users.noUsers":`Eşleşen kullanıcı yok`,"users.createUser":`Kullanıcı oluştur`,"users.sendVerification":`Doğrulama gönder`,"users.deleteTitle":`Kullanıcı silinsin mi?`,"users.deleteDescription":`Seçili kullanıcı kalıcı olarak silinir.`,"users.emailAsc":`E-posta A–Z`,"users.emailDesc":`E-posta Z–A`,"users.recentAccess":`Son erişim`,"users.oldestAccess":`En eski erişim`,"users.loadError":`Kullanıcılar yüklenemedi`,"users.createdNotice":`Kullanıcı oluşturuldu`,"users.createError":`Kullanıcı oluşturulamadı`,"users.updatedNotice":`{email} güncellendi`,"users.updateError":`Kullanıcı güncellenemedi`,"users.verificationQueued":`{email} için doğrulama e-postası sıraya alındı`,"users.verificationError":`Doğrulama e-postası gönderilemedi`,"users.deleteDescriptionEmail":`{email} bu projeye erişimini kalıcı olarak kaybedecek.`,"users.deleteUser":`Kullanıcıyı sil`,"users.deletedNotice":`{email} silindi`,"users.deleteError":`Kullanıcı silinemedi`,"users.summary":`Toplam {total} · {active} aktif`,"users.closeForm":`Formu kapat`,"users.allRoles":`Tüm roller`,"users.allStatuses":`Tüm durumlar`,"users.matchingCount":`{count} eşleşen kullanıcı`,"users.resetView":`Görünümü sıfırla`,"users.createDescription":`Giriş bilgilerini ve isteğe bağlı rolü belirleyin.`,"users.noMatchDescription":`Daha geniş bir arama deneyin veya filtreleri sıfırlayın.`,"users.user":`Kullanıcı`,"users.openUser":`Kullanıcı sayfasını aç`,"users.userDetails":`Kullanıcı ayrıntıları`,"users.userNotFound":`Kullanıcı bulunamadı`,"users.userActions":`Hesap işlemleri`,"users.userActionsHint":`Doğrulama gönderin veya kullanılmayan hesabı kalıcı olarak silin.`,"users.verification":`Doğrulama`,"users.lastAccess":`Son erişim`,"users.you":`siz`,"users.roleFor":`{email} için rol`,"users.statusFor":`{email} için durum`,"users.never":`Hiç`,"users.loading":`Kullanıcılar yükleniyor…`,"users.noneFound":`Kullanıcı bulunamadı.`,"users.users":`kullanıcı`,"dataModel.newCollection":`Yeni koleksiyon`,"dataModel.projectCollections":`Proje koleksiyonları`,"dataModel.systemCollections":`Sistem koleksiyonları`,"dataModel.fields":`Alanlar`,"dataModel.relations":`İlişkiler`,"dataModel.addField":`Alan ekle`,"dataModel.collectionName":`Koleksiyon adı`,"dataModel.fieldName":`Alan adı`,"dataModel.noCollections":`Geçerli filtrelerle eşleşen koleksiyon yok.`,"dataModel.noFields":`Bu aramayla eşleşen alan yok.`,"dataModel.deleteCollection":`Koleksiyon silinsin mi?`,"dataModel.deleteField":`Alan silinsin mi?`,"dataModel.nameAsc":`Ada göre A–Z`,"dataModel.nameDesc":`Ada göre Z–A`,"dataModel.requiredFirst":`Zorunlular önce`,"dataModel.schemaLoadError":`Şema yüklenemedi`,"dataModel.collectionLoadError":`Koleksiyon şeması yüklenemedi`,"dataModel.collectionCreated":`{name} koleksiyonu oluşturuldu`,"dataModel.collectionCreateError":`Koleksiyon oluşturulamadı`,"dataModel.deleteCollectionDescription":`{name} ve içerdiği tüm kayıtlar kalıcı olarak silinecek.`,"dataModel.deleteCollectionAction":`Koleksiyonu sil`,"dataModel.collectionDeleted":`{name} koleksiyonu silindi`,"dataModel.collectionDeleteError":`Koleksiyon silinemedi`,"dataModel.fieldAdded":`{name} alanı eklendi`,"dataModel.fieldCreateError":`Alan oluşturulamadı`,"dataModel.deleteFieldDescription":`{collection}.{field} ve içindeki tüm değerler kalıcı olarak silinecek.`,"dataModel.deleteFieldAction":`Alanı sil`,"dataModel.fieldDeleted":`{name} alanı silindi`,"dataModel.fieldDeleteError":`Alan silinemedi`,"dataModel.fieldUpdated":`{name} güncellendi`,"dataModel.fieldUpdateError":`Alan şeması güncellenemedi`,"dataModel.relationCreated":`{collection}.{field} ilişkisi oluşturuldu`,"dataModel.relationCreateError":`İlişki oluşturulamadı`,"dataModel.deleteRelation":`İlişki silinsin mi?`,"dataModel.deleteRelationDescription":`{collection}.{field} artık {target} koleksiyonunu referans etmeyecek.`,"dataModel.deleteRelationAction":`İlişkiyi sil`,"dataModel.relationDeleted":`İlişki silindi`,"dataModel.relationDeleteError":`İlişki silinemedi`,"dataModel.junctionCreated":`{name} M2M bağlantı koleksiyonu oluşturuldu`,"dataModel.m2mCreateError":`M2M ilişkisi oluşturulamadı`,"dataModel.deleteM2M":`Çoktan çoğa ilişki silinsin mi?`,"dataModel.deleteM2MDescription":`{name} ve içerdiği tüm bağlantı kayıtları kalıcı olarak silinecek.`,"dataModel.junctionDeleted":`{name} M2M bağlantı koleksiyonu silindi`,"dataModel.m2mDeleteError":`M2M ilişkisi silinemedi`,"dataModel.collections":`Koleksiyonlar`,"dataModel.collectionSummary":`{project} proje · {system} sistem`,"dataModel.createCollection":`Koleksiyon oluştur`,"dataModel.createCollectionHint":"`articles` gibi kısa ve makine dostu bir ad kullanın.","dataModel.description":`Açıklama`,"dataModel.optionalDescription":`İsteğe bağlı açıklama`,"dataModel.findCollection":`Koleksiyon bul`,"dataModel.noProjectCollections":`Henüz proje koleksiyonu yok.`,"dataModel.noMatchingProject":`Eşleşen proje koleksiyonu yok.`,"dataModel.collectionsLower":`koleksiyon`,"dataModel.systemCollectionsCount":`Sistem koleksiyonları ({count})`,"dataModel.systemManaged":`sistem tarafından yönetilir`,"dataModel.noMatchingSystem":`Eşleşen sistem koleksiyonu yok.`,"dataModel.systemCollectionsLower":`sistem koleksiyonu`,"dataModel.selectCollection":`Bir koleksiyon seçin`,"dataModel.selectCollectionDescription":`Alanlarını ve ilişkilerini incelemek için soldan bir koleksiyon seçin.`,"dataModel.systemCollection":`Sistem koleksiyonu`,"dataModel.noDescription":`Henüz açıklama eklenmemiş.`,"dataModel.fieldCount":`{count} alan`,"dataModel.collectionSettings":`Koleksiyon ayarları`,"dataModel.openField":`Alan sayfasını aç`,"dataModel.fieldDetail":`Alan ayrıntıları`,"dataModel.fieldNotFound":`Bu alan bulunamadı veya kaldırılmış.`,"dataModel.backToFields":`Alanlara dön`,"dataModel.fieldActions":`Alan davranışı`,"dataModel.fieldActionsHint":`Zorunluluk durumunu değiştirin veya kullanılmayan alanı kalıcı olarak silin.`,"dataModel.relationPageHint":`İlişki türünü seçin; yapılandırma ayrı bir sayfada açılır.`,"dataModel.startRelation":`Yapılandır`,"dataModel.fieldsDescription":`Bu koleksiyonda tutulan alanları arayın ve yönetin.`,"dataModel.addFieldHint":`Alan adını ve depolama türünü seçin. V1’de tür dönüştürme bilinçli olarak desteklenmez.`,"dataModel.maxLength":`Maksimum uzunluk`,"dataModel.requiredValue":`Zorunlu değer`,"dataModel.findField":`Alan bul`,"dataModel.fieldSearchPlaceholder":`Ad, tür, zorunluluk…`,"dataModel.sortFields":`Alanları sırala`,"dataModel.makeOptional":`İsteğe bağlı yap`,"dataModel.makeRequired":`Zorunlu yap`,"dataModel.fieldsLower":`alan`,"dataModel.systemRelationInfo":`Sistem koleksiyonu ilişkileri metadata üzerinden görülebilir ancak bu ekrandan düzenlenmez.`,"dataModel.manyToOne":`Çoktan bire`,"dataModel.linkOneRecord":`Tek kayda bağla`,"dataModel.m2oDescription":`{collection} içinde mevcut bir alanı foreign key olarak kullanın ve hedef koleksiyonu seçin.`,"dataModel.noDirectRelations":`Bu koleksiyon için doğrudan ilişki yok.`,"dataModel.linksTo":`{collection}.{field} alanına bağlanır`,"dataModel.fieldIn":`{collection} içindeki alan`,"dataModel.chooseField":`Alan seç`,"dataModel.targetCollection":`Hedef koleksiyon`,"dataModel.chooseCollection":`Koleksiyon seç`,"dataModel.ifTargetDeleted":`Hedef silinirse`,"dataModel.preventDeletion":`Silmeyi engelle`,"dataModel.deleteLinked":`Bağlı kayıtları sil`,"dataModel.clearField":`Bu alanı temizle`,"dataModel.createRelation":`İlişki oluştur`,"dataModel.manyToMany":`Çoktan çoğa`,"dataModel.connectCollections":`İki koleksiyonu bağla`,"dataModel.m2mDescription":`YunCMS iki bağlantıyı tutmak için gizli bir bağlantı koleksiyonu oluşturur.`,"dataModel.noM2MJunctions":`Bu koleksiyon için çoktan çoğa bağlantı yok.`,"dataModel.junctionName":`Bağlantı koleksiyonu adı`,"dataModel.firstCollection":`İlk koleksiyon`,"dataModel.secondCollection":`İkinci koleksiyon`,"dataModel.createJunction":`Bağlantı oluştur`,"dataModel.loadingSchema":`Şema yükleniyor…`,"roles.newRole":`Yeni rol`,"roles.public":`Public`,"roles.administrator":`Yönetici`,"roles.custom":`Özel`,"roles.configuredOnly":`Yalnız yapılandırılmışlar`,"roles.collection":`Koleksiyon`,"roles.read":`Oku`,"roles.create":`Oluştur`,"roles.update":`Güncelle`,"roles.delete":`Sil`,"roles.advanced":`Gelişmiş`,"roles.fieldAccess":`Alan erişimi`,"roles.rowFilter":`Satır filtresi JSON`,"roles.validation":`Yazma doğrulaması JSON`,"roles.noRoles":`Eşleşen rol yok.`,"roles.nameAsc":`Ada göre A–Z`,"roles.nameDesc":`Ada göre Z–A`,"roles.mostRules":`En çok kural`,"roles.loadError":`Roller ve izinler yüklenemedi`,"roles.createdNotice":`Rol oluşturuldu`,"roles.createError":`Rol oluşturulamadı`,"roles.updatedNotice":`Rol güncellendi`,"roles.updateError":`Rol güncellenemedi`,"roles.deleteTitle":`Rol silinsin mi?`,"roles.deleteDescription":`{name} ve tüm izin kuralları kalıcı olarak silinecek.`,"roles.deleteRole":`Rolü sil`,"roles.deletedNotice":`Rol silindi`,"roles.deleteError":`Rol silinemedi`,"roles.accessRemoved":`{collection} için {action} erişimi kaldırıldı`,"roles.accessGranted":`{collection} için {action} erişimi verildi`,"roles.permissionUpdateError":`İzin güncellenemedi`,"roles.permissionDetailsError":`İzin ayrıntıları yüklenemedi`,"roles.chooseFieldError":`En az bir izinli alan seçin veya tüm alanlara izin verin.`,"roles.advancedSaved":`Gelişmiş izin kuralları kaydedildi`,"roles.invalidJson":`Filtre ve doğrulama kuralları geçerli JSON içermelidir.`,"roles.access":`Erişim`,"roles.roles":`Roller`,"roles.summary":`{count} rol · erişimi yönetmek için birini seçin.`,"roles.publicRole":`Public rol`,"roles.createRole":`Rol oluştur`,"roles.findRole":`Rol bul`,"roles.adminFullAccess":`Yönetici · tam erişim`,"roles.customRole":`Özel rol`,"roles.rolesLower":`rol`,"roles.selectRole":`Bir rol seçin`,"roles.selectRoleDescription":`Erişimini yönetmek için bir rol seçin.`,"roles.roleKind":`{kind} rolü`,"roles.roleName":`Rol adı`,"roles.saveName":`Adı kaydet`,"roles.permissionRules":`izin kuralı`,"roles.fullAdmin":`Tam yönetici erişimi`,"roles.fullAdminDescription":`Bu rol koleksiyon izin satırlarını atlar. Matris yapılandırması gerekmez.`,"roles.permissions":`İzinler`,"roles.collectionAccess":`Koleksiyon erişimi`,"roles.collectionAccessDescription":`Temel işlemi açın; alan veya satır kısıtlaması gerekiyorsa Yapılandır seçeneğini kullanın.`,"roles.ruleCount":`{count} kural`,"roles.collectionCount":`{visible}/{total} koleksiyon`,"roles.actionCollection":`{collection} · {action}`,"roles.allowed":`İzinli`,"roles.off":`Kapalı`,"roles.restricted":`Kısıtlı`,"roles.configure":`Yapılandır`,"roles.createCollectionFirst":`İzin yapılandırmadan önce bir koleksiyon oluşturun.`,"roles.noMatchingCollections":`Geçerli izin filtreleriyle eşleşen koleksiyon yok.`,"roles.advancedPermission":`Gelişmiş izin`,"roles.advancedDescription":`Alanları sınırlandırın veya satır düzeyi kurallar ekleyin. Boş JSON kuralı ek kısıtlama olmadığı anlamına gelir.`,"roles.saveRules":`Kuralları kaydet`,"roles.allowedFields":`İzinli alanlar`,"roles.allowedFieldsDescription":`Basit varsayılan tüm alanlardır. Belirli alanları seçmek için kapatın.`,"roles.allowAllFields":`Tüm alanlara izin ver`,"roles.rowFilterDescription":`Bu işlem için yalnızca bu kurala uyan satırlara erişilebilir.`,"roles.validationWriteDescription":`Oluşturma/güncellemede son kayıt bu kurala uymalıdır.`,"roles.validationUnsupported":`Doğrulama yalnızca oluşturma ve güncelleme izinlerinde uygulanır.`,"roles.openPermission":`İzin sayfasını aç`,"roles.permissionDetail":`İzin ayrıntıları`,"roles.permissionDetailDescription":`Bu aksiyonun erişim kapsamını ve alan kurallarını yönetin.`,"roles.permissionEnabled":`İzin açık`,"roles.permissionDisabled":`İzin kapalı`,"roles.permissionMasterSwitch":`Bu aksiyona izin ver`,"roles.permissionMasterSwitchHint":`Kapalı olduğunda API bu koleksiyon ve aksiyon için erişimi reddeder.`,"roles.enableBeforeRules":`Alan, satır filtresi ve doğrulama kurallarını düzenlemek için önce izni açın.`,"roles.actionOnlyPermission":`Bu sistem kaynağı yalnızca aksiyon seviyesinde izin destekler; ek alan veya satır kuralı yoktur.`,"roles.permissionNotFound":`İzin kaynağı bulunamadı`,"roles.permissionNotFoundDescription":`Koleksiyon kaldırılmış veya bu aksiyon artık desteklenmiyor olabilir.`,"roles.backToRole":`Rol sayfasına dön`,"roles.collectionPermissionHint":`Okuma, oluşturma, güncelleme ve silme aksiyonlarını ayrı ayrı yönetin.`,"roles.allRecords":`Tüm uygun kayıtlar`,"content.newRecord":`Yeni kayıt`,"content.searchPlaceholder":`Kayıtlarda ara…`,"content.noRecords":`Eşleşen kayıt yok`,"content.editRecord":`Kaydı düzenle`,"content.createRecord":`Kayıt oluştur`,"content.deleteRecord":`Kayıt silinsin mi?`,"content.deleteDescription":`Seçili kayıt kalıcı olarak silinir.`,"content.openDataModel":`Veri Modelini aç`,"content.opContains":`İçerir`,"content.opStartsWith":`Şununla başlar`,"content.opEndsWith":`Şununla biter`,"content.opExactly":`Tam olarak eşittir`,"content.opNot":`Eşit değildir`,"content.opEmpty":`Boştur`,"content.opNotEmpty":`Boş değildir`,"content.opEquals":`Eşittir`,"content.opDoesNotEqual":`Eşit değildir`,"content.opGreaterThan":`Büyüktür`,"content.opGreaterEqual":`Büyük veya eşittir`,"content.opLessThan":`Küçüktür`,"content.opLessEqual":`Küçük veya eşittir`,"content.opIs":`Şudur`,"content.saveError":`Kayıt kaydedilemedi`,"content.updateDescription":`Aşağıdaki alanları güncelleyin.`,"content.createDescription":`Bu koleksiyona yeni bir kayıt ekleyin.`,"content.select":`Seç…`,"content.unknownValue":`Bilinmeyen ({value})`,"content.relationHint":`{collection} · gösterim alanı: {field}`,"content.saveRecord":`Kaydı kaydet`,"content.schemaLoadError":`Koleksiyon şeması yüklenemedi`,"content.dataLoadError":`Koleksiyon verileri yüklenemedi`,"content.recordNotFound":`Kayıt bulunamadı`,"content.recordNotFoundDescription":`Bu kayıt silinmiş olabilir veya URL hatalı olabilir.`,"content.deleteRecordDescription":`{id} kaydı {collection} koleksiyonundan kalıcı olarak silinecek.`,"content.deleteRecordAction":`Kaydı sil`,"content.deleteError":`Kayıt silinemedi`,"content.empty":`boş`,"content.notEmpty":`boş değil`,"content.noCollections":`Henüz koleksiyon yok`,"content.noCollectionsDescription":`İlk koleksiyonunuzu Veri Modeli bölümünde oluşturun. Doğrudan İçerik menüsünde görünecektir.`,"content.matchingRecords":`{count} eşleşen kayıt`,"content.dataControls":`{collection} veri kontrolleri`,"content.searchTextFields":`Metin alanlarında ara…`,"content.noTextFields":`Aranabilir metin alanı yok`,"content.sortBy":`Şuna göre sırala`,"content.defaultOrder":`Varsayılan sıralama`,"content.filterField":`Filtre alanı`,"content.condition":`Koşul`,"content.value":`Değer`,"content.noValueNeeded":`Değer gerekmiyor`,"content.chooseRecord":`Kayıt seç`,"content.chooseValue":`Değer seç`,"content.filterValue":`Filtre değeri`,"content.chooseFieldFirst":`Önce bir alan seçin`,"content.addFilter":`Filtre ekle`,"content.filters":`Filtreler`,"content.filterCount":`{count} aktif`,"content.activeFilters":`Aktif filtreler`,"content.filterHint":`Bu koleksiyonu daraltmak için filtre ekleyin.`,"content.resetView":`Görünümü sıfırla`,"content.loadingCollection":`Koleksiyon yükleniyor…`,"content.noRecordsYet":`Henüz kayıt yok`,"content.firstRecordDescription":`{collection} koleksiyonuna ilk kaydı ekleyin.`,"content.createFirstRecord":`İlk kaydı oluştur`,"content.noMatchDescription":`Sonuçları genişletmek için bir filtreyi kaldırın veya aramayı değiştirin.`,"content.records":`kayıt`,"pagination.items":`öğe`,"pagination.aria":`{label} sayfalama`,"pagination.ofTotal":`toplam {total} {label}`,"pagination.previousPage":`Önceki sayfa`,"pagination.nextPage":`Sonraki sayfa`,"pagination.pageOf":`Sayfa {page} / {totalPages}`,"pagination.page":`Sayfa {page}`,"pagination.perPage":`Sayfa başına`,"pagination.itemsPerPage":`Sayfa başına {label}`,"pagination.showing":`{total} {label} içinden {start}–{end} gösteriliyor`}),Xe=Object.freeze({"common.cancel":`取消`,"common.confirm":`确认`,"common.save":`保存`,"common.saving":`保存中…`,"common.saved":`已保存`,"common.delete":`删除`,"common.edit":`编辑`,"common.create":`创建`,"common.creating":`创建中…`,"common.search":`搜索`,"common.reset":`重置`,"common.loading":`加载中…`,"common.none":`无`,"common.optional":`可选`,"common.required":`必填`,"common.readonly":`只读`,"common.yes":`是`,"common.no":`否`,"common.all":`全部`,"common.close":`关闭`,"common.back":`返回`,"common.next":`下一步`,"common.previous":`上一步`,"common.name":`名称`,"common.status":`状态`,"common.actions":`操作`,"common.type":`类型`,"common.filter":`筛选`,"common.sort":`排序`,"common.direction":`方向`,"common.ascending":`升序`,"common.descending":`降序`,"common.refresh":`刷新`,"common.resetFilters":`重置筛选`,"common.confirmation":`确认`,"nav.content":`内容`,"nav.library":`资源库`,"nav.settings":`设置`,"nav.files":`文件`,"nav.contentVisibility":`内容可见性`,"nav.dataModel":`数据模型`,"nav.users":`用户`,"nav.roles":`角色与权限`,"nav.appearance":`品牌与外观`,"nav.createFirstCollection":`创建第一个集合`,"app.studio":`Studio`,"app.apiChecking":`正在检查 API…`,"app.apiOnline":`API 在线`,"app.apiUnavailable":`API 不可用`,"app.authenticatedUser":`已认证用户`,"app.noRole":`无角色`,"app.signOut":`退出登录`,"app.signingOut":`正在退出…`,"app.contentEmpty":`请先在设置中创建集合以开始管理内容。`,"app.contentDescription":`管理此集合中的记录。`,"section.visibilityTitle":`内容可见性`,"section.visibilityDescription":`选择哪些集合显示在内容导航中,而不更改其数据。`,"section.dataModelTitle":`数据模型`,"section.dataModelDescription":`创建由 MySQL 支持的集合、字段和关系。`,"section.usersTitle":`用户`,"section.usersDescription":`管理由管理员创建的用户、角色和账户状态。`,"section.rolesTitle":`角色与权限`,"section.rolesDescription":`配置角色访问、字段白名单和行筛选。`,"section.filesTitle":`文件`,"section.filesDescription":`通过已配置的存储驱动上传、预览和管理文件。`,"section.appearanceTitle":`品牌与外观`,"section.appearanceDescription":`调整 Studio 标志、强调色、主题和默认语言。`,"auth.signIn":`登录`,"auth.resetPassword":`重置密码`,"auth.signInDescription":`使用管理员账户管理架构、内容、用户和权限。`,"auth.resetDescription":`输入账户邮箱以申请一次性重置链接。`,"auth.email":`邮箱`,"auth.password":`密码`,"auth.working":`处理中…`,"auth.sendResetLink":`发送重置链接`,"auth.backToSignIn":`返回登录`,"auth.forgotPassword":`忘记密码?`,"auth.resetNotice":`如果存在与此邮箱匹配的有效账户,将发送重置链接。`,"auth.requestFailed":`请求失败`,"auth.signInFailed":`登录失败`,"auth.verifyEmail":`验证邮箱`,"auth.setNewPassword":`设置新密码`,"auth.actionWorking":`正在完成请求…`,"auth.actionDone":`请求已成功完成。`,"auth.actionFailed":`认证操作失败。`,"auth.newPassword":`新密码`,"auth.confirmPassword":`确认密码`,"auth.passwordMismatch":`两次输入的密码不一致。`,"auth.passwordChanged":`密码已更改。现有会话已撤销。`,"auth.verifyDescription":`正在检查一次性验证令牌。`,"auth.newPasswordDescription":`为您的 YunCMS 账户选择新密码。`,"auth.complete":`完成`,"appearance.branding":`品牌`,"appearance.brandName":`品牌名称`,"appearance.brandNameHint":`显示在 Studio 中标志旁边。`,"appearance.logoUrl":`标志 URL`,"appearance.logoHint":`自定义标志会完全替换默认 Yunsoft 标志。`,"appearance.accentColor":`强调色`,"appearance.theme":`主题`,"appearance.themeSystem":`跟随系统`,"appearance.themeLight":`浅色`,"appearance.themeDark":`深色`,"appearance.defaultLanguage":`默认语言`,"appearance.defaultLanguageHint":`用户未选择个人语言时使用。`,"appearance.english":`English`,"appearance.turkish":`Türkçe`,"appearance.currentLanguage":`我的语言`,"appearance.followDefault":`跟随系统默认`,"appearance.preview":`预览`,"appearance.resetYunsoft":`恢复 Yunsoft 品牌`,"appearance.saved":`Studio 外观设置已保存。`,"appearance.loadWarning":`由于无法加载已保存的 Studio 设置,当前使用默认品牌。`,"appearance.copyright":`© {year} Yunsoft. 保留所有权利。`,"appearance.poweredBy":`由 Yunsoft 提供支持`,"visibility.loading":`正在加载集合…`,"visibility.empty":`暂无项目集合。`,"visibility.showInContent":`显示在内容中`,"visibility.visible":`可见`,"visibility.hidden":`隐藏`,"visibility.junction":`M2M 中间表`,"visibility.collection":`集合`,"visibility.updated":`集合可见性已更新。`,"visibility.hint":`M2M 中间集合默认隐藏,因为它们通常存储关系链接而不是主要内容。当需要直接管理记录时,仍可将其设为可见。`,"visibility.loadError":`无法加载集合可见性设置`,"visibility.updateError":`无法更新集合可见性`,"visibility.noticeVisible":`{collection} 现在显示在内容中`,"visibility.noticeHidden":`{collection} 现在已从内容中隐藏`,"visibility.description":`选择哪些集合显示在内容导航中。隐藏集合不会删除其架构或记录。`,"visibility.visibleCount":`{count} 个可见`,"visibility.hiddenCount":`{count} 个隐藏`,"visibility.junctionCount":`{count} 个中间表`,"visibility.searchCollections":`搜索集合`,"visibility.searchPlaceholder":`名称或描述…`,"visibility.show":`显示`,"visibility.allCollections":`所有集合`,"visibility.visibleInContent":`在内容中可见`,"visibility.hiddenFromContent":`从内容中隐藏`,"visibility.m2mJunctions":`M2M 中间表`,"visibility.emptyTitle":`无项目集合`,"visibility.emptyDescription":`请先在数据模型中创建集合。`,"visibility.noMatchesTitle":`没有匹配的集合`,"visibility.noMatchesDescription":`请更改搜索条件或可见性筛选。`,"visibility.contentNavigation":`内容导航`,"visibility.showCollection":`在内容中显示 {collection}`,"visibility.collections":`集合`,"files.uploadFile":`上传文件`,"files.uploadFirst":`上传第一个文件`,"files.gallery":`画廊`,"files.list":`列表`,"files.searchPlaceholder":`名称、MIME 类型或存储…`,"files.noFiles":`当前视图中没有匹配的文件。`,"files.download":`下载`,"files.previewUnavailable":`无法预览`,"files.editMetadata":`编辑元数据`,"files.filename":`文件名`,"files.title":`标题`,"files.size":`大小`,"files.uploaded":`上传时间`,"files.newest":`最新优先`,"files.oldest":`最早优先`,"files.nameAsc":`名称 A–Z`,"files.nameDesc":`名称 Z–A`,"files.sizeAsc":`最小优先`,"files.sizeDesc":`最大优先`,"files.allTypes":`所有类型`,"files.images":`图片`,"files.image":`图片`,"files.video":`视频`,"files.audio":`音频`,"files.pdf":`PDF`,"files.other":`其他`,"files.file":`文件`,"files.untitled":`未命名文件`,"files.loadError":`无法加载文件`,"files.uploadedNotice":`文件已上传`,"files.uploadError":`无法上传文件`,"files.downloadError":`无法下载文件`,"files.updatedNotice":`文件元数据已更新`,"files.updateError":`无法更新文件元数据`,"files.deleteTitle":`删除文件?`,"files.deleteDescription":`{file} 及其存储内容将被永久删除。`,"files.deleteFile":`删除文件`,"files.deletedNotice":`文件已删除`,"files.deleteError":`无法删除文件`,"files.libraryEmptyDescription":`上传文件并管理其元数据。`,"files.libraryCount":`资源库中有 {count} 个文件。`,"files.view":`文件视图`,"files.closeUpload":`关闭上传`,"files.searchFiles":`搜索文件`,"files.fileType":`文件类型`,"files.matchingCount":`{count} 个匹配项`,"files.upload":`上传`,"files.addFile":`添加文件`,"files.dropDescription":`将一个文件拖到这里,或从设备中选择。`,"files.chooseFile":`选择文件`,"files.dragDrop":`或拖放到这里`,"files.uploading":`上传中…`,"files.fileDetails":`文件详情`,"files.editDescription":`在不更改存储文件的情况下编辑标题和下载文件名。`,"files.optionalTitle":`可选显示标题`,"files.downloadFilename":`下载文件名`,"files.saveChanges":`保存更改`,"files.loading":`正在加载文件…`,"files.noFilesYet":`暂无文件`,"files.noMatchingFiles":`没有匹配的文件`,"files.emptyDescription":`上传第一个文件以开始构建资源库。`,"files.noMatchDescription":`尝试更宽泛的搜索或重置筛选。`,"files.fileGallery":`文件画廊`,"files.files":`文件`,"files.storage":`存储`,"files.loadingPreviewFor":`正在加载 {file} 的预览`,"files.loadingPreview":`正在加载预览`,"users.newUser":`新用户`,"users.searchPlaceholder":`邮箱、角色或状态…`,"users.role":`角色`,"users.verified":`已验证`,"users.unverified":`未验证`,"users.active":`启用`,"users.inactive":`停用`,"users.suspended":`已暂停`,"users.disabled":`已禁用`,"users.noUsers":`没有匹配的用户`,"users.createUser":`创建用户`,"users.sendVerification":`发送验证邮件`,"users.deleteTitle":`删除用户?`,"users.deleteDescription":`这将永久删除所选用户。`,"users.emailAsc":`邮箱 A–Z`,"users.emailDesc":`邮箱 Z–A`,"users.recentAccess":`最近访问`,"users.oldestAccess":`最早访问`,"users.loadError":`无法加载用户`,"users.createdNotice":`用户已创建`,"users.createError":`无法创建用户`,"users.updatedNotice":`已更新 {email}`,"users.updateError":`无法更新用户`,"users.verificationQueued":`已将 {email} 的验证邮件加入队列`,"users.verificationError":`无法发送验证邮件`,"users.deleteDescriptionEmail":`{email} 将永久失去对此项目的访问权限。`,"users.deleteUser":`删除用户`,"users.deletedNotice":`已删除 {email}`,"users.deleteError":`无法删除用户`,"users.summary":`共 {total} 个 · {active} 个启用`,"users.closeForm":`关闭表单`,"users.allRoles":`所有角色`,"users.allStatuses":`所有状态`,"users.matchingCount":`{count} 个匹配用户`,"users.resetView":`重置视图`,"users.createDescription":`设置登录凭据和可选角色。`,"users.noMatchDescription":`尝试更宽泛的搜索或重置筛选。`,"users.user":`用户`,"users.openUser":`打开用户页面`,"users.userDetails":`用户详情`,"users.userNotFound":`未找到用户`,"users.userActions":`账户操作`,"users.userActionsHint":`发送验证邮件或永久删除未使用的账户。`,"users.verification":`验证`,"users.lastAccess":`最后访问`,"users.you":`你`,"users.roleFor":`{email} 的角色`,"users.statusFor":`{email} 的状态`,"users.never":`从未`,"users.loading":`正在加载用户…`,"users.noneFound":`未找到用户。`,"users.users":`用户`,"dataModel.newCollection":`新集合`,"dataModel.projectCollections":`项目集合`,"dataModel.systemCollections":`系统集合`,"dataModel.fields":`字段`,"dataModel.relations":`关系`,"dataModel.addField":`添加字段`,"dataModel.collectionName":`集合名称`,"dataModel.fieldName":`字段名称`,"dataModel.noCollections":`没有集合匹配当前筛选条件。`,"dataModel.noFields":`没有字段匹配此搜索。`,"dataModel.deleteCollection":`删除集合?`,"dataModel.deleteField":`删除字段?`,"dataModel.nameAsc":`名称 A–Z`,"dataModel.nameDesc":`名称 Z–A`,"dataModel.requiredFirst":`必填优先`,"dataModel.schemaLoadError":`无法加载架构`,"dataModel.collectionLoadError":`无法加载集合架构`,"dataModel.collectionCreated":`已创建集合 {name}`,"dataModel.collectionCreateError":`无法创建集合`,"dataModel.deleteCollectionDescription":`{name} 及其中的所有记录将被永久删除。`,"dataModel.deleteCollectionAction":`删除集合`,"dataModel.collectionDeleted":`已删除集合 {name}`,"dataModel.collectionDeleteError":`无法删除集合`,"dataModel.fieldAdded":`已添加字段 {name}`,"dataModel.fieldCreateError":`无法创建字段`,"dataModel.deleteFieldDescription":`{collection}.{field} 及其中存储的所有值将被永久删除。`,"dataModel.deleteFieldAction":`删除字段`,"dataModel.fieldDeleted":`已删除字段 {name}`,"dataModel.fieldDeleteError":`无法删除字段`,"dataModel.fieldUpdated":`已更新 {name}`,"dataModel.fieldUpdateError":`无法更新字段架构`,"dataModel.relationCreated":`已创建关系 {collection}.{field}`,"dataModel.relationCreateError":`无法创建关系`,"dataModel.deleteRelation":`删除关系?`,"dataModel.deleteRelationDescription":`{collection}.{field} 将不再引用 {target}。`,"dataModel.deleteRelationAction":`删除关系`,"dataModel.relationDeleted":`关系已删除`,"dataModel.relationDeleteError":`无法删除关系`,"dataModel.junctionCreated":`已创建 M2M 中间集合 {name}`,"dataModel.m2mCreateError":`无法创建 M2M 关系`,"dataModel.deleteM2M":`删除多对多关系?`,"dataModel.deleteM2MDescription":`{name} 及其中的所有链接记录将被永久删除。`,"dataModel.junctionDeleted":`已删除 M2M 中间集合 {name}`,"dataModel.m2mDeleteError":`无法删除 M2M 关系`,"dataModel.collections":`集合`,"dataModel.collectionSummary":`{project} 个项目集合 · {system} 个系统集合`,"dataModel.createCollection":`创建集合`,"dataModel.createCollectionHint":"使用简短且适合机器处理的名称,例如 `articles`。","dataModel.description":`描述`,"dataModel.optionalDescription":`可选描述`,"dataModel.findCollection":`查找集合`,"dataModel.noProjectCollections":`暂无项目集合。`,"dataModel.noMatchingProject":`没有匹配的项目集合。`,"dataModel.collectionsLower":`集合`,"dataModel.systemCollectionsCount":`系统集合 ({count})`,"dataModel.systemManaged":`系统管理`,"dataModel.noMatchingSystem":`没有匹配的系统集合。`,"dataModel.systemCollectionsLower":`系统集合`,"dataModel.selectCollection":`选择集合`,"dataModel.selectCollectionDescription":`选择左侧集合以查看其字段和关系。`,"dataModel.systemCollection":`系统集合`,"dataModel.noDescription":`尚未添加描述。`,"dataModel.fieldCount":`{count} 个字段`,"dataModel.collectionSettings":`集合设置`,"dataModel.openField":`打开字段页面`,"dataModel.fieldDetail":`字段详情`,"dataModel.fieldNotFound":`未找到此字段,或它已被删除。`,"dataModel.backToFields":`返回字段`,"dataModel.fieldActions":`字段行为`,"dataModel.fieldActionsHint":`更改字段是否必填,或永久删除未使用的字段。`,"dataModel.relationPageHint":`选择关系类型;配置将在独立页面中打开。`,"dataModel.startRelation":`配置`,"dataModel.fieldsDescription":`搜索和管理此集合中存储的字段。`,"dataModel.addFieldHint":`选择字段名称和存储类型。V1 中刻意不提供类型转换。`,"dataModel.maxLength":`最大长度`,"dataModel.requiredValue":`必填值`,"dataModel.findField":`查找字段`,"dataModel.fieldSearchPlaceholder":`名称、类型、必填…`,"dataModel.sortFields":`字段排序`,"dataModel.makeOptional":`设为可选`,"dataModel.makeRequired":`设为必填`,"dataModel.fieldsLower":`字段`,"dataModel.systemRelationInfo":`系统集合关系可通过元数据查看,但不能在此屏幕中编辑。`,"dataModel.manyToOne":`多对一`,"dataModel.linkOneRecord":`链接到一条记录`,"dataModel.m2oDescription":`使用 {collection} 中现有字段作为外键字段,然后选择目标集合。`,"dataModel.noDirectRelations":`此集合没有直接关系。`,"dataModel.linksTo":`链接到 {collection}.{field}`,"dataModel.fieldIn":`{collection} 中的字段`,"dataModel.chooseField":`选择字段`,"dataModel.targetCollection":`目标集合`,"dataModel.chooseCollection":`选择集合`,"dataModel.ifTargetDeleted":`目标被删除时`,"dataModel.preventDeletion":`阻止删除`,"dataModel.deleteLinked":`删除关联记录`,"dataModel.clearField":`清除此字段`,"dataModel.createRelation":`创建关系`,"dataModel.manyToMany":`多对多`,"dataModel.connectCollections":`连接两个集合`,"dataModel.m2mDescription":`YunCMS 会创建一个隐藏的中间集合来存储两侧链接。`,"dataModel.noM2MJunctions":`此集合没有多对多中间表。`,"dataModel.junctionName":`中间集合名称`,"dataModel.firstCollection":`第一个集合`,"dataModel.secondCollection":`第二个集合`,"dataModel.createJunction":`创建中间集合`,"dataModel.loadingSchema":`正在加载架构…`,"roles.newRole":`新角色`,"roles.public":`公开`,"roles.administrator":`管理员`,"roles.custom":`自定义`,"roles.configuredOnly":`仅已配置`,"roles.collection":`集合`,"roles.read":`读取`,"roles.create":`创建`,"roles.update":`更新`,"roles.delete":`删除`,"roles.advanced":`高级`,"roles.fieldAccess":`字段访问`,"roles.rowFilter":`行筛选 JSON`,"roles.validation":`写入验证 JSON`,"roles.noRoles":`没有匹配的角色。`,"roles.nameAsc":`名称 A–Z`,"roles.nameDesc":`名称 Z–A`,"roles.mostRules":`规则最多`,"roles.loadError":`无法加载角色和权限`,"roles.createdNotice":`角色已创建`,"roles.createError":`无法创建角色`,"roles.updatedNotice":`角色已更新`,"roles.updateError":`无法更新角色`,"roles.deleteTitle":`删除角色?`,"roles.deleteDescription":`{name} 及其所有权限规则将被永久删除。`,"roles.deleteRole":`删除角色`,"roles.deletedNotice":`角色已删除`,"roles.deleteError":`无法删除角色`,"roles.accessRemoved":`已移除 {collection} 的 {action} 访问权限`,"roles.accessGranted":`已授予 {collection} 的 {action} 访问权限`,"roles.permissionUpdateError":`无法更新权限`,"roles.permissionDetailsError":`无法加载权限详情`,"roles.chooseFieldError":`请选择至少一个允许字段,或启用所有字段。`,"roles.advancedSaved":`高级权限规则已保存`,"roles.invalidJson":`筛选和验证规则必须包含有效 JSON。`,"roles.access":`访问`,"roles.roles":`角色`,"roles.summary":`{count} 个角色 · 选择一个以管理访问权限。`,"roles.publicRole":`公开角色`,"roles.createRole":`创建角色`,"roles.findRole":`查找角色`,"roles.adminFullAccess":`管理员 · 完全访问`,"roles.customRole":`自定义角色`,"roles.rolesLower":`角色`,"roles.selectRole":`选择角色`,"roles.selectRoleDescription":`选择一个角色以管理其访问权限。`,"roles.roleKind":`{kind} 角色`,"roles.roleName":`角色名称`,"roles.saveName":`保存名称`,"roles.permissionRules":`权限规则`,"roles.fullAdmin":`管理员完全访问`,"roles.fullAdminDescription":`此角色绕过集合权限行,无需矩阵配置。`,"roles.permissions":`权限`,"roles.collectionAccess":`集合访问`,"roles.collectionAccessDescription":`启用基础操作;仅在需要字段或行限制时使用“配置”。`,"roles.ruleCount":`{count} 条规则`,"roles.collectionCount":`{visible}/{total} 个集合`,"roles.actionCollection":`{action} {collection}`,"roles.allowed":`允许`,"roles.off":`关闭`,"roles.restricted":`受限`,"roles.configure":`配置`,"roles.createCollectionFirst":`请先创建集合,再配置权限。`,"roles.noMatchingCollections":`没有集合匹配当前权限筛选。`,"roles.advancedPermission":`高级权限`,"roles.advancedDescription":`限制字段或添加行级规则。空 JSON 规则表示没有额外限制。`,"roles.saveRules":`保存规则`,"roles.allowedFields":`允许字段`,"roles.allowedFieldsDescription":`默认允许所有字段。关闭后可明确选择字段。`,"roles.allowAllFields":`允许所有字段`,"roles.rowFilterDescription":`只有匹配此规则的行才能执行此操作。`,"roles.validationWriteDescription":`对于创建/更新,最终记录必须匹配此规则。`,"roles.validationUnsupported":`验证仅适用于创建和更新权限。`,"roles.openPermission":`打开权限页面`,"roles.permissionDetail":`权限详情`,"roles.permissionDetailDescription":`管理此操作的访问范围和字段规则。`,"roles.permissionEnabled":`权限已启用`,"roles.permissionDisabled":`权限已禁用`,"roles.permissionMasterSwitch":`允许此操作`,"roles.permissionMasterSwitchHint":`禁用后,API 将拒绝此集合和操作。`,"roles.enableBeforeRules":`编辑字段、行筛选和验证规则前,请先启用权限。`,"roles.actionOnlyPermission":`此系统资源仅支持操作级访问,没有额外字段或行规则。`,"roles.permissionNotFound":`未找到权限资源`,"roles.permissionNotFoundDescription":`集合可能已被删除,或此操作已不再受支持。`,"roles.backToRole":`返回角色`,"roles.collectionPermissionHint":`分别管理读取、创建、更新和删除操作。`,"roles.allRecords":`所有符合条件的记录`,"content.newRecord":`新记录`,"content.searchPlaceholder":`搜索记录…`,"content.noRecords":`没有匹配的记录`,"content.editRecord":`编辑记录`,"content.createRecord":`创建记录`,"content.deleteRecord":`删除记录?`,"content.deleteDescription":`这将永久删除所选记录。`,"content.openDataModel":`打开数据模型`,"content.opContains":`包含`,"content.opStartsWith":`开头为`,"content.opEndsWith":`结尾为`,"content.opExactly":`完全等于`,"content.opNot":`不等于`,"content.opEmpty":`为空`,"content.opNotEmpty":`不为空`,"content.opEquals":`等于`,"content.opDoesNotEqual":`不等于`,"content.opGreaterThan":`大于`,"content.opGreaterEqual":`大于或等于`,"content.opLessThan":`小于`,"content.opLessEqual":`小于或等于`,"content.opIs":`为`,"content.saveError":`无法保存记录`,"content.updateDescription":`更新以下字段。`,"content.createDescription":`向此集合添加新项目。`,"content.select":`选择…`,"content.unknownValue":`未知 ({value})`,"content.relationHint":`{collection} · 显示:{field}`,"content.saveRecord":`保存记录`,"content.schemaLoadError":`无法加载集合架构`,"content.dataLoadError":`无法加载集合数据`,"content.recordNotFound":`未找到记录`,"content.recordNotFoundDescription":`此记录可能已被删除,或 URL 不正确。`,"content.deleteRecordDescription":`记录 {id} 将从 {collection} 中永久删除。`,"content.deleteRecordAction":`删除记录`,"content.deleteError":`无法删除记录`,"content.empty":`空`,"content.notEmpty":`非空`,"content.noCollections":`暂无集合`,"content.noCollectionsDescription":`请在数据模型中创建第一个集合。它会直接显示在内容侧边栏中。`,"content.matchingRecords":`{count} 条匹配记录`,"content.dataControls":`{collection} 数据控制`,"content.searchTextFields":`搜索文本字段…`,"content.noTextFields":`没有可搜索的文本字段`,"content.sortBy":`排序依据`,"content.defaultOrder":`默认顺序`,"content.filterField":`筛选字段`,"content.condition":`条件`,"content.value":`值`,"content.noValueNeeded":`无需值`,"content.chooseRecord":`选择记录`,"content.chooseValue":`选择值`,"content.filterValue":`筛选值`,"content.chooseFieldFirst":`请先选择字段`,"content.addFilter":`添加筛选`,"content.filters":`筛选`,"content.filterCount":`{count} 个已启用`,"content.activeFilters":`已启用筛选`,"content.filterHint":`添加筛选以缩小此集合范围。`,"content.resetView":`重置视图`,"content.loadingCollection":`正在加载集合…`,"content.noRecordsYet":`暂无记录`,"content.firstRecordDescription":`向 {collection} 添加第一条记录。`,"content.createFirstRecord":`创建第一条记录`,"content.noMatchDescription":`移除筛选或更改搜索条件以扩大结果。`,"content.records":`记录`,"pagination.items":`项`,"pagination.aria":`{label} 分页`,"pagination.ofTotal":`共 {total} {label}`,"pagination.previousPage":`上一页`,"pagination.nextPage":`下一页`,"pagination.pageOf":`第 {page} 页,共 {totalPages} 页`,"pagination.page":`第 {page} 页`,"pagination.perPage":`每页`,"pagination.itemsPerPage":`每页 {label}`,"pagination.showing":`正在显示 {total} {label} 中的 {start}–{end}`}),Ze=Object.freeze({"collectionIcon.collection":`Sammlung`,"collectionIcon.article":`Artikel`,"collectionIcon.folder":`Ordner`,"collectionIcon.image":`Bild`,"collectionIcon.user":`Benutzer`,"collectionIcon.users":`Benutzer`,"collectionIcon.company":`Unternehmen`,"collectionIcon.cart":`Warenkorb`,"collectionIcon.product":`Produkt`,"collectionIcon.tag":`Tag`,"collectionIcon.calendar":`Kalender`,"collectionIcon.clock":`Uhr`,"collectionIcon.check":`Häkchen`,"collectionIcon.clipboard":`Zwischenablage`,"collectionIcon.message":`Nachricht`,"collectionIcon.mail":`E-Mail`,"collectionIcon.phone":`Telefon`,"collectionIcon.location":`Standort`,"collectionIcon.link":`Link`,"collectionIcon.star":`Stern`,"collectionIcon.heart":`Herz`,"collectionIcon.chart":`Diagramm`,"collectionIcon.money":`Geld`,"collectionIcon.briefcase":`Aktentasche`,"collectionIcon.truck":`Lkw`,"collectionIcon.factory":`Fabrik`,"collectionIcon.wrench":`Schraubenschlüssel`,"collectionIcon.shield":`Schild`,"collectionIcon.key":`Schlüssel`,"collectionIcon.code":`Code`,"collectionIcon.book":`Buch`,"collectionIcon.graduation":`Abschluss`}),Qe=Object.freeze({"collectionIcon.collection":`Collection`,"collectionIcon.article":`Article`,"collectionIcon.folder":`Folder`,"collectionIcon.image":`Image`,"collectionIcon.user":`User`,"collectionIcon.users":`Users`,"collectionIcon.company":`Company`,"collectionIcon.cart":`Cart`,"collectionIcon.product":`Product`,"collectionIcon.tag":`Tag`,"collectionIcon.calendar":`Calendar`,"collectionIcon.clock":`Clock`,"collectionIcon.check":`Check`,"collectionIcon.clipboard":`Clipboard`,"collectionIcon.message":`Message`,"collectionIcon.mail":`Mail`,"collectionIcon.phone":`Phone`,"collectionIcon.location":`Location`,"collectionIcon.link":`Link`,"collectionIcon.star":`Star`,"collectionIcon.heart":`Heart`,"collectionIcon.chart":`Chart`,"collectionIcon.money":`Money`,"collectionIcon.briefcase":`Briefcase`,"collectionIcon.truck":`Truck`,"collectionIcon.factory":`Factory`,"collectionIcon.wrench":`Wrench`,"collectionIcon.shield":`Shield`,"collectionIcon.key":`Key`,"collectionIcon.code":`Code`,"collectionIcon.book":`Book`,"collectionIcon.graduation":`Graduation`}),$e=Object.freeze({"collectionIcon.collection":`Colección`,"collectionIcon.article":`Artículo`,"collectionIcon.folder":`Carpeta`,"collectionIcon.image":`Imagen`,"collectionIcon.user":`Usuario`,"collectionIcon.users":`Usuarios`,"collectionIcon.company":`Empresa`,"collectionIcon.cart":`Carrito`,"collectionIcon.product":`Producto`,"collectionIcon.tag":`Etiqueta`,"collectionIcon.calendar":`Calendario`,"collectionIcon.clock":`Reloj`,"collectionIcon.check":`Comprobación`,"collectionIcon.clipboard":`Portapapeles`,"collectionIcon.message":`Mensaje`,"collectionIcon.mail":`Correo`,"collectionIcon.phone":`Teléfono`,"collectionIcon.location":`Ubicación`,"collectionIcon.link":`Enlace`,"collectionIcon.star":`Estrella`,"collectionIcon.heart":`Corazón`,"collectionIcon.chart":`Gráfico`,"collectionIcon.money":`Dinero`,"collectionIcon.briefcase":`Maletín`,"collectionIcon.truck":`Camión`,"collectionIcon.factory":`Fábrica`,"collectionIcon.wrench":`Llave inglesa`,"collectionIcon.shield":`Escudo`,"collectionIcon.key":`Llave`,"collectionIcon.code":`Código`,"collectionIcon.book":`Libro`,"collectionIcon.graduation":`Graduación`}),et=Object.freeze({"collectionIcon.collection":`Collection`,"collectionIcon.article":`Article`,"collectionIcon.folder":`Dossier`,"collectionIcon.image":`Image`,"collectionIcon.user":`Utilisateur`,"collectionIcon.users":`Utilisateurs`,"collectionIcon.company":`Entreprise`,"collectionIcon.cart":`Panier`,"collectionIcon.product":`Produit`,"collectionIcon.tag":`Étiquette`,"collectionIcon.calendar":`Calendrier`,"collectionIcon.clock":`Horloge`,"collectionIcon.check":`Validation`,"collectionIcon.clipboard":`Presse-papiers`,"collectionIcon.message":`Message`,"collectionIcon.mail":`E-mail`,"collectionIcon.phone":`Téléphone`,"collectionIcon.location":`Emplacement`,"collectionIcon.link":`Lien`,"collectionIcon.star":`Étoile`,"collectionIcon.heart":`Cœur`,"collectionIcon.chart":`Graphique`,"collectionIcon.money":`Argent`,"collectionIcon.briefcase":`Mallette`,"collectionIcon.truck":`Camion`,"collectionIcon.factory":`Usine`,"collectionIcon.wrench":`Clé`,"collectionIcon.shield":`Bouclier`,"collectionIcon.key":`Clé d’accès`,"collectionIcon.code":`Code`,"collectionIcon.book":`Livre`,"collectionIcon.graduation":`Diplôme`}),tt=Object.freeze({"collectionIcon.collection":`コレクション`,"collectionIcon.article":`記事`,"collectionIcon.folder":`フォルダー`,"collectionIcon.image":`画像`,"collectionIcon.user":`ユーザー`,"collectionIcon.users":`ユーザー一覧`,"collectionIcon.company":`会社`,"collectionIcon.cart":`カート`,"collectionIcon.product":`商品`,"collectionIcon.tag":`タグ`,"collectionIcon.calendar":`カレンダー`,"collectionIcon.clock":`時計`,"collectionIcon.check":`チェック`,"collectionIcon.clipboard":`クリップボード`,"collectionIcon.message":`メッセージ`,"collectionIcon.mail":`メール`,"collectionIcon.phone":`電話`,"collectionIcon.location":`場所`,"collectionIcon.link":`リンク`,"collectionIcon.star":`星`,"collectionIcon.heart":`ハート`,"collectionIcon.chart":`グラフ`,"collectionIcon.money":`金額`,"collectionIcon.briefcase":`ブリーフケース`,"collectionIcon.truck":`トラック`,"collectionIcon.factory":`工場`,"collectionIcon.wrench":`レンチ`,"collectionIcon.shield":`シールド`,"collectionIcon.key":`鍵`,"collectionIcon.code":`コード`,"collectionIcon.book":`本`,"collectionIcon.graduation":`卒業`}),nt=Object.freeze({"collectionIcon.collection":`Coleção`,"collectionIcon.article":`Artigo`,"collectionIcon.folder":`Pasta`,"collectionIcon.image":`Imagem`,"collectionIcon.user":`Usuário`,"collectionIcon.users":`Usuários`,"collectionIcon.company":`Empresa`,"collectionIcon.cart":`Carrinho`,"collectionIcon.product":`Produto`,"collectionIcon.tag":`Etiqueta`,"collectionIcon.calendar":`Calendário`,"collectionIcon.clock":`Relógio`,"collectionIcon.check":`Confirmação`,"collectionIcon.clipboard":`Prancheta`,"collectionIcon.message":`Mensagem`,"collectionIcon.mail":`E-mail`,"collectionIcon.phone":`Telefone`,"collectionIcon.location":`Localização`,"collectionIcon.link":`Link`,"collectionIcon.star":`Estrela`,"collectionIcon.heart":`Coração`,"collectionIcon.chart":`Gráfico`,"collectionIcon.money":`Dinheiro`,"collectionIcon.briefcase":`Pasta executiva`,"collectionIcon.truck":`Caminhão`,"collectionIcon.factory":`Fábrica`,"collectionIcon.wrench":`Chave inglesa`,"collectionIcon.shield":`Escudo`,"collectionIcon.key":`Chave`,"collectionIcon.code":`Código`,"collectionIcon.book":`Livro`,"collectionIcon.graduation":`Formatura`}),rt=Object.freeze({"collectionIcon.collection":`Koleksiyon`,"collectionIcon.article":`Makale`,"collectionIcon.folder":`Klasör`,"collectionIcon.image":`Görsel`,"collectionIcon.user":`Kullanıcı`,"collectionIcon.users":`Kullanıcılar`,"collectionIcon.company":`Şirket`,"collectionIcon.cart":`Sepet`,"collectionIcon.product":`Ürün`,"collectionIcon.tag":`Etiket`,"collectionIcon.calendar":`Takvim`,"collectionIcon.clock":`Saat`,"collectionIcon.check":`Onay`,"collectionIcon.clipboard":`Pano`,"collectionIcon.message":`Mesaj`,"collectionIcon.mail":`E-posta`,"collectionIcon.phone":`Telefon`,"collectionIcon.location":`Konum`,"collectionIcon.link":`Bağlantı`,"collectionIcon.star":`Yıldız`,"collectionIcon.heart":`Kalp`,"collectionIcon.chart":`Grafik`,"collectionIcon.money":`Para`,"collectionIcon.briefcase":`Evrak çantası`,"collectionIcon.truck":`Kamyon`,"collectionIcon.factory":`Fabrika`,"collectionIcon.wrench":`İngiliz anahtarı`,"collectionIcon.shield":`Kalkan`,"collectionIcon.key":`Anahtar`,"collectionIcon.code":`Kod`,"collectionIcon.book":`Kitap`,"collectionIcon.graduation":`Mezuniyet`}),it=Object.freeze({"collectionIcon.collection":`集合`,"collectionIcon.article":`文章`,"collectionIcon.folder":`文件夹`,"collectionIcon.image":`图片`,"collectionIcon.user":`用户`,"collectionIcon.users":`用户组`,"collectionIcon.company":`公司`,"collectionIcon.cart":`购物车`,"collectionIcon.product":`产品`,"collectionIcon.tag":`标签`,"collectionIcon.calendar":`日历`,"collectionIcon.clock":`时钟`,"collectionIcon.check":`勾选`,"collectionIcon.clipboard":`剪贴板`,"collectionIcon.message":`消息`,"collectionIcon.mail":`邮件`,"collectionIcon.phone":`电话`,"collectionIcon.location":`位置`,"collectionIcon.link":`链接`,"collectionIcon.star":`星标`,"collectionIcon.heart":`爱心`,"collectionIcon.chart":`图表`,"collectionIcon.money":`资金`,"collectionIcon.briefcase":`公文包`,"collectionIcon.truck":`卡车`,"collectionIcon.factory":`工厂`,"collectionIcon.wrench":`扳手`,"collectionIcon.shield":`盾牌`,"collectionIcon.key":`钥匙`,"collectionIcon.code":`代码`,"collectionIcon.book":`书籍`,"collectionIcon.graduation":`毕业`}),at=Object.freeze({"navigation.search":`Collections suchen…`,"navigation.createCollection":`Collection erstellen`,"navigation.createGroup":`Ordner erstellen`,"navigation.createGroupTitle":`Neuer Menüordner`,"navigation.editGroupTitle":`Menüordner bearbeiten`,"navigation.groupEditorHint":`Ordner organisieren nur die Studio-Navigation; sie erstellen keine Datenbanktabellen.`,"navigation.groupName":`Ordnername`,"navigation.addGroup":`Ordner hinzufügen`,"navigation.editGroup":`Bearbeiten`,"navigation.renameGroup":`Menüordner umbenennen`,"navigation.saveGroupName":`Speichern`,"navigation.groupRenamed":`Menüordner aktualisiert.`,"navigation.groupRenameFailed":`Menüordner konnte nicht aktualisiert werden.`,"navigation.cancel":`Abbrechen`,"navigation.loading":`Datenmodell wird geladen…`,"navigation.loadFailed":`Datenmodell konnte nicht geladen werden.`,"navigation.updateFailed":`Collection-Sichtbarkeit konnte nicht aktualisiert werden.`,"navigation.collectionShown":`Collection ist in der Inhaltsnavigation sichtbar.`,"navigation.collectionHidden":`Collection ist in der Inhaltsnavigation ausgeblendet.`,"navigation.showCollection":`In der Inhaltsnavigation anzeigen`,"navigation.hideCollection":`Aus der Inhaltsnavigation ausblenden`,"navigation.dragCollection":`Ziehen, um die Menüposition zu ändern`,"navigation.dragGroup":`Ziehen, um die Ordnerposition zu ändern`,"navigation.orderSaved":`Menüreihenfolge gespeichert.`,"navigation.orderFailed":`Menüreihenfolge konnte nicht gespeichert werden.`,"navigation.singleton":`Einzelner Eintrag`,"navigation.enableSingleton":`In Einzeleintragsmodell umwandeln`,"navigation.disableSingleton":`In reguläre Collection umwandeln`,"navigation.singletonEnabled":`Collection ist jetzt ein Einzeleintragsmodell.`,"navigation.singletonDisabled":`Collection ist jetzt ein reguläres Listenmodell.`,"navigation.singletonFailed":`Einzeleintrags-Einstellung konnte nicht geändert werden.`,"navigation.ungrouped":`Hauptmenü`,"navigation.menuOnlyGroup":`Nur-Navigation-Ordner`,"navigation.emptyGroup":`Collections hierher ziehen.`,"navigation.groupCreated":`Menüordner erstellt.`,"navigation.groupCreateFailed":`Menüordner konnte nicht gespeichert werden.`,"navigation.deleteGroup":`Menüordner löschen`,"navigation.deleteGroupDescription":`„{name}“ organisiert nur die Navigation. Beim Löschen werden seine Collections in die Wurzel verschoben; keine Collection und keine Daten werden gelöscht.`,"navigation.deleteGroupAction":`Ordner löschen`,"navigation.groupDeleted":`Menüordner gelöscht.`,"navigation.groupDeleteFailed":`Menüordner konnte nicht gelöscht werden.`,"navigation.collapseLabel":`Anfangsanzeige`,"navigation.collapse.open":`Geöffnet starten`,"navigation.collapse.closed":`Eingeklappt starten`,"navigation.collapse.locked":`Immer geöffnet`,"navigation.groupSummary":`{count} Collections · {behavior}`,"navigation.structureTitle":`Struktur des Inhaltsmenüs`,"navigation.structureSummary":`{collections} Collections · {groups} Ordner`,"navigation.folders":`Ordner`,"navigation.dragDisabledSearch":`Sortieren ist während der Suche deaktiviert`,"navigation.dragReady":`Ziehen zum Sortieren oder Verschieben in einen Ordner`,"navigation.moveToRootEnd":`Ans Ende der Wurzel verschieben`,"navigation.noSearchResults":`Keine Collection oder kein Ordner entspricht dieser Suche.`,"navigation.noCollections":`Noch keine Projekt-Collections.`,"navigation.hint":`Ziehe am Griff: Die Linie darüber oder darunter legt die Reihenfolge fest, während eine hervorgehobene Ordnermitte die Collection hinein verschiebt. Das Auge blendet eine Collection aus der Inhaltsnavigation aus.`,"navigation.content":`Inhalte`,"navigation.backToMain":`Zurück zum Hauptmenü`,"navigation.contentEmpty":`Keine Collections zum Anzeigen.`,"navigation.groupToggle":`{name} öffnen oder schließen`,"navigation.singletonOpening":`Einzeleintrag wird geöffnet…`}),ot=Object.freeze({"navigation.search":`Search collections…`,"navigation.createCollection":`Create collection`,"navigation.createGroup":`Create folder`,"navigation.createGroupTitle":`New menu folder`,"navigation.editGroupTitle":`Edit menu folder`,"navigation.groupEditorHint":`Folders organize Studio navigation only; they do not create database tables.`,"navigation.groupName":`Folder name`,"navigation.addGroup":`Add folder`,"navigation.editGroup":`Edit`,"navigation.renameGroup":`Rename menu folder`,"navigation.saveGroupName":`Save`,"navigation.groupRenamed":`Menu folder updated.`,"navigation.groupRenameFailed":`Menu folder could not be updated.`,"navigation.cancel":`Cancel`,"navigation.loading":`Loading data model…`,"navigation.loadFailed":`Data model could not be loaded.`,"navigation.updateFailed":`Collection visibility could not be updated.`,"navigation.collectionShown":`Collection is visible in Content navigation.`,"navigation.collectionHidden":`Collection is hidden from Content navigation.`,"navigation.showCollection":`Show in Content navigation`,"navigation.hideCollection":`Hide from Content navigation`,"navigation.dragCollection":`Drag to change menu position`,"navigation.dragGroup":`Drag to change folder position`,"navigation.orderSaved":`Menu order saved.`,"navigation.orderFailed":`Menu order could not be saved.`,"navigation.singleton":`Single item`,"navigation.enableSingleton":`Convert to single-item model`,"navigation.disableSingleton":`Convert to regular collection`,"navigation.singletonEnabled":`Collection is now a single-item model.`,"navigation.singletonDisabled":`Collection is now a regular list model.`,"navigation.singletonFailed":`Single-item setting could not be changed.`,"navigation.ungrouped":`Main menu`,"navigation.menuOnlyGroup":`Navigation-only folder`,"navigation.emptyGroup":`Drag collections here.`,"navigation.groupCreated":`Menu folder created.`,"navigation.groupCreateFailed":`Menu folder could not be saved.`,"navigation.deleteGroup":`Delete menu folder`,"navigation.deleteGroupDescription":`“{name}” only organizes navigation. Deleting it moves its collections to the root; no collection or data is deleted.`,"navigation.deleteGroupAction":`Delete folder`,"navigation.groupDeleted":`Menu folder deleted.`,"navigation.groupDeleteFailed":`Menu folder could not be deleted.`,"navigation.collapseLabel":`Initial display`,"navigation.collapse.open":`Start open`,"navigation.collapse.closed":`Start collapsed`,"navigation.collapse.locked":`Always open`,"navigation.groupSummary":`{count} collections · {behavior}`,"navigation.structureTitle":`Content menu structure`,"navigation.structureSummary":`{collections} collections · {groups} folders`,"navigation.folders":`Folders`,"navigation.dragDisabledSearch":`Sorting is disabled while searching`,"navigation.dragReady":`Drag to reorder or move into a folder`,"navigation.moveToRootEnd":`Move to the end of the root`,"navigation.noSearchResults":`No collection or folder matches this search.`,"navigation.noCollections":`No project collections yet.`,"navigation.hint":`Drag the handle: the line above or below sets order, while a highlighted folder center moves the collection inside. The eye hides a collection from Content navigation.`,"navigation.content":`Content`,"navigation.backToMain":`Back to main menu`,"navigation.contentEmpty":`No collections to show.`,"navigation.groupToggle":`Open or close {name}`,"navigation.singletonOpening":`Opening single item…`}),st=Object.freeze({"navigation.search":`Buscar colecciones…`,"navigation.createCollection":`Crear colección`,"navigation.createGroup":`Crear carpeta`,"navigation.createGroupTitle":`Nueva carpeta de menú`,"navigation.editGroupTitle":`Editar carpeta de menú`,"navigation.groupEditorHint":`Las carpetas solo organizan la navegación de Studio; no crean tablas en la base de datos.`,"navigation.groupName":`Nombre de la carpeta`,"navigation.addGroup":`Añadir carpeta`,"navigation.editGroup":`Editar`,"navigation.renameGroup":`Renombrar carpeta de menú`,"navigation.saveGroupName":`Guardar`,"navigation.groupRenamed":`Carpeta de menú actualizada.`,"navigation.groupRenameFailed":`No se pudo actualizar la carpeta de menú.`,"navigation.cancel":`Cancelar`,"navigation.loading":`Cargando modelo de datos…`,"navigation.loadFailed":`No se pudo cargar el modelo de datos.`,"navigation.updateFailed":`No se pudo actualizar la visibilidad de la colección.`,"navigation.collectionShown":`La colección es visible en la navegación de Contenido.`,"navigation.collectionHidden":`La colección está oculta en la navegación de Contenido.`,"navigation.showCollection":`Mostrar en la navegación de Contenido`,"navigation.hideCollection":`Ocultar de la navegación de Contenido`,"navigation.dragCollection":`Arrastra para cambiar la posición del menú`,"navigation.dragGroup":`Arrastra para cambiar la posición de la carpeta`,"navigation.orderSaved":`Orden del menú guardado.`,"navigation.orderFailed":`No se pudo guardar el orden del menú.`,"navigation.singleton":`Elemento único`,"navigation.enableSingleton":`Convertir a modelo de elemento único`,"navigation.disableSingleton":`Convertir a colección normal`,"navigation.singletonEnabled":`La colección ahora es un modelo de elemento único.`,"navigation.singletonDisabled":`La colección ahora es un modelo de lista normal.`,"navigation.singletonFailed":`No se pudo cambiar el ajuste de elemento único.`,"navigation.ungrouped":`Menú principal`,"navigation.menuOnlyGroup":`Carpeta solo de navegación`,"navigation.emptyGroup":`Arrastra colecciones aquí.`,"navigation.groupCreated":`Carpeta de menú creada.`,"navigation.groupCreateFailed":`No se pudo guardar la carpeta de menú.`,"navigation.deleteGroup":`Eliminar carpeta de menú`,"navigation.deleteGroupDescription":`“{name}” solo organiza la navegación. Al eliminarla, sus colecciones se mueven a la raíz; no se elimina ninguna colección ni dato.`,"navigation.deleteGroupAction":`Eliminar carpeta`,"navigation.groupDeleted":`Carpeta de menú eliminada.`,"navigation.groupDeleteFailed":`No se pudo eliminar la carpeta de menú.`,"navigation.collapseLabel":`Visualización inicial`,"navigation.collapse.open":`Empezar abierta`,"navigation.collapse.closed":`Empezar contraída`,"navigation.collapse.locked":`Siempre abierta`,"navigation.groupSummary":`{count} colecciones · {behavior}`,"navigation.structureTitle":`Estructura del menú de Contenido`,"navigation.structureSummary":`{collections} colecciones · {groups} carpetas`,"navigation.folders":`Carpetas`,"navigation.dragDisabledSearch":`El orden está deshabilitado durante la búsqueda`,"navigation.dragReady":`Arrastra para reordenar o mover a una carpeta`,"navigation.moveToRootEnd":`Mover al final de la raíz`,"navigation.noSearchResults":`Ninguna colección o carpeta coincide con esta búsqueda.`,"navigation.noCollections":`Todavía no hay colecciones del proyecto.`,"navigation.hint":`Arrastra el control: la línea superior o inferior establece el orden, mientras que el centro resaltado de una carpeta mueve la colección dentro. El ojo oculta una colección de la navegación de Contenido.`,"navigation.content":`Contenido`,"navigation.backToMain":`Volver al menú principal`,"navigation.contentEmpty":`No hay colecciones para mostrar.`,"navigation.groupToggle":`Abrir o cerrar {name}`,"navigation.singletonOpening":`Abriendo elemento único…`}),ct=Object.freeze({"navigation.search":`Rechercher des collections…`,"navigation.createCollection":`Créer une collection`,"navigation.createGroup":`Créer un dossier`,"navigation.createGroupTitle":`Nouveau dossier de menu`,"navigation.editGroupTitle":`Modifier le dossier de menu`,"navigation.groupEditorHint":`Les dossiers organisent uniquement la navigation de Studio ; ils ne créent pas de tables dans la base de données.`,"navigation.groupName":`Nom du dossier`,"navigation.addGroup":`Ajouter un dossier`,"navigation.editGroup":`Modifier`,"navigation.renameGroup":`Renommer le dossier de menu`,"navigation.saveGroupName":`Enregistrer`,"navigation.groupRenamed":`Dossier de menu mis à jour.`,"navigation.groupRenameFailed":`Impossible de mettre à jour le dossier de menu.`,"navigation.cancel":`Annuler`,"navigation.loading":`Chargement du modèle de données…`,"navigation.loadFailed":`Impossible de charger le modèle de données.`,"navigation.updateFailed":`Impossible de mettre à jour la visibilité de la collection.`,"navigation.collectionShown":`La collection est visible dans la navigation Contenu.`,"navigation.collectionHidden":`La collection est masquée dans la navigation Contenu.`,"navigation.showCollection":`Afficher dans la navigation Contenu`,"navigation.hideCollection":`Masquer de la navigation Contenu`,"navigation.dragCollection":`Faites glisser pour changer la position dans le menu`,"navigation.dragGroup":`Faites glisser pour changer la position du dossier`,"navigation.orderSaved":`Ordre du menu enregistré.`,"navigation.orderFailed":`Impossible d’enregistrer l’ordre du menu.`,"navigation.singleton":`Élément unique`,"navigation.enableSingleton":`Convertir en modèle à élément unique`,"navigation.disableSingleton":`Convertir en collection standard`,"navigation.singletonEnabled":`La collection est maintenant un modèle à élément unique.`,"navigation.singletonDisabled":`La collection est maintenant un modèle de liste standard.`,"navigation.singletonFailed":`Impossible de modifier le paramètre d’élément unique.`,"navigation.ungrouped":`Menu principal`,"navigation.menuOnlyGroup":`Dossier de navigation uniquement`,"navigation.emptyGroup":`Faites glisser des collections ici.`,"navigation.groupCreated":`Dossier de menu créé.`,"navigation.groupCreateFailed":`Impossible d’enregistrer le dossier de menu.`,"navigation.deleteGroup":`Supprimer le dossier de menu`,"navigation.deleteGroupDescription":`« {name} » organise uniquement la navigation. Le supprimer déplace ses collections à la racine ; aucune collection ni donnée n’est supprimée.`,"navigation.deleteGroupAction":`Supprimer le dossier`,"navigation.groupDeleted":`Dossier de menu supprimé.`,"navigation.groupDeleteFailed":`Impossible de supprimer le dossier de menu.`,"navigation.collapseLabel":`Affichage initial`,"navigation.collapse.open":`Commencer ouvert`,"navigation.collapse.closed":`Commencer réduit`,"navigation.collapse.locked":`Toujours ouvert`,"navigation.groupSummary":`{count} collections · {behavior}`,"navigation.structureTitle":`Structure du menu Contenu`,"navigation.structureSummary":`{collections} collections · {groups} dossiers`,"navigation.folders":`Dossiers`,"navigation.dragDisabledSearch":`Le tri est désactivé pendant la recherche`,"navigation.dragReady":`Faites glisser pour réorganiser ou déplacer dans un dossier`,"navigation.moveToRootEnd":`Déplacer à la fin de la racine`,"navigation.noSearchResults":`Aucune collection ni aucun dossier ne correspond à cette recherche.`,"navigation.noCollections":`Aucune collection de projet pour le moment.`,"navigation.hint":`Faites glisser la poignée : la ligne au-dessus ou en dessous définit l’ordre, tandis que le centre surligné d’un dossier déplace la collection à l’intérieur. L’œil masque une collection de la navigation Contenu.`,"navigation.content":`Contenu`,"navigation.backToMain":`Retour au menu principal`,"navigation.contentEmpty":`Aucune collection à afficher.`,"navigation.groupToggle":`Ouvrir ou fermer {name}`,"navigation.singletonOpening":`Ouverture de l’élément unique…`}),lt=Object.freeze({"navigation.search":`コレクションを検索…`,"navigation.createCollection":`コレクションを作成`,"navigation.createGroup":`フォルダーを作成`,"navigation.createGroupTitle":`新しいメニューフォルダー`,"navigation.editGroupTitle":`メニューフォルダーを編集`,"navigation.groupEditorHint":`フォルダーはStudioナビゲーションだけを整理し、データベーステーブルは作成しません。`,"navigation.groupName":`フォルダー名`,"navigation.addGroup":`フォルダーを追加`,"navigation.editGroup":`編集`,"navigation.renameGroup":`メニューフォルダー名を変更`,"navigation.saveGroupName":`保存`,"navigation.groupRenamed":`メニューフォルダーを更新しました。`,"navigation.groupRenameFailed":`メニューフォルダーを更新できませんでした。`,"navigation.cancel":`キャンセル`,"navigation.loading":`データモデルを読み込み中…`,"navigation.loadFailed":`データモデルを読み込めませんでした。`,"navigation.updateFailed":`コレクションの表示設定を更新できませんでした。`,"navigation.collectionShown":`コレクションをコンテンツナビゲーションに表示しました。`,"navigation.collectionHidden":`コレクションをコンテンツナビゲーションから非表示にしました。`,"navigation.showCollection":`コンテンツナビゲーションに表示`,"navigation.hideCollection":`コンテンツナビゲーションから非表示`,"navigation.dragCollection":`ドラッグしてメニュー位置を変更`,"navigation.dragGroup":`ドラッグしてフォルダー位置を変更`,"navigation.orderSaved":`メニュー順序を保存しました。`,"navigation.orderFailed":`メニュー順序を保存できませんでした。`,"navigation.singleton":`単一項目`,"navigation.enableSingleton":`単一項目モデルに変換`,"navigation.disableSingleton":`通常コレクションに変換`,"navigation.singletonEnabled":`コレクションを単一項目モデルに変更しました。`,"navigation.singletonDisabled":`コレクションを通常のリストモデルに変更しました。`,"navigation.singletonFailed":`単一項目設定を変更できませんでした。`,"navigation.ungrouped":`メインメニュー`,"navigation.menuOnlyGroup":`ナビゲーション専用フォルダー`,"navigation.emptyGroup":`ここにコレクションをドラッグしてください。`,"navigation.groupCreated":`メニューフォルダーを作成しました。`,"navigation.groupCreateFailed":`メニューフォルダーを保存できませんでした。`,"navigation.deleteGroup":`メニューフォルダーを削除`,"navigation.deleteGroupDescription":`“{name}” はナビゲーションだけを整理します。削除するとコレクションはルートへ移動し、コレクションやデータ自体は削除されません。`,"navigation.deleteGroupAction":`フォルダーを削除`,"navigation.groupDeleted":`メニューフォルダーを削除しました。`,"navigation.groupDeleteFailed":`メニューフォルダーを削除できませんでした。`,"navigation.collapseLabel":`初期表示`,"navigation.collapse.open":`開いた状態で開始`,"navigation.collapse.closed":`折りたたんだ状態で開始`,"navigation.collapse.locked":`常に開く`,"navigation.groupSummary":`{count} コレクション · {behavior}`,"navigation.structureTitle":`コンテンツメニュー構造`,"navigation.structureSummary":`{collections} コレクション · {groups} フォルダー`,"navigation.folders":`フォルダー`,"navigation.dragDisabledSearch":`検索中は並べ替えできません`,"navigation.dragReady":`ドラッグして並べ替え、またはフォルダーへ移動`,"navigation.moveToRootEnd":`ルート末尾へ移動`,"navigation.noSearchResults":`この検索に一致するコレクションまたはフォルダーはありません。`,"navigation.noCollections":`プロジェクトコレクションはまだありません。`,"navigation.hint":`ハンドルをドラッグします。上下の線で順序を決め、フォルダー中央がハイライトされた状態でドロップすると中へ移動します。目のアイコンでコンテンツナビゲーションから非表示にできます。`,"navigation.content":`コンテンツ`,"navigation.backToMain":`メインメニューに戻る`,"navigation.contentEmpty":`表示するコレクションがありません。`,"navigation.groupToggle":`{name} を開くまたは閉じる`,"navigation.singletonOpening":`単一項目を開いています…`}),ut=Object.freeze({"navigation.search":`Buscar coleções…`,"navigation.createCollection":`Criar coleção`,"navigation.createGroup":`Criar pasta`,"navigation.createGroupTitle":`Nova pasta de menu`,"navigation.editGroupTitle":`Editar pasta de menu`,"navigation.groupEditorHint":`Pastas organizam apenas a navegação do Studio; elas não criam tabelas no banco de dados.`,"navigation.groupName":`Nome da pasta`,"navigation.addGroup":`Adicionar pasta`,"navigation.editGroup":`Editar`,"navigation.renameGroup":`Renomear pasta do menu`,"navigation.saveGroupName":`Salvar`,"navigation.groupRenamed":`Pasta do menu atualizada.`,"navigation.groupRenameFailed":`A pasta do menu não pôde ser atualizada.`,"navigation.cancel":`Cancelar`,"navigation.loading":`Carregando modelo de dados…`,"navigation.loadFailed":`O modelo de dados não pôde ser carregado.`,"navigation.updateFailed":`A visibilidade da coleção não pôde ser atualizada.`,"navigation.collectionShown":`A coleção está visível na navegação de Conteúdo.`,"navigation.collectionHidden":`A coleção está oculta da navegação de Conteúdo.`,"navigation.showCollection":`Mostrar na navegação de Conteúdo`,"navigation.hideCollection":`Ocultar da navegação de Conteúdo`,"navigation.dragCollection":`Arraste para alterar a posição no menu`,"navigation.dragGroup":`Arraste para alterar a posição da pasta`,"navigation.orderSaved":`Ordem do menu salva.`,"navigation.orderFailed":`A ordem do menu não pôde ser salva.`,"navigation.singleton":`Item único`,"navigation.enableSingleton":`Converter em modelo de item único`,"navigation.disableSingleton":`Converter em coleção regular`,"navigation.singletonEnabled":`A coleção agora é um modelo de item único.`,"navigation.singletonDisabled":`A coleção agora é um modelo de lista regular.`,"navigation.singletonFailed":`A configuração de item único não pôde ser alterada.`,"navigation.ungrouped":`Menu principal`,"navigation.menuOnlyGroup":`Pasta somente de navegação`,"navigation.emptyGroup":`Arraste coleções para cá.`,"navigation.groupCreated":`Pasta do menu criada.`,"navigation.groupCreateFailed":`A pasta do menu não pôde ser salva.`,"navigation.deleteGroup":`Excluir pasta do menu`,"navigation.deleteGroupDescription":`“{name}” organiza apenas a navegação. Excluí-la move suas coleções para a raiz; nenhuma coleção ou dado é excluído.`,"navigation.deleteGroupAction":`Excluir pasta`,"navigation.groupDeleted":`Pasta do menu excluída.`,"navigation.groupDeleteFailed":`A pasta do menu não pôde ser excluída.`,"navigation.collapseLabel":`Exibição inicial`,"navigation.collapse.open":`Iniciar aberta`,"navigation.collapse.closed":`Iniciar recolhida`,"navigation.collapse.locked":`Sempre aberta`,"navigation.groupSummary":`{count} coleções · {behavior}`,"navigation.structureTitle":`Estrutura do menu de Conteúdo`,"navigation.structureSummary":`{collections} coleções · {groups} pastas`,"navigation.folders":`Pastas`,"navigation.dragDisabledSearch":`A ordenação fica desabilitada durante a busca`,"navigation.dragReady":`Arraste para reordenar ou mover para uma pasta`,"navigation.moveToRootEnd":`Mover para o fim da raiz`,"navigation.noSearchResults":`Nenhuma coleção ou pasta corresponde a esta busca.`,"navigation.noCollections":`Ainda não há coleções de projeto.`,"navigation.hint":`Arraste a alça: a linha acima ou abaixo define a ordem, enquanto o centro destacado de uma pasta move a coleção para dentro dela. O olho oculta uma coleção da navegação de Conteúdo.`,"navigation.content":`Conteúdo`,"navigation.backToMain":`Voltar ao menu principal`,"navigation.contentEmpty":`Nenhuma coleção para exibir.`,"navigation.groupToggle":`Abrir ou fechar {name}`,"navigation.singletonOpening":`Abrindo item único…`}),dt=Object.freeze({"navigation.search":`Koleksiyonlarda ara…`,"navigation.createCollection":`Koleksiyon oluştur`,"navigation.createGroup":`Klasör oluştur`,"navigation.createGroupTitle":`Yeni menü klasörü`,"navigation.editGroupTitle":`Menü klasörünü düzenle`,"navigation.groupEditorHint":`Klasörler yalnız Studio menüsünü düzenler; veritabanında tablo oluşturmaz.`,"navigation.groupName":`Klasör adı`,"navigation.addGroup":`Klasörü ekle`,"navigation.editGroup":`Düzenle`,"navigation.renameGroup":`Menü klasörünü yeniden adlandır`,"navigation.saveGroupName":`Kaydet`,"navigation.groupRenamed":`Menü klasörü güncellendi.`,"navigation.groupRenameFailed":`Menü klasörü güncellenemedi.`,"navigation.cancel":`Vazgeç`,"navigation.loading":`Veri modeli yükleniyor…`,"navigation.loadFailed":`Veri modeli yüklenemedi.`,"navigation.updateFailed":`Koleksiyon görünürlüğü güncellenemedi.`,"navigation.collectionShown":`Koleksiyon İçerik menüsünde gösteriliyor.`,"navigation.collectionHidden":`Koleksiyon İçerik menüsünden gizlendi.`,"navigation.showCollection":`İçerik menüsünde göster`,"navigation.hideCollection":`İçerik menüsünden gizle`,"navigation.dragCollection":`Menü konumunu sürükleyerek değiştir`,"navigation.dragGroup":`Klasör konumunu sürükleyerek değiştir`,"navigation.orderSaved":`Menü sırası kaydedildi.`,"navigation.orderFailed":`Menü sırası kaydedilemedi.`,"navigation.singleton":`Tek kayıt`,"navigation.enableSingleton":`Tek kayıt modeline çevir`,"navigation.disableSingleton":`Normal koleksiyona çevir`,"navigation.singletonEnabled":`Koleksiyon tek kayıt modeline çevrildi.`,"navigation.singletonDisabled":`Koleksiyon normal liste modeline çevrildi.`,"navigation.singletonFailed":`Tek kayıt ayarı değiştirilemedi.`,"navigation.ungrouped":`Ana menü`,"navigation.menuOnlyGroup":`Yalnız menü klasörü`,"navigation.emptyGroup":`Koleksiyonları buraya sürükleyebilirsin.`,"navigation.groupCreated":`Menü klasörü oluşturuldu.`,"navigation.groupCreateFailed":`Menü klasörü kaydedilemedi.`,"navigation.deleteGroup":`Menü klasörünü sil`,"navigation.deleteGroupDescription":`“{name}” yalnız menü düzenidir. Silinirse içindeki koleksiyonlar ana düzeye taşınır; hiçbir koleksiyon veya veri silinmez.`,"navigation.deleteGroupAction":`Klasörü sil`,"navigation.groupDeleted":`Menü klasörü silindi.`,"navigation.groupDeleteFailed":`Menü klasörü silinemedi.`,"navigation.collapseLabel":`Başlangıç görünümü`,"navigation.collapse.open":`Başlangıçta açık`,"navigation.collapse.closed":`Başlangıçta kapalı`,"navigation.collapse.locked":`Her zaman açık`,"navigation.groupSummary":`{count} koleksiyon · {behavior}`,"navigation.structureTitle":`İçerik menüsü yapısı`,"navigation.structureSummary":`{collections} koleksiyon · {groups} klasör`,"navigation.folders":`Klasörler`,"navigation.dragDisabledSearch":`Arama sırasında sıralama kapalı`,"navigation.dragReady":`Sürükleyerek sırala veya klasöre taşı`,"navigation.moveToRootEnd":`Ana düzeyin sonuna taşı`,"navigation.noSearchResults":`Bu aramayla eşleşen koleksiyon veya klasör yok.`,"navigation.noCollections":`Henüz proje koleksiyonu yok.`,"navigation.hint":`Tutamacı sürükle: satırın üst/alt çizgisi sırayı, klasörün vurgulanan merkezi içine taşımayı gösterir. Göz simgesi koleksiyonu İçerik menüsünde gizler.`,"navigation.content":`İçerik`,"navigation.backToMain":`Ana menüye dön`,"navigation.contentEmpty":`Gösterilecek koleksiyon yok.`,"navigation.groupToggle":`{name} grubunu aç veya kapat`,"navigation.singletonOpening":`Tek kayıt açılıyor…`}),ft=Object.freeze({"navigation.search":`搜索集合…`,"navigation.createCollection":`创建集合`,"navigation.createGroup":`创建文件夹`,"navigation.createGroupTitle":`新建菜单文件夹`,"navigation.editGroupTitle":`编辑菜单文件夹`,"navigation.groupEditorHint":`文件夹仅用于组织 Studio 导航,不会创建数据库表。`,"navigation.groupName":`文件夹名称`,"navigation.addGroup":`添加文件夹`,"navigation.editGroup":`编辑`,"navigation.renameGroup":`重命名菜单文件夹`,"navigation.saveGroupName":`保存`,"navigation.groupRenamed":`菜单文件夹已更新。`,"navigation.groupRenameFailed":`无法更新菜单文件夹。`,"navigation.cancel":`取消`,"navigation.loading":`正在加载数据模型…`,"navigation.loadFailed":`无法加载数据模型。`,"navigation.updateFailed":`无法更新集合可见性。`,"navigation.collectionShown":`集合已显示在内容导航中。`,"navigation.collectionHidden":`集合已从内容导航中隐藏。`,"navigation.showCollection":`显示在内容导航中`,"navigation.hideCollection":`从内容导航中隐藏`,"navigation.dragCollection":`拖动以更改菜单位置`,"navigation.dragGroup":`拖动以更改文件夹位置`,"navigation.orderSaved":`菜单顺序已保存。`,"navigation.orderFailed":`无法保存菜单顺序。`,"navigation.singleton":`单项`,"navigation.enableSingleton":`转换为单项模型`,"navigation.disableSingleton":`转换为普通集合`,"navigation.singletonEnabled":`集合现在是单项模型。`,"navigation.singletonDisabled":`集合现在是普通列表模型。`,"navigation.singletonFailed":`无法更改单项设置。`,"navigation.ungrouped":`主菜单`,"navigation.menuOnlyGroup":`仅导航文件夹`,"navigation.emptyGroup":`将集合拖到这里。`,"navigation.groupCreated":`菜单文件夹已创建。`,"navigation.groupCreateFailed":`无法保存菜单文件夹。`,"navigation.deleteGroup":`删除菜单文件夹`,"navigation.deleteGroupDescription":`“{name}” 仅用于组织导航。删除后,其集合会移动到根目录;不会删除任何集合或数据。`,"navigation.deleteGroupAction":`删除文件夹`,"navigation.groupDeleted":`菜单文件夹已删除。`,"navigation.groupDeleteFailed":`无法删除菜单文件夹。`,"navigation.collapseLabel":`初始显示`,"navigation.collapse.open":`默认展开`,"navigation.collapse.closed":`默认折叠`,"navigation.collapse.locked":`始终展开`,"navigation.groupSummary":`{count} 个集合 · {behavior}`,"navigation.structureTitle":`内容菜单结构`,"navigation.structureSummary":`{collections} 个集合 · {groups} 个文件夹`,"navigation.folders":`文件夹`,"navigation.dragDisabledSearch":`搜索时禁用排序`,"navigation.dragReady":`拖动以重新排序或移动到文件夹`,"navigation.moveToRootEnd":`移动到根目录末尾`,"navigation.noSearchResults":`没有集合或文件夹匹配此搜索。`,"navigation.noCollections":`暂无项目集合。`,"navigation.hint":`拖动手柄:上方或下方的线决定顺序,将集合拖到高亮文件夹中央可移动进去。眼睛图标可将集合从内容导航中隐藏。`,"navigation.content":`内容`,"navigation.backToMain":`返回主菜单`,"navigation.contentEmpty":`没有可显示的集合。`,"navigation.groupToggle":`打开或关闭 {name}`,"navigation.singletonOpening":`正在打开单项…`}),pt=Object.freeze({"nav.mcp":`MCP-Verbindung`,"section.mcpTitle":`MCP-Verbindung`,"section.mcpDescription":`Steuere, wie externe KI-Werkzeuge auf YunCMS-Dienste zugreifen können.`,"mcp.title":`MCP-Einstellungen`,"mcp.settingsTitle":`Model Context Protocol`,"mcp.settingsDescription":`Verwalte hier MCP-Endpunkt, Zugriffsgrenzen und Werkzeugberechtigungen. Änderungen gelten ohne Serverneustart.`,"mcp.enabled":`Aktiviert`,"mcp.disabled":`Deaktiviert`,"mcp.endpoint":`Verbindungs-URL`,"mcp.endpointHint":`Verwende diese URL als Streamable-HTTP-Server-URL in einem MCP-Client.`,"mcp.enable":`MCP-Endpunkt aktivieren`,"mcp.enableHint":`Im deaktivierten Zustand liefert der Laufzeit-Endpunkt 404; der Verwaltungsbildschirm bleibt verfügbar.`,"mcp.writes":`Datenändernde Werkzeuge aktivieren`,"mcp.writesHint":`Stellt Erstell-, Aktualisierungs- und Löschwerkzeuge bereit. Die YunCMS-Berechtigungen des verbundenen Benutzers gelten weiterhin.`,"mcp.authentication":`YunCMS-Authentifizierung verlangen`,"mcp.authenticationHint":`Wenn aktiviert, muss jeder Client ein gültiges YunCMS-Zugriffstoken senden.`,"mcp.writesWarning":`Schreibwerkzeuge sind aktiviert. Verbundene Clients können Datensätze im Rahmen der Berechtigungen ihres YunCMS-Kontos erstellen, aktualisieren und löschen.`,"mcp.publicWarning":`Authentifizierung ist deaktiviert. MCP-Anfragen verwenden die öffentliche Rolle; prüfe deren Zugriff sorgfältig.`,"mcp.allowedHosts":`Erlaubte Host-Werte`,"mcp.allowedHostsHint":`Gib pro Zeile genau einen Host oder host:port ein. Vor dem Aktivieren von MCP ist mindestens ein Wert erforderlich.`,"mcp.allowedOrigins":`Erlaubte Browser-Ursprünge`,"mcp.allowedOriginsHint":`Gib pro Zeile genau einen http/https-Ursprung ein. Server-Clients ohne Origin-Header werden über Host geprüft.`,"mcp.advanced":`Erweiterte Antwortgrenzen`,"mcp.maxItems":`Maximale Elementanzahl`,"mcp.maxItemsHint":`Obergrenze für eine einzelne Leseanfrage (1–500).`,"mcp.maxResultBytes":`Maximales Werkzeugergebnis (Bytes)`,"mcp.maxResultBytesHint":`Zu große Werkzeugergebnisse liefern einen begrenzten Fehler.`,"mcp.saved":`MCP-Einstellungen wurden gespeichert und angewendet.`,"mcp.saveFailed":`MCP-Einstellungen konnten nicht gespeichert werden.`,"mcp.loadFailed":`MCP-Einstellungen konnten nicht geladen werden.`,"mcp.lastUpdated":`Zuletzt aktualisiert: {value}`,"mcp.notSavedYet":`Noch nicht über das Panel aktualisiert.`,"mcp.adminOnly":`Nur Administratoren können MCP-Einstellungen anzeigen und ändern.`}),mt=Object.freeze({"nav.mcp":`MCP Connection`,"section.mcpTitle":`MCP Connection`,"section.mcpDescription":`Control how external AI tools can access YunCMS services.`,"mcp.title":`MCP settings`,"mcp.settingsTitle":`Model Context Protocol`,"mcp.settingsDescription":`Manage the MCP endpoint, access boundaries and tool permissions here. Changes apply without restarting the server.`,"mcp.enabled":`Enabled`,"mcp.disabled":`Disabled`,"mcp.endpoint":`Connection URL`,"mcp.endpointHint":`Use this as the Streamable HTTP server URL in an MCP client.`,"mcp.enable":`Enable the MCP endpoint`,"mcp.enableHint":`While disabled, the runtime endpoint returns 404 and the management screen remains available.`,"mcp.writes":`Enable data-changing tools`,"mcp.writesHint":`Makes create, update and delete tools available. The connected user’s YunCMS permissions still apply.`,"mcp.authentication":`Require YunCMS authentication`,"mcp.authenticationHint":`When enabled, every client must send a valid YunCMS access token.`,"mcp.writesWarning":`Write tools are enabled. Connected clients can create, update and delete records within the permissions of their YunCMS account.`,"mcp.publicWarning":`Authentication is disabled. MCP requests use the Public role; review Public role access carefully.`,"mcp.allowedHosts":`Allowed Host values`,"mcp.allowedHostsHint":`Enter one exact host or host:port per line. At least one value is required before enabling MCP.`,"mcp.allowedOrigins":`Allowed browser origins`,"mcp.allowedOriginsHint":`Enter one exact http/https origin per line. Server clients without an Origin header are checked by Host.`,"mcp.advanced":`Advanced response limits`,"mcp.maxItems":`Maximum item count`,"mcp.maxItemsHint":`Upper limit for a single read request (1–500).`,"mcp.maxResultBytes":`Maximum tool result (bytes)`,"mcp.maxResultBytesHint":`Oversized tool results return a bounded error.`,"mcp.saved":`MCP settings were saved and applied.`,"mcp.saveFailed":`MCP settings could not be saved.`,"mcp.loadFailed":`MCP settings could not be loaded.`,"mcp.lastUpdated":`Last updated: {value}`,"mcp.notSavedYet":`Not updated from the panel yet.`,"mcp.adminOnly":`Only administrators can view and change MCP settings.`}),ht=Object.freeze({"nav.mcp":`Conexión MCP`,"section.mcpTitle":`Conexión MCP`,"section.mcpDescription":`Controla cómo pueden acceder herramientas externas de IA a los servicios de YunCMS.`,"mcp.title":`Ajustes de MCP`,"mcp.settingsTitle":`Model Context Protocol`,"mcp.settingsDescription":`Gestiona aquí el endpoint MCP, los límites de acceso y los permisos de herramientas. Los cambios se aplican sin reiniciar el servidor.`,"mcp.enabled":`Habilitado`,"mcp.disabled":`Deshabilitado`,"mcp.endpoint":`URL de conexión`,"mcp.endpointHint":`Usa esta URL como servidor Streamable HTTP en un cliente MCP.`,"mcp.enable":`Habilitar el endpoint MCP`,"mcp.enableHint":`Mientras esté deshabilitado, el endpoint de ejecución devuelve 404 y la pantalla de gestión sigue disponible.`,"mcp.writes":`Habilitar herramientas que modifican datos`,"mcp.writesHint":`Hace disponibles las herramientas de creación, actualización y eliminación. Los permisos de YunCMS del usuario conectado siguen aplicándose.`,"mcp.authentication":`Requerir autenticación de YunCMS`,"mcp.authenticationHint":`Cuando está habilitado, cada cliente debe enviar un token de acceso válido de YunCMS.`,"mcp.writesWarning":`Las herramientas de escritura están habilitadas. Los clientes conectados pueden crear, actualizar y eliminar registros dentro de los permisos de su cuenta de YunCMS.`,"mcp.publicWarning":`La autenticación está deshabilitada. Las solicitudes MCP usan el rol Público; revisa cuidadosamente el acceso de ese rol.`,"mcp.allowedHosts":`Valores Host permitidos`,"mcp.allowedHostsHint":`Introduce un host exacto o host:puerto por línea. Se requiere al menos un valor antes de habilitar MCP.`,"mcp.allowedOrigins":`Orígenes de navegador permitidos`,"mcp.allowedOriginsHint":`Introduce un origen http/https exacto por línea. Los clientes de servidor sin cabecera Origin se comprueban mediante Host.`,"mcp.advanced":`Límites avanzados de respuesta`,"mcp.maxItems":`Número máximo de elementos`,"mcp.maxItemsHint":`Límite superior para una sola solicitud de lectura (1–500).`,"mcp.maxResultBytes":`Resultado máximo de herramienta (bytes)`,"mcp.maxResultBytesHint":`Los resultados de herramienta demasiado grandes devuelven un error limitado.`,"mcp.saved":`Los ajustes de MCP se guardaron y aplicaron.`,"mcp.saveFailed":`No se pudieron guardar los ajustes de MCP.`,"mcp.loadFailed":`No se pudieron cargar los ajustes de MCP.`,"mcp.lastUpdated":`Última actualización: {value}`,"mcp.notSavedYet":`Todavía no se ha actualizado desde el panel.`,"mcp.adminOnly":`Solo los administradores pueden ver y cambiar los ajustes de MCP.`}),gt=Object.freeze({"nav.mcp":`Connexion MCP`,"section.mcpTitle":`Connexion MCP`,"section.mcpDescription":`Contrôlez la manière dont les outils IA externes peuvent accéder aux services YunCMS.`,"mcp.title":`Paramètres MCP`,"mcp.settingsTitle":`Model Context Protocol`,"mcp.settingsDescription":`Gérez ici le endpoint MCP, les limites d’accès et les permissions des outils. Les modifications s’appliquent sans redémarrer le serveur.`,"mcp.enabled":`Activé`,"mcp.disabled":`Désactivé`,"mcp.endpoint":`URL de connexion`,"mcp.endpointHint":`Utilisez cette URL comme serveur Streamable HTTP dans un client MCP.`,"mcp.enable":`Activer le endpoint MCP`,"mcp.enableHint":`Lorsqu’il est désactivé, le endpoint d’exécution renvoie 404 et l’écran de gestion reste disponible.`,"mcp.writes":`Activer les outils qui modifient les données`,"mcp.writesHint":`Rend disponibles les outils de création, mise à jour et suppression. Les permissions YunCMS de l’utilisateur connecté continuent de s’appliquer.`,"mcp.authentication":`Exiger l’authentification YunCMS`,"mcp.authenticationHint":`Lorsqu’elle est activée, chaque client doit envoyer un jeton d’accès YunCMS valide.`,"mcp.writesWarning":`Les outils d’écriture sont activés. Les clients connectés peuvent créer, mettre à jour et supprimer des enregistrements dans les limites des permissions de leur compte YunCMS.`,"mcp.publicWarning":`L’authentification est désactivée. Les requêtes MCP utilisent le rôle Public ; vérifiez soigneusement son accès.`,"mcp.allowedHosts":`Valeurs Host autorisées`,"mcp.allowedHostsHint":`Saisissez un host exact ou host:port par ligne. Au moins une valeur est requise avant d’activer MCP.`,"mcp.allowedOrigins":`Origines navigateur autorisées`,"mcp.allowedOriginsHint":`Saisissez une origine http/https exacte par ligne. Les clients serveur sans en-tête Origin sont vérifiés via Host.`,"mcp.advanced":`Limites de réponse avancées`,"mcp.maxItems":`Nombre maximal d’éléments`,"mcp.maxItemsHint":`Limite supérieure pour une seule requête de lecture (1–500).`,"mcp.maxResultBytes":`Résultat maximal d’outil (octets)`,"mcp.maxResultBytesHint":`Les résultats d’outil trop volumineux renvoient une erreur limitée.`,"mcp.saved":`Les paramètres MCP ont été enregistrés et appliqués.`,"mcp.saveFailed":`Impossible d’enregistrer les paramètres MCP.`,"mcp.loadFailed":`Impossible de charger les paramètres MCP.`,"mcp.lastUpdated":`Dernière mise à jour : {value}`,"mcp.notSavedYet":`Pas encore mis à jour depuis le panneau.`,"mcp.adminOnly":`Seuls les administrateurs peuvent afficher et modifier les paramètres MCP.`}),_t=Object.freeze({"nav.mcp":`MCP接続`,"section.mcpTitle":`MCP接続`,"section.mcpDescription":`外部AIツールがYunCMSサービスへアクセスする方法を制御します。`,"mcp.title":`MCP設定`,"mcp.settingsTitle":`Model Context Protocol`,"mcp.settingsDescription":`MCPエンドポイント、アクセス境界、ツール権限を管理します。変更はサーバー再起動なしで適用されます。`,"mcp.enabled":`有効`,"mcp.disabled":`無効`,"mcp.endpoint":`接続URL`,"mcp.endpointHint":`MCPクライアントでStreamable HTTPサーバーURLとして使用してください。`,"mcp.enable":`MCPエンドポイントを有効化`,"mcp.enableHint":`無効の間、ランタイムエンドポイントは404を返しますが、管理画面は利用できます。`,"mcp.writes":`データ変更ツールを有効化`,"mcp.writesHint":`作成、更新、削除ツールを利用可能にします。接続ユーザーのYunCMS権限は引き続き適用されます。`,"mcp.authentication":`YunCMS認証を必須にする`,"mcp.authenticationHint":`有効にすると、すべてのクライアントが有効なYunCMSアクセストークンを送信する必要があります。`,"mcp.writesWarning":`書き込みツールが有効です。接続クライアントはYunCMSアカウントの権限範囲内でレコードを作成、更新、削除できます。`,"mcp.publicWarning":`認証が無効です。MCPリクエストはPublicロールを使用します。Publicロールのアクセスを慎重に確認してください。`,"mcp.allowedHosts":`許可するHost値`,"mcp.allowedHostsHint":`1行につき正確なhostまたはhost:portを1つ入力します。MCPを有効化する前に少なくとも1つ必要です。`,"mcp.allowedOrigins":`許可するブラウザーオリジン`,"mcp.allowedOriginsHint":`1行につき正確なhttp/httpsオリジンを1つ入力します。OriginヘッダーのないサーバークライアントはHostで確認されます。`,"mcp.advanced":`詳細な応答制限`,"mcp.maxItems":`最大項目数`,"mcp.maxItemsHint":`1回の読み取りリクエストの上限(1–500)。`,"mcp.maxResultBytes":`ツール結果の最大サイズ(bytes)`,"mcp.maxResultBytesHint":`上限を超えるツール結果は制限付きエラーを返します。`,"mcp.saved":`MCP設定を保存し、適用しました。`,"mcp.saveFailed":`MCP設定を保存できませんでした。`,"mcp.loadFailed":`MCP設定を読み込めませんでした。`,"mcp.lastUpdated":`最終更新: {value}`,"mcp.notSavedYet":`まだパネルから更新されていません。`,"mcp.adminOnly":`MCP設定を表示・変更できるのは管理者だけです。`}),vt=Object.freeze({"nav.mcp":`Conexão MCP`,"section.mcpTitle":`Conexão MCP`,"section.mcpDescription":`Controle como ferramentas externas de IA podem acessar os serviços do YunCMS.`,"mcp.title":`Configurações MCP`,"mcp.settingsTitle":`Model Context Protocol`,"mcp.settingsDescription":`Gerencie o endpoint MCP, limites de acesso e permissões de ferramentas aqui. As alterações são aplicadas sem reiniciar o servidor.`,"mcp.enabled":`Habilitado`,"mcp.disabled":`Desabilitado`,"mcp.endpoint":`URL de conexão`,"mcp.endpointHint":`Use esta URL como servidor HTTP Streamable em um cliente MCP.`,"mcp.enable":`Habilitar endpoint MCP`,"mcp.enableHint":`Enquanto desabilitado, o endpoint de runtime retorna 404 e a tela de gerenciamento continua disponível.`,"mcp.writes":`Habilitar ferramentas que alteram dados`,"mcp.writesHint":`Disponibiliza ferramentas de criação, atualização e exclusão. As permissões YunCMS do usuário conectado continuam sendo aplicadas.`,"mcp.authentication":`Exigir autenticação YunCMS`,"mcp.authenticationHint":`Quando habilitado, cada cliente deve enviar um token de acesso YunCMS válido.`,"mcp.writesWarning":`As ferramentas de escrita estão habilitadas. Clientes conectados podem criar, atualizar e excluir registros dentro das permissões da conta YunCMS usada.`,"mcp.publicWarning":`A autenticação está desabilitada. Solicitações MCP usam a função Pública; revise com cuidado o acesso dessa função.`,"mcp.allowedHosts":`Valores Host permitidos`,"mcp.allowedHostsHint":`Informe um host exato ou host:porta por linha. Pelo menos um valor é necessário antes de habilitar o MCP.`,"mcp.allowedOrigins":`Origens de navegador permitidas`,"mcp.allowedOriginsHint":`Informe uma origem http/https exata por linha. Clientes de servidor sem cabeçalho Origin são verificados pelo Host.`,"mcp.advanced":`Limites avançados de resposta`,"mcp.maxItems":`Quantidade máxima de itens`,"mcp.maxItemsHint":`Limite superior para uma única solicitação de leitura (1–500).`,"mcp.maxResultBytes":`Resultado máximo da ferramenta (bytes)`,"mcp.maxResultBytesHint":`Resultados de ferramenta grandes demais retornam um erro limitado.`,"mcp.saved":`As configurações MCP foram salvas e aplicadas.`,"mcp.saveFailed":`As configurações MCP não puderam ser salvas.`,"mcp.loadFailed":`As configurações MCP não puderam ser carregadas.`,"mcp.lastUpdated":`Última atualização: {value}`,"mcp.notSavedYet":`Ainda não atualizado pelo painel.`,"mcp.adminOnly":`Somente administradores podem visualizar e alterar as configurações MCP.`}),yt=Object.freeze({"nav.mcp":`MCP Bağlantısı`,"section.mcpTitle":`MCP Bağlantısı`,"section.mcpDescription":`Harici yapay zeka araçlarının YunCMS servislerine nasıl erişeceğini yönet.`,"mcp.title":`MCP ayarları`,"mcp.settingsTitle":`Model Context Protocol`,"mcp.settingsDescription":`MCP uç noktasını, erişim sınırlarını ve araç yetkilerini buradan yönet. Değişiklikler sunucuyu yeniden başlatmadan uygulanır.`,"mcp.enabled":`Açık`,"mcp.disabled":`Kapalı`,"mcp.endpoint":`Bağlantı adresi`,"mcp.endpointHint":`MCP istemcisinde Streamable HTTP sunucu adresi olarak kullan.`,"mcp.enable":`MCP uç noktası açık`,"mcp.enableHint":`Kapalıyken çalışma uç noktası 404 döndürür; yönetim ekranı kullanılmaya devam eder.`,"mcp.writes":`Veri değiştirme araçlarını aç`,"mcp.writesHint":`Oluşturma, güncelleme ve silme araçlarını kullanılabilir yapar. Kullanıcının YunCMS izinleri yine uygulanır.`,"mcp.authentication":`YunCMS kimlik doğrulaması zorunlu`,"mcp.authenticationHint":`Açıkken her istemci geçerli bir YunCMS erişim anahtarı göndermelidir.`,"mcp.writesWarning":`Yazma araçları açık. Bağlanan istemciler, kullandıkları hesabın izinleri dahilinde kayıt oluşturabilir, güncelleyebilir ve silebilir.`,"mcp.publicWarning":`Kimlik doğrulama kapalı. MCP istekleri Public rolünün izinleriyle çalışır; Public rol erişimlerini dikkatle kontrol et.`,"mcp.allowedHosts":`İzin verilen Host değerleri`,"mcp.allowedHostsHint":`Her satıra tam bir host veya host:port yaz. MCP’yi açmak için en az bir değer gerekir.`,"mcp.allowedOrigins":`İzin verilen tarayıcı origin değerleri`,"mcp.allowedOriginsHint":`Her satıra tam bir http/https origin yaz. Origin başlığı göndermeyen sunucu istemcileri Host kontrolünden geçer.`,"mcp.advanced":`Gelişmiş yanıt sınırları`,"mcp.maxItems":`Maksimum kayıt sayısı`,"mcp.maxItemsHint":`Tek bir okuma çağrısının isteyebileceği üst sınır (1–500).`,"mcp.maxResultBytes":`Maksimum araç sonucu (byte)`,"mcp.maxResultBytesHint":`Büyük araç sonuçları bu sınırı aşınca kontrollü hata döner.`,"mcp.saved":`MCP ayarları kaydedildi ve etkinleştirildi.`,"mcp.saveFailed":`MCP ayarları kaydedilemedi.`,"mcp.loadFailed":`MCP ayarları yüklenemedi.`,"mcp.lastUpdated":`Son güncelleme: {value}`,"mcp.notSavedYet":`Henüz panelden güncellenmedi.`,"mcp.adminOnly":`MCP ayarlarını yalnız yöneticiler görüntüleyebilir ve değiştirebilir.`}),bt=Object.freeze({"nav.mcp":`MCP 连接`,"section.mcpTitle":`MCP 连接`,"section.mcpDescription":`控制外部 AI 工具如何访问 YunCMS 服务。`,"mcp.title":`MCP 设置`,"mcp.settingsTitle":`Model Context Protocol`,"mcp.settingsDescription":`在这里管理 MCP 端点、访问边界和工具权限。更改无需重启服务器即可生效。`,"mcp.enabled":`已启用`,"mcp.disabled":`已禁用`,"mcp.endpoint":`连接 URL`,"mcp.endpointHint":`在 MCP 客户端中将此地址用作 Streamable HTTP 服务器 URL。`,"mcp.enable":`启用 MCP 端点`,"mcp.enableHint":`禁用时,运行时端点返回 404,管理屏幕仍可使用。`,"mcp.writes":`启用会修改数据的工具`,"mcp.writesHint":`提供创建、更新和删除工具。连接用户的 YunCMS 权限仍然生效。`,"mcp.authentication":`要求 YunCMS 认证`,"mcp.authenticationHint":`启用后,每个客户端都必须发送有效的 YunCMS 访问令牌。`,"mcp.writesWarning":`写入工具已启用。连接的客户端可以在其 YunCMS 账户权限范围内创建、更新和删除记录。`,"mcp.publicWarning":`认证已禁用。MCP 请求使用 Public 角色;请仔细检查 Public 角色的访问权限。`,"mcp.allowedHosts":`允许的 Host 值`,"mcp.allowedHostsHint":`每行输入一个精确的 host 或 host:port。启用 MCP 前至少需要一个值。`,"mcp.allowedOrigins":`允许的浏览器来源`,"mcp.allowedOriginsHint":`每行输入一个精确的 http/https 来源。没有 Origin 请求头的服务器客户端通过 Host 检查。`,"mcp.advanced":`高级响应限制`,"mcp.maxItems":`最大项目数`,"mcp.maxItemsHint":`单次读取请求的上限(1–500)。`,"mcp.maxResultBytes":`工具结果最大大小(字节)`,"mcp.maxResultBytesHint":`过大的工具结果会返回受限错误。`,"mcp.saved":`MCP 设置已保存并应用。`,"mcp.saveFailed":`无法保存 MCP 设置。`,"mcp.loadFailed":`无法加载 MCP 设置。`,"mcp.lastUpdated":`最后更新:{value}`,"mcp.notSavedYet":`尚未从面板更新。`,"mcp.adminOnly":`只有管理员可以查看和更改 MCP 设置。`}),xt=Object.freeze({"registration.eyebrow":`Zugriff`,"registration.title":`Öffentliche Registrierung`,"registration.description":`Erlaube Besuchern, YunCMS-Konten zu erstellen, und wähle die Rolle aus, die jeder neuen Registrierung zugewiesen wird.`,"registration.defaultRole":`Rolle für registrierte Benutzer`,"registration.chooseRole":`Rolle auswählen`,"registration.roleHint":`Administrator- und nicht authentifizierte öffentliche Rollen sind niemals zulässig.`,"registration.roleMissing":`Die zuvor ausgewählte Rolle existiert nicht mehr. Wähle eine andere Rolle, bevor du die Registrierung aktivierst.`,"registration.noRoles":`Erstelle eine normale Nicht-Administrator-Rolle, bevor du die öffentliche Registrierung aktivierst.`,"registration.allowPublic":`Öffentliche Registrierung erlauben`,"registration.enabledHint":`Wenn deaktiviert, sind der öffentliche Registrierungsendpunkt und das Registrierungsformular nicht verfügbar.`,"registration.requireEmailVerification":`E-Mail-Bestätigung verlangen`,"registration.requireEmailVerificationHint":`Wenn aktiviert, müssen neue öffentliche Registrierungen den per E-Mail gesendeten Link bestätigen, bevor sie sich lokal anmelden können. SMTP-Mailversand muss konfiguriert sein.`,"registration.saved":`Einstellungen für öffentliche Registrierung gespeichert.`,"registration.loadFailed":`Einstellungen für öffentliche Registrierung konnten nicht geladen werden.`,"registration.saveFailed":`Einstellungen für öffentliche Registrierung konnten nicht gespeichert werden.`,"auth.createAccount":`Konto erstellen`,"auth.createAccountDescription":`Erstelle ein Konto mit der von einem Administrator konfigurierten Zugriffsrolle.`,"auth.confirmPassword":`Passwort bestätigen`,"auth.registrationComplete":`Konto erstellt. Du kannst dich jetzt anmelden.`,"auth.registrationVerificationSent":`Konto erstellt. Prüfe deine E-Mail und bestätige die Adresse, bevor du dich anmeldest.`,"auth.emailNotVerified":`Bestätige deine E-Mail-Adresse, bevor du dich anmeldest.`,"auth.resendVerification":`Bestätigungs-E-Mail erneut senden`,"auth.verificationResent":`Wenn dieses Konto noch bestätigt werden muss, wurde eine neue E-Mail gesendet.`,"auth.haveAccount":`Du hast bereits ein Konto? Anmelden`,"auth.needAccount":`Konto erstellen`,"auth.authenticationProviders":`Authentifizierungsanbieter`}),St=Object.freeze({"registration.eyebrow":`Access`,"registration.title":`Public Registration`,"registration.description":`Allow visitors to create YunCMS accounts and choose the role assigned to every new registration.`,"registration.defaultRole":`Registered user role`,"registration.chooseRole":`Choose a role`,"registration.roleHint":`Administrator and unauthenticated public roles are never eligible.`,"registration.roleMissing":`The previously selected role no longer exists. Choose another role before enabling registration.`,"registration.noRoles":`Create a normal non-administrator role before enabling public registration.`,"registration.allowPublic":`Allow public registration`,"registration.enabledHint":`When disabled, the public registration endpoint and sign-up form remain unavailable.`,"registration.requireEmailVerification":`Require email verification`,"registration.requireEmailVerificationHint":`When enabled, new public registrations must verify the emailed link before local sign-in. SMTP mail delivery must be configured.`,"registration.saved":`Public registration settings saved.`,"registration.loadFailed":`Public registration settings could not be loaded.`,"registration.saveFailed":`Public registration settings could not be saved.`,"auth.createAccount":`Create account`,"auth.createAccountDescription":`Create an account using the access role configured by an administrator.`,"auth.confirmPassword":`Confirm password`,"auth.registrationComplete":`Account created. You can now sign in.`,"auth.registrationVerificationSent":`Account created. Check your email and verify the address before signing in.`,"auth.emailNotVerified":`Verify your email address before signing in.`,"auth.resendVerification":`Resend verification email`,"auth.verificationResent":`If this account still needs verification, a new email has been sent.`,"auth.haveAccount":`Already have an account? Sign in`,"auth.needAccount":`Create an account`,"auth.authenticationProviders":`Authentication providers`}),Ct=Object.freeze({"registration.eyebrow":`Acceso`,"registration.title":`Registro público`,"registration.description":`Permite que los visitantes creen cuentas de YunCMS y elige el rol asignado a cada nuevo registro.`,"registration.defaultRole":`Rol de usuario registrado`,"registration.chooseRole":`Elegir un rol`,"registration.roleHint":`Los roles de administrador y público no autenticado nunca son elegibles.`,"registration.roleMissing":`El rol seleccionado anteriormente ya no existe. Elige otro rol antes de habilitar el registro.`,"registration.noRoles":`Crea un rol normal que no sea de administrador antes de habilitar el registro público.`,"registration.allowPublic":`Permitir registro público`,"registration.enabledHint":`Cuando está deshabilitado, el endpoint de registro público y el formulario de creación de cuenta no están disponibles.`,"registration.requireEmailVerification":`Requerir verificación de correo`,"registration.requireEmailVerificationHint":`Cuando está habilitado, los nuevos registros públicos deben verificar el enlace enviado por correo antes de iniciar sesión localmente. La entrega SMTP debe estar configurada.`,"registration.saved":`Ajustes de registro público guardados.`,"registration.loadFailed":`No se pudieron cargar los ajustes de registro público.`,"registration.saveFailed":`No se pudieron guardar los ajustes de registro público.`,"auth.createAccount":`Crear cuenta`,"auth.createAccountDescription":`Crea una cuenta usando el rol de acceso configurado por un administrador.`,"auth.confirmPassword":`Confirmar contraseña`,"auth.registrationComplete":`Cuenta creada. Ya puedes iniciar sesión.`,"auth.registrationVerificationSent":`Cuenta creada. Revisa tu correo y verifica la dirección antes de iniciar sesión.`,"auth.emailNotVerified":`Verifica tu dirección de correo antes de iniciar sesión.`,"auth.resendVerification":`Reenviar correo de verificación`,"auth.verificationResent":`Si esta cuenta todavía necesita verificación, se ha enviado un nuevo correo.`,"auth.haveAccount":`¿Ya tienes una cuenta? Inicia sesión`,"auth.needAccount":`Crear una cuenta`,"auth.authenticationProviders":`Proveedores de autenticación`}),wt=Object.freeze({"registration.eyebrow":`Accès`,"registration.title":`Inscription publique`,"registration.description":`Autorisez les visiteurs à créer des comptes YunCMS et choisissez le rôle attribué à chaque nouvelle inscription.`,"registration.defaultRole":`Rôle des utilisateurs inscrits`,"registration.chooseRole":`Choisir un rôle`,"registration.roleHint":`Les rôles administrateur et public non authentifié ne sont jamais éligibles.`,"registration.roleMissing":`Le rôle précédemment sélectionné n’existe plus. Choisissez un autre rôle avant d’activer l’inscription.`,"registration.noRoles":`Créez un rôle normal non administrateur avant d’activer l’inscription publique.`,"registration.allowPublic":`Autoriser l’inscription publique`,"registration.enabledHint":`Lorsqu’elle est désactivée, le point de terminaison d’inscription publique et le formulaire de création de compte restent indisponibles.`,"registration.requireEmailVerification":`Exiger la vérification de l’e-mail`,"registration.requireEmailVerificationHint":`Lorsqu’elle est activée, les nouvelles inscriptions publiques doivent vérifier le lien reçu par e-mail avant la connexion locale. L’envoi SMTP doit être configuré.`,"registration.saved":`Paramètres d’inscription publique enregistrés.`,"registration.loadFailed":`Impossible de charger les paramètres d’inscription publique.`,"registration.saveFailed":`Impossible d’enregistrer les paramètres d’inscription publique.`,"auth.createAccount":`Créer un compte`,"auth.createAccountDescription":`Créez un compte avec le rôle d’accès configuré par un administrateur.`,"auth.confirmPassword":`Confirmer le mot de passe`,"auth.registrationComplete":`Compte créé. Vous pouvez maintenant vous connecter.`,"auth.registrationVerificationSent":`Compte créé. Consultez votre e-mail et vérifiez l’adresse avant de vous connecter.`,"auth.emailNotVerified":`Vérifiez votre adresse e-mail avant de vous connecter.`,"auth.resendVerification":`Renvoyer l’e-mail de vérification`,"auth.verificationResent":`Si ce compte doit encore être vérifié, un nouvel e-mail a été envoyé.`,"auth.haveAccount":`Vous avez déjà un compte ? Connectez-vous`,"auth.needAccount":`Créer un compte`,"auth.authenticationProviders":`Fournisseurs d’authentification`}),Tt=Object.freeze({"registration.eyebrow":`アクセス`,"registration.title":`公開登録`,"registration.description":`訪問者がYunCMSアカウントを作成できるようにし、新規登録に割り当てるロールを選択します。`,"registration.defaultRole":`登録ユーザーロール`,"registration.chooseRole":`ロールを選択`,"registration.roleHint":`管理者ロールと未認証の公開ロールは選択できません。`,"registration.roleMissing":`以前選択したロールは存在しません。登録を有効にする前に別のロールを選択してください。`,"registration.noRoles":`公開登録を有効にする前に、通常の非管理者ロールを作成してください。`,"registration.allowPublic":`公開登録を許可`,"registration.enabledHint":`無効の場合、公開登録エンドポイントとサインアップフォームは利用できません。`,"registration.requireEmailVerification":`メール確認を必須にする`,"registration.requireEmailVerificationHint":`有効にすると、新しい公開登録ユーザーはローカルサインイン前にメールで届くリンクを確認する必要があります。SMTPメール配信の設定が必要です。`,"registration.saved":`公開登録設定を保存しました。`,"registration.loadFailed":`公開登録設定を読み込めませんでした。`,"registration.saveFailed":`公開登録設定を保存できませんでした。`,"auth.createAccount":`アカウントを作成`,"auth.createAccountDescription":`管理者が設定したアクセスロールを使用してアカウントを作成します。`,"auth.confirmPassword":`パスワードを確認`,"auth.registrationComplete":`アカウントを作成しました。サインインできます。`,"auth.registrationVerificationSent":`アカウントを作成しました。メールを確認し、サインイン前にアドレスを認証してください。`,"auth.emailNotVerified":`サインイン前にメールアドレスを確認してください。`,"auth.resendVerification":`確認メールを再送`,"auth.verificationResent":`このアカウントにまだ確認が必要な場合、新しいメールを送信しました。`,"auth.haveAccount":`すでにアカウントをお持ちですか? サインイン`,"auth.needAccount":`アカウントを作成`,"auth.authenticationProviders":`認証プロバイダー`}),Et=Object.freeze({"registration.eyebrow":`Acesso`,"registration.title":`Cadastro público`,"registration.description":`Permita que visitantes criem contas YunCMS e escolha a função atribuída a cada novo cadastro.`,"registration.defaultRole":`Função do usuário cadastrado`,"registration.chooseRole":`Escolher função`,"registration.roleHint":`Funções de administrador e pública não autenticada nunca são elegíveis.`,"registration.roleMissing":`A função selecionada anteriormente não existe mais. Escolha outra antes de habilitar o cadastro.`,"registration.noRoles":`Crie uma função normal que não seja de administrador antes de habilitar o cadastro público.`,"registration.allowPublic":`Permitir cadastro público`,"registration.enabledHint":`Quando desabilitado, o endpoint de cadastro público e o formulário de inscrição permanecem indisponíveis.`,"registration.requireEmailVerification":`Exigir verificação de e-mail`,"registration.requireEmailVerificationHint":`Quando habilitado, novos cadastros públicos devem verificar o link enviado por e-mail antes de entrar localmente. O envio SMTP precisa estar configurado.`,"registration.saved":`Configurações de cadastro público salvas.`,"registration.loadFailed":`As configurações de cadastro público não puderam ser carregadas.`,"registration.saveFailed":`As configurações de cadastro público não puderam ser salvas.`,"auth.createAccount":`Criar conta`,"auth.createAccountDescription":`Crie uma conta usando a função de acesso configurada por um administrador.`,"auth.confirmPassword":`Confirmar senha`,"auth.registrationComplete":`Conta criada. Agora você pode entrar.`,"auth.registrationVerificationSent":`Conta criada. Verifique seu e-mail e confirme o endereço antes de entrar.`,"auth.emailNotVerified":`Verifique seu endereço de e-mail antes de entrar.`,"auth.resendVerification":`Reenviar e-mail de verificação`,"auth.verificationResent":`Se esta conta ainda precisar de verificação, um novo e-mail foi enviado.`,"auth.haveAccount":`Já tem uma conta? Entrar`,"auth.needAccount":`Criar uma conta`,"auth.authenticationProviders":`Provedores de autenticação`}),Dt=Object.freeze({"registration.eyebrow":`Erişim`,"registration.title":`Public Kayıt`,"registration.description":`Ziyaretçilerin YunCMS hesabı oluşturmasına izin verin ve her yeni kayda atanacak rolü seçin.`,"registration.defaultRole":`Kayıtlı kullanıcı rolü`,"registration.chooseRole":`Bir rol seçin`,"registration.roleHint":`Yönetici rolü ve oturum açmamış Public rolü hiçbir zaman seçilemez.`,"registration.roleMissing":`Daha önce seçilen rol artık mevcut değil. Kaydı açmadan önce başka bir rol seçin.`,"registration.noRoles":`Public kaydı açmadan önce yönetici olmayan normal bir rol oluşturun.`,"registration.allowPublic":`Public kayda izin ver`,"registration.enabledHint":`Kapalıyken public kayıt endpointi ve hesap oluşturma formu kullanılamaz.`,"registration.requireEmailVerification":`E-posta doğrulaması zorunlu`,"registration.requireEmailVerificationHint":`Açıkken yeni public kayıtlar giriş yapmadan önce e-postayla gelen bağlantıyı doğrulamalıdır. SMTP mail gönderimi yapılandırılmış olmalıdır.`,"registration.saved":`Public kayıt ayarları kaydedildi.`,"registration.loadFailed":`Public kayıt ayarları yüklenemedi.`,"registration.saveFailed":`Public kayıt ayarları kaydedilemedi.`,"auth.createAccount":`Hesap oluştur`,"auth.createAccountDescription":`Yönetici tarafından yapılandırılan erişim rolüyle yeni bir hesap oluşturun.`,"auth.confirmPassword":`Şifreyi doğrula`,"auth.registrationComplete":`Hesap oluşturuldu. Şimdi giriş yapabilirsiniz.`,"auth.registrationVerificationSent":`Hesap oluşturuldu. Giriş yapmadan önce e-postanızı kontrol edip adresinizi doğrulayın.`,"auth.emailNotVerified":`Giriş yapmadan önce e-posta adresinizi doğrulayın.`,"auth.resendVerification":`Doğrulama e-postasını yeniden gönder`,"auth.verificationResent":`Bu hesabın hâlâ doğrulanması gerekiyorsa yeni bir e-posta gönderildi.`,"auth.haveAccount":`Zaten hesabınız var mı? Giriş yapın`,"auth.needAccount":`Hesap oluştur`,"auth.authenticationProviders":`Kimlik doğrulama sağlayıcıları`}),Ot=Object.freeze({"registration.eyebrow":`访问`,"registration.title":`公开注册`,"registration.description":`允许访客创建 YunCMS 账户,并选择分配给每个新注册用户的角色。`,"registration.defaultRole":`注册用户角色`,"registration.chooseRole":`选择角色`,"registration.roleHint":`管理员角色和未认证的公开角色永远不可选。`,"registration.roleMissing":`之前选择的角色已不存在。启用注册前请选择其他角色。`,"registration.noRoles":`启用公开注册前,请先创建普通的非管理员角色。`,"registration.allowPublic":`允许公开注册`,"registration.enabledHint":`禁用时,公开注册端点和注册表单不可用。`,"registration.requireEmailVerification":`要求邮箱验证`,"registration.requireEmailVerificationHint":`启用后,新公开注册用户必须先验证邮件中的链接,才能本地登录。必须配置 SMTP 邮件发送。`,"registration.saved":`公开注册设置已保存。`,"registration.loadFailed":`无法加载公开注册设置。`,"registration.saveFailed":`无法保存公开注册设置。`,"auth.createAccount":`创建账户`,"auth.createAccountDescription":`使用管理员配置的访问角色创建账户。`,"auth.confirmPassword":`确认密码`,"auth.registrationComplete":`账户已创建。现在可以登录。`,"auth.registrationVerificationSent":`账户已创建。请检查邮箱并验证地址后再登录。`,"auth.emailNotVerified":`登录前请验证邮箱地址。`,"auth.resendVerification":`重新发送验证邮件`,"auth.verificationResent":`如果此账户仍需验证,新的邮件已发送。`,"auth.haveAccount":`已有账户?登录`,"auth.needAccount":`创建账户`,"auth.authenticationProviders":`身份验证提供商`}),kt=Object.freeze({"studio.commandPalette":`Befehlspalette`,"studio.commandPlaceholder":`Navigation und Aktionen durchsuchen…`,"studio.commandNoResults":`Keine passenden Befehle`,"studio.commandShortcut":`Befehlspalette öffnen`,"studio.schemaGraph":`Schema-Diagramm`,"studio.schemaGraphDescription":`Erkunde Collection-Beziehungen, ohne das Schema zu verändern.`,"studio.schemaGraphShowSystem":`System-Collections anzeigen`,"studio.schemaGraphEmpty":`Erstelle eine Collection, um das Schema abzubilden.`,"studio.schemaGraphSystem":`System`,"studio.schemaGraphProject":`Projekt`,"studio.schemaGraphHidden":`Ausgeblendet`,"studio.schemaGraphVisible":`Sichtbar`,"studio.schemaGraphRelations":`Beziehungen`,"studio.schemaGraphVisibility":`Sichtbarkeit`,"studio.schemaGraphKind":`Collection-Typ`,"studio.schemaGraphOpenCollection":`Collection öffnen`,"studio.schemaGraphInspectorTitle":`Collection auswählen`,"studio.schemaGraphInspectorHint":`Wähle einen Knoten aus, um seine Verbindungen und Collection-Details zu prüfen.`,"studio.inspectorClose":`Inspektor schließen`,"content.quickEdit":`Schnellbearbeitung`,"content.openFullEditor":`Vollständigen Editor öffnen`,"content.selectedCount":`{count} ausgewählt`,"content.selectPage":`Aktuelle Seite auswählen`,"content.selectRecord":`Datensatz {id} auswählen`,"content.bulkDelete":`Ausgewählte löschen`,"content.bulkDeleteTitle":`Ausgewählte Datensätze löschen?`,"content.bulkDeleteDescription":`{count} ausgewählte Datensätze werden dauerhaft aus {collection} gelöscht.`,"content.bulkDeleteSuccess":`{count} Datensätze gelöscht.`,"content.bulkDeletePartial":`{failed} von {count} Datensätzen konnten nicht gelöscht werden.`,"content.relationSearch":`Verknüpfte Datensätze suchen…`,"content.relationEmpty":`Keine passenden verknüpften Datensätze`,"content.viewOptions":`Ansicht`,"content.viewOptionsTitle":`Tabellenansichtsoptionen`,"content.columns":`Spalten`,"content.density":`Dichte`,"content.densityCompact":`Kompakt`,"content.densityComfortable":`Komfortabel`,"content.densityRelaxed":`Locker`,"roles.visualRules":`Visuelle Regeln`,"roles.advancedJson":`Erweitertes JSON`,"roles.visualRuleDescription":`Erstelle einfache AND-Regeln visuell. Erweitertes JSON bleibt für komplexe Berechtigungslogik verfügbar.`,"roles.complexRuleNotice":`Diese Berechtigung enthält erweitertes JSON, das im visuellen Editor nicht sicher dargestellt werden kann. Das JSON bleibt unverändert erhalten.`,"roles.invalidRuleJson":`Das aktuelle JSON ist ungültig. Korrigiere es in Erweitertes JSON, bevor du zu visuellen Regeln wechselst.`,"roles.addRule":`Regel hinzufügen`,"roles.removeRule":`Regel entfernen`,"roles.noRestrictions":`Keine Zeilenbeschränkungen.`,"roles.ruleField":`Feld`,"roles.ruleCondition":`Bedingung`,"roles.ruleValue":`Wert`,"roles.ruleNoValue":`Kein Wert erforderlich`,"roles.dynamicValue":`Dynamischer Wert`,"roles.dynamicValueHint":`Wird bei Ausführung der Regel aus der authentifizierten Anfrage aufgelöst.`,"roles.staticValue":`Statisch`,"files.categories":`Bibliothek`,"files.recent":`Letzte 7 Tage`,"files.uploadQueue":`Upload-Warteschlange`,"files.queueQueued":`In Warteschlange`,"files.queueUploading":`Wird hochgeladen`,"files.queueDone":`Fertig`,"files.queueFailed":`Fehlgeschlagen`,"files.queueRemove":`Aus Warteschlange entfernen`,"files.selectedFiles":`{count} Dateien ausgewählt`,"files.uploadSelected":`Dateien hochladen`,"files.retryFailed":`Fehlgeschlagene erneut versuchen`,"files.uploadedCount":`{count} Dateien hochgeladen.`,"files.uploadPartial":`{failed} von {count} Dateien konnten nicht hochgeladen werden. Fehlgeschlagene Dateien bleiben in der Warteschlange.`,"dataModel.relationPreview":`Beziehungsvorschau`,"dataModel.relationResult":`Ergebnis`,"dataModel.relationMany":`Viele`,"dataModel.relationOne":`Eins`,"dataModel.relationCollectionRole":`Collection`,"dataModel.relationRelated":`Verknüpft`,"dataModel.relationJunctionPending":`Verknüpfung`,"dataModel.relationFieldPending":`Feld`}),At=Object.freeze({"studio.commandPalette":`Command palette`,"studio.commandPlaceholder":`Search navigation and actions…`,"studio.commandNoResults":`No matching commands`,"studio.commandShortcut":`Open command palette`,"studio.schemaGraph":`Schema graph`,"studio.schemaGraphDescription":`Explore collection relationships without changing the schema.`,"studio.schemaGraphShowSystem":`Show system collections`,"studio.schemaGraphEmpty":`Create a collection to start mapping the schema.`,"studio.schemaGraphSystem":`System`,"studio.schemaGraphProject":`Project`,"studio.schemaGraphHidden":`Hidden`,"studio.schemaGraphVisible":`Visible`,"studio.schemaGraphRelations":`Relations`,"studio.schemaGraphVisibility":`Visibility`,"studio.schemaGraphKind":`Collection type`,"studio.schemaGraphOpenCollection":`Open collection`,"studio.schemaGraphInspectorTitle":`Select a collection`,"studio.schemaGraphInspectorHint":`Choose a node to inspect its connections and collection details.`,"studio.inspectorClose":`Close inspector`,"content.quickEdit":`Quick edit`,"content.openFullEditor":`Open full editor`,"content.selectedCount":`{count} selected`,"content.selectPage":`Select current page`,"content.selectRecord":`Select record {id}`,"content.bulkDelete":`Delete selected`,"content.bulkDeleteTitle":`Delete selected records?`,"content.bulkDeleteDescription":`{count} selected records will be permanently deleted from {collection}.`,"content.bulkDeleteSuccess":`{count} records deleted.`,"content.bulkDeletePartial":`{failed} of {count} records could not be deleted.`,"content.relationSearch":`Search related records…`,"content.relationEmpty":`No matching related records`,"content.viewOptions":`View`,"content.viewOptionsTitle":`Table view options`,"content.columns":`Columns`,"content.density":`Density`,"content.densityCompact":`Compact`,"content.densityComfortable":`Comfortable`,"content.densityRelaxed":`Relaxed`,"roles.visualRules":`Visual rules`,"roles.advancedJson":`Advanced JSON`,"roles.visualRuleDescription":`Build straightforward AND rules visually. Advanced JSON remains available for complex permission logic.`,"roles.complexRuleNotice":`This permission contains advanced JSON that cannot be safely represented by the visual editor. The JSON is preserved unchanged.`,"roles.invalidRuleJson":`The current JSON is invalid. Fix it in Advanced JSON before switching to visual rules.`,"roles.addRule":`Add rule`,"roles.removeRule":`Remove rule`,"roles.noRestrictions":`No row restrictions.`,"roles.ruleField":`Field`,"roles.ruleCondition":`Condition`,"roles.ruleValue":`Value`,"roles.ruleNoValue":`No value required`,"roles.dynamicValue":`Dynamic value`,"roles.dynamicValueHint":`Resolve from the authenticated request when the rule runs.`,"roles.staticValue":`Static`,"files.categories":`Library`,"files.recent":`Last 7 days`,"files.uploadQueue":`Upload queue`,"files.queueQueued":`Queued`,"files.queueUploading":`Uploading`,"files.queueDone":`Done`,"files.queueFailed":`Failed`,"files.queueRemove":`Remove from queue`,"files.selectedFiles":`{count} files selected`,"files.uploadSelected":`Upload files`,"files.retryFailed":`Retry failed`,"files.uploadedCount":`{count} files uploaded.`,"files.uploadPartial":`{failed} of {count} files could not be uploaded. Failed files remain in the queue.`,"dataModel.relationPreview":`Relation preview`,"dataModel.relationResult":`Result`,"dataModel.relationMany":`Many`,"dataModel.relationOne":`One`,"dataModel.relationCollectionRole":`Collection`,"dataModel.relationRelated":`Related`,"dataModel.relationJunctionPending":`junction`,"dataModel.relationFieldPending":`field`}),jt=Object.freeze({"studio.commandPalette":`Paleta de comandos`,"studio.commandPlaceholder":`Buscar navegación y acciones…`,"studio.commandNoResults":`No hay comandos coincidentes`,"studio.commandShortcut":`Abrir paleta de comandos`,"studio.schemaGraph":`Gráfico del esquema`,"studio.schemaGraphDescription":`Explora las relaciones entre colecciones sin modificar el esquema.`,"studio.schemaGraphShowSystem":`Mostrar colecciones del sistema`,"studio.schemaGraphEmpty":`Crea una colección para empezar a mapear el esquema.`,"studio.schemaGraphSystem":`Sistema`,"studio.schemaGraphProject":`Proyecto`,"studio.schemaGraphHidden":`Oculta`,"studio.schemaGraphVisible":`Visible`,"studio.schemaGraphRelations":`Relaciones`,"studio.schemaGraphVisibility":`Visibilidad`,"studio.schemaGraphKind":`Tipo de colección`,"studio.schemaGraphOpenCollection":`Abrir colección`,"studio.schemaGraphInspectorTitle":`Selecciona una colección`,"studio.schemaGraphInspectorHint":`Elige un nodo para inspeccionar sus conexiones y los detalles de la colección.`,"studio.inspectorClose":`Cerrar inspector`,"content.quickEdit":`Edición rápida`,"content.openFullEditor":`Abrir editor completo`,"content.selectedCount":`{count} seleccionados`,"content.selectPage":`Seleccionar página actual`,"content.selectRecord":`Seleccionar registro {id}`,"content.bulkDelete":`Eliminar seleccionados`,"content.bulkDeleteTitle":`¿Eliminar registros seleccionados?`,"content.bulkDeleteDescription":`{count} registros seleccionados se eliminarán permanentemente de {collection}.`,"content.bulkDeleteSuccess":`{count} registros eliminados.`,"content.bulkDeletePartial":`No se pudieron eliminar {failed} de {count} registros.`,"content.relationSearch":`Buscar registros relacionados…`,"content.relationEmpty":`No hay registros relacionados coincidentes`,"content.viewOptions":`Vista`,"content.viewOptionsTitle":`Opciones de vista de tabla`,"content.columns":`Columnas`,"content.density":`Densidad`,"content.densityCompact":`Compacta`,"content.densityComfortable":`Cómoda`,"content.densityRelaxed":`Amplia`,"roles.visualRules":`Reglas visuales`,"roles.advancedJson":`JSON avanzado`,"roles.visualRuleDescription":`Crea visualmente reglas AND sencillas. El JSON avanzado sigue disponible para lógica de permisos compleja.`,"roles.complexRuleNotice":`Este permiso contiene JSON avanzado que no puede representarse de forma segura con el editor visual. El JSON se conserva sin cambios.`,"roles.invalidRuleJson":`El JSON actual no es válido. Corrígelo en JSON avanzado antes de cambiar a reglas visuales.`,"roles.addRule":`Añadir regla`,"roles.removeRule":`Eliminar regla`,"roles.noRestrictions":`Sin restricciones de filas.`,"roles.ruleField":`Campo`,"roles.ruleCondition":`Condición`,"roles.ruleValue":`Valor`,"roles.ruleNoValue":`No se requiere valor`,"roles.dynamicValue":`Valor dinámico`,"roles.dynamicValueHint":`Se resuelve desde la solicitud autenticada al ejecutar la regla.`,"roles.staticValue":`Estático`,"files.categories":`Biblioteca`,"files.recent":`Últimos 7 días`,"files.uploadQueue":`Cola de subida`,"files.queueQueued":`En cola`,"files.queueUploading":`Subiendo`,"files.queueDone":`Completado`,"files.queueFailed":`Falló`,"files.queueRemove":`Quitar de la cola`,"files.selectedFiles":`{count} archivos seleccionados`,"files.uploadSelected":`Subir archivos`,"files.retryFailed":`Reintentar fallidos`,"files.uploadedCount":`{count} archivos subidos.`,"files.uploadPartial":`No se pudieron subir {failed} de {count} archivos. Los archivos fallidos permanecen en la cola.`,"dataModel.relationPreview":`Vista previa de la relación`,"dataModel.relationResult":`Resultado`,"dataModel.relationMany":`Muchos`,"dataModel.relationOne":`Uno`,"dataModel.relationCollectionRole":`Colección`,"dataModel.relationRelated":`Relacionado`,"dataModel.relationJunctionPending":`unión`,"dataModel.relationFieldPending":`campo`}),Mt=Object.freeze({"studio.commandPalette":`Palette de commandes`,"studio.commandPlaceholder":`Rechercher dans la navigation et les actions…`,"studio.commandNoResults":`Aucune commande correspondante`,"studio.commandShortcut":`Ouvrir la palette de commandes`,"studio.schemaGraph":`Graphe du schéma`,"studio.schemaGraphDescription":`Explorez les relations entre collections sans modifier le schéma.`,"studio.schemaGraphShowSystem":`Afficher les collections système`,"studio.schemaGraphEmpty":`Créez une collection pour commencer à cartographier le schéma.`,"studio.schemaGraphSystem":`Système`,"studio.schemaGraphProject":`Projet`,"studio.schemaGraphHidden":`Masquée`,"studio.schemaGraphVisible":`Visible`,"studio.schemaGraphRelations":`Relations`,"studio.schemaGraphVisibility":`Visibilité`,"studio.schemaGraphKind":`Type de collection`,"studio.schemaGraphOpenCollection":`Ouvrir la collection`,"studio.schemaGraphInspectorTitle":`Sélectionner une collection`,"studio.schemaGraphInspectorHint":`Choisissez un nœud pour examiner ses connexions et les détails de la collection.`,"studio.inspectorClose":`Fermer l’inspecteur`,"content.quickEdit":`Modification rapide`,"content.openFullEditor":`Ouvrir l’éditeur complet`,"content.selectedCount":`{count} sélectionnés`,"content.selectPage":`Sélectionner la page actuelle`,"content.selectRecord":`Sélectionner l’enregistrement {id}`,"content.bulkDelete":`Supprimer la sélection`,"content.bulkDeleteTitle":`Supprimer les enregistrements sélectionnés ?`,"content.bulkDeleteDescription":`{count} enregistrements sélectionnés seront supprimés définitivement de {collection}.`,"content.bulkDeleteSuccess":`{count} enregistrements supprimés.`,"content.bulkDeletePartial":`{failed} enregistrements sur {count} n’ont pas pu être supprimés.`,"content.relationSearch":`Rechercher des enregistrements liés…`,"content.relationEmpty":`Aucun enregistrement lié correspondant`,"content.viewOptions":`Vue`,"content.viewOptionsTitle":`Options de vue du tableau`,"content.columns":`Colonnes`,"content.density":`Densité`,"content.densityCompact":`Compacte`,"content.densityComfortable":`Confortable`,"content.densityRelaxed":`Aérée`,"roles.visualRules":`Règles visuelles`,"roles.advancedJson":`JSON avancé`,"roles.visualRuleDescription":`Construisez visuellement des règles AND simples. Le JSON avancé reste disponible pour une logique de permission complexe.`,"roles.complexRuleNotice":`Cette permission contient un JSON avancé qui ne peut pas être représenté en toute sécurité par l’éditeur visuel. Le JSON est conservé sans modification.`,"roles.invalidRuleJson":`Le JSON actuel est invalide. Corrigez-le dans JSON avancé avant de passer aux règles visuelles.`,"roles.addRule":`Ajouter une règle`,"roles.removeRule":`Supprimer la règle`,"roles.noRestrictions":`Aucune restriction de lignes.`,"roles.ruleField":`Champ`,"roles.ruleCondition":`Condition`,"roles.ruleValue":`Valeur`,"roles.ruleNoValue":`Aucune valeur requise`,"roles.dynamicValue":`Valeur dynamique`,"roles.dynamicValueHint":`Résolue depuis la requête authentifiée lorsque la règle s’exécute.`,"roles.staticValue":`Statique`,"files.categories":`Bibliothèque`,"files.recent":`7 derniers jours`,"files.uploadQueue":`File de téléversement`,"files.queueQueued":`En attente`,"files.queueUploading":`Téléversement`,"files.queueDone":`Terminé`,"files.queueFailed":`Échec`,"files.queueRemove":`Retirer de la file`,"files.selectedFiles":`{count} fichiers sélectionnés`,"files.uploadSelected":`Téléverser les fichiers`,"files.retryFailed":`Réessayer les échecs`,"files.uploadedCount":`{count} fichiers téléversés.`,"files.uploadPartial":`{failed} fichiers sur {count} n’ont pas pu être téléversés. Les fichiers en échec restent dans la file.`,"dataModel.relationPreview":`Aperçu de la relation`,"dataModel.relationResult":`Résultat`,"dataModel.relationMany":`Plusieurs`,"dataModel.relationOne":`Un`,"dataModel.relationCollectionRole":`Collection`,"dataModel.relationRelated":`Lié`,"dataModel.relationJunctionPending":`jonction`,"dataModel.relationFieldPending":`champ`}),Nt=Object.freeze({"studio.commandPalette":`コマンドパレット`,"studio.commandPlaceholder":`ナビゲーションと操作を検索…`,"studio.commandNoResults":`一致するコマンドなし`,"studio.commandShortcut":`コマンドパレットを開く`,"studio.schemaGraph":`スキーマグラフ`,"studio.schemaGraphDescription":`スキーマを変更せずにコレクション間のリレーションを確認します。`,"studio.schemaGraphShowSystem":`システムコレクションを表示`,"studio.schemaGraphEmpty":`コレクションを作成してスキーマのマッピングを始めてください。`,"studio.schemaGraphSystem":`システム`,"studio.schemaGraphProject":`プロジェクト`,"studio.schemaGraphHidden":`非表示`,"studio.schemaGraphVisible":`表示`,"studio.schemaGraphRelations":`リレーション`,"studio.schemaGraphVisibility":`表示設定`,"studio.schemaGraphKind":`コレクション種類`,"studio.schemaGraphOpenCollection":`コレクションを開く`,"studio.schemaGraphInspectorTitle":`コレクションを選択`,"studio.schemaGraphInspectorHint":`ノードを選択して接続とコレクション詳細を確認します。`,"studio.inspectorClose":`インスペクターを閉じる`,"content.quickEdit":`クイック編集`,"content.openFullEditor":`フルエディターを開く`,"content.selectedCount":`{count} 件選択`,"content.selectPage":`現在のページを選択`,"content.selectRecord":`レコード {id} を選択`,"content.bulkDelete":`選択項目を削除`,"content.bulkDeleteTitle":`選択したレコードを削除しますか?`,"content.bulkDeleteDescription":`{collection} から選択した {count} 件のレコードを完全に削除します。`,"content.bulkDeleteSuccess":`{count} 件のレコードを削除しました。`,"content.bulkDeletePartial":`{count} 件中 {failed} 件のレコードを削除できませんでした。`,"content.relationSearch":`関連レコードを検索…`,"content.relationEmpty":`一致する関連レコードなし`,"content.viewOptions":`表示`,"content.viewOptionsTitle":`テーブル表示オプション`,"content.columns":`列`,"content.density":`密度`,"content.densityCompact":`コンパクト`,"content.densityComfortable":`標準`,"content.densityRelaxed":`ゆったり`,"roles.visualRules":`ビジュアルルール`,"roles.advancedJson":`詳細JSON`,"roles.visualRuleDescription":`単純なANDルールを視覚的に作成します。複雑な権限ロジックには詳細JSONも利用できます。`,"roles.complexRuleNotice":`この権限にはビジュアルエディターで安全に表現できない詳細JSONが含まれています。JSONは変更せず保持されます。`,"roles.invalidRuleJson":`現在のJSONは無効です。ビジュアルルールへ切り替える前に詳細JSONで修正してください。`,"roles.addRule":`ルールを追加`,"roles.removeRule":`ルールを削除`,"roles.noRestrictions":`行制限なし。`,"roles.ruleField":`フィールド`,"roles.ruleCondition":`条件`,"roles.ruleValue":`値`,"roles.ruleNoValue":`値は不要`,"roles.dynamicValue":`動的値`,"roles.dynamicValueHint":`ルール実行時に認証済みリクエストから解決します。`,"roles.staticValue":`固定値`,"files.categories":`ライブラリ`,"files.recent":`過去7日間`,"files.uploadQueue":`アップロードキュー`,"files.queueQueued":`待機中`,"files.queueUploading":`アップロード中`,"files.queueDone":`完了`,"files.queueFailed":`失敗`,"files.queueRemove":`キューから削除`,"files.selectedFiles":`{count} ファイル選択`,"files.uploadSelected":`ファイルをアップロード`,"files.retryFailed":`失敗分を再試行`,"files.uploadedCount":`{count} ファイルをアップロードしました。`,"files.uploadPartial":`{count} ファイル中 {failed} ファイルをアップロードできませんでした。失敗したファイルはキューに残ります。`,"dataModel.relationPreview":`リレーションプレビュー`,"dataModel.relationResult":`結果`,"dataModel.relationMany":`多`,"dataModel.relationOne":`一`,"dataModel.relationCollectionRole":`コレクション`,"dataModel.relationRelated":`関連`,"dataModel.relationJunctionPending":`中間`,"dataModel.relationFieldPending":`フィールド`}),Pt=Object.freeze({"studio.commandPalette":`Paleta de comandos`,"studio.commandPlaceholder":`Buscar navegação e ações…`,"studio.commandNoResults":`Nenhum comando correspondente`,"studio.commandShortcut":`Abrir paleta de comandos`,"studio.schemaGraph":`Grafo do esquema`,"studio.schemaGraphDescription":`Explore relações entre coleções sem alterar o esquema.`,"studio.schemaGraphShowSystem":`Mostrar coleções do sistema`,"studio.schemaGraphEmpty":`Crie uma coleção para começar a mapear o esquema.`,"studio.schemaGraphSystem":`Sistema`,"studio.schemaGraphProject":`Projeto`,"studio.schemaGraphHidden":`Oculto`,"studio.schemaGraphVisible":`Visível`,"studio.schemaGraphRelations":`Relações`,"studio.schemaGraphVisibility":`Visibilidade`,"studio.schemaGraphKind":`Tipo de coleção`,"studio.schemaGraphOpenCollection":`Abrir coleção`,"studio.schemaGraphInspectorTitle":`Selecione uma coleção`,"studio.schemaGraphInspectorHint":`Escolha um nó para inspecionar suas conexões e os detalhes da coleção.`,"studio.inspectorClose":`Fechar inspetor`,"content.quickEdit":`Edição rápida`,"content.openFullEditor":`Abrir editor completo`,"content.selectedCount":`{count} selecionados`,"content.selectPage":`Selecionar página atual`,"content.selectRecord":`Selecionar registro {id}`,"content.bulkDelete":`Excluir selecionados`,"content.bulkDeleteTitle":`Excluir registros selecionados?`,"content.bulkDeleteDescription":`{count} registros selecionados serão excluídos permanentemente de {collection}.`,"content.bulkDeleteSuccess":`{count} registros excluídos.`,"content.bulkDeletePartial":`{failed} de {count} registros não puderam ser excluídos.`,"content.relationSearch":`Buscar registros relacionados…`,"content.relationEmpty":`Nenhum registro relacionado correspondente`,"content.viewOptions":`Visualização`,"content.viewOptionsTitle":`Opções da visualização em tabela`,"content.columns":`Colunas`,"content.density":`Densidade`,"content.densityCompact":`Compacta`,"content.densityComfortable":`Confortável`,"content.densityRelaxed":`Espaçosa`,"roles.visualRules":`Regras visuais`,"roles.advancedJson":`JSON avançado`,"roles.visualRuleDescription":`Crie regras AND simples visualmente. O JSON avançado continua disponível para lógicas de permissão complexas.`,"roles.complexRuleNotice":`Esta permissão contém JSON avançado que não pode ser representado com segurança pelo editor visual. O JSON será preservado sem alterações.`,"roles.invalidRuleJson":`O JSON atual é inválido. Corrija-o em JSON avançado antes de mudar para regras visuais.`,"roles.addRule":`Adicionar regra`,"roles.removeRule":`Remover regra`,"roles.noRestrictions":`Sem restrições de linha.`,"roles.ruleField":`Campo`,"roles.ruleCondition":`Condição`,"roles.ruleValue":`Valor`,"roles.ruleNoValue":`Nenhum valor necessário`,"roles.dynamicValue":`Valor dinâmico`,"roles.dynamicValueHint":`Resolvido a partir da solicitação autenticada quando a regra é executada.`,"roles.staticValue":`Estático`,"files.categories":`Biblioteca`,"files.recent":`Últimos 7 dias`,"files.uploadQueue":`Fila de envio`,"files.queueQueued":`Na fila`,"files.queueUploading":`Enviando`,"files.queueDone":`Concluído`,"files.queueFailed":`Falhou`,"files.queueRemove":`Remover da fila`,"files.selectedFiles":`{count} arquivos selecionados`,"files.uploadSelected":`Enviar arquivos`,"files.retryFailed":`Tentar novamente os que falharam`,"files.uploadedCount":`{count} arquivos enviados.`,"files.uploadPartial":`{failed} de {count} arquivos não puderam ser enviados. Os arquivos com falha permanecem na fila.`,"dataModel.relationPreview":`Pré-visualização da relação`,"dataModel.relationResult":`Resultado`,"dataModel.relationMany":`Muitos`,"dataModel.relationOne":`Um`,"dataModel.relationCollectionRole":`Coleção`,"dataModel.relationRelated":`Relacionado`,"dataModel.relationJunctionPending":`junção`,"dataModel.relationFieldPending":`campo`}),Ft=Object.freeze({"studio.commandPalette":`Komut paleti`,"studio.commandPlaceholder":`Gezinme ve işlemlerde ara…`,"studio.commandNoResults":`Eşleşen komut yok`,"studio.commandShortcut":`Komut paletini aç`,"studio.schemaGraph":`Şema grafiği`,"studio.schemaGraphDescription":`Şemayı değiştirmeden collection ilişkilerini inceleyin.`,"studio.schemaGraphShowSystem":`Sistem collectionlarını göster`,"studio.schemaGraphEmpty":`Şemayı haritalamaya başlamak için bir collection oluşturun.`,"studio.schemaGraphSystem":`Sistem`,"studio.schemaGraphProject":`Proje`,"studio.schemaGraphHidden":`Gizli`,"studio.schemaGraphVisible":`Görünür`,"studio.schemaGraphRelations":`İlişkiler`,"studio.schemaGraphVisibility":`Görünürlük`,"studio.schemaGraphKind":`Collection türü`,"studio.schemaGraphOpenCollection":`Collectionı aç`,"studio.schemaGraphInspectorTitle":`Bir collection seçin`,"studio.schemaGraphInspectorHint":`Bağlantılarını ve ayrıntılarını görmek için bir düğüm seçin.`,"studio.inspectorClose":`Denetçiyi kapat`,"content.quickEdit":`Hızlı düzenle`,"content.openFullEditor":`Tam düzenleyiciyi aç`,"content.selectedCount":`{count} seçili`,"content.selectPage":`Geçerli sayfayı seç`,"content.selectRecord":`{id} kaydını seç`,"content.bulkDelete":`Seçilenleri sil`,"content.bulkDeleteTitle":`Seçili kayıtlar silinsin mi?`,"content.bulkDeleteDescription":`{collection} içindeki seçili {count} kayıt kalıcı olarak silinecek.`,"content.bulkDeleteSuccess":`{count} kayıt silindi.`,"content.bulkDeletePartial":`{count} kaydın {failed} tanesi silinemedi.`,"content.relationSearch":`İlişkili kayıtlarda ara…`,"content.relationEmpty":`Eşleşen ilişkili kayıt yok`,"content.viewOptions":`Görünüm`,"content.viewOptionsTitle":`Tablo görünüm seçenekleri`,"content.columns":`Kolonlar`,"content.density":`Yoğunluk`,"content.densityCompact":`Sıkı`,"content.densityComfortable":`Rahat`,"content.densityRelaxed":`Geniş`,"roles.visualRules":`Görsel kurallar`,"roles.advancedJson":`Gelişmiş JSON`,"roles.visualRuleDescription":`Basit AND kurallarını görsel olarak oluşturun. Karmaşık izin mantığı için Gelişmiş JSON her zaman kullanılabilir.`,"roles.complexRuleNotice":`Bu izin, görsel editörle güvenli biçimde temsil edilemeyen gelişmiş JSON içeriyor. JSON değiştirilmeden korunur.`,"roles.invalidRuleJson":`Mevcut JSON geçersiz. Görsel kurallara dönmeden önce Gelişmiş JSON içinde düzeltin.`,"roles.addRule":`Kural ekle`,"roles.removeRule":`Kuralı kaldır`,"roles.noRestrictions":`Satır kısıtlaması yok.`,"roles.ruleField":`Alan`,"roles.ruleCondition":`Koşul`,"roles.ruleValue":`Değer`,"roles.ruleNoValue":`Değer gerekmiyor`,"roles.dynamicValue":`Dinamik değer`,"roles.dynamicValueHint":`Kural çalışırken kimliği doğrulanmış istekten çözümle.`,"roles.staticValue":`Sabit`,"files.categories":`Kütüphane`,"files.recent":`Son 7 gün`,"files.uploadQueue":`Yükleme kuyruğu`,"files.queueQueued":`Sırada`,"files.queueUploading":`Yükleniyor`,"files.queueDone":`Tamamlandı`,"files.queueFailed":`Başarısız`,"files.queueRemove":`Kuyruktan kaldır`,"files.selectedFiles":`{count} dosya seçildi`,"files.uploadSelected":`Dosyaları yükle`,"files.retryFailed":`Başarısızları yeniden dene`,"files.uploadedCount":`{count} dosya yüklendi.`,"files.uploadPartial":`{count} dosyanın {failed} tanesi yüklenemedi. Başarısız dosyalar kuyrukta bırakıldı.`,"dataModel.relationPreview":`İlişki önizlemesi`,"dataModel.relationResult":`Sonuç`,"dataModel.relationMany":`Çok`,"dataModel.relationOne":`Bir`,"dataModel.relationCollectionRole":`Collection`,"dataModel.relationRelated":`İlişkili`,"dataModel.relationJunctionPending":`junction`,"dataModel.relationFieldPending":`alan`}),It=Object.freeze({"studio.commandPalette":`命令面板`,"studio.commandPlaceholder":`搜索导航和操作…`,"studio.commandNoResults":`没有匹配的命令`,"studio.commandShortcut":`打开命令面板`,"studio.schemaGraph":`架构图`,"studio.schemaGraphDescription":`在不更改架构的情况下查看集合关系。`,"studio.schemaGraphShowSystem":`显示系统集合`,"studio.schemaGraphEmpty":`创建集合以开始映射架构。`,"studio.schemaGraphSystem":`系统`,"studio.schemaGraphProject":`项目`,"studio.schemaGraphHidden":`隐藏`,"studio.schemaGraphVisible":`可见`,"studio.schemaGraphRelations":`关系`,"studio.schemaGraphVisibility":`可见性`,"studio.schemaGraphKind":`集合类型`,"studio.schemaGraphOpenCollection":`打开集合`,"studio.schemaGraphInspectorTitle":`选择集合`,"studio.schemaGraphInspectorHint":`选择一个节点以查看其连接和集合详情。`,"studio.inspectorClose":`关闭检查器`,"content.quickEdit":`快速编辑`,"content.openFullEditor":`打开完整编辑器`,"content.selectedCount":`已选择 {count} 条`,"content.selectPage":`选择当前页`,"content.selectRecord":`选择记录 {id}`,"content.bulkDelete":`删除所选项`,"content.bulkDeleteTitle":`删除所选记录?`,"content.bulkDeleteDescription":`{collection} 中选中的 {count} 条记录将被永久删除。`,"content.bulkDeleteSuccess":`已删除 {count} 条记录。`,"content.bulkDeletePartial":`{count} 条记录中有 {failed} 条无法删除。`,"content.relationSearch":`搜索关联记录…`,"content.relationEmpty":`没有匹配的关联记录`,"content.viewOptions":`视图`,"content.viewOptionsTitle":`表格视图选项`,"content.columns":`列`,"content.density":`密度`,"content.densityCompact":`紧凑`,"content.densityComfortable":`舒适`,"content.densityRelaxed":`宽松`,"roles.visualRules":`可视化规则`,"roles.advancedJson":`高级 JSON`,"roles.visualRuleDescription":`通过可视化方式构建简单的 AND 规则。复杂权限逻辑仍可使用高级 JSON。`,"roles.complexRuleNotice":`此权限包含无法由可视化编辑器安全表示的高级 JSON。JSON 将保持不变。`,"roles.invalidRuleJson":`当前 JSON 无效。切换到可视化规则前,请先在高级 JSON 中修复。`,"roles.addRule":`添加规则`,"roles.removeRule":`移除规则`,"roles.noRestrictions":`无行限制。`,"roles.ruleField":`字段`,"roles.ruleCondition":`条件`,"roles.ruleValue":`值`,"roles.ruleNoValue":`无需值`,"roles.dynamicValue":`动态值`,"roles.dynamicValueHint":`规则运行时从认证请求中解析。`,"roles.staticValue":`静态值`,"files.categories":`资源库`,"files.recent":`最近 7 天`,"files.uploadQueue":`上传队列`,"files.queueQueued":`排队中`,"files.queueUploading":`上传中`,"files.queueDone":`完成`,"files.queueFailed":`失败`,"files.queueRemove":`从队列移除`,"files.selectedFiles":`已选择 {count} 个文件`,"files.uploadSelected":`上传文件`,"files.retryFailed":`重试失败项`,"files.uploadedCount":`已上传 {count} 个文件。`,"files.uploadPartial":`{count} 个文件中有 {failed} 个无法上传。失败文件会保留在队列中。`,"dataModel.relationPreview":`关系预览`,"dataModel.relationResult":`结果`,"dataModel.relationMany":`多`,"dataModel.relationOne":`一`,"dataModel.relationCollectionRole":`集合`,"dataModel.relationRelated":`关联`,"dataModel.relationJunctionPending":`中间集合`,"dataModel.relationFieldPending":`字段`}),Lt=Object.freeze({"appearance.brandNameHint":`Wird für Logo-Alternativtext, Fallbacks und Studio-Branding-Einstellungen verwendet.`,"appearance.logoFromFiles":`Logo aus Dateien`,"appearance.logoFromFilesHint":`Wähle ein vorhandenes Bild aus der YunCMS-Dateibibliothek. Externe Logo-URLs werden nicht verwendet.`,"appearance.useDefaultLogo":`Standardlogo verwenden`,"appearance.selectedLogo":`Ausgewählt`,"appearance.searchLogoFiles":`Bilddateien suchen…`,"appearance.loadingLogoFiles":`Bilddateien werden geladen…`,"appearance.noLogoFiles":`Noch keine Bilddateien verfügbar. Lade zuerst eine unter Dateien hoch.`,"appearance.logoFilesLoadError":`Bilddateien konnten nicht geladen werden`,"nav.expandSidebar":`Seitenleiste erweitern`,"nav.collapseSidebar":`Seitenleiste einklappen`,"nav.openMenu":`Menü öffnen`,"nav.closeMenu":`Menü schließen`,"nav.studioSections":`Studio-Bereiche`,"auth.signInDescription":`Verwende dein YunCMS-Konto. Verfügbare Studio-Aktionen werden durch deine Rolle und Berechtigungen durchgesetzt.`,"auth.brandKicker":`YunCMS-Arbeitsbereich`,"auth.brandTitle":`Deine Inhalte. Deine Regeln.`,"auth.brandDescription":`Gestalte das Schema, veröffentliche Inhalte und steuere den Zugriff in einem fokussierten Arbeitsbereich rund um dein eigenes Backend.`,"auth.brandCapabilities":`Funktionen des Arbeitsbereichs`,"auth.brandSchema":`Schema`,"auth.brandContent":`Inhalte`,"auth.brandAccess":`Zugriff`,"section.usersDescription":`Verwalte Benutzer, Rollen und Kontostatus innerhalb deines gewährten Zugriffs.`,"fieldType.string":`Kurzer Text`,"fieldType.text":`Langer Text`,"fieldType.integer":`Ganzzahl`,"fieldType.bigint":`Große Ganzzahl`,"fieldType.decimal":`Dezimalzahl`,"fieldType.boolean":`Wahr / falsch`,"fieldType.date":`Datum`,"fieldType.datetime":`Datum & Uhrzeit`,"fieldType.timestamp":`Zeitstempel`,"fieldType.json":`JSON`,"fieldType.uuid":`UUID`,"fieldType.file":`Datei`,"fieldType.image":`Bild`,"fieldType.user":`Benutzer`,"fieldBuilder.title":`Feld erstellen`,"fieldBuilder.description":`Wähle zuerst aus, wofür das Feld steht, und konfiguriere dann nur die für diesen Typ relevanten Optionen.`,"fieldBuilder.chooseType":`Feldtyp auswählen`,"fieldBuilder.commonTypes":`Häufige Felder`,"fieldBuilder.mediaTypes":`Medien`,"fieldBuilder.advancedTypes":`Erweitert`,"fieldBuilder.stringDescription":`Namen, Titel und andere kurze Texte.`,"fieldBuilder.textDescription":`Lange Notizen, Beschreibungen und Fließtext.`,"fieldBuilder.integerDescription":`Ganze numerische Werte.`,"fieldBuilder.bigintDescription":`Sehr große ganze numerische Werte.`,"fieldBuilder.decimalDescription":`Preise, Raten und gemessene Dezimalwerte.`,"fieldBuilder.booleanDescription":`Ein einfacher Ja/Nein- oder Aktiviert/Deaktiviert-Wert.`,"fieldBuilder.dateDescription":`Ein Kalenderdatum ohne Uhrzeit.`,"fieldBuilder.datetimeDescription":`Ein Datums- und Uhrzeitwert.`,"fieldBuilder.timestampDescription":`Ein MySQL-Zeitstempel mit Automatisierung der aktuellen Zeit.`,"fieldBuilder.jsonDescription":`Strukturierte JSON-Daten für erweiterte Anwendungsfälle.`,"fieldBuilder.uuidDescription":`Ein UUID-Wert, häufig vor dem Erstellen einer Beziehung verwendet.`,"fieldBuilder.fileDescription":`Eine Referenz auf eine Datei in der YunCMS-Bibliothek.`,"fieldBuilder.imageDescription":`Eine Bildreferenz mit Auswahl- und Vorschaufunktion.`,"fieldBuilder.configureField":`Feldeinstellungen`,"fieldBuilder.configureHint":`Speicherdetails bleiben ausgeblendet, bis sie für den ausgewählten Feldtyp relevant sind.`,"fieldBuilder.keyHint":`Maschinenschlüssel für API und MySQL. Verwende Buchstaben, Zahlen und Unterstriche.`,"fieldBuilder.precision":`Genauigkeit`,"fieldBuilder.scale":`Dezimalstellen`,"fieldBuilder.required":`Erforderliches Feld`,"fieldBuilder.requiredHint":`Jeder neue Datensatz muss einen Wert enthalten, sofern kein Datenbankstandard ihn bereitstellt.`,"fieldBuilder.defaultValue":`Standardwert`,"fieldBuilder.defaultHint":`Verwende einen festen Wert oder lass MySQL bei Datum-Zeit-Feldern die aktuelle Zeit einsetzen.`,"fieldBuilder.noDefault":`Kein Standardwert`,"fieldBuilder.fixedValue":`Fester Wert`,"fieldBuilder.currentTime":`Aktuelle Zeit`,"fieldBuilder.defaultPlaceholder":`Standardwert…`,"fieldBuilder.autoUpdate":`Zeit automatisch aktualisieren`,"fieldBuilder.autoUpdateHint":`MySQL setzt dieses Feld bei jeder Änderung des Datensatzes auf die aktuelle Zeit.`,"fieldBuilder.createField":`Feld erstellen`,"collectionBuilder.accountability":`Audit-Felder`,"collectionBuilder.accountabilityHint":`Empfohlene systemverwaltete Felder, die erfassen, wann eine Zeile erstellt oder geändert wurde und welcher authentifizierte Benutzer dies getan hat.`,"collectionBuilder.recommended":`Empfohlen`,"collectionBuilder.createdAt":`Erstellungsdatum`,"collectionBuilder.createdAtHint":`Fügt created_at hinzu und speichert beim Erstellen eines Datensatzes die aktuelle Zeit.`,"collectionBuilder.updatedAt":`Aktualisierungsdatum`,"collectionBuilder.updatedAtHint":`Fügt updated_at hinzu und aktualisiert es automatisch, wenn sich ein Datensatz ändert.`,"collectionBuilder.createdBy":`Erstellt von`,"collectionBuilder.createdByHint":`Fügt created_by hinzu und speichert den authentifizierten Benutzer, der den Datensatz erstellt hat.`,"collectionBuilder.updatedBy":`Aktualisiert von`,"collectionBuilder.updatedByHint":`Fügt updated_by hinzu und speichert den authentifizierten Benutzer, der den Datensatz zuletzt geändert hat.`,"collectionBuilder.systemManaged":`Systemverwaltet`,"fileField.uploadFailed":`Datei konnte nicht hochgeladen werden`,"fileField.chooseFile":`Datei auswählen`,"fileField.uploading":`Wird hochgeladen…`,"fileField.uploadNew":`Neue Datei hochladen`,"fileField.clear":`Datei entfernen`,"users.createDescription":`Lege Anmeldedaten und optional eine Rolle fest. Von der Verwaltung erstellte Benutzer werden automatisch als E-Mail-bestätigt markiert und können sich sofort anmelden.`,"users.managedVerifiedHint":`Hier erstellte Benutzer gelten als vertrauenswürdige, von der Verwaltung erstellte Konten und werden sofort als E-Mail-bestätigt markiert. Sie können sich ohne Bestätigungs-E-Mail anmelden.`,"users.roleAccessUnavailable":`Benutzerzugriff ist verfügbar, Rollendetails jedoch nicht. Gewähre dieser Rolle Rollen: Lesen, wenn sie Rollennamen sehen oder Rollen zuweisen soll.`,"users.roleUnavailableForCreate":`Rollendetails sind nicht verfügbar, daher wird dieser Benutzer ohne Rolle erstellt.`,"users.roleDetailsUnavailable":`Rollendetails nicht verfügbar`,"dataModel.fieldBuilderHint":`Wähle zuerst die Datenart. Datei- und Bildfelder speichern eine Dateireferenz und erhalten in Inhalte einen eigenen Auswahlbereich.`,"dataModel.fieldType":`Feldtyp`,"dataModel.imageFieldInfo":`Bildfelder akzeptieren Bilddateien und zeigen in Datensatzformularen und Tabellen eine authentifizierte Miniaturvorschau.`,"dataModel.fileFieldInfo":`Dateifelder verweisen auf die YunCMS-Dateibibliothek und zeigen nach Möglichkeit den ausgewählten Dateinamen oder eine Vorschau.`,"dataModel.collectionIcon":`Collection-Symbol`,"dataModel.searchIcons":`Symbole suchen…`,"dataModel.noIcons":`Keine Symbole entsprechen dieser Suche.`,"dataModel.collectionSettingsSaved":`Collection-Einstellungen gespeichert`,"dataModel.collectionSettingsError":`Collection-Einstellungen konnten nicht gespeichert werden`,"dataModel.navigationOrderSaved":`Reihenfolge der Seitenleiste gespeichert`,"dataModel.navigationOrderError":`Reihenfolge der Seitenleiste konnte nicht gespeichert werden`,"dataModel.hiddenFromContent":`Unter Inhalte ausgeblendet`,"dataModel.visibleInContent":`Unter Inhalte sichtbar`,"dataModel.showInContent":`In der Inhaltsnavigation anzeigen`,"dataModel.showInContentHint":`Steuert, ob diese Collection unter Inhalte erscheint. Das Ausblenden entfernt niemals ihr Schema oder ihre Datensätze.`,"dataModel.sidebarOrder":`Reihenfolge der Seitenleiste`,"dataModel.sidebarOrderHint":`Verschiebe diese Collection in der Inhaltsnavigation nach oben oder unten.`,"dataModel.moveUp":`Nach oben`,"dataModel.moveDown":`Nach unten`,"dataModel.tab.overview":`Übersicht`,"dataModel.tab.fields":`Felder`,"dataModel.tab.relations":`Beziehungen`,"dataModel.systemCollectionExtensionHint":`Native Systemfelder bleiben geschützt. Schema-Administratoren können begrenzte benutzerdefinierte Felder zu den registrierten System-Collections Benutzer, Dateien und Rollen hinzufügen.`,"dataModel.addCustomSystemField":`Benutzerdefiniertes Feld hinzufügen`,"dataModel.systemFieldsHint":`Native Felder sind geschützt. Neue hier erstellte Felder werden als benutzerdefinierte Systemerweiterungen markiert.`,"dataModel.customSystemField":`Benutzerdefiniertes Systemfeld`,"dataModel.relationType":`Beziehungstyp`,"dataModel.m2oShort":`Viele Datensätze können auf denselben Zieldatensatz verweisen.`,"dataModel.oneToOne":`Eins zu eins`,"dataModel.o2oShort":`Jeder Zieldatensatz kann von diesem Feld nur einmal verknüpft werden.`,"dataModel.m2mShort":`Beide Collections können über eine Verknüpfung viele Links enthalten.`,"dataModel.existingRelations":`Bestehende Beziehungen`,"dataModel.existingRelationsHint":`Prüfe direkte und Verknüpfungsbeziehungen, bevor du eine weitere erstellst.`,"dataModel.noRelations":`Für diese Collection gibt es noch keine Beziehungen.`,"dataModel.connectOneToOne":`Einen Datensatz mit einem Datensatz verbinden`,"dataModel.o2oDescription":`Verwende ein UUID-Feld in {collection}. YunCMS fügt einen Fremdschlüssel und einen eindeutigen Index hinzu, damit dasselbe Ziel nicht zweimal verknüpft werden kann.`,"dataModel.relationUuidHint":`Erstelle zuerst ein optionales UUID-Feld. Datei- und Bild-UUID-Felder sind bewusst von Beziehungsfeldern ausgeschlossen.`,"dataModel.createO2O":`Eins-zu-eins erstellen`,"dataModel.o2oCreated":`Eins-zu-eins-Beziehung {collection}.{field} erstellt`,"dataModel.o2oCreateError":`Eins-zu-eins-Beziehung konnte nicht erstellt werden`,"roles.publicAccessTitle":`Anonymer öffentlicher Zugriff`,"roles.publicAccessDescription":`Diese Rolle gilt für nicht authentifizierte Anfragen. Behalte standardmäßige Verweigerung bei und aktiviere nur genau die Collections/Aktionen, die öffentlich sein müssen.`,"roles.accessOverview":`Zugriffsübersicht`,"roles.enabledActions":`{count} aktivierte Aktionen`,"roles.restrictedActions":`{count} eingeschränkte Regeln`,"roles.quickAuditHint":`Aktiviere eine Aktion für einfachen Zugriff. Verwende Konfigurieren nur für Feld-, Zeilen- oder Schreibbeschränkungen.`,"roles.systemResource":`Systemressource`,"roles.protected":`Geschützt`,"roles.systemAccessHint":`Projekt-Collections unterstützen erweiterte Einschränkungen. Benutzer und Dateien können auf Aktionsebene delegiert werden; Rollen nur zum Lesen. Öffentlicher Zugriff auf Systemressourcen ist immer gesperrt.`}),Rt=Object.freeze({"appearance.brandNameHint":`Used for logo alt text, fallbacks and Studio branding settings.`,"appearance.logoFromFiles":`Logo from Files`,"appearance.logoFromFilesHint":`Choose an existing image from the YunCMS file library. External logo URLs are not used.`,"appearance.useDefaultLogo":`Use default logo`,"appearance.selectedLogo":`Selected`,"appearance.searchLogoFiles":`Search image files…`,"appearance.loadingLogoFiles":`Loading image files…`,"appearance.noLogoFiles":`No image files are available yet. Upload one in Files first.`,"appearance.logoFilesLoadError":`Image files could not be loaded`,"nav.expandSidebar":`Expand sidebar`,"nav.collapseSidebar":`Collapse sidebar`,"nav.openMenu":`Open menu`,"nav.closeMenu":`Close menu`,"nav.studioSections":`Studio sections`,"auth.signInDescription":`Use your YunCMS account. Available Studio actions are enforced by your role and permissions.`,"auth.brandKicker":`YunCMS workspace`,"auth.brandTitle":`Your content. Your rules.`,"auth.brandDescription":`Shape the schema, publish content and control access from one focused workspace built around your own backend.`,"auth.brandCapabilities":`Workspace capabilities`,"auth.brandSchema":`Schema`,"auth.brandContent":`Content`,"auth.brandAccess":`Access`,"section.usersDescription":`Manage users, roles and account status within your granted access.`,"fieldType.string":`Short text`,"fieldType.text":`Long text`,"fieldType.integer":`Integer`,"fieldType.bigint":`Large integer`,"fieldType.decimal":`Decimal`,"fieldType.boolean":`True / false`,"fieldType.date":`Date`,"fieldType.datetime":`Date & time`,"fieldType.timestamp":`Timestamp`,"fieldType.json":`JSON`,"fieldType.uuid":`UUID`,"fieldType.file":`File`,"fieldType.image":`Image`,"fieldType.user":`User`,"fieldBuilder.title":`Create a field`,"fieldBuilder.description":`Choose what the field represents first, then configure only the options that matter for that type.`,"fieldBuilder.chooseType":`Choose a field type`,"fieldBuilder.commonTypes":`Common fields`,"fieldBuilder.mediaTypes":`Media`,"fieldBuilder.advancedTypes":`Advanced`,"fieldBuilder.stringDescription":`Names, titles and other short text.`,"fieldBuilder.textDescription":`Long notes, descriptions and body text.`,"fieldBuilder.integerDescription":`Whole numeric values.`,"fieldBuilder.bigintDescription":`Very large whole numeric values.`,"fieldBuilder.decimalDescription":`Prices, rates and measured decimal values.`,"fieldBuilder.booleanDescription":`A simple yes/no or enabled/disabled value.`,"fieldBuilder.dateDescription":`A calendar date without a time.`,"fieldBuilder.datetimeDescription":`A date and time value.`,"fieldBuilder.timestampDescription":`A MySQL timestamp with current-time automation.`,"fieldBuilder.jsonDescription":`Structured JSON data for advanced use cases.`,"fieldBuilder.uuidDescription":`A UUID value, commonly used before creating a relation.`,"fieldBuilder.fileDescription":`A reference to a file in the YunCMS library.`,"fieldBuilder.imageDescription":`An image reference with picker and preview support.`,"fieldBuilder.configureField":`Field settings`,"fieldBuilder.configureHint":`Storage details stay out of the way until they are relevant to the selected field type.`,"fieldBuilder.keyHint":`Machine key used by the API and MySQL. Use letters, numbers and underscores.`,"fieldBuilder.precision":`Precision`,"fieldBuilder.scale":`Decimal places`,"fieldBuilder.required":`Required field`,"fieldBuilder.requiredHint":`Every new record must contain a value unless a database default provides it.`,"fieldBuilder.defaultValue":`Default value`,"fieldBuilder.defaultHint":`Use a fixed value, or let MySQL use the current time for date-time fields.`,"fieldBuilder.noDefault":`No default`,"fieldBuilder.fixedValue":`Fixed value`,"fieldBuilder.currentTime":`Current time`,"fieldBuilder.defaultPlaceholder":`Default value…`,"fieldBuilder.autoUpdate":`Update time automatically`,"fieldBuilder.autoUpdateHint":`MySQL refreshes this field to the current time whenever the record changes.`,"fieldBuilder.createField":`Create field`,"collectionBuilder.accountability":`Accountability fields`,"collectionBuilder.accountabilityHint":`Recommended system-managed fields that record when a row was created or changed and which authenticated user did it.`,"collectionBuilder.recommended":`Recommended`,"collectionBuilder.createdAt":`Created date`,"collectionBuilder.createdAtHint":`Adds created_at and stamps the current time when a record is created.`,"collectionBuilder.updatedAt":`Updated date`,"collectionBuilder.updatedAtHint":`Adds updated_at and refreshes it automatically when a record changes.`,"collectionBuilder.createdBy":`Created by`,"collectionBuilder.createdByHint":`Adds created_by and stores the authenticated user who created the record.`,"collectionBuilder.updatedBy":`Updated by`,"collectionBuilder.updatedByHint":`Adds updated_by and stores the authenticated user who most recently changed the record.`,"collectionBuilder.systemManaged":`System managed`,"fileField.uploadFailed":`File could not be uploaded`,"fileField.chooseFile":`Choose a file`,"fileField.uploading":`Uploading…`,"fileField.uploadNew":`Upload new`,"fileField.clear":`Clear file`,"users.createDescription":`Set login credentials and an optional role. Management-created users are marked email-verified automatically and can sign in immediately.`,"users.managedVerifiedHint":`Users created here are trusted management-created accounts and are marked email-verified immediately. They can sign in without a verification email.`,"users.roleAccessUnavailable":`User access is available, but role details are not. Grant Roles: Read to this role if it should see role names or assign roles.`,"users.roleUnavailableForCreate":`Role details are unavailable, so this user will be created without a role.`,"users.roleDetailsUnavailable":`Role details unavailable`,"dataModel.fieldBuilderHint":`Choose the data kind first. File and image fields store a file reference and get a dedicated picker in Content.`,"dataModel.fieldType":`Field type`,"dataModel.imageFieldInfo":`Image fields accept image files and show an authenticated thumbnail preview in record forms and tables.`,"dataModel.fileFieldInfo":`File fields reference the YunCMS file library and show the selected filename or preview where possible.`,"dataModel.collectionIcon":`Collection icon`,"dataModel.searchIcons":`Search icons…`,"dataModel.noIcons":`No icons match this search.`,"dataModel.collectionSettingsSaved":`Collection settings saved`,"dataModel.collectionSettingsError":`Collection settings could not be saved`,"dataModel.navigationOrderSaved":`Sidebar order saved`,"dataModel.navigationOrderError":`Sidebar order could not be saved`,"dataModel.hiddenFromContent":`Hidden from Content`,"dataModel.visibleInContent":`Visible in Content`,"dataModel.showInContent":`Show in Content navigation`,"dataModel.showInContentHint":`Controls whether this collection appears under Content. Hiding it never removes its schema or records.`,"dataModel.sidebarOrder":`Sidebar order`,"dataModel.sidebarOrderHint":`Move this collection up or down in the Content navigation.`,"dataModel.moveUp":`Move up`,"dataModel.moveDown":`Move down`,"dataModel.tab.overview":`Overview`,"dataModel.tab.fields":`Fields`,"dataModel.tab.relations":`Relations`,"dataModel.systemCollectionExtensionHint":`Native system fields stay protected. Schema administrators can add bounded custom fields to the registered Users, Files and Roles system collections.`,"dataModel.addCustomSystemField":`Add custom field`,"dataModel.systemFieldsHint":`Native fields are protected. New fields created here are marked as custom system extensions.`,"dataModel.customSystemField":`Custom system field`,"dataModel.relationType":`Relationship type`,"dataModel.m2oShort":`Many records can point to the same target record.`,"dataModel.oneToOne":`One to one`,"dataModel.o2oShort":`Each target record can be linked only once from this field.`,"dataModel.m2mShort":`Both collections can contain many links through a junction.`,"dataModel.existingRelations":`Existing relationships`,"dataModel.existingRelationsHint":`Review direct and junction relationships before creating another one.`,"dataModel.noRelations":`No relationships for this collection yet.`,"dataModel.connectOneToOne":`Connect one record to one record`,"dataModel.o2oDescription":`Use a UUID field in {collection}. YunCMS adds a foreign key and a unique index so the same target cannot be linked twice.`,"dataModel.relationUuidHint":`Create an optional UUID field first. File and image UUID fields are intentionally excluded from relationship fields.`,"dataModel.createO2O":`Create one-to-one`,"dataModel.o2oCreated":`Created one-to-one relation {collection}.{field}`,"dataModel.o2oCreateError":`One-to-one relation could not be created`,"roles.publicAccessTitle":`Anonymous public access`,"roles.publicAccessDescription":`This role applies to unauthenticated requests. Keep it deny-by-default and enable only the exact collections/actions that must be public.`,"roles.accessOverview":`Access overview`,"roles.enabledActions":`{count} enabled actions`,"roles.restrictedActions":`{count} restricted rules`,"roles.quickAuditHint":`Turn on an action for simple access. Use Configure only for field, row or write restrictions.`,"roles.systemResource":`System resource`,"roles.protected":`Protected`,"roles.systemAccessHint":`Project collections support advanced restrictions. Users and Files can be delegated at action level; Roles can only be delegated for reading. Public access to system resources is always blocked.`}),zt=Object.freeze({"appearance.brandNameHint":`Se usa para el texto alternativo del logotipo, valores de respaldo y ajustes de marca de Studio.`,"appearance.logoFromFiles":`Logotipo desde Archivos`,"appearance.logoFromFilesHint":`Elige una imagen existente de la biblioteca de archivos de YunCMS. No se usan URL externas para el logotipo.`,"appearance.useDefaultLogo":`Usar logotipo predeterminado`,"appearance.selectedLogo":`Seleccionado`,"appearance.searchLogoFiles":`Buscar archivos de imagen…`,"appearance.loadingLogoFiles":`Cargando archivos de imagen…`,"appearance.noLogoFiles":`Todavía no hay archivos de imagen disponibles. Sube uno primero en Archivos.`,"appearance.logoFilesLoadError":`No se pudieron cargar los archivos de imagen`,"nav.expandSidebar":`Expandir barra lateral`,"nav.collapseSidebar":`Contraer barra lateral`,"nav.openMenu":`Abrir menú`,"nav.closeMenu":`Cerrar menú`,"nav.studioSections":`Secciones de Studio`,"auth.signInDescription":`Usa tu cuenta de YunCMS. Las acciones disponibles en Studio se aplican según tu rol y permisos.`,"auth.brandKicker":`Espacio de trabajo de YunCMS`,"auth.brandTitle":`Tu contenido. Tus reglas.`,"auth.brandDescription":`Define el esquema, publica contenido y controla el acceso desde un espacio de trabajo enfocado en tu propio backend.`,"auth.brandCapabilities":`Capacidades del espacio de trabajo`,"auth.brandSchema":`Esquema`,"auth.brandContent":`Contenido`,"auth.brandAccess":`Acceso`,"section.usersDescription":`Gestiona usuarios, roles y estado de las cuentas dentro del acceso que tengas concedido.`,"fieldType.string":`Texto corto`,"fieldType.text":`Texto largo`,"fieldType.integer":`Entero`,"fieldType.bigint":`Entero grande`,"fieldType.decimal":`Decimal`,"fieldType.boolean":`Verdadero / falso`,"fieldType.date":`Fecha`,"fieldType.datetime":`Fecha y hora`,"fieldType.timestamp":`Marca de tiempo`,"fieldType.json":`JSON`,"fieldType.uuid":`UUID`,"fieldType.file":`Archivo`,"fieldType.image":`Imagen`,"fieldType.user":`Usuario`,"fieldBuilder.title":`Crear un campo`,"fieldBuilder.description":`Elige primero qué representa el campo y configura después solo las opciones relevantes para ese tipo.`,"fieldBuilder.chooseType":`Elegir tipo de campo`,"fieldBuilder.commonTypes":`Campos comunes`,"fieldBuilder.mediaTypes":`Multimedia`,"fieldBuilder.advancedTypes":`Avanzado`,"fieldBuilder.stringDescription":`Nombres, títulos y otros textos cortos.`,"fieldBuilder.textDescription":`Notas largas, descripciones y cuerpo de texto.`,"fieldBuilder.integerDescription":`Valores numéricos enteros.`,"fieldBuilder.bigintDescription":`Valores numéricos enteros muy grandes.`,"fieldBuilder.decimalDescription":`Precios, tasas y valores decimales medidos.`,"fieldBuilder.booleanDescription":`Un valor simple de sí/no o habilitado/deshabilitado.`,"fieldBuilder.dateDescription":`Una fecha de calendario sin hora.`,"fieldBuilder.datetimeDescription":`Un valor de fecha y hora.`,"fieldBuilder.timestampDescription":`Una marca de tiempo de MySQL con automatización de la hora actual.`,"fieldBuilder.jsonDescription":`Datos JSON estructurados para casos de uso avanzados.`,"fieldBuilder.uuidDescription":`Un valor UUID, usado habitualmente antes de crear una relación.`,"fieldBuilder.fileDescription":`Una referencia a un archivo de la biblioteca de YunCMS.`,"fieldBuilder.imageDescription":`Una referencia de imagen con selector y vista previa.`,"fieldBuilder.configureField":`Ajustes del campo`,"fieldBuilder.configureHint":`Los detalles de almacenamiento permanecen ocultos hasta que sean relevantes para el tipo de campo seleccionado.`,"fieldBuilder.keyHint":`Clave de máquina usada por la API y MySQL. Usa letras, números y guiones bajos.`,"fieldBuilder.precision":`Precisión`,"fieldBuilder.scale":`Decimales`,"fieldBuilder.required":`Campo obligatorio`,"fieldBuilder.requiredHint":`Cada registro nuevo debe contener un valor salvo que un valor predeterminado de la base de datos lo proporcione.`,"fieldBuilder.defaultValue":`Valor predeterminado`,"fieldBuilder.defaultHint":`Usa un valor fijo o deja que MySQL utilice la hora actual para campos de fecha y hora.`,"fieldBuilder.noDefault":`Sin valor predeterminado`,"fieldBuilder.fixedValue":`Valor fijo`,"fieldBuilder.currentTime":`Hora actual`,"fieldBuilder.defaultPlaceholder":`Valor predeterminado…`,"fieldBuilder.autoUpdate":`Actualizar hora automáticamente`,"fieldBuilder.autoUpdateHint":`MySQL actualiza este campo con la hora actual cada vez que cambia el registro.`,"fieldBuilder.createField":`Crear campo`,"collectionBuilder.accountability":`Campos de auditoría`,"collectionBuilder.accountabilityHint":`Campos gestionados por el sistema recomendados para registrar cuándo se creó o modificó una fila y qué usuario autenticado lo hizo.`,"collectionBuilder.recommended":`Recomendado`,"collectionBuilder.createdAt":`Fecha de creación`,"collectionBuilder.createdAtHint":`Añade created_at y registra la hora actual al crear un registro.`,"collectionBuilder.updatedAt":`Fecha de actualización`,"collectionBuilder.updatedAtHint":`Añade updated_at y lo actualiza automáticamente cuando cambia un registro.`,"collectionBuilder.createdBy":`Creado por`,"collectionBuilder.createdByHint":`Añade created_by y guarda el usuario autenticado que creó el registro.`,"collectionBuilder.updatedBy":`Actualizado por`,"collectionBuilder.updatedByHint":`Añade updated_by y guarda el usuario autenticado que modificó el registro más recientemente.`,"collectionBuilder.systemManaged":`Gestionado por el sistema`,"fileField.uploadFailed":`No se pudo subir el archivo`,"fileField.chooseFile":`Elegir un archivo`,"fileField.uploading":`Subiendo…`,"fileField.uploadNew":`Subir nuevo`,"fileField.clear":`Quitar archivo`,"users.createDescription":`Configura las credenciales de acceso y un rol opcional. Los usuarios creados desde la gestión se marcan automáticamente como correo verificado y pueden iniciar sesión de inmediato.`,"users.managedVerifiedHint":`Los usuarios creados aquí se consideran cuentas de confianza creadas por la gestión y se marcan inmediatamente como correo verificado. Pueden iniciar sesión sin correo de verificación.`,"users.roleAccessUnavailable":`El acceso de usuarios está disponible, pero los detalles de roles no. Concede Roles: Lectura a este rol si debe ver nombres de roles o asignarlos.`,"users.roleUnavailableForCreate":`Los detalles de roles no están disponibles, por lo que este usuario se creará sin rol.`,"users.roleDetailsUnavailable":`Detalles del rol no disponibles`,"dataModel.fieldBuilderHint":`Elige primero el tipo de dato. Los campos de archivo e imagen almacenan una referencia de archivo y tienen un selector dedicado en Contenido.`,"dataModel.fieldType":`Tipo de campo`,"dataModel.imageFieldInfo":`Los campos de imagen aceptan archivos de imagen y muestran una miniatura autenticada en formularios y tablas de registros.`,"dataModel.fileFieldInfo":`Los campos de archivo hacen referencia a la biblioteca de archivos de YunCMS y muestran el nombre del archivo seleccionado o una vista previa cuando es posible.`,"dataModel.collectionIcon":`Icono de la colección`,"dataModel.searchIcons":`Buscar iconos…`,"dataModel.noIcons":`Ningún icono coincide con esta búsqueda.`,"dataModel.collectionSettingsSaved":`Ajustes de la colección guardados`,"dataModel.collectionSettingsError":`No se pudieron guardar los ajustes de la colección`,"dataModel.navigationOrderSaved":`Orden de la barra lateral guardado`,"dataModel.navigationOrderError":`No se pudo guardar el orden de la barra lateral`,"dataModel.hiddenFromContent":`Oculta en Contenido`,"dataModel.visibleInContent":`Visible en Contenido`,"dataModel.showInContent":`Mostrar en la navegación de Contenido`,"dataModel.showInContentHint":`Controla si esta colección aparece en Contenido. Ocultarla nunca elimina su esquema ni sus registros.`,"dataModel.sidebarOrder":`Orden de la barra lateral`,"dataModel.sidebarOrderHint":`Mueve esta colección arriba o abajo en la navegación de Contenido.`,"dataModel.moveUp":`Subir`,"dataModel.moveDown":`Bajar`,"dataModel.tab.overview":`Resumen`,"dataModel.tab.fields":`Campos`,"dataModel.tab.relations":`Relaciones`,"dataModel.systemCollectionExtensionHint":`Los campos nativos del sistema permanecen protegidos. Los administradores del esquema pueden añadir campos personalizados limitados a las colecciones del sistema Usuarios, Archivos y Roles.`,"dataModel.addCustomSystemField":`Añadir campo personalizado`,"dataModel.systemFieldsHint":`Los campos nativos están protegidos. Los campos nuevos creados aquí se marcan como extensiones personalizadas del sistema.`,"dataModel.customSystemField":`Campo personalizado del sistema`,"dataModel.relationType":`Tipo de relación`,"dataModel.m2oShort":`Muchos registros pueden apuntar al mismo registro de destino.`,"dataModel.oneToOne":`Uno a uno`,"dataModel.o2oShort":`Cada registro de destino solo puede vincularse una vez desde este campo.`,"dataModel.m2mShort":`Ambas colecciones pueden contener muchos enlaces mediante una unión.`,"dataModel.existingRelations":`Relaciones existentes`,"dataModel.existingRelationsHint":`Revisa las relaciones directas y de unión antes de crear otra.`,"dataModel.noRelations":`Todavía no hay relaciones para esta colección.`,"dataModel.connectOneToOne":`Conectar un registro con un registro`,"dataModel.o2oDescription":`Usa un campo UUID en {collection}. YunCMS añade una clave foránea y un índice único para impedir que el mismo destino se vincule dos veces.`,"dataModel.relationUuidHint":`Crea primero un campo UUID opcional. Los campos UUID de archivo e imagen se excluyen intencionadamente de los campos de relación.`,"dataModel.createO2O":`Crear uno a uno`,"dataModel.o2oCreated":`Relación uno a uno {collection}.{field} creada`,"dataModel.o2oCreateError":`No se pudo crear la relación uno a uno`,"roles.publicAccessTitle":`Acceso público anónimo`,"roles.publicAccessDescription":`Este rol se aplica a solicitudes no autenticadas. Mantén la denegación por defecto y habilita solo las colecciones y acciones exactas que deban ser públicas.`,"roles.accessOverview":`Resumen de acceso`,"roles.enabledActions":`{count} acciones habilitadas`,"roles.restrictedActions":`{count} reglas restringidas`,"roles.quickAuditHint":`Activa una acción para acceso sencillo. Usa Configurar solo para restricciones de campos, filas o escritura.`,"roles.systemResource":`Recurso del sistema`,"roles.protected":`Protegido`,"roles.systemAccessHint":`Las colecciones del proyecto admiten restricciones avanzadas. Usuarios y Archivos pueden delegarse a nivel de acción; Roles solo puede delegarse para lectura. El acceso público a recursos del sistema siempre está bloqueado.`}),Bt=Object.freeze({"appearance.brandNameHint":`Utilisé pour le texte alternatif du logo, les valeurs de secours et les paramètres de marque de Studio.`,"appearance.logoFromFiles":`Logo depuis Fichiers`,"appearance.logoFromFilesHint":`Choisissez une image existante dans la bibliothèque de fichiers YunCMS. Les URL de logo externes ne sont pas utilisées.`,"appearance.useDefaultLogo":`Utiliser le logo par défaut`,"appearance.selectedLogo":`Sélectionné`,"appearance.searchLogoFiles":`Rechercher des images…`,"appearance.loadingLogoFiles":`Chargement des images…`,"appearance.noLogoFiles":`Aucune image n’est encore disponible. Téléversez-en une dans Fichiers.`,"appearance.logoFilesLoadError":`Impossible de charger les images`,"nav.expandSidebar":`Développer la barre latérale`,"nav.collapseSidebar":`Réduire la barre latérale`,"nav.openMenu":`Ouvrir le menu`,"nav.closeMenu":`Fermer le menu`,"nav.studioSections":`Sections de Studio`,"auth.signInDescription":`Utilisez votre compte YunCMS. Les actions disponibles dans Studio sont appliquées selon votre rôle et vos permissions.`,"auth.brandKicker":`Espace de travail YunCMS`,"auth.brandTitle":`Votre contenu. Vos règles.`,"auth.brandDescription":`Façonnez le schéma, publiez du contenu et contrôlez l’accès depuis un espace de travail centré sur votre propre backend.`,"auth.brandCapabilities":`Fonctionnalités de l’espace de travail`,"auth.brandSchema":`Schéma`,"auth.brandContent":`Contenu`,"auth.brandAccess":`Accès`,"section.usersDescription":`Gérez les utilisateurs, les rôles et le statut des comptes dans les limites de votre accès.`,"fieldType.string":`Texte court`,"fieldType.text":`Texte long`,"fieldType.integer":`Entier`,"fieldType.bigint":`Grand entier`,"fieldType.decimal":`Décimal`,"fieldType.boolean":`Vrai / faux`,"fieldType.date":`Date`,"fieldType.datetime":`Date et heure`,"fieldType.timestamp":`Horodatage`,"fieldType.json":`JSON`,"fieldType.uuid":`UUID`,"fieldType.file":`Fichier`,"fieldType.image":`Image`,"fieldType.user":`Utilisateur`,"fieldBuilder.title":`Créer un champ`,"fieldBuilder.description":`Choisissez d’abord ce que représente le champ, puis configurez uniquement les options pertinentes pour ce type.`,"fieldBuilder.chooseType":`Choisir un type de champ`,"fieldBuilder.commonTypes":`Champs courants`,"fieldBuilder.mediaTypes":`Médias`,"fieldBuilder.advancedTypes":`Avancé`,"fieldBuilder.stringDescription":`Noms, titres et autres textes courts.`,"fieldBuilder.textDescription":`Notes longues, descriptions et corps de texte.`,"fieldBuilder.integerDescription":`Valeurs numériques entières.`,"fieldBuilder.bigintDescription":`Très grandes valeurs numériques entières.`,"fieldBuilder.decimalDescription":`Prix, taux et valeurs décimales mesurées.`,"fieldBuilder.booleanDescription":`Une valeur simple oui/non ou activé/désactivé.`,"fieldBuilder.dateDescription":`Une date de calendrier sans heure.`,"fieldBuilder.datetimeDescription":`Une valeur de date et d’heure.`,"fieldBuilder.timestampDescription":`Un horodatage MySQL avec automatisation de l’heure actuelle.`,"fieldBuilder.jsonDescription":`Données JSON structurées pour des cas d’usage avancés.`,"fieldBuilder.uuidDescription":`Une valeur UUID, souvent utilisée avant de créer une relation.`,"fieldBuilder.fileDescription":`Une référence vers un fichier de la bibliothèque YunCMS.`,"fieldBuilder.imageDescription":`Une référence d’image avec sélecteur et aperçu.`,"fieldBuilder.configureField":`Paramètres du champ`,"fieldBuilder.configureHint":`Les détails de stockage restent masqués jusqu’à ce qu’ils soient pertinents pour le type de champ choisi.`,"fieldBuilder.keyHint":`Clé machine utilisée par l’API et MySQL. Utilisez des lettres, chiffres et underscores.`,"fieldBuilder.precision":`Précision`,"fieldBuilder.scale":`Décimales`,"fieldBuilder.required":`Champ obligatoire`,"fieldBuilder.requiredHint":`Chaque nouvel enregistrement doit contenir une valeur sauf si une valeur par défaut de la base de données la fournit.`,"fieldBuilder.defaultValue":`Valeur par défaut`,"fieldBuilder.defaultHint":`Utilisez une valeur fixe ou laissez MySQL utiliser l’heure actuelle pour les champs date-heure.`,"fieldBuilder.noDefault":`Aucune valeur par défaut`,"fieldBuilder.fixedValue":`Valeur fixe`,"fieldBuilder.currentTime":`Heure actuelle`,"fieldBuilder.defaultPlaceholder":`Valeur par défaut…`,"fieldBuilder.autoUpdate":`Mettre à jour l’heure automatiquement`,"fieldBuilder.autoUpdateHint":`MySQL actualise ce champ avec l’heure actuelle chaque fois que l’enregistrement change.`,"fieldBuilder.createField":`Créer le champ`,"collectionBuilder.accountability":`Champs d’audit`,"collectionBuilder.accountabilityHint":`Champs recommandés gérés par le système qui enregistrent la création ou la modification d’une ligne ainsi que l’utilisateur authentifié responsable.`,"collectionBuilder.recommended":`Recommandé`,"collectionBuilder.createdAt":`Date de création`,"collectionBuilder.createdAtHint":`Ajoute created_at et enregistre l’heure actuelle lors de la création d’un enregistrement.`,"collectionBuilder.updatedAt":`Date de mise à jour`,"collectionBuilder.updatedAtHint":`Ajoute updated_at et le met automatiquement à jour lorsqu’un enregistrement change.`,"collectionBuilder.createdBy":`Créé par`,"collectionBuilder.createdByHint":`Ajoute created_by et stocke l’utilisateur authentifié qui a créé l’enregistrement.`,"collectionBuilder.updatedBy":`Mis à jour par`,"collectionBuilder.updatedByHint":`Ajoute updated_by et stocke l’utilisateur authentifié qui a modifié l’enregistrement le plus récemment.`,"collectionBuilder.systemManaged":`Géré par le système`,"fileField.uploadFailed":`Impossible de téléverser le fichier`,"fileField.chooseFile":`Choisir un fichier`,"fileField.uploading":`Téléversement…`,"fileField.uploadNew":`Téléverser un nouveau fichier`,"fileField.clear":`Retirer le fichier`,"users.createDescription":`Définissez les identifiants de connexion et un rôle facultatif. Les utilisateurs créés par la gestion sont automatiquement considérés comme vérifiés et peuvent se connecter immédiatement.`,"users.managedVerifiedHint":`Les utilisateurs créés ici sont des comptes de confiance créés par la gestion et leur e-mail est marqué comme vérifié immédiatement. Ils peuvent se connecter sans e-mail de vérification.`,"users.roleAccessUnavailable":`L’accès Utilisateurs est disponible, mais pas les détails des rôles. Accordez Rôles : Lecture à ce rôle s’il doit voir les noms de rôle ou attribuer des rôles.`,"users.roleUnavailableForCreate":`Les détails des rôles sont indisponibles, cet utilisateur sera donc créé sans rôle.`,"users.roleDetailsUnavailable":`Détails du rôle indisponibles`,"dataModel.fieldBuilderHint":`Choisissez d’abord le type de donnée. Les champs fichier et image stockent une référence de fichier et disposent d’un sélecteur dédié dans Contenu.`,"dataModel.fieldType":`Type de champ`,"dataModel.imageFieldInfo":`Les champs image acceptent les fichiers image et affichent une miniature authentifiée dans les formulaires et tableaux d’enregistrements.`,"dataModel.fileFieldInfo":`Les champs fichier référencent la bibliothèque de fichiers YunCMS et affichent le nom du fichier sélectionné ou un aperçu lorsque possible.`,"dataModel.collectionIcon":`Icône de collection`,"dataModel.searchIcons":`Rechercher des icônes…`,"dataModel.noIcons":`Aucune icône ne correspond à cette recherche.`,"dataModel.collectionSettingsSaved":`Paramètres de collection enregistrés`,"dataModel.collectionSettingsError":`Impossible d’enregistrer les paramètres de collection`,"dataModel.navigationOrderSaved":`Ordre de la barre latérale enregistré`,"dataModel.navigationOrderError":`Impossible d’enregistrer l’ordre de la barre latérale`,"dataModel.hiddenFromContent":`Masquée dans Contenu`,"dataModel.visibleInContent":`Visible dans Contenu`,"dataModel.showInContent":`Afficher dans la navigation Contenu`,"dataModel.showInContentHint":`Contrôle si cette collection apparaît sous Contenu. La masquer ne supprime jamais son schéma ni ses enregistrements.`,"dataModel.sidebarOrder":`Ordre de la barre latérale`,"dataModel.sidebarOrderHint":`Déplacez cette collection vers le haut ou le bas dans la navigation Contenu.`,"dataModel.moveUp":`Monter`,"dataModel.moveDown":`Descendre`,"dataModel.tab.overview":`Vue d’ensemble`,"dataModel.tab.fields":`Champs`,"dataModel.tab.relations":`Relations`,"dataModel.systemCollectionExtensionHint":`Les champs système natifs restent protégés. Les administrateurs de schéma peuvent ajouter des champs personnalisés limités aux collections système Utilisateurs, Fichiers et Rôles.`,"dataModel.addCustomSystemField":`Ajouter un champ personnalisé`,"dataModel.systemFieldsHint":`Les champs natifs sont protégés. Les nouveaux champs créés ici sont marqués comme extensions système personnalisées.`,"dataModel.customSystemField":`Champ système personnalisé`,"dataModel.relationType":`Type de relation`,"dataModel.m2oShort":`Plusieurs enregistrements peuvent pointer vers le même enregistrement cible.`,"dataModel.oneToOne":`Un à un`,"dataModel.o2oShort":`Chaque enregistrement cible ne peut être lié qu’une seule fois depuis ce champ.`,"dataModel.m2mShort":`Les deux collections peuvent contenir plusieurs liens via une jonction.`,"dataModel.existingRelations":`Relations existantes`,"dataModel.existingRelationsHint":`Vérifiez les relations directes et de jonction avant d’en créer une autre.`,"dataModel.noRelations":`Aucune relation pour cette collection pour le moment.`,"dataModel.connectOneToOne":`Connecter un enregistrement à un enregistrement`,"dataModel.o2oDescription":`Utilisez un champ UUID dans {collection}. YunCMS ajoute une clé étrangère et un index unique afin que la même cible ne puisse pas être liée deux fois.`,"dataModel.relationUuidHint":`Créez d’abord un champ UUID facultatif. Les champs UUID de fichier et d’image sont volontairement exclus des champs de relation.`,"dataModel.createO2O":`Créer un à un`,"dataModel.o2oCreated":`Relation un-à-un {collection}.{field} créée`,"dataModel.o2oCreateError":`Impossible de créer la relation un-à-un`,"roles.publicAccessTitle":`Accès public anonyme`,"roles.publicAccessDescription":`Ce rôle s’applique aux requêtes non authentifiées. Conservez un refus par défaut et activez uniquement les collections/actions qui doivent réellement être publiques.`,"roles.accessOverview":`Vue d’ensemble des accès`,"roles.enabledActions":`{count} actions activées`,"roles.restrictedActions":`{count} règles restreintes`,"roles.quickAuditHint":`Activez une action pour un accès simple. Utilisez Configurer uniquement pour des restrictions de champs, lignes ou écriture.`,"roles.systemResource":`Ressource système`,"roles.protected":`Protégé`,"roles.systemAccessHint":`Les collections de projet prennent en charge les restrictions avancées. Utilisateurs et Fichiers peuvent être délégués au niveau des actions ; Rôles uniquement en lecture. L’accès public aux ressources système est toujours bloqué.`}),Vt=Object.freeze({"appearance.brandNameHint":`ロゴの代替テキスト、フォールバック、Studioブランド設定に使用されます。`,"appearance.logoFromFiles":`ファイルからロゴ`,"appearance.logoFromFilesHint":`YunCMSファイルライブラリの既存画像を選択します。外部ロゴURLは使用しません。`,"appearance.useDefaultLogo":`既定のロゴを使用`,"appearance.selectedLogo":`選択済み`,"appearance.searchLogoFiles":`画像ファイルを検索…`,"appearance.loadingLogoFiles":`画像ファイルを読み込み中…`,"appearance.noLogoFiles":`画像ファイルはまだありません。まずファイルでアップロードしてください。`,"appearance.logoFilesLoadError":`画像ファイルを読み込めませんでした`,"nav.expandSidebar":`サイドバーを展開`,"nav.collapseSidebar":`サイドバーを折りたたむ`,"nav.openMenu":`メニューを開く`,"nav.closeMenu":`メニューを閉じる`,"nav.studioSections":`Studioセクション`,"auth.signInDescription":`YunCMSアカウントを使用してください。利用可能なStudio操作は、ロールと権限によって制御されます。`,"auth.brandKicker":`YunCMSワークスペース`,"auth.brandTitle":`あなたのコンテンツ。あなたのルール。`,"auth.brandDescription":`自分のバックエンドを中心に構築された1つのワークスペースで、スキーマ設計、コンテンツ公開、アクセス制御を行えます。`,"auth.brandCapabilities":`ワークスペース機能`,"auth.brandSchema":`スキーマ`,"auth.brandContent":`コンテンツ`,"auth.brandAccess":`アクセス`,"section.usersDescription":`付与されたアクセス範囲内でユーザー、ロール、アカウント状態を管理します。`,"fieldType.string":`短いテキスト`,"fieldType.text":`長いテキスト`,"fieldType.integer":`整数`,"fieldType.bigint":`大きな整数`,"fieldType.decimal":`小数`,"fieldType.boolean":`真 / 偽`,"fieldType.date":`日付`,"fieldType.datetime":`日時`,"fieldType.timestamp":`タイムスタンプ`,"fieldType.json":`JSON`,"fieldType.uuid":`UUID`,"fieldType.file":`ファイル`,"fieldType.image":`画像`,"fieldType.user":`ユーザー`,"fieldBuilder.title":`フィールドを作成`,"fieldBuilder.description":`まずフィールドが表す内容を選び、その型に必要なオプションだけを設定します。`,"fieldBuilder.chooseType":`フィールド型を選択`,"fieldBuilder.commonTypes":`一般的なフィールド`,"fieldBuilder.mediaTypes":`メディア`,"fieldBuilder.advancedTypes":`詳細`,"fieldBuilder.stringDescription":`名前、タイトルなどの短いテキスト。`,"fieldBuilder.textDescription":`長いメモ、説明、本文。`,"fieldBuilder.integerDescription":`整数値。`,"fieldBuilder.bigintDescription":`非常に大きな整数値。`,"fieldBuilder.decimalDescription":`価格、比率、測定された小数値。`,"fieldBuilder.booleanDescription":`シンプルなはい/いいえ、または有効/無効の値。`,"fieldBuilder.dateDescription":`時刻を含まないカレンダー日付。`,"fieldBuilder.datetimeDescription":`日付と時刻の値。`,"fieldBuilder.timestampDescription":`現在時刻の自動設定を含むMySQLタイムスタンプ。`,"fieldBuilder.jsonDescription":`高度な用途向けの構造化JSONデータ。`,"fieldBuilder.uuidDescription":`UUID値。リレーション作成前によく使用されます。`,"fieldBuilder.fileDescription":`YunCMSライブラリ内のファイルへの参照。`,"fieldBuilder.imageDescription":`選択とプレビューに対応した画像参照。`,"fieldBuilder.configureField":`フィールド設定`,"fieldBuilder.configureHint":`保存に関する詳細は、選択したフィールド型に必要になるまで表示されません。`,"fieldBuilder.keyHint":`APIとMySQLで使用する機械向けキー。英字、数字、アンダースコアを使用してください。`,"fieldBuilder.precision":`精度`,"fieldBuilder.scale":`小数桁`,"fieldBuilder.required":`必須フィールド`,"fieldBuilder.requiredHint":`データベース既定値が提供しない限り、新しいレコードには必ず値が必要です。`,"fieldBuilder.defaultValue":`既定値`,"fieldBuilder.defaultHint":`固定値を指定するか、日時フィールドではMySQLに現在時刻を使用させます。`,"fieldBuilder.noDefault":`既定値なし`,"fieldBuilder.fixedValue":`固定値`,"fieldBuilder.currentTime":`現在時刻`,"fieldBuilder.defaultPlaceholder":`既定値…`,"fieldBuilder.autoUpdate":`時刻を自動更新`,"fieldBuilder.autoUpdateHint":`レコードが変更されるたびに、MySQLがこのフィールドを現在時刻へ更新します。`,"fieldBuilder.createField":`フィールドを作成`,"collectionBuilder.accountability":`監査フィールド`,"collectionBuilder.accountabilityHint":`行の作成・変更日時と、実行した認証ユーザーを記録する推奨のシステム管理フィールドです。`,"collectionBuilder.recommended":`推奨`,"collectionBuilder.createdAt":`作成日時`,"collectionBuilder.createdAtHint":`created_at を追加し、レコード作成時に現在時刻を記録します。`,"collectionBuilder.updatedAt":`更新日時`,"collectionBuilder.updatedAtHint":`updated_at を追加し、レコード変更時に自動更新します。`,"collectionBuilder.createdBy":`作成者`,"collectionBuilder.createdByHint":`created_by を追加し、レコードを作成した認証ユーザーを保存します。`,"collectionBuilder.updatedBy":`更新者`,"collectionBuilder.updatedByHint":`updated_by を追加し、最後にレコードを変更した認証ユーザーを保存します。`,"collectionBuilder.systemManaged":`システム管理`,"fileField.uploadFailed":`ファイルをアップロードできませんでした`,"fileField.chooseFile":`ファイルを選択`,"fileField.uploading":`アップロード中…`,"fileField.uploadNew":`新規アップロード`,"fileField.clear":`ファイルをクリア`,"users.createDescription":`ログイン資格情報と任意のロールを設定します。管理画面で作成されたユーザーは自動的にメール確認済みとなり、すぐにサインインできます。`,"users.managedVerifiedHint":`ここで作成されたユーザーは管理者による信頼済みアカウントとして、すぐにメール確認済みになります。確認メールなしでサインインできます。`,"users.roleAccessUnavailable":`ユーザーアクセスは利用できますが、ロール詳細は利用できません。ロール名の表示や割り当てが必要な場合、このロールに「ロール: 読み取り」を付与してください。`,"users.roleUnavailableForCreate":`ロール詳細を利用できないため、このユーザーはロールなしで作成されます。`,"users.roleDetailsUnavailable":`ロール詳細を利用できません`,"dataModel.fieldBuilderHint":`まずデータ種類を選択します。ファイルと画像フィールドはファイル参照を保存し、コンテンツで専用の選択UIを使用できます。`,"dataModel.fieldType":`フィールド型`,"dataModel.imageFieldInfo":`画像フィールドは画像ファイルを受け付け、レコードフォームとテーブルで認証済みサムネイルを表示します。`,"dataModel.fileFieldInfo":`ファイルフィールドはYunCMSファイルライブラリを参照し、可能な場合は選択したファイル名やプレビューを表示します。`,"dataModel.collectionIcon":`コレクションアイコン`,"dataModel.searchIcons":`アイコンを検索…`,"dataModel.noIcons":`この検索に一致するアイコンはありません。`,"dataModel.collectionSettingsSaved":`コレクション設定を保存しました`,"dataModel.collectionSettingsError":`コレクション設定を保存できませんでした`,"dataModel.navigationOrderSaved":`サイドバー順序を保存しました`,"dataModel.navigationOrderError":`サイドバー順序を保存できませんでした`,"dataModel.hiddenFromContent":`コンテンツから非表示`,"dataModel.visibleInContent":`コンテンツに表示`,"dataModel.showInContent":`コンテンツナビゲーションに表示`,"dataModel.showInContentHint":`このコレクションをコンテンツ配下に表示するかを制御します。非表示にしてもスキーマやレコードは削除されません。`,"dataModel.sidebarOrder":`サイドバー順序`,"dataModel.sidebarOrderHint":`このコレクションをコンテンツナビゲーション内で上下に移動します。`,"dataModel.moveUp":`上へ移動`,"dataModel.moveDown":`下へ移動`,"dataModel.tab.overview":`概要`,"dataModel.tab.fields":`フィールド`,"dataModel.tab.relations":`リレーション`,"dataModel.systemCollectionExtensionHint":`ネイティブのシステムフィールドは保護されます。スキーマ管理者は登録済みのユーザー、ファイル、ロールのシステムコレクションに限定されたカスタムフィールドを追加できます。`,"dataModel.addCustomSystemField":`カスタムフィールドを追加`,"dataModel.systemFieldsHint":`ネイティブフィールドは保護されています。ここで作成した新しいフィールドはカスタムシステム拡張としてマークされます。`,"dataModel.customSystemField":`カスタムシステムフィールド`,"dataModel.relationType":`リレーション種類`,"dataModel.m2oShort":`複数のレコードが同じ対象レコードを参照できます。`,"dataModel.oneToOne":`一対一`,"dataModel.o2oShort":`各対象レコードは、このフィールドから1回だけリンクできます。`,"dataModel.m2mShort":`中間コレクションを通じて、両方のコレクションが複数のリンクを持てます。`,"dataModel.existingRelations":`既存のリレーション`,"dataModel.existingRelationsHint":`新しいリレーションを作成する前に、直接リレーションと中間リレーションを確認してください。`,"dataModel.noRelations":`このコレクションにはまだリレーションがありません。`,"dataModel.connectOneToOne":`1レコードを1レコードに接続`,"dataModel.o2oDescription":`{collection} のUUIDフィールドを使用します。YunCMSは外部キーとユニークインデックスを追加し、同じ対象が2回リンクされないようにします。`,"dataModel.relationUuidHint":`まず任意のUUIDフィールドを作成してください。ファイルと画像のUUIDフィールドはリレーションフィールドから意図的に除外されます。`,"dataModel.createO2O":`一対一を作成`,"dataModel.o2oCreated":`一対一リレーション {collection}.{field} を作成しました`,"dataModel.o2oCreateError":`一対一リレーションを作成できませんでした`,"roles.publicAccessTitle":`匿名公開アクセス`,"roles.publicAccessDescription":`このロールは未認証リクエストに適用されます。既定拒否を維持し、公開が必要なコレクション/操作だけを有効にしてください。`,"roles.accessOverview":`アクセス概要`,"roles.enabledActions":`有効な操作 {count} 件`,"roles.restrictedActions":`制限ルール {count} 件`,"roles.quickAuditHint":`単純なアクセスは操作をオンにします。フィールド、行、書き込み制限が必要な場合だけ「設定」を使用してください。`,"roles.systemResource":`システムリソース`,"roles.protected":`保護済み`,"roles.systemAccessHint":`プロジェクトコレクションは高度な制限に対応します。ユーザーとファイルは操作単位で委任でき、ロールは読み取りのみ委任できます。システムリソースへの公開アクセスは常にブロックされます。`}),Ht=Object.freeze({"appearance.brandNameHint":`Usado no texto alternativo do logotipo, fallbacks e configurações de marca do Studio.`,"appearance.logoFromFiles":`Logotipo dos Arquivos`,"appearance.logoFromFilesHint":`Escolha uma imagem existente na biblioteca de arquivos do YunCMS. URLs externas de logotipo não são usadas.`,"appearance.useDefaultLogo":`Usar logotipo padrão`,"appearance.selectedLogo":`Selecionado`,"appearance.searchLogoFiles":`Buscar arquivos de imagem…`,"appearance.loadingLogoFiles":`Carregando arquivos de imagem…`,"appearance.noLogoFiles":`Ainda não há arquivos de imagem disponíveis. Envie um em Arquivos primeiro.`,"appearance.logoFilesLoadError":`Os arquivos de imagem não puderam ser carregados`,"nav.expandSidebar":`Expandir barra lateral`,"nav.collapseSidebar":`Recolher barra lateral`,"nav.openMenu":`Abrir menu`,"nav.closeMenu":`Fechar menu`,"nav.studioSections":`Seções do Studio`,"auth.signInDescription":`Use sua conta YunCMS. As ações disponíveis no Studio são aplicadas de acordo com sua função e permissões.`,"auth.brandKicker":`Espaço de trabalho YunCMS`,"auth.brandTitle":`Seu conteúdo. Suas regras.`,"auth.brandDescription":`Modele o esquema, publique conteúdo e controle o acesso em um espaço de trabalho focado, construído sobre seu próprio backend.`,"auth.brandCapabilities":`Recursos do espaço de trabalho`,"auth.brandSchema":`Esquema`,"auth.brandContent":`Conteúdo`,"auth.brandAccess":`Acesso`,"section.usersDescription":`Gerencie usuários, funções e status de conta dentro do acesso concedido a você.`,"fieldType.string":`Texto curto`,"fieldType.text":`Texto longo`,"fieldType.integer":`Inteiro`,"fieldType.bigint":`Inteiro grande`,"fieldType.decimal":`Decimal`,"fieldType.boolean":`Verdadeiro / falso`,"fieldType.date":`Data`,"fieldType.datetime":`Data e hora`,"fieldType.timestamp":`Timestamp`,"fieldType.json":`JSON`,"fieldType.uuid":`UUID`,"fieldType.file":`Arquivo`,"fieldType.image":`Imagem`,"fieldType.user":`Usuário`,"fieldBuilder.title":`Criar um campo`,"fieldBuilder.description":`Primeiro escolha o que o campo representa e depois configure apenas as opções relevantes para esse tipo.`,"fieldBuilder.chooseType":`Escolha um tipo de campo`,"fieldBuilder.commonTypes":`Campos comuns`,"fieldBuilder.mediaTypes":`Mídia`,"fieldBuilder.advancedTypes":`Avançados`,"fieldBuilder.stringDescription":`Nomes, títulos e outros textos curtos.`,"fieldBuilder.textDescription":`Notas longas, descrições e textos de conteúdo.`,"fieldBuilder.integerDescription":`Valores numéricos inteiros.`,"fieldBuilder.bigintDescription":`Valores numéricos inteiros muito grandes.`,"fieldBuilder.decimalDescription":`Preços, taxas e valores decimais medidos.`,"fieldBuilder.booleanDescription":`Um valor simples sim/não ou habilitado/desabilitado.`,"fieldBuilder.dateDescription":`Uma data de calendário sem horário.`,"fieldBuilder.datetimeDescription":`Um valor de data e hora.`,"fieldBuilder.timestampDescription":`Um timestamp MySQL com automação de horário atual.`,"fieldBuilder.jsonDescription":`Dados JSON estruturados para casos de uso avançados.`,"fieldBuilder.uuidDescription":`Um valor UUID, normalmente usado antes de criar uma relação.`,"fieldBuilder.fileDescription":`Uma referência a um arquivo na biblioteca YunCMS.`,"fieldBuilder.imageDescription":`Uma referência de imagem com seletor e pré-visualização.`,"fieldBuilder.configureField":`Configurações do campo`,"fieldBuilder.configureHint":`Os detalhes de armazenamento ficam fora do caminho até serem relevantes para o tipo de campo selecionado.`,"fieldBuilder.keyHint":`Chave de máquina usada pela API e pelo MySQL. Use letras, números e sublinhados.`,"fieldBuilder.precision":`Precisão`,"fieldBuilder.scale":`Casas decimais`,"fieldBuilder.required":`Campo obrigatório`,"fieldBuilder.requiredHint":`Todo novo registro deve conter um valor, a menos que um padrão do banco de dados o forneça.`,"fieldBuilder.defaultValue":`Valor padrão`,"fieldBuilder.defaultHint":`Use um valor fixo ou deixe o MySQL usar a hora atual em campos de data e hora.`,"fieldBuilder.noDefault":`Sem padrão`,"fieldBuilder.fixedValue":`Valor fixo`,"fieldBuilder.currentTime":`Hora atual`,"fieldBuilder.defaultPlaceholder":`Valor padrão…`,"fieldBuilder.autoUpdate":`Atualizar horário automaticamente`,"fieldBuilder.autoUpdateHint":`O MySQL atualiza este campo para a hora atual sempre que o registro muda.`,"fieldBuilder.createField":`Criar campo`,"collectionBuilder.accountability":`Campos de auditoria`,"collectionBuilder.accountabilityHint":`Campos gerenciados pelo sistema recomendados para registrar quando uma linha foi criada ou alterada e qual usuário autenticado realizou a ação.`,"collectionBuilder.recommended":`Recomendado`,"collectionBuilder.createdAt":`Data de criação`,"collectionBuilder.createdAtHint":`Adiciona created_at e registra a hora atual quando um registro é criado.`,"collectionBuilder.updatedAt":`Data de atualização`,"collectionBuilder.updatedAtHint":`Adiciona updated_at e o atualiza automaticamente quando um registro muda.`,"collectionBuilder.createdBy":`Criado por`,"collectionBuilder.createdByHint":`Adiciona created_by e armazena o usuário autenticado que criou o registro.`,"collectionBuilder.updatedBy":`Atualizado por`,"collectionBuilder.updatedByHint":`Adiciona updated_by e armazena o usuário autenticado que alterou o registro mais recentemente.`,"collectionBuilder.systemManaged":`Gerenciado pelo sistema`,"fileField.uploadFailed":`O arquivo não pôde ser enviado`,"fileField.chooseFile":`Escolher arquivo`,"fileField.uploading":`Enviando…`,"fileField.uploadNew":`Enviar novo`,"fileField.clear":`Limpar arquivo`,"users.createDescription":`Defina credenciais de acesso e uma função opcional. Usuários criados pela administração são marcados automaticamente como e-mail verificado e podem entrar imediatamente.`,"users.managedVerifiedHint":`Usuários criados aqui são contas confiáveis criadas pela administração e recebem verificação de e-mail imediatamente. Eles podem entrar sem e-mail de verificação.`,"users.roleAccessUnavailable":`O acesso ao usuário está disponível, mas os detalhes da função não. Conceda Funções: Leitura a esta função caso ela deva ver nomes de funções ou atribuí-las.`,"users.roleUnavailableForCreate":`Os detalhes das funções não estão disponíveis, então este usuário será criado sem função.`,"users.roleDetailsUnavailable":`Detalhes da função indisponíveis`,"dataModel.fieldBuilderHint":`Escolha primeiro o tipo de dado. Campos de arquivo e imagem armazenam uma referência e recebem um seletor dedicado em Conteúdo.`,"dataModel.fieldType":`Tipo de campo`,"dataModel.imageFieldInfo":`Campos de imagem aceitam arquivos de imagem e mostram uma miniatura autenticada em formulários e tabelas de registros.`,"dataModel.fileFieldInfo":`Campos de arquivo referenciam a biblioteca YunCMS e mostram o nome do arquivo selecionado ou uma pré-visualização quando possível.`,"dataModel.collectionIcon":`Ícone da coleção`,"dataModel.searchIcons":`Buscar ícones…`,"dataModel.noIcons":`Nenhum ícone corresponde a esta busca.`,"dataModel.collectionSettingsSaved":`Configurações da coleção salvas`,"dataModel.collectionSettingsError":`As configurações da coleção não puderam ser salvas`,"dataModel.navigationOrderSaved":`Ordem da barra lateral salva`,"dataModel.navigationOrderError":`A ordem da barra lateral não pôde ser salva`,"dataModel.hiddenFromContent":`Oculto de Conteúdo`,"dataModel.visibleInContent":`Visível em Conteúdo`,"dataModel.showInContent":`Mostrar na navegação de Conteúdo`,"dataModel.showInContentHint":`Controla se esta coleção aparece em Conteúdo. Ocultá-la nunca remove seu esquema ou registros.`,"dataModel.sidebarOrder":`Ordem da barra lateral`,"dataModel.sidebarOrderHint":`Mova esta coleção para cima ou para baixo na navegação de Conteúdo.`,"dataModel.moveUp":`Mover para cima`,"dataModel.moveDown":`Mover para baixo`,"dataModel.tab.overview":`Visão geral`,"dataModel.tab.fields":`Campos`,"dataModel.tab.relations":`Relações`,"dataModel.systemCollectionExtensionHint":`Campos nativos do sistema permanecem protegidos. Administradores de esquema podem adicionar campos personalizados limitados às coleções de sistema Usuários, Arquivos e Funções.`,"dataModel.addCustomSystemField":`Adicionar campo personalizado`,"dataModel.systemFieldsHint":`Campos nativos são protegidos. Novos campos criados aqui são marcados como extensões personalizadas do sistema.`,"dataModel.customSystemField":`Campo personalizado do sistema`,"dataModel.relationType":`Tipo de relação`,"dataModel.m2oShort":`Muitos registros podem apontar para o mesmo registro de destino.`,"dataModel.oneToOne":`Um para um`,"dataModel.o2oShort":`Cada registro de destino pode ser vinculado apenas uma vez por este campo.`,"dataModel.m2mShort":`Ambas as coleções podem conter muitos vínculos por meio de uma junção.`,"dataModel.existingRelations":`Relações existentes`,"dataModel.existingRelationsHint":`Revise relações diretas e de junção antes de criar outra.`,"dataModel.noRelations":`Ainda não há relações para esta coleção.`,"dataModel.connectOneToOne":`Conectar um registro a um registro`,"dataModel.o2oDescription":`Use um campo UUID em {collection}. O YunCMS adiciona uma chave estrangeira e um índice único para que o mesmo destino não seja vinculado duas vezes.`,"dataModel.relationUuidHint":`Crie primeiro um campo UUID opcional. Campos UUID de arquivo e imagem são intencionalmente excluídos dos campos de relação.`,"dataModel.createO2O":`Criar um-para-um`,"dataModel.o2oCreated":`Relação um-para-um {collection}.{field} criada`,"dataModel.o2oCreateError":`A relação um-para-um não pôde ser criada`,"roles.publicAccessTitle":`Acesso público anônimo`,"roles.publicAccessDescription":`Esta função se aplica a solicitações não autenticadas. Mantenha negar por padrão e habilite apenas as coleções/ações que realmente precisam ser públicas.`,"roles.accessOverview":`Visão geral de acesso`,"roles.enabledActions":`{count} ações habilitadas`,"roles.restrictedActions":`{count} regras restritas`,"roles.quickAuditHint":`Ative uma ação para acesso simples. Use Configurar apenas para restrições de campo, linha ou escrita.`,"roles.systemResource":`Recurso do sistema`,"roles.protected":`Protegido`,"roles.systemAccessHint":`Coleções de projeto aceitam restrições avançadas. Usuários e Arquivos podem ser delegados por ação; Funções só podem ser delegadas para leitura. O acesso público a recursos do sistema é sempre bloqueado.`}),Ut=Object.freeze({"appearance.brandNameHint":`Logo alternatif metni, yedek görünüm ve Studio marka ayarlarında kullanılır.`,"appearance.logoFromFiles":`Dosyalardan logo seç`,"appearance.logoFromFilesHint":`YunCMS dosya kütüphanesindeki mevcut bir görseli seçin. Harici logo bağlantısı kullanılmaz.`,"appearance.useDefaultLogo":`Varsayılan logoyu kullan`,"appearance.selectedLogo":`Seçili`,"appearance.searchLogoFiles":`Görsel dosyalarında ara…`,"appearance.loadingLogoFiles":`Görsel dosyaları yükleniyor…`,"appearance.noLogoFiles":`Henüz kullanılabilir görsel yok. Önce Dosyalar bölümünden bir görsel yükleyin.`,"appearance.logoFilesLoadError":`Görsel dosyaları yüklenemedi`,"nav.expandSidebar":`Kenar çubuğunu aç`,"nav.collapseSidebar":`Kenar çubuğunu daralt`,"nav.openMenu":`Menüyü aç`,"nav.closeMenu":`Menüyü kapat`,"nav.studioSections":`Studio bölümleri`,"auth.signInDescription":`YunCMS hesabınızla giriş yapın. Kullanabileceğiniz Studio işlemleri rol ve izinleriniz tarafından belirlenir.`,"auth.brandKicker":`YunCMS çalışma alanı`,"auth.brandTitle":`İçeriğin. Kuralların.`,"auth.brandDescription":`Şemayı şekillendirin, içeriği yayınlayın ve erişimi kendi backend’iniz için tasarlanmış tek bir çalışma alanından yönetin.`,"auth.brandCapabilities":`Çalışma alanı yetenekleri`,"auth.brandSchema":`Şema`,"auth.brandContent":`İçerik`,"auth.brandAccess":`Erişim`,"section.usersDescription":`Size verilen erişim kapsamında kullanıcıları, rolleri ve hesap durumlarını yönetin.`,"fieldType.string":`Kısa metin`,"fieldType.text":`Uzun metin`,"fieldType.integer":`Tam sayı`,"fieldType.bigint":`Büyük tam sayı`,"fieldType.decimal":`Ondalık sayı`,"fieldType.boolean":`Doğru / yanlış`,"fieldType.date":`Tarih`,"fieldType.datetime":`Tarih ve saat`,"fieldType.timestamp":`Zaman damgası`,"fieldType.json":`JSON`,"fieldType.uuid":`UUID`,"fieldType.file":`Dosya`,"fieldType.image":`Görsel`,"fieldType.user":`Kullanıcı`,"fieldBuilder.title":`Alan oluştur`,"fieldBuilder.description":`Önce alanın neyi temsil ettiğini seçin; ardından yalnız o veri türü için gerekli ayarları yapılandırın.`,"fieldBuilder.chooseType":`Alan türünü seçin`,"fieldBuilder.commonTypes":`Sık kullanılan alanlar`,"fieldBuilder.mediaTypes":`Medya`,"fieldBuilder.advancedTypes":`Gelişmiş`,"fieldBuilder.stringDescription":`Ad, başlık ve diğer kısa metinler.`,"fieldBuilder.textDescription":`Uzun not, açıklama ve içerik metinleri.`,"fieldBuilder.integerDescription":`Tam sayı değerleri.`,"fieldBuilder.bigintDescription":`Çok büyük tam sayı değerleri.`,"fieldBuilder.decimalDescription":`Fiyat, oran ve ondalıklı ölçüm değerleri.`,"fieldBuilder.booleanDescription":`Evet/hayır veya açık/kapalı değeri.`,"fieldBuilder.dateDescription":`Saat içermeyen takvim tarihi.`,"fieldBuilder.datetimeDescription":`Tarih ve saat değeri.`,"fieldBuilder.timestampDescription":`MySQL zaman damgası; güncel zaman otomasyonlarını destekler.`,"fieldBuilder.jsonDescription":`Gelişmiş kullanım için yapılandırılmış JSON verisi.`,"fieldBuilder.uuidDescription":`Genellikle ilişki oluşturmadan önce kullanılan UUID değeri.`,"fieldBuilder.fileDescription":`YunCMS dosya kütüphanesindeki bir dosyaya referans.`,"fieldBuilder.imageDescription":`Seçici ve önizleme desteği olan görsel referansı.`,"fieldBuilder.configureField":`Alan ayarları`,"fieldBuilder.configureHint":`Depolama ayrıntıları yalnız seçilen alan türü için gerektiğinde gösterilir.`,"fieldBuilder.keyHint":`API ve MySQL tarafından kullanılan makine anahtarıdır. Harf, rakam ve alt çizgi kullanın.`,"fieldBuilder.precision":`Hassasiyet`,"fieldBuilder.scale":`Ondalık basamak`,"fieldBuilder.required":`Zorunlu alan`,"fieldBuilder.requiredHint":`Veritabanı varsayılanı sağlamıyorsa her yeni kayıtta bir değer bulunmalıdır.`,"fieldBuilder.defaultValue":`Varsayılan değer`,"fieldBuilder.defaultHint":`Sabit bir değer kullanın veya tarih-saat alanlarında MySQL’in geçerli zamanı atamasını sağlayın.`,"fieldBuilder.noDefault":`Varsayılan yok`,"fieldBuilder.fixedValue":`Sabit değer`,"fieldBuilder.currentTime":`Geçerli zaman`,"fieldBuilder.defaultPlaceholder":`Varsayılan değer…`,"fieldBuilder.autoUpdate":`Değişiklikte zamanı otomatik güncelle`,"fieldBuilder.autoUpdateHint":`Kayıt her değiştiğinde MySQL bu alanı geçerli zamanla günceller.`,"fieldBuilder.createField":`Alanı oluştur`,"collectionBuilder.accountability":`Kayıt takip alanları`,"collectionBuilder.accountabilityHint":`Bir kaydın ne zaman ve hangi kullanıcı tarafından oluşturulduğunu/değiştirildiğini otomatik tutan önerilen sistem alanları.`,"collectionBuilder.recommended":`Önerilen`,"collectionBuilder.createdAt":`Oluşturulma tarihi`,"collectionBuilder.createdAtHint":`created_at alanını ekler ve kayıt oluşturulurken geçerli zamanı otomatik yazar.`,"collectionBuilder.updatedAt":`Güncellenme tarihi`,"collectionBuilder.updatedAtHint":`updated_at alanını ekler ve kayıt değiştiğinde zamanı otomatik yeniler.`,"collectionBuilder.createdBy":`Oluşturan kullanıcı`,"collectionBuilder.createdByHint":`created_by alanını ekler ve kaydı oluşturan giriş yapmış kullanıcıyı saklar.`,"collectionBuilder.updatedBy":`Güncelleyen kullanıcı`,"collectionBuilder.updatedByHint":`updated_by alanını ekler ve kaydı son değiştiren giriş yapmış kullanıcıyı saklar.`,"collectionBuilder.systemManaged":`Sistem yönetimli`,"fileField.uploadFailed":`Dosya yüklenemedi`,"fileField.chooseFile":`Dosya seç`,"fileField.uploading":`Yükleniyor…`,"fileField.uploadNew":`Yeni dosya yükle`,"fileField.clear":`Dosyayı temizle`,"users.createDescription":`Giriş bilgilerini ve isteğe bağlı rolü belirleyin. Yönetim panelinden oluşturulan kullanıcıların e-postası otomatik doğrulanmış sayılır ve hemen giriş yapabilirler.`,"users.managedVerifiedHint":`Buradan oluşturulan kullanıcılar yönetim tarafından güvenilen hesaplar olarak kabul edilir ve e-posta adresleri anında doğrulanmış sayılır. Doğrulama e-postası beklemeden giriş yapabilirler.`,"users.roleAccessUnavailable":`Kullanıcı erişiminiz var ancak rol ayrıntılarını görme yetkiniz yok. Rol adlarını görmek veya rol atamak için bu role Roller: Okuma izni verin.`,"users.roleUnavailableForCreate":`Rol ayrıntılarına erişilemediği için bu kullanıcı rol atanmadan oluşturulacak.`,"users.roleDetailsUnavailable":`Rol ayrıntıları kullanılamıyor`,"dataModel.fieldBuilderHint":`Önce veri türünü seçin. Dosya ve görsel alanları bir dosya referansı tutar ve İçerik ekranında özel seçici kullanır.`,"dataModel.fieldType":`Alan türü`,"dataModel.imageFieldInfo":`Görsel alanları yalnız görsel dosyaları seçtirir ve kayıt formu ile tabloda güvenli küçük önizleme gösterir.`,"dataModel.fileFieldInfo":`Dosya alanları YunCMS dosya kütüphanesine bağlanır; seçilen dosyanın adı veya mümkünse önizlemesi gösterilir.`,"dataModel.collectionIcon":`Koleksiyon ikonu`,"dataModel.searchIcons":`İkon ara…`,"dataModel.noIcons":`Bu aramayla eşleşen ikon yok.`,"dataModel.collectionSettingsSaved":`Koleksiyon ayarları kaydedildi`,"dataModel.collectionSettingsError":`Koleksiyon ayarları kaydedilemedi`,"dataModel.navigationOrderSaved":`Kenar çubuğu sırası kaydedildi`,"dataModel.navigationOrderError":`Kenar çubuğu sırası kaydedilemedi`,"dataModel.hiddenFromContent":`İçerik menüsünde gizli`,"dataModel.visibleInContent":`İçerik menüsünde görünür`,"dataModel.showInContent":`İçerik menüsünde göster`,"dataModel.showInContentHint":`Bu koleksiyonun İçerik altında görünüp görünmeyeceğini belirler. Gizlemek şemayı veya kayıtları silmez.`,"dataModel.sidebarOrder":`Kenar çubuğu sırası`,"dataModel.sidebarOrderHint":`Bu koleksiyonu İçerik menüsünde yukarı veya aşağı taşıyın.`,"dataModel.moveUp":`Yukarı taşı`,"dataModel.moveDown":`Aşağı taşı`,"dataModel.tab.overview":`Genel`,"dataModel.tab.fields":`Alanlar`,"dataModel.tab.relations":`İlişkiler`,"dataModel.systemCollectionExtensionHint":`Yerleşik sistem alanları korumalı kalır. Şema yöneticileri kayıtlı Kullanıcılar, Dosyalar ve Roller sistem koleksiyonlarına kontrollü özel alanlar ekleyebilir.`,"dataModel.addCustomSystemField":`Özel alan ekle`,"dataModel.systemFieldsHint":`Yerleşik alanlar korumalıdır. Buradan oluşturulan yeni alanlar özel sistem uzantısı olarak işaretlenir.`,"dataModel.customSystemField":`Özel sistem alanı`,"dataModel.relationType":`İlişki türü`,"dataModel.m2oShort":`Birden fazla kayıt aynı hedef kayda bağlanabilir.`,"dataModel.oneToOne":`Bire bir`,"dataModel.o2oShort":`Bu alan üzerinden her hedef kayıt yalnız bir kez bağlanabilir.`,"dataModel.m2mShort":`İki koleksiyon bağlantı koleksiyonu üzerinden çok sayıda kayıtla bağlanabilir.`,"dataModel.existingRelations":`Mevcut ilişkiler`,"dataModel.existingRelationsHint":`Yeni ilişki oluşturmadan önce doğrudan ve bağlantı ilişkilerini gözden geçirin.`,"dataModel.noRelations":`Bu koleksiyon için henüz ilişki yok.`,"dataModel.connectOneToOne":`Bir kaydı tek bir kayda bağla`,"dataModel.o2oDescription":`{collection} içinde bir UUID alanı kullanın. YunCMS foreign key ve unique index ekleyerek aynı hedefin iki kez bağlanmasını engeller.`,"dataModel.relationUuidHint":`Önce isteğe bağlı bir UUID alanı oluşturun. Dosya ve görsel UUID alanları ilişki alanlarından özellikle hariç tutulur.`,"dataModel.createO2O":`Bire bir ilişki oluştur`,"dataModel.o2oCreated":`{collection}.{field} bire bir ilişkisi oluşturuldu`,"dataModel.o2oCreateError":`Bire bir ilişki oluşturulamadı`,"roles.publicAccessTitle":`Anonim public erişim`,"roles.publicAccessDescription":`Bu rol giriş yapmamış isteklere uygulanır. Varsayılan olarak kapalı tutun ve yalnız gerçekten public olması gereken koleksiyon/işlemleri açın.`,"roles.accessOverview":`Erişim özeti`,"roles.enabledActions":`{count} açık işlem`,"roles.restrictedActions":`{count} kısıtlı kural`,"roles.quickAuditHint":`Basit erişim için işlemi açın. Alan, satır veya yazma kısıtı gerekiyorsa yalnızca Yapılandır seçeneğini kullanın.`,"roles.systemResource":`Sistem kaynağı`,"roles.protected":`Korumalı`,"roles.systemAccessHint":`Proje koleksiyonlarında gelişmiş kısıtlar kullanılabilir. Kullanıcılar ve Dosyalar işlem bazında devredilebilir; Roller yalnız okuma için devredilebilir. Public rolün sistem kaynaklarına erişimi her zaman engellenir.`}),Wt=Object.freeze({"appearance.brandNameHint":`用于标志替代文本、回退显示和 Studio 品牌设置。`,"appearance.logoFromFiles":`从文件选择标志`,"appearance.logoFromFilesHint":`从 YunCMS 文件资源库中选择现有图片。不使用外部标志 URL。`,"appearance.useDefaultLogo":`使用默认标志`,"appearance.selectedLogo":`已选择`,"appearance.searchLogoFiles":`搜索图片文件…`,"appearance.loadingLogoFiles":`正在加载图片文件…`,"appearance.noLogoFiles":`暂无可用图片文件。请先在文件中上传。`,"appearance.logoFilesLoadError":`无法加载图片文件`,"nav.expandSidebar":`展开侧边栏`,"nav.collapseSidebar":`折叠侧边栏`,"nav.openMenu":`打开菜单`,"nav.closeMenu":`关闭菜单`,"nav.studioSections":`Studio 区域`,"auth.signInDescription":`使用您的 YunCMS 账户。Studio 中可用的操作由您的角色和权限控制。`,"auth.brandKicker":`YunCMS 工作区`,"auth.brandTitle":`您的内容,您的规则。`,"auth.brandDescription":`在一个围绕您自己的后端构建的专注工作区中设计架构、发布内容并控制访问。`,"auth.brandCapabilities":`工作区能力`,"auth.brandSchema":`架构`,"auth.brandContent":`内容`,"auth.brandAccess":`访问`,"section.usersDescription":`在已授予的访问范围内管理用户、角色和账户状态。`,"fieldType.string":`短文本`,"fieldType.text":`长文本`,"fieldType.integer":`整数`,"fieldType.bigint":`大整数`,"fieldType.decimal":`小数`,"fieldType.boolean":`真 / 假`,"fieldType.date":`日期`,"fieldType.datetime":`日期和时间`,"fieldType.timestamp":`时间戳`,"fieldType.json":`JSON`,"fieldType.uuid":`UUID`,"fieldType.file":`文件`,"fieldType.image":`图片`,"fieldType.user":`用户`,"fieldBuilder.title":`创建字段`,"fieldBuilder.description":`先选择字段表示的内容,然后仅配置该类型真正需要的选项。`,"fieldBuilder.chooseType":`选择字段类型`,"fieldBuilder.commonTypes":`常用字段`,"fieldBuilder.mediaTypes":`媒体`,"fieldBuilder.advancedTypes":`高级`,"fieldBuilder.stringDescription":`名称、标题和其他短文本。`,"fieldBuilder.textDescription":`长备注、描述和正文文本。`,"fieldBuilder.integerDescription":`整数数值。`,"fieldBuilder.bigintDescription":`非常大的整数数值。`,"fieldBuilder.decimalDescription":`价格、比率和测量的小数值。`,"fieldBuilder.booleanDescription":`简单的是/否或启用/禁用值。`,"fieldBuilder.dateDescription":`不含时间的日历日期。`,"fieldBuilder.datetimeDescription":`日期和时间值。`,"fieldBuilder.timestampDescription":`带当前时间自动化的 MySQL 时间戳。`,"fieldBuilder.jsonDescription":`用于高级场景的结构化 JSON 数据。`,"fieldBuilder.uuidDescription":`UUID 值,通常在创建关系前使用。`,"fieldBuilder.fileDescription":`指向 YunCMS 资源库中文件的引用。`,"fieldBuilder.imageDescription":`支持选择器和预览的图片引用。`,"fieldBuilder.configureField":`字段设置`,"fieldBuilder.configureHint":`存储细节会在与所选字段类型相关时才显示。`,"fieldBuilder.keyHint":`API 和 MySQL 使用的机器键。请使用字母、数字和下划线。`,"fieldBuilder.precision":`精度`,"fieldBuilder.scale":`小数位数`,"fieldBuilder.required":`必填字段`,"fieldBuilder.requiredHint":`除非数据库默认值提供内容,否则每条新记录都必须包含值。`,"fieldBuilder.defaultValue":`默认值`,"fieldBuilder.defaultHint":`使用固定值,或让 MySQL 为日期时间字段使用当前时间。`,"fieldBuilder.noDefault":`无默认值`,"fieldBuilder.fixedValue":`固定值`,"fieldBuilder.currentTime":`当前时间`,"fieldBuilder.defaultPlaceholder":`默认值…`,"fieldBuilder.autoUpdate":`自动更新时间`,"fieldBuilder.autoUpdateHint":`每当记录变化时,MySQL 会将此字段刷新为当前时间。`,"fieldBuilder.createField":`创建字段`,"collectionBuilder.accountability":`审计字段`,"collectionBuilder.accountabilityHint":`推荐的系统管理字段,用于记录行的创建/更改时间以及执行操作的认证用户。`,"collectionBuilder.recommended":`推荐`,"collectionBuilder.createdAt":`创建时间`,"collectionBuilder.createdAtHint":`添加 created_at,并在记录创建时写入当前时间。`,"collectionBuilder.updatedAt":`更新时间`,"collectionBuilder.updatedAtHint":`添加 updated_at,并在记录更改时自动刷新。`,"collectionBuilder.createdBy":`创建者`,"collectionBuilder.createdByHint":`添加 created_by,并保存创建记录的认证用户。`,"collectionBuilder.updatedBy":`更新者`,"collectionBuilder.updatedByHint":`添加 updated_by,并保存最近修改记录的认证用户。`,"collectionBuilder.systemManaged":`系统管理`,"fileField.uploadFailed":`无法上传文件`,"fileField.chooseFile":`选择文件`,"fileField.uploading":`上传中…`,"fileField.uploadNew":`上传新文件`,"fileField.clear":`清除文件`,"users.createDescription":`设置登录凭据和可选角色。由管理端创建的用户会自动标记为邮箱已验证,并可立即登录。`,"users.managedVerifiedHint":`这里创建的用户属于受信任的管理端账户,会立即标记为邮箱已验证,无需验证邮件即可登录。`,"users.roleAccessUnavailable":`用户访问可用,但角色详情不可用。如果此角色需要查看角色名称或分配角色,请授予“角色:读取”。`,"users.roleUnavailableForCreate":`角色详情不可用,因此此用户将以无角色方式创建。`,"users.roleDetailsUnavailable":`角色详情不可用`,"dataModel.fieldBuilderHint":`先选择数据类型。文件和图片字段会存储文件引用,并在内容中使用专用选择器。`,"dataModel.fieldType":`字段类型`,"dataModel.imageFieldInfo":`图片字段接受图片文件,并在记录表单和表格中显示经过认证的缩略图预览。`,"dataModel.fileFieldInfo":`文件字段引用 YunCMS 文件资源库,并在可能时显示所选文件名或预览。`,"dataModel.collectionIcon":`集合图标`,"dataModel.searchIcons":`搜索图标…`,"dataModel.noIcons":`没有图标匹配此搜索。`,"dataModel.collectionSettingsSaved":`集合设置已保存`,"dataModel.collectionSettingsError":`无法保存集合设置`,"dataModel.navigationOrderSaved":`侧边栏顺序已保存`,"dataModel.navigationOrderError":`无法保存侧边栏顺序`,"dataModel.hiddenFromContent":`从内容中隐藏`,"dataModel.visibleInContent":`在内容中可见`,"dataModel.showInContent":`显示在内容导航中`,"dataModel.showInContentHint":`控制此集合是否显示在内容下。隐藏不会删除其架构或记录。`,"dataModel.sidebarOrder":`侧边栏顺序`,"dataModel.sidebarOrderHint":`在内容导航中上下移动此集合。`,"dataModel.moveUp":`上移`,"dataModel.moveDown":`下移`,"dataModel.tab.overview":`概览`,"dataModel.tab.fields":`字段`,"dataModel.tab.relations":`关系`,"dataModel.systemCollectionExtensionHint":`原生系统字段保持受保护。架构管理员可以向已注册的用户、文件和角色系统集合添加受限的自定义字段。`,"dataModel.addCustomSystemField":`添加自定义字段`,"dataModel.systemFieldsHint":`原生字段受保护。这里创建的新字段会标记为自定义系统扩展。`,"dataModel.customSystemField":`自定义系统字段`,"dataModel.relationType":`关系类型`,"dataModel.m2oShort":`多条记录可以指向同一目标记录。`,"dataModel.oneToOne":`一对一`,"dataModel.o2oShort":`每条目标记录只能通过此字段链接一次。`,"dataModel.m2mShort":`两个集合都可以通过中间集合拥有多个链接。`,"dataModel.existingRelations":`现有关系`,"dataModel.existingRelationsHint":`创建新关系前,请检查直接关系和中间关系。`,"dataModel.noRelations":`此集合暂无关系。`,"dataModel.connectOneToOne":`将一条记录连接到一条记录`,"dataModel.o2oDescription":`使用 {collection} 中的 UUID 字段。YunCMS 会添加外键和唯一索引,防止同一目标被链接两次。`,"dataModel.relationUuidHint":`请先创建一个可选 UUID 字段。文件和图片 UUID 字段会被有意排除在关系字段之外。`,"dataModel.createO2O":`创建一对一`,"dataModel.o2oCreated":`已创建一对一关系 {collection}.{field}`,"dataModel.o2oCreateError":`无法创建一对一关系`,"roles.publicAccessTitle":`匿名公开访问`,"roles.publicAccessDescription":`此角色用于未认证请求。请保持默认拒绝,仅启用真正需要公开的集合/操作。`,"roles.accessOverview":`访问概览`,"roles.enabledActions":`{count} 个已启用操作`,"roles.restrictedActions":`{count} 条受限规则`,"roles.quickAuditHint":`简单访问只需启用操作。仅在需要字段、行或写入限制时使用“配置”。`,"roles.systemResource":`系统资源`,"roles.protected":`受保护`,"roles.systemAccessHint":`项目集合支持高级限制。用户和文件可按操作委派;角色只能委派读取。系统资源的公开访问始终被阻止。`}),Gt=Object.freeze({"fieldBuilder.displayName":`Anzeigename`,"fieldBuilder.displayNameHint":`Schreibe ihn natürlich. Leerzeichen, türkische Zeichen und anderer Unicode-Text sind möglich.`,"fieldBuilder.apiKey":`API-Schlüssel`,"fieldBuilder.apiKeyHint":`Wird automatisch für MySQL und die REST-API erzeugt. Du kannst ihn vor dem Erstellen des Feldes bearbeiten.`,"fieldBuilder.titleExample":`Produkttitel`,"fieldBuilder.coverImageExample":`Titelbild`,"fieldBuilder.attachmentExample":`Anhang`,"filePicker.title":`Aus Dateien auswählen`,"filePicker.description":`Durchsuche die Dateibibliothek und wähle eine Ressource aus, ohne diesen Bildschirm zu verlassen.`,"filePicker.searchPlaceholder":`Nach Titel, Dateiname oder MIME-Typ suchen…`,"filePicker.loading":`Dateien werden geladen…`,"filePicker.noFiles":`Keine Dateien entsprechen dieser Suche.`,"filePicker.noImages":`Keine Bilder entsprechen dieser Suche.`,"filePicker.loadError":`Dateien konnten nicht geladen werden`,"filePicker.useSelected":`Auswahl verwenden`,"appearance.faviconFromFiles":`Favicon`,"appearance.faviconFromFilesHint":`Wähle das Browser-/Tab-Symbol aus Dateien. Wenn nichts festgelegt ist, verwendet YunCMS das offizielle Yunsoft-Symbol.`,"appearance.defaultAsset":`Standardressource wird verwendet`,"appearance.defaultLogoHint":`Designabhängiges Yunsoft-Logo`,"appearance.defaultFaviconHint":`Offizielles Yunsoft-Symbol`,"appearance.selectFromFiles":`Aus Dateien auswählen`,"appearance.useDefaultAsset":`Standard verwenden`,"files.preview":`Vorschau`,"files.openPreview":`Vorschau für {file}`,"dataModel.displayName":`Anzeigename`,"dataModel.displayNameHint":`Menschenlesbarer Name in Studio. Leerzeichen und Unicode-Zeichen werden unterstützt.`,"dataModel.apiKey":`API-/Datenbankschlüssel`,"dataModel.apiKeyHint":`Stabiler normalisierter Schlüssel für REST-URLs, Payloads und MySQL. Eine spätere Änderung des Anzeigenamens benennt diesen Schlüssel nicht um.`}),Kt=Object.freeze({"fieldBuilder.displayName":`Display name`,"fieldBuilder.displayNameHint":`Write this naturally. Spaces, Turkish characters and other Unicode text are welcome.`,"fieldBuilder.apiKey":`API key`,"fieldBuilder.apiKeyHint":`Generated automatically for MySQL and the REST API. You can edit it before creating the field.`,"fieldBuilder.titleExample":`Product title`,"fieldBuilder.coverImageExample":`Cover image`,"fieldBuilder.attachmentExample":`Attachment`,"filePicker.title":`Select from Files`,"filePicker.description":`Search the file library and select one asset without leaving this screen.`,"filePicker.searchPlaceholder":`Search by title, filename or MIME type…`,"filePicker.loading":`Loading Files…`,"filePicker.noFiles":`No files match this search.`,"filePicker.noImages":`No images match this search.`,"filePicker.loadError":`Files could not be loaded`,"filePicker.useSelected":`Use selected`,"appearance.faviconFromFiles":`Favicon`,"appearance.faviconFromFilesHint":`Choose the browser/tab icon from Files. When unset, YunCMS uses the official Yunsoft icon.`,"appearance.defaultAsset":`Using default asset`,"appearance.defaultLogoHint":`Yunsoft theme-aware logo`,"appearance.defaultFaviconHint":`Official Yunsoft icon`,"appearance.selectFromFiles":`Select from Files`,"appearance.useDefaultAsset":`Use default`,"files.preview":`Preview`,"files.openPreview":`Preview {file}`,"dataModel.displayName":`Display name`,"dataModel.displayNameHint":`Human-facing name shown in Studio. Spaces and Unicode characters are supported.`,"dataModel.apiKey":`API / database key`,"dataModel.apiKeyHint":`Stable normalized key used in REST URLs, payloads and MySQL. Changing the display name later does not rename this key.`}),qt=Object.freeze({"fieldBuilder.displayName":`Nombre para mostrar`,"fieldBuilder.displayNameHint":`Escríbelo de forma natural. Se admiten espacios, caracteres turcos y otros textos Unicode.`,"fieldBuilder.apiKey":`Clave de API`,"fieldBuilder.apiKeyHint":`Se genera automáticamente para MySQL y la API REST. Puedes editarla antes de crear el campo.`,"fieldBuilder.titleExample":`Título del producto`,"fieldBuilder.coverImageExample":`Imagen de portada`,"fieldBuilder.attachmentExample":`Adjunto`,"filePicker.title":`Seleccionar desde Archivos`,"filePicker.description":`Busca en la biblioteca de archivos y selecciona un recurso sin salir de esta pantalla.`,"filePicker.searchPlaceholder":`Buscar por título, nombre de archivo o tipo MIME…`,"filePicker.loading":`Cargando Archivos…`,"filePicker.noFiles":`Ningún archivo coincide con esta búsqueda.`,"filePicker.noImages":`Ninguna imagen coincide con esta búsqueda.`,"filePicker.loadError":`No se pudieron cargar los archivos`,"filePicker.useSelected":`Usar seleccionado`,"appearance.faviconFromFiles":`Favicon`,"appearance.faviconFromFilesHint":`Elige el icono del navegador/pestaña desde Archivos. Si no se define, YunCMS usa el icono oficial de Yunsoft.`,"appearance.defaultAsset":`Usando recurso predeterminado`,"appearance.defaultLogoHint":`Logotipo de Yunsoft adaptado al tema`,"appearance.defaultFaviconHint":`Icono oficial de Yunsoft`,"appearance.selectFromFiles":`Seleccionar desde Archivos`,"appearance.useDefaultAsset":`Usar predeterminado`,"files.preview":`Vista previa`,"files.openPreview":`Vista previa de {file}`,"dataModel.displayName":`Nombre para mostrar`,"dataModel.displayNameHint":`Nombre visible para personas que se muestra en Studio. Se admiten espacios y caracteres Unicode.`,"dataModel.apiKey":`Clave de API / base de datos`,"dataModel.apiKeyHint":`Clave normalizada estable usada en URL REST, payloads y MySQL. Cambiar después el nombre para mostrar no renombra esta clave.`}),Jt=Object.freeze({"fieldBuilder.displayName":`Nom d’affichage`,"fieldBuilder.displayNameHint":`Écrivez-le naturellement. Les espaces, caractères turcs et autres textes Unicode sont acceptés.`,"fieldBuilder.apiKey":`Clé API`,"fieldBuilder.apiKeyHint":`Générée automatiquement pour MySQL et l’API REST. Vous pouvez la modifier avant de créer le champ.`,"fieldBuilder.titleExample":`Titre du produit`,"fieldBuilder.coverImageExample":`Image de couverture`,"fieldBuilder.attachmentExample":`Pièce jointe`,"filePicker.title":`Sélectionner depuis Fichiers`,"filePicker.description":`Recherchez dans la bibliothèque de fichiers et sélectionnez une ressource sans quitter cet écran.`,"filePicker.searchPlaceholder":`Rechercher par titre, nom de fichier ou type MIME…`,"filePicker.loading":`Chargement des fichiers…`,"filePicker.noFiles":`Aucun fichier ne correspond à cette recherche.`,"filePicker.noImages":`Aucune image ne correspond à cette recherche.`,"filePicker.loadError":`Impossible de charger les fichiers`,"filePicker.useSelected":`Utiliser la sélection`,"appearance.faviconFromFiles":`Favicon`,"appearance.faviconFromFilesHint":`Choisissez l’icône du navigateur/onglet depuis Fichiers. Si aucune n’est définie, YunCMS utilise l’icône officielle Yunsoft.`,"appearance.defaultAsset":`Ressource par défaut utilisée`,"appearance.defaultLogoHint":`Logo Yunsoft adapté au thème`,"appearance.defaultFaviconHint":`Icône officielle Yunsoft`,"appearance.selectFromFiles":`Sélectionner depuis Fichiers`,"appearance.useDefaultAsset":`Utiliser par défaut`,"files.preview":`Aperçu`,"files.openPreview":`Aperçu de {file}`,"dataModel.displayName":`Nom d’affichage`,"dataModel.displayNameHint":`Nom destiné aux utilisateurs et affiché dans Studio. Les espaces et caractères Unicode sont pris en charge.`,"dataModel.apiKey":`Clé API / base de données`,"dataModel.apiKeyHint":`Clé normalisée stable utilisée dans les URL REST, payloads et MySQL. Modifier ensuite le nom d’affichage ne renomme pas cette clé.`}),Yt=Object.freeze({"fieldBuilder.displayName":`表示名`,"fieldBuilder.displayNameHint":`自然な名前を入力してください。スペース、トルコ語文字、その他のUnicode文字も使用できます。`,"fieldBuilder.apiKey":`APIキー`,"fieldBuilder.apiKeyHint":`MySQLとREST API向けに自動生成されます。フィールド作成前に編集できます。`,"fieldBuilder.titleExample":`商品タイトル`,"fieldBuilder.coverImageExample":`カバー画像`,"fieldBuilder.attachmentExample":`添付ファイル`,"filePicker.title":`ファイルから選択`,"filePicker.description":`この画面を離れずにファイルライブラリを検索し、アセットを1つ選択します。`,"filePicker.searchPlaceholder":`タイトル、ファイル名、MIMEタイプで検索…`,"filePicker.loading":`ファイルを読み込み中…`,"filePicker.noFiles":`この検索に一致するファイルはありません。`,"filePicker.noImages":`この検索に一致する画像はありません。`,"filePicker.loadError":`ファイルを読み込めませんでした`,"filePicker.useSelected":`選択したものを使用`,"appearance.faviconFromFiles":`ファビコン`,"appearance.faviconFromFilesHint":`ファイルからブラウザー/タブのアイコンを選択します。未設定の場合、YunCMSはYunsoft公式アイコンを使用します。`,"appearance.defaultAsset":`既定アセットを使用中`,"appearance.defaultLogoHint":`テーマ対応Yunsoftロゴ`,"appearance.defaultFaviconHint":`Yunsoft公式アイコン`,"appearance.selectFromFiles":`ファイルから選択`,"appearance.useDefaultAsset":`既定を使用`,"files.preview":`プレビュー`,"files.openPreview":`{file} をプレビュー`,"dataModel.displayName":`表示名`,"dataModel.displayNameHint":`Studioに表示される人向けの名前です。スペースとUnicode文字を使用できます。`,"dataModel.apiKey":`API / データベースキー`,"dataModel.apiKeyHint":`REST URL、ペイロード、MySQLで使用する安定した正規化キーです。後で表示名を変更しても、このキーは変更されません。`}),Xt=Object.freeze({"fieldBuilder.displayName":`Nome de exibição`,"fieldBuilder.displayNameHint":`Escreva de forma natural. Espaços, caracteres turcos e outros textos Unicode são aceitos.`,"fieldBuilder.apiKey":`Chave da API`,"fieldBuilder.apiKeyHint":`Gerada automaticamente para MySQL e API REST. Você pode editá-la antes de criar o campo.`,"fieldBuilder.titleExample":`Título do produto`,"fieldBuilder.coverImageExample":`Imagem de capa`,"fieldBuilder.attachmentExample":`Anexo`,"filePicker.title":`Selecionar dos Arquivos`,"filePicker.description":`Busque na biblioteca de arquivos e selecione um recurso sem sair desta tela.`,"filePicker.searchPlaceholder":`Buscar por título, nome do arquivo ou tipo MIME…`,"filePicker.loading":`Carregando Arquivos…`,"filePicker.noFiles":`Nenhum arquivo corresponde a esta busca.`,"filePicker.noImages":`Nenhuma imagem corresponde a esta busca.`,"filePicker.loadError":`Os arquivos não puderam ser carregados`,"filePicker.useSelected":`Usar selecionado`,"appearance.faviconFromFiles":`Favicon`,"appearance.faviconFromFilesHint":`Escolha o ícone do navegador/aba em Arquivos. Quando não definido, o YunCMS usa o ícone oficial da Yunsoft.`,"appearance.defaultAsset":`Usando recurso padrão`,"appearance.defaultLogoHint":`Logotipo Yunsoft adaptado ao tema`,"appearance.defaultFaviconHint":`Ícone oficial da Yunsoft`,"appearance.selectFromFiles":`Selecionar dos Arquivos`,"appearance.useDefaultAsset":`Usar padrão`,"files.preview":`Pré-visualização`,"files.openPreview":`Visualizar {file}`,"dataModel.displayName":`Nome de exibição`,"dataModel.displayNameHint":`Nome voltado a pessoas exibido no Studio. Espaços e caracteres Unicode são suportados.`,"dataModel.apiKey":`Chave da API / banco`,"dataModel.apiKeyHint":`Chave normalizada e estável usada em URLs REST, payloads e MySQL. Alterar o nome de exibição depois não renomeia esta chave.`}),Zt=Object.freeze({"fieldBuilder.displayName":`Görünen ad`,"fieldBuilder.displayNameHint":`Doğal şekilde yazın. Boşluk, Türkçe karakter ve diğer Unicode karakterleri kullanabilirsiniz.`,"fieldBuilder.apiKey":`API anahtarı`,"fieldBuilder.apiKeyHint":`MySQL ve REST API için otomatik üretilir. Alanı oluşturmadan önce isterseniz düzenleyebilirsiniz.`,"fieldBuilder.titleExample":`Ürün başlığı`,"fieldBuilder.coverImageExample":`Kapak görseli`,"fieldBuilder.attachmentExample":`Ek dosya`,"filePicker.title":`Files içinden seç`,"filePicker.description":`Bu ekrandan ayrılmadan dosya kütüphanesinde arama yapın ve tek bir dosya seçin.`,"filePicker.searchPlaceholder":`Başlık, dosya adı veya MIME türü ara…`,"filePicker.loading":`Dosyalar yükleniyor…`,"filePicker.noFiles":`Bu aramayla eşleşen dosya yok.`,"filePicker.noImages":`Bu aramayla eşleşen görsel yok.`,"filePicker.loadError":`Dosyalar yüklenemedi`,"filePicker.useSelected":`Seçileni kullan`,"appearance.faviconFromFiles":`Favicon`,"appearance.faviconFromFilesHint":`Tarayıcı/sekme ikonunu Files içinden seçin. Seçilmezse YunCMS varsayılan Yunsoft ikonunu kullanır.`,"appearance.defaultAsset":`Varsayılan kullanılıyor`,"appearance.defaultLogoHint":`Temaya uyumlu Yunsoft logosu`,"appearance.defaultFaviconHint":`Varsayılan Yunsoft ikonu`,"appearance.selectFromFiles":`Files içinden seç`,"appearance.useDefaultAsset":`Varsayılana dön`,"files.preview":`Önizle`,"files.openPreview":`{file} dosyasını önizle`,"dataModel.displayName":`Görünen ad`,"dataModel.displayNameHint":`Studio’da kullanıcıya gösterilen addır. Boşluk ve Unicode/Türkçe karakter desteklenir.`,"dataModel.apiKey":`API / veritabanı anahtarı`,"dataModel.apiKeyHint":`REST URL’lerinde, payloadlarda ve MySQL’de kullanılan sabit anahtardır. Görünen adı sonradan değiştirmek bu anahtarı yeniden adlandırmaz.`}),Qt=Object.freeze({"fieldBuilder.displayName":`显示名称`,"fieldBuilder.displayNameHint":`请自然书写。支持空格、土耳其语字符和其他 Unicode 文本。`,"fieldBuilder.apiKey":`API 键`,"fieldBuilder.apiKeyHint":`为 MySQL 和 REST API 自动生成。创建字段前可以编辑。`,"fieldBuilder.titleExample":`产品标题`,"fieldBuilder.coverImageExample":`封面图片`,"fieldBuilder.attachmentExample":`附件`,"filePicker.title":`从文件中选择`,"filePicker.description":`无需离开此屏幕即可搜索文件资源库并选择一个资源。`,"filePicker.searchPlaceholder":`按标题、文件名或 MIME 类型搜索…`,"filePicker.loading":`正在加载文件…`,"filePicker.noFiles":`没有文件匹配此搜索。`,"filePicker.noImages":`没有图片匹配此搜索。`,"filePicker.loadError":`无法加载文件`,"filePicker.useSelected":`使用所选项`,"appearance.faviconFromFiles":`网站图标`,"appearance.faviconFromFilesHint":`从文件中选择浏览器/标签页图标。未设置时,YunCMS 使用官方 Yunsoft 图标。`,"appearance.defaultAsset":`正在使用默认资源`,"appearance.defaultLogoHint":`适配主题的 Yunsoft 标志`,"appearance.defaultFaviconHint":`官方 Yunsoft 图标`,"appearance.selectFromFiles":`从文件中选择`,"appearance.useDefaultAsset":`使用默认`,"files.preview":`预览`,"files.openPreview":`预览 {file}`,"dataModel.displayName":`显示名称`,"dataModel.displayNameHint":`Studio 中面向用户显示的名称。支持空格和 Unicode 字符。`,"dataModel.apiKey":`API / 数据库键`,"dataModel.apiKeyHint":`用于 REST URL、负载和 MySQL 的稳定规范化键。之后更改显示名称不会重命名此键。`}),$t=Object.freeze({...We,...Rt,...Kt,...Qe,...Ie,...mt,...ot,...St,...At}),en=Object.freeze({...Ye,...Ut,...Zt,...rt,...Ve,...yt,...dt,...Dt,...Ft}),tn=Object.freeze({...Ge,...zt,...qt,...$e,...Le,...ht,...st,...Ct,...jt}),nn=Object.freeze({...Ue,...Lt,...Gt,...Ze,...Fe,...pt,...at,...xt,...kt}),rn=Object.freeze({...Ke,...Bt,...Jt,...et,...Re,...gt,...ct,...wt,...Mt}),an=Object.freeze({...Je,...Ht,...Xt,...nt,...Be,...vt,...ut,...Et,...Pt}),on=Object.freeze({...qe,...Vt,...Yt,...tt,...ze,..._t,...lt,...Tt,...Nt}),sn=Object.freeze({...Xe,...Wt,...Qt,...it,...He,...bt,...ft,...Ot,...It}),cn=Object.freeze({en:$t,tr:en,es:tn,de:nn,fr:rn,"pt-BR":an,ja:on,"zh-CN":sn});function ln(e,t={}){return e.replace(/\{(\w+)\}/g,(e,n)=>Object.hasOwn(t,n)?String(t[n]):`{${n}}`)}function un(e,t,n={}){return ln((cn[e]??$t)[t]??$t[t]??t,n)}function q(){let{locale:e,setLocale:t,useDefaultLocale:n}=Pe();return{locale:e,setLocale:t,useDefaultLocale:n,t:(0,l.useCallback)((t,n)=>un(e,t,n),[e])}}function dn(e){return{enabled:!!e?.enabled,baseUrl:e?.base_url||`https://api.openai.com/v1`,model:e?.model||``,apiKey:``,clearApiKey:!1,writesEnabled:!!e?.writes_enabled,maxToolRounds:e?.max_tool_rounds??6,maxToolCallsPerRound:e?.max_tool_calls_per_round??8,maxHistory:e?.max_history??20,maxMessageChars:e?.max_message_chars??12e3,maxToolResultBytes:e?.max_tool_result_bytes??25e4,maxOutputTokens:e?.max_output_tokens??1500,timeoutMs:e?.timeout_ms??6e4}}function fn({settings:e,onSaved:t,onClose:n}){let{t:r}=q(),[i,a]=(0,l.useState)(()=>dn(e)),[o,s]=(0,l.useState)(!1),[c,u]=(0,l.useState)(``),[d,f]=(0,l.useState)(``);(0,l.useEffect)(()=>{a(dn(e)),u(``),f(``)},[e?.updated_at]);function p(e,t){a(n=>({...n,[e]:t}))}async function m(e){e.preventDefault(),s(!0),u(``),f(``);try{let e={enabled:i.enabled,base_url:i.baseUrl,model:i.model||null,writes_enabled:i.writesEnabled,max_tool_rounds:Number(i.maxToolRounds),max_tool_calls_per_round:Number(i.maxToolCallsPerRound),max_history:Number(i.maxHistory),max_message_chars:Number(i.maxMessageChars),max_tool_result_bytes:Number(i.maxToolResultBytes),max_output_tokens:Number(i.maxOutputTokens),timeout_ms:Number(i.timeoutMs)};i.apiKey.trim()&&(e.api_key=i.apiKey.trim()),i.clearApiKey&&(e.clear_api_key=!0);let n=await F(e);a(dn(n)),f(r(`ai.settingsSaved`)),await t?.(n)}catch(e){u(e.message||r(`ai.settingsSaveFailed`))}finally{s(!1)}}return(0,K.jsxs)(`form`,{className:`ai-settings-panel panel`,onSubmit:m,children:[(0,K.jsxs)(`div`,{className:`ai-settings-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:r(`ai.settingsTitle`)}),(0,K.jsx)(`p`,{children:r(`ai.settingsDescription`)})]}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:n,children:r(`ai.settingsClose`)})]}),c&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:c}),d&&(0,K.jsx)(`div`,{className:`success-banner`,role:`status`,children:d}),(0,K.jsxs)(`div`,{className:`ai-settings-grid`,children:[(0,K.jsxs)(`label`,{className:`ai-setting-wide`,children:[(0,K.jsx)(`span`,{children:r(`ai.baseUrl`)}),(0,K.jsx)(`input`,{value:i.baseUrl,onChange:e=>p(`baseUrl`,e.target.value),placeholder:`https://api.openai.com/v1`}),(0,K.jsx)(`small`,{children:r(`ai.baseUrlHint`)})]}),(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:r(`ai.model`)}),(0,K.jsx)(`input`,{value:i.model,onChange:e=>p(`model`,e.target.value),placeholder:`gpt-5.6`})]}),(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:r(`ai.apiKey`)}),(0,K.jsx)(`input`,{type:`password`,autoComplete:`new-password`,value:i.apiKey,onChange:e=>{p(`apiKey`,e.target.value),e.target.value&&p(`clearApiKey`,!1)},placeholder:e?.has_api_key?r(`ai.apiKeySaved`):r(`ai.apiKeyPlaceholder`)}),(0,K.jsx)(`small`,{children:e?.has_api_key?r(`ai.apiKeySavedHint`):r(`ai.apiKeyHint`)})]})]}),e?.has_api_key&&(0,K.jsxs)(`label`,{className:`ai-danger-toggle`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:i.clearApiKey,onChange:e=>p(`clearApiKey`,e.target.checked)}),(0,K.jsx)(`span`,{children:r(`ai.clearApiKey`)})]}),(0,K.jsxs)(`div`,{className:`ai-settings-toggles`,children:[(0,K.jsxs)(`label`,{className:`ai-settings-toggle`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:i.enabled,onChange:e=>p(`enabled`,e.target.checked)}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:r(`ai.enableAssistant`)}),(0,K.jsx)(`small`,{children:r(`ai.enableAssistantHint`)})]})]}),(0,K.jsxs)(`label`,{className:`ai-settings-toggle`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:i.writesEnabled,onChange:e=>p(`writesEnabled`,e.target.checked)}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:r(`ai.enableWrites`)}),(0,K.jsx)(`small`,{children:r(`ai.enableWritesHint`)})]})]})]}),(0,K.jsxs)(`details`,{className:`ai-advanced-settings`,children:[(0,K.jsx)(`summary`,{children:r(`ai.advancedSettings`)}),(0,K.jsxs)(`div`,{className:`ai-settings-grid compact`,children:[(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:r(`ai.maxToolRounds`)}),(0,K.jsx)(`input`,{type:`number`,min:`1`,max:`12`,value:i.maxToolRounds,onChange:e=>p(`maxToolRounds`,e.target.value)})]}),(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:r(`ai.maxToolCalls`)}),(0,K.jsx)(`input`,{type:`number`,min:`1`,max:`20`,value:i.maxToolCallsPerRound,onChange:e=>p(`maxToolCallsPerRound`,e.target.value)})]}),(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:r(`ai.maxHistory`)}),(0,K.jsx)(`input`,{type:`number`,min:`1`,max:`50`,value:i.maxHistory,onChange:e=>p(`maxHistory`,e.target.value)})]}),(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:r(`ai.maxOutputTokens`)}),(0,K.jsx)(`input`,{type:`number`,min:`128`,max:`8192`,value:i.maxOutputTokens,onChange:e=>p(`maxOutputTokens`,e.target.value)})]}),(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:r(`ai.timeout`)}),(0,K.jsx)(`input`,{type:`number`,min:`1000`,max:`180000`,step:`1000`,value:i.timeoutMs,onChange:e=>p(`timeoutMs`,e.target.value)})]}),(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:r(`ai.maxMessageChars`)}),(0,K.jsx)(`input`,{type:`number`,min:`100`,max:`50000`,value:i.maxMessageChars,onChange:e=>p(`maxMessageChars`,e.target.value)})]}),(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:r(`ai.maxToolResultBytes`)}),(0,K.jsx)(`input`,{type:`number`,min:`10000`,max:`2000000`,value:i.maxToolResultBytes,onChange:e=>p(`maxToolResultBytes`,e.target.value)})]})]})]}),(0,K.jsx)(`div`,{className:`ai-settings-actions`,children:(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,disabled:o,children:r(o?`ai.settingsSaving`:`ai.settingsSave`)})})]})}var pn=Object.freeze({ç:`c`,Ç:`c`,ğ:`g`,Ğ:`g`,ı:`i`,İ:`i`,ö:`o`,Ö:`o`,ş:`s`,Ş:`s`,ü:`u`,Ü:`u`});function mn(e,t=`field`){let n=String(e??``).trim();if(!n)return``;let r=[...n].map(e=>pn[e]??e).join(``).normalize(`NFKD`).replace(/[\u0300-\u036f]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``).replace(/_+/g,`_`);return r?(/^[0-9]/.test(r)&&(r=`${t}_${r}`),r.slice(0,64).replace(/_+$/g,``)):``}function hn(e,t){return e?.name||e?.[t]||``}var gn=new Set([`ai`,`appearance`,`files`,`mcp`,`roles`,`users`]),_n=`yuncms:studio-content-focus`;function vn(e=``){try{return decodeURIComponent(e)}catch{return e}}function yn(e=``){return encodeURIComponent(String(e))}function bn(e=window.location.hash){let[t=`content`,n=``,r=``,i=``,a=``]=String(e||``).replace(/^#\/?/,``).split(`/`).filter(Boolean).map(vn);return t===`content`?{section:t,collection:n,view:r===`new`?`new`:r?`record`:`list`,recordId:r&&r!==`new`?r:``}:t===`data-model`?n?n===`~graph`?{section:t,view:`graph`,collection:``,field:``}:n===`new`?{section:t,view:`new-collection`,collection:``,field:``}:!r||r===`overview`?{section:t,view:`overview`,collection:n,field:``}:r===`fields`?i?i===`new`?{section:t,view:`new-field`,collection:n,field:``}:{section:t,view:`field`,collection:n,field:i}:{section:t,view:`fields`,collection:n,field:``}:r===`relations`?{section:t,view:i===`new`?`new-relation`:`relations`,collection:n,field:``,relationKind:a||``}:{section:t,view:`overview`,collection:n,field:``}:{section:t,view:`collections`,collection:``,field:``}:t===`roles`?n?n===`new`?{section:t,view:`new`,roleId:``,collection:``,action:``}:r===`permissions`&&i&&a?{section:t,view:`permission`,roleId:n,collection:i,action:a}:{section:t,view:`detail`,roleId:n,collection:``,action:``}:{section:t,view:`list`,roleId:``,collection:``,action:``}:t===`files`?{section:t,view:n===`new`?`new`:n?`detail`:`list`,fileId:n&&n!==`new`?n:``}:t===`users`?{section:t,view:n===`new`?`new`:n?`detail`:`list`,userId:n&&n!==`new`?n:``}:gn.has(t)?{section:t,view:`list`}:{section:`content`,collection:``,view:`list`,recordId:``}}var J=Object.freeze({content:(e=``)=>`#/content${e?`/${yn(e)}`:``}`,contentNew:e=>`#/content/${yn(e)}/new`,contentRecord:(e,t)=>`#/content/${yn(e)}/${yn(t)}`,dataModel:()=>`#/data-model`,schemaGraph:()=>`#/data-model/~graph`,newCollection:()=>`#/data-model/new`,collection:e=>`#/data-model/${yn(e)}/overview`,fields:e=>`#/data-model/${yn(e)}/fields`,newField:e=>`#/data-model/${yn(e)}/fields/new`,field:(e,t)=>`#/data-model/${yn(e)}/fields/${yn(t)}`,relations:e=>`#/data-model/${yn(e)}/relations`,newRelation:(e,t=`m2o`)=>`#/data-model/${yn(e)}/relations/new/${yn(t)}`,roles:()=>`#/roles`,newRole:()=>`#/roles/new`,role:e=>`#/roles/${yn(e)}`,permission:(e,t,n)=>`#/roles/${yn(e)}/permissions/${yn(t)}/${yn(n)}`,files:()=>`#/files`,newFile:()=>`#/files/new`,file:e=>`#/files/${yn(e)}`,users:()=>`#/users`,newUser:()=>`#/users/new`,user:e=>`#/users/${yn(e)}`,ai:()=>`#/ai`,mcp:()=>`#/mcp`,appearance:()=>`#/appearance`});function xn(e,{replace:t=!1}={}){let n=String(e||`#/content`);if(window.location.hash!==n){if(t){let e=new URL(window.location.href);e.hash=n.slice(1),window.history.replaceState(null,``,e),window.dispatchEvent(new HashChangeEvent(`hashchange`));return}window.location.hash=n.slice(1)}}function Sn(){window.dispatchEvent(new Event(_n))}var Cn={content:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M4 5.5h16v13H4z`}),(0,K.jsx)(`path`,{d:`M8 9h8M8 13h8`})]}),files:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M3.5 7h6l2-2h9v14h-17z`}),(0,K.jsx)(`path`,{d:`M7 12h10`})]}),visibility:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M2.8 12s3.2-5 9.2-5 9.2 5 9.2 5-3.2 5-9.2 5-9.2-5-9.2-5z`}),(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`2.5`})]}),"visibility-off":(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M3.2 8.2C2.4 9.2 2 10 2 10s3.5 5 10 5c1.3 0 2.5-.2 3.5-.6`}),(0,K.jsx)(`path`,{d:`M20.8 13.8C21.6 12.8 22 12 22 12s-3.5-5-10-5c-1.3 0-2.5.2-3.5.6`}),(0,K.jsx)(`path`,{d:`M9.9 9.9a3 3 0 0 0 4.2 4.2M4 4l16 16`})]}),model:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`3`,y:`4`,width:`7`,height:`6`,rx:`1`}),(0,K.jsx)(`rect`,{x:`14`,y:`14`,width:`7`,height:`6`,rx:`1`}),(0,K.jsx)(`path`,{d:`M10 7h4a3 3 0 0 1 3 3v4`})]}),users:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`9`,cy:`8`,r:`3`}),(0,K.jsx)(`path`,{d:`M3.5 19a5.5 5.5 0 0 1 11 0`}),(0,K.jsx)(`circle`,{cx:`17.5`,cy:`9`,r:`2`}),(0,K.jsx)(`path`,{d:`M15.5 14.5a4 4 0 0 1 5 3.5`})]}),roles:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M12 3.5 19 6v5c0 4.7-3 7.7-7 9.5C8 18.7 5 15.7 5 11V6z`}),(0,K.jsx)(`path`,{d:`m9.2 12 1.8 1.8 3.8-4`})]}),appearance:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`}),(0,K.jsx)(`path`,{d:`M12 2.5v2M12 19.5v2M2.5 12h2M19.5 12h2M5.3 5.3l1.4 1.4M17.3 17.3l1.4 1.4M18.7 5.3l-1.4 1.4M6.7 17.3l-1.4 1.4`})]}),ai:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M12 3.5 13.4 8l4.6 1.5-4.6 1.5L12 15.5 10.6 11 6 9.5 10.6 8z`}),(0,K.jsx)(`path`,{d:`m18.5 14 .7 2.3 2.3.7-2.3.7-.7 2.3-.7-2.3-2.3-.7 2.3-.7z`})]}),mcp:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M8.5 7.5 6 10a3 3 0 0 0 4.2 4.2l2-2`}),(0,K.jsx)(`path`,{d:`m15.5 16.5 2.5-2.5a3 3 0 0 0-4.2-4.2l-2 2`}),(0,K.jsx)(`path`,{d:`m9 15 6-6`})]}),chevron:(0,K.jsx)(`path`,{d:`m9 6 6 6-6 6`}),collapse:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M4 5h16v14H4z`}),(0,K.jsx)(`path`,{d:`m14 9-3 3 3 3`})]}),menu:(0,K.jsx)(K.Fragment,{children:(0,K.jsx)(`path`,{d:`M5 7h14M5 12h14M5 17h14`})}),close:(0,K.jsx)(K.Fragment,{children:(0,K.jsx)(`path`,{d:`m6.5 6.5 11 11M17.5 6.5l-11 11`})})};function wn({name:e,size:t=18}){return(0,K.jsx)(`svg`,{className:`sidebar-icon`,width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:Cn[e]||Cn.content})}function Tn({commands:e,open:t,onClose:n,onInvoke:r,label:i,placeholder:a,emptyLabel:o}){let s=(0,l.useRef)(null),c=(0,l.useRef)(null),[u,d]=(0,l.useState)(``),[f,p]=(0,l.useState)(0),m=(0,l.useMemo)(()=>{let t=u.trim().toLocaleLowerCase();return t?e.filter(e=>e.label.toLocaleLowerCase().includes(t)):e},[e,u]);if((0,l.useEffect)(()=>{if(!t){d(``),p(0);return}let e=window.requestAnimationFrame(()=>s.current?.focus());return()=>window.cancelAnimationFrame(e)},[t]),(0,l.useEffect)(()=>{f<m.length||p(Math.max(0,m.length-1))},[f,m.length]),!t)return null;function h(e){e&&(n(),r(e))}function g(e){if(e.key===`Escape`){e.preventDefault(),n();return}if(e.key===`ArrowDown`&&m.length>0){e.preventDefault(),p(e=>(e+1)%m.length);return}if(e.key===`ArrowUp`&&m.length>0){e.preventDefault(),p(e=>(e-1+m.length)%m.length);return}if(e.key===`Enter`&&document.activeElement===s.current){e.preventDefault(),h(m[f]);return}if(e.key===`Tab`){let t=[...c.current.querySelectorAll(`input, button:not(:disabled)`)];if(t.length===0)return;let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}}return(0,K.jsx)(`div`,{className:`studio-command-backdrop`,onMouseDown:e=>{e.target===e.currentTarget&&n()},onKeyDown:g,role:`presentation`,children:(0,K.jsxs)(`section`,{className:`studio-command-palette`,ref:c,role:`dialog`,"aria-modal":`true`,"aria-label":i,children:[(0,K.jsxs)(`div`,{className:`studio-command-search`,children:[(0,K.jsx)(wn,{name:`content`,size:16}),(0,K.jsx)(`input`,{ref:s,type:`search`,value:u,onChange:e=>{d(e.target.value),p(0)},placeholder:a,"aria-label":i}),(0,K.jsx)(`kbd`,{children:`Esc`})]}),(0,K.jsxs)(`div`,{className:`studio-command-results`,children:[m.map((e,t)=>(0,K.jsxs)(`button`,{className:`studio-command-item ${t===f?`active`:``}`,type:`button`,onMouseEnter:()=>p(t),onFocus:()=>p(t),onClick:()=>h(e),children:[(0,K.jsx)(wn,{name:e.icon,size:17}),(0,K.jsx)(`span`,{children:e.label})]},e.id)),m.length===0&&(0,K.jsx)(`p`,{className:`studio-command-empty`,children:o})]}),(0,K.jsxs)(`footer`,{className:`studio-command-footer`,children:[(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`kbd`,{children:`↑`}),(0,K.jsx)(`kbd`,{children:`↓`})]}),(0,K.jsx)(`span`,{children:(0,K.jsx)(`kbd`,{children:`Enter`})})]})]})})}function En(e){return!e||!e.startsWith(`/`)?e:`${d}${e}`}function Dn({compact:e=!1,previewSettings:t=null}){let{settings:n,resolvedTheme:r}=Pe(),i=t??n,a=String(i.brand_name||`YunCMS`).trim()||`YunCMS`,o=En(Ee(i,r)),[s,c]=(0,l.useState)(``),u=o&&s!==o;return(0,K.jsx)(`div`,{className:`studio-brand ${e?`compact`:``}`,"aria-label":i.brand_name,children:u?(0,K.jsx)(`img`,{className:`studio-brand-logo`,src:o,alt:i.brand_name,onError:()=>c(o)}):(0,K.jsxs)(`span`,{className:`studio-brand-fallback`,"aria-hidden":`true`,children:[(0,K.jsx)(`span`,{className:`studio-brand-fallback-full`,children:a}),(0,K.jsx)(`span`,{className:`studio-brand-fallback-compact`,children:a.slice(0,1).toUpperCase()})]})})}function On(){let{t:e}=q();return(0,K.jsxs)(`div`,{className:`auth-branding`,children:[(0,K.jsxs)(`div`,{className:`auth-branding-head`,children:[(0,K.jsx)(Dn,{}),(0,K.jsx)(An,{compact:!0})]}),(0,K.jsxs)(`div`,{className:`auth-brand-showcase`,children:[(0,K.jsxs)(`div`,{className:`auth-brand-visual`,"aria-hidden":`true`,children:[(0,K.jsx)(`span`,{className:`auth-brand-orbit auth-brand-orbit-one`}),(0,K.jsx)(`span`,{className:`auth-brand-orbit auth-brand-orbit-two`}),(0,K.jsx)(`div`,{className:`auth-brand-logo-stage`,children:(0,K.jsx)(Dn,{})})]}),(0,K.jsxs)(`div`,{className:`auth-brand-copy`,children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:e(`auth.brandKicker`)}),(0,K.jsx)(`h2`,{children:e(`auth.brandTitle`)}),(0,K.jsx)(`p`,{children:e(`auth.brandDescription`)}),(0,K.jsxs)(`div`,{className:`auth-brand-capabilities`,"aria-label":e(`auth.brandCapabilities`),children:[(0,K.jsx)(`span`,{children:e(`auth.brandSchema`)}),(0,K.jsx)(`span`,{children:e(`auth.brandContent`)}),(0,K.jsx)(`span`,{children:e(`auth.brandAccess`)})]})]})]})]})}function kn({compact:e=!1}){let{t}=q();return(0,K.jsxs)(`div`,{className:`yunsoft-footer ${e?`compact`:``}`,children:[(0,K.jsx)(`span`,{children:t(`appearance.poweredBy`)}),!e&&(0,K.jsx)(`small`,{children:t(`appearance.copyright`,{year:new Date().getFullYear()})})]})}function An({compact:e=!1}){let{locale:t,setLocale:n,t:r}=q(),i=fe();return(0,K.jsx)(`label`,{className:`language-switcher ${e?`compact`:``}`,children:(0,K.jsx)(`select`,{value:t,onChange:e=>n(e.target.value),"aria-label":r(`appearance.currentLanguage`),children:i.map(e=>(0,K.jsx)(`option`,{value:e.code,children:e.nativeName},e.code))})})}function jn(e,t){return e===`access`?t.section===`users`||t.section===`roles`:e===`settings`?t.section===`appearance`||t.section===`mcp`:t.section===e}function Mn(e){return e instanceof Element&&!!e.closest(`input, textarea, select, [contenteditable="true"]`)}function Nn(e,t){return e.section===`content`&&e.collection?{id:`new-record`,icon:`content`,label:t(`content.newRecord`),path:()=>J.contentNew(e.collection)}:e.section===`files`?{id:`upload-file`,icon:`files`,label:t(`files.uploadFile`),path:J.newFile}:e.section===`data-model`?{id:`new-collection`,icon:`model`,label:t(`dataModel.createCollection`),path:J.newCollection}:e.section===`roles`?{id:`new-role`,icon:`roles`,label:t(`roles.createRole`),path:J.newRole}:e.section===`users`?{id:`new-user`,icon:`users`,label:t(`users.newUser`),path:J.newUser}:null}function Pn(e,t){return e.filter(e=>!e.system&&!e.hidden).map(e=>({id:`collection-${e.collection}`,icon:`content`,label:`${t(`nav.content`)}: ${hn(e,`collection`)} · ${e.collection}`,path:()=>J.content(e.collection)}))}function Fn(){let{t:e}=q(),[t,n]=(0,l.useState)(()=>bn()),[r,i]=(0,l.useState)(!1),[a,o]=(0,l.useState)([]);(0,l.useEffect)(()=>{let e=()=>{n(bn()),i(!1)};return window.addEventListener(`hashchange`,e),window.addEventListener(`popstate`,e),()=>{window.removeEventListener(`hashchange`,e),window.removeEventListener(`popstate`,e)}},[]),(0,l.useEffect)(()=>{if(!r||document.querySelector(`.auth-layout`))return;let e=!1;return D(`/schema/collections`).then(t=>{e||o(t?.data??[])}).catch(()=>{e||o([])}),()=>{e=!0}},[r]),(0,l.useEffect)(()=>{function e(e){if(!document.querySelector(`.auth-layout`)){if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`k`){e.preventDefault(),i(e=>!e);return}if(e.key===`/`&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&!Mn(e.target)){let t=[...document.querySelectorAll(`.studio-next-app input[type="search"]:not(:disabled)`)].find(e=>e.getClientRects().length>0);if(!t)return;e.preventDefault(),t.focus(),t.select?.()}}}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);let s=(0,l.useMemo)(()=>[{id:`content`,icon:`content`,label:e(`nav.content`),path:()=>J.content(t.section===`content`?t.collection:``)},{id:`files`,icon:`files`,label:e(`nav.files`),path:J.files},{id:`data-model`,icon:`model`,label:e(`nav.dataModel`),path:J.dataModel},{id:`ai`,icon:`ai`,label:e(`nav.ai`),path:J.ai},{id:`access`,icon:`roles`,label:e(`roles.access`),path:J.roles},{id:`settings`,icon:`appearance`,label:e(`nav.settings`),path:J.appearance}],[t.collection,t.section,e]),c=(0,l.useMemo)(()=>{let n=Nn(t,e);return[...n?[{...n,id:`action-${n.id}`}]:[],...s.map(e=>({...e,id:`nav-${e.id}`})),...Pn(a,e)]},[a,s,t,e]);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`aside`,{className:`studio-app-rail`,"aria-label":e(`nav.studioSections`),children:[(0,K.jsx)(`div`,{className:`studio-app-rail-brand`,children:(0,K.jsx)(Dn,{compact:!0})}),(0,K.jsx)(`nav`,{className:`studio-app-rail-nav`,children:s.map(e=>{let n=jn(e.id,t);return(0,K.jsxs)(`button`,{className:`studio-app-rail-button ${n?`active`:``}`,type:`button`,"aria-current":n?`page`:void 0,title:e.label,onClick:()=>{e.id===`content`&&Sn(),xn(e.path())},children:[(0,K.jsx)(wn,{name:e.icon,size:19}),(0,K.jsx)(`span`,{children:e.label})]},e.id)})}),(0,K.jsxs)(`button`,{className:`studio-app-rail-command`,type:`button`,title:e(`studio.commandShortcut`),"aria-label":e(`studio.commandShortcut`),"aria-expanded":r,onClick:()=>i(!0),children:[(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`⌘`}),(0,K.jsx)(`kbd`,{children:`K`})]})]}),(0,K.jsx)(Tn,{commands:c,open:r,onClose:()=>i(!1),onInvoke:e=>xn(e.path()),label:e(`studio.commandPalette`),placeholder:e(`studio.commandPlaceholder`),emptyLabel:e(`studio.commandNoResults`)})]})}function In({children:e}){let[t,n]=(0,l.useState)(()=>bn()),[r,i]=(0,l.useState)(!1);(0,l.useEffect)(()=>{let e=()=>n(bn());return window.addEventListener(`hashchange`,e),window.addEventListener(`popstate`,e),()=>{window.removeEventListener(`hashchange`,e),window.removeEventListener(`popstate`,e)}},[]),(0,l.useLayoutEffect)(()=>{let e=()=>i(!!document.querySelector(`.auth-layout`));e();let t=new MutationObserver(e);return t.observe(document.body,{childList:!0,subtree:!0}),()=>t.disconnect()},[]);let a=t.section||`content`;return(0,K.jsxs)(`div`,{className:`studio-next-frame section-${a} ${r?`auth-surface`:``}`,children:[!r&&(0,K.jsx)(Fn,{}),(0,K.jsx)(`div`,{className:`studio-next-app`,children:e})]})}var Ln=new Set([`avif`,`bmp`,`gif`,`heic`,`heif`,`ico`,`jpeg`,`jpg`,`png`,`svg`,`webp`]),Rn=new Set([`mp4`,`webm`,`mov`,`m4v`]),zn=new Set([`mp3`,`wav`,`ogg`,`m4a`,`aac`,`flac`]);function Bn(e){let t=e?.filename_download||``,n=t.lastIndexOf(`.`);return n===-1?``:t.slice(n+1).toLowerCase()}function Vn(e){let t=String(e?.mimetype||``).toLowerCase(),n=Bn(e);return t.startsWith(`image/`)||Ln.has(n)?`image`:t===`application/pdf`||n===`pdf`?`pdf`:t.startsWith(`video/`)||Rn.has(n)?`video`:t.startsWith(`audio/`)||zn.has(n)?`audio`:`placeholder`}function Hn(e){return Vn(e)===`image`}function Un({file:e,label:t,alt:n=``}){let{t:r}=q(),i=Vn(e),a=i!==`placeholder`,[o,s]=(0,l.useState)({status:a?`loading`:`placeholder`,url:``});return(0,l.useEffect)(()=>{let t=!1,n=``;if(!a){s({status:`placeholder`,url:``});return}return s({status:`loading`,url:``}),O(`/files/${encodeURIComponent(e.id)}/content`).then(e=>{t||(n=URL.createObjectURL(e),s({status:`ready`,url:n}))}).catch(()=>{t||s({status:`error`,url:``})}),()=>{t=!0,n&&URL.revokeObjectURL(n)}},[e.id,a,i]),o.status===`ready`?i===`pdf`?(0,K.jsx)(`iframe`,{className:`file-preview-pdf`,src:o.url,title:n||e.filename_download||r(`files.pdf`),loading:`lazy`}):i===`video`?(0,K.jsx)(`video`,{className:`file-preview-video`,src:o.url,controls:!0,preload:`metadata`,children:r(`files.previewUnavailable`)}):i===`audio`?(0,K.jsxs)(`div`,{className:`file-preview-audio-shell`,children:[(0,K.jsx)(`strong`,{children:t||r(`files.audio`)}),(0,K.jsx)(`audio`,{className:`file-preview-audio`,src:o.url,controls:!0,preload:`metadata`,children:r(`files.previewUnavailable`)})]}):(0,K.jsx)(`img`,{src:o.url,alt:n,loading:`lazy`,onError:()=>{o.url&&URL.revokeObjectURL(o.url),s({status:`error`,url:``})}}):o.status===`loading`?(0,K.jsxs)(`div`,{className:`file-preview-state`,"aria-label":r(`files.loadingPreviewFor`,{file:e.filename_download||r(`files.file`)}),children:[(0,K.jsx)(`span`,{className:`file-preview-spinner`,"aria-hidden":`true`}),(0,K.jsx)(`small`,{children:r(`files.loadingPreview`)})]}):(0,K.jsxs)(`div`,{className:`file-type-placeholder ${o.status===`error`?`preview-error`:``}`,"aria-hidden":`true`,children:[(0,K.jsx)(`strong`,{children:t||r(`files.file`)}),o.status===`error`&&(0,K.jsx)(`small`,{children:r(`files.previewUnavailable`)})]})}var Wn=o(),Gn=[`a[href]`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`,`);function Kn({open:e,title:t,description:n,eyebrow:r,children:i,actions:a,onClose:o,initialFocusRef:s,className:c=``}){let{t:u}=q(),d=(0,l.useId)(),f=(0,l.useId)(),p=(0,l.useRef)(null),m=(0,l.useRef)(null),h=r===void 0?u(`common.confirmation`):r;if((0,l.useEffect)(()=>{if(!e)return;m.current=document.activeElement;let t=document.body.style.overflow;document.body.style.overflow=`hidden`;let n=window.requestAnimationFrame(()=>{(s?.current||p.current?.querySelector(Gn)||p.current)?.focus()});return()=>{window.cancelAnimationFrame(n),document.body.style.overflow=t,m.current?.focus?.()}},[s,e]),!e)return null;function g(e){if(e.key===`Escape`){e.preventDefault(),o();return}if(e.key!==`Tab`)return;let t=[...p.current.querySelectorAll(Gn)];if(t.length===0){e.preventDefault(),p.current.focus();return}let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}return(0,Wn.createPortal)((0,K.jsx)(`div`,{className:`modal-backdrop`,onMouseDown:e=>{e.target===e.currentTarget&&o()},children:(0,K.jsxs)(`section`,{ref:p,className:`modal-card ${c}`.trim(),role:`dialog`,"aria-modal":`true`,"aria-labelledby":d,"aria-describedby":n?f:void 0,tabIndex:-1,onKeyDown:g,children:[(0,K.jsxs)(`div`,{className:`modal-heading`,children:[h&&(0,K.jsx)(`p`,{className:`eyebrow`,children:h}),(0,K.jsx)(`h2`,{id:d,children:t}),n&&(0,K.jsx)(`p`,{id:f,children:n})]}),i&&(0,K.jsx)(`div`,{className:`modal-body`,children:i}),a&&(0,K.jsx)(`div`,{className:`modal-actions`,children:a})]})}),document.body)}var qn=[10,25,50,100];function Jn(e,t){return t<=9?Array.from({length:t},(e,t)=>t+1):e<=4?[1,2,3,4,5,`ellipsis-right`,t]:e>=t-3?[1,`ellipsis-left`,t-4,t-3,t-2,t-1,t]:[1,`ellipsis-left`,e-1,e,e+1,`ellipsis-right`,t]}function Yn({page:e=1,pageSize:t=25,totalItems:n=0,pageSizeOptions:r=qn,onPageChange:i,onPageSizeChange:a,loading:o=!1,compact:s=!1,itemLabel:c}){let{t:l}=q(),u=c||l(`pagination.items`),d=Math.max(0,Number(n)||0),f=Math.max(1,Number(t)||1),p=Math.max(1,Math.ceil(d/f)),m=Math.min(Math.max(1,Number(e)||1),p),h=d===0?0:(m-1)*f+1,g=Math.min(m*f,d),_=Jn(m,p);function v(e){let t=Math.min(Math.max(1,e),p);t!==m&&!o&&i?.(t)}return(0,K.jsxs)(`nav`,{className:`pagination ${s?`pagination-compact`:``}`,"aria-label":l(`pagination.aria`,{label:u}),children:[(0,K.jsxs)(`div`,{className:`pagination-summary`,"aria-live":`polite`,children:[(0,K.jsxs)(`span`,{children:[(0,K.jsxs)(`strong`,{children:[h,`–`,g]}),` `,l(`pagination.ofTotal`,{total:d,label:u})]}),(0,K.jsxs)(`span`,{className:`pagination-page-status`,title:l(`pagination.pageOf`,{page:m,totalPages:p}),children:[m,` / `,p]})]}),(0,K.jsxs)(`div`,{className:`pagination-controls`,children:[(0,K.jsx)(`button`,{className:`pagination-button pagination-arrow pagination-jump`,type:`button`,disabled:m<=1||o,onClick:()=>v(1),"aria-label":l(`pagination.page`,{page:1}),title:l(`pagination.page`,{page:1}),children:`«`}),(0,K.jsx)(`button`,{className:`pagination-button pagination-arrow`,type:`button`,disabled:m<=1||o,onClick:()=>v(m-1),"aria-label":l(`pagination.previousPage`),children:`‹`}),(0,K.jsx)(`div`,{className:`pagination-pages`,"aria-label":l(`pagination.pageOf`,{page:m,totalPages:p}),children:_.map(e=>typeof e==`number`?(0,K.jsx)(`button`,{className:`pagination-button ${e===m?`active`:``}`,type:`button`,disabled:o,"aria-current":e===m?`page`:void 0,"aria-label":l(`pagination.page`,{page:e}),onClick:()=>v(e),children:e},e):(0,K.jsx)(`span`,{className:`pagination-ellipsis`,"aria-hidden":`true`,children:`…`},e))}),(0,K.jsx)(`button`,{className:`pagination-button pagination-arrow`,type:`button`,disabled:m>=p||o,onClick:()=>v(m+1),"aria-label":l(`pagination.nextPage`),children:`›`}),(0,K.jsx)(`button`,{className:`pagination-button pagination-arrow pagination-jump`,type:`button`,disabled:m>=p||o,onClick:()=>v(p),"aria-label":l(`pagination.page`,{page:p}),title:l(`pagination.page`,{page:p}),children:`»`})]}),a&&(0,K.jsxs)(`label`,{className:`pagination-size`,children:[(0,K.jsx)(`span`,{children:l(`pagination.perPage`)}),(0,K.jsx)(`select`,{value:f,disabled:o,onChange:e=>a(Number(e.target.value)),children:r.map(e=>(0,K.jsx)(`option`,{value:e,children:e},e))})]})]})}function Xn(e,t,n){let r=Math.max(1,Number(n)||1),i=Math.max(1,Math.ceil(e.length/r)),a=Math.min(Math.max(1,Number(t)||1),i),o=(a-1)*r;return{page:a,totalPages:i,items:e.slice(o,o+r)}}var Zn=12;function Qn(e){return String(e?.mimetype||``).toLowerCase().startsWith(`image/`)}function $n(e){return e?.title||e?.filename_download||e?.id||``}function er({open:e,value:t=null,title:n,description:r,onClose:i,onSelect:a,imagesOnly:o=!1}){let{t:s}=q(),[c,u]=(0,l.useState)([]),[d,f]=(0,l.useState)(``),[p,m]=(0,l.useState)(1),[h,g]=(0,l.useState)(t),[_,v]=(0,l.useState)(!1),[y,b]=(0,l.useState)(``);(0,l.useEffect)(()=>{if(!e)return;let n=!1;return g(t),f(``),m(1),v(!0),b(``),D(`/files`).then(e=>{if(n)return;let t=e?.data??[];u(o?t.filter(Qn):t)}).catch(e=>{n||b(e.message||s(`filePicker.loadError`))}).finally(()=>{n||v(!1)}),()=>{n=!0}},[o,e,s,t]);let x=(0,l.useMemo)(()=>{let e=d.trim().toLowerCase();return e?c.filter(t=>[t.title,t.filename_download,t.mimetype].filter(Boolean).some(t=>String(t).toLowerCase().includes(e))):c},[c,d]),S=(0,l.useMemo)(()=>Xn(x,p,Zn),[x,p]);return(0,l.useEffect)(()=>m(1),[d]),(0,K.jsxs)(Kn,{open:e,title:n||s(`filePicker.title`),description:r||s(`filePicker.description`),eyebrow:s(`nav.files`),className:`file-picker-modal`,onClose:i,actions:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:i,children:s(`common.cancel`)}),(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,disabled:!h,onClick:()=>{let e=c.find(e=>e.id===h)??null;e&&a(e)},children:s(`filePicker.useSelected`)})]}),children:[(0,K.jsxs)(`label`,{className:`field-label file-picker-search`,children:[(0,K.jsx)(`span`,{children:s(`common.search`)}),(0,K.jsx)(`input`,{type:`search`,value:d,onChange:e=>f(e.target.value),placeholder:s(`filePicker.searchPlaceholder`),autoFocus:!0})]}),y&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:y}),_?(0,K.jsx)(`p`,{className:`muted-line`,children:s(`filePicker.loading`)}):x.length===0?(0,K.jsx)(`div`,{className:`inline-info`,children:s(o?`filePicker.noImages`:`filePicker.noFiles`)}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`file-picker-grid`,role:`listbox`,"aria-label":n||s(`filePicker.title`),children:S.items.map(e=>(0,K.jsxs)(`button`,{className:`file-picker-option ${h===e.id?`active`:``}`,type:`button`,role:`option`,"aria-selected":h===e.id,onClick:()=>g(e.id),children:[(0,K.jsx)(`span`,{className:`file-picker-thumb`,children:(0,K.jsx)(Un,{file:e,alt:``})}),(0,K.jsxs)(`span`,{className:`file-picker-copy`,children:[(0,K.jsx)(`strong`,{title:$n(e),children:$n(e)}),(0,K.jsx)(`small`,{children:e.mimetype||s(`files.file`)})]})]},e.id))}),(0,K.jsx)(Yn,{compact:!0,page:S.page,pageSize:Zn,totalItems:x.length,itemLabel:s(`files.files`),onPageChange:m})]})]})}function tr(e){return e?.title||e?.filename_download||e?.id||``}function nr({value:e=null,onChange:t,kind:n=`logo`}){let{t:r}=q(),[i,a]=(0,l.useState)(!1),[o,s]=(0,l.useState)(null);(0,l.useEffect)(()=>{if(!e){s(null);return}let t=!1;return D(`/files/${encodeURIComponent(e)}`).then(e=>{t||s(e?.data??null)}).catch(()=>{t||s(null)}),()=>{t=!0}},[e]);let c=r(n===`favicon`?`appearance.faviconFromFiles`:`appearance.logoFromFiles`),u=r(n===`favicon`?`appearance.faviconFromFilesHint`:`appearance.logoFromFilesHint`);return(0,K.jsxs)(`div`,{className:`brand-asset-picker`,children:[(0,K.jsx)(`div`,{className:`brand-asset-picker-heading`,children:(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:c}),(0,K.jsx)(`p`,{children:u})]})}),(0,K.jsxs)(`div`,{className:`brand-asset-current ${o?`has-file`:``}`,children:[o?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`brand-asset-thumb`,children:(0,K.jsx)(Un,{file:o,alt:``})}),(0,K.jsxs)(`span`,{className:`brand-asset-copy`,children:[(0,K.jsx)(`strong`,{children:tr(o)}),(0,K.jsx)(`small`,{children:o.mimetype})]})]}):(0,K.jsxs)(`span`,{className:`brand-asset-default`,children:[(0,K.jsx)(`strong`,{children:r(`appearance.defaultAsset`)}),(0,K.jsx)(`small`,{children:r(n===`favicon`?`appearance.defaultFaviconHint`:`appearance.defaultLogoHint`)})]}),(0,K.jsxs)(`div`,{className:`brand-asset-actions`,children:[(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>a(!0),children:r(`appearance.selectFromFiles`)}),e&&(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>t(null),children:r(`appearance.useDefaultAsset`)})]})]}),(0,K.jsx)(er,{open:i,value:e,imagesOnly:!0,title:c,description:u,onClose:()=>a(!1),onSelect:e=>{s(e),t(e.id),a(!1)}})]})}var rr={collection:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`16`,rx:`2`}),(0,K.jsx)(`path`,{d:`M3 9h18M8 9v11`})]}),article:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M6 3h9l4 4v14H6z`}),(0,K.jsx)(`path`,{d:`M15 3v5h5M9 12h7M9 16h7`})]}),folder:(0,K.jsx)(`path`,{d:`M3 7h6l2-2h10v14H3z`}),image:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`16`,rx:`2`}),(0,K.jsx)(`circle`,{cx:`9`,cy:`10`,r:`2`}),(0,K.jsx)(`path`,{d:`m5 18 5-5 3 3 3-3 4 5`})]}),user:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`8`,r:`3`}),(0,K.jsx)(`path`,{d:`M5.5 20a6.5 6.5 0 0 1 13 0`})]}),users:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`9`,cy:`8`,r:`3`}),(0,K.jsx)(`path`,{d:`M3.5 19a5.5 5.5 0 0 1 11 0`}),(0,K.jsx)(`circle`,{cx:`17.5`,cy:`9`,r:`2`}),(0,K.jsx)(`path`,{d:`M15.5 14.5a4 4 0 0 1 5 3.5`})]}),company:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M4 21V5h10v16M14 9h6v12`}),(0,K.jsx)(`path`,{d:`M7 9h3M7 13h3M7 17h3M17 13h1M17 17h1`})]}),cart:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M3 4h2l2 11h10l3-8H6`}),(0,K.jsx)(`circle`,{cx:`9`,cy:`19`,r:`1.5`}),(0,K.jsx)(`circle`,{cx:`17`,cy:`19`,r:`1.5`})]}),product:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`m12 3 8 4.5v9L12 21l-8-4.5v-9z`}),(0,K.jsx)(`path`,{d:`m4 7.5 8 4.5 8-4.5M12 12v9`})]}),tag:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M3 11V4h7l11 11-6 6z`}),(0,K.jsx)(`circle`,{cx:`7.5`,cy:`7.5`,r:`1.2`})]}),calendar:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`3`,y:`5`,width:`18`,height:`16`,rx:`2`}),(0,K.jsx)(`path`,{d:`M7 3v4M17 3v4M3 10h18`})]}),clock:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,K.jsx)(`path`,{d:`M12 7v6l4 2`})]}),check:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,K.jsx)(`path`,{d:`m8 12 2.5 2.5L16 9`})]}),clipboard:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`5`,y:`4`,width:`14`,height:`17`,rx:`2`}),(0,K.jsx)(`path`,{d:`M9 4.5V3h6v1.5M8 10h8M8 14h8`})]}),message:(0,K.jsx)(`path`,{d:`M4 5h16v11H9l-5 4z`}),mail:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`3`,y:`5`,width:`18`,height:`14`,rx:`2`}),(0,K.jsx)(`path`,{d:`m4 7 8 6 8-6`})]}),phone:(0,K.jsx)(`path`,{d:`M7 3h3l1.5 5-2 1.5a14 14 0 0 0 5 5l1.5-2L21 14v3c0 2-1 4-4 4C9.3 21 3 14.7 3 7c0-3 2-4 4-4z`}),location:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M12 21s7-6.2 7-12a7 7 0 1 0-14 0c0 5.8 7 12 7 12z`}),(0,K.jsx)(`circle`,{cx:`12`,cy:`9`,r:`2.3`})]}),link:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M9.5 14.5 7 17a3.5 3.5 0 0 1-5-5l4-4a3.5 3.5 0 0 1 5 0`}),(0,K.jsx)(`path`,{d:`m14.5 9.5 2.5-2.5a3.5 3.5 0 0 1 5 5l-4 4a3.5 3.5 0 0 1-5 0M8 12h8`})]}),star:(0,K.jsx)(`path`,{d:`m12 3 2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.3l-5.6 2.9 1.1-6.2L3 9.6l6.2-.9z`}),heart:(0,K.jsx)(`path`,{d:`M12 20 4.5 12.8A5 5 0 0 1 12 6a5 5 0 0 1 7.5 6.8z`}),chart:(0,K.jsx)(K.Fragment,{children:(0,K.jsx)(`path`,{d:`M4 20V10M10 20V4M16 20v-7M22 20H2`})}),money:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,K.jsx)(`path`,{d:`M15.5 8.5c-.8-1-2-1.5-3.5-1.5-2 0-3.5 1-3.5 2.5s1.4 2.2 3.5 2.5 3.5 1 3.5 2.5S14 17 12 17c-1.5 0-2.8-.5-3.6-1.5M12 5v14`})]}),briefcase:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`3`,y:`7`,width:`18`,height:`13`,rx:`2`}),(0,K.jsx)(`path`,{d:`M9 7V4h6v3M3 12h18`})]}),truck:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M3 6h11v10H3zM14 10h4l3 3v3h-7z`}),(0,K.jsx)(`circle`,{cx:`7`,cy:`18`,r:`2`}),(0,K.jsx)(`circle`,{cx:`18`,cy:`18`,r:`2`})]}),factory:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M3 21V10l6 3V9l6 4V5h6v16z`}),(0,K.jsx)(`path`,{d:`M7 17h2M12 17h2M17 17h2`})]}),wrench:(0,K.jsx)(`path`,{d:`M14.5 5.5a5 5 0 0 0-6 6L3 17l4 4 5.5-5.5a5 5 0 0 0 6-6l-3 3-4-4z`}),shield:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M12 3 19 6v5c0 4.7-3 7.7-7 9.5C8 18.7 5 15.7 5 11V6z`}),(0,K.jsx)(`path`,{d:`m9 12 2 2 4-4`})]}),key:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`8`,cy:`12`,r:`4`}),(0,K.jsx)(`path`,{d:`M12 12h9M17 12v3M20 12v2`})]}),code:(0,K.jsx)(K.Fragment,{children:(0,K.jsx)(`path`,{d:`m8 7-5 5 5 5M16 7l5 5-5 5M14 4l-4 16`})}),book:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M4 4h7a3 3 0 0 1 3 3v13H7a3 3 0 0 0-3 1z`}),(0,K.jsx)(`path`,{d:`M20 4h-3a3 3 0 0 0-3 3v13h3a3 3 0 0 1 3 1z`})]}),graduation:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`m3 9 9-5 9 5-9 5z`}),(0,K.jsx)(`path`,{d:`M7 12v4c2 2 8 2 10 0v-4M21 9v6`})]})};function ir({name:e,size:t=18,className:n=``}){let r=H(e);return(0,K.jsx)(`svg`,{className:`collection-icon ${n}`.trim(),width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:rr[r]||rr.collection})}function ar({value:e,onChange:t}){let{t:n}=q(),[r,i]=(0,l.useState)(``),a=H(e),o=(0,l.useMemo)(()=>{let e=r.trim().toLocaleLowerCase();return e?V.filter(t=>{let r=n(`collectionIcon.${t.id}`);return`${t.id} ${t.label} ${r} ${t.keywords}`.toLocaleLowerCase().includes(e)}):V},[r,n]);return(0,K.jsxs)(`div`,{className:`collection-icon-picker`,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:n(`dataModel.collectionIcon`)}),(0,K.jsx)(`input`,{type:`search`,value:r,onChange:e=>i(e.target.value),placeholder:n(`dataModel.searchIcons`)})]}),(0,K.jsx)(`div`,{className:`collection-icon-grid`,role:`listbox`,"aria-label":n(`dataModel.collectionIcon`),children:o.map(e=>{let r=n(`collectionIcon.${e.id}`);return(0,K.jsxs)(`button`,{type:`button`,className:`collection-icon-option ${a===e.id?`active`:``}`,onClick:()=>t(e.id),"aria-selected":a===e.id,role:`option`,title:r,children:[(0,K.jsx)(ir,{name:e.id,size:20}),(0,K.jsx)(`span`,{children:r})]},e.id)})}),o.length===0&&(0,K.jsx)(`div`,{className:`inline-info`,children:n(`dataModel.noIcons`)})]})}function or({columns:e=[],visibleKeys:t=[],density:n=`comfortable`,onToggleColumn:r,onDensityChange:i,labels:a={}}){let{t:o}=q(),[s,c]=(0,l.useState)(!1),u=(0,l.useRef)(null),d=a.trigger||o(`content.viewOptions`),f=a.title||a.trigger||o(`content.viewOptionsTitle`),p=a.columns||o(`content.columns`),m=a.density||o(`content.density`);return(0,l.useEffect)(()=>{if(!s)return;function e(e){u.current?.contains(e.target)||c(!1)}function t(e){e.key===`Escape`&&c(!1)}return document.addEventListener(`pointerdown`,e),window.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),window.removeEventListener(`keydown`,t)}},[s]),(0,K.jsxs)(`div`,{className:`data-view-options`,ref:u,children:[(0,K.jsx)(`button`,{className:`secondary-button data-view-options-trigger`,type:`button`,"aria-haspopup":`dialog`,"aria-expanded":s,onClick:()=>c(e=>!e),children:d}),s&&(0,K.jsxs)(`div`,{className:`data-view-options-popover`,role:`dialog`,"aria-label":f,children:[(0,K.jsxs)(`section`,{children:[(0,K.jsx)(`strong`,{children:p}),(0,K.jsx)(`div`,{className:`data-view-column-list`,children:e.map(e=>{let n=t.includes(e.key),i=n&&t.length<=1;return(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:n,disabled:i,onChange:()=>r?.(e.key)}),(0,K.jsx)(`span`,{children:e.label}),e.secondary&&(0,K.jsx)(`small`,{children:e.secondary})]},e.key)})})]}),(0,K.jsxs)(`section`,{children:[(0,K.jsx)(`strong`,{children:m}),(0,K.jsx)(`div`,{className:`data-view-density`,role:`group`,"aria-label":m,children:[[`compact`,a.compact||o(`content.densityCompact`)],[`comfortable`,a.comfortable||o(`content.densityComfortable`)],[`relaxed`,a.relaxed||o(`content.densityRelaxed`)]].map(([e,t])=>(0,K.jsx)(`button`,{className:n===e?`active`:``,type:`button`,"aria-pressed":n===e,onClick:()=>i?.(e),children:t},e))})]})]})]})}var sr=(0,l.createContext)(null);function cr({children:e}){let{t}=q(),[n,r]=(0,l.useState)(null),i=(0,l.useRef)(null),a=(0,l.useRef)(null),o=(0,l.useCallback)(e=>{let t=i.current;i.current=null,r(null),t?.(e)},[]),s=(0,l.useCallback)(e=>new Promise(n=>{i.current?.(!1),i.current=n,r({title:e.title,description:e.description||``,confirmLabel:e.confirmLabel||t(`common.confirm`),cancelLabel:e.cancelLabel||t(`common.cancel`),tone:e.tone||`primary`})}),[t]);return(0,l.useEffect)(()=>()=>i.current?.(!1),[]),(0,K.jsxs)(sr.Provider,{value:s,children:[e,(0,K.jsx)(Kn,{open:!!n,title:n?.title,description:n?.description,onClose:()=>o(!1),initialFocusRef:a,actions:n&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`button`,{ref:a,className:`text-button`,type:`button`,onClick:()=>o(!1),children:n.cancelLabel}),(0,K.jsx)(`button`,{className:n.tone===`danger`?`danger-button`:`primary-button`,type:`button`,onClick:()=>o(!0),children:n.confirmLabel})]})})]})}function lr(){let e=(0,l.useContext)(sr);if(!e)throw Error(`useConfirmDialog must be used inside DialogProvider`);return e}var ur=Object.freeze([Object.freeze({key:`common`,labelKey:`fieldBuilder.commonTypes`,options:Object.freeze([{value:`string`,labelKey:`fieldType.string`,descriptionKey:`fieldBuilder.stringDescription`,icon:`Aa`},{value:`text`,labelKey:`fieldType.text`,descriptionKey:`fieldBuilder.textDescription`,icon:`¶`},{value:`integer`,labelKey:`fieldType.integer`,descriptionKey:`fieldBuilder.integerDescription`,icon:`123`},{value:`decimal`,labelKey:`fieldType.decimal`,descriptionKey:`fieldBuilder.decimalDescription`,icon:`1.2`},{value:`boolean`,labelKey:`fieldType.boolean`,descriptionKey:`fieldBuilder.booleanDescription`,icon:`✓`},{value:`date`,labelKey:`fieldType.date`,descriptionKey:`fieldBuilder.dateDescription`,icon:`D`},{value:`datetime`,labelKey:`fieldType.datetime`,descriptionKey:`fieldBuilder.datetimeDescription`,icon:`DT`},{value:`timestamp`,labelKey:`fieldType.timestamp`,descriptionKey:`fieldBuilder.timestampDescription`,icon:`TS`}])}),Object.freeze({key:`media`,labelKey:`fieldBuilder.mediaTypes`,options:Object.freeze([{value:`image`,labelKey:`fieldType.image`,descriptionKey:`fieldBuilder.imageDescription`,icon:`▧`},{value:`file`,labelKey:`fieldType.file`,descriptionKey:`fieldBuilder.fileDescription`,icon:`⌑`}])}),Object.freeze({key:`advanced`,labelKey:`fieldBuilder.advancedTypes`,options:Object.freeze([{value:`bigint`,labelKey:`fieldType.bigint`,descriptionKey:`fieldBuilder.bigintDescription`,icon:`∞`},{value:`json`,labelKey:`fieldType.json`,descriptionKey:`fieldBuilder.jsonDescription`,icon:`{}`},{value:`uuid`,labelKey:`fieldType.uuid`,descriptionKey:`fieldBuilder.uuidDescription`,icon:`ID`}])})]);Object.freeze(ur.flatMap(e=>e.options));var dr=new Set([`string`,`integer`,`bigint`,`decimal`,`boolean`,`date`,`datetime`,`timestamp`,`uuid`]),fr=new Set([`datetime`,`timestamp`]);function pr(e){return e?.interface===`file`||e?.interface===`image`}function mr(e){return e?.interface===`image`}function hr(e){let t=e?.schema_metadata;if(!t)return{};if(typeof t==`object`)return t;try{return JSON.parse(t)}catch{return{}}}function gr(e){let t=hr(e).systemManaged;return t===!0||t===1}function _r(e=[],t=8){let n=e.filter(e=>!e.hidden),r=n.filter(e=>e.field===`id`||hr(e).primaryKey===!0),i=n.filter(e=>!r.includes(e)&&!gr(e)),a=n.filter(e=>!r.includes(e)&&gr(e));return[...r,...i,...a].slice(0,t)}function vr(e=[],t=6){return e.slice(0,t).map(e=>e.field)}function yr(e){return e?.interface===`image`?`image`:e?.interface===`file`?`file`:e?.interface===`user`?`user`:e?.type||`unknown`}function br(e){return dr.has(e)&&e!==`image`&&e!==`file`}function xr(e){return fr.has(e)}function Sr(e){return fr.has(e)}function Cr(e){let t=String(e??``).trim().replace(`T`,` `);return/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$/.test(t)?`${t}:00`:t}function wr(e,t){return e===`boolean`?t===!0||t===`true`:e===`integer`?Number.parseInt(t,10):e===`bigint`?String(t):e===`decimal`?Number(t):e===`datetime`||e===`timestamp`?Cr(t):t}function Tr(e={}){let t=e.type===`file`||e.type===`image`?e.type:null,n=t?`uuid`:e.type,r={name:String(e.name||e.field||``).trim(),field:String(e.field||``).trim(),type:n,required:e.required===!0};return n===`string`&&(r.length=Number(e.length||255)),n===`decimal`&&(r.precision=Number(e.precision||18),r.scale=Number(e.scale??2)),t&&(r.interface=t,r.options=t===`image`?{accept:`image/*`,preview:!0}:{preview:!0}),!t&&e.defaultMode===`now`&&xr(n)?r.defaultPreset=`now`:!t&&e.defaultMode===`value`&&br(n)&&(r.defaultValue=wr(n,e.defaultValue)),!t&&Sr(n)&&e.autoUpdate===!0&&(r.autoUpdate=!0),r}function Er(){return{name:``,field:``,keyTouched:!1,type:`string`,required:!1,length:255,precision:18,scale:2,defaultMode:`none`,defaultValue:``,autoUpdate:!1}}function Dr(e){return mr(e)?`image/*`:void 0}var Or=Object.freeze({string:(0,K.jsx)(K.Fragment,{children:(0,K.jsx)(`path`,{d:`M5 6h14M9 6v12M15 6v12M6 18h6M12 18h6`})}),text:(0,K.jsx)(K.Fragment,{children:(0,K.jsx)(`path`,{d:`M5 6h14M5 10h14M5 14h10M5 18h8`})}),integer:(0,K.jsx)(K.Fragment,{children:(0,K.jsx)(`path`,{d:`M7 8l2-2v12M14 7h4l-4 5h4l-4 5`})}),bigint:(0,K.jsx)(K.Fragment,{children:(0,K.jsx)(`path`,{d:`M5 8c0-2 2-3 4-3s4 1 4 3-2 3-4 3-4 1-4 3 2 4 4 4 4-2 4-4M15 7h4M17 5v4`})}),decimal:(0,K.jsx)(K.Fragment,{children:(0,K.jsx)(`path`,{d:`M6 8l2-2v12M12 17h.01M15 7h4l-4 5h4l-4 5`})}),boolean:(0,K.jsx)(K.Fragment,{children:(0,K.jsx)(`path`,{d:`M5 12l4 4L19 6`})}),date:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`4`,y:`5`,width:`16`,height:`15`,rx:`2`}),(0,K.jsx)(`path`,{d:`M8 3v4M16 3v4M4 9h16`})]}),datetime:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`3`,y:`5`,width:`13`,height:`14`,rx:`2`}),(0,K.jsx)(`path`,{d:`M7 3v4M12 3v4M3 9h13`}),(0,K.jsx)(`circle`,{cx:`17`,cy:`16`,r:`4`}),(0,K.jsx)(`path`,{d:`M17 14v2l1.5 1`})]}),timestamp:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`8`}),(0,K.jsx)(`path`,{d:`M12 8v5l3 2`})]}),image:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`3`,y:`5`,width:`18`,height:`14`,rx:`2`}),(0,K.jsx)(`circle`,{cx:`9`,cy:`10`,r:`2`}),(0,K.jsx)(`path`,{d:`M5 17l4-4 3 3 2-2 5 3`})]}),file:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M6 3h8l4 4v14H6z`}),(0,K.jsx)(`path`,{d:`M14 3v5h5`})]}),json:(0,K.jsx)(K.Fragment,{children:(0,K.jsx)(`path`,{d:`M9 4c-2 0-3 1-3 3v2c0 2-1 3-3 3 2 0 3 1 3 3v2c0 2 1 3 3 3M15 4c2 0 3 1 3 3v2c0 2 1 3 3 3-2 0-3 1-3 3v2c0 2-1 3-3 3`})}),uuid:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`4`,y:`5`,width:`16`,height:`14`,rx:`2`}),(0,K.jsx)(`path`,{d:`M8 9h8M8 13h5M8 17h3`})]}),user:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`8`,r:`3`}),(0,K.jsx)(`path`,{d:`M5 20c.7-4 3.2-6 7-6s6.3 2 7 6`})]}),unknown:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,K.jsx)(`path`,{d:`M9.5 9a2.8 2.8 0 0 1 5 1.7c0 2-2.5 2.3-2.5 4M12 18h.01`})]})});function kr({type:e=`unknown`,size:t=18,className:n=``}){return(0,K.jsx)(`svg`,{className:`field-type-icon-svg ${n}`.trim(),width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.7`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:Or[e]||Or.unknown})}function Ar({option:e,active:t,onSelect:n,t:r}){return(0,K.jsxs)(`button`,{className:`field-type-card ${t?`active`:``}`,type:`button`,"aria-pressed":t,onClick:()=>n(e.value),children:[(0,K.jsx)(`span`,{className:`field-type-card-icon`,"aria-hidden":`true`,children:(0,K.jsx)(kr,{type:e.value,size:18})}),(0,K.jsxs)(`span`,{className:`field-type-card-copy`,children:[(0,K.jsx)(`strong`,{children:r(e.labelKey)}),(0,K.jsx)(`small`,{children:r(e.descriptionKey)})]}),(0,K.jsx)(`span`,{className:`field-type-card-check`,"aria-hidden":`true`,children:t?`✓`:``})]})}function jr({form:e,setForm:t,onSubmit:n,onCancel:r,allowRequired:i=!0}){let{t:a}=q(),o=e.type===`file`||e.type===`image`,s=!o&&br(e.type),c=!o&&xr(e.type),l=!o&&Sr(e.type);function u(e){t(t=>({...t,type:e,required:i?t.required:!1,defaultMode:`none`,defaultValue:``,autoUpdate:!1}))}function d(e){t(t=>({...t,name:e,field:t.keyTouched?t.field:mn(e,`field`)}))}return(0,K.jsxs)(`form`,{className:`field-builder`,onSubmit:n,children:[(0,K.jsxs)(`div`,{className:`field-builder-header`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:a(`dataModel.fields`)}),(0,K.jsx)(`h3`,{children:a(`fieldBuilder.title`)}),(0,K.jsx)(`p`,{children:a(`fieldBuilder.description`)})]}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:r,children:a(`common.cancel`)})]}),(0,K.jsxs)(`div`,{className:`field-builder-layout`,children:[(0,K.jsx)(`section`,{className:`field-type-browser`,"aria-label":a(`fieldBuilder.chooseType`),children:ur.map(t=>(0,K.jsxs)(`div`,{className:`field-type-group`,children:[(0,K.jsx)(`div`,{className:`field-type-group-title`,children:(0,K.jsx)(`strong`,{children:a(t.labelKey)})}),(0,K.jsx)(`div`,{className:`field-type-grid`,children:t.options.map(t=>(0,K.jsx)(Ar,{option:t,active:e.type===t.value,onSelect:u,t:a},t.value))})]},t.key))}),(0,K.jsxs)(`section`,{className:`field-config-panel`,children:[(0,K.jsxs)(`label`,{className:`field-label mobile-field-type-select`,children:[(0,K.jsx)(`span`,{children:a(`fieldBuilder.chooseType`)}),(0,K.jsx)(`select`,{value:e.type,onChange:e=>u(e.target.value),children:ur.map(e=>(0,K.jsx)(`optgroup`,{label:a(e.labelKey),children:e.options.map(e=>(0,K.jsx)(`option`,{value:e.value,children:a(e.labelKey)},e.value))},e.key))})]}),(0,K.jsxs)(`div`,{className:`field-config-heading`,children:[(0,K.jsx)(`span`,{className:`field-config-type`,children:a(`fieldType.${e.type}`)}),(0,K.jsx)(`h4`,{children:a(`fieldBuilder.configureField`)}),(0,K.jsx)(`p`,{children:a(`fieldBuilder.configureHint`)})]}),(0,K.jsxs)(`label`,{className:`field-label field-key-input`,children:[(0,K.jsx)(`span`,{children:a(`fieldBuilder.displayName`)}),(0,K.jsx)(`input`,{value:e.name||``,onChange:e=>d(e.target.value),placeholder:o?e.type===`image`?a(`fieldBuilder.coverImageExample`):a(`fieldBuilder.attachmentExample`):a(`fieldBuilder.titleExample`),required:!0,autoFocus:!0}),(0,K.jsx)(`small`,{children:a(`fieldBuilder.displayNameHint`)})]}),(0,K.jsxs)(`label`,{className:`field-label field-machine-key-input`,children:[(0,K.jsx)(`span`,{children:a(`fieldBuilder.apiKey`)}),(0,K.jsx)(`input`,{value:e.field||``,onChange:e=>t(t=>({...t,field:mn(e.target.value,`field`),keyTouched:!0})),placeholder:o?e.type===`image`?`cover_image`:`attachment`:`title`,required:!0}),(0,K.jsx)(`small`,{children:a(`fieldBuilder.apiKeyHint`)})]}),e.type===`string`&&(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:a(`dataModel.maxLength`)}),(0,K.jsx)(`input`,{type:`number`,min:`1`,max:`4096`,value:e.length,onChange:e=>t(t=>({...t,length:e.target.value}))})]}),e.type===`decimal`&&(0,K.jsxs)(`div`,{className:`field-builder-number-grid`,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:a(`fieldBuilder.precision`)}),(0,K.jsx)(`input`,{type:`number`,min:`1`,max:`65`,value:e.precision,onChange:e=>t(t=>({...t,precision:e.target.value}))})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:a(`fieldBuilder.scale`)}),(0,K.jsx)(`input`,{type:`number`,min:`0`,max:`30`,value:e.scale,onChange:e=>t(t=>({...t,scale:e.target.value}))})]})]}),i?(0,K.jsx)(`div`,{className:`field-builder-switches`,children:(0,K.jsxs)(`label`,{className:`field-option-card`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:e.required,onChange:e=>t(t=>({...t,required:e.target.checked}))}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:a(`fieldBuilder.required`)}),(0,K.jsx)(`small`,{children:a(`fieldBuilder.requiredHint`)})]})]})}):(0,K.jsx)(`div`,{className:`inline-info`,children:a(`dataModel.systemFieldsHint`)}),(s||c)&&(0,K.jsxs)(`div`,{className:`field-default-panel`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:a(`fieldBuilder.defaultValue`)}),(0,K.jsx)(`p`,{children:a(`fieldBuilder.defaultHint`)})]}),(0,K.jsxs)(`div`,{className:`segmented-control field-default-mode`,children:[(0,K.jsx)(`button`,{className:e.defaultMode===`none`?`active`:``,type:`button`,onClick:()=>t(e=>({...e,defaultMode:`none`,defaultValue:``})),children:a(`fieldBuilder.noDefault`)}),s&&(0,K.jsx)(`button`,{className:e.defaultMode===`value`?`active`:``,type:`button`,onClick:()=>t(e=>({...e,defaultMode:`value`})),children:a(`fieldBuilder.fixedValue`)}),c&&(0,K.jsx)(`button`,{className:e.defaultMode===`now`?`active`:``,type:`button`,onClick:()=>t(e=>({...e,defaultMode:`now`,defaultValue:``})),children:a(`fieldBuilder.currentTime`)})]}),e.defaultMode===`value`&&e.type===`boolean`?(0,K.jsxs)(`select`,{value:String(e.defaultValue||`false`),onChange:e=>t(t=>({...t,defaultValue:e.target.value})),children:[(0,K.jsx)(`option`,{value:`false`,children:a(`common.no`)}),(0,K.jsx)(`option`,{value:`true`,children:a(`common.yes`)})]}):e.defaultMode===`value`?(0,K.jsx)(`input`,{type:[`integer`,`bigint`,`decimal`].includes(e.type)?`number`:e.type===`date`?`date`:[`datetime`,`timestamp`].includes(e.type)?`datetime-local`:`text`,step:e.type===`decimal`?`any`:void 0,value:e.defaultValue,onChange:e=>t(t=>({...t,defaultValue:e.target.value})),placeholder:a(`fieldBuilder.defaultPlaceholder`),required:!0}):null]}),l&&(0,K.jsxs)(`label`,{className:`field-option-card timestamp-update-option`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:e.autoUpdate,onChange:e=>t(t=>({...t,autoUpdate:e.target.checked}))}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:a(`fieldBuilder.autoUpdate`)}),(0,K.jsx)(`small`,{children:a(`fieldBuilder.autoUpdateHint`)})]})]}),o&&(0,K.jsx)(`div`,{className:`inline-info field-interface-info`,children:a(e.type===`image`?`dataModel.imageFieldInfo`:`dataModel.fileFieldInfo`)}),(0,K.jsxs)(`div`,{className:`field-builder-actions`,children:[(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:r,children:a(`common.cancel`)}),(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,children:a(`fieldBuilder.createField`)})]})]})]})]})}function Mr({items:e=[],value:t,onChange:n,label:r}){return(0,K.jsxs)(`aside`,{className:`file-category-rail`,"aria-label":r,children:[(0,K.jsx)(`strong`,{className:`file-category-rail-title`,children:r}),(0,K.jsx)(`nav`,{className:`file-category-list`,children:e.map(e=>(0,K.jsxs)(`button`,{className:e.value===t?`active`:``,type:`button`,"aria-current":e.value===t?`page`:void 0,onClick:()=>n?.(e.value),children:[(0,K.jsx)(`span`,{children:e.label}),(0,K.jsx)(`small`,{children:e.count})]},e.value))})]})}function Nr(e){return e?.title||e?.filename_download||e?.id||``}function Pr(e,t){return mr(e)?t.filter(Hn):t}function Fr({field:e,value:t,files:n,onChange:r,onFileUploaded:i,t:a}){let[o,s]=(0,l.useState)(!1),[c,u]=(0,l.useState)(``),d=(0,l.useMemo)(()=>Pr(e,n),[e,n]),f=n.find(e=>String(e.id)===String(t))??null;async function p(e){let t=e.target.files?.[0];if(e.target.value=``,t){s(!0),u(``);try{let e=(await D(`/files`,{method:`POST`,headers:{"content-type":`application/octet-stream`,"x-filename":encodeURIComponent(t.name),"x-mimetype":t.type||`application/octet-stream`},body:t}))?.data;if(!e?.id)throw Error(a(`fileField.uploadFailed`));i(e),r(e.id)}catch(e){u(e.message||a(`fileField.uploadFailed`))}finally{s(!1)}}}return(0,K.jsxs)(`div`,{className:`file-field-control`,children:[(0,K.jsxs)(`div`,{className:`file-field-picker-row`,children:[(0,K.jsxs)(`select`,{value:t??``,onChange:e=>r(e.target.value),required:!!e.required,children:[(0,K.jsx)(`option`,{value:``,children:e.required?a(`fileField.chooseFile`):a(`common.none`)}),f&&!d.some(e=>String(e.id)===String(f.id))&&(0,K.jsx)(`option`,{value:f.id,children:Nr(f)}),d.map(e=>(0,K.jsx)(`option`,{value:e.id,children:Nr(e)},e.id))]}),(0,K.jsxs)(`label`,{className:`secondary-button file-field-upload ${o?`disabled`:``}`,children:[(0,K.jsx)(`input`,{type:`file`,accept:Dr(e),disabled:o,onChange:p}),a(o?`fileField.uploading`:`fileField.uploadNew`)]})]}),f&&(0,K.jsxs)(`div`,{className:`file-field-preview-card`,children:[(0,K.jsx)(`div`,{className:`file-field-preview-media`,children:(0,K.jsx)(Un,{file:f,label:mr(e)?a(`fieldType.image`):a(`fieldType.file`),alt:Nr(f)})}),(0,K.jsxs)(`div`,{className:`file-field-preview-copy`,children:[(0,K.jsx)(`strong`,{children:Nr(f)}),(0,K.jsx)(`small`,{children:f.mimetype||a(`fieldType.file`)}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>r(``),disabled:!!e.required,children:a(`fileField.clear`)})]})]}),c&&(0,K.jsx)(`small`,{className:`field-error`,role:`alert`,children:c})]})}function Ir({field:e,value:t,files:n,t:r}){if(t==null||t===``)return(0,K.jsx)(`span`,{children:`—`});let i=n.find(e=>String(e.id)===String(t));return i?(0,K.jsxs)(`div`,{className:`file-value-preview`,children:[(0,K.jsx)(`div`,{className:`file-value-thumb`,children:(0,K.jsx)(Un,{file:i,label:mr(e)?r(`fieldType.image`):r(`fieldType.file`),alt:Nr(i)})}),(0,K.jsx)(`span`,{title:Nr(i),children:Nr(i)})]}):(0,K.jsx)(`code`,{className:`file-id-fallback`,children:String(t)})}var Lr=[`a[href]`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`,`);function Rr({open:e,title:t,description:n,children:r,actions:i,onClose:a,closeLabel:o,className:s=``}){let{t:c}=q(),u=(0,l.useId)(),d=(0,l.useId)(),f=(0,l.useRef)(null),p=(0,l.useRef)(null),m=o||c(`common.close`);if((0,l.useEffect)(()=>{if(!e)return;p.current=document.activeElement;let t=window.requestAnimationFrame(()=>{(f.current?.querySelector(Lr)||f.current)?.focus?.()});return()=>{window.cancelAnimationFrame(t),p.current?.focus?.()}},[e]),!e)return null;function h(e){if(e.key===`Escape`){e.preventDefault(),a?.();return}if(e.key!==`Tab`)return;let t=[...f.current.querySelectorAll(Lr)];if(t.length===0){e.preventDefault(),f.current.focus();return}let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}return(0,Wn.createPortal)((0,K.jsxs)(`div`,{className:`studio-inspector-layer`,children:[(0,K.jsx)(`button`,{className:`studio-inspector-scrim`,type:`button`,"aria-label":m,onClick:a}),(0,K.jsxs)(`aside`,{ref:f,className:`studio-inspector ${s}`.trim(),role:`dialog`,"aria-modal":`true`,"aria-labelledby":u,"aria-describedby":n?d:void 0,tabIndex:-1,onKeyDown:h,children:[(0,K.jsxs)(`header`,{className:`studio-inspector-header`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{id:u,children:t}),n&&(0,K.jsx)(`p`,{id:d,children:n})]}),(0,K.jsx)(`button`,{className:`text-button studio-inspector-close`,type:`button`,onClick:a,"aria-label":m,children:`×`})]}),(0,K.jsx)(`div`,{className:`studio-inspector-body`,children:r}),i&&(0,K.jsx)(`footer`,{className:`studio-inspector-actions`,children:i})]})]}),document.body)}function zr(){let{saveSettings:e}=Pe(),{t}=q(),[n,r]=(0,l.useState)(!1),[i,a]=(0,l.useState)([]),[o,s]=(0,l.useState)(!1),[c,u]=(0,l.useState)(``),[d,f]=(0,l.useState)(!1),[p,m]=(0,l.useState)(!0),[h,g]=(0,l.useState)(!1),[_,v]=(0,l.useState)(``),[y,b]=(0,l.useState)(``);(0,l.useEffect)(()=>{let e=!1;return Promise.all([D(`/studio-settings/admin`),D(`/roles`)]).then(([t,n])=>{if(e)return;let i=t?.data??{},o=(n?.data??[]).filter(e=>!e.admin&&!e.public);a(o),s(i.public_registration_enabled===!0),u(i.public_registration_role||``),f(i.public_registration_require_email_verification===!0),r(!0)}).catch(n=>{e||n?.status!==403&&v(n.message||t(`registration.loadFailed`))}).finally(()=>{e||m(!1)}),()=>{e=!0}},[t]);let x=(0,l.useMemo)(()=>!c||i.some(e=>e.id===c),[c,i]);if(p||!n&&!_)return null;if(!n)return(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:_});async function S(n){n.preventDefault(),g(!0),v(``),b(``);try{await e({public_registration_enabled:o,public_registration_role:c||null,public_registration_require_email_verification:d}),b(t(`registration.saved`))}catch(e){v(e.message||t(`registration.saveFailed`))}finally{g(!1)}}return(0,K.jsxs)(`section`,{className:`panel appearance-form`,"aria-labelledby":`public-registration-title`,children:[(0,K.jsx)(`div`,{className:`panel-header appearance-heading`,children:(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:t(`registration.eyebrow`)}),(0,K.jsx)(`h2`,{id:`public-registration-title`,children:t(`registration.title`)}),(0,K.jsx)(`p`,{children:t(`registration.description`)})]})}),_&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:_}),y&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:y}),(0,K.jsxs)(`form`,{className:`form-stack`,onSubmit:S,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:t(`registration.defaultRole`)}),(0,K.jsxs)(`select`,{value:c,onChange:e=>{u(e.target.value),b(``)},children:[(0,K.jsx)(`option`,{value:``,children:t(`registration.chooseRole`)}),i.map(e=>(0,K.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,K.jsx)(`small`,{children:t(`registration.roleHint`)})]}),!x&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:t(`registration.roleMissing`)}),i.length===0&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:t(`registration.noRoles`)}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:t(`registration.allowPublic`)}),(0,K.jsx)(`input`,{type:`checkbox`,checked:o,disabled:!o&&(!c||!x),onChange:e=>{s(e.target.checked),b(``)}}),(0,K.jsx)(`small`,{children:t(`registration.enabledHint`)})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:t(`registration.requireEmailVerification`)}),(0,K.jsx)(`input`,{type:`checkbox`,checked:d,onChange:e=>{f(e.target.checked),b(``)}}),(0,K.jsx)(`small`,{children:t(`registration.requireEmailVerificationHint`)})]}),(0,K.jsx)(`div`,{className:`form-actions`,children:(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,disabled:h||o&&(!c||!x),children:t(h?`common.saving`:`common.save`)})})]})]})}function Br({kind:e=`m2o`,leftCollection:t=``,leftField:n=``,rightCollection:r=``,junctionCollection:i=``,onDelete:a=``,labels:o={}}){let{t:s}=q(),c=e===`m2m`,l=o.collection||s(`dataModel.relationCollectionRole`),u=o.one||s(`dataModel.relationOne`),d=o.many||s(`dataModel.relationMany`),f=o.preview||s(`dataModel.relationPreview`),p=o.junctionPending||s(`dataModel.relationJunctionPending`),m=o.fieldPending||s(`dataModel.relationFieldPending`),h=o.chooseCollection||s(`dataModel.chooseCollection`),g=o.chooseField||s(`dataModel.chooseField`),_=o.related||s(`dataModel.relationRelated`),v=o.result||s(`dataModel.relationResult`),y=o.onDelete||s(`dataModel.ifTargetDeleted`),b=c?l:e===`o2o`?u:d,x=u,S=c?`↔`:`→`,C=c?i||p:n&&t?`${t}.${n}`:m;return(0,K.jsxs)(`section`,{className:`relation-diagram`,"aria-label":f,children:[(0,K.jsxs)(`div`,{className:`relation-diagram-heading`,children:[(0,K.jsx)(`strong`,{children:f}),(0,K.jsx)(`span`,{className:`status-pill`,children:e.toUpperCase()})]}),(0,K.jsxs)(`div`,{className:`relation-diagram-canvas`,children:[(0,K.jsxs)(`article`,{className:`relation-diagram-node ${t?`ready`:``}`,children:[(0,K.jsx)(`small`,{children:b}),(0,K.jsx)(`strong`,{children:t||h}),!c&&(0,K.jsx)(`code`,{children:n||g})]}),(0,K.jsxs)(`div`,{className:`relation-diagram-connector`,"aria-hidden":`true`,children:[(0,K.jsx)(`span`,{children:S}),c&&(0,K.jsx)(`code`,{children:i||p})]}),(0,K.jsxs)(`article`,{className:`relation-diagram-node ${r?`ready`:``}`,children:[(0,K.jsx)(`small`,{children:x}),(0,K.jsx)(`strong`,{children:r||h}),(0,K.jsx)(`code`,{children:c?_:`id`})]})]}),(0,K.jsxs)(`dl`,{className:`relation-diagram-meta`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:v}),(0,K.jsx)(`dd`,{children:(0,K.jsx)(`code`,{children:C})})]}),!c&&(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:y}),(0,K.jsx)(`dd`,{children:a||`RESTRICT`})]})]})]})}function Vr({value:e=``,items:t=[],keyField:n=`id`,labelField:r=`name`,required:i=!1,disabled:a=!1,placeholder:o,searchPlaceholder:s,emptyLabel:c,noneLabel:u,onChange:d}){let{t:f}=q(),[p,m]=(0,l.useState)(!1),[h,g]=(0,l.useState)(``),_=o||f(`content.chooseRecord`),v=s||f(`content.relationSearch`),y=c||f(`content.relationEmpty`),b=u||f(`common.none`),x=(0,l.useMemo)(()=>t.find(t=>String(t?.[n])===String(e))??null,[t,n,e]),S=(0,l.useMemo)(()=>{let e=h.trim().toLowerCase();return e?t.filter(t=>[t?.[n],t?.[r]].filter(e=>e!=null).some(t=>String(t).toLowerCase().includes(e))):t},[t,n,r,h]),C=x?.[r]??x?.[n]??e;function w(e){d?.(e),m(!1),g(``)}return(0,K.jsxs)(`div`,{className:`relation-picker ${p?`open`:``}`,children:[(0,K.jsxs)(`button`,{className:`relation-picker-trigger`,type:`button`,disabled:a,"aria-haspopup":`listbox`,"aria-expanded":p,onClick:()=>m(e=>!e),children:[(0,K.jsx)(`span`,{className:C?``:`placeholder`,children:C||_}),(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`⌄`})]}),p&&(0,K.jsxs)(`div`,{className:`relation-picker-popover`,children:[(0,K.jsx)(`input`,{type:`search`,value:h,onChange:e=>g(e.target.value),placeholder:v,autoFocus:!0}),(0,K.jsxs)(`div`,{className:`relation-picker-options`,role:`listbox`,children:[!i&&(0,K.jsx)(`button`,{className:e?``:`active`,type:`button`,role:`option`,"aria-selected":!e,onClick:()=>w(``),children:b}),S.map(t=>{let i=t?.[n],a=t?.[r]??i,o=String(i)===String(e);return(0,K.jsxs)(`button`,{className:o?`active`:``,type:`button`,role:`option`,"aria-selected":o,onClick:()=>w(String(i)),children:[(0,K.jsx)(`span`,{children:String(a)}),String(a)!==String(i)&&(0,K.jsx)(`small`,{children:String(i)})]},String(i))}),S.length===0&&(0,K.jsx)(`p`,{className:`relation-picker-empty`,children:y})]})]})]})}var Hr=Object.freeze([`_eq`,`_neq`,`_contains`,`_starts_with`,`_ends_with`,`_gt`,`_gte`,`_lt`,`_lte`,`_null`,`_nnull`]),Ur=Object.freeze([`$CURRENT_USER`,`$CURRENT_ROLE`,`$NOW`,`$NOW(-1 day)`,`$NOW(+1 day)`]);function Wr(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=Object.keys(e);if(t.length!==1)return null;let n=t[0],r=e[n];if(!r||typeof r!=`object`||Array.isArray(r))return null;let i=Object.keys(r);if(i.length!==1||!Hr.includes(i[0]))return null;let a=i[0];return{field:n,operator:a,value:r[a]}}function Gr(e){let t=String(e||``).trim();if(!t)return{compatible:!0,rules:[],error:``};let n;try{n=JSON.parse(t)}catch(e){return{compatible:!1,rules:[],error:e.message||`Invalid JSON`}}if(n==null)return{compatible:!0,rules:[],error:``};let r=n?._and;if(Array.isArray(r)&&Object.keys(n).length===1){let e=r.map(Wr);return e.every(Boolean)?{compatible:!0,rules:e,error:``}:{compatible:!1,rules:[],error:``}}let i=Wr(n);return i?{compatible:!0,rules:[i],error:``}:{compatible:!1,rules:[],error:``}}function Kr(e,t){return e.find(e=>e.field===t)?.type||`string`}function qr(e,t,n){if(t===`_null`||t===`_nnull`)return!0;if(typeof n==`string`&&Ur.some(e=>n.startsWith(e.replace(/\(.+$/,``))))return n;if(e===`boolean`)return n===!0||n===`true`;if([`integer`,`bigint`].includes(e)){let e=Number.parseInt(n,10);return Number.isNaN(e)?n:e}if(e===`decimal`){let e=Number(n);return Number.isNaN(e)?n:e}return n}function Jr(e,t=[]){let n=e.filter(e=>e.field&&e.operator).map(e=>({[e.field]:{[e.operator]:qr(Kr(t,e.field),e.operator,e.value)}}));if(n.length===0)return``;let r=n.length===1?n[0]:{_and:n};return JSON.stringify(r,null,2)}function Yr(e){return[`integer`,`bigint`,`decimal`].includes(e)?`number`:e===`date`?`date`:[`datetime`,`timestamp`].includes(e)?`datetime-local`:`text`}function Xr({value:e=``,fields:t=[],disabled:n=!1,onChange:r,labels:i={}}){let{t:a}=q(),o=(0,l.useMemo)(()=>Gr(e),[e]),[s,c]=(0,l.useState)(!1),u=o.compatible?o.rules:[],d={_eq:a(`content.opEquals`),_neq:a(`content.opDoesNotEqual`),_contains:a(`content.opContains`),_starts_with:a(`content.opStartsWith`),_ends_with:a(`content.opEndsWith`),_gt:a(`content.opGreaterThan`),_gte:a(`content.opGreaterEqual`),_lt:a(`content.opLessThan`),_lte:a(`content.opLessEqual`),_null:a(`content.opEmpty`),_nnull:a(`content.opNotEmpty`)};function f(e){r?.(Jr(e,t))}function p(e,t){f(u.map((n,r)=>r===e?{...n,...t}:n))}function m(){let e=t[0]?.field||``;f([...u,{field:e,operator:`_eq`,value:``}])}function h(e){f(u.filter((t,n)=>n!==e))}let g=!o.compatible,_=g||s;return(0,K.jsxs)(`div`,{className:`rule-builder ${g?`raw-only`:``}`,children:[(0,K.jsxs)(`div`,{className:`rule-builder-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:i.title||a(`roles.visualRules`)}),i.description&&(0,K.jsx)(`p`,{children:i.description})]}),!g&&(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>c(e=>!e),children:s?i.visualMode||a(`roles.visualRules`):i.rawMode||a(`roles.advancedJson`)})]}),g&&(0,K.jsx)(`div`,{className:`inline-info rule-builder-raw-notice`,children:o.error?i.invalidJson||a(`roles.invalidRuleJson`):i.complexJson||a(`roles.complexRuleNotice`)}),!_&&(0,K.jsxs)(`div`,{className:`rule-builder-visual`,children:[u.map((e,r)=>{let o=Kr(t,e.field),s=e.operator===`_null`||e.operator===`_nnull`,c=typeof e.value==`string`&&e.value.startsWith(`$`);return(0,K.jsxs)(`div`,{className:`rule-builder-row`,children:[(0,K.jsx)(`select`,{value:e.field,disabled:n,"aria-label":i.field||a(`roles.ruleField`),onChange:e=>p(r,{field:e.target.value,value:``}),children:t.map(e=>(0,K.jsx)(`option`,{value:e.field,children:e.name||e.field},e.field))}),(0,K.jsx)(`select`,{value:e.operator,disabled:n,"aria-label":i.operator||a(`roles.ruleCondition`),onChange:e=>p(r,{operator:e.target.value,value:``}),children:Hr.map(e=>(0,K.jsx)(`option`,{value:e,children:i.operators?.[e]||d[e]},e))}),s?(0,K.jsx)(`span`,{className:`rule-builder-no-value`,children:i.noValue||a(`roles.ruleNoValue`)}):(0,K.jsxs)(`div`,{className:`rule-builder-value-control ${c?`dynamic`:``}`,children:[o===`boolean`&&!c?(0,K.jsxs)(`select`,{value:String(e.value??``),disabled:n,"aria-label":i.value||a(`roles.ruleValue`),onChange:e=>p(r,{value:e.target.value}),children:[(0,K.jsx)(`option`,{value:``,children:`—`}),(0,K.jsx)(`option`,{value:`true`,children:i.trueLabel||a(`common.yes`)}),(0,K.jsx)(`option`,{value:`false`,children:i.falseLabel||a(`common.no`)})]}):(0,K.jsx)(`input`,{type:c?`text`:Yr(o),step:!c&&o===`decimal`?`any`:void 0,value:e.value===!0?``:e.value??``,disabled:n,"aria-label":i.value||a(`roles.ruleValue`),onChange:e=>p(r,{value:e.target.value})}),(0,K.jsxs)(`select`,{className:`rule-builder-dynamic-select`,value:Ur.includes(e.value)?e.value:``,disabled:n,"aria-label":i.dynamicValue||a(`roles.dynamicValue`),title:i.dynamicHint||a(`roles.dynamicValueHint`),onChange:e=>{e.target.value&&p(r,{value:e.target.value})},children:[(0,K.jsx)(`option`,{value:``,children:i.staticValue||a(`roles.staticValue`)}),Ur.map(e=>(0,K.jsx)(`option`,{value:e,children:e},e))]})]}),(0,K.jsx)(`button`,{className:`text-button rule-builder-remove`,type:`button`,disabled:n,"aria-label":i.removeRule||a(`roles.removeRule`),onClick:()=>h(r),children:`×`})]},`${r}-${e.field}-${e.operator}`)}),u.length===0&&(0,K.jsx)(`p`,{className:`rule-builder-empty`,children:i.empty||a(`roles.noRestrictions`)}),(0,K.jsx)(`button`,{className:`secondary-button rule-builder-add`,type:`button`,disabled:n||t.length===0,onClick:m,children:i.addRule||a(`roles.addRule`)})]}),_&&(0,K.jsxs)(`label`,{className:`field-label rule-builder-raw`,children:[(0,K.jsx)(`span`,{children:i.rawLabel||`JSON`}),(0,K.jsx)(`textarea`,{rows:`9`,value:e,disabled:n,spellCheck:`false`,onChange:e=>r?.(e.target.value),placeholder:i.placeholder||`{"status":{"_eq":"active"}}`})]})]})}var Zr=188,Qr=82,$r=84,ei=54,ti=34;function ni(e){if(!e)return{};if(typeof e==`object`)return e;try{return JSON.parse(e)??{}}catch{return{}}}function ri(e){return ni(e?.metadata).kind||`m2o`}function ii(e,t){let n=[...e].sort((e,t)=>U(e).sort-U(t).sort||e.collection.localeCompare(t.collection)),r=n.length<=4?2:n.length<=9?3:4,i=n.map((e,t)=>({collection:e,x:ti+t%r*272,y:ti+Math.floor(t/r)*136})),a=new Map(i.map(e=>[e.collection.collection,e])),o=new Set,s=[];for(let e of t){let t=a.get(e.many_collection),n=a.get(e.one_collection);if(!t||!n||t===n)continue;let r=`${e.many_collection}:${e.many_field}:${e.one_collection}:${ri(e)}`;o.has(r)||(o.add(r),s.push({key:r,relation:e,kind:ri(e),from:t,to:n}))}let c=Math.max(1,Math.ceil(i.length/r));return{nodes:i,edges:s,width:68+r*Zr+Math.max(0,r-1)*$r,height:68+c*Qr+Math.max(0,c-1)*ei}}function ai(e){let t=e.from.x+Zr/2,n=e.from.y+Qr/2,r=e.to.x+Zr/2,i=e.to.y+Qr/2,a=(t+r)/2;return`M ${t} ${n} C ${a} ${n}, ${a} ${i}, ${r} ${i}`}function oi({collections:e=[],relations:t=[],onOpenCollection:n,labels:r}){let[i,a]=(0,l.useState)(!1),[o,s]=(0,l.useState)(``),c=(0,l.useMemo)(()=>e.filter(e=>i||!e.system),[e,i]),u=(0,l.useMemo)(()=>ii(c,t),[t,c]),d=u.nodes.find(e=>e.collection.collection===o)??null,f=(0,l.useMemo)(()=>{if(!o)return new Set;let e=new Set([o]);for(let t of u.edges)t.from.collection.collection===o&&e.add(t.to.collection.collection),t.to.collection.collection===o&&e.add(t.from.collection.collection);return e},[u.edges,o]),p=o?u.edges.filter(e=>e.from.collection.collection===o||e.to.collection.collection===o):[];return(0,K.jsxs)(`section`,{className:`schema-graph-workspace`,"aria-label":r.title,children:[(0,K.jsxs)(`header`,{className:`schema-graph-toolbar`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:r.title}),(0,K.jsx)(`p`,{children:r.description})]}),(0,K.jsxs)(`label`,{className:`schema-graph-system-toggle`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:i,onChange:e=>a(e.target.checked)}),(0,K.jsx)(`span`,{children:r.showSystem})]})]}),u.nodes.length===0?(0,K.jsx)(`div`,{className:`inline-info`,children:r.empty}):(0,K.jsxs)(`div`,{className:`schema-graph-layout`,children:[(0,K.jsx)(`div`,{className:`schema-graph-scroll`,children:(0,K.jsxs)(`div`,{className:`schema-graph-canvas`,style:{width:u.width,height:u.height},children:[(0,K.jsx)(`svg`,{className:`schema-graph-edges`,width:u.width,height:u.height,"aria-hidden":`true`,children:u.edges.map(e=>{let t=!o||e.from.collection.collection===o||e.to.collection.collection===o;return(0,K.jsx)(`path`,{className:`schema-graph-edge kind-${e.kind} ${t?`related`:`dimmed`}`,d:ai(e)},e.key)})}),u.nodes.map(e=>{let t=e.collection.collection,n=o===t,i=!!(o&&!f.has(t));return(0,K.jsxs)(`button`,{type:`button`,className:`schema-graph-node ${n?`active`:``} ${i?`dimmed`:``}`,style:{left:e.x,top:e.y,width:Zr,height:Qr},"aria-pressed":n,onClick:()=>s(e=>e===t?``:t),children:[(0,K.jsx)(`span`,{className:`schema-graph-node-icon`,children:(0,K.jsx)(ir,{name:U(e.collection).icon,size:17})}),(0,K.jsxs)(`span`,{className:`schema-graph-node-copy`,children:[(0,K.jsx)(`strong`,{children:hn(e.collection,`collection`)}),(0,K.jsx)(`code`,{children:t})]}),(0,K.jsx)(`small`,{children:e.collection.system?r.system:e.collection.hidden?r.hidden:r.visible})]},t)})]})}),(0,K.jsx)(`aside`,{className:`schema-graph-inspector`,"aria-live":`polite`,children:d?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`schema-graph-inspector-heading`,children:[(0,K.jsx)(`span`,{className:`schema-graph-node-icon`,children:(0,K.jsx)(ir,{name:U(d.collection).icon,size:18})}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:hn(d.collection,`collection`)}),(0,K.jsx)(`code`,{children:d.collection.collection})]})]}),(0,K.jsx)(`p`,{children:d.collection.note||r.noDescription}),(0,K.jsxs)(`dl`,{children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:r.relations}),(0,K.jsx)(`dd`,{children:p.length})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:r.visibility}),(0,K.jsx)(`dd`,{children:d.collection.hidden?r.hidden:r.visible})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:r.kind}),(0,K.jsx)(`dd`,{children:d.collection.system?r.system:r.project})]})]}),(0,K.jsx)(`div`,{className:`schema-graph-relation-list`,children:p.slice(0,8).map(e=>(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`span`,{children:e.kind.toUpperCase()}),(0,K.jsxs)(`code`,{children:[e.relation.many_collection,`.`,e.relation.many_field]}),(0,K.jsxs)(`small`,{children:[`→ `,e.relation.one_collection]})]},e.key))}),(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>n?.(d.collection.collection),children:r.openCollection})]}):(0,K.jsxs)(`div`,{className:`schema-graph-inspector-empty`,children:[(0,K.jsx)(`strong`,{children:r.inspectorTitle}),(0,K.jsx)(`p`,{children:r.inspectorHint})]})})]})]})}function si({items:e=[],labels:t={},onRemove:n}){let{t:r}=q();if(e.length===0)return null;let i=t.title||r(`files.uploadQueue`),a={queued:t.queued||r(`files.queueQueued`),uploading:t.uploading||r(`files.queueUploading`),done:t.done||r(`files.queueDone`),failed:t.failed||r(`files.queueFailed`)};return(0,K.jsxs)(`div`,{className:`upload-queue`,"aria-label":i,children:[(0,K.jsxs)(`div`,{className:`upload-queue-heading`,children:[(0,K.jsx)(`strong`,{children:i}),(0,K.jsx)(`span`,{children:e.length})]}),(0,K.jsx)(`div`,{className:`upload-queue-list`,children:e.map(e=>(0,K.jsxs)(`div`,{className:`upload-queue-item status-${e.status||`queued`}`,children:[(0,K.jsxs)(`div`,{className:`upload-queue-copy`,children:[(0,K.jsx)(`strong`,{title:e.file?.name,children:e.file?.name||t.untitled||r(`files.untitled`)}),(0,K.jsx)(`small`,{children:e.sizeLabel||``}),e.error&&(0,K.jsx)(`small`,{className:`upload-queue-error`,role:`alert`,children:e.error})]}),(0,K.jsxs)(`div`,{className:`upload-queue-state`,children:[(0,K.jsx)(`span`,{className:`upload-queue-status`,children:a[e.status]||e.status||a.queued}),n&&[`queued`,`failed`].includes(e.status)&&(0,K.jsx)(`button`,{className:`text-button`,type:`button`,"aria-label":t.remove||r(`files.queueRemove`),onClick:()=>n(e.id),children:`×`})]})]},e.id))})]})}function ci(e=[]){return[...e].sort((e,t)=>Number(e.sort??0)-Number(t.sort??0)||String(e.name??``).localeCompare(String(t.name??``))||String(e.id??``).localeCompare(String(t.id??``)))}function li(e=[],t=[],{includeHidden:n=!0}={}){let r=new Set(t.map(e=>e.id)),i=e.filter(e=>!e.system&&(n||!e.hidden)).map(e=>{let t=U(e);return{...e,navigationGroup:t.group&&r.has(t.group)?t.group:null,navigationSort:t.sort}}),a=i.filter(e=>e.navigationGroup==null).sort((e,t)=>e.navigationSort-t.navigationSort||e.collection.localeCompare(t.collection)),o=ci(t).map(e=>({...e,collapse:[`open`,`closed`,`locked`].includes(e.collapse)?e.collapse:`open`,collections:i.filter(t=>t.navigationGroup===e.id).sort((e,t)=>e.navigationSort-t.navigationSort||e.collection.localeCompare(t.collection))}));return{roots:a,groups:o,nodes:[...a.map(e=>({type:`collection`,id:e.collection,sort:e.navigationSort,entry:e})),...o.map(e=>({type:`group`,id:e.id,sort:Number(e.sort??0),group:e}))].sort((e,t)=>e.sort-t.sort||(e.type===t.type?0:e.type===`group`?-1:1)||String(e.type===`group`?e.group.name:e.entry.collection).localeCompare(String(t.type===`group`?t.group.name:t.entry.collection)))}}function ui({top:e=0,height:t=0,clientY:n=0,allowInside:r=!1}={}){let i=t>0?(n-e)/t:.5;return r&&i>=.25&&i<=.75?`inside`:i<.5?`before`:`after`}function di(e,t,n,r=`before`){let i=e.findIndex(e=>e.type===n?.type&&e.id===n?.id);if(i<0)return[...e,t];let a=[...e];return a.splice(i+ +(r===`after`),0,t),a}function fi(e,t,n){let r=U(e);return r.group===t&&r.sort===n?null:{collection:e.collection,group:t,sort:n}}function pi(e=[],t=[],n={},r={}){let i=li(e,t),a=n.type===`collection`?e.find(e=>!e.system&&e.collection===n.id):null,o=n.type===`group`?i.groups.find(e=>e.id===n.id):null;if(!a&&!o||n.type===r.type&&n.id===r.id)return{collections:[],groups:[]};let s=a?U(a):null,c=new Map(i.groups.map(e=>[e.id,e.collections.filter(e=>e.collection!==a?.collection)])),l=new Set(s?.group?[s.group]:[]),u=i.nodes.filter(e=>e.type!==n.type||e.id!==n.id);if(a){let t={type:`collection`,id:a.collection,sort:s.sort,entry:a},n=r.type===`collection`?e.find(e=>!e.system&&e.collection===r.id):null,i=n?U(n).group:null;if(r.type===`group`&&r.position===`inside`&&c.has(r.id))c.get(r.id).push(a),l.add(r.id);else if(n&&i&&c.has(i)){let e=c.get(i),t=e.findIndex(e=>e.collection===n.collection);e.splice(t+ +(r.position===`after`),0,a),l.add(i)}else r.type===`collection`||r.type===`group`?u=di(u,t,r,r.position):u.push(t)}else{let e={type:`group`,id:o.id,sort:Number(o.sort??0),group:o};r.type===`collection`||r.type===`group`?u=di(u,e,r,r.position):u.push(e)}let d=[],f=[];u.forEach((e,t)=>{let n=(t+1)*10;if(e.type===`group`){Number(e.group.sort??0)!==n&&f.push({id:e.id,sort:n});return}let r=fi(e.entry,null,n);r&&d.push(r)});for(let e of l)(c.get(e)??[]).forEach((t,n)=>{let r=fi(t,e,(n+1)*10);r&&d.push(r)});return{collections:[...new Map(d.map(e=>[e.collection,e])).values()],groups:f}}function mi(e=[],t=[]){let n=li(e,t),r=[],i=[];return n.nodes.forEach((e,t)=>{let n=(t+1)*10;if(e.type===`group`){Number(e.group.sort??0)!==n&&i.push({id:e.id,sort:n});return}let a=fi(e.entry,null,n);a&&r.push(a)}),{collections:r,groups:i,sort:(n.nodes.length+1)*10}}var hi=Object.freeze({READ:`read`,WRITE:`write`,FULL:`full`});function gi(e){let t=e===hi.WRITE||e===hi.FULL;return{allowWrites:t,allowDeletes:t&&e===hi.FULL}}function _i(e,t=20){let n=Array.isArray(e)?e:[],r=Number.isInteger(t)&&t>0?t:20,i=n.slice(-r);return i[0]?.role===`assistant`&&(i=i.slice(1)),i}var vi=Object.freeze([`ai.starterCollections`,`ai.starterStructure`,`ai.starterOverview`]),yi=Object.freeze({schema_list_collections:`ai.operationCollections`,schema_describe_collection:`ai.operationSchema`,items_read_many:`ai.operationReadMany`,items_read_one:`ai.operationReadOne`,items_create:`ai.operationCreate`,items_update:`ai.operationUpdate`,items_delete:`ai.operationDelete`});function bi(e,t){return t(yi[e?.operation]??`ai.operationGeneric`,{collection:e?.collection||t(`ai.operationData`)})}function xi(){let{locale:e,t}=q(),[n,r]=(0,l.useState)(null),[i,a]=(0,l.useState)(``),[o,s]=(0,l.useState)(null),[c,u]=(0,l.useState)(!1),[d,f]=(0,l.useState)(!1),[p,m]=(0,l.useState)([]),[h,g]=(0,l.useState)(``),[_,v]=(0,l.useState)(!1),[y,b]=(0,l.useState)(``),[x,S]=(0,l.useState)(hi.READ),C=(0,l.useRef)(null);async function w(){let e=await N();return r(e),a(``),e}async function T(){try{let e=await P();return s(e),u(!0),e}catch(e){if(e?.status===403)return s(null),u(!1),null;throw e}}(0,l.useEffect)(()=>{let e=!1;return Promise.allSettled([N(),P()]).then(([n,i])=>{e||(n.status===`fulfilled`?(r(n.value),a(``)):(r(null),a(n.reason?.message||t(`ai.statusFailed`))),i.status===`fulfilled`?(s(i.value),u(!0)):i.reason?.status===403&&(s(null),u(!1)))}),()=>{e=!0}},[t]),(0,l.useEffect)(()=>{C.current?.scrollIntoView?.({block:`end`,behavior:`smooth`})},[p,_]);let E=!!(n?.enabled&&n?.configured),D=(0,l.useMemo)(()=>p.map(e=>({role:e.role,content:e.content})),[p]);async function O(){await Promise.all([w(),T()]),S(hi.READ)}async function k(r=h){let i=String(r??``).trim();if(!i||_||!E)return;let a={role:`user`,content:i},o=[...p,a],s=_i([...D,a],Number(n?.max_history)||20);m(o),g(``),b(``),v(!0);try{let n=await L(s,{locale:e,...gi(x)});m([...o,{role:`assistant`,content:n?.message||t(`ai.emptyResponse`),operations:Array.isArray(n?.operations)?n.operations:[]}])}catch(e){b(e.message||t(`ai.requestFailed`))}finally{v(!1)}}function ee(e){e.key!==`Enter`||e.shiftKey||(e.preventDefault(),k())}function A(){_||(m([]),g(``),b(``),S(hi.READ))}return(0,K.jsxs)(`section`,{className:`ai-workspace`,"aria-label":t(`ai.title`),children:[(0,K.jsxs)(`div`,{className:`ai-toolbar`,children:[(0,K.jsxs)(`div`,{className:`ai-status-group`,children:[(0,K.jsx)(`span`,{className:`ai-status-dot ${E?`ready`:`offline`}`,"aria-hidden":`true`}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:t(E?`ai.ready`:`ai.notReady`)}),(0,K.jsx)(`small`,{children:t(E?`ai.readyHint`:`ai.notReadyHint`)})]})]}),(0,K.jsxs)(`div`,{className:`ai-toolbar-actions`,children:[c&&(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>f(e=>!e),children:t(d?`ai.settingsClose`:`ai.settings`)}),(0,K.jsx)(`button`,{className:`secondary-button ai-new-chat`,type:`button`,disabled:_||p.length===0,onClick:A,children:t(`ai.newChat`)})]})]}),d&&c&&o&&(0,K.jsx)(fn,{settings:o,onSaved:O,onClose:()=>f(!1)}),i&&(0,K.jsx)(`div`,{className:`error-banner ai-banner`,role:`alert`,children:i}),!i&&n&&!E&&(0,K.jsxs)(`div`,{className:`panel ai-setup-card`,children:[(0,K.jsx)(`div`,{className:`ai-orb`,"aria-hidden":`true`,children:`✦`}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:t(`ai.setupTitle`)}),(0,K.jsx)(`p`,{children:t(c?`ai.setupDescriptionAdmin`:`ai.setupDescription`)}),c&&!d&&(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>f(!0),children:t(`ai.openSettings`)})]})]}),E&&(0,K.jsxs)(`div`,{className:`ai-chat-shell`,children:[(0,K.jsxs)(`div`,{className:`ai-thread`,"aria-live":`polite`,children:[p.length===0&&E&&(0,K.jsxs)(`div`,{className:`ai-welcome`,children:[(0,K.jsx)(`div`,{className:`ai-orb large`,"aria-hidden":`true`,children:`✦`}),(0,K.jsx)(`h2`,{children:t(`ai.welcomeTitle`)}),(0,K.jsx)(`p`,{children:t(`ai.welcomeDescription`)}),(0,K.jsx)(`div`,{className:`ai-starters`,children:vi.map(e=>(0,K.jsx)(`button`,{className:`ai-starter`,type:`button`,onClick:()=>k(t(e)),children:t(e)},e))})]}),p.map((e,n)=>(0,K.jsxs)(`article`,{className:`ai-message ${e.role}`,children:[(0,K.jsx)(`div`,{className:`ai-message-label`,children:e.role===`assistant`?t(`ai.assistantName`):t(`ai.you`)}),(0,K.jsx)(`div`,{className:`ai-message-body`,children:e.content}),e.role===`assistant`&&e.operations?.length>0&&(0,K.jsx)(`div`,{className:`ai-operation-list`,"aria-label":t(`ai.operations`),children:e.operations.map((e,n)=>(0,K.jsxs)(`span`,{className:`ai-operation ${e.success?`success`:`failed`}`,children:[(0,K.jsx)(`span`,{"aria-hidden":`true`,children:e.success?`✓`:`!`}),bi(e,t)]},`${e.operation}-${e.collection||``}-${n}`))})]},`${e.role}-${n}`)),_&&(0,K.jsxs)(`article`,{className:`ai-message assistant ai-thinking`,children:[(0,K.jsx)(`div`,{className:`ai-message-label`,children:t(`ai.assistantName`)}),(0,K.jsxs)(`div`,{className:`ai-thinking-dots`,"aria-label":t(`ai.thinking`),children:[(0,K.jsx)(`span`,{}),(0,K.jsx)(`span`,{}),(0,K.jsx)(`span`,{})]})]}),(0,K.jsx)(`div`,{ref:C})]}),(0,K.jsxs)(`div`,{className:`ai-composer-shell`,children:[y&&(0,K.jsx)(`div`,{className:`error-banner ai-banner`,role:`alert`,children:y}),n?.writes_available&&(0,K.jsxs)(`fieldset`,{className:`ai-access-modes`,disabled:_||!E,children:[(0,K.jsx)(`legend`,{children:t(`ai.accessMode`)}),(0,K.jsx)(`div`,{className:`ai-access-options`,children:[[hi.READ,`ai.accessRead`,`ai.accessReadHint`],[hi.WRITE,`ai.accessWrite`,`ai.accessWriteHint`],[hi.FULL,`ai.accessFull`,`ai.accessFullHint`]].map(([e,n,r])=>(0,K.jsxs)(`label`,{className:`ai-access-option ${x===e?`selected`:``}`,children:[(0,K.jsx)(`input`,{type:`radio`,name:`ai-access-mode`,value:e,checked:x===e,onChange:()=>S(e)}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:t(n)}),(0,K.jsx)(`small`,{children:t(r)})]})]},e))}),(0,K.jsx)(`small`,{className:`ai-access-boundary`,children:t(`ai.accessBoundary`)})]}),(0,K.jsxs)(`div`,{className:`ai-composer`,children:[(0,K.jsx)(`textarea`,{rows:`3`,value:h,disabled:_||!E,placeholder:t(E?`ai.placeholder`:`ai.disabledPlaceholder`),onChange:e=>g(e.target.value),onKeyDown:ee}),(0,K.jsx)(`button`,{className:`primary-button ai-send-button`,type:`button`,disabled:_||!E||!h.trim(),onClick:()=>k(),children:t(_?`ai.sending`:`ai.send`)})]}),(0,K.jsx)(`small`,{className:`ai-composer-hint`,children:t(`ai.composerHint`)})]})]})]})}function Si(){let{settings:e,localeOverride:t,loadError:n,saveSettings:r,useDefaultLocale:i}=Pe(),{t:a}=q(),[o,s]=(0,l.useState)(e),[c,u]=(0,l.useState)(!1),[d,f]=(0,l.useState)(``),[p,m]=(0,l.useState)(``),h=fe();(0,l.useEffect)(()=>s(e),[e]);function g(e,t){s(n=>({...n,[e]:t})),f(``),m(``)}async function _(e){e.preventDefault(),u(!0),f(``),m(``);try{let e={brand_name:o.brand_name,logo_file:o.logo_file||null,favicon_file:o.favicon_file||null,accent_color:o.accent_color,theme:o.theme,default_locale:o.default_locale};[`https://yunsoft.com/light-logo.png`,`https://yunsoft.com/dark-logo.png`].includes(o.logo_url)&&(e.logo_url=o.logo_url),await r(e),m(a(`appearance.saved`))}catch(e){f(e.message||a(`auth.requestFailed`))}finally{u(!1)}}function v(){s(e=>({...e,brand_name:ve.brand_name,logo_url:ve.logo_url,logo_file:null,favicon_file:null,accent_color:ve.accent_color})),f(``),m(``)}return(0,K.jsxs)(`div`,{className:`appearance-layout`,children:[(0,K.jsxs)(`div`,{className:`form-stack`,children:[(0,K.jsxs)(`form`,{className:`panel appearance-form`,onSubmit:_,children:[(0,K.jsxs)(`div`,{className:`panel-header appearance-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:a(`appearance.branding`)}),(0,K.jsx)(`h2`,{children:a(`section.appearanceTitle`)}),(0,K.jsx)(`p`,{children:a(`section.appearanceDescription`)})]}),(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:v,children:a(`appearance.resetYunsoft`)})]}),n&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:a(`appearance.loadWarning`)}),d&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:d}),p&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:p}),(0,K.jsxs)(`div`,{className:`appearance-grid`,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:a(`appearance.brandName`)}),(0,K.jsx)(`input`,{value:o.brand_name||``,maxLength:100,onChange:e=>g(`brand_name`,e.target.value),required:!0}),(0,K.jsx)(`small`,{children:a(`appearance.brandNameHint`)})]}),(0,K.jsxs)(`div`,{className:`appearance-brand-assets`,children:[(0,K.jsx)(nr,{kind:`logo`,value:o.logo_file||null,onChange:e=>g(`logo_file`,e)}),(0,K.jsx)(nr,{kind:`favicon`,value:o.favicon_file||null,onChange:e=>g(`favicon_file`,e)})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:a(`appearance.accentColor`)}),(0,K.jsxs)(`div`,{className:`color-field`,children:[(0,K.jsx)(`input`,{type:`color`,value:o.accent_color||ve.accent_color,onChange:e=>g(`accent_color`,e.target.value),"aria-label":a(`appearance.accentColor`)}),(0,K.jsx)(`input`,{value:o.accent_color||``,pattern:`#[0-9A-Fa-f]{6}`,maxLength:7,onChange:e=>g(`accent_color`,e.target.value),required:!0})]})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:a(`appearance.theme`)}),(0,K.jsxs)(`select`,{value:o.theme||`system`,onChange:e=>g(`theme`,e.target.value),children:[(0,K.jsx)(`option`,{value:`system`,children:a(`appearance.themeSystem`)}),(0,K.jsx)(`option`,{value:`light`,children:a(`appearance.themeLight`)}),(0,K.jsx)(`option`,{value:`dark`,children:a(`appearance.themeDark`)})]})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:a(`appearance.defaultLanguage`)}),(0,K.jsx)(`select`,{value:o.default_locale||`en`,onChange:e=>g(`default_locale`,e.target.value),children:h.map(e=>(0,K.jsx)(`option`,{value:e.code,children:e.nativeName},e.code))}),(0,K.jsx)(`small`,{children:a(`appearance.defaultLanguageHint`)})]}),(0,K.jsxs)(`div`,{className:`field-label appearance-personal-language`,children:[(0,K.jsx)(`span`,{children:a(`appearance.currentLanguage`)}),(0,K.jsx)(An,{}),t&&(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:i,children:a(`appearance.followDefault`)})]})]}),(0,K.jsx)(`div`,{className:`form-actions`,children:(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,disabled:c,children:a(c?`common.saving`:`common.save`)})})]}),(0,K.jsx)(zr,{})]}),(0,K.jsxs)(`aside`,{className:`panel appearance-preview`,"aria-label":a(`appearance.preview`),children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:a(`appearance.preview`)}),(0,K.jsxs)(`div`,{className:`appearance-preview-card`,style:{"--preview-accent":o.accent_color},children:[(0,K.jsx)(Dn,{previewSettings:o}),(0,K.jsx)(`div`,{className:`appearance-preview-accent`}),(0,K.jsx)(`p`,{children:a(`section.appearanceDescription`)}),(0,K.jsx)(kn,{compact:!0})]})]})]})}function Ci({action:e,token:t,onDone:n}){let{t:r}=q(),[i,a]=(0,l.useState)(``),[o,s]=(0,l.useState)(``),[c,u]=(0,l.useState)(e===`verify`?`working`:`idle`),[d,f]=(0,l.useState)(``);(0,l.useEffect)(()=>{if(e!==`verify`)return;let n=!0;return D(`/auth/email-verification/confirm`,{method:`POST`,body:{token:t}},{retryAuth:!1}).then(()=>{n&&(u(`success`),f(`auth.actionDone`))}).catch(()=>{n&&(u(`error`),f(`auth.actionFailed`))}),()=>{n=!1}},[e,t]);async function p(e){if(e.preventDefault(),f(``),i!==o){u(`error`),f(`auth.passwordMismatch`);return}u(`working`);try{await D(`/auth/password-reset/confirm`,{method:`POST`,body:{token:t,password:i}},{retryAuth:!1}),u(`success`),f(`auth.passwordChanged`)}catch{u(`error`),f(`auth.actionFailed`)}}return(0,K.jsx)(`main`,{className:`auth-layout`,children:(0,K.jsxs)(`div`,{className:`auth-shell`,children:[(0,K.jsx)(On,{}),(0,K.jsxs)(`section`,{className:`auth-card`,"aria-labelledby":`auth-action-title`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`p`,{className:`eyebrow`,children:[`YunCMS `,r(`app.studio`)]}),(0,K.jsx)(`h1`,{id:`auth-action-title`,children:r(e===`verify`?`auth.verifyEmail`:`auth.resetPassword`)}),(0,K.jsx)(`p`,{className:`lede`,children:r(e===`verify`?`auth.verifyDescription`:`auth.newPasswordDescription`)})]}),e===`reset`&&c!==`success`&&(0,K.jsxs)(`form`,{className:`form-stack`,onSubmit:p,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`auth.newPassword`)}),(0,K.jsx)(`input`,{type:`password`,autoComplete:`new-password`,value:i,onChange:e=>a(e.target.value),required:!0})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`auth.confirmPassword`)}),(0,K.jsx)(`input`,{type:`password`,autoComplete:`new-password`,value:o,onChange:e=>s(e.target.value),required:!0})]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,disabled:c===`working`,children:r(c===`working`?`auth.actionWorking`:`auth.setNewPassword`)})]}),c===`working`&&e===`verify`&&(0,K.jsx)(`div`,{className:`notice-banner`,children:r(`auth.actionWorking`)}),d&&(0,K.jsx)(`div`,{className:c===`error`?`error-banner`:`notice-banner`,role:`status`,children:r(d)}),(c===`success`||c===`error`)&&(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:n,children:r(`auth.backToSignIn`)})]}),(0,K.jsx)(`div`,{className:`auth-footer`,children:(0,K.jsx)(kn,{})})]})})}function wi(e,t,n=[]){if(!t?.singleton)return null;let r=t.primary_key||`id`,i=n[0];return i?.[r]==null?J.contentNew(e):J.contentRecord(e,i[r])}var Y=[25,50,100],Ti=[[`_contains`,`content.opContains`],[`_starts_with`,`content.opStartsWith`],[`_ends_with`,`content.opEndsWith`],[`_eq`,`content.opExactly`],[`_neq`,`content.opNot`],[`_null`,`content.opEmpty`],[`_nnull`,`content.opNotEmpty`]],Ei=[[`_eq`,`content.opEquals`],[`_neq`,`content.opDoesNotEqual`],[`_gt`,`content.opGreaterThan`],[`_gte`,`content.opGreaterEqual`],[`_lt`,`content.opLessThan`],[`_lte`,`content.opLessEqual`],[`_null`,`content.opEmpty`],[`_nnull`,`content.opNotEmpty`]],Di=[[`_eq`,`content.opIs`],[`_null`,`content.opEmpty`],[`_nnull`,`content.opNotEmpty`]],Oi=[[`_eq`,`content.opIs`],[`_neq`,`content.opNot`],[`_null`,`content.opEmpty`],[`_nnull`,`content.opNotEmpty`]];function ki(e){return hn(e,`field`)}function Ai(e,t){if(t==null)return e.type!==`boolean`&&``;if(e.type===`json`)return typeof t==`string`?t:JSON.stringify(t,null,2);if(e.type===`boolean`)return!!t;if(e.type===`datetime`||e.type===`timestamp`){let e=new Date(t);return Number.isNaN(e.getTime())?String(t):e.toISOString().slice(0,16)}return String(t)}function ji(e,t){return t===``&&!e.required?null:e.type===`boolean`?!!t:e.type===`integer`||e.type===`bigint`?Number.parseInt(t,10):e.type===`decimal`?Number(t):e.type===`json`?t===``?null:JSON.parse(t):t}function Mi(e){if(!e?.metadata)return`m2o`;if(typeof e.metadata==`object`)return e.metadata.kind||`m2o`;try{return JSON.parse(e.metadata)?.kind||`m2o`}catch{return`m2o`}}function Ni(e,t=`id`){let n=e.filter(e=>!e.hidden);for(let e of[`name`,`title`,`label`]){let t=n.find(t=>t.field===e);if(t)return t.field}return n.find(e=>[`string`,`text`].includes(e.type)&&e.field!==t)?.field??t}function Pi(e,t){if(t==null||t===``)return`—`;if(!e)return String(t);let n=e.items.find(n=>String(n[e.keyField])===String(t));if(!n)return String(t);let r=n[e.labelField];return String(r==null||r===``?t:r)}function Fi(e,t,n,r,i){let a=t[e.field],o=n[e.field];if(o)return Pi(o,a);if(a==null||a===``)return(0,K.jsx)(`span`,{className:`content-value-empty`,children:`—`});if(e.type===`boolean`)return(0,K.jsxs)(`span`,{className:`content-value-boolean ${a?`is-true`:`is-false`}`,children:[(0,K.jsx)(`span`,{"aria-hidden":`true`,children:a?`✓`:`—`}),r(a?`common.yes`:`common.no`)]});if([`date`,`datetime`,`timestamp`].includes(e.type)){let t=new Date(a);if(!Number.isNaN(t.getTime())){let n=new Intl.DateTimeFormat(i===`tr`?`tr-TR`:`en-US`,e.type===`date`?{dateStyle:`medium`}:{dateStyle:`medium`,timeStyle:`short`});return(0,K.jsx)(`time`,{className:`content-value-date`,dateTime:t.toISOString(),children:n.format(t)})}}return e.field===`status`||e.field.endsWith(`_status`)?(0,K.jsx)(`span`,{className:`content-value-status`,children:String(a)}):typeof a==`object`?(0,K.jsx)(`code`,{className:`content-value-json`,children:JSON.stringify(a)}):String(a)}function Ii(e,t){return t||pr(e)?Oi:[`string`,`text`].includes(e?.type)?Ti:e?.type===`boolean`?Di:[`integer`,`bigint`,`decimal`,`date`,`datetime`,`timestamp`].includes(e?.type)?Ei:Oi}function Li(e,t,n){return t===`_null`||t===`_nnull`?!0:e?.type===`boolean`?n===`true`:e?.type===`integer`||e?.type===`bigint`?Number.parseInt(n,10):e?.type===`decimal`?Number(n):n}function Ri(e){return[`integer`,`bigint`,`decimal`].includes(e?.type)?`number`:e?.type===`date`?`date`:[`datetime`,`timestamp`].includes(e?.type)?`datetime-local`:`text`}function zi({collection:e,fields:t,search:n,filters:r,sortField:i,sortDirection:a,limit:o,offset:s}){let c=r.map(e=>({[e.field]:{[e.operator]:e.value}})),l=t.filter(e=>!e.hidden&&[`string`,`text`].includes(e.type));n&&l.length>0&&c.push({_or:l.map(e=>({[e.field]:{_contains:n}}))});let u=new URLSearchParams;return u.set(`limit`,String(o)),u.set(`offset`,String(s)),i&&u.set(`sort`,`${a===`desc`?`-`:``}${i}`),c.length===1&&u.set(`filter`,JSON.stringify(c[0])),c.length>1&&u.set(`filter`,JSON.stringify({_and:c})),`/items/${encodeURIComponent(e)}?${u.toString()}`}function Bi({collection:e,collectionLabel:t,fields:n,relationLookups:r,files:i,record:a,onFileUploaded:o,onSaved:s,onCancel:c,onOpenFull:u,compact:d=!1}){let{t:f}=q(),p=(0,l.useMemo)(()=>n.filter(e=>!e.readonly),[n]),[m,h]=(0,l.useState)({}),[g,_]=(0,l.useState)(``),[v,y]=(0,l.useState)(!1);(0,l.useEffect)(()=>{h(Object.fromEntries(p.map(e=>[e.field,Ai(e,a?.[e.field])]))),_(``)},[p,a]);async function b(t){t.preventDefault(),y(!0),_(``);try{let t=Object.fromEntries(p.map(e=>[e.field,ji(e,m[e.field])]));s((await D(a?.id?`/items/${encodeURIComponent(e)}/${encodeURIComponent(a.id)}`:`/items/${encodeURIComponent(e)}`,{method:a?.id?`PATCH`:`POST`,body:t}))?.data??null)}catch(e){_(e.message||f(`content.saveError`))}finally{y(!1)}}return(0,K.jsxs)(`form`,{className:`panel form-panel record-editor ${d?`record-editor-compact`:``}`,onSubmit:b,children:[(0,K.jsxs)(`div`,{className:`panel-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:a?.id?f(`content.editRecord`):f(`content.newRecord`)}),(0,K.jsx)(`h2`,{children:t||e}),t&&t!==e&&(0,K.jsx)(`code`,{className:`schema-machine-key`,children:e}),(0,K.jsx)(`p`,{children:a?.id?f(`content.updateDescription`):f(`content.createDescription`)})]}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:c,children:f(`common.cancel`)})]}),(0,K.jsx)(`div`,{className:`form-grid record-form-grid`,children:p.map(e=>{let t=r[e.field],n=m[e.field]??``,a=ki(e);return(0,K.jsxs)(`label`,{className:`field-label ${pr(e)?`file-field-label`:``}`,children:[(0,K.jsxs)(`span`,{children:[a,e.required?` *`:``]}),a!==e.field&&(0,K.jsx)(`small`,{className:`field-api-key`,children:e.field}),pr(e)?(0,K.jsx)(Fr,{field:e,value:n,files:i,t:f,onFileUploaded:o,onChange:t=>h(n=>({...n,[e.field]:t}))}):t?(0,K.jsx)(Vr,{value:n,items:t.items,keyField:t.keyField,labelField:t.labelField,required:!!e.required,placeholder:e.required?f(`content.select`):f(`common.none`),searchPlaceholder:f(`content.relationSearch`),emptyLabel:f(`content.relationEmpty`),noneLabel:f(`common.none`),onChange:t=>h(n=>({...n,[e.field]:t}))}):e.type===`boolean`?(0,K.jsx)(`input`,{type:`checkbox`,checked:!!m[e.field],onChange:t=>h(n=>({...n,[e.field]:t.target.checked}))}):e.type===`text`||e.type===`json`?(0,K.jsx)(`textarea`,{rows:e.type===`json`?6:4,value:m[e.field]??``,onChange:t=>h(n=>({...n,[e.field]:t.target.value})),required:!!e.required}):(0,K.jsx)(`input`,{type:Ri(e),step:e.type===`decimal`?`any`:void 0,value:m[e.field]??``,onChange:t=>h(n=>({...n,[e.field]:t.target.value})),required:!!e.required}),t&&(0,K.jsx)(`small`,{children:f(`content.relationHint`,{collection:t.targetCollection,field:t.labelField})})]},e.field)})}),g&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:g}),(0,K.jsxs)(`div`,{className:`form-actions`,children:[d&&u&&(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:u,children:f(`content.openFullEditor`)}),(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,disabled:v,children:f(v?`common.saving`:`content.saveRecord`)})]})]})}function Vi({collection:e,collectionLabel:t=``,onOpenDataModel:n,route:r={},onNavigate:i}){let{locale:a,t:o}=q(),s=lr(),c=(0,l.useRef)(0),u=(0,l.useRef)(!0),[d,f]=(0,l.useState)([]),[p,m]=(0,l.useState)({}),[h,g]=(0,l.useState)([]),[_,v]=(0,l.useState)([]),[y,b]=(0,l.useState)(null),[x,S]=(0,l.useState)(null),[C,w]=(0,l.useState)(null),[T,E]=(0,l.useState)(()=>new Set),[O,k]=(0,l.useState)([]),[ee,A]=(0,l.useState)(`comfortable`),[j,M]=(0,l.useState)(``),[N,P]=(0,l.useState)(``),[F,I]=(0,l.useState)(``),[te,L]=(0,l.useState)([]),[ne,R]=(0,l.useState)(!1),[z,B]=(0,l.useState)({field:``,operator:`_contains`,value:``}),[re,ie]=(0,l.useState)(``),[V,ae]=(0,l.useState)(`asc`),[H,oe]=(0,l.useState)(25),[se,U]=(0,l.useState)(0),[ce,le]=(0,l.useState)(!0),[ue,W]=(0,l.useState)(!1),[de,G]=(0,l.useState)(``),[fe,pe]=(0,l.useState)(``),me=r.view===`new`,he=r.view===`record`?x:null,ge=r.view===`record`?`${e}:${r.recordId}`:``;async function _e(e,t){let n=t.filter(t=>t.many_collection===e&&!t.junction_collection&&Mi(t)!==`m2m`),r=await Promise.all(n.map(async e=>{let t=e.one_collection,n=e.one_field||`id`,[r,i]=await Promise.all([D(`/schema/collections/${encodeURIComponent(t)}/fields`),D(`/items/${encodeURIComponent(t)}?limit=200`)]),a=r?.data??[];return[e.many_field,{targetCollection:t,keyField:n,labelField:Ni(a,n),items:i?.data??[]}]}));return Object.fromEntries(r)}async function ve(t=e){let n=++c.current;if(u.current=!0,f([]),m({}),g([]),v([]),b(null),W(!1),!t){u.current=!1,le(!1);return}le(!0),G(``);try{let[e,r]=await Promise.all([D(`/schema/collections/${encodeURIComponent(t)}/fields`),D(`/schema/relations`)]),i=e?.data??[],a=r?.data??[],[o,s]=await Promise.all([_e(t,a),i.some(pr)?D(`/files`):Promise.resolve({data:[]})]);if(n!==c.current)return;f(i),m(o),g(s?.data??[])}catch(e){if(n!==c.current)return;G(e.message||o(`content.schemaLoadError`))}finally{n===c.current&&(u.current=!1,le(!1))}}async function ye(t=e,n=d){if(!t||n.length===0)return;let r=++c.current;W(!0),G(``);try{let e=await D(zi({collection:t,fields:n,search:F,filters:te,sortField:re,sortDirection:V,limit:H,offset:se}));if(r!==c.current)return;let i=e?.data??[];v(i),b(e?.meta??null),E(new Set),w(e=>e?i.find(t=>String(t.id)===String(e.id))??e:null)}catch(e){if(r!==c.current)return;G(e.message||o(`content.dataLoadError`))}finally{r===c.current&&W(!1)}}(0,l.useEffect)(()=>{let e=window.setTimeout(()=>{I(N.trim()),U(0)},250);return()=>window.clearTimeout(e)},[N]),(0,l.useEffect)(()=>{S(null),w(null),E(new Set),k([]),P(``),I(``),L([]),R(!1),B({field:``,operator:`_contains`,value:``}),ie(``),ae(`asc`),U(0),pe(``),ve(e)},[e]),(0,l.useEffect)(()=>{if(r.view!==`record`||!e||!r.recordId)return;let t=`${e}:${r.recordId}`,n=!1;return G(``),D(`/items/${encodeURIComponent(e)}/${encodeURIComponent(r.recordId)}`).then(e=>{n||S(e?.data??null)}).catch(e=>{n||(S(null),G(e.message||o(`content.dataLoadError`)))}).finally(()=>{n||M(t)}),()=>{n=!0}},[e,r.recordId,r.view]),(0,l.useEffect)(()=>{!e||ce||u.current||d.length===0||ye(e,d)},[e,d,te,se,H,ce,F,V,re]);async function be(n){if(n?.id&&await s({title:o(`content.deleteRecord`),description:o(`content.deleteRecordDescription`,{id:n.id,collection:t||e}),confirmLabel:o(`content.deleteRecordAction`),tone:`danger`})){G(``),pe(``);try{await D(`/items/${encodeURIComponent(e)}/${encodeURIComponent(n.id)}`,{method:`DELETE`}),String(C?.id)===String(n.id)&&w(null),_.length===1&&se>0?U(Math.max(0,se-H)):await ye()}catch(e){G(e.message||o(`content.deleteError`))}}}async function xe(){let n=_.filter(e=>T.has(String(e.id)));if(n.length===0||!await s({title:o(`content.bulkDeleteTitle`),description:o(`content.bulkDeleteDescription`,{count:n.length,collection:t||e}),confirmLabel:o(`content.bulkDelete`),tone:`danger`}))return;G(``),pe(``);let r=(await Promise.allSettled(n.map(t=>D(`/items/${encodeURIComponent(e)}/${encodeURIComponent(t.id)}`,{method:`DELETE`})))).filter(e=>e.status===`rejected`).length;E(new Set),C&&n.some(e=>String(e.id)===String(C.id))&&w(null),r>0?G(o(`content.bulkDeletePartial`,{failed:r,count:n.length})):pe(o(`content.bulkDeleteSuccess`,{count:n.length})),r===0&&n.length===_.length&&se>0?U(Math.max(0,se-H)):await ye()}let Se=(0,l.useMemo)(()=>_r(d),[d]);(0,l.useEffect)(()=>{k(vr(Se))},[Se]);let Ce=(0,l.useMemo)(()=>Se.filter(e=>O.includes(e.field)),[Se,O]),we=(0,l.useMemo)(()=>{let e=Ce.filter(e=>e.field!==`id`);return(e.length>0?e:Ce).slice(0,4)},[Ce]),Te=(0,l.useMemo)(()=>d.filter(e=>!e.hidden&&e.type!==`json`),[d]),Ee=Te.find(e=>e.field===z.field)??null,De=Ii(Ee,p[z.field]),Oe=d.some(e=>!e.hidden&&[`string`,`text`].includes(e.type)),ke=Number(y?.total_count??0),Ae=Math.floor(se/H)+1,je=!!(F||te.length>0||re),Me=T.size,Ne=_.length>0&&_.every(e=>T.has(String(e.id)));function Pe(e){let t=String(e);E(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n})}function Fe(){E(Ne?new Set:new Set(_.map(e=>String(e.id))))}function Ie(e){k(t=>t.includes(e)?t.length<=1?t:t.filter(t=>t!==e):[...t,e])}function Le(e){let t=Ii(Te.find(t=>t.field===e)??null,p[e]);B({field:e,operator:t[0]?.[0]||`_eq`,value:``})}function Re(e){if(e.preventDefault(),!Ee||!z.operator||![`_null`,`_nnull`].includes(z.operator)&&z.value===``)return;let t=Li(Ee,z.operator,z.value);L(e=>[...e,{id:`${Date.now()}-${e.length}`,field:Ee.field,operator:z.operator,value:t}]),B(e=>({...e,value:``})),U(0)}function ze(e){L(t=>t.filter(t=>t.id!==e)),U(0)}function Be(){P(``),I(``),L([]),R(!1),ie(``),ae(`asc`),U(0)}function Ve(e){if(U(0),re!==e){ie(e),ae(`asc`);return}if(V===`asc`){ae(`desc`);return}ie(``),ae(`asc`)}function He(e){if(e.operator===`_null`)return o(`content.empty`);if(e.operator===`_nnull`)return o(`content.notEmpty`);if(pr(Te.find(t=>t.field===e.field))){let t=h.find(t=>String(t.id)===String(e.value));return t?.title||t?.filename_download||String(e.value)}let t=p[e.field];return t?Pi(t,e.value):String(e.value)}function Ue(e){let t=Te.find(t=>t.field===e);return t?ki(t):e}function We(e){g(t=>[e,...t.filter(t=>t.id!==e.id)])}let Ge=t||e;return r.view===`record`&&j!==ge?(0,K.jsx)(`section`,{className:`panel`,children:(0,K.jsx)(`p`,{children:o(`common.loading`)})}):r.view===`record`&&!x?(0,K.jsxs)(`div`,{className:`routed-form-page`,children:[(0,K.jsxs)(`nav`,{className:`page-breadcrumbs`,"aria-label":Ge,children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>i?.(J.content(e)),children:Ge}),(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`/`}),(0,K.jsx)(`strong`,{children:o(`content.recordNotFound`)})]}),(0,K.jsxs)(`section`,{className:`panel empty-state empty-state-action`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:o(`content.recordNotFound`)}),(0,K.jsx)(`p`,{children:o(`content.recordNotFoundDescription`)})]}),(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>i?.(J.content(e)),children:o(`common.back`)})]}),de&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:de})]}):me||he?(0,K.jsxs)(`div`,{className:`routed-form-page`,children:[(0,K.jsxs)(`nav`,{className:`page-breadcrumbs`,"aria-label":Ge,children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>i?.(J.content(e)),children:Ge}),(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`/`}),(0,K.jsx)(`strong`,{children:o(me?`content.createRecord`:`content.editRecord`)})]}),(0,K.jsx)(Bi,{collection:e,collectionLabel:t,fields:d,relationLookups:p,files:h,record:he,onFileUploaded:We,onCancel:()=>i?.(J.content(e)),onSaved:async()=>{await ye(),i?.(J.content(e))}})]}):e?(0,K.jsxs)(`div`,{className:`screen-stack`,children:[(0,K.jsxs)(`section`,{className:`panel toolbar-panel content-toolbar`,children:[(0,K.jsx)(`div`,{className:`content-hero-grid`,"aria-hidden":`true`}),(0,K.jsx)(`div`,{className:`content-hero-orbit content-hero-orbit-large`,"aria-hidden":`true`}),(0,K.jsx)(`div`,{className:`content-hero-orbit content-hero-orbit-small`,"aria-hidden":`true`}),(0,K.jsxs)(`div`,{className:`content-hero-copy`,children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:o(`visibility.collection`)}),(0,K.jsx)(`h2`,{children:Ge}),Ge!==e&&(0,K.jsx)(`code`,{className:`schema-machine-key`,children:e}),(0,K.jsx)(`p`,{children:y?.total_count==null?o(`app.contentDescription`):o(`content.matchingRecords`,{count:y.total_count})})]}),(0,K.jsxs)(`div`,{className:`content-hero-side`,children:[(0,K.jsxs)(`div`,{className:`content-hero-stats`,"aria-label":o(`content.dataControls`,{collection:Ge}),children:[(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`small`,{children:o(`content.records`)}),(0,K.jsx)(`strong`,{children:y?.total_count??`—`})]}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`small`,{children:o(`dataModel.fields`)}),(0,K.jsx)(`strong`,{children:d.length})]})]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>i?.(J.contentNew(e)),children:o(`content.newRecord`)})]})]}),!ce&&(0,K.jsxs)(`section`,{className:`panel data-controls-panel`,"aria-label":o(`content.dataControls`,{collection:Ge}),children:[(0,K.jsxs)(`div`,{className:`data-controls-main content-data-controls-main`,children:[(0,K.jsxs)(`label`,{className:`field-label control-search`,children:[(0,K.jsx)(`span`,{children:o(`common.search`)}),(0,K.jsx)(`input`,{type:`search`,value:N,onChange:e=>P(e.target.value),placeholder:o(Oe?`content.searchTextFields`:`content.noTextFields`),disabled:!Oe})]}),(0,K.jsxs)(`label`,{className:`field-label compact-control`,children:[(0,K.jsx)(`span`,{children:o(`content.sortBy`)}),(0,K.jsxs)(`select`,{value:re,onChange:e=>{ie(e.target.value),U(0)},children:[(0,K.jsx)(`option`,{value:``,children:o(`content.defaultOrder`)}),Te.map(e=>(0,K.jsx)(`option`,{value:e.field,children:ki(e)},e.field))]})]}),(0,K.jsxs)(`label`,{className:`field-label compact-control`,children:[(0,K.jsx)(`span`,{children:o(`common.direction`)}),(0,K.jsxs)(`select`,{value:V,disabled:!re,onChange:e=>{ae(e.target.value),U(0)},children:[(0,K.jsx)(`option`,{value:`asc`,children:o(`common.ascending`)}),(0,K.jsx)(`option`,{value:`desc`,children:o(`common.descending`)})]})]})]}),(0,K.jsxs)(`div`,{className:`content-view-control-group`,children:[(0,K.jsxs)(`button`,{className:`secondary-button mobile-filter-toggle`,type:`button`,"aria-expanded":ne,onClick:()=>R(e=>!e),children:[(0,K.jsx)(`span`,{children:o(`content.filters`)}),(0,K.jsx)(`small`,{children:o(`content.filterCount`,{count:te.length})})]}),(0,K.jsx)(or,{columns:Se.map(e=>({key:e.field,label:ki(e),secondary:e.field})),visibleKeys:O,density:ee,onToggleColumn:Ie,onDensityChange:A,labels:{trigger:o(`content.viewOptions`),title:o(`content.viewOptionsTitle`),columns:o(`content.columns`),density:o(`content.density`),compact:o(`content.densityCompact`),comfortable:o(`content.densityComfortable`),relaxed:o(`content.densityRelaxed`)}})]}),(0,K.jsxs)(`form`,{className:`filter-builder ${ne?`mobile-open`:``}`,onSubmit:Re,children:[(0,K.jsxs)(`label`,{className:`field-label compact-control filter-field-control`,children:[(0,K.jsx)(`span`,{children:o(`content.filterField`)}),(0,K.jsxs)(`select`,{value:z.field,onChange:e=>Le(e.target.value),children:[(0,K.jsx)(`option`,{value:``,children:o(`dataModel.chooseField`)}),Te.map(e=>(0,K.jsx)(`option`,{value:e.field,children:ki(e)},e.field))]})]}),(0,K.jsxs)(`label`,{className:`field-label compact-control filter-operator-control`,children:[(0,K.jsx)(`span`,{children:o(`content.condition`)}),(0,K.jsx)(`select`,{value:z.operator,disabled:!Ee,onChange:e=>B(t=>({...t,operator:e.target.value,value:``})),children:De.map(([e,t])=>(0,K.jsx)(`option`,{value:e,children:o(t)},e))})]}),(0,K.jsxs)(`label`,{className:`field-label filter-value-control`,children:[(0,K.jsx)(`span`,{children:o(`content.value`)}),[`_null`,`_nnull`].includes(z.operator)?(0,K.jsx)(`div`,{className:`control-placeholder`,children:o(`content.noValueNeeded`)}):pr(Ee)?(0,K.jsxs)(`select`,{value:z.value,disabled:!Ee,onChange:e=>B(t=>({...t,value:e.target.value})),children:[(0,K.jsx)(`option`,{value:``,children:o(`fileField.chooseFile`)}),h.filter(e=>!mr(Ee)||String(e.mimetype||``).startsWith(`image/`)).map(e=>(0,K.jsx)(`option`,{value:e.id,children:e.title||e.filename_download},e.id))]}):p[z.field]?(0,K.jsx)(Vr,{value:z.value,items:p[z.field].items,keyField:p[z.field].keyField,labelField:p[z.field].labelField,disabled:!Ee,required:!0,placeholder:o(`content.chooseRecord`),searchPlaceholder:o(`content.relationSearch`),emptyLabel:o(`content.relationEmpty`),noneLabel:o(`common.none`),onChange:e=>B(t=>({...t,value:e}))}):Ee?.type===`boolean`?(0,K.jsxs)(`select`,{value:z.value,disabled:!Ee,onChange:e=>B(t=>({...t,value:e.target.value})),children:[(0,K.jsx)(`option`,{value:``,children:o(`content.chooseValue`)}),(0,K.jsx)(`option`,{value:`true`,children:o(`common.yes`)}),(0,K.jsx)(`option`,{value:`false`,children:o(`common.no`)})]}):(0,K.jsx)(`input`,{type:Ri(Ee),step:Ee?.type===`decimal`?`any`:void 0,value:z.value,disabled:!Ee,onChange:e=>B(t=>({...t,value:e.target.value})),placeholder:o(Ee?`content.filterValue`:`content.chooseFieldFirst`)})]}),(0,K.jsx)(`button`,{className:`secondary-button filter-add-button`,type:`submit`,disabled:!Ee,children:o(`content.addFilter`)})]}),(0,K.jsxs)(`div`,{className:`active-controls-row`,children:[(0,K.jsxs)(`div`,{className:`filter-chip-list`,"aria-label":o(`content.activeFilters`),children:[te.map(e=>{let t=Ii(Te.find(t=>t.field===e.field),p[e.field]).find(([t])=>t===e.operator)?.[1];return(0,K.jsxs)(`button`,{className:`filter-chip`,type:`button`,onClick:()=>ze(e.id),children:[(0,K.jsxs)(`span`,{children:[Ue(e.field),` · `,t?o(t):e.operator,` · `,He(e)]}),(0,K.jsx)(`strong`,{"aria-hidden":`true`,children:`×`})]},e.id)}),te.length===0&&(0,K.jsx)(`span`,{className:`controls-hint`,children:o(`content.filterHint`)})]}),je&&(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:Be,children:o(`content.resetView`)})]})]}),de&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:de}),fe&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:fe}),Me>0&&(0,K.jsxs)(`div`,{className:`content-bulk-bar`,role:`region`,"aria-label":o(`content.selectedCount`,{count:Me}),children:[(0,K.jsx)(`strong`,{children:o(`content.selectedCount`,{count:Me})}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>E(new Set),children:o(`common.cancel`)}),(0,K.jsx)(`button`,{className:`danger-button`,type:`button`,onClick:xe,children:o(`content.bulkDelete`)})]})]}),ce?(0,K.jsx)(`section`,{className:`panel`,children:(0,K.jsx)(`p`,{children:o(`content.loadingCollection`)})}):!ue&&ke===0&&!je?(0,K.jsxs)(`section`,{className:`panel empty-state empty-state-action`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:o(`content.noRecordsYet`)}),(0,K.jsx)(`p`,{children:o(`content.firstRecordDescription`,{collection:Ge})})]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>i?.(J.contentNew(e)),children:o(`content.createFirstRecord`)})]}):!ue&&ke===0?(0,K.jsxs)(`section`,{className:`panel empty-state empty-state-action`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:o(`content.noRecords`)}),(0,K.jsx)(`p`,{children:o(`content.noMatchDescription`)})]}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:Be,children:o(`content.resetView`)})]}):(0,K.jsxs)(`section`,{className:`table-panel content-table-density-${ee} ${ue?`is-loading`:``}`,"aria-busy":ue,children:[(0,K.jsx)(`div`,{className:`table-scroll`,children:(0,K.jsxs)(`table`,{children:[(0,K.jsx)(`thead`,{children:(0,K.jsxs)(`tr`,{children:[(0,K.jsx)(`th`,{className:`content-selection-column`,children:(0,K.jsx)(`input`,{type:`checkbox`,checked:Ne,onChange:Fe,"aria-label":o(`content.selectPage`)})}),Ce.map(e=>(0,K.jsx)(`th`,{"aria-sort":re===e.field?V===`asc`?`ascending`:`descending`:`none`,title:e.field,children:(0,K.jsxs)(`button`,{className:`sort-header-button`,type:`button`,onClick:()=>Ve(e.field),children:[(0,K.jsx)(`span`,{children:ki(e)}),(0,K.jsx)(`span`,{className:`sort-indicator`,"aria-hidden":`true`,children:re===e.field?V===`asc`?`↑`:`↓`:``})]})},e.field)),(0,K.jsx)(`th`,{"aria-label":o(`common.actions`)})]})}),(0,K.jsx)(`tbody`,{children:_.map(t=>{let n=T.has(String(t.id));return(0,K.jsxs)(`tr`,{className:`content-row-open ${n?`content-row-selected`:``}`,onClick:e=>{e.target.closest?.(`button, input, a, select, textarea, label`)||w(t)},children:[(0,K.jsx)(`td`,{className:`content-selection-column`,children:(0,K.jsx)(`input`,{type:`checkbox`,checked:n,onChange:()=>Pe(t.id),"aria-label":o(`content.selectRecord`,{id:t.id})})}),Ce.map(e=>(0,K.jsx)(`td`,{children:pr(e)?(0,K.jsx)(Ir,{field:e,value:t[e.field],files:h,t:o}):Fi(e,t,p,o,a)},e.field)),(0,K.jsxs)(`td`,{className:`row-actions`,children:[(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>w(t),children:o(`content.quickEdit`)}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>i?.(J.contentRecord(e,t.id)),children:o(`common.edit`)}),(0,K.jsx)(`button`,{className:`danger-button`,type:`button`,onClick:()=>be(t),children:o(`common.delete`)})]})]},t.id)})})]})}),(0,K.jsx)(`div`,{className:`mobile-record-list`,"aria-label":Ge,children:_.map(t=>{let n=we[0];return(0,K.jsxs)(`article`,{className:`mobile-record-card`,children:[(0,K.jsxs)(`header`,{children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`small`,{children:n?ki(n):o(`content.records`)}),(0,K.jsx)(`strong`,{children:n?Fi(n,t,p,o,a):t.id})]}),(0,K.jsx)(`code`,{children:t.id})]}),(0,K.jsx)(`dl`,{children:we.slice(1).map(e=>(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:ki(e)}),(0,K.jsx)(`dd`,{children:pr(e)?(0,K.jsx)(Ir,{field:e,value:t[e.field],files:h,t:o}):Fi(e,t,p,o,a)})]},e.field))}),(0,K.jsxs)(`div`,{className:`mobile-card-actions`,children:[(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>w(t),children:o(`content.quickEdit`)}),(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>i?.(J.contentRecord(e,t.id)),children:o(`common.edit`)}),(0,K.jsx)(`button`,{className:`danger-button`,type:`button`,onClick:()=>be(t),children:o(`common.delete`)})]})]},t.id)})}),(0,K.jsx)(Yn,{page:Ae,pageSize:H,totalItems:ke,pageSizeOptions:Y,loading:ue,itemLabel:o(`content.records`),onPageChange:e=>U((e-1)*H),onPageSizeChange:e=>{oe(e),U(0)}})]}),(0,K.jsx)(Rr,{open:!!C,title:C?`${Ge} · ${C.id}`:Ge,description:o(`content.quickEdit`),closeLabel:o(`studio.inspectorClose`),onClose:()=>w(null),children:C&&(0,K.jsx)(Bi,{compact:!0,collection:e,collectionLabel:t,fields:d,relationLookups:p,files:h,record:C,onFileUploaded:We,onCancel:()=>w(null),onOpenFull:()=>{let t=C.id;w(null),i?.(J.contentRecord(e,t))},onSaved:async e=>{e&&w(e),pe(o(`common.saved`)),await ye()}})})]}):(0,K.jsxs)(`section`,{className:`panel empty-state empty-state-action`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:o(`nav.content`)}),(0,K.jsx)(`h2`,{children:o(`content.noCollections`)}),(0,K.jsx)(`p`,{children:o(`content.noCollectionsDescription`)})]}),n&&(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:n,children:o(`content.openDataModel`)})]})}function Hi({collection:e,collectionLabel:t,collectionMeta:n,route:r,onNavigate:i,onOpenDataModel:a}){let{t:o}=q(),[s,c]=(0,l.useState)(!!(n?.singleton&&[`list`,`new`].includes(r?.view))),[u,d]=(0,l.useState)(``);return(0,l.useEffect)(()=>{if(!n?.singleton||!e||![`list`,`new`].includes(r?.view)){c(!1),d(``);return}let t=!1;c(!0),d(``);let a=n.primary_key||`id`;return D(`/items/${encodeURIComponent(e)}?fields=${encodeURIComponent(a)}&limit=1`).then(a=>{if(t)return;let o=wi(e,n,a?.data??[]);if(r.view===`new`&&o===J.contentNew(e)){c(!1);return}i?.(o,{replace:!0})}).catch(e=>{t||(d(e.message||o(`navigation.singletonOpening`)),c(!1))}),()=>{t=!0}},[e,n?.singleton,n?.primary_key,r?.view]),s?(0,K.jsx)(`div`,{className:`panel`,children:(0,K.jsx)(`p`,{className:`muted-line`,children:o(`navigation.singletonOpening`)})}):u?(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:u}):(0,K.jsx)(Vi,{collection:e,collectionLabel:t,route:r,onNavigate:i,onOpenDataModel:a})}function Ui(){return(0,K.jsxs)(`span`,{className:`navigation-drag-dots`,"aria-hidden":`true`,children:[(0,K.jsx)(`i`,{}),(0,K.jsx)(`i`,{}),(0,K.jsx)(`i`,{}),(0,K.jsx)(`i`,{}),(0,K.jsx)(`i`,{}),(0,K.jsx)(`i`,{})]})}function Wi(e,t){return!t||[e.name,e.collection,e.note].filter(Boolean).some(e=>String(e).toLowerCase().includes(t))}function Gi({onNavigate:e,onCollectionsChanged:t}){let{t:n}=q(),r=lr(),[i,a]=(0,l.useState)([]),[o,s]=(0,l.useState)([]),[c,u]=(0,l.useState)(``),[d,f]=(0,l.useState)(!0),[p,m]=(0,l.useState)(``),[h,g]=(0,l.useState)(``),[_,v]=(0,l.useState)(null),[y,b]=(0,l.useState)(!1),[x,S]=(0,l.useState)({}),[C,w]=(0,l.useState)(null),[T,E]=(0,l.useState)(null),O=(0,l.useRef)(null);async function k(){f(!0),m(``);try{let[e,t]=await Promise.all([D(`/schema/collections`),ne()]);a(e?.data??[]),s(t)}catch(e){m(e.message||n(`navigation.loadFailed`))}finally{f(!1)}}(0,l.useEffect)(()=>{k()},[]),(0,l.useEffect)(()=>{S(e=>Object.fromEntries(o.map(t=>[t.id,t.collapse===`locked`?!0:Object.hasOwn(e,t.id)?e[t.id]:t.collapse!==`closed`])))},[o]);let ee=(0,l.useMemo)(()=>li(i,o),[i,o]),A=c.trim().toLowerCase(),j=(0,l.useMemo)(()=>ee.nodes.flatMap(e=>{if(e.type===`collection`)return Wi(e.entry,A)?[e]:[];if(!A||e.group.name.toLowerCase().includes(A))return[e];let t=e.group.collections.filter(e=>Wi(e,A));return t.length?[{...e,group:{...e.group,collections:t}}]:[]}),[ee,A]),M=ee.roots.length+ee.groups.reduce((e,t)=>e+t.collections.length,0);function N(e){g(e),m(``)}async function P(){await k(),await t?.()}async function F(e,t){await D(`/schema/collections/${encodeURIComponent(e)}`,{method:`PATCH`,body:t})}async function I(e){try{await F(e.collection,{hidden:!e.hidden}),N(e.hidden?n(`navigation.collectionShown`):n(`navigation.collectionHidden`)),await P()}catch(e){m(e.message||n(`navigation.updateFailed`))}}async function te(e){try{await F(e.collection,{singleton:!e.singleton}),N(e.singleton?n(`navigation.singletonDisabled`):n(`navigation.singletonEnabled`)),await P()}catch(e){m(e.message||n(`navigation.singletonFailed`))}}async function L(e={},t=O.current??C){if(!t||A)return;let r=pi(i,o,t,e);if(E(null),!r.collections.length&&!r.groups.length){O.current=null,w(null);return}try{for(let e of r.groups)await z(e.id,{sort:e.sort});for(let e of r.collections){let t=i.find(t=>t.collection===e.collection);t&&await F(e.collection,{metadata:le(t,{group:e.group,sort:e.sort})})}N(n(`navigation.orderSaved`)),await P()}catch(e){m(e.message||n(`navigation.orderFailed`))}finally{O.current=null,w(null),E(null)}}function re(e,t,n){let r=document.elementFromPoint(e,t)?.closest?.(`[data-navigation-drop-type]`);if(!r)return null;let i=r.dataset.navigationDropType,a=r.dataset.navigationDropId;if(i===`root`)return{type:`root`,id:a||`end`,position:`after`};if(![`collection`,`group`].includes(i)||!a||n.type===`group`&&r.dataset.navigationGrouped===`true`)return null;if(r.dataset.navigationDropPosition===`inside`)return n.type===`collection`?{type:i,id:a,position:`inside`}:null;let o=r.getBoundingClientRect();return{type:i,id:a,position:ui({top:o.top,height:o.height,clientY:t,allowInside:i===`group`&&n.type===`collection`})}}function ie(e,t){A||e.pointerType!==`touch`&&e.button!==0||(e.preventDefault(),e.stopPropagation(),O.current=t,w(t),E(null))}function V(e){let t=O.current;t&&(e.preventDefault(),E(re(e.clientX,e.clientY,t)))}function ae(e){let t=O.current;if(!t)return;e.cancelable&&e.preventDefault();let n=re(e.clientX,e.clientY,t);if(O.current=null,!n){w(null),E(null);return}L(n,t)}function H(){O.current=null,w(null),E(null)}(0,l.useEffect)(()=>{if(!C)return;let e=e=>V(e),t=e=>ae(e),n=()=>H();return window.addEventListener(`pointermove`,e,{passive:!1}),window.addEventListener(`mousemove`,e,{passive:!1}),window.addEventListener(`pointerup`,t,!0),window.addEventListener(`mouseup`,t,!0),window.addEventListener(`pointercancel`,n,!0),window.addEventListener(`blur`,n),()=>{window.removeEventListener(`pointermove`,e),window.removeEventListener(`mousemove`,e),window.removeEventListener(`pointerup`,t,!0),window.removeEventListener(`mouseup`,t,!0),window.removeEventListener(`pointercancel`,n,!0),window.removeEventListener(`blur`,n)}},[C]);function oe(e,t){return T?.type!==e||T?.id!==t?``:`is-drop-${T.position}`}function se(){v({mode:`create`,name:``,collapse:`open`}),m(``)}function ce(e){v({mode:`edit`,id:e.id,name:e.name,collapse:e.collapse}),m(``)}async function ue(e){e.preventDefault();let t=_?.name.trim();if(t){b(!0);try{if(_.mode===`create`){let e=mi(i,o);for(let t of e.groups)await z(t.id,{sort:t.sort});for(let t of e.collections){let e=i.find(e=>e.collection===t.collection);e&&await F(t.collection,{metadata:le(e,{group:t.group,sort:t.sort})})}let r=await R({name:t,collapse:_.collapse,sort:e.sort});S(e=>({...e,[r.id]:_.collapse!==`closed`})),N(n(`navigation.groupCreated`))}else await z(_.id,{name:t,collapse:_.collapse}),S(e=>({...e,[_.id]:_.collapse!==`closed`})),N(n(`navigation.groupRenamed`));v(null),await P()}catch(e){m(e.message||n(_?.mode===`edit`?`navigation.groupRenameFailed`:`navigation.groupCreateFailed`))}finally{b(!1)}}}async function W(e){if(e&&await r({title:n(`navigation.deleteGroup`),description:n(`navigation.deleteGroupDescription`,{name:e.name}),confirmLabel:n(`navigation.deleteGroupAction`),tone:`danger`}))try{await B(e.id),v(null),N(n(`navigation.groupDeleted`)),await P()}catch(e){m(e.message||n(`navigation.groupDeleteFailed`))}}function de(e){A||e.collapse===`locked`||S(t=>({...t,[e.id]:!t[e.id]}))}function G({entry:t,grouped:r=!1}){let i=U(t),a=C?.type===`collection`&&C.id===t.collection;return(0,K.jsxs)(`div`,{className:`navigation-collection-row ${t.hidden?`is-hidden`:``} ${r?`is-grouped`:``} ${a?`is-dragging`:``} ${oe(`collection`,t.collection)}`,"data-navigation-drop-type":`collection`,"data-navigation-drop-id":t.collection,"data-navigation-grouped":r?`true`:`false`,children:[(0,K.jsxs)(`button`,{className:`navigation-row-main`,type:`button`,onClick:()=>e?.(J.collection(t.collection)),children:[(0,K.jsx)(ir,{name:i.icon,size:18}),(0,K.jsxs)(`span`,{className:`navigation-row-copy`,children:[(0,K.jsx)(`strong`,{children:hn(t,`collection`)}),(0,K.jsxs)(`small`,{children:[t.collection,t.note?` · ${t.note}`:``]})]}),t.singleton?(0,K.jsx)(`span`,{className:`navigation-singleton-badge`,children:n(`navigation.singleton`)}):null]}),(0,K.jsxs)(`div`,{className:`navigation-row-actions`,children:[(0,K.jsx)(`button`,{className:`navigation-icon-button ${t.singleton?`active`:``}`,type:`button`,title:t.singleton?n(`navigation.disableSingleton`):n(`navigation.enableSingleton`),"aria-label":t.singleton?n(`navigation.disableSingleton`):n(`navigation.enableSingleton`),onClick:()=>te(t),children:(0,K.jsx)(`span`,{className:`navigation-singleton-icon`,"aria-hidden":`true`,children:`1`})}),(0,K.jsx)(`button`,{className:`navigation-icon-button`,type:`button`,title:t.hidden?n(`navigation.showCollection`):n(`navigation.hideCollection`),"aria-label":t.hidden?n(`navigation.showCollection`):n(`navigation.hideCollection`),onClick:()=>I(t),children:(0,K.jsx)(wn,{name:t.hidden?`visibility-off`:`visibility`,size:17})}),!A&&(0,K.jsx)(`button`,{className:`navigation-drag-handle`,type:`button`,title:n(`navigation.dragCollection`),"aria-label":n(`navigation.dragCollection`),onPointerDown:e=>ie(e,{type:`collection`,id:t.collection}),onPointerMove:V,onPointerUp:ae,onPointerCancel:H,children:(0,K.jsx)(Ui,{})})]})]})}function fe({group:e}){let t=A||e.collapse===`locked`||!!x[e.id],r=C?.type===`group`&&C.id===e.id;return(0,K.jsxs)(`div`,{className:`navigation-group-node`,children:[(0,K.jsxs)(`div`,{className:`navigation-group-row ${r?`is-dragging`:``} ${oe(`group`,e.id)}`,"data-navigation-drop-type":`group`,"data-navigation-drop-id":e.id,children:[(0,K.jsxs)(`button`,{className:`navigation-group-main`,type:`button`,"aria-expanded":t,onClick:()=>de(e),children:[(0,K.jsx)(`span`,{className:`navigation-group-chevron ${t?`open`:``}`,children:(0,K.jsx)(wn,{name:`chevron`,size:14})}),(0,K.jsx)(ir,{name:`folder`,size:19}),(0,K.jsxs)(`span`,{className:`navigation-row-copy`,children:[(0,K.jsx)(`strong`,{children:e.name}),(0,K.jsx)(`small`,{children:n(`navigation.groupSummary`,{count:e.collections.length,behavior:n(`navigation.collapse.${e.collapse}`)})})]})]}),(0,K.jsxs)(`div`,{className:`navigation-row-actions`,children:[(0,K.jsx)(`button`,{className:`navigation-edit-group text-button`,type:`button`,onClick:()=>ce(e),children:n(`navigation.editGroup`)}),!A&&(0,K.jsx)(`button`,{className:`navigation-drag-handle`,type:`button`,title:n(`navigation.dragGroup`),"aria-label":n(`navigation.dragGroup`),onPointerDown:t=>ie(t,{type:`group`,id:e.id}),onPointerMove:V,onPointerUp:ae,onPointerCancel:H,children:(0,K.jsx)(Ui,{})})]})]}),t&&(0,K.jsxs)(`div`,{className:`navigation-group-children`,"data-navigation-drop-type":`group`,"data-navigation-drop-id":e.id,"data-navigation-drop-position":`inside`,children:[e.collections.map(e=>(0,K.jsx)(G,{entry:e,grouped:!0},e.collection)),e.collections.length===0&&(0,K.jsx)(`p`,{className:`navigation-empty-group`,children:n(`navigation.emptyGroup`)})]})]})}return(0,K.jsxs)(`section`,{className:`navigation-model-screen`,children:[(0,K.jsxs)(`section`,{className:`navigation-model-hero`,children:[(0,K.jsx)(`div`,{className:`navigation-model-hero-grid`,"aria-hidden":`true`}),(0,K.jsx)(`div`,{className:`navigation-model-hero-orbit`,"aria-hidden":`true`}),(0,K.jsxs)(`div`,{className:`navigation-model-hero-copy`,children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:n(`nav.dataModel`)}),(0,K.jsx)(`h1`,{children:n(`section.dataModelTitle`)}),(0,K.jsx)(`p`,{children:n(`section.dataModelDescription`)})]}),(0,K.jsxs)(`div`,{className:`navigation-model-hero-side`,children:[(0,K.jsxs)(`div`,{className:`navigation-model-hero-stats`,children:[(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`small`,{children:n(`dataModel.collectionsLower`)}),(0,K.jsx)(`strong`,{children:M})]}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`small`,{children:n(`navigation.folders`)}),(0,K.jsx)(`strong`,{children:ee.groups.length})]})]}),(0,K.jsxs)(`div`,{className:`navigation-toolbar-actions`,children:[(0,K.jsxs)(`button`,{className:`secondary-button`,type:`button`,onClick:se,children:[(0,K.jsx)(ir,{name:`folder`,size:16}),n(`navigation.createGroup`)]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>e?.(J.newCollection()),children:n(`navigation.createCollection`)})]})]})]}),(0,K.jsx)(`div`,{className:`navigation-model-toolbar`,children:(0,K.jsx)(`div`,{className:`navigation-search-wrap`,children:(0,K.jsx)(`input`,{type:`search`,value:c,placeholder:n(`navigation.search`),onChange:e=>u(e.target.value)})})}),_&&(0,K.jsxs)(`form`,{className:`navigation-group-editor`,onSubmit:ue,children:[(0,K.jsxs)(`div`,{className:`navigation-group-editor-heading`,children:[(0,K.jsx)(`strong`,{children:n(_.mode===`create`?`navigation.createGroupTitle`:`navigation.editGroupTitle`)}),(0,K.jsx)(`small`,{children:n(`navigation.groupEditorHint`)})]}),(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:n(`navigation.groupName`)}),(0,K.jsx)(`input`,{autoFocus:!0,value:_.name,maxLength:`100`,onChange:e=>v(t=>({...t,name:e.target.value}))})]}),(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:n(`navigation.collapseLabel`)}),(0,K.jsxs)(`select`,{value:_.collapse,onChange:e=>v(t=>({...t,collapse:e.target.value})),children:[(0,K.jsx)(`option`,{value:`open`,children:n(`navigation.collapse.open`)}),(0,K.jsx)(`option`,{value:`closed`,children:n(`navigation.collapse.closed`)}),(0,K.jsx)(`option`,{value:`locked`,children:n(`navigation.collapse.locked`)})]})]}),(0,K.jsxs)(`div`,{className:`navigation-group-editor-actions`,children:[_.mode===`edit`&&(0,K.jsx)(`button`,{className:`text-button danger`,type:`button`,onClick:()=>W(o.find(e=>e.id===_.id)),children:n(`navigation.deleteGroupAction`)}),(0,K.jsx)(`span`,{}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>v(null),children:n(`navigation.cancel`)}),(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,disabled:y||!_.name.trim(),children:n(_.mode===`create`?`navigation.addGroup`:`navigation.saveGroupName`)})]})]}),p&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:p}),h&&(0,K.jsx)(`div`,{className:`success-banner`,role:`status`,children:h}),(0,K.jsxs)(`div`,{className:`navigation-model-list panel`,children:[(0,K.jsxs)(`div`,{className:`navigation-list-heading`,children:[(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:n(`navigation.structureTitle`)}),(0,K.jsx)(`small`,{children:n(`navigation.structureSummary`,{collections:M,groups:ee.groups.length})})]}),(0,K.jsx)(`small`,{children:n(A?`navigation.dragDisabledSearch`:`navigation.dragReady`)})]}),d?(0,K.jsx)(`p`,{className:`muted-line`,children:n(`navigation.loading`)}):(0,K.jsxs)(`div`,{className:`navigation-tree`,children:[j.map(e=>e.type===`group`?(0,K.jsx)(fe,{group:e.group},`group:${e.id}`):(0,K.jsx)(G,{entry:e.entry},`collection:${e.id}`)),C&&!A&&(0,K.jsx)(`div`,{className:`navigation-root-drop ${T?.type===`root`?`active`:``}`,"data-navigation-drop-type":`root`,"data-navigation-drop-id":`end`,children:n(`navigation.moveToRootEnd`)}),j.length===0&&(0,K.jsx)(`p`,{className:`navigation-empty-state`,children:n(A?`navigation.noSearchResults`:`navigation.noCollections`)})]})]}),(0,K.jsx)(`p`,{className:`navigation-model-hint`,children:n(`navigation.hint`)})]})}var Ki=Object.freeze([[`created_at`,`collectionBuilder.createdAt`,`collectionBuilder.createdAtHint`],[`updated_at`,`collectionBuilder.updatedAt`,`collectionBuilder.updatedAtHint`],[`created_by`,`collectionBuilder.createdBy`,`collectionBuilder.createdByHint`],[`updated_by`,`collectionBuilder.updatedBy`,`collectionBuilder.updatedByHint`]]);function qi(e){if(!e)return{};if(typeof e==`object`)return e;try{return JSON.parse(e)??{}}catch{return{}}}function Ji(e){return qi(e?.metadata).kind||`m2o`}function Yi(e){return qi(e?.schema_metadata)}function Xi(e){return Yi(e).systemManaged===!0}function Zi(e){return Yi(e).systemExtension===!0}function Qi(e=10){return{name:``,collection:``,keyTouched:!1,note:``,icon:`collection`,visible:!0,sort:e,systemFields:Ki.map(([e])=>e)}}function $i(e,t,n){let r=[...e],i=r.findIndex(e=>e.collection===t),a=r.findIndex(e=>e.collection===n);if(i<0||a<0||i===a)return r;let[o]=r.splice(i,1);return r.splice(a,0,o),r}function ea({onCollectionsChanged:e,route:t={},onNavigate:n}){let{t:r}=q(),i=lr(),[a,o]=(0,l.useState)([]),[s,c]=(0,l.useState)(``),[u,d]=(0,l.useState)([]),[f,p]=(0,l.useState)([]),[m,h]=(0,l.useState)(``),[g,_]=(0,l.useState)(``),[v,y]=(0,l.useState)(!0),[b,x]=(0,l.useState)(``),[S,C]=(0,l.useState)(``),[w,T]=(0,l.useState)(()=>Qi()),[E,O]=(0,l.useState)(Er),[k,ee]=(0,l.useState)({name:``,note:``,icon:`collection`,visible:!0}),[A,j]=(0,l.useState)(`m2o`),[M,N]=(0,l.useState)({manyField:``,oneCollection:``,onDelete:`RESTRICT`}),[P,F]=(0,l.useState)({junctionCollection:``,leftCollection:``,rightCollection:``}),[I,te]=(0,l.useState)(``),L=(0,l.useMemo)(()=>a.filter(e=>!e.system).slice().sort((e,t)=>U(e).sort-U(t).sort||e.collection.localeCompare(t.collection)),[a]),ne=(0,l.useMemo)(()=>a.filter(e=>e.system).slice().sort((e,t)=>e.collection.localeCompare(t.collection)),[a]),R=a.find(e=>e.collection===s)??null,z=u.find(e=>e.field===t.field)??null,B=t.view||`collections`,re=B===`new-collection`,ie=B===`graph`,V=L.length?Math.max(...L.map(e=>U(e).sort))+10:10,ae=(0,l.useMemo)(()=>{let e=m.trim().toLowerCase();return L.filter(t=>!e||[t.name,t.collection,t.note].filter(Boolean).some(t=>String(t).toLowerCase().includes(e)))},[L,m]),H=(0,l.useMemo)(()=>{let e=m.trim().toLowerCase();return ne.filter(t=>!e||[t.name,t.collection,t.note].filter(Boolean).some(t=>String(t).toLowerCase().includes(e)))},[ne,m]),oe=(0,l.useMemo)(()=>{let e=g.trim().toLowerCase();return u.filter(t=>!e||[t.name,t.field,yr(t)].filter(Boolean).some(t=>String(t).toLowerCase().includes(e)))},[u,g]),se=(0,l.useMemo)(()=>u.filter(e=>e.field!==`id`&&e.type===`uuid`&&!e.readonly&&!pr(e)&&!Xi(e)),[u]),ce=(0,l.useMemo)(()=>f.filter(e=>Ji(e)!==`m2m`&&(e.many_collection===s||e.one_collection===s)),[f,s]),ue=(0,l.useMemo)(()=>[...new Set(f.filter(e=>Ji(e)===`m2m`&&e.one_collection===s).map(e=>e.junction_collection).filter(Boolean))].map(e=>({name:e,rows:f.filter(t=>t.junction_collection===e&&Ji(t)===`m2m`)})),[f,s]);async function W(e=s){y(!0);try{let t=(await D(`/schema/collections`))?.data??[];o(t);let r=t.some(t=>t.collection===e)?e:``;c(r),e&&!r&&n?.(J.dataModel())}catch(e){x(e.message||r(`dataModel.schemaLoadError`))}finally{y(!1)}}async function de(e=s){if(!e){d([]);return}try{let[t,n]=await Promise.all([D(`/schema/collections/${encodeURIComponent(e)}/fields`),D(`/schema/relations`)]);d(t?.data??[]),p(n?.data??[])}catch(e){x(e.message||r(`dataModel.collectionLoadError`))}}(0,l.useEffect)(()=>{W(t.collection||``)},[]),(0,l.useEffect)(()=>{let e=t.collection||``;e!==s&&c(e),B===`new-relation`&&t.relationKind&&j(t.relationKind)},[t.collection,t.relationKind,B]),(0,l.useEffect)(()=>{if(!ie)return;let e=!1;return D(`/schema/relations`).then(t=>{e||p(t?.data??[])}).catch(t=>{e||x(t.message||r(`dataModel.collectionLoadError`))}),()=>{e=!0}},[ie,r]),(0,l.useEffect)(()=>{if(!R)return;let e=U(R);ee({name:hn(R,`collection`),note:R.note||``,icon:e.icon,visible:!R.hidden}),_(``),O(Er()),j(B===`new-relation`&&t.relationKind?t.relationKind:`m2o`),N({manyField:``,oneCollection:``,onDelete:`RESTRICT`}),F({junctionCollection:``,leftCollection:s,rightCollection:``}),de(s)},[s,R?.collection]);function G(e){C(e),x(``)}async function fe(t=s){await W(t),await e?.()}async function pe(e){e.preventDefault(),x(``);try{let e=w.name.trim(),t=w.collection.trim(),i=(await D(`/schema/collections`,{method:`POST`,body:{name:e,collection:t,note:w.note.trim()||null,hidden:!w.visible,metadata:{icon:w.icon,sort:Number(w.sort)||V},systemFields:w.systemFields}}))?.data?.collection||t;T(Qi(V+10)),G(r(`dataModel.collectionCreated`,{name:e})),await fe(i),n?.(J.collection(i))}catch(e){x(e.message||r(`dataModel.collectionCreateError`))}}async function me(){if(!(!R||R.system)){x(``);try{let e=le(R,{icon:k.icon,sort:U(R).sort});await D(`/schema/collections/${encodeURIComponent(s)}`,{method:`PATCH`,body:{name:k.name.trim(),note:k.note.trim()||null,hidden:!k.visible,metadata:e}}),G(r(`dataModel.collectionSettingsSaved`)),await fe(s)}catch(e){x(e.message||r(`dataModel.collectionSettingsError`))}}}async function he(e){for(let t=0;t<e.length;t+=1){let n=e[t];await D(`/schema/collections/${encodeURIComponent(n.collection)}`,{method:`PATCH`,body:{metadata:le(n,{sort:(t+1)*10})}})}G(r(`dataModel.navigationOrderSaved`)),await fe(s)}async function ge(e){let t=L.findIndex(e=>e.collection===s),n=t+e;if(t<0||n<0||n>=L.length)return;let i=[...L];[i[t],i[n]]=[i[n],i[t]];try{await he(i)}catch(e){x(e.message||r(`dataModel.navigationOrderError`))}}async function _e(e){if(!I||I===e)return;let t=$i(L,I,e);te(``);try{await he(t)}catch(e){x(e.message||r(`dataModel.navigationOrderError`))}}async function ve(){if(!(!R||R.system)&&await i({title:r(`dataModel.deleteCollection`),description:r(`dataModel.deleteCollectionDescription`,{name:hn(R,`collection`)}),confirmLabel:r(`dataModel.deleteCollectionAction`),tone:`danger`}))try{await D(`/schema/collections/${encodeURIComponent(s)}?destructive=true`,{method:`DELETE`}),G(r(`dataModel.collectionDeleted`,{name:hn(R,`collection`)})),await fe(``),n?.(J.dataModel())}catch(e){x(e.message||r(`dataModel.collectionDeleteError`))}}async function ye(e){if(e.preventDefault(),R)try{let e=Tr(E);await D(R.system?`/schema/system-collections/${encodeURIComponent(s)}/fields`:`/schema/collections/${encodeURIComponent(s)}/fields`,{method:`POST`,body:e}),O(Er()),G(r(`dataModel.fieldAdded`,{name:e.name||e.field})),await de(),n?.(J.field(s,e.field))}catch(e){x(e.message||r(`dataModel.fieldCreateError`))}}async function be(e){if(!(R?.system||e.field===`id`||e.readonly||Xi(e)))try{await D(`/schema/collections/${encodeURIComponent(s)}/fields/${encodeURIComponent(e.field)}/schema`,{method:`PATCH`,body:{required:!e.required}}),G(r(`dataModel.fieldUpdated`,{name:hn(e,`field`)})),await de()}catch(e){x(e.message||r(`dataModel.fieldUpdateError`))}}async function xe(e){if(!(R?.system||e.field===`id`||Xi(e))&&await i({title:r(`dataModel.deleteField`),description:r(`dataModel.deleteFieldDescription`,{collection:hn(R,`collection`),field:hn(e,`field`)}),confirmLabel:r(`dataModel.deleteFieldAction`),tone:`danger`}))try{await D(`/schema/collections/${encodeURIComponent(s)}/fields/${encodeURIComponent(e.field)}?destructive=true`,{method:`DELETE`}),G(r(`dataModel.fieldDeleted`,{name:hn(e,`field`)})),await de(),B===`field`&&n?.(J.fields(s))}catch(e){x(e.message||r(`dataModel.fieldDeleteError`))}}async function Se(e){e.preventDefault();let t=A===`o2o`?`o2o`:`m2o`;try{await D(`/schema/relations/${t}`,{method:`POST`,body:{manyCollection:s,manyField:M.manyField,oneCollection:M.oneCollection,onDelete:M.onDelete}}),G(r(t===`o2o`?`dataModel.o2oCreated`:`dataModel.relationCreated`,{collection:hn(R,`collection`),field:M.manyField})),N({manyField:``,oneCollection:``,onDelete:`RESTRICT`}),await de(),n?.(J.relations(s))}catch(e){x(e.message||r(t===`o2o`?`dataModel.o2oCreateError`:`dataModel.relationCreateError`))}}async function Ce(e){let t=Ji(e)===`o2o`?`o2o`:`m2o`;if(await i({title:r(`dataModel.deleteRelation`),description:r(`dataModel.deleteRelationDescription`,{collection:e.many_collection,field:e.many_field,target:e.one_collection}),confirmLabel:r(`dataModel.deleteRelationAction`),tone:`danger`}))try{await D(`/schema/relations/${t}/${encodeURIComponent(e.many_collection)}/${encodeURIComponent(e.many_field)}`,{method:`DELETE`}),G(r(`dataModel.relationDeleted`)),await de()}catch(e){x(e.message||r(`dataModel.relationDeleteError`))}}async function we(e){e.preventDefault();try{let e=P.junctionCollection.trim();await D(`/schema/relations/m2m`,{method:`POST`,body:{junctionCollection:e,leftCollection:P.leftCollection,rightCollection:P.rightCollection}}),G(r(`dataModel.junctionCreated`,{name:e})),F({junctionCollection:``,leftCollection:s,rightCollection:``}),await fe(s),await de(s),n?.(J.relations(s))}catch(e){x(e.message||r(`dataModel.m2mCreateError`))}}async function Te(e){if(await i({title:r(`dataModel.deleteM2M`),description:r(`dataModel.deleteM2MDescription`,{name:e}),confirmLabel:r(`dataModel.deleteRelationAction`),tone:`danger`}))try{await D(`/schema/relations/m2m/${encodeURIComponent(e)}?destructive=true`,{method:`DELETE`}),G(r(`dataModel.junctionDeleted`,{name:e})),await fe(s),await de(s)}catch(e){x(e.message||r(`dataModel.m2mDeleteError`))}}function Ee(e){T(t=>({...t,systemFields:t.systemFields.includes(e)?t.systemFields.filter(t=>t!==e):[...t.systemFields,e]}))}function De(e){T(t=>({...t,name:e,collection:t.keyTouched?t.collection:mn(e,`collection`)}))}let Oe=L.findIndex(e=>e.collection===s),ke={title:r(`studio.schemaGraph`),description:r(`studio.schemaGraphDescription`),showSystem:r(`studio.schemaGraphShowSystem`),empty:r(`studio.schemaGraphEmpty`),system:r(`studio.schemaGraphSystem`),project:r(`studio.schemaGraphProject`),hidden:r(`studio.schemaGraphHidden`),visible:r(`studio.schemaGraphVisible`),relations:r(`studio.schemaGraphRelations`),visibility:r(`studio.schemaGraphVisibility`),kind:r(`studio.schemaGraphKind`),openCollection:r(`studio.schemaGraphOpenCollection`),inspectorTitle:r(`studio.schemaGraphInspectorTitle`),inspectorHint:r(`studio.schemaGraphInspectorHint`),noDescription:r(`dataModel.noDescription`)},Ae={preview:r(`dataModel.relationPreview`),result:r(`dataModel.relationResult`),many:r(`dataModel.relationMany`),one:r(`dataModel.relationOne`),collection:r(`dataModel.relationCollectionRole`),related:r(`dataModel.relationRelated`),junctionPending:r(`dataModel.relationJunctionPending`),fieldPending:r(`dataModel.relationFieldPending`),chooseCollection:r(`dataModel.chooseCollection`),chooseField:r(`dataModel.chooseField`),onDelete:r(`dataModel.ifTargetDeleted`)};return(0,K.jsxs)(`div`,{className:`data-model-v2 routed-resource-page`,children:[b&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:b}),S&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:S}),(0,K.jsxs)(`div`,{className:`data-model-v2-layout routed-view-${B}`,children:[(0,K.jsxs)(`aside`,{className:`panel data-model-collections-panel`,children:[(0,K.jsxs)(`div`,{className:`data-model-collections-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:r(`nav.dataModel`)}),(0,K.jsx)(`h2`,{children:r(`dataModel.collections`)})]}),(0,K.jsxs)(`div`,{className:`data-model-heading-actions`,children:[(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,"aria-current":ie?`page`:void 0,onClick:()=>n?.(J.schemaGraph()),children:r(`studio.schemaGraph`)}),(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>{T(Qi(V)),n?.(J.newCollection())},children:r(`common.create`)})]})]}),(0,K.jsxs)(`label`,{className:`field-label data-model-collection-search`,children:[(0,K.jsx)(`span`,{children:r(`common.search`)}),(0,K.jsx)(`input`,{type:`search`,value:m,onChange:e=>h(e.target.value),placeholder:r(`visibility.searchPlaceholder`)})]}),(0,K.jsxs)(`div`,{className:`data-model-collection-list`,children:[(0,K.jsx)(`small`,{className:`data-model-group-label`,children:r(`dataModel.projectCollections`)}),ae.map(e=>(0,K.jsxs)(`button`,{className:`data-model-collection-item ${s===e.collection?`active`:``} ${I===e.collection?`dragging`:``}`,type:`button`,onClick:()=>n?.(J.collection(e.collection)),draggable:!m.trim(),onDragStart:t=>{te(e.collection),t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(`text/plain`,e.collection)},onDragOver:e=>{m.trim()||(e.preventDefault(),e.dataTransfer.dropEffect=`move`)},onDrop:t=>{t.preventDefault(),_e(e.collection)},onDragEnd:()=>te(``),children:[(0,K.jsx)(ir,{name:U(e).icon}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:hn(e,`collection`)}),(0,K.jsxs)(`small`,{children:[e.collection,` · `,e.hidden?r(`dataModel.hiddenFromContent`):e.note||r(`dataModel.visibleInContent`)]})]}),!m.trim()&&(0,K.jsx)(`span`,{className:`collection-drag-handle`,"aria-hidden":`true`,children:`⋮⋮`})]},e.collection)),ae.length===0&&(0,K.jsx)(`p`,{className:`muted-line`,children:r(`dataModel.noProjectCollections`)}),H.length>0&&(0,K.jsx)(`small`,{className:`data-model-group-label system-group-label`,children:r(`dataModel.systemCollections`)}),H.map(e=>(0,K.jsxs)(`button`,{className:`data-model-collection-item system ${s===e.collection?`active`:``}`,type:`button`,onClick:()=>n?.(J.collection(e.collection)),children:[(0,K.jsx)(ir,{name:e.collection===`yuncms_users`?`users`:e.collection===`yuncms_files`?`folder`:e.collection===`yuncms_roles`?`shield`:`collection`}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:hn(e,`collection`)}),(0,K.jsxs)(`small`,{children:[e.collection,` · `,r(`dataModel.systemManaged`)]})]})]},e.collection))]})]}),(0,K.jsx)(`main`,{className:`data-model-workspace`,children:ie?(0,K.jsx)(oi,{collections:a,relations:f,labels:ke,onOpenCollection:e=>n?.(J.collection(e))}):re?(0,K.jsxs)(`section`,{className:`panel data-model-create-workspace`,children:[(0,K.jsxs)(`div`,{className:`workspace-section-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:r(`dataModel.newCollection`)}),(0,K.jsx)(`h2`,{children:r(`dataModel.createCollection`)}),(0,K.jsx)(`p`,{children:r(`dataModel.createCollectionHint`)})]}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>n?.(J.dataModel()),children:r(`common.cancel`)})]}),(0,K.jsxs)(`form`,{className:`data-model-create-form`,onSubmit:pe,children:[(0,K.jsxs)(`div`,{className:`data-model-create-main`,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`dataModel.displayName`)}),(0,K.jsx)(`input`,{value:w.name,onChange:e=>De(e.target.value),placeholder:`Müşteri Talepleri`,required:!0,autoFocus:!0}),(0,K.jsx)(`small`,{children:r(`dataModel.displayNameHint`)})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`dataModel.apiKey`)}),(0,K.jsx)(`input`,{value:w.collection,onChange:e=>T(t=>({...t,collection:mn(e.target.value,`collection`),keyTouched:!0})),placeholder:`musteri_talepleri`,required:!0}),(0,K.jsx)(`small`,{children:r(`dataModel.apiKeyHint`)})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`dataModel.description`)}),(0,K.jsx)(`input`,{value:w.note,onChange:e=>T(t=>({...t,note:e.target.value})),placeholder:r(`dataModel.optionalDescription`)})]}),(0,K.jsxs)(`label`,{className:`collection-visibility-toggle`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:w.visible,onChange:e=>T(t=>({...t,visible:e.target.checked}))}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:r(`dataModel.showInContent`)}),(0,K.jsx)(`small`,{children:r(`dataModel.showInContentHint`)})]})]}),(0,K.jsxs)(`div`,{className:`accountability-builder`,children:[(0,K.jsxs)(`div`,{className:`accountability-builder-heading`,children:[(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:r(`collectionBuilder.accountability`)}),(0,K.jsx)(`small`,{children:r(`collectionBuilder.recommended`)})]}),(0,K.jsx)(`p`,{children:r(`collectionBuilder.accountabilityHint`)})]}),(0,K.jsx)(`div`,{className:`accountability-option-list`,children:Ki.map(([e,t,n])=>(0,K.jsxs)(`label`,{className:`accountability-option ${w.systemFields.includes(e)?`active`:``}`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:w.systemFields.includes(e),onChange:()=>Ee(e)}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:r(t)}),(0,K.jsx)(`code`,{children:e}),(0,K.jsx)(`small`,{children:r(n)})]})]},e))})]})]}),(0,K.jsx)(`aside`,{className:`data-model-create-icon`,children:(0,K.jsx)(ar,{value:w.icon,onChange:e=>T(t=>({...t,icon:e}))})}),(0,K.jsx)(`div`,{className:`form-actions data-model-create-actions`,children:(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,children:r(`dataModel.createCollection`)})})]})]}):R?(0,K.jsxs)(`section`,{className:`panel data-model-detail-panel`,children:[(0,K.jsxs)(`header`,{className:`data-model-detail-heading`,children:[(0,K.jsxs)(`div`,{className:`data-model-detail-title`,children:[(0,K.jsx)(`span`,{className:`data-model-detail-icon`,children:(0,K.jsx)(ir,{name:R.system?s===`yuncms_users`?`users`:s===`yuncms_files`?`folder`:s===`yuncms_roles`?`shield`:`collection`:k.icon,size:22})}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:R.system?r(`dataModel.systemCollection`):r(`visibility.collection`)}),(0,K.jsx)(`h2`,{children:hn(R,`collection`)}),(0,K.jsx)(`code`,{className:`schema-machine-key`,children:s}),(0,K.jsx)(`p`,{children:R.note||r(`dataModel.noDescription`)})]})]}),(0,K.jsxs)(`div`,{className:`data-model-detail-actions`,children:[(0,K.jsx)(`span`,{className:`schema-count`,children:r(`dataModel.fieldCount`,{count:u.length})}),!R.system&&(0,K.jsx)(`button`,{className:`danger-button`,type:`button`,onClick:ve,children:r(`dataModel.deleteCollectionAction`)})]})]}),(0,K.jsxs)(`nav`,{className:`resource-page-nav`,"aria-label":hn(R,`collection`),children:[(0,K.jsxs)(`button`,{type:`button`,"aria-current":B===`overview`?`page`:void 0,onClick:()=>n?.(J.collection(s)),children:[(0,K.jsx)(`strong`,{children:r(`dataModel.tab.overview`)}),(0,K.jsx)(`small`,{children:r(`dataModel.collectionSettings`)})]}),(0,K.jsxs)(`button`,{type:`button`,"aria-current":[`fields`,`field`,`new-field`].includes(B)?`page`:void 0,onClick:()=>n?.(J.fields(s)),children:[(0,K.jsx)(`strong`,{children:r(`dataModel.tab.fields`)}),(0,K.jsx)(`small`,{children:r(`dataModel.fieldCount`,{count:u.length})})]}),(0,K.jsxs)(`button`,{type:`button`,"aria-current":[`relations`,`new-relation`].includes(B)?`page`:void 0,onClick:()=>n?.(J.relations(s)),children:[(0,K.jsx)(`strong`,{children:r(`dataModel.tab.relations`)}),(0,K.jsx)(`small`,{children:r(`dataModel.existingRelations`)})]})]}),B===`overview`&&(0,K.jsx)(`div`,{className:`resource-page-body collection-overview-panel`,children:R.system?(0,K.jsxs)(`div`,{className:`system-collection-overview`,children:[(0,K.jsxs)(`div`,{className:`inline-info`,children:[(0,K.jsx)(`strong`,{children:r(`dataModel.systemCollection`)}),(0,K.jsx)(`br`,{}),r(`dataModel.systemCollectionExtensionHint`)]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>n?.(J.newField(s)),children:r(`dataModel.addCustomSystemField`)})]}):(0,K.jsxs)(`div`,{className:`collection-overview-grid`,children:[(0,K.jsxs)(`div`,{className:`collection-overview-settings`,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`dataModel.displayName`)}),(0,K.jsx)(`input`,{value:k.name,onChange:e=>ee(t=>({...t,name:e.target.value})),required:!0}),(0,K.jsxs)(`small`,{children:[r(`dataModel.apiKeyHint`),` `,(0,K.jsx)(`code`,{children:s})]})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`dataModel.description`)}),(0,K.jsx)(`textarea`,{rows:`4`,value:k.note,onChange:e=>ee(t=>({...t,note:e.target.value})),placeholder:r(`dataModel.optionalDescription`)})]}),(0,K.jsxs)(`label`,{className:`collection-visibility-toggle`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:k.visible,onChange:e=>ee(t=>({...t,visible:e.target.checked}))}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:r(`dataModel.showInContent`)}),(0,K.jsx)(`small`,{children:r(`dataModel.showInContentHint`)})]})]}),(0,K.jsxs)(`div`,{className:`collection-order-card`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:r(`dataModel.sidebarOrder`)}),(0,K.jsx)(`small`,{children:r(`dataModel.sidebarOrderHint`)})]}),(0,K.jsxs)(`div`,{className:`collection-order-actions`,children:[(0,K.jsxs)(`button`,{className:`secondary-button`,type:`button`,disabled:Oe<=0,onClick:()=>ge(-1),children:[`↑ `,r(`dataModel.moveUp`)]}),(0,K.jsxs)(`button`,{className:`secondary-button`,type:`button`,disabled:Oe<0||Oe>=L.length-1,onClick:()=>ge(1),children:[`↓ `,r(`dataModel.moveDown`)]})]})]}),(0,K.jsx)(`button`,{className:`primary-button collection-overview-save`,type:`button`,onClick:me,children:r(`common.save`)})]}),(0,K.jsx)(ar,{value:k.icon,onChange:e=>ee(t=>({...t,icon:e}))})]})}),[`fields`,`new-field`].includes(B)&&(0,K.jsxs)(`div`,{className:`resource-page-body fields-workspace`,children:[(0,K.jsxs)(`div`,{className:`workspace-section-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h3`,{children:r(B===`new-field`?`dataModel.addField`:`dataModel.fields`)}),(0,K.jsx)(`p`,{children:R.system?r(`dataModel.systemFieldsHint`):r(`dataModel.fieldsDescription`)})]}),B===`fields`?(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>n?.(J.newField(s)),children:r(`dataModel.addField`)}):(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>n?.(J.fields(s)),children:r(`common.back`)})]}),B===`new-field`&&(0,K.jsx)(jr,{form:E,setForm:O,onSubmit:ye,onCancel:()=>{O(Er()),n?.(J.fields(s))},allowRequired:!R.system}),B===`fields`&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`label`,{className:`field-label field-workspace-search`,children:[(0,K.jsx)(`span`,{children:r(`dataModel.findField`)}),(0,K.jsx)(`input`,{type:`search`,value:g,onChange:e=>_(e.target.value),placeholder:r(`dataModel.fieldSearchPlaceholder`)})]}),(0,K.jsxs)(`div`,{className:`field-workspace-list`,children:[oe.map(e=>{let t=yr(e),i=Yi(e);return(0,K.jsxs)(`div`,{className:`field-workspace-row`,children:[(0,K.jsx)(`span`,{className:`field-icon`,children:(0,K.jsx)(kr,{type:t,size:16})}),(0,K.jsxs)(`div`,{className:`field-workspace-copy`,children:[(0,K.jsx)(`strong`,{children:hn(e,`field`)}),(0,K.jsxs)(`small`,{children:[(0,K.jsx)(`code`,{children:e.field}),` · `,r(`fieldType.${t}`),i.defaultPreset===`now`?` · ${r(`fieldBuilder.currentTime`)}`:``]})]}),(0,K.jsxs)(`div`,{className:`field-workspace-badges`,children:[Xi(e)&&(0,K.jsx)(`span`,{className:`status-pill system-field-pill`,children:r(`collectionBuilder.systemManaged`)}),Zi(e)&&(0,K.jsx)(`span`,{className:`status-pill`,children:r(`dataModel.customSystemField`)}),(0,K.jsx)(`span`,{className:`status-pill`,children:e.required?r(`common.required`):r(`common.optional`)}),e.readonly&&(0,K.jsx)(`span`,{className:`status-pill`,children:r(`common.readonly`)})]}),(0,K.jsx)(`div`,{className:`field-workspace-actions`,children:(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>n?.(J.field(s,e.field)),children:r(`dataModel.openField`)})})]},e.field)}),oe.length===0&&(0,K.jsx)(`div`,{className:`inline-info`,children:r(`dataModel.noFields`)})]})]})]}),B===`field`&&(0,K.jsx)(`div`,{className:`resource-page-body field-detail-page`,children:z?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`workspace-section-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:r(`dataModel.fieldDetail`)}),(0,K.jsx)(`h3`,{children:hn(z,`field`)}),(0,K.jsx)(`code`,{className:`schema-machine-key`,children:z.field})]}),(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>n?.(J.fields(s)),children:r(`dataModel.backToFields`)})]}),(0,K.jsxs)(`div`,{className:`field-detail-grid`,children:[(0,K.jsxs)(`article`,{children:[(0,K.jsx)(`small`,{children:r(`dataModel.displayName`)}),(0,K.jsx)(`strong`,{children:hn(z,`field`)})]}),(0,K.jsxs)(`article`,{children:[(0,K.jsx)(`small`,{children:r(`dataModel.apiKey`)}),(0,K.jsx)(`strong`,{children:(0,K.jsx)(`code`,{children:z.field})})]}),(0,K.jsxs)(`article`,{children:[(0,K.jsx)(`small`,{children:r(`common.type`)}),(0,K.jsx)(`strong`,{children:r(`fieldType.${yr(z)}`)})]}),(0,K.jsxs)(`article`,{children:[(0,K.jsx)(`small`,{children:r(`common.status`)}),(0,K.jsxs)(`strong`,{children:[z.required?r(`common.required`):r(`common.optional`),z.readonly?` · ${r(`common.readonly`)}`:``]})]})]}),!R.system&&z.field!==`id`&&!z.readonly&&!Xi(z)&&(0,K.jsxs)(`div`,{className:`page-danger-zone`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:r(`dataModel.fieldActions`)}),(0,K.jsx)(`p`,{children:r(`dataModel.fieldActionsHint`)})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>be(z),children:z.required?r(`dataModel.makeOptional`):r(`dataModel.makeRequired`)}),(0,K.jsx)(`button`,{className:`danger-button`,type:`button`,onClick:()=>xe(z),children:r(`common.delete`)})]})]})]}):(0,K.jsx)(`div`,{className:`inline-info`,children:r(`dataModel.fieldNotFound`)})}),[`relations`,`new-relation`].includes(B)&&(0,K.jsx)(`div`,{className:`resource-page-body relations-workspace`,children:R.system?(0,K.jsx)(`div`,{className:`inline-info`,children:r(`dataModel.systemRelationInfo`)}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`workspace-section-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h3`,{children:r(B===`relations`?`dataModel.existingRelations`:`dataModel.createRelation`)}),(0,K.jsx)(`p`,{children:r(B===`relations`?`dataModel.existingRelationsHint`:`dataModel.relationPageHint`)})]}),B===`relations`?(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>n?.(J.newRelation(s,`m2o`)),children:r(`dataModel.createRelation`)}):(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>n?.(J.relations(s)),children:r(`common.back`)})]}),(0,K.jsx)(`div`,{className:`relation-type-picker ${B===`relations`?`relation-create-links`:`relation-kind-selector`}`,"aria-label":r(`dataModel.tab.relations`),children:[[`m2o`,`dataModel.manyToOne`,`dataModel.m2oShort`],[`o2o`,`dataModel.oneToOne`,`dataModel.o2oShort`],[`m2m`,`dataModel.manyToMany`,`dataModel.m2mShort`]].map(([e,t,i])=>(0,K.jsxs)(`button`,{type:`button`,"aria-pressed":B===`new-relation`?A===e:void 0,className:`relation-type-card ${B===`new-relation`&&A===e?`active`:``}`,onClick:()=>{j(e),n?.(J.newRelation(s,e))},children:[(0,K.jsx)(`strong`,{children:r(t)}),(0,K.jsx)(`small`,{children:r(i)}),B===`relations`&&(0,K.jsxs)(`span`,{children:[r(`dataModel.startRelation`),` →`]})]},e))}),B===`relations`&&(0,K.jsxs)(`div`,{className:`relation-existing-panel`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h3`,{children:r(`dataModel.existingRelations`)}),(0,K.jsx)(`p`,{children:r(`dataModel.existingRelationsHint`)})]}),(0,K.jsxs)(`div`,{className:`relation-v2-list`,children:[ce.map(e=>(0,K.jsxs)(`div`,{className:`relation-v2-row`,children:[(0,K.jsx)(`span`,{className:`status-pill`,children:Ji(e).toUpperCase()}),(0,K.jsxs)(`strong`,{children:[e.many_collection,`.`,e.many_field]}),(0,K.jsxs)(`small`,{children:[`→ `,e.one_collection,`.`,e.one_field]}),(0,K.jsx)(`button`,{className:`danger-button`,type:`button`,onClick:()=>Ce(e),children:r(`common.delete`)})]},`${e.many_collection}.${e.many_field}`)),ue.map(e=>(0,K.jsxs)(`div`,{className:`relation-v2-row`,children:[(0,K.jsx)(`span`,{className:`status-pill`,children:`M2M`}),(0,K.jsx)(`strong`,{children:e.name}),(0,K.jsx)(`small`,{children:e.rows.map(e=>e.one_collection).join(` ↔ `)}),(0,K.jsx)(`button`,{className:`danger-button`,type:`button`,onClick:()=>Te(e.name),children:r(`common.delete`)})]},e.name)),ce.length===0&&ue.length===0&&(0,K.jsx)(`p`,{className:`muted-line`,children:r(`dataModel.noRelations`)})]})]}),B===`new-relation`&&(A===`m2m`?(0,K.jsxs)(`div`,{className:`relation-v2-form-with-preview`,children:[(0,K.jsxs)(`form`,{className:`relation-v2-form`,onSubmit:we,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`dataModel.junctionName`)}),(0,K.jsx)(`input`,{value:P.junctionCollection,onChange:e=>F(t=>({...t,junctionCollection:mn(e.target.value,`collection`)})),placeholder:`article_tags`,required:!0})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`dataModel.firstCollection`)}),(0,K.jsx)(`select`,{value:P.leftCollection,onChange:e=>F(t=>({...t,leftCollection:e.target.value})),required:!0,children:L.map(e=>(0,K.jsxs)(`option`,{value:e.collection,children:[hn(e,`collection`),` (`,e.collection,`)`]},e.collection))})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`dataModel.secondCollection`)}),(0,K.jsxs)(`select`,{value:P.rightCollection,onChange:e=>F(t=>({...t,rightCollection:e.target.value})),required:!0,children:[(0,K.jsx)(`option`,{value:``,children:r(`dataModel.chooseCollection`)}),L.map(e=>(0,K.jsxs)(`option`,{value:e.collection,children:[hn(e,`collection`),` (`,e.collection,`)`]},e.collection))]})]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,children:r(`dataModel.createJunction`)})]}),(0,K.jsx)(Br,{kind:`m2m`,leftCollection:P.leftCollection,rightCollection:P.rightCollection,junctionCollection:P.junctionCollection,labels:Ae})]}):(0,K.jsxs)(`div`,{className:`relation-v2-form-with-preview`,children:[(0,K.jsxs)(`form`,{className:`relation-v2-form`,onSubmit:Se,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`dataModel.fieldIn`,{collection:hn(R,`collection`)})}),(0,K.jsxs)(`select`,{value:M.manyField,onChange:e=>N(t=>({...t,manyField:e.target.value})),required:!0,children:[(0,K.jsx)(`option`,{value:``,children:r(`dataModel.chooseField`)}),se.map(e=>(0,K.jsxs)(`option`,{value:e.field,children:[hn(e,`field`),` (`,e.field,`)`]},e.field))]})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`dataModel.targetCollection`)}),(0,K.jsxs)(`select`,{value:M.oneCollection,onChange:e=>N(t=>({...t,oneCollection:e.target.value})),required:!0,children:[(0,K.jsx)(`option`,{value:``,children:r(`dataModel.chooseCollection`)}),L.map(e=>(0,K.jsxs)(`option`,{value:e.collection,children:[hn(e,`collection`),` (`,e.collection,`)`]},e.collection))]})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`dataModel.ifTargetDeleted`)}),(0,K.jsxs)(`select`,{value:M.onDelete,onChange:e=>N(t=>({...t,onDelete:e.target.value})),children:[(0,K.jsx)(`option`,{value:`RESTRICT`,children:r(`dataModel.preventDeletion`)}),(0,K.jsx)(`option`,{value:`CASCADE`,children:r(`dataModel.deleteLinked`)}),(0,K.jsx)(`option`,{value:`SET NULL`,children:r(`dataModel.clearField`)})]})]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,disabled:se.length===0,children:r(A===`o2o`?`dataModel.createO2O`:`dataModel.createRelation`)})]}),(0,K.jsx)(Br,{kind:A,leftCollection:s,leftField:M.manyField,rightCollection:M.oneCollection,onDelete:M.onDelete,labels:Ae})]}))]})})]}):(0,K.jsx)(`section`,{className:`panel empty-state`,children:(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:r(`dataModel.selectCollection`)}),(0,K.jsx)(`p`,{children:r(`dataModel.selectCollectionDescription`)})]})})})]}),v&&(0,K.jsx)(`p`,{className:`muted-line`,children:r(`dataModel.loadingSchema`)})]})}function ta(e){return(e.route?.view||`collections`)===`collections`?(0,K.jsx)(Gi,{...e}):(0,K.jsx)(ea,{...e})}var na=[[`all`,`files.allTypes`],[`recent`,`files.recent`],[`image`,`files.images`],[`video`,`files.video`],[`audio`,`files.audio`],[`pdf`,`files.pdf`],[`other`,`files.other`]],ra=[[`newest`,`files.newest`],[`oldest`,`files.oldest`],[`name-asc`,`files.nameAsc`],[`name-desc`,`files.nameDesc`],[`size-desc`,`files.sizeDesc`],[`size-asc`,`files.sizeAsc`]],ia=[12,24,48,96],aa=6048e5;function oa(e){let t=Number(e||0);return t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:t<1073741824?`${(t/1048576).toFixed(1)} MB`:`${(t/1073741824).toFixed(1)} GB`}function sa(e){let t=e.filename_download||``,n=t.lastIndexOf(`.`);return n===-1?``:t.slice(n+1).toLowerCase()}function ca(e,t){let n=e.mimetype||`application/octet-stream`;if(n.startsWith(`image/`))return t(`files.image`);if(n.startsWith(`video/`))return t(`files.video`);if(n.startsWith(`audio/`))return t(`files.audio`);if(n===`application/pdf`)return t(`files.pdf`);let r=sa(e);return r?r.toUpperCase():t(`files.file`)}function la(e){let t=(e.mimetype||``).toLowerCase(),n=sa(e);return t.startsWith(`image/`)||[`avif`,`bmp`,`gif`,`heic`,`heif`,`ico`,`jpeg`,`jpg`,`png`,`svg`,`webp`].includes(n)?`image`:t.startsWith(`video/`)?`video`:t.startsWith(`audio/`)?`audio`:t===`application/pdf`||n===`pdf`?`pdf`:`other`}function ua(e,t=Date.now()){if(!e?.uploaded_at)return!1;let n=new Date(e.uploaded_at).getTime();return Number.isFinite(n)?n<=t&&n>=t-aa:!1}function da(e,t){return e.title||e.filename_download||t(`files.untitled`)}function fa(e,t,n,r){if(n===`newest`||n===`oldest`){let r=e.uploaded_at?new Date(e.uploaded_at).getTime():0,i=t.uploaded_at?new Date(t.uploaded_at).getTime():0;return n===`newest`?i-r:r-i}if(n===`size-desc`||n===`size-asc`){let r=Number(e.filesize||0)-Number(t.filesize||0);return n===`size-desc`?-r:r}let i=da(e,r).localeCompare(da(t,r),void 0,{sensitivity:`base`});return n===`name-desc`?-i:i}function pa(e){let t=Date.now();return Array.from(e||[]).map((e,n)=>({id:`${t}-${n}-${e.name}-${e.size}`,file:e,status:`queued`,error:``,sizeLabel:oa(e.size)}))}function ma({route:e={},onNavigate:t}){let{locale:n,t:r}=q(),i=lr(),[a,o]=(0,l.useState)([]),[s,c]=(0,l.useState)([]),[u,d]=(0,l.useState)(null),[f,p]=(0,l.useState)(`grid`),[m,h]=(0,l.useState)(``),[g,_]=(0,l.useState)(`all`),[v,y]=(0,l.useState)(`newest`),[b,x]=(0,l.useState)(1),[S,C]=(0,l.useState)(24),[w,T]=(0,l.useState)(null),[E,k]=(0,l.useState)({filenameDownload:``,title:``}),[ee,A]=(0,l.useState)(!1),[j,M]=(0,l.useState)(!1),[N,P]=(0,l.useState)(!1),[F,I]=(0,l.useState)(!0),[te,L]=(0,l.useState)(``),[ne,R]=(0,l.useState)(``);async function z(){I(!0),L(``);try{let e=(await D(`/files`))?.data??[];o(e),d(t=>t?e.find(e=>String(e.id)===String(t.id))??null:null)}catch(e){L(e.message||r(`files.loadError`))}finally{I(!1)}}(0,l.useEffect)(()=>{z()},[]);let B=(0,l.useMemo)(()=>{let e={all:a.length,recent:0,image:0,video:0,audio:0,pdf:0,other:0},t=Date.now();return a.forEach(n=>{e[la(n)]+=1,ua(n,t)&&(e.recent+=1)}),e},[a]),re=(0,l.useMemo)(()=>na.map(([e,t])=>({value:e,label:r(t),count:B[e]||0})),[B,r]),ie=(0,l.useMemo)(()=>{let e=m.trim().toLowerCase(),t=Date.now();return a.filter(e=>g===`all`?!0:g===`recent`?ua(e,t):la(e)===g).filter(t=>!e||[t.title,t.filename_download,t.mimetype,t.storage].filter(Boolean).some(t=>String(t).toLowerCase().includes(e))).slice().sort((e,t)=>fa(e,t,v,r))},[a,m,v,g,r]),V=(0,l.useMemo)(()=>Xn(ie,b,S),[b,S,ie]),ae=V.items,H=a.find(t=>String(t.id)===String(e.fileId))??null,oe=!!(m.trim()||g!==`all`||v!==`newest`),se=s.filter(e=>e.status===`queued`||e.status===`failed`),U=s.some(e=>e.status===`failed`);(0,l.useEffect)(()=>{x(1)},[m,v,g]);function ce(e){let t=pa(e);t.length!==0&&(c(e=>[...e,...t]),L(``),R(``))}function le(e,t){c(n=>n.map(n=>n.id===e?{...n,...t}:n))}function ue(e){j||c(t=>t.filter(t=>t.id!==e))}async function W(e){e.preventDefault();let n=e.currentTarget,i=s.filter(e=>e.status===`queued`||e.status===`failed`);if(i.length===0)return;M(!0),L(``),R(``);let a=0,o=0;for(let e of i){le(e.id,{status:`uploading`,error:``});try{await D(`/files`,{method:`POST`,headers:{"content-type":`application/octet-stream`,"x-filename":encodeURIComponent(e.file.name),"x-mimetype":e.file.type||`application/octet-stream`},body:e.file}),a+=1,le(e.id,{status:`done`,error:``})}catch(t){o+=1,le(e.id,{status:`failed`,error:t.message||r(`files.uploadError`)})}}M(!1),a>0&&(x(1),await z()),o===0?(R(r(`files.uploadedCount`,{count:a})),c([]),n.reset(),t?.(J.files())):L(r(`files.uploadPartial`,{failed:o,count:i.length}))}function de(e){e.preventDefault(),A(!1),ce(e.dataTransfer.files)}function G(e){e.preventDefault(),A(!1);let n=e.dataTransfer.files;n?.length&&(ce(n),t?.(J.newFile()))}async function fe(e){L(``);try{let t=await O(`/files/${encodeURIComponent(e.id)}/content`),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=e.filename_download,document.body.append(r),r.click(),r.remove(),window.setTimeout(()=>URL.revokeObjectURL(n),0)}catch(e){L(e.message||r(`files.downloadError`))}}function pe(e){T(e),k({filenameDownload:e.filename_download||``,title:e.title||``}),L(``),R(``)}async function me(e){if(e.preventDefault(),!(!w||!E.filenameDownload.trim())){P(!0),L(``),R(``);try{await D(`/files/${encodeURIComponent(w.id)}`,{method:`PATCH`,body:{filenameDownload:E.filenameDownload.trim(),title:E.title.trim()||null}}),T(null),R(r(`files.updatedNotice`)),await z()}catch(e){L(e.message||r(`files.updateError`))}finally{P(!1)}}}async function he(n){if(await i({title:r(`files.deleteTitle`),description:r(`files.deleteDescription`,{file:n.filename_download}),confirmLabel:r(`files.deleteFile`),tone:`danger`})){L(``),R(``);try{await D(`/files/${encodeURIComponent(n.id)}`,{method:`DELETE`}),w?.id===n.id&&T(null),u?.id===n.id&&d(null),R(r(`files.deletedNotice`)),await z(),e.view===`detail`&&t?.(J.files())}catch(e){L(e.message||r(`files.deleteError`))}}}function ge(){h(``),_(`all`),y(`newest`),x(1)}let _e=n===`tr`?`tr-TR`:`en-US`;return e.view===`new`?(0,K.jsxs)(`div`,{className:`screen-stack routed-form-page`,children:[(0,K.jsxs)(`nav`,{className:`page-breadcrumbs`,"aria-label":r(`nav.files`),children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>t?.(J.files()),children:r(`nav.files`)}),(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`/`}),(0,K.jsx)(`strong`,{children:r(`files.addFile`)})]}),te&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:te}),ne&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:ne}),(0,K.jsxs)(`form`,{className:`panel file-upload-panel file-upload-page`,onSubmit:W,children:[(0,K.jsxs)(`div`,{className:`workspace-section-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:r(`files.upload`)}),(0,K.jsx)(`h2`,{children:r(`files.addFile`)}),(0,K.jsx)(`p`,{children:r(`files.dropDescription`)})]}),(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,disabled:j,onClick:()=>t?.(J.files()),children:r(`common.cancel`)})]}),(0,K.jsxs)(`div`,{className:`file-dropzone ${ee?`active`:``}`,onDragEnter:e=>{e.preventDefault(),A(!0)},onDragOver:e=>e.preventDefault(),onDragLeave:()=>A(!1),onDrop:de,children:[(0,K.jsx)(`input`,{id:`file-upload-page-input`,type:`file`,multiple:!0,onChange:e=>{ce(e.target.files),e.target.value=``}}),(0,K.jsxs)(`label`,{htmlFor:`file-upload-page-input`,className:`file-picker-label`,children:[(0,K.jsx)(`strong`,{children:s.length>0?r(`files.selectedFiles`,{count:s.length}):r(`files.chooseFile`)}),(0,K.jsx)(`span`,{children:r(`files.dragDrop`)})]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,disabled:se.length===0||j,children:r(j?`files.uploading`:U?`files.retryFailed`:`files.uploadSelected`)})]}),(0,K.jsx)(si,{items:s,onRemove:ue,labels:{title:r(`files.uploadQueue`),queued:r(`files.queueQueued`),uploading:r(`files.queueUploading`),done:r(`files.queueDone`),failed:r(`files.queueFailed`),remove:r(`files.queueRemove`),untitled:r(`files.untitled`)}})]})]}):e.view===`detail`?(0,K.jsxs)(`div`,{className:`screen-stack routed-form-page`,children:[(0,K.jsxs)(`nav`,{className:`page-breadcrumbs`,"aria-label":r(`nav.files`),children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>t?.(J.files()),children:r(`nav.files`)}),(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`/`}),(0,K.jsx)(`strong`,{children:H?da(H,r):r(`files.fileDetails`)})]}),te&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:te}),ne&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:ne}),H?(0,K.jsxs)(`section`,{className:`panel file-detail-page`,children:[(0,K.jsxs)(`header`,{className:`file-detail-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:r(`files.fileDetails`)}),(0,K.jsx)(`h2`,{children:da(H,r)}),(0,K.jsx)(`p`,{children:H.filename_download})]}),(0,K.jsxs)(`div`,{className:`file-detail-actions`,children:[(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>fe(H),children:r(`files.download`)}),(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>pe(H),children:r(`common.edit`)}),(0,K.jsx)(`button`,{className:`danger-button`,type:`button`,onClick:()=>he(H),children:r(`common.delete`)})]})]}),(0,K.jsx)(`div`,{className:`file-detail-preview`,children:(0,K.jsx)(Un,{file:H,label:ca(H,r),alt:da(H,r)})}),(0,K.jsxs)(`div`,{className:`field-detail-grid`,children:[(0,K.jsxs)(`article`,{children:[(0,K.jsx)(`small`,{children:r(`common.type`)}),(0,K.jsx)(`strong`,{children:H.mimetype||ca(H,r)})]}),(0,K.jsxs)(`article`,{children:[(0,K.jsx)(`small`,{children:r(`files.size`)}),(0,K.jsx)(`strong`,{children:oa(H.filesize)})]}),(0,K.jsxs)(`article`,{children:[(0,K.jsx)(`small`,{children:r(`files.storage`)}),(0,K.jsx)(`strong`,{children:H.storage})]}),(0,K.jsxs)(`article`,{children:[(0,K.jsx)(`small`,{children:r(`files.uploaded`)}),(0,K.jsx)(`strong`,{children:H.uploaded_at?new Date(H.uploaded_at).toLocaleString(_e):`—`})]})]}),w&&(0,K.jsxs)(`form`,{className:`schema-create-card form-stack file-detail-editor`,onSubmit:me,children:[(0,K.jsx)(`div`,{children:(0,K.jsx)(`strong`,{children:r(`files.editDescription`)})}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`files.title`)}),(0,K.jsx)(`input`,{value:E.title,onChange:e=>k(t=>({...t,title:e.target.value})),placeholder:r(`files.optionalTitle`)})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`files.downloadFilename`)}),(0,K.jsx)(`input`,{value:E.filenameDownload,onChange:e=>k(t=>({...t,filenameDownload:e.target.value})),required:!0})]}),(0,K.jsxs)(`div`,{className:`form-actions`,children:[(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>T(null),children:r(`common.cancel`)}),(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,disabled:N,children:r(N?`common.saving`:`files.saveChanges`)})]})]})]}):(0,K.jsx)(`section`,{className:`panel empty-state`,children:(0,K.jsx)(`div`,{children:(0,K.jsx)(`h2`,{children:r(F?`files.loading`:`files.noFilesYet`)})})})]}):(0,K.jsxs)(`div`,{className:`screen-stack file-library-workspace ${ee?`drop-active`:``}`,onDragEnter:e=>{e.preventDefault(),A(!0)},onDragOver:e=>{e.preventDefault(),A(!0)},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||A(!1)},onDrop:G,children:[ee&&(0,K.jsxs)(`div`,{className:`file-library-drop-overlay`,"aria-hidden":`true`,children:[(0,K.jsx)(`strong`,{children:r(`files.uploadFile`)}),(0,K.jsx)(`span`,{children:r(`files.dragDrop`)})]}),(0,K.jsx)(Mr,{items:re,value:g,label:r(`files.categories`),onChange:e=>{_(e),x(1)}}),(0,K.jsxs)(`section`,{className:`panel library-toolbar workspace-toolbar library-header-panel`,children:[(0,K.jsxs)(`div`,{className:`workspace-toolbar-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:r(`nav.files`)}),(0,K.jsx)(`h2`,{children:r(`nav.files`)}),(0,K.jsx)(`p`,{children:a.length===0?r(`files.libraryEmptyDescription`):r(`files.libraryCount`,{count:a.length})})]}),(0,K.jsxs)(`div`,{className:`workspace-toolbar-actions`,children:[(0,K.jsxs)(`div`,{className:`segmented-control`,"aria-label":r(`files.view`),children:[(0,K.jsx)(`button`,{className:f===`grid`?`active`:``,type:`button`,onClick:()=>p(`grid`),children:r(`files.gallery`)}),(0,K.jsx)(`button`,{className:f===`list`?`active`:``,type:`button`,onClick:()=>p(`list`),children:r(`files.list`)})]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>t?.(J.newFile()),children:r(`files.uploadFile`)})]})]}),(0,K.jsxs)(`div`,{className:`list-controls file-list-controls`,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`common.search`)}),(0,K.jsx)(`input`,{type:`search`,value:m,onChange:e=>h(e.target.value),placeholder:r(`files.searchPlaceholder`),"aria-label":r(`files.searchFiles`)})]}),(0,K.jsxs)(`label`,{className:`field-label file-type-fallback`,children:[(0,K.jsx)(`span`,{children:r(`files.fileType`)}),(0,K.jsx)(`select`,{value:g,onChange:e=>_(e.target.value),children:na.map(([e,t])=>(0,K.jsx)(`option`,{value:e,children:r(t)},e))})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:r(`common.sort`)}),(0,K.jsx)(`select`,{value:v,onChange:e=>y(e.target.value),children:ra.map(([e,t])=>(0,K.jsx)(`option`,{value:e,children:r(t)},e))})]}),(0,K.jsxs)(`div`,{className:`list-controls-summary`,children:[(0,K.jsx)(`span`,{className:`result-count`,children:r(`files.matchingCount`,{count:ie.length})}),oe&&(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:ge,children:r(`common.reset`)})]})]})]}),te&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:te}),ne&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:ne}),F?(0,K.jsx)(`section`,{className:`panel`,children:(0,K.jsx)(`p`,{children:r(`files.loading`)})}):ie.length===0?(0,K.jsxs)(`section`,{className:`panel empty-state empty-state-action`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:a.length===0?r(`files.noFilesYet`):r(`files.noMatchingFiles`)}),(0,K.jsx)(`p`,{children:a.length===0?r(`files.emptyDescription`):r(`files.noMatchDescription`)})]}),a.length===0?(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>t?.(J.newFile()),children:r(`files.uploadFirst`)}):(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:ge,children:r(`common.resetFilters`)})]}):f===`grid`?(0,K.jsxs)(`section`,{className:`file-library-results`,children:[(0,K.jsx)(`div`,{className:`file-grid`,"aria-label":r(`files.fileGallery`),children:ae.map(e=>(0,K.jsxs)(`article`,{className:`file-card`,children:[(0,K.jsx)(`div`,{className:`file-preview`,children:(0,K.jsx)(`button`,{className:`file-preview-open-button`,type:`button`,onClick:()=>d(e),"aria-label":r(`files.openPreview`,{file:da(e,r)}),children:(0,K.jsx)(Un,{file:e,label:ca(e,r),alt:da(e,r)})})}),(0,K.jsxs)(`div`,{className:`file-card-body`,children:[(0,K.jsxs)(`div`,{className:`file-card-title`,children:[(0,K.jsx)(`strong`,{title:da(e,r),children:da(e,r)}),(0,K.jsx)(`small`,{title:e.filename_download,children:e.filename_download})]}),(0,K.jsxs)(`div`,{className:`file-meta-row`,children:[(0,K.jsx)(`span`,{children:ca(e,r)}),(0,K.jsx)(`span`,{children:oa(e.filesize)})]}),(0,K.jsxs)(`div`,{className:`file-card-actions`,children:[(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>d(e),children:r(`files.preview`)}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>fe(e),children:r(`files.download`)}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>{pe(e),t?.(J.file(e.id))},children:r(`common.edit`)}),(0,K.jsx)(`button`,{className:`danger-button`,type:`button`,onClick:()=>he(e),children:r(`common.delete`)})]})]})]},e.id))}),(0,K.jsx)(Yn,{page:V.page,pageSize:S,totalItems:ie.length,pageSizeOptions:ia,itemLabel:r(`files.files`),onPageChange:x,onPageSizeChange:e=>{C(e),x(1)}})]}):(0,K.jsxs)(`section`,{className:`table-panel`,children:[(0,K.jsx)(`div`,{className:`table-scroll`,children:(0,K.jsxs)(`table`,{children:[(0,K.jsx)(`thead`,{children:(0,K.jsxs)(`tr`,{children:[(0,K.jsx)(`th`,{children:r(`common.name`)}),(0,K.jsx)(`th`,{children:r(`common.type`)}),(0,K.jsx)(`th`,{children:r(`files.size`)}),(0,K.jsx)(`th`,{children:r(`files.storage`)}),(0,K.jsx)(`th`,{children:r(`files.uploaded`)}),(0,K.jsx)(`th`,{})]})}),(0,K.jsx)(`tbody`,{children:ae.map(e=>(0,K.jsxs)(`tr`,{children:[(0,K.jsx)(`td`,{children:(0,K.jsxs)(`div`,{className:`file-list-name`,children:[(0,K.jsx)(`button`,{className:`file-list-thumb file-preview-open-button`,type:`button`,onClick:()=>d(e),"aria-label":r(`files.openPreview`,{file:da(e,r)}),children:(0,K.jsx)(Un,{file:e,label:ca(e,r)})}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:da(e,r)}),(0,K.jsx)(`small`,{children:e.filename_download})]})]})}),(0,K.jsx)(`td`,{children:e.mimetype||ca(e,r)}),(0,K.jsx)(`td`,{children:oa(e.filesize)}),(0,K.jsx)(`td`,{children:e.storage}),(0,K.jsx)(`td`,{children:e.uploaded_at?new Date(e.uploaded_at).toLocaleString(_e):`—`}),(0,K.jsxs)(`td`,{className:`row-actions`,children:[(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>d(e),children:r(`files.preview`)}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>fe(e),children:r(`files.download`)}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>{pe(e),t?.(J.file(e.id))},children:r(`common.edit`)}),(0,K.jsx)(`button`,{className:`danger-button`,type:`button`,onClick:()=>he(e),children:r(`common.delete`)})]})]},e.id))})]})}),(0,K.jsx)(Yn,{page:V.page,pageSize:S,totalItems:ie.length,pageSizeOptions:ia,itemLabel:r(`files.files`),onPageChange:x,onPageSizeChange:e=>{C(e),x(1)}})]}),(0,K.jsx)(Rr,{open:!!u,title:u?da(u,r):r(`files.fileDetails`),description:u?.filename_download||``,closeLabel:r(`studio.inspectorClose`),onClose:()=>d(null),actions:u&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>fe(u),children:r(`files.download`)}),(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>{let e=u.id;d(null),t?.(J.file(e))},children:r(`files.fileDetails`)})]}),children:u&&(0,K.jsxs)(`div`,{className:`file-inspector-content`,children:[(0,K.jsx)(`div`,{className:`file-inspector-preview`,children:(0,K.jsx)(Un,{file:u,label:ca(u,r),alt:da(u,r)})}),(0,K.jsxs)(`dl`,{className:`file-inspector-meta`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:r(`common.type`)}),(0,K.jsx)(`dd`,{children:u.mimetype||ca(u,r)})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:r(`files.size`)}),(0,K.jsx)(`dd`,{children:oa(u.filesize)})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:r(`files.storage`)}),(0,K.jsx)(`dd`,{children:u.storage||`—`})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:r(`files.uploaded`)}),(0,K.jsx)(`dd`,{children:u.uploaded_at?new Date(u.uploaded_at).toLocaleString(_e):`—`})]})]})]})})]})}function ha(){return new URLSearchParams(window.location.search).get(`auth_code`)}function ga(){let e=new URL(window.location.href);e.searchParams.delete(`auth_code`),window.history.replaceState(null,``,`${e.pathname}${e.search}${e.hash}`)}function _a({onAuthenticated:e}){let{t}=q(),{settings:n}=Pe(),[r,i]=(0,l.useState)(``),[a,o]=(0,l.useState)(``),[s,c]=(0,l.useState)(``),[u,d]=(0,l.useState)(!1),[f,p]=(0,l.useState)(!1),[m,h]=(0,l.useState)(!1),[g,_]=(0,l.useState)([]),[v,y]=(0,l.useState)(``),[b,x]=(0,l.useState)(``),[S,C]=(0,l.useState)(``),[w,T]=(0,l.useState)(!1),E=n.public_registration_enabled===!0,O=n.public_registration_require_email_verification===!0,N=(0,l.useMemo)(()=>g.find(e=>e.id===v&&e.driver===`ldap`)??null,[v,g]),P=g.filter(e=>e.driver!==`ldap`),F=g.filter(e=>e.driver===`ldap`);(0,l.useEffect)(()=>{let e=!1;return ee().then(t=>{e||_(t)}).catch(()=>{e||_([])}),()=>{e=!0}},[]),(0,l.useEffect)(()=>{E||(p(!1),c(``))},[E]),(0,l.useEffect)(()=>{let n=ha();if(!n)return;let r=!1;return T(!0),x(``),M(n).then(t=>{ga(),r||e(t)}).catch(e=>{ga(),r||x(e.message||t(`auth.signInFailed`))}).finally(()=>{r||T(!1)}),()=>{r=!0}},[e,t]);async function I(n){n.preventDefault(),x(``),C(``),T(!0);try{if(u){h(!1),await D(`/auth/password-reset/request`,{method:`POST`,body:{email:r}},{retryAuth:!1}),C(t(`auth.resetNotice`));return}if(f){if(a!==s){x(t(`auth.passwordMismatch`));return}let e=(await D(`/auth/register`,{method:`POST`,body:{email:r,password:a}},{retryAuth:!1}))?.data?.email_verification_required===!0;p(!1),o(``),c(``),h(e),C(t(e?`auth.registrationVerificationSent`:`auth.registrationComplete`));return}let n=N?await j(N.id,r,a):await k(r,a);h(!1),e(n)}catch(e){e?.code===`EMAIL_NOT_VERIFIED`?(h(!0),x(t(`auth.emailNotVerified`))):(h(!1),x(e.message||t(u?`auth.requestFailed`:`auth.signInFailed`)))}finally{T(!1)}}async function te(){T(!0),x(``),C(``);try{await D(`/auth/email-verification/request`,{method:`POST`,body:{email:r}},{retryAuth:!1}),C(t(`auth.verificationResent`))}catch(e){x(e.message||t(`auth.requestFailed`))}finally{T(!1)}}function L(e){x(``),h(!1),window.location.assign(A(e.id,`/`))}function ne(e){d(!1),p(!1),h(!1),y(e.id),i(``),o(``),c(``),x(``),C(``)}function R(e){p(e),d(!1),h(!1),y(``),o(``),c(``),x(``),C(``)}let z=t(f?`auth.createAccount`:u?`auth.resetPassword`:`auth.signIn`),B=f?t(`auth.createAccountDescription`):u?t(`auth.resetDescription`):N?.label??t(`auth.signInDescription`);return(0,K.jsx)(`main`,{className:`auth-layout`,children:(0,K.jsxs)(`div`,{className:`auth-shell`,children:[(0,K.jsx)(On,{}),(0,K.jsxs)(`section`,{className:`auth-card`,"aria-labelledby":`login-title`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`p`,{className:`eyebrow`,children:[`YunCMS `,t(`app.studio`)]}),(0,K.jsx)(`h1`,{id:`login-title`,children:z}),(0,K.jsx)(`p`,{className:`lede`,children:B})]}),(0,K.jsxs)(`form`,{className:`form-stack`,onSubmit:I,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:N?.label??t(`auth.email`)}),(0,K.jsx)(`input`,{autoComplete:`username`,type:N?`text`:`email`,value:r,onChange:e=>{i(e.target.value),h(!1)},required:!0})]}),!u&&(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:t(`auth.password`)}),(0,K.jsx)(`input`,{autoComplete:f?`new-password`:`current-password`,type:`password`,value:a,onChange:e=>o(e.target.value),required:!0})]}),f&&(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:t(`auth.confirmPassword`)}),(0,K.jsx)(`input`,{autoComplete:`new-password`,type:`password`,value:s,onChange:e=>c(e.target.value),required:!0})]}),b&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:b}),S&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:S}),(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,disabled:w,children:t(w?`auth.working`:f?`auth.createAccount`:u?`auth.sendResetLink`:`auth.signIn`)}),m&&O&&!f&&!u&&!N&&(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,disabled:w||!r,onClick:te,children:t(`auth.resendVerification`)}),!N&&!f&&(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>{d(e=>!e),h(!1),x(``),C(``)},children:t(u?`auth.backToSignIn`:`auth.forgotPassword`)}),E&&!N&&!u&&(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>R(!f),children:t(f?`auth.haveAccount`:`auth.needAccount`)}),N&&(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>y(``),children:t(`auth.backToSignIn`)})]}),!u&&!f&&!N&&(P.length>0||F.length>0)&&(0,K.jsxs)(`div`,{className:`form-stack`,"aria-label":t(`auth.authenticationProviders`),children:[P.map(e=>(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,disabled:w,onClick:()=>L(e),children:e.label},e.id)),F.map(e=>(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,disabled:w,onClick:()=>ne(e),children:e.label},e.id))]})]}),(0,K.jsx)(`div`,{className:`auth-footer`,children:(0,K.jsx)(kn,{})})]})})}function va(e=``){return[...new Set(String(e).split(/[\n,]/).map(e=>e.trim()).filter(Boolean))]}function ya(e,{origin:t=``,host:n=``}={}){let r=Array.isArray(e?.allowed_origins)&&e.allowed_origins.length>0?e.allowed_origins:t?[t]:[],i=Array.isArray(e?.allowed_hosts)&&e.allowed_hosts.length>0?e.allowed_hosts:n?[n]:[];return{enabled:!!e?.enabled,writesEnabled:!!e?.writes_enabled,requireAuthentication:e?.require_authentication!==!1,allowedOrigins:r.join(`
|
|
10
|
+
`),allowedHosts:i.join(`
|
|
11
|
+
`),maxItems:e?.max_items??100,maxResultBytes:e?.max_result_bytes??1e6}}function ba(e){return{enabled:!!e.enabled,writes_enabled:!!e.writesEnabled,require_authentication:!!e.requireAuthentication,allowed_origins:va(e.allowedOrigins),allowed_hosts:va(e.allowedHosts),max_items:Number(e.maxItems),max_result_bytes:Number(e.maxResultBytes)}}function xa(){let e=``;try{e=new URL(d).host}catch{e=window.location.host}return{origin:window.location.origin,host:e}}function Sa(){let{t:e}=q(),t=(0,l.useMemo)(xa,[]),[n,r]=(0,l.useState)(null),[i,a]=(0,l.useState)(null),[o,s]=(0,l.useState)(!0),[c,u]=(0,l.useState)(!1),[f,p]=(0,l.useState)(``),[m,h]=(0,l.useState)(``);(0,l.useEffect)(()=>{let n=!1;return I().then(e=>{n||(r(e),a(ya(e,t)),p(``))}).catch(t=>{n||p(t.message||e(`mcp.loadFailed`))}).finally(()=>{n||s(!1)}),()=>{n=!0}},[t,e]);function g(e,t){a(n=>({...n,[e]:t}))}async function _(n){n.preventDefault(),u(!0),p(``),h(``);try{let n=await te(ba(i));r(n),a(ya(n,t)),h(e(`mcp.saved`))}catch(t){p(t.message||e(`mcp.saveFailed`))}finally{u(!1)}}let v=`${d.replace(/\/$/,``)}/mcp`;return o?(0,K.jsx)(`div`,{className:`panel mcp-state-card`,children:e(`common.loading`)}):i?(0,K.jsx)(`section`,{className:`mcp-workspace`,"aria-label":e(`mcp.title`),children:(0,K.jsxs)(`form`,{className:`panel mcp-settings-panel`,onSubmit:_,children:[(0,K.jsxs)(`div`,{className:`mcp-intro`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:e(`mcp.settingsTitle`)}),(0,K.jsx)(`p`,{children:e(`mcp.settingsDescription`)})]}),(0,K.jsx)(`span`,{className:`status-pill ${i.enabled?`active`:`inactive`}`,children:e(i.enabled?`mcp.enabled`:`mcp.disabled`)})]}),f&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:f}),m&&(0,K.jsx)(`div`,{className:`success-banner`,role:`status`,children:m}),(0,K.jsxs)(`div`,{className:`mcp-endpoint-card`,children:[(0,K.jsx)(`span`,{children:e(`mcp.endpoint`)}),(0,K.jsx)(`code`,{children:v}),(0,K.jsx)(`small`,{children:e(`mcp.endpointHint`)})]}),(0,K.jsxs)(`div`,{className:`mcp-toggle-grid`,children:[(0,K.jsxs)(`label`,{className:`mcp-toggle`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:i.enabled,onChange:e=>g(`enabled`,e.target.checked)}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:e(`mcp.enable`)}),(0,K.jsx)(`small`,{children:e(`mcp.enableHint`)})]})]}),(0,K.jsxs)(`label`,{className:`mcp-toggle ${i.writesEnabled?`warning`:``}`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:i.writesEnabled,onChange:e=>g(`writesEnabled`,e.target.checked)}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:e(`mcp.writes`)}),(0,K.jsx)(`small`,{children:e(`mcp.writesHint`)})]})]}),(0,K.jsxs)(`label`,{className:`mcp-toggle ${i.requireAuthentication?``:`warning`}`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:i.requireAuthentication,onChange:e=>g(`requireAuthentication`,e.target.checked)}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:e(`mcp.authentication`)}),(0,K.jsx)(`small`,{children:e(`mcp.authenticationHint`)})]})]})]}),i.writesEnabled&&(0,K.jsx)(`div`,{className:`mcp-warning`,role:`status`,children:e(`mcp.writesWarning`)}),!i.requireAuthentication&&(0,K.jsx)(`div`,{className:`mcp-warning danger`,role:`alert`,children:e(`mcp.publicWarning`)}),(0,K.jsxs)(`div`,{className:`mcp-settings-grid`,children:[(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:e(`mcp.allowedHosts`)}),(0,K.jsx)(`textarea`,{rows:`4`,value:i.allowedHosts,onChange:e=>g(`allowedHosts`,e.target.value),placeholder:`api.example.com`}),(0,K.jsx)(`small`,{children:e(`mcp.allowedHostsHint`)})]}),(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:e(`mcp.allowedOrigins`)}),(0,K.jsx)(`textarea`,{rows:`4`,value:i.allowedOrigins,onChange:e=>g(`allowedOrigins`,e.target.value),placeholder:`https://studio.example.com`}),(0,K.jsx)(`small`,{children:e(`mcp.allowedOriginsHint`)})]})]}),(0,K.jsxs)(`details`,{className:`mcp-advanced-settings`,children:[(0,K.jsx)(`summary`,{children:e(`mcp.advanced`)}),(0,K.jsxs)(`div`,{className:`mcp-limit-grid`,children:[(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:e(`mcp.maxItems`)}),(0,K.jsx)(`input`,{type:`number`,min:`1`,max:`500`,value:i.maxItems,onChange:e=>g(`maxItems`,e.target.value)}),(0,K.jsx)(`small`,{children:e(`mcp.maxItemsHint`)})]}),(0,K.jsxs)(`label`,{children:[(0,K.jsx)(`span`,{children:e(`mcp.maxResultBytes`)}),(0,K.jsx)(`input`,{type:`number`,min:`10000`,max:`10000000`,step:`10000`,value:i.maxResultBytes,onChange:e=>g(`maxResultBytes`,e.target.value)}),(0,K.jsx)(`small`,{children:e(`mcp.maxResultBytesHint`)})]})]})]}),(0,K.jsxs)(`div`,{className:`mcp-actions`,children:[(0,K.jsx)(`small`,{children:n?.updated_at?e(`mcp.lastUpdated`,{value:new Date(n.updated_at).toLocaleString()}):e(`mcp.notSavedYet`)}),(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,disabled:c,children:e(c?`common.saving`:`common.save`)})]})]})}):(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:f||e(`mcp.loadFailed`)})}var Ca=Object.freeze([`read`,`create`,`update`,`delete`]);function wa(e){if(e==null)return{};if(typeof e==`object`)return e;try{return JSON.parse(e)??{}}catch{return{}}}function Ta(e){return e===!0||e===1}function Ea(e){let t=wa(e?.metadata),n=!!(e?.system&&Ta(t.permissionManaged)),r=n&&Array.isArray(t.allowedActions)?t.allowedActions.filter(e=>Ca.includes(e)):[...Ca];return{systemManaged:n,actionOnly:n&&t.permissionMode===`action-only`,resource:t.resource??null,allowedActions:r}}function Da(e){return!e?.system||Ea(e).systemManaged}function Oa(e,t){return Ea(e).allowedActions.includes(t)}function ka(e){return!Ea(e).actionOnly}var Aa=[`read`,`create`,`update`,`delete`],ja=[[`name-asc`,`roles.nameAsc`],[`name-desc`,`roles.nameDesc`],[`rules-desc`,`roles.mostRules`]],Ma=[6,12,24],Na=[10,20,50];function Pa(e){return e.trim()?JSON.parse(e):null}function Fa(e){return e===`create`||e===`update`}function Ia(e,t,n){return`${e}:${t}:${n}`}function La(e){return e?JSON.stringify(e,null,2):``}function Ra(e,t){return t(`roles.${e}`)}function za(e,t){return e?.admin?t(`roles.administrator`):e?.public?t(`roles.public`):t(`roles.custom`)}function Ba(e){return!!(e&&(e.fields&&e.fields.length>0||e.filter||e.validation))}function Va(e,t,n){return{title:t,description:n,rawMode:e(`roles.advancedJson`),visualMode:e(`roles.visualRules`),complexJson:e(`roles.complexRuleNotice`),invalidJson:e(`roles.invalidRuleJson`),addRule:e(`roles.addRule`),removeRule:e(`roles.removeRule`),empty:e(`roles.noRestrictions`),field:e(`roles.ruleField`),operator:e(`roles.ruleCondition`),value:e(`roles.ruleValue`),noValue:e(`roles.ruleNoValue`),dynamicValue:e(`roles.dynamicValue`),dynamicHint:e(`roles.dynamicValueHint`),staticValue:e(`roles.staticValue`),rawLabel:e(`roles.advancedJson`),trueLabel:e(`common.yes`),falseLabel:e(`common.no`),operators:{_eq:e(`content.opEquals`),_neq:e(`content.opDoesNotEqual`),_contains:e(`content.opContains`),_starts_with:e(`content.opStartsWith`),_ends_with:e(`content.opEndsWith`),_gt:e(`content.opGreaterThan`),_gte:e(`content.opGreaterEqual`),_lt:e(`content.opLessThan`),_lte:e(`content.opLessEqual`),_null:e(`content.opEmpty`),_nnull:e(`content.opNotEmpty`)}}}function Ha({route:e={},onNavigate:t}){let{t:n}=q(),r=lr(),[i,a]=(0,l.useState)([]),[o,s]=(0,l.useState)([]),[c,u]=(0,l.useState)([]),[d,f]=(0,l.useState)(``),[p,m]=(0,l.useState)(!1),[h,g]=(0,l.useState)(``),[_,v]=(0,l.useState)(`name-asc`),[y,b]=(0,l.useState)(1),[x,S]=(0,l.useState)(12),[C,w]=(0,l.useState)(``),[T,E]=(0,l.useState)(!1),[O,k]=(0,l.useState)(1),[ee,A]=(0,l.useState)(20),[j,M]=(0,l.useState)({name:``,description:``,public:!1}),[N,P]=(0,l.useState)(``),[F,I]=(0,l.useState)(null),[te,L]=(0,l.useState)([]),[ne,R]=(0,l.useState)({allFields:!0,fields:[],filter:``,validation:``}),[z,B]=(0,l.useState)(``),[re,ie]=(0,l.useState)(!1),[V,ae]=(0,l.useState)(!1),[H,oe]=(0,l.useState)(``),[se,U]=(0,l.useState)(``),[ce,le]=(0,l.useState)(!0);async function ue(e=d){le(!0),oe(``);try{let[n,r,i]=await Promise.all([D(`/roles`),D(`/permissions`),D(`/schema/collections`)]),o=n?.data??[];a(o),s(r?.data??[]),u((i?.data??[]).filter(Da)),f(t=>{let n=e||t;return o.some(e=>e.id===n)?n:``}),e&&!o.some(t=>t.id===e)&&t?.(J.roles())}catch(e){oe(e.message||n(`roles.loadError`))}finally{le(!1)}}(0,l.useEffect)(()=>{ue()},[]),(0,l.useEffect)(()=>{f(e.roleId||``),m(e.view===`new`)},[e.roleId,e.view]);let W=i.find(e=>e.id===d)??null,de=(0,l.useMemo)(()=>new Map(o.map(e=>[Ia(e.role,e.collection,e.action),e])),[o]),G=(0,l.useMemo)(()=>o.filter(e=>e.role===d),[o,d]),fe=c.find(t=>t.collection===e.collection)??null,pe=e.view===`permission`?de.get(Ia(e.roleId,e.collection,e.action))??null:null,me=(0,l.useMemo)(()=>G.filter(Ba).length,[G]),he=(0,l.useMemo)(()=>{let e=new Map;return o.forEach(t=>e.set(t.role,(e.get(t.role)||0)+1)),e},[o]),ge=(0,l.useMemo)(()=>{let e=h.trim().toLowerCase();return i.filter(t=>!e||[t.name,t.description,za(t,n)].filter(Boolean).some(t=>String(t).toLowerCase().includes(e))).slice().sort((e,t)=>{if(_===`rules-desc`){let n=(he.get(t.id)||0)-(he.get(e.id)||0);if(n)return n}let n=String(e.name||``).localeCompare(String(t.name||``));return _===`name-desc`?-n:n})},[he,h,_,i,n]),_e=(0,l.useMemo)(()=>{let e=C.trim().toLowerCase();return c.filter(t=>!e||[t.collection,t.note,t.system?n(`roles.systemResource`):``].filter(Boolean).some(t=>String(t).toLowerCase().includes(e))).filter(e=>!T||Aa.some(t=>de.has(Ia(d,e.collection,t)))).slice().sort((e,t)=>Number(!!e.system)-Number(!!t.system)||String(e.collection||``).localeCompare(String(t.collection||``)))},[C,c,T,de,d,n]),ve=(0,l.useMemo)(()=>Xn(ge,y,x),[y,x,ge]),ye=(0,l.useMemo)(()=>Xn(_e,O,ee),[O,ee,_e]);(0,l.useEffect)(()=>b(1),[h,_]),(0,l.useEffect)(()=>k(1),[C,T,d]),(0,l.useEffect)(()=>{P(W?.name||``),I(null)},[W?.id,W?.name]);async function be(e){e.preventDefault(),oe(``),U(``);try{let e=(await D(`/roles`,{method:`POST`,body:{name:j.name.trim(),description:j.description.trim()||null,public:j.public}}))?.data?.id||``;M({name:``,description:``,public:!1}),m(!1),b(1),U(n(`roles.createdNotice`)),await ue(e),t?.(J.role(e))}catch(e){oe(e.message||n(`roles.createError`))}}async function xe(e){if(e.preventDefault(),!(!W||!N.trim()||N.trim()===W.name)){ie(!0),oe(``),U(``);try{await D(`/roles/${encodeURIComponent(W.id)}`,{method:`PATCH`,body:{name:N.trim()}}),U(n(`roles.updatedNotice`)),await ue(W.id)}catch(e){oe(e.message||n(`roles.updateError`))}finally{ie(!1)}}}async function Se(e){if(await r({title:n(`roles.deleteTitle`),description:n(`roles.deleteDescription`,{name:e.name}),confirmLabel:n(`roles.deleteRole`),tone:`danger`})){oe(``),U(``);try{await D(`/roles/${encodeURIComponent(e.id)}`,{method:`DELETE`}),U(n(`roles.deletedNotice`)),I(null),await ue(``),t?.(J.roles())}catch(e){oe(e.message||n(`roles.deleteError`))}}}async function Ce(e,t){if(!W||W.admin||!Oa(e,t,W))return;let r=e.collection,i=Ia(W.id,r,t),a=de.get(i);B(i),oe(``),U(``);try{a?(await D(`/permissions/${encodeURIComponent(a.id)}`,{method:`DELETE`}),F?.id===a.id&&I(null),U(n(`roles.accessRemoved`,{action:Ra(t,n),collection:r}))):(await D(`/permissions`,{method:`POST`,body:{role:W.id,collection:r,action:t,fields:null,filter:null,validation:null}}),U(n(`roles.accessGranted`,{action:Ra(t,n),collection:r}))),await ue(W.id)}catch(e){oe(e.message||n(`roles.permissionUpdateError`))}finally{B(``)}}async function we(e){let t=c.find(t=>t.collection===e.collection);if(t){oe(``),U(``);try{let n=ka(t)?await D(`/schema/collections/${encodeURIComponent(e.collection)}/fields`):{data:[]};L((n?.data??[]).filter(e=>!e.hidden)),I(e),R({allFields:!e.fields||e.fields.length===0,fields:e.fields||[],filter:La(e.filter),validation:La(e.validation)})}catch(e){oe(e.message||n(`roles.permissionDetailsError`))}}}function Te(e,n){W&&t?.(J.permission(W.id,e.collection,n))}(0,l.useEffect)(()=>{e.view!==`permission`||!e.roleId||!e.collection||!e.action||ce||we(de.get(Ia(e.roleId,e.collection,e.action))||{id:null,role:e.roleId,collection:e.collection,action:e.action,fields:null,filter:null,validation:null})},[ce,de,e.action,e.collection,e.roleId,e.view]);function Ee(e){R(t=>({...t,fields:t.fields.includes(e)?t.fields.filter(t=>t!==e):[...t.fields,e]}))}async function De(e){if(e.preventDefault(),F){ae(!0),oe(``),U(``);try{let e=Pa(ne.filter),t=Fa(F.action)?Pa(ne.validation):null;if(!ne.allFields&&ne.fields.length===0)throw Error(n(`roles.chooseFieldError`));await D(`/permissions/${encodeURIComponent(F.id)}`,{method:`PATCH`,body:{fields:ne.allFields?null:ne.fields,filter:e,validation:t}}),U(n(`roles.advancedSaved`)),await ue(d)}catch(e){oe(e instanceof SyntaxError?n(`roles.invalidJson`):e.message||n(`roles.permissionUpdateError`))}finally{ae(!1)}}}return(0,K.jsxs)(`div`,{className:`screen-stack`,children:[H&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:H}),se&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:se}),(0,K.jsxs)(`section`,{className:`permissions-layout routed-view-${e.view||`list`}`,children:[(0,K.jsxs)(`aside`,{className:`panel form-panel role-sidebar access-role-sidebar`,children:[(0,K.jsxs)(`div`,{className:`panel-heading role-sidebar-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:n(`roles.access`)}),(0,K.jsx)(`h2`,{children:n(`roles.roles`)}),(0,K.jsx)(`p`,{children:n(`roles.summary`,{count:i.length})})]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>t?.(p?J.roles():J.newRole()),children:n(p?`common.cancel`:`common.create`)})]}),p&&(0,K.jsxs)(`form`,{className:`schema-create-card form-stack compact`,onSubmit:be,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:n(`common.name`)}),(0,K.jsx)(`input`,{value:j.name,onChange:e=>M(t=>({...t,name:e.target.value})),required:!0,autoFocus:!0})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:n(`dataModel.description`)}),(0,K.jsx)(`input`,{value:j.description,onChange:e=>M(t=>({...t,description:e.target.value}))})]}),(0,K.jsxs)(`label`,{className:`checkbox-label`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:j.public,onChange:e=>M(t=>({...t,public:e.target.checked}))}),n(`roles.publicRole`)]}),j.public&&(0,K.jsx)(`div`,{className:`inline-info public-role-create-hint`,children:n(`roles.publicAccessDescription`)}),(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,children:n(`roles.createRole`)})]}),(0,K.jsxs)(`div`,{className:`sidebar-filter-row`,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:n(`roles.findRole`)}),(0,K.jsx)(`input`,{type:`search`,value:h,onChange:e=>g(e.target.value),placeholder:n(`visibility.searchPlaceholder`)})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:n(`common.sort`)}),(0,K.jsx)(`select`,{value:_,onChange:e=>v(e.target.value),children:ja.map(([e,t])=>(0,K.jsx)(`option`,{value:e,children:n(t)},e))})]})]}),(0,K.jsxs)(`div`,{className:`list-stack role-list role-list-page`,children:[ve.items.map(e=>(0,K.jsxs)(`button`,{className:`list-button role-list-button ${e.id===d?`active`:``}`,type:`button`,onClick:()=>t?.(J.role(e.id)),children:[(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:e.name}),(0,K.jsx)(`small`,{children:e.admin?n(`roles.adminFullAccess`):e.public?n(`roles.publicRole`):e.description||n(`roles.customRole`)})]}),!e.admin&&(0,K.jsx)(`span`,{className:`permission-count`,children:he.get(e.id)||0})]},e.id)),i.length>0&&ge.length===0&&(0,K.jsx)(`p`,{className:`muted-line`,children:n(`roles.noRoles`)})]}),ge.length>0&&(0,K.jsx)(Yn,{compact:!0,page:ve.page,pageSize:x,totalItems:ge.length,pageSizeOptions:Ma,itemLabel:n(`roles.rolesLower`),onPageChange:b,onPageSizeChange:e=>{S(e),b(1)}})]}),(0,K.jsxs)(`div`,{className:`permissions-detail-stack`,children:[W&&(0,K.jsxs)(`nav`,{className:`page-breadcrumbs`,"aria-label":n(`roles.roles`),children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>t?.(J.roles()),children:n(`roles.roles`)}),(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`/`}),(0,K.jsx)(`strong`,{children:W.name}),e.view===`permission`&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`/`}),(0,K.jsx)(`button`,{type:`button`,onClick:()=>t?.(J.role(W.id)),children:n(`roles.permissions`)}),(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`/`}),(0,K.jsxs)(`strong`,{children:[e.collection,` · `,Ra(e.action,n)]})]})]}),W?(0,K.jsxs)(K.Fragment,{children:[e.view!==`permission`&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`section`,{className:`panel role-detail-header role-summary-panel`,children:[(0,K.jsxs)(`form`,{className:`role-name-form`,onSubmit:xe,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`role-heading-line`,children:(0,K.jsx)(`span`,{className:`status-pill role-kind-badge ${W.public?`public`:W.admin?`admin`:`custom`}`,children:za(W,n)})}),(0,K.jsxs)(`label`,{className:`field-label role-name-field`,children:[(0,K.jsx)(`span`,{children:n(`roles.roleName`)}),(0,K.jsx)(`input`,{value:N,onChange:e=>P(e.target.value),required:!0})]})]}),(0,K.jsx)(`button`,{className:`text-button`,type:`submit`,disabled:re||N.trim()===W.name,children:n(re?`common.saving`:`roles.saveName`)})]}),(0,K.jsxs)(`div`,{className:`role-summary-actions`,children:[(0,K.jsxs)(`span`,{className:`role-summary-stat`,children:[(0,K.jsx)(`strong`,{children:G.length}),(0,K.jsx)(`small`,{children:n(`roles.permissionRules`)})]}),!W.admin&&!W.public&&(0,K.jsx)(`button`,{className:`danger-button`,type:`button`,onClick:()=>Se(W),children:n(`roles.deleteRole`)})]})]}),!!W.public&&(0,K.jsx)(`section`,{className:`panel public-role-guidance`,role:`note`,children:(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:n(`roles.publicAccessTitle`)}),(0,K.jsx)(`strong`,{children:n(`roles.publicAccessTitle`)}),(0,K.jsx)(`p`,{children:n(`roles.publicAccessDescription`)})]})}),!W.admin&&(0,K.jsxs)(`section`,{className:`panel permission-overview-panel`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:n(`roles.accessOverview`)}),(0,K.jsx)(`p`,{children:n(`roles.quickAuditHint`)})]}),(0,K.jsxs)(`div`,{className:`permission-overview-stats`,children:[(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:G.length}),(0,K.jsx)(`small`,{children:n(`roles.enabledActions`,{count:G.length})})]}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:me}),(0,K.jsx)(`small`,{children:n(`roles.restrictedActions`,{count:me})})]})]})]}),W.admin?(0,K.jsx)(`section`,{className:`panel empty-state`,children:(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:n(`roles.fullAdmin`)}),(0,K.jsx)(`p`,{children:n(`roles.fullAdminDescription`)})]})}):(0,K.jsxs)(`section`,{className:`table-panel permission-matrix-panel`,children:[(0,K.jsxs)(`div`,{className:`permission-matrix-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:n(`roles.permissions`)}),(0,K.jsx)(`h2`,{children:n(`roles.collectionAccess`)}),(0,K.jsx)(`p`,{children:n(`roles.systemAccessHint`)})]}),(0,K.jsx)(`span`,{className:`schema-count`,children:n(`roles.ruleCount`,{count:G.length})})]}),(0,K.jsxs)(`div`,{className:`permission-list-controls`,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:n(`dataModel.findCollection`)}),(0,K.jsx)(`input`,{type:`search`,value:C,onChange:e=>w(e.target.value),placeholder:n(`visibility.searchPlaceholder`)})]}),(0,K.jsxs)(`label`,{className:`checkbox-label permission-filter-checkbox`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:T,onChange:e=>E(e.target.checked)}),n(`roles.configuredOnly`)]}),(0,K.jsx)(`span`,{className:`result-count`,children:n(`roles.collectionCount`,{visible:_e.length,total:c.length})}),(C||T)&&(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>{w(``),E(!1)},children:n(`common.reset`)})]}),(0,K.jsxs)(`div`,{className:`permission-collection-grid`,children:[(0,K.jsxs)(`div`,{className:`permission-matrix-columns`,"aria-hidden":`true`,children:[(0,K.jsx)(`span`,{children:n(`roles.collection`)}),Aa.map(e=>(0,K.jsx)(`span`,{children:Ra(e,n)},e))]}),ye.items.map(e=>{let t=Ea(e);return(0,K.jsxs)(`article`,{className:`permission-collection-card`,children:[(0,K.jsxs)(`header`,{children:[(0,K.jsxs)(`div`,{className:`permission-collection-name`,children:[(0,K.jsx)(`strong`,{children:e.collection}),t.systemManaged&&(0,K.jsx)(`span`,{className:`status-pill system-resource-pill`,children:n(`roles.systemResource`)})]}),(0,K.jsx)(`small`,{children:e.note||n(`roles.collectionPermissionHint`)})]}),(0,K.jsx)(`div`,{className:`permission-action-list`,children:Aa.map(t=>{let r=Ia(W.id,e.collection,t),i=de.get(r),a=Oa(e,t,W),o=Ba(i);return(0,K.jsxs)(`div`,{className:`permission-action-row`,"data-action":t,children:[(0,K.jsxs)(`div`,{className:`permission-action-meta`,children:[(0,K.jsx)(`strong`,{children:Ra(t,n)}),(0,K.jsx)(`small`,{children:n(i?o?`roles.restricted`:`roles.allRecords`:`roles.permissionDisabled`)})]}),a?(0,K.jsxs)(`div`,{className:`permission-action-controls`,children:[(0,K.jsxs)(`label`,{className:`permission-toggle ${i?`enabled`:``}`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:!!i,disabled:z===r,onChange:()=>Ce(e,t),"aria-label":n(`roles.actionCollection`,{action:Ra(t,n),collection:e.collection})}),(0,K.jsx)(`span`,{children:n(i?`roles.allowed`:`roles.off`)})]}),(0,K.jsxs)(`button`,{className:`secondary-button permission-configure`,type:`button`,"aria-label":n(`roles.openPermission`),title:n(`roles.openPermission`),onClick:()=>Te(e,t),children:[(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`•••`}),(0,K.jsx)(`span`,{children:n(`roles.configure`)})]})]}):(0,K.jsx)(`span`,{className:`status-pill protected-permission`,children:n(`roles.protected`)})]},t)})})]},e.collection)})]}),!ce&&c.length===0?(0,K.jsx)(`div`,{className:`table-footer`,children:n(`roles.createCollectionFirst`)}):!ce&&_e.length===0?(0,K.jsx)(`div`,{className:`table-footer`,children:n(`roles.noMatchingCollections`)}):(0,K.jsx)(Yn,{page:ye.page,pageSize:ee,totalItems:_e.length,pageSizeOptions:Na,itemLabel:n(`dataModel.collectionsLower`),onPageChange:k,onPageSizeChange:e=>{A(e),k(1)}})]})]}),e.view===`permission`&&(0,K.jsx)(`section`,{className:`panel permission-detail-page`,children:fe?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`header`,{className:`permission-detail-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:n(`roles.permissionDetail`)}),(0,K.jsxs)(`h2`,{children:[fe.collection,` · `,Ra(e.action,n)]}),(0,K.jsx)(`p`,{children:fe.note||n(`roles.permissionDetailDescription`)})]}),(0,K.jsx)(`span`,{className:`permission-state-badge ${pe?`enabled`:`disabled`}`,children:n(pe?`roles.permissionEnabled`:`roles.permissionDisabled`)})]}),Oa(fe,e.action,W)?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`permission-master-switch`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:n(`roles.permissionMasterSwitch`)}),(0,K.jsx)(`p`,{children:n(`roles.permissionMasterSwitchHint`)})]}),(0,K.jsxs)(`label`,{className:`permission-toggle ${pe?`enabled`:``}`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:!!pe,disabled:z===Ia(W.id,fe.collection,e.action),onChange:()=>Ce(fe,e.action)}),(0,K.jsx)(`span`,{children:n(pe?`roles.allowed`:`roles.off`)})]})]}),pe?ka(fe)&&F?.id===pe.id?(0,K.jsxs)(`form`,{id:`advanced-permission-form`,className:`advanced-permission-grid permission-rule-page`,onSubmit:De,children:[(0,K.jsxs)(`div`,{className:`schema-create-card form-stack`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:n(`roles.allowedFields`)}),(0,K.jsx)(`p`,{children:n(`roles.allowedFieldsDescription`)})]}),(0,K.jsxs)(`label`,{className:`checkbox-label`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:ne.allFields,onChange:e=>R(t=>({...t,allFields:e.target.checked}))}),n(`roles.allowAllFields`)]}),!ne.allFields&&(0,K.jsx)(`div`,{className:`field-choice-grid`,children:te.map(e=>(0,K.jsxs)(`label`,{className:`field-choice`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:ne.fields.includes(e.field),onChange:()=>Ee(e.field)}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:e.name||e.field}),(0,K.jsxs)(`small`,{children:[e.field,` · `,e.type]})]})]},e.field))})]}),(0,K.jsxs)(`div`,{className:`schema-create-card form-stack`,children:[(0,K.jsxs)(`div`,{className:`permission-rule-builder-stack`,children:[(0,K.jsx)(`div`,{className:`permission-rule-builder-card`,children:(0,K.jsx)(Xr,{value:ne.filter,fields:te,onChange:e=>R(t=>({...t,filter:e})),labels:Va(n,n(`roles.rowFilter`),n(`roles.visualRuleDescription`))})}),(0,K.jsx)(`div`,{className:`permission-rule-builder-card`,children:(0,K.jsx)(Xr,{value:ne.validation,fields:te,disabled:!Fa(e.action),onChange:e=>R(t=>({...t,validation:e})),labels:Va(n,n(`roles.validation`),Fa(e.action)?n(`roles.validationWriteDescription`):n(`roles.validationUnsupported`))})})]}),(0,K.jsx)(`div`,{className:`form-actions`,children:(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,disabled:V,children:n(V?`common.saving`:`roles.saveRules`)})})]})]}):(0,K.jsx)(`div`,{className:`inline-info`,children:n(`roles.actionOnlyPermission`)}):(0,K.jsx)(`div`,{className:`empty-state permission-disabled-state`,children:(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h3`,{children:n(`roles.permissionDisabled`)}),(0,K.jsx)(`p`,{children:n(`roles.enableBeforeRules`)})]})})]}):(0,K.jsx)(`div`,{className:`inline-info`,children:n(`roles.protected`)})]}):(0,K.jsxs)(`div`,{className:`empty-state`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:n(`roles.permissionNotFound`)}),(0,K.jsx)(`p`,{children:n(`roles.permissionNotFoundDescription`)})]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>t?.(J.role(W.id)),children:n(`roles.backToRole`)})]})})]}):(0,K.jsx)(`section`,{className:`panel empty-state`,children:(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:n(`roles.selectRole`)}),(0,K.jsx)(`p`,{children:n(`roles.selectRoleDescription`)})]})})]})]})]})}var Ua=[[`email-asc`,`users.emailAsc`],[`email-desc`,`users.emailDesc`],[`recent`,`users.recentAccess`],[`oldest`,`users.oldestAccess`],[`status`,`common.status`]],Wa=[10,25,50,100];function Ga(e,t,n){if(n===`recent`||n===`oldest`){let r=e.last_access?new Date(e.last_access).getTime():0,i=t.last_access?new Date(t.last_access).getTime():0;return n===`recent`?i-r:r-i}if(n===`status`)return String(e.status||``).localeCompare(String(t.status||``))||String(e.email||``).localeCompare(String(t.email||``));let r=String(e.email||``).localeCompare(String(t.email||``));return n===`email-desc`?-r:r}function Ka(e,t){return t(`users.${e===`disabled`?`disabled`:e}`)}function qa({currentUserId:e,route:t={},onNavigate:n}){let{locale:r,t:i}=q(),a=lr(),[o,s]=(0,l.useState)([]),[c,u]=(0,l.useState)([]),[d,f]=(0,l.useState)(!0),[p,m]=(0,l.useState)(``),[h,g]=(0,l.useState)(``),[_,v]=(0,l.useState)(!0),[y,b]=(0,l.useState)(``),[x,S]=(0,l.useState)(`all`),[C,w]=(0,l.useState)(`all`),[T,E]=(0,l.useState)(`email-asc`),[O,k]=(0,l.useState)(1),[ee,A]=(0,l.useState)(25),[j,M]=(0,l.useState)({email:``,password:``,role:``,status:`active`});async function N(){v(!0),m(``);try{let[e,t]=await Promise.allSettled([D(`/users`),D(`/roles`)]);if(e.status===`rejected`)throw e.reason;s(e.value?.data??[]),t.status===`fulfilled`?(u(t.value?.data??[]),f(!0)):(u([]),f(!1),S(e=>e===`all`||e===`none`?e:`all`),M(e=>({...e,role:``})))}catch(e){m(e.message||i(`users.loadError`))}finally{v(!1)}}(0,l.useEffect)(()=>{N()},[]);let P=(0,l.useMemo)(()=>new Map(c.map(e=>[e.id,e])),[c]),F=(0,l.useMemo)(()=>{let e=y.trim().toLowerCase();return o.filter(t=>!e||[t.email,P.get(t.role)?.name,t.status].filter(Boolean).some(t=>String(t).toLowerCase().includes(e))).filter(e=>x===`all`?!0:x===`none`?!e.role:e.role===x).filter(e=>C===`all`||e.status===C).slice().sort((e,t)=>Ga(e,t,T))},[x,P,y,T,C,o]),I=(0,l.useMemo)(()=>Xn(F,O,ee),[O,ee,F]),te=I.items,L=!!(y.trim()||x!==`all`||C!==`all`||T!==`email-asc`);(0,l.useEffect)(()=>{k(1)},[x,y,T,C]);async function ne(e){e.preventDefault(),m(``),g(``);try{let e=await D(`/users`,{method:`POST`,body:{email:j.email,password:j.password,role:d&&j.role||null,status:j.status}});M({email:``,password:``,role:``,status:`active`}),k(1),g(i(`users.createdNotice`)),await N(),e?.data?.id&&n?.(J.user(e.data.id))}catch(e){m(e.message||i(`users.createError`))}}async function R(e,t){m(``),g(``);try{await D(`/users/${encodeURIComponent(e.id)}`,{method:`PATCH`,body:t}),g(i(`users.updatedNotice`,{email:e.email})),await N()}catch(e){m(e.message||i(`users.updateError`))}}async function z(e){m(``),g(``);try{await D(`/auth/email-verification/request`,{method:`POST`,body:{user:e.id}}),g(i(`users.verificationQueued`,{email:e.email}))}catch(e){m(e.message||i(`users.verificationError`))}}async function B(e){if(await a({title:i(`users.deleteTitle`),description:i(`users.deleteDescriptionEmail`,{email:e.email}),confirmLabel:i(`users.deleteUser`),tone:`danger`})){m(``),g(``);try{await D(`/users/${encodeURIComponent(e.id)}`,{method:`DELETE`}),g(i(`users.deletedNotice`,{email:e.email})),await N(),t.view===`detail`&&n?.(J.users())}catch(e){m(e.message||i(`users.deleteError`))}}}function re(){b(``),S(`all`),w(`all`),E(`email-asc`),k(1)}let ie=r===`tr`?`tr-TR`:`en-US`,V=o.find(e=>String(e.id)===String(t.userId))??null;return t.view===`new`?(0,K.jsxs)(`div`,{className:`screen-stack routed-form-page`,children:[(0,K.jsxs)(`nav`,{className:`page-breadcrumbs`,"aria-label":i(`nav.users`),children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>n?.(J.users()),children:i(`nav.users`)}),(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`/`}),(0,K.jsx)(`strong`,{children:i(`users.newUser`)})]}),p&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:p}),(0,K.jsxs)(`section`,{className:`panel form-panel create-user-panel`,children:[(0,K.jsxs)(`div`,{className:`panel-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:i(`users.newUser`)}),(0,K.jsx)(`h2`,{children:i(`users.createUser`)}),(0,K.jsx)(`p`,{children:i(`users.createDescription`)})]}),(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>n?.(J.users()),children:i(`common.cancel`)})]}),(0,K.jsxs)(`form`,{className:`form-grid inline-form`,onSubmit:ne,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:i(`auth.email`)}),(0,K.jsx)(`input`,{type:`email`,value:j.email,onChange:e=>M(t=>({...t,email:e.target.value})),required:!0,autoFocus:!0})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:i(`auth.password`)}),(0,K.jsx)(`input`,{type:`password`,value:j.password,onChange:e=>M(t=>({...t,password:e.target.value})),required:!0})]}),d?(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:i(`users.role`)}),(0,K.jsxs)(`select`,{value:j.role,onChange:e=>M(t=>({...t,role:e.target.value})),children:[(0,K.jsx)(`option`,{value:``,children:i(`app.noRole`)}),c.map(e=>(0,K.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}):(0,K.jsx)(`div`,{className:`inline-info`,children:i(`users.roleUnavailableForCreate`)}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:i(`common.status`)}),(0,K.jsxs)(`select`,{value:j.status,onChange:e=>M(t=>({...t,status:e.target.value})),children:[(0,K.jsx)(`option`,{value:`active`,children:i(`users.active`)}),(0,K.jsx)(`option`,{value:`suspended`,children:i(`users.suspended`)}),(0,K.jsx)(`option`,{value:`disabled`,children:i(`users.disabled`)})]})]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`submit`,children:i(`users.createUser`)})]})]})]}):t.view===`detail`?(0,K.jsxs)(`div`,{className:`screen-stack routed-form-page`,children:[(0,K.jsxs)(`nav`,{className:`page-breadcrumbs`,"aria-label":i(`nav.users`),children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>n?.(J.users()),children:i(`nav.users`)}),(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`/`}),(0,K.jsx)(`strong`,{children:V?.email||i(`users.userDetails`)})]}),p&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:p}),h&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:h}),V?(0,K.jsxs)(`section`,{className:`panel user-detail-page`,children:[(0,K.jsxs)(`header`,{className:`workspace-section-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:i(`users.userDetails`)}),(0,K.jsx)(`h2`,{children:V.email}),(0,K.jsx)(`p`,{children:V.id})]}),(0,K.jsx)(`span`,{className:`status-pill user-status-pill ${V.status}`,children:Ka(V.status,i)})]}),(0,K.jsxs)(`div`,{className:`field-detail-grid`,children:[(0,K.jsxs)(`article`,{children:[(0,K.jsx)(`small`,{children:i(`users.role`)}),(0,K.jsx)(`strong`,{children:P.get(V.role)?.name||i(`app.noRole`)})]}),(0,K.jsxs)(`article`,{children:[(0,K.jsx)(`small`,{children:i(`users.verification`)}),(0,K.jsx)(`strong`,{children:V.email_verified_at?i(`users.verified`):i(`users.unverified`)})]}),(0,K.jsxs)(`article`,{children:[(0,K.jsx)(`small`,{children:i(`users.lastAccess`)}),(0,K.jsx)(`strong`,{children:V.last_access?new Date(V.last_access).toLocaleString(ie):i(`users.never`)})]}),(0,K.jsxs)(`article`,{children:[(0,K.jsx)(`small`,{children:i(`common.status`)}),(0,K.jsx)(`strong`,{children:Ka(V.status,i)})]})]}),(0,K.jsxs)(`div`,{className:`user-detail-controls`,children:[d&&(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:i(`users.role`)}),(0,K.jsxs)(`select`,{value:V.role??``,onChange:e=>R(V,{role:e.target.value||null}),children:[(0,K.jsx)(`option`,{value:``,children:i(`app.noRole`)}),c.map(e=>(0,K.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:i(`common.status`)}),(0,K.jsxs)(`select`,{value:V.status,disabled:V.id===e,onChange:e=>R(V,{status:e.target.value}),children:[(0,K.jsx)(`option`,{value:`active`,children:i(`users.active`)}),(0,K.jsx)(`option`,{value:`suspended`,children:i(`users.suspended`)}),(0,K.jsx)(`option`,{value:`disabled`,children:i(`users.disabled`)})]})]})]}),(0,K.jsxs)(`div`,{className:`page-danger-zone`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:i(`users.userActions`)}),(0,K.jsx)(`p`,{children:i(`users.userActionsHint`)})]}),(0,K.jsxs)(`div`,{children:[!V.email_verified_at&&(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>z(V),children:i(`users.sendVerification`)}),(0,K.jsx)(`button`,{className:`danger-button`,type:`button`,disabled:V.id===e,onClick:()=>B(V),children:i(`common.delete`)})]})]})]}):(0,K.jsx)(`section`,{className:`panel empty-state`,children:(0,K.jsx)(`div`,{children:(0,K.jsx)(`h2`,{children:i(_?`users.loading`:`users.userNotFound`)})})})]}):(0,K.jsxs)(`div`,{className:`screen-stack`,children:[(0,K.jsxs)(`section`,{className:`panel workspace-toolbar users-header-panel`,children:[(0,K.jsxs)(`div`,{className:`workspace-toolbar-heading`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`eyebrow`,children:i(`nav.settings`)}),(0,K.jsx)(`h2`,{children:i(`nav.users`)}),(0,K.jsx)(`p`,{children:i(`users.summary`,{total:o.length,active:o.filter(e=>e.status===`active`).length})})]}),(0,K.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:()=>n?.(J.newUser()),children:i(`users.newUser`)})]}),!d&&(0,K.jsx)(`div`,{className:`inline-info`,children:i(`users.roleAccessUnavailable`)}),(0,K.jsxs)(`div`,{className:`list-controls user-list-controls`,children:[(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:i(`common.search`)}),(0,K.jsx)(`input`,{type:`search`,value:y,onChange:e=>b(e.target.value),placeholder:i(`users.searchPlaceholder`)})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:i(`users.role`)}),(0,K.jsxs)(`select`,{value:x,onChange:e=>S(e.target.value),children:[(0,K.jsx)(`option`,{value:`all`,children:i(`users.allRoles`)}),(0,K.jsx)(`option`,{value:`none`,children:i(`app.noRole`)}),d&&c.map(e=>(0,K.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:i(`common.status`)}),(0,K.jsxs)(`select`,{value:C,onChange:e=>w(e.target.value),children:[(0,K.jsx)(`option`,{value:`all`,children:i(`users.allStatuses`)}),(0,K.jsx)(`option`,{value:`active`,children:i(`users.active`)}),(0,K.jsx)(`option`,{value:`suspended`,children:i(`users.suspended`)}),(0,K.jsx)(`option`,{value:`disabled`,children:i(`users.disabled`)})]})]}),(0,K.jsxs)(`label`,{className:`field-label`,children:[(0,K.jsx)(`span`,{children:i(`common.sort`)}),(0,K.jsx)(`select`,{value:T,onChange:e=>E(e.target.value),children:Ua.map(([e,t])=>(0,K.jsx)(`option`,{value:e,children:i(t)},e))})]})]}),(0,K.jsxs)(`div`,{className:`list-controls-summary`,children:[(0,K.jsx)(`span`,{className:`result-count`,children:i(`users.matchingCount`,{count:F.length})}),L&&(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:re,children:i(`users.resetView`)})]})]}),p&&(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:p}),h&&(0,K.jsx)(`div`,{className:`notice-banner`,role:`status`,children:h}),!_&&F.length===0&&o.length>0?(0,K.jsxs)(`section`,{className:`panel empty-state empty-state-action`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:i(`users.noUsers`)}),(0,K.jsx)(`p`,{children:i(`users.noMatchDescription`)})]}),(0,K.jsx)(`button`,{className:`text-button`,type:`button`,onClick:re,children:i(`users.resetView`)})]}):(0,K.jsxs)(`section`,{className:`table-panel users-table-panel`,children:[(0,K.jsx)(`div`,{className:`table-scroll`,children:(0,K.jsxs)(`table`,{children:[(0,K.jsx)(`thead`,{children:(0,K.jsxs)(`tr`,{children:[(0,K.jsx)(`th`,{children:i(`users.user`)}),(0,K.jsx)(`th`,{children:i(`users.role`)}),(0,K.jsx)(`th`,{children:i(`common.status`)}),(0,K.jsx)(`th`,{children:i(`users.verification`)}),(0,K.jsx)(`th`,{children:i(`users.lastAccess`)}),(0,K.jsx)(`th`,{})]})}),(0,K.jsx)(`tbody`,{children:te.map(t=>(0,K.jsxs)(`tr`,{children:[(0,K.jsx)(`td`,{children:(0,K.jsxs)(`div`,{className:`user-identity-cell`,children:[(0,K.jsx)(`strong`,{children:t.email}),(0,K.jsxs)(`div`,{className:`user-cell-badges`,children:[t.id===e&&(0,K.jsx)(`span`,{className:`inline-note`,children:i(`users.you`)}),(0,K.jsx)(`span`,{className:`status-pill user-status-pill ${t.status}`,children:Ka(t.status,i)})]})]})}),(0,K.jsx)(`td`,{children:d?(0,K.jsx)(`span`,{children:P.get(t.role)?.name||i(`app.noRole`)}):(0,K.jsx)(`span`,{className:`status-pill`,children:t.role?i(`users.roleDetailsUnavailable`):i(`app.noRole`)})}),(0,K.jsx)(`td`,{children:(0,K.jsx)(`span`,{children:Ka(t.status,i)})}),(0,K.jsx)(`td`,{children:(0,K.jsx)(`span`,{className:`status-pill verification-pill ${t.email_verified_at?`verified`:``}`,children:t.email_verified_at?i(`users.verified`):i(`users.unverified`)})}),(0,K.jsx)(`td`,{children:t.last_access?new Date(t.last_access).toLocaleString(ie):i(`users.never`)}),(0,K.jsx)(`td`,{className:`row-actions`,children:(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>n?.(J.user(t.id)),children:i(`users.openUser`)})})]},t.id))})]})}),(0,K.jsx)(`div`,{className:`mobile-user-list`,"aria-label":i(`nav.users`),children:te.map(t=>(0,K.jsxs)(`article`,{className:`mobile-user-card`,children:[(0,K.jsxs)(`header`,{children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:t.email}),t.id===e&&(0,K.jsx)(`small`,{children:i(`users.you`)})]}),(0,K.jsx)(`span`,{className:`status-pill user-status-pill ${t.status}`,children:Ka(t.status,i)})]}),(0,K.jsxs)(`dl`,{children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:i(`users.role`)}),(0,K.jsx)(`dd`,{children:d?P.get(t.role)?.name||i(`app.noRole`):i(`users.roleDetailsUnavailable`)})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:i(`users.verification`)}),(0,K.jsx)(`dd`,{children:t.email_verified_at?i(`users.verified`):i(`users.unverified`)})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:i(`users.lastAccess`)}),(0,K.jsx)(`dd`,{children:t.last_access?new Date(t.last_access).toLocaleString(ie):i(`users.never`)})]})]}),(0,K.jsx)(`button`,{className:`secondary-button`,type:`button`,onClick:()=>n?.(J.user(t.id)),children:i(`users.openUser`)})]},t.id))}),_?(0,K.jsx)(`div`,{className:`table-footer`,children:i(`users.loading`)}):o.length===0?(0,K.jsx)(`div`,{className:`table-footer`,children:i(`users.noneFound`)}):(0,K.jsx)(Yn,{page:I.page,pageSize:ee,totalItems:F.length,pageSizeOptions:Wa,itemLabel:i(`users.users`),onPageChange:k,onPageSizeChange:e=>{A(e),k(1)}})]})]})}var Ja=[{id:`data-model`,labelKey:`nav.dataModel`,icon:`model`},{id:`users`,labelKey:`nav.users`,icon:`users`},{id:`roles`,labelKey:`nav.roles`,icon:`roles`},{id:`mcp`,labelKey:`nav.mcp`,icon:`mcp`,adminOnly:!0},{id:`appearance`,labelKey:`nav.appearance`,icon:`appearance`}];function Ya(){let e=new URLSearchParams(window.location.search),t=e.get(`auth_action`),n=e.get(`token`);return!n||![`reset`,`verify`].includes(t)?null:{action:t,token:n}}function Xa(){let e=new URL(window.location.href);e.searchParams.delete(`auth_action`),e.searchParams.delete(`token`),window.history.replaceState(null,``,`${e.pathname}${e.search}${e.hash}`)}function Za({id:e,label:t,icon:n,open:r,collapsed:i,onToggle:a,children:o}){return(0,K.jsxs)(`div`,{className:`nav-group ${r?`open`:``}`,children:[(0,K.jsxs)(`button`,{className:`nav-group-trigger`,type:`button`,"aria-expanded":r&&!i,"aria-controls":`sidebar-group-${e}`,title:i?t:void 0,onClick:a,children:[(0,K.jsxs)(`span`,{className:`nav-group-title`,children:[(0,K.jsx)(wn,{name:n}),(0,K.jsx)(`span`,{className:`nav-label-text`,children:t})]}),(0,K.jsx)(`span`,{className:`nav-chevron`,children:(0,K.jsx)(wn,{name:`chevron`,size:14})})]}),(0,K.jsx)(`div`,{id:`sidebar-group-${e}`,className:`nav-group-children`,hidden:!r||i,children:o})]})}function Qa({entry:e,active:t,onClick:n}){return(0,K.jsxs)(`button`,{className:`nav-item collection-nav-item ${t?`active`:``}`,type:`button`,title:e.collection,onClick:n,children:[(0,K.jsx)(ir,{name:U(e).icon,size:16}),(0,K.jsx)(`span`,{className:`nav-item-label`,children:hn(e,`collection`)})]})}function $a({group:e,open:t,activeCollection:n,onToggle:r}){return(0,K.jsxs)(`div`,{className:`content-focus-group`,children:[(0,K.jsxs)(`button`,{className:`content-focus-group-trigger`,type:`button`,"aria-expanded":t,onClick:r,children:[(0,K.jsx)(`span`,{className:`content-focus-group-chevron ${t?`open`:``}`,children:(0,K.jsx)(wn,{name:`chevron`,size:12})}),(0,K.jsx)(ir,{name:`folder`,size:15}),(0,K.jsx)(`strong`,{children:e.name})]}),t&&e.collections.map(e=>(0,K.jsx)(Qa,{entry:e,active:n===e.collection,onClick:()=>xn(J.content(e.collection))},e.collection))]})}function eo(){let{t:e}=q(),[t,n]=(0,l.useState)(()=>_()),[r,i]=(0,l.useState)(()=>Ya()),[a,o]=(0,l.useState)(()=>bn()),[s,c]=(0,l.useState)([]),[u,f]=(0,l.useState)([]),[p,m]=(0,l.useState)({}),[h,g]=(0,l.useState)(`checking`),[v,y]=(0,l.useState)(!1),[x,S]=(0,l.useState)(!1),[C,w]=(0,l.useState)(!1),[T,E]=(0,l.useState)(()=>window.matchMedia(`(max-width: 900px)`).matches),[O,k]=(0,l.useState)({settings:!0}),[ee,A]=(0,l.useState)(()=>bn().section===`content`);(0,l.useEffect)(()=>b(()=>n(_())),[]),(0,l.useEffect)(()=>{let e=()=>{let e=bn();o(e),A(e.section===`content`),w(!1)},t=()=>A(!0);return window.addEventListener(`hashchange`,e),window.addEventListener(`popstate`,e),window.addEventListener(_n,t),()=>{window.removeEventListener(`hashchange`,e),window.removeEventListener(`popstate`,e),window.removeEventListener(_n,t)}},[]),(0,l.useEffect)(()=>{let e=window.matchMedia(`(max-width: 900px)`),t=()=>E(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,l.useLayoutEffect)(()=>{let e=()=>window.scrollTo({top:0,left:0,behavior:`instant`});e();let t=window.requestAnimationFrame(e),n=window.setTimeout(e,50);return()=>{window.cancelAnimationFrame(t),window.clearTimeout(n)}},[a.action,a.collection,a.field,a.fileId,a.recordId,a.roleId,a.section,a.userId,a.view]),(0,l.useEffect)(()=>{ie().then(()=>g(`online`)).catch(()=>g(`offline`))},[]);async function j(){try{let[e,t]=await Promise.all([D(`/schema/collections`),ne()]),n=ce(e?.data??[]);c(n),f(t),a.section===`content`&&!n.some(e=>e.collection===a.collection)&&xn(J.content(n[0]?.collection||``),{replace:!0})}catch{c([]),f([])}}(0,l.useEffect)(()=>{if(!t)return;let e=!1;return Promise.all([D(`/schema/collections`),ne()]).then(([t,n])=>{if(e)return;let r=ce(t?.data??[]);c(r),f(n),a.section===`content`&&!r.some(e=>e.collection===a.collection)&&xn(J.content(r[0]?.collection||``),{replace:!0})}).catch(()=>{e||(c([]),f([]))}),()=>{e=!0}},[t?.user?.id,a.section]);let M=a.section,N=!T&&x,P=a.collection||``,F=s.find(e=>e.collection===P)??null,I=(0,l.useMemo)(()=>li(s,u,{includeHidden:!1}),[s,u]);(0,l.useEffect)(()=>{m(Object.fromEntries(u.map(e=>[e.id,e.collapse!==`closed`])))},[u]);let te=F?hn(F,`collection`):P,L=(0,l.useMemo)(()=>M===`data-model`?(0,K.jsx)(ta,{route:a,onNavigate:xn,onCollectionsChanged:j}):M===`users`?(0,K.jsx)(qa,{route:a,onNavigate:xn,currentUserId:t?.user?.id}):M===`roles`?(0,K.jsx)(Ha,{route:a,onNavigate:xn}):M===`files`?(0,K.jsx)(ma,{route:a,onNavigate:xn}):M===`ai`?(0,K.jsx)(xi,{}):M===`mcp`?t?.user?.admin?(0,K.jsx)(Sa,{}):(0,K.jsx)(`div`,{className:`error-banner`,role:`alert`,children:e(`mcp.adminOnly`)}):M===`appearance`?(0,K.jsx)(Si,{}):(0,K.jsx)(Hi,{collection:P,collectionLabel:te,collectionMeta:F,route:a,onNavigate:xn,onOpenDataModel:()=>xn(J.dataModel())}),[F,P,te,a,M,t?.user?.admin,t?.user?.id,e]);async function R(){y(!0);try{await re()}finally{y(!1)}}function z(e){if(x){S(!1),k(t=>({...t,[e]:!0}));return}k(t=>({...t,[e]:!t[e]}))}function B(e,t=null){let n={"data-model":J.dataModel(),users:J.users(),roles:J.roles(),files:J.files(),ai:J.ai(),mcp:J.mcp(),appearance:J.appearance(),content:J.content(P||s[0]?.collection||``)};e===`content`&&A(!0),xn(n[e]||J.content(P)),t&&k(e=>({...e,[t]:!0}))}if(r)return(0,K.jsx)(Ci,{action:r.action,token:r.token,onDone:()=>{Xa(),i(null)}});if(!t)return(0,K.jsx)(_a,{onAuthenticated:n});let V=e(h===`online`?`app.apiOnline`:h===`offline`?`app.apiUnavailable`:`app.apiChecking`);return(0,K.jsxs)(`div`,{className:`studio-shell ${N?`sidebar-collapsed`:``}`,children:[(0,K.jsxs)(`aside`,{className:`sidebar ${C?`mobile-nav-open`:``}`,children:[(0,K.jsxs)(`div`,{className:`sidebar-brand-row`,children:[(0,K.jsx)(Dn,{compact:N}),(0,K.jsxs)(`button`,{className:`sidebar-collapse-button`,type:`button`,"aria-label":e(T?C?`nav.closeMenu`:`nav.openMenu`:x?`nav.expandSidebar`:`nav.collapseSidebar`),"aria-pressed":T?void 0:x,"aria-expanded":T?C:void 0,"aria-controls":`studio-sidebar-navigation`,title:e(T?C?`nav.closeMenu`:`nav.openMenu`:x?`nav.expandSidebar`:`nav.collapseSidebar`),onClick:()=>{if(T){w(e=>!e);return}S(e=>!e)},children:[(0,K.jsx)(wn,{name:T?C?`close`:`menu`:`collapse`}),(0,K.jsx)(`span`,{className:`mobile-menu-label`,children:e(C?`nav.closeMenu`:`nav.openMenu`)})]})]}),(0,K.jsx)(`nav`,{id:`studio-sidebar-navigation`,"aria-label":e(`nav.studioSections`),className:`sidebar-nav`,children:ee?(0,K.jsxs)(`div`,{className:`content-focus-nav`,children:[(0,K.jsxs)(`button`,{className:`nav-item content-focus-back`,type:`button`,onClick:()=>A(!1),children:[(0,K.jsx)(`span`,{"aria-hidden":`true`,children:`←`}),(0,K.jsx)(`span`,{className:`nav-item-label`,children:e(`navigation.backToMain`)})]}),I.nodes.map(e=>e.type===`group`?(0,K.jsx)($a,{group:e.group,open:e.group.collapse===`locked`||!!p[e.id],activeCollection:M===`content`?P:``,onToggle:()=>{e.group.collapse!==`locked`&&m(t=>({...t,[e.id]:!t[e.id]}))}},`group:${e.id}`):(0,K.jsx)(Qa,{entry:e.entry,active:M===`content`&&P===e.entry.collection,onClick:()=>xn(J.content(e.entry.collection))},`collection:${e.id}`)),s.length===0&&(0,K.jsx)(`div`,{className:`muted-line`,children:e(`navigation.contentEmpty`)})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`button`,{className:`nav-item nav-item-root ${M===`content`?`active`:``}`,type:`button`,title:N?e(`nav.content`):void 0,onClick:()=>B(`content`),children:[(0,K.jsx)(wn,{name:`content`}),(0,K.jsx)(`span`,{className:`nav-item-label`,children:e(`nav.content`)})]}),(0,K.jsxs)(`button`,{className:`nav-item nav-item-root ${M===`ai`?`active`:``}`,type:`button`,title:N?e(`nav.ai`):void 0,onClick:()=>B(`ai`),children:[(0,K.jsx)(wn,{name:`ai`}),(0,K.jsx)(`span`,{className:`nav-item-label`,children:e(`nav.ai`)})]}),(0,K.jsxs)(`button`,{className:`nav-item nav-item-root ${M===`files`?`active`:``}`,type:`button`,title:N?e(`nav.files`):void 0,onClick:()=>B(`files`),children:[(0,K.jsx)(wn,{name:`files`}),(0,K.jsx)(`span`,{className:`nav-item-label`,children:e(`nav.files`)})]}),(0,K.jsx)(Za,{id:`settings`,label:e(`nav.settings`),icon:`appearance`,open:O.settings,collapsed:N,onToggle:()=>z(`settings`),children:Ja.filter(e=>!e.adminOnly||t.user?.admin).map(t=>(0,K.jsxs)(`button`,{className:`nav-item nav-item-child ${M===t.id?`active`:``}`,type:`button`,onClick:()=>B(t.id,`settings`),children:[(0,K.jsx)(wn,{name:t.icon,size:16}),(0,K.jsx)(`span`,{className:`nav-item-label`,children:e(t.labelKey)})]},t.id))})]})}),(0,K.jsxs)(`div`,{className:`sidebar-footer`,children:[(0,K.jsxs)(`div`,{className:`sidebar-health ${h}`,role:`status`,title:V,children:[(0,K.jsx)(`span`,{className:`status-dot`,"aria-hidden":`true`}),(0,K.jsx)(`span`,{className:`sidebar-footer-text`,children:V})]}),(0,K.jsx)(`small`,{className:`sidebar-api-address`,children:d}),(0,K.jsxs)(`div`,{className:`sidebar-account`,children:[(0,K.jsx)(`strong`,{children:t.user?.email||e(`app.authenticatedUser`)}),(0,K.jsx)(`small`,{children:t.user?.role_name||e(`app.noRole`)}),(0,K.jsx)(`button`,{className:`text-button sidebar-signout`,type:`button`,disabled:v,onClick:R,children:e(v?`app.signingOut`:`app.signOut`)})]}),(0,K.jsxs)(`div`,{className:`sidebar-branding-footer`,children:[(0,K.jsx)(An,{compact:!0}),(0,K.jsx)(kn,{compact:N})]})]})]}),(0,K.jsx)(`main`,{className:`main-content section-${M} route-${a.view||`list`}`,children:L})]})}`scrollRestoration`in window.history&&(window.history.scrollRestoration=`manual`),window.scrollTo({top:0,left:0,behavior:`instant`}),(0,u.createRoot)(document.getElementById(`root`)).render((0,K.jsx)(l.StrictMode,{children:(0,K.jsx)(Ne,{children:(0,K.jsx)(In,{children:(0,K.jsx)(cr,{children:(0,K.jsx)(eo,{})})})})}));
|