@steedos-widgets/liveblocks 6.10.22 → 6.10.24

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.
@@ -1,7 +1,7 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom"),require("lodash")):"function"==typeof define&&define.amd?define(["exports","react","react-dom","lodash"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).BuilderLiveblocks={},e.React,e.ReactDOM,e._)}(this,function(exports,React,ReactDOM,_$1){const global=window;function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var React__default=_interopDefaultLegacy(React),React__namespace=_interopNamespace(React),ReactDOM__namespace=_interopNamespace(ReactDOM),ReactDOM__default=_interopDefaultLegacy(ReactDOM),_$1__namespace=_interopNamespace(_$1),_$1__default=_interopDefaultLegacy(_$1),__defProp=Object.defineProperty,__export=(e,t)=>{for(var n in t)__defProp(e,n,{get:t[n],enumerable:!0})},PKG_NAME$2="@liveblocks/core",PKG_VERSION$2="2.15.1",PKG_FORMAT$2="esm",g="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==global?global:{},crossLinkedDocs="https://liveblocks.io/docs/errors/cross-linked",dupesDocs="https://liveblocks.io/docs/errors/dupes",SPACE$1=" ";function error(e){console.error(e)}function detectDupes(e,t,n){const o=Symbol.for(e),r=n?`${t||"dev"} (${n})`:t||"dev";if(g[o])if(g[o]===r);else{error([`Multiple copies of Liveblocks are being loaded in your project. This will cause issues! See ${dupesDocs+SPACE$1}`,"","Conflicts:",`- ${e} ${g[o]} (already loaded)`,`- ${e} ${r} (trying to load this now)`].join("\n"))}else g[o]=r;t&&PKG_VERSION$2&&t!==PKG_VERSION$2&&error([`Cross-linked versions of Liveblocks found, which will cause issues! See ${crossLinkedDocs+SPACE$1}`,"","Conflicts:",`- ${PKG_NAME$2} is at ${PKG_VERSION$2}`,`- ${e} is at ${t}`,"","Always upgrade all Liveblocks packages to the same version number."].join("\n"))}function convertToCommentData(e){const t=e.editedAt?new Date(e.editedAt):void 0,n=new Date(e.createdAt),o=e.reactions.map(e=>({...e,createdAt:new Date(e.createdAt)}));if(e.body)return{...e,reactions:o,createdAt:n,editedAt:t};{const r=new Date(e.deletedAt);return{...e,reactions:o,createdAt:n,editedAt:t,deletedAt:r}}}function convertToThreadData(e){const t=new Date(e.createdAt),n=new Date(e.updatedAt),o=e.comments.map(e=>convertToCommentData(e));return{...e,createdAt:t,updatedAt:n,comments:o}}function convertToCommentUserReaction(e){return{...e,createdAt:new Date(e.createdAt)}}function convertToInboxNotificationData(e){const t=new Date(e.notifiedAt),n=e.readAt?new Date(e.readAt):null;if("activities"in e){const o=e.activities.map(e=>({...e,createdAt:new Date(e.createdAt)}));return{...e,notifiedAt:t,readAt:n,activities:o}}return{...e,notifiedAt:t,readAt:n}}function convertToThreadDeleteInfo(e){const t=new Date(e.deletedAt);return{...e,deletedAt:t}}function convertToInboxNotificationDeleteInfo(e){const t=new Date(e.deletedAt);return{...e,deletedAt:t}}var fancy_console_exports={};__export(fancy_console_exports,{error:()=>error2,errorWithTitle:()=>errorWithTitle,warn:()=>warn$1,warnWithTitle:()=>warnWithTitle});var badge="background:#0e0d12;border-radius:9999px;color:#fff;padding:3px 7px;font-family:sans-serif;font-weight:600;",bold="font-weight:600";function wrap$1(e){return"undefined"==typeof window?console[e]:(t,...n)=>console[e]("%cLiveblocks",badge,t,...n)}var warn$1=wrap$1("warn"),error2=wrap$1("error");function wrapWithTitle(e){return"undefined"==typeof window?console[e]:(t,n,...o)=>console[e](`%cLiveblocks%c ${t}`,badge,bold,n,...o)}var warnWithTitle=wrapWithTitle("warn"),errorWithTitle=wrapWithTitle("error");function raise(e){throw new Error(e)}function isPlainObject$2(e){return null!==e&&"object"==typeof e&&"[object Object]"===Object.prototype.toString.call(e)}function entries(e){return Object.entries(e)}function tryParseJson(e){try{return JSON.parse(e)}catch(e){return}}function deepClone(e){return JSON.parse(JSON.stringify(e))}function b64decode(e){try{const t=e.replace(/-/g,"+").replace(/_/g,"/");return decodeURIComponent(atob(t).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join(""))}catch(t){return atob(e)}}function compact(e){return e.filter(e=>null!=e)}function compactObject(e){const t={...e};return Object.keys(e).forEach(e=>{const n=e;void 0===t[n]&&delete t[n]}),t}function wait$1(e){return new Promise(t=>setTimeout(t,e))}async function withTimeout(e,t,n){let o;const r=new Promise((e,r)=>{o=setTimeout(()=>{r(new Error(n))},t)});return Promise.race([e,r]).finally(()=>clearTimeout(o))}function memoizeOnSuccess(e){let t=null;return()=>(null===t&&(t=e().catch(e=>{throw setTimeout(()=>{t=null},5e3),e})),t)}var HttpError=class extends Error{constructor(e,t,n){super(e),this.message=e,this.status=t,this.details=n}},DONT_RETRY_4XX=e=>e instanceof HttpError&&e.status>=400&&e.status<500;async function autoRetry(e,t,n,o=DONT_RETRY_4XX){const r=n.length>0?n[n.length-1]:0;let a=0;for(;;){a++;try{return await e()}catch(e){if(o(e))throw e;if(a>=t)throw new Error(`Failed after ${t} attempts: ${String(e)}`)}const i=n[a-1]??r;warn$1(`Attempt ${a} was unsuccessful. Retrying in ${i} milliseconds.`),await wait$1(i)}}function controlledPromise(){let e,t;return[new Promise((n,o)=>{e=n,t=o}),e,t]}function Promise_withResolvers(){const[e,t,n]=controlledPromise();return{promise:e,resolve:t,reject:n}}function makeEventSource(){const e=new Set;function t(t){return e.add(t),()=>e.delete(t)}function n(e){const n=t(t=>(n(),e(t)));return n}async function o(e){let n;return new Promise(o=>{n=t(t=>{(void 0===e||e(t))&&o(t)})}).finally(()=>n?.())}return{notify:function(t){e.forEach(e=>e(t))},subscribe:t,subscribeOnce:n,count:function(){return e.size},waitUntil:o,[Symbol.dispose]:()=>{e.clear()},observable:{subscribe:t,subscribeOnce:n,waitUntil:o}}}function makeBufferableEventSource(){const e=makeEventSource();let t=null;return{...e,notify:function(n){null!==t?t.push(n):e.notify(n)},pause:function(){t=[]},unpause:function(){if(null!==t){for(const n of t)e.notify(n);t=null}},[Symbol.dispose]:()=>{e[Symbol.dispose](),null!==t&&(t.length=0)}}}function stringify(e,...t){if("object"!=typeof e||null===e||Array.isArray(e))return JSON.stringify(e,...t);const n=Object.keys(e).sort().reduce((t,n)=>(t[n]=e[n],t),{});return JSON.stringify(n,...t)}var DEFAULT_SIZE=50,BatchCall=class{input;resolve;reject;promise;constructor(e){this.input=e;const{promise:t,resolve:n,reject:o}=Promise_withResolvers();this.promise=t,this.resolve=n,this.reject=o}},Batch=class{#e=[];#t;#n;#o;#r;error=!1;constructor(e,t){this.#t=e,this.#n=t.size??DEFAULT_SIZE,this.#o=t.delay}#a(){void 0!==this.#r&&(clearTimeout(this.#r),this.#r=void 0)}#i(){this.#e.length===this.#n?this.#s():1===this.#e.length&&(this.#a(),this.#r=setTimeout(()=>{this.#s()},this.#o))}async#s(){if(0===this.#e.length)return;const e=this.#e.splice(0),t=e.map(e=>e.input);try{const n=await this.#t(t);this.error=!1,e.forEach((t,o)=>{const r=n?.[o];Array.isArray(n)?e.length!==n.length?t.reject(new Error(`Callback must return an array of the same length as the number of provided items. Expected ${e.length}, but got ${n.length}.`)):r instanceof Error?t.reject(r):t.resolve(r):t.reject(new Error("Callback must return an array."))})}catch(t){this.error=!0,e.forEach(e=>{e.reject(t)})}}get(e){const t=this.#e.find(t=>stringify(t.input)===stringify(e));if(t)return t.promise;const n=new BatchCall(e);return this.#e.push(n),this.#i(),n.promise}clear(){this.#e=[],this.error=!1,this.#a()}};function createBatchStore(e){const t=new Map,n=makeEventSource();function o(e){return stringify(e)}function r(e,o){t.set(e,o),n.notify()}return{...n.observable,get:async function(n){const a=o(n);if(!t.has(a))try{r(a,{isLoading:!0});r(a,{isLoading:!1,data:await e.get(n)})}catch(e){r(a,{isLoading:!1,error:e})}},getState:function(e){const n=o(e);return t.get(n)},invalidate:function(e){if(Array.isArray(e))for(const n of e)t.delete(o(n));else t.clear();n.notify()},getBatch:function(){return e},_cacheKeys:function(){return[...t.keys()]}}}function chunk(e,t){const n=[];for(let o=0,r=e.length;o<r;o+=t)n.push(e.slice(o,o+t));return n}var nanoid=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((e,t)=>e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t<63?"_":"-"),""),THREAD_ID_PREFIX="th",COMMENT_ID_PREFIX="cm",COMMENT_ATTACHMENT_ID_PREFIX="at";function createOptimisticId(e){return`${e}_${nanoid()}`}function createThreadId(){return createOptimisticId(THREAD_ID_PREFIX)}function createCommentId(){return createOptimisticId(COMMENT_ID_PREFIX)}function createCommentAttachmentId(){return createOptimisticId(COMMENT_ATTACHMENT_ID_PREFIX)}var identifierRegex=/^[a-zA-Z_][a-zA-Z0-9_]*$/;function objectToQuery(e){let t=[];const n=Object.entries(e),o=[],r=[],a=[];return n.forEach(([e,t])=>{if(!identifierRegex.test(e))throw new Error("Key must only contain letters, numbers, _");isSimpleValue(t)?o.push([e,t]):isValueWithOperator(t)?r.push([e,t]):"object"!=typeof t||"startsWith"in t||a.push([e,t])}),t=[...getFiltersFromKeyValuePairs(o),...getFiltersFromKeyValuePairsWithOperator(r)],a.forEach(([e,n])=>{const o=Object.entries(n),r=[],a=[];o.forEach(([t,n])=>{if(isStringEmpty(t))throw new Error("Key cannot be empty");isSimpleValue(n)?r.push([formatFilterKey(e,t),n]):isValueWithOperator(n)&&a.push([formatFilterKey(e,t),n])}),t=[...t,...getFiltersFromKeyValuePairs(r),...getFiltersFromKeyValuePairsWithOperator(a)]}),t.map(({key:e,operator:t,value:n})=>formatFilter(e,t,formatFilterValue(n))).join(" AND ")}var getFiltersFromKeyValuePairs=e=>{const t=[];return e.forEach(([e,n])=>{t.push({key:e,operator:":",value:n})}),t},getFiltersFromKeyValuePairsWithOperator=e=>{const t=[];return e.forEach(([e,n])=>{"startsWith"in n&&"string"==typeof n.startsWith&&t.push({key:e,operator:"^",value:n.startsWith})}),t},isSimpleValue=e=>"string"==typeof e||"number"==typeof e||"boolean"==typeof e,isValueWithOperator=e=>"object"==typeof e&&null!==e&&"startsWith"in e,formatFilter=(e,t,n)=>`${e}${t}${n}`,formatFilterKey=(e,t)=>t?`${e}[${JSON.stringify(t)}]`:e,formatFilterValue=e=>{if("string"==typeof e){if(isStringEmpty(e))throw new Error("Value cannot be empty");return JSON.stringify(e)}return e.toString()},isStringEmpty=e=>!e||""===e.toString().trim();function toURLSearchParams(e){const t=new URLSearchParams;for(const[n,o]of Object.entries(e))null!=o&&t.set(n,o.toString());return t}function urljoin(e,t,n){const o=new URL(t,e);return void 0!==n&&(o.search=(n instanceof URLSearchParams?n:toURLSearchParams(n)).toString()),o.toString()}function url(e,...t){return e.reduce((e,n,o)=>e+encodeURIComponent(t[o-1]??"")+n)}function createApiClient({baseUrl:e,authManager:t,fetchPolyfill:n}){const o=new HttpClient(e,n);const r=new Map;function a(e){let n=r.get(e);if(void 0===n){n=createBatchStore(new Batch(async n=>{const r=n.flat(),{urls:a}=await o.post(url`/v2/c/rooms/${e}/attachments/presigned-urls`,await t.getAuthValue({requestedScope:"comments:read",roomId:e}),{attachmentIds:r});return a.map(e=>e??new Error("There was an error while getting this attachment's URL"))},{delay:50})),r.set(e,n)}return n}const i=new Map;const s=new Batch(async e=>{const n=e.flat();return await async function(e){await o.post(url`/v2/c/inbox-notifications/read`,await t.getAuthValue({requestedScope:"comments:read"}),{inboxNotificationIds:e})}(n),n},{delay:50});return{getThreads:async function(e){let n;e.query&&(n=objectToQuery(e.query));try{const r=await o.get(url`/v2/c/rooms/${e.roomId}/threads`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{cursor:e.cursor,query:n,limit:50});return{threads:r.data.map(convertToThreadData),inboxNotifications:r.inboxNotifications.map(convertToInboxNotificationData),nextCursor:r.meta.nextCursor,requestedAt:new Date(r.meta.requestedAt),permissionHints:r.meta.permissionHints}}catch(e){if(e instanceof HttpError&&404===e.status)return{threads:[],inboxNotifications:[],nextCursor:null,requestedAt:new Date(Date.now()-216e5),permissionHints:{}};throw e}},getThreadsSince:async function(e){const n=await o.get(url`/v2/c/rooms/${e.roomId}/threads/delta`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{since:e.since.toISOString()},{signal:e.signal});return{threads:{updated:n.data.map(convertToThreadData),deleted:n.deletedThreads.map(convertToThreadDeleteInfo)},inboxNotifications:{updated:n.inboxNotifications.map(convertToInboxNotificationData),deleted:n.deletedInboxNotifications.map(convertToInboxNotificationDeleteInfo)},requestedAt:new Date(n.meta.requestedAt),permissionHints:n.meta.permissionHints}},createThread:async function(e){const n=e.commentId??createCommentId(),r=e.threadId??createThreadId();return convertToThreadData(await o.post(url`/v2/c/rooms/${e.roomId}/threads`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{id:r,comment:{id:n,body:e.body,attachmentIds:e.attachmentIds},metadata:e.metadata}))},getThread:async function(e){const n=await o.rawGet(url`/v2/c/rooms/${e.roomId}/thread-with-notification/${e.threadId}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}));if(n.ok){const e=await n.json();return{thread:convertToThreadData(e.thread),inboxNotification:e.inboxNotification?convertToInboxNotificationData(e.inboxNotification):void 0}}if(404===n.status)return{thread:void 0,inboxNotification:void 0};throw new Error(`There was an error while getting thread ${e.threadId}.`)},deleteThread:async function(e){await o.delete(url`/v2/c/rooms/${e.roomId}/threads/${e.threadId}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},editThreadMetadata:async function(e){return await o.post(url`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/metadata`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),e.metadata)},createComment:async function(e){const n=e.commentId??createCommentId();return convertToCommentData(await o.post(url`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/comments`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{id:n,body:e.body,attachmentIds:e.attachmentIds}))},editComment:async function(e){return convertToCommentData(await o.post(url`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/comments/${e.commentId}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{body:e.body,attachmentIds:e.attachmentIds}))},deleteComment:async function(e){await o.delete(url`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/comments/${e.commentId}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},addReaction:async function(e){return convertToCommentUserReaction(await o.post(url`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/comments/${e.commentId}/reactions`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{emoji:e.emoji}))},removeReaction:async function(e){await o.delete(url`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/comments/${e.commentId}/reactions/${e.emoji}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},markThreadAsResolved:async function(e){await o.post(url`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/mark-as-resolved`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},markThreadAsUnresolved:async function(e){await o.post(url`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/mark-as-unresolved`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},markRoomInboxNotificationAsRead:async function(e){return function(e){let n=i.get(e);return void 0===n&&(n=new Batch(async n=>{const r=n.flat();return await o.post(url`/v2/c/rooms/${e}/inbox-notifications/read`,await t.getAuthValue({requestedScope:"comments:read",roomId:e}),{inboxNotificationIds:r}),r},{delay:50}),i.set(e,n)),n}(e.roomId).get(e.inboxNotificationId)},updateNotificationSettings:async function(e){return o.post(url`/v2/c/rooms/${e.roomId}/notification-settings`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),e.settings)},getNotificationSettings:async function(e){return o.get(url`/v2/c/rooms/${e.roomId}/notification-settings`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),void 0,{signal:e.signal})},createTextMention:async function(e){await o.rawPost(url`/v2/c/rooms/${e.roomId}/text-mentions`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{userId:e.userId,mentionId:e.mentionId})},deleteTextMention:async function(e){await o.rawDelete(url`/v2/c/rooms/${e.roomId}/text-mentions/${e.mentionId}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},getTextVersion:async function(e){return o.rawGet(url`/v2/c/rooms/${e.roomId}/y-version/${e.versionId}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},createTextVersion:async function(e){await o.rawPost(url`/v2/c/rooms/${e.roomId}/version`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},reportTextEditor:async function(e){await o.rawPost(url`/v2/c/rooms/${e.roomId}/text-metadata`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{type:e.type,rootKey:e.rootKey})},listTextVersions:async function(e){const n=await o.get(url`/v2/c/rooms/${e.roomId}/versions`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}));return{versions:n.versions.map(({createdAt:e,...t})=>({createdAt:new Date(e),...t})),requestedAt:new Date(n.meta.requestedAt)}},listTextVersionsSince:async function(e){const n=await o.get(url`/v2/c/rooms/${e.roomId}/versions/delta`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{since:e.since.toISOString()},{signal:e.signal});return{versions:n.versions.map(({createdAt:e,...t})=>({createdAt:new Date(e),...t})),requestedAt:new Date(n.meta.requestedAt)}},getAttachmentUrl:function(e){return a(e.roomId).getBatch().get(e.attachmentId)},uploadAttachment:async function(e){const n=e.roomId,r=e.signal,a=e.attachment,i=r?new DOMException(`Upload of attachment ${e.attachment.id} was aborted.`,"AbortError"):void 0;if(r?.aborted)throw i;const s=e=>{if(r?.aborted)throw i;if(e instanceof HttpError&&413===e.status)throw e;return!1},l=524288e3,c=[2e3,2e3,2e3,2e3,2e3,2e3,2e3,2e3,2e3,2e3];if(a.size<=l)return autoRetry(async()=>o.putBlob(url`/v2/c/rooms/${n}/attachments/${a.id}/upload/${encodeURIComponent(a.name)}`,await t.getAuthValue({requestedScope:"comments:read",roomId:n}),a.file,{fileSize:a.size},{signal:r}),10,c,s);{let e;const d=[],u=await autoRetry(async()=>o.post(url`/v2/c/rooms/${n}/attachments/${a.id}/multipart/${encodeURIComponent(a.name)}`,await t.getAuthValue({requestedScope:"comments:read",roomId:n}),void 0,{signal:r},{fileSize:a.size}),10,c,s);try{e=u.uploadId;const f=function(e){const t=[];let n=0;for(;n<e.size;){const o=Math.min(n+l,e.size);t.push({partNumber:t.length+1,part:e.slice(n,o)}),n=o}return t}(a.file);if(r?.aborted)throw i;const p=chunk(f,5);for(const e of p){const i=[];for(const{part:l,partNumber:d}of e)i.push(autoRetry(async()=>o.putBlob(url`/v2/c/rooms/${n}/attachments/${a.id}/multipart/${u.uploadId}/${String(d)}`,await t.getAuthValue({requestedScope:"comments:read",roomId:n}),l,void 0,{signal:r}),10,c,s));d.push(...await Promise.all(i))}if(r?.aborted)throw i;const _=d.sort((e,t)=>e.partNumber-t.partNumber);return o.post(url`/v2/c/rooms/${n}/attachments/${a.id}/multipart/${e}/complete`,await t.getAuthValue({requestedScope:"comments:read",roomId:n}),{parts:_},{signal:r})}catch(r){if(e&&r?.name&&("AbortError"===r.name||"TimeoutError"===r.name))try{await o.rawDelete(url`/v2/c/rooms/${n}/attachments/${a.id}/multipart/${e}`,await t.getAuthValue({requestedScope:"comments:read",roomId:n}))}catch(e){}throw r}}},getOrCreateAttachmentUrlsStore:a,streamStorage:async function(e){const n=await o.rawGet(url`/v2/c/rooms/${e.roomId}/storage`,await t.getAuthValue({requestedScope:"room:read",roomId:e.roomId}));return await n.json()},sendMessages:async function(e){return o.rawPost(url`/v2/c/rooms/${e.roomId}/send-message`,await t.getAuthValue({requestedScope:"room:read",roomId:e.roomId}),{nonce:e.nonce,messages:e.messages})},getInboxNotifications:async function(e){const n=await o.get(url`/v2/c/inbox-notifications`,await t.getAuthValue({requestedScope:"comments:read"}),{cursor:e?.cursor,limit:50});return{inboxNotifications:n.inboxNotifications.map(convertToInboxNotificationData),threads:n.threads.map(convertToThreadData),nextCursor:n.meta.nextCursor,requestedAt:new Date(n.meta.requestedAt)}},getInboxNotificationsSince:async function(e){const n=await o.get(url`/v2/c/inbox-notifications/delta`,await t.getAuthValue({requestedScope:"comments:read"}),{since:e.since.toISOString()},{signal:e.signal});return{inboxNotifications:{updated:n.inboxNotifications.map(convertToInboxNotificationData),deleted:n.deletedInboxNotifications.map(convertToInboxNotificationDeleteInfo)},threads:{updated:n.threads.map(convertToThreadData),deleted:n.deletedThreads.map(convertToThreadDeleteInfo)},requestedAt:new Date(n.meta.requestedAt)}},getUnreadInboxNotificationsCount:async function(){const{count:e}=await o.get(url`/v2/c/inbox-notifications/count`,await t.getAuthValue({requestedScope:"comments:read"}));return e},markAllInboxNotificationsAsRead:async function(){await o.post(url`/v2/c/inbox-notifications/read`,await t.getAuthValue({requestedScope:"comments:read"}),{inboxNotificationIds:"all"})},markInboxNotificationAsRead:async function(e){await s.get(e)},deleteAllInboxNotifications:async function(){await o.delete(url`/v2/c/inbox-notifications`,await t.getAuthValue({requestedScope:"comments:read"}))},deleteInboxNotification:async function(e){await o.delete(url`/v2/c/inbox-notifications/${e}`,await t.getAuthValue({requestedScope:"comments:read"}))},getUserThreads_experimental:async function(e){let n;e?.query&&(n=objectToQuery(e.query));const r=await o.get(url`/v2/c/threads`,await t.getAuthValue({requestedScope:"comments:read"}),{cursor:e?.cursor,query:n,limit:50});return{threads:r.threads.map(convertToThreadData),inboxNotifications:r.inboxNotifications.map(convertToInboxNotificationData),nextCursor:r.meta.nextCursor,requestedAt:new Date(r.meta.requestedAt),permissionHints:r.meta.permissionHints}},getUserThreadsSince_experimental:async function(e){const n=await o.get(url`/v2/c/threads/delta`,await t.getAuthValue({requestedScope:"comments:read"}),{since:e.since.toISOString()},{signal:e.signal});return{threads:{updated:n.threads.map(convertToThreadData),deleted:n.deletedThreads.map(convertToThreadDeleteInfo)},inboxNotifications:{updated:n.inboxNotifications.map(convertToInboxNotificationData),deleted:n.deletedInboxNotifications.map(convertToInboxNotificationDeleteInfo)},requestedAt:new Date(n.meta.requestedAt),permissionHints:n.meta.permissionHints}}}}function getBearerTokenFromAuthValue(e){return"public"===e.type?e.publicApiKey:e.token.raw}var HttpClient=class{#l;#c;constructor(e,t){this.#l=e,this.#c=t}async#d(e,t,n,o){e.startsWith("/v2/c/")||raise("This client can only be used to make /v2/c/* requests");const r=urljoin(this.#l,e,o);return await this.#c(r,{...n,headers:{"Content-Type":"application/json; charset=utf-8",...n?.headers,Authorization:`Bearer ${getBearerTokenFromAuthValue(t)}`,"X-LB-Client":PKG_VERSION$2}})}async#u(e,t,n,o){const r=await this.#d(e,t,n,o);if(!r.ok){let e;try{const t=await r.json();e=new HttpError(t.message,r.status,t)}catch{e=new HttpError(r.statusText,r.status)}throw e}let a;try{a=await r.json()}catch{a={}}return a}async rawGet(e,t,n,o){return await this.#d(e,t,o,n)}async rawPost(e,t,n){return await this.#d(e,t,{method:"POST",body:JSON.stringify(n)})}async rawDelete(e,t){return await this.#d(e,t,{method:"DELETE"})}async get(e,t,n,o){return await this.#u(e,t,o,n)}async post(e,t,n,o,r){return await this.#u(e,t,{...o,method:"POST",body:JSON.stringify(n)},r)}async delete(e,t){return await this.#u(e,t,{method:"DELETE"})}async putBlob(e,t,n,o,r){return await this.#u(e,t,{...r,method:"PUT",headers:{"Content-Type":"application/octet-stream"},body:n},o)}};function assertNever(e,t){throw new Error(t)}function assert(e,t){}function nn(e,t="Expected value to be non-nullable"){return e}function distance(e,t){if(e===t)return[0,0];const n=e.split("."),o=t.split("."),r=Math.min(n.length,o.length);let a=0;for(;a<r&&n[a]===o[a];a++);return[n.length-a,o.length-a]}function patterns(e,t){const n=e.split(".");if(t<1||t>n.length+1)throw new Error("Invalid number of levels");const o=[];t>n.length&&o.push("*");for(let e=n.length-t+1;e<n.length;e++){const t=n.slice(0,e);t.length>0&&o.push(t.join(".")+".*")}return o.push(e),o}var SafeContext=class{#f;constructor(e){this.#f=e}get current(){return this.#f}allowPatching(e){const t=this;let n=!0;e({...this.#f,patch(e){if(!n)throw new Error("Can no longer patch stale context");t.#f=Object.assign({},t.#f,e);for(const t of Object.entries(e)){const[e,n]=t;"patch"!==e&&(this[e]=n)}}}),n=!1}},nextId=1,FSM=class{id;#p;#_;#m;#h;#g;#b;events;#v;#y;#E;get#w(){const e=this.#m.values()[Symbol.iterator]().next();if(e.done)throw new Error("No states defined yet");return e.value}get currentState(){if(null===this.#h)throw 0===this.#p?new Error("Not started yet"):new Error("Already stopped");return this.#h}start(){if(0!==this.#p)throw new Error("State machine has already started");return this.#p=1,this.#h=this.#w,this.#C(null),this}stop(){if(1!==this.#p)throw new Error("Cannot stop a state machine that hasn't started yet");this.#x(null),this.#p=2,this.#h=null}constructor(e){this.id=nextId++,this.#p=0,this.#h=null,this.#m=new Set,this.#y=new Map,this.#v=[],this.#E=new Set,this.#g=new Map,this.#_=new SafeContext(e),this.#b={didReceiveEvent:makeEventSource(),willTransition:makeEventSource(),didIgnoreEvent:makeEventSource(),willExitState:makeEventSource(),didEnterState:makeEventSource()},this.events={didReceiveEvent:this.#b.didReceiveEvent.observable,willTransition:this.#b.willTransition.observable,didIgnoreEvent:this.#b.didIgnoreEvent.observable,willExitState:this.#b.willExitState.observable,didEnterState:this.#b.didEnterState.observable}}get context(){return this.#_.current}addState(e){if(0!==this.#p)throw new Error("Already started");return this.#m.add(e),this}onEnter(e,t){if(0!==this.#p)throw new Error("Already started");if(this.#y.has(e))throw new Error(`enter/exit function for ${e} already exists`);return this.#y.set(e,t),this}onEnterAsync(e,t,n,o,r){return this.onEnter(e,()=>{const e=new AbortController,a=e.signal,i=r?setTimeout(()=>{const e=new Error("Timed out");this.#R({type:"ASYNC_ERROR",reason:e},o)},r):void 0;let s=!1;return t(this.#_.current,a).then(e=>{a.aborted||(s=!0,this.#R({type:"ASYNC_OK",data:e},n))},e=>{a.aborted||(s=!0,this.#R({type:"ASYNC_ERROR",reason:e},o))}),()=>{clearTimeout(i),s||e.abort()}})}#S(e){const t=[];if("*"===e)for(const e of this.#m)t.push(e);else if(e.endsWith(".*")){const n=e.slice(0,-1);for(const e of this.#m)e.startsWith(n)&&t.push(e)}else{const n=e;this.#m.has(n)&&t.push(n)}if(0===t.length)throw new Error(`No states match ${JSON.stringify(e)}`);return t}addTransitions(e,t){if(0!==this.#p)throw new Error("Already started");for(const n of this.#S(e)){let o=this.#g.get(n);void 0===o&&(o=new Map,this.#g.set(n,o));for(const[r,a]of Object.entries(t)){if(o.has(r))throw new Error(`Trying to set transition "${r}" on "${n}" (via "${e}"), but a transition already exists there.`);const t=a;if(this.#E.add(r),void 0!==t){const e="function"==typeof t?t:()=>t;o.set(r,e)}}}return this}addTimedTransition(e,t,n){return this.onEnter(e,()=>{const e="function"==typeof t?t(this.#_.current):t,o=setTimeout(()=>{this.#R({type:"TIMER"},n)},e);return()=>{clearTimeout(o)}})}#D(e){return this.#g.get(this.currentState)?.get(e)}#x(e){this.#b.willExitState.notify(this.currentState),this.#_.allowPatching(t=>{e=e??this.#v.length;for(let n=0;n<e;n++)this.#v.pop()?.(t)})}#C(e){const t=patterns(this.currentState,e??this.currentState.split(".").length+1);this.#_.allowPatching(e=>{for(const n of t){const t=this.#y.get(n),o=t?.(e);"function"==typeof o?this.#v.push(o):this.#v.push(null)}}),this.#b.didEnterState.notify(this.currentState)}send(e){if(!this.#E.has(e.type))throw new Error(`Invalid event ${JSON.stringify(e.type)}`);if(2===this.#p)return;const t=this.#D(e.type);if(void 0!==t)return this.#R(e,t);this.#b.didIgnoreEvent.notify(e)}#R(e,t){this.#b.didReceiveEvent.notify(e);const n=this.currentState,o=("function"==typeof t?t:()=>t)(e,this.#_.current);let r,a;if(null===o)return void this.#b.didIgnoreEvent.notify(e);if("string"==typeof o?r=o:(r=o.target,a=Array.isArray(o.effect)?o.effect:[o.effect]),!this.#m.has(r))throw new Error(`Invalid next state name: ${JSON.stringify(r)}`);this.#b.willTransition.notify({from:n,to:r});const[i,s]=distance(this.currentState,r);if(i>0&&this.#x(i),this.#h=r,void 0!==a){const t=a;this.#_.allowPatching(n=>{for(const o of t)"function"==typeof o?o(n,e):n.patch(o)})}s>0&&this.#C(s)}},ServerMsgCode=(e=>(e[e.UPDATE_PRESENCE=100]="UPDATE_PRESENCE",e[e.USER_JOINED=101]="USER_JOINED",e[e.USER_LEFT=102]="USER_LEFT",e[e.BROADCASTED_EVENT=103]="BROADCASTED_EVENT",e[e.ROOM_STATE=104]="ROOM_STATE",e[e.INITIAL_STORAGE_STATE=200]="INITIAL_STORAGE_STATE",e[e.UPDATE_STORAGE=201]="UPDATE_STORAGE",e[e.REJECT_STORAGE_OP=299]="REJECT_STORAGE_OP",e[e.UPDATE_YDOC=300]="UPDATE_YDOC",e[e.THREAD_CREATED=400]="THREAD_CREATED",e[e.THREAD_DELETED=407]="THREAD_DELETED",e[e.THREAD_METADATA_UPDATED=401]="THREAD_METADATA_UPDATED",e[e.THREAD_UPDATED=408]="THREAD_UPDATED",e[e.COMMENT_CREATED=402]="COMMENT_CREATED",e[e.COMMENT_EDITED=403]="COMMENT_EDITED",e[e.COMMENT_DELETED=404]="COMMENT_DELETED",e[e.COMMENT_REACTION_ADDED=405]="COMMENT_REACTION_ADDED",e[e.COMMENT_REACTION_REMOVED=406]="COMMENT_REACTION_REMOVED",e))(ServerMsgCode||{});function shouldDisconnect(e){return 4999===e||e>=4e3&&e<4100}function shouldReauth(e){return e>=4100&&e<4200}function shouldRetryWithoutReauth(e){return 1013===e||e>=4200&&e<4300}function isIdle(e){return"initial"===e||"disconnected"===e}function toNewConnectionStatus(e){const t=e.currentState;switch(t){case"@ok.connected":case"@ok.awaiting-pong":return"connected";case"@idle.initial":return"initial";case"@auth.busy":case"@auth.backoff":case"@connecting.busy":case"@connecting.backoff":case"@idle.zombie":return e.context.successCount>0?"reconnecting":"connecting";case"@idle.failed":return"disconnected";default:return assertNever(t,"Unknown state")}}var BACKOFF_DELAYS=[250,500,1e3,2e3,4e3,8e3,1e4],RESET_DELAY=BACKOFF_DELAYS[0]-1,BACKOFF_DELAYS_SLOW=[2e3,3e4,6e4,3e5],HEARTBEAT_INTERVAL=3e4,PONG_TIMEOUT=2e3,AUTH_TIMEOUT=1e4,SOCKET_CONNECT_TIMEOUT=1e4,StopRetrying=class extends Error{constructor(e){super(e)}},LiveblocksError=class extends Error{constructor(e,t){super(e),this.code=t}};function nextBackoffDelay(e,t){return t.find(t=>t>e)??t[t.length-1]}function increaseBackoffDelay(e){e.patch({backoffDelay:nextBackoffDelay(e.backoffDelay,BACKOFF_DELAYS)})}function increaseBackoffDelayAggressively(e){e.patch({backoffDelay:nextBackoffDelay(e.backoffDelay,BACKOFF_DELAYS_SLOW)})}function resetSuccessCount(e){e.patch({successCount:0})}function log(e,t){const n=2===e?error2:1===e?warn$1:()=>{};return()=>{n(t)}}function logPrematureErrorOrCloseEvent(e){const t="Connection to Liveblocks websocket server";return n=>{e instanceof Error?warn$1(`${t} could not be established. ${String(e)}`):warn$1(isCloseEvent(e)?`${t} closed prematurely (code: ${e.code}). Retrying in ${n.backoffDelay}ms.`:`${t} could not be established.`)}}function logCloseEvent(e){const t=[`code: ${e.code}`];return e.reason&&t.push(`reason: ${e.reason}`),e=>{warn$1(`Connection to Liveblocks websocket server closed (${t.join(", ")}). Retrying in ${e.backoffDelay}ms.`)}}var logPermanentClose=log(1,"Connection to WebSocket closed permanently. Won't retry.");function isCloseEvent(e){return!(e instanceof Error)&&"close"===e.type}function enableTracing(e){const t=(new Date).getTime();function n(...n){warn$1(`${(((new Date).getTime()-t)/1e3).toFixed(2)} [FSM #${e.id}]`,...n)}const o=[e.events.didReceiveEvent.subscribe(e=>n(`Event ${e.type}`)),e.events.willTransition.subscribe(({from:e,to:t})=>n("Transitioning",e,"→",t)),e.events.didIgnoreEvent.subscribe(e=>n("Ignored event",e.type,e,"(current state won't handle it)"))];return()=>{for(const e of o)e()}}function defineConnectivityEvents(e){const t=makeEventSource(),n=makeEventSource(),o=makeEventSource();let r=null;const a=e.events.didEnterState.subscribe(()=>{const a=toNewConnectionStatus(e);a!==r&&t.notify(a),"connected"===r&&"connected"!==a?o.notify():"connected"!==r&&"connected"===a&&n.notify(),r=a});return{statusDidChange:t.observable,didConnect:n.observable,didDisconnect:o.observable,unsubscribe:a}}var assign=e=>t=>t.patch(e);function createConnectionStateMachine(e,t){const n=makeBufferableEventSource();n.pause();const o=makeEventSource();function r(e,t){return()=>{const n=new LiveblocksError(e,t);o.notify(n)}}const a=new FSM({successCount:0,authValue:null,socket:null,backoffDelay:RESET_DELAY}).addState("@idle.initial").addState("@idle.failed").addState("@idle.zombie").addState("@auth.busy").addState("@auth.backoff").addState("@connecting.busy").addState("@connecting.backoff").addState("@ok.connected").addState("@ok.awaiting-pong");a.addTransitions("*",{RECONNECT:{target:"@auth.backoff",effect:[increaseBackoffDelay,resetSuccessCount]},DISCONNECT:"@idle.initial"}),a.onEnter("@idle.*",resetSuccessCount).addTransitions("@idle.*",{CONNECT:(e,t)=>null!==t.authValue?"@connecting.busy":"@auth.busy"}),a.addTransitions("@auth.backoff",{NAVIGATOR_ONLINE:{target:"@auth.busy",effect:assign({backoffDelay:RESET_DELAY})}}).addTimedTransition("@auth.backoff",e=>e.backoffDelay,"@auth.busy").onEnterAsync("@auth.busy",()=>withTimeout(e.authenticate(),AUTH_TIMEOUT,"Timed out during auth"),e=>({target:"@connecting.busy",effect:assign({authValue:e.data})}),e=>e.reason instanceof StopRetrying?{target:"@idle.failed",effect:[log(2,e.reason.message),r(e.reason.message,-1)]}:{target:"@auth.backoff",effect:[increaseBackoffDelay,log(2,`Authentication failed: ${e.reason instanceof Error?e.reason.message:String(e.reason)}`)]});const i=e=>a.send({type:"EXPLICIT_SOCKET_ERROR",event:e}),s=e=>a.send({type:"EXPLICIT_SOCKET_CLOSE",event:e}),l=e=>"pong"===e.data?a.send({type:"PONG"}):n.notify(e);function c(e){e&&(e.removeEventListener("error",i),e.removeEventListener("close",s),e.removeEventListener("message",l),e.close())}a.addTransitions("@connecting.backoff",{NAVIGATOR_ONLINE:{target:"@connecting.busy",effect:assign({backoffDelay:RESET_DELAY})}}).addTimedTransition("@connecting.backoff",e=>e.backoffDelay,"@connecting.busy").onEnterAsync("@connecting.busy",async(n,o)=>{let r=null,a=null;return withTimeout(new Promise((o,c)=>{if(null===n.authValue)throw new Error("No auth authValue");const d=e.createSocket(n.authValue);function u(e){r=e,d.removeEventListener("message",l),c(e)}a=d;const[f,p]=controlledPromise();function _(e){const t=tryParseJson(e.data);104===t?.type&&p()}t.waitForActorId||p(),d.addEventListener("message",l),t.waitForActorId&&d.addEventListener("message",_),d.addEventListener("error",u),d.addEventListener("close",u),d.addEventListener("open",()=>{d.addEventListener("error",i),d.addEventListener("close",s);const e=()=>{d.removeEventListener("error",u),d.removeEventListener("close",u),d.removeEventListener("message",_)};f.then(()=>{o([d,e])})})}),SOCKET_CONNECT_TIMEOUT,"Timed out during websocket connection").then(([e,t])=>{if(t(),o.aborted)throw new Error("Aborted");if(r)throw r;return e}).catch(e=>{throw c(a),e})},e=>({target:"@ok.connected",effect:assign({socket:e.data,backoffDelay:RESET_DELAY})}),e=>{const t=e.reason;if(t instanceof StopRetrying)return{target:"@idle.failed",effect:[log(2,t.message),r(t.message,-1)]};if(isCloseEvent(t)){if(4109===t.code)return"@auth.busy";if(shouldRetryWithoutReauth(t.code))return{target:"@connecting.backoff",effect:[increaseBackoffDelayAggressively,logPrematureErrorOrCloseEvent(t)]};if(shouldDisconnect(t.code))return{target:"@idle.failed",effect:[log(2,t.reason),r(t.reason,t.code)]}}return{target:"@auth.backoff",effect:[increaseBackoffDelay,logPrematureErrorOrCloseEvent(t)]}});const d={target:"@ok.awaiting-pong",effect:e=>{e.socket?.send("ping")}},u=()=>{const t="undefined"!=typeof document?document:void 0;return"hidden"===t?.visibilityState&&e.canZombie()?"@idle.zombie":d};if(a.addTimedTransition("@ok.connected",HEARTBEAT_INTERVAL,u).addTransitions("@ok.connected",{NAVIGATOR_OFFLINE:u,WINDOW_GOT_FOCUS:d}),a.addTransitions("@idle.zombie",{WINDOW_GOT_FOCUS:"@connecting.backoff"}),a.onEnter("@ok.*",e=>{e.patch({successCount:e.successCount+1});const t=setTimeout(n.unpause,0);return e=>{c(e.socket),e.patch({socket:null}),clearTimeout(t),n.pause()}}).addTransitions("@ok.awaiting-pong",{PONG:"@ok.connected"}).addTimedTransition("@ok.awaiting-pong",PONG_TIMEOUT,{target:"@connecting.busy",effect:log(1,"Received no pong from server, assume implicit connection loss.")}).addTransitions("@ok.*",{EXPLICIT_SOCKET_ERROR:(e,t)=>1===t.socket?.readyState?null:{target:"@connecting.backoff",effect:increaseBackoffDelay},EXPLICIT_SOCKET_CLOSE:e=>shouldDisconnect(e.event.code)?{target:"@idle.failed",effect:[logPermanentClose,r(e.event.reason,e.event.code)]}:shouldReauth(e.event.code)?4109===e.event.code?"@auth.busy":{target:"@auth.backoff",effect:[increaseBackoffDelay,logCloseEvent(e.event)]}:shouldRetryWithoutReauth(e.event.code)?{target:"@connecting.backoff",effect:[increaseBackoffDelayAggressively,logCloseEvent(e.event)]}:{target:"@connecting.backoff",effect:[increaseBackoffDelay,logCloseEvent(e.event)]}}),"undefined"!=typeof document){const e="undefined"!=typeof document?document:void 0,t="undefined"!=typeof window?window:void 0,n=t??e;a.onEnter("*",o=>{function r(){a.send({type:"NAVIGATOR_OFFLINE"})}function i(){a.send({type:"NAVIGATOR_ONLINE"})}function s(){"visible"===e?.visibilityState&&a.send({type:"WINDOW_GOT_FOCUS"})}return t?.addEventListener("online",i),t?.addEventListener("offline",r),n?.addEventListener("visibilitychange",s),()=>{n?.removeEventListener("visibilitychange",s),t?.removeEventListener("online",i),t?.removeEventListener("offline",r),c(o.socket)}})}const f=[],{statusDidChange:p,didConnect:_,didDisconnect:m,unsubscribe:h}=defineConnectivityEvents(a);return f.push(h),t.enableDebugLogging&&f.push(enableTracing(a)),a.start(),{machine:a,cleanups:f,events:{statusDidChange:p,didConnect:_,didDisconnect:m,onMessage:n.observable,onLiveblocksError:o.observable}}}var ManagedSocket=class{#T;#A;events;constructor(e,t=!1,n=!0){const{machine:o,events:r,cleanups:a}=createConnectionStateMachine(e,{waitForActorId:n,enableDebugLogging:t});this.#T=o,this.events=r,this.#A=a}getStatus(){try{return toNewConnectionStatus(this.#T)}catch{return"initial"}}get authValue(){return this.#T.context.authValue}connect(){this.#T.send({type:"CONNECT"})}reconnect(){this.#T.send({type:"RECONNECT"})}disconnect(){this.#T.send({type:"DISCONNECT"})}destroy(){let e;for(this.#T.stop();e=this.#A.pop();)e()}send(e){const t=this.#T.context?.socket;null===t?warn$1("Cannot send: not connected yet",e):1!==t.readyState?warn$1("Cannot send: WebSocket no longer open",e):t.send(e)}_privateSendMachineEvent(e){this.#T.send(e)}},Permission=(e=>(e.Read="room:read",e.Write="room:write",e.PresenceWrite="room:presence:write",e.CommentsWrite="comments:write",e.CommentsRead="comments:read",e))(Permission||{});function canWriteStorage(e){return e.includes("room:write")}function canComment(e){return e.includes("comments:write")||e.includes("room:write")}function isValidAuthTokenPayload(e){return isPlainObject$2(e)&&("acc"===e.k||"id"===e.k||"sec-legacy"===e.k)}function parseAuthToken(e){const t=e.split(".");if(3!==t.length)throw new Error("Authentication error: invalid JWT token");const n=tryParseJson(b64decode(t[1]));if(!n||!isValidAuthTokenPayload(n))throw new Error("Authentication error: expected a valid token but did not get one. Hint: if you are using a callback, ensure the room is passed when creating the token. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClientCallback");return{raw:e,parsed:n}}function createAuthManager(e,t){const n=prepareAuthentication(e),o=new Set,r=[],a=[],i=new Map;function s(e,t){return"comments:read"===e?t.includes("comments:read")||t.includes("comments:write")||t.includes("room:read")||t.includes("room:write"):"room:read"===e&&(t.includes("room:read")||t.includes("room:write"))}async function l(r){const a=e.polyfills?.fetch??("undefined"==typeof window?void 0:window.fetch);if("private"===n.type){if(void 0===a)throw new StopRetrying("To use Liveblocks client in a non-DOM environment with a url as auth endpoint, you need to provide a fetch polyfill.");const e=parseAuthToken((await fetchAuthEndpoint(a,n.url,{room:r.roomId})).token);if(o.has(e.raw))throw new StopRetrying("The same Liveblocks auth token was issued from the backend before. Caching Liveblocks tokens is not supported.");return t?.(e.parsed),e}if("custom"===n.type){const e=await n.callback(r.roomId);if(e&&"object"==typeof e){if("string"==typeof e.token){const n=parseAuthToken(e.token);return t?.(n.parsed),n}if("string"==typeof e.error){const t=`Authentication failed: ${"reason"in e&&"string"==typeof e.reason?e.reason:"Forbidden"}`;throw"forbidden"===e.error?new StopRetrying(t):new Error(t)}}throw new Error('Your authentication callback function should return a token, but it did not. Hint: the return value should look like: { token: "..." }')}throw new Error("Unexpected authentication type. Must be private or custom.")}return{reset:function(){o.clear(),r.length=0,a.length=0,i.clear()},getAuthValue:async function(e){if("public"===n.type)return{type:"public",publicApiKey:n.publicApiKey};const t=function(e){const t=Math.ceil(Date.now()/1e3);for(let n=r.length-1;n>=0;n--){const o=r[n];if(a[n]<=t)r.splice(n,1),a.splice(n,1);else{if("id"===o.parsed.k)return o;if("acc"===o.parsed.k){if(!e.roomId&&0===Object.entries(o.parsed.perms).length)return o;for(const[t,n]of Object.entries(o.parsed.perms))if(e.roomId){if(t.includes("*")&&e.roomId.startsWith(t.replace("*",""))||e.roomId===t&&s(e.requestedScope,n))return o}else if(t.includes("*")&&s(e.requestedScope,n))return o}}}}(e);if(void 0!==t)return{type:"secret",token:t};let c;e.roomId?(c=i.get(e.roomId),void 0===c&&(c=l(e),i.set(e.roomId,c))):(c=i.get("liveblocks-user-token"),void 0===c&&(c=l(e),i.set("liveblocks-user-token",c)));try{const e=await c,t=30,n=Math.floor(Date.now()/1e3)+(e.parsed.exp-e.parsed.iat)-t;return o.add(e.raw),"sec-legacy"!==e.parsed.k&&(r.push(e),a.push(n)),{type:"secret",token:e}}finally{e.roomId?i.delete(e.roomId):i.delete("liveblocks-user-token")}}}}function prepareAuthentication(e){const{publicApiKey:t,authEndpoint:n}=e;if(void 0!==n&&void 0!==t)throw new Error("You cannot simultaneously use `publicApiKey` and `authEndpoint` options. Please pick one and leave the other option unspecified. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClient");if("string"==typeof t){if(t.startsWith("sk_"))throw new Error("Invalid `publicApiKey` option. The value you passed is a secret key, which should not be used from the client. Please only ever pass a public key here. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClientPublicKey");if(!t.startsWith("pk_"))throw new Error("Invalid key. Please use the public key format: pk_<public key>. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClientPublicKey");return{type:"public",publicApiKey:t}}if("string"==typeof n)return{type:"private",url:n};if("function"==typeof n)return{type:"custom",callback:n};if(void 0!==n)throw new Error("The `authEndpoint` option must be a string or a function. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClientAuthEndpoint");throw new Error("Invalid Liveblocks client options. Please provide either a `publicApiKey` or `authEndpoint` option. They cannot both be empty. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClient")}async function fetchAuthEndpoint(e,t,n){const o=await e(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!o.ok){const e=`${(await o.text()).trim()||"reason not provided in auth response"} (${o.status} returned by POST ${t})`;throw 401===o.status||403===o.status?new StopRetrying(`Unauthorized: ${e}`):new Error(`Failed to authenticate: ${e}`)}let r;try{r=await o.json()}catch(e){throw new Error(`Expected a JSON response when doing a POST request on "${t}". ${String(e)}`)}if(!isPlainObject$2(r)||"string"!=typeof r.token)throw new Error(`Expected a JSON response of the form \`{ token: "..." }\` when doing a POST request on "${t}", but got ${JSON.stringify(r)}`);const{token:a}=r;return{token:a}}var DEFAULT_BASE_URL="https://api.liveblocks.io",kInternal=Symbol(),eventSource=makeEventSource();function unlinkDevTools(e){}eventSource.observable;var freeze$2=e=>e,kSinks=Symbol("kSinks"),kTrigger=Symbol("kTrigger"),signalsToTrigger=null;function batch(e){if(null===signalsToTrigger){signalsToTrigger=new Set;try{e()}finally{for(const e of signalsToTrigger)e[kTrigger]();signalsToTrigger=null}}else e()}function enqueueTrigger(e){signalsToTrigger||raise("Expected to be in an active batch"),signalsToTrigger.add(e)}function merge(e,t){let n=!1;const o={...e};return Object.keys(t).forEach(e=>{const r=e,a=t[r];o[r]!==a&&(void 0===a?delete o[r]:o[r]=a,n=!0)}),n?o:e}var AbstractSignal=class{equals;#O;[kSinks];constructor(e){this.equals=e??Object.is,this.#O=makeEventSource(),this[kSinks]=new Set,this.get=this.get.bind(this),this.subscribe=this.subscribe.bind(this),this.subscribeOnce=this.subscribeOnce.bind(this)}[Symbol.dispose](){this.#O[Symbol.dispose](),this.#O="(disposed)",this.equals="(disposed)"}get hasWatchers(){if(this.#O.count()>0)return!0;for(const e of this[kSinks])if(e.hasWatchers)return!0;return!1}[kTrigger](){this.#O.notify();for(const e of this[kSinks])enqueueTrigger(e)}subscribe(e){return this.#O.subscribe(e)}subscribeOnce(e){const t=this.subscribe(()=>(t(),e()));return t}waitUntil(){throw new Error("waitUntil not supported on Signals")}markSinksDirty(){for(const e of this[kSinks])e.markDirty()}addSink(e){this[kSinks].add(e)}removeSink(e){this[kSinks].delete(e)}asReadonly(){return this}},Signal=class extends AbstractSignal{#I;constructor(e,t){super(t),this.#I=freeze$2(e)}[Symbol.dispose](){super[Symbol.dispose](),this.#I="(disposed)"}get(){return this.#I}set(e){batch(()=>{"function"==typeof e&&(e=e(this.#I)),this.equals(this.#I,e)||(this.#I=freeze$2(e),this.markSinksDirty(),enqueueTrigger(this))})}},PatchableSignal=class extends Signal{constructor(e){super(freeze$2(compactObject(e)))}set(){throw new Error("Don't call .set() directly, use .patch()")}patch(e){super.set(t=>merge(t,e))}},INITIAL=Symbol(),DerivedSignal=class e extends AbstractSignal{#k;#N;#j;#$;static from(...t){const n=t.pop();if("function"!=typeof n&&raise("Invalid .from() call, last argument expected to be a function"),"function"==typeof t[t.length-1]){const o=n,r=t.pop();return new e(t,r,o)}return new e(t,n)}constructor(e,t,n){super(n),this.#N=!0,this.#k=INITIAL,this.#j=e,this.#$=t;for(const t of e)t.addSink(this)}[Symbol.dispose](){for(const e of this.#j)e.removeSink(this);this.#k="(disposed)",this.#j="(disposed)",this.#$="(disposed)"}get isDirty(){return this.#N}#F(){const e=this.#$(...this.#j.map(e=>e.get()));return this.#N=!1,!this.equals(this.#k,e)&&(this.#k=e,!0)}markDirty(){this.#N||(this.#N=!0,this.markSinksDirty())}get(){return this.#N&&this.#F(),this.#k}[kTrigger](){if(!this.hasWatchers)return;this.#F()&&super[kTrigger]()}},MutableSignal=class extends AbstractSignal{#P;constructor(e){super(),this.#P=e}[Symbol.dispose](){super[Symbol.dispose](),this.#P="(disposed)"}get(){return this.#P}mutate(e){batch(()=>{const t=!e||e(this.#P);null!==t&&"object"==typeof t&&"then"in t&&raise("MutableSignal.mutate() does not support async callbacks"),!1!==t&&(this.markSinksDirty(),enqueueTrigger(this))})}},MIN_CODE=32,MAX_CODE=126,NUM_DIGITS=MAX_CODE-MIN_CODE+1,ZERO=nthDigit(0),ONE=nthDigit(1),ZERO_NINE=ZERO+nthDigit(-1);function nthDigit(e){const t=MIN_CODE+(e<0?NUM_DIGITS+e:e);if(t<MIN_CODE||t>MAX_CODE)throw new Error(`Invalid n value: ${e}`);return String.fromCharCode(t)}function makePosition(e,t){return void 0!==e&&void 0!==t?between(e,t):void 0!==e?after$1(e):void 0!==t?before$1(t):ONE}function before$1(e){const t=e.length-1;for(let n=0;n<=t;n++){const o=e.charCodeAt(n);if(!(o<=MIN_CODE))return n===t?o===MIN_CODE+1?e.substring(0,n)+ZERO_NINE:e.substring(0,n)+String.fromCharCode(o-1):e.substring(0,n+1)}return ONE}function after$1(e){for(let t=0;t<=e.length-1;t++){const n=e.charCodeAt(t);if(!(n>=MAX_CODE))return e.substring(0,t)+String.fromCharCode(n+1)}return e+ONE}function between(e,t){if(e<t)return _between(e,t);if(e>t)return _between(t,e);throw new Error("Cannot compute value between two equal positions")}function _between(e,t){let n=0;const o=e.length,r=t.length;for(;;){const a=n<o?e.charCodeAt(n):MIN_CODE,i=n<r?t.charCodeAt(n):MAX_CODE;if(a!==i){if(i-a===1){const t=n+1;let o=e.substring(0,t);o.length<t&&(o+=ZERO.repeat(t-o.length));return o+_between(e.substring(t),"")}return takeN(e,n)+String.fromCharCode(i+a>>1)}n++}}function takeN(e,t){return t<e.length?e.substring(0,t):e+ZERO.repeat(t-e.length)}var MIN_NON_ZERO_CODE=MIN_CODE+1;function isPos(e){if(""===e)return!1;const t=e.length-1,n=e.charCodeAt(t);if(n<MIN_NON_ZERO_CODE||n>MAX_CODE)return!1;for(let n=0;n<t;n++){const t=e.charCodeAt(n);if(t<MIN_CODE||t>MAX_CODE)return!1}return!0}function convertToPos(e){const t=[];for(let n=0;n<e.length;n++){const o=e.charCodeAt(n);t.push(o<MIN_CODE?MIN_CODE:o>MAX_CODE?MAX_CODE:o)}for(;t.length>0&&t[t.length-1]===MIN_CODE;)t.length--;return t.length>0?String.fromCharCode(...t):ONE}function asPos(e){return isPos(e)?e:convertToPos(e)}function isAckOp(e){return 5===e.type&&"ACK"===e.id}function crdtAsLiveNode(e){return e}function HasParent(e,t,n=asPos(t)){return Object.freeze({type:"HasParent",node:e,key:t,pos:n})}var NoParent=Object.freeze({type:"NoParent"});function Orphaned(e,t=asPos(e)){return Object.freeze({type:"Orphaned",oldKey:e,oldPos:t})}var AbstractCrdt=class{#M;#B;#L=NoParent;_getParentKeyOrThrow(){switch(this.parent.type){case"HasParent":return this.parent.key;case"NoParent":throw new Error("Parent key is missing");case"Orphaned":return this.parent.oldKey;default:return assertNever(this.parent,"Unknown state")}}get _parentPos(){switch(this.parent.type){case"HasParent":return this.parent.pos;case"NoParent":throw new Error("Parent key is missing");case"Orphaned":return this.parent.oldPos;default:return assertNever(this.parent,"Unknown state")}}get _pool(){return this.#M}get roomId(){return this.#M?this.#M.roomId:null}get _id(){return this.#B}get parent(){return this.#L}get _parentKey(){switch(this.parent.type){case"HasParent":return this.parent.key;case"NoParent":return null;case"Orphaned":return this.parent.oldKey;default:return assertNever(this.parent,"Unknown state")}}_apply(e,t){return 5===e.type&&"HasParent"===this.parent.type?this.parent.node._detachChild(crdtAsLiveNode(this)):{modified:!1}}_setParentLink(e,t){switch(this.parent.type){case"HasParent":if(this.parent.node!==e)throw new Error("Cannot set parent: node already has a parent");return void(this.#L=HasParent(e,t));case"Orphaned":case"NoParent":return void(this.#L=HasParent(e,t));default:return assertNever(this.parent,"Unknown state")}}_attach(e,t){if(this.#B||this.#M)throw new Error("Cannot attach node: already attached");t.addNode(e,crdtAsLiveNode(this)),this.#B=e,this.#M=t}_detach(){switch(this.#M&&this.#B&&this.#M.deleteNode(this.#B),this.parent.type){case"HasParent":this.#L=Orphaned(this.parent.key,this.parent.pos);break;case"NoParent":this.#L=NoParent;break;case"Orphaned":break;default:assertNever(this.parent,"Unknown state")}this.#M=void 0}#U;#V;#H;invalidate(){void 0===this.#U&&void 0===this.#H||(this.#U=void 0,this.#H=void 0,"HasParent"===this.parent.type&&this.parent.node.invalidate())}toTreeNode(e){return void 0!==this.#H&&this.#V===e||(this.#V=e,this.#H=this._toTreeNode(e)),this.#H}toImmutable(){return void 0===this.#U&&(this.#U=this._toImmutable()),this.#U}};function isRootCrdt(e){return 0===e.type&&!isChildCrdt(e)}function isChildCrdt(e){return void 0!==e.parentId&&void 0!==e.parentKey}var LiveRegister=class e extends AbstractCrdt{#z;constructor(e){super(),this.#z=e}get data(){return this.#z}static _deserialize([t,n],o,r){const a=new e(n.data);return a._attach(t,r),a}_toOps(e,t,n){if(void 0===this._id)throw new Error("Cannot serialize register if parentId or parentKey is undefined");return[{type:8,opId:n?.generateOpId(),id:this._id,parentId:e,parentKey:t,data:this.data}]}_serialize(){if("HasParent"!==this.parent.type)throw new Error("Cannot serialize LiveRegister if parent is missing");return{type:3,parentId:nn(this.parent.node._id,"Parent node expected to have ID"),parentKey:this.parent.key,data:this.data}}_attachChild(e){throw new Error("Method not implemented.")}_detachChild(e){throw new Error("Method not implemented.")}_apply(e,t){return super._apply(e,t)}_toTreeNode(e){return{type:"Json",id:this._id??nanoid(),key:e,payload:this.#z}}_toImmutable(){return this.#z}clone(){return deepClone(this.data)}};function compareNodePosition(e,t){const n=e._parentPos,o=t._parentPos;return n===o?0:n<o?-1:1}var LiveList=class e extends AbstractCrdt{#q;#K;#W;constructor(e){let t;super(),this.#q=[],this.#K=new WeakSet,this.#W=new Map;for(const n of e){const e=makePosition(t),o=lsonToLiveNode(n);o._setParentLink(this,e),this.#q.push(o),t=e}}static _deserialize([t],n,o){const r=new e([]);r._attach(t,o);const a=n.get(t);if(void 0===a)return r;for(const[e,t]of a){const a=deserialize$1([e,t],n,o);a._setParentLink(r,t.parentKey),r._insertAndSort(a)}return r}_toOps(e,t,n){if(void 0===this._id)throw new Error("Cannot serialize item is not attached");const o=[],r={id:this._id,opId:n?.generateOpId(),type:2,parentId:e,parentKey:t};o.push(r);for(const e of this.#q){const t=e._getParentKeyOrThrow(),r=HACK_addIntentAndDeletedIdToOperation(e._toOps(this._id,t,n),void 0),a=r[0].opId;void 0!==a&&this.#W.set(t,a),o.push(...r)}return o}_insertAndSort(e){this.#q.push(e),this._sortItems()}_sortItems(){this.#q.sort(compareNodePosition),this.invalidate()}_indexOfPosition(e){return this.#q.findIndex(t=>t._getParentKeyOrThrow()===e)}_attach(e,t){super._attach(e,t);for(const e of this.#q)e._attach(t.generateId(),t)}_detach(){super._detach();for(const e of this.#q)e._detach()}#G(e){if(void 0===this._pool)throw new Error("Can't attach child if managed pool is not present");const{id:t,parentKey:n}=e,o=creationOpToLiveNode(e);o._attach(t,this._pool),o._setParentLink(this,n);const r=e.deletedId,a=this._indexOfPosition(n);if(-1!==a){const t=this.#q[a];if(t._id===r)return t._detach(),this.#q[a]=o,{modified:makeUpdate(this,[setDelta(a,o)]),reverse:[]};{this.#K.add(t),this.#q[a]=o;const n=[setDelta(a,o)],r=this.#Y(e.deletedId);return r&&n.push(r),{modified:makeUpdate(this,n),reverse:[]}}}{const t=[],r=this.#Y(e.deletedId);return r&&t.push(r),this._insertAndSort(o),t.push(insertDelta(this._indexOfPosition(n),o)),{reverse:[],modified:makeUpdate(this,t)}}}#J(e){if(void 0===this._pool)throw new Error("Can't attach child if managed pool is not present");const t=[],n=this.#Y(e.deletedId);n&&t.push(n);const o=this.#W.get(e.parentKey);if(void 0!==o){if(o!==e.opId)return 0===t.length?{modified:!1}:{modified:makeUpdate(this,t),reverse:[]};this.#W.delete(e.parentKey)}const r=this._indexOfPosition(e.parentKey),a=this.#q.find(t=>t._id===e.id);if(void 0!==a){if(a._parentKey===e.parentKey)return{modified:t.length>0&&makeUpdate(this,t),reverse:[]};if(-1!==r){this.#K.add(this.#q[r]);const[e]=this.#q.splice(r,1);t.push(deleteDelta(r,e))}const n=this.#q.indexOf(a);a._setParentLink(this,e.parentKey),this._sortItems();const o=this.#q.indexOf(a);return o!==n&&t.push(moveDelta(n,o,a)),{modified:t.length>0&&makeUpdate(this,t),reverse:[]}}{const n=this._pool.getNode(e.id);if(n&&this.#K.has(n)){n._setParentLink(this,e.parentKey),this.#K.delete(n),this._insertAndSort(n);const o=this.#q.indexOf(n);return{modified:makeUpdate(this,[-1===r?insertDelta(o,n):setDelta(o,n),...t]),reverse:[]}}{-1!==r&&this.#q.splice(r,1);const{newItem:n,newIndex:o}=this.#X(e,e.parentKey);return{modified:makeUpdate(this,[-1===r?insertDelta(o,n):setDelta(o,n),...t]),reverse:[]}}}}#Y(e){if(void 0===e||void 0===this._pool)return null;const t=this._pool.getNode(e);if(void 0===t)return null;const n=this._detachChild(t);return!1===n.modified?null:n.modified.updates[0]}#Z(e){if(void 0===this._pool)throw new Error("Can't attach child if managed pool is not present");const t=asPos(e.parentKey),n=this._indexOfPosition(t);-1!==n&&this.#Q(n,t);const{newItem:o,newIndex:r}=this.#X(e,t);return{modified:makeUpdate(this,[insertDelta(r,o)]),reverse:[]}}#ee(e){const t=this.#q.find(t=>t._id===e.id),n=asPos(e.parentKey),o=this._indexOfPosition(n);if(t){if(t._parentKey===n)return{modified:!1};{const e=this.#q.indexOf(t);-1!==o&&this.#Q(o,n),t._setParentLink(this,n),this._sortItems();const r=this._indexOfPosition(n);return r===e?{modified:!1}:{modified:makeUpdate(this,[moveDelta(e,r,t)]),reverse:[]}}}{const t=nn(this._pool).getNode(e.id);if(t&&this.#K.has(t)){t._setParentLink(this,n),this.#K.delete(t),this._insertAndSort(t);return{modified:makeUpdate(this,[insertDelta(this._indexOfPosition(n),t)]),reverse:[]}}{-1!==o&&this.#Q(o,n);const{newItem:t,newIndex:r}=this.#X(e,n);return{modified:makeUpdate(this,[insertDelta(r,t)]),reverse:[]}}}}#te(e){const{id:t,parentKey:n}=e,o=creationOpToLiveNode(e);if(void 0!==this._pool?.getNode(t))return{modified:!1};o._attach(t,nn(this._pool)),o._setParentLink(this,n);const r=this._indexOfPosition(n);let a=n;if(-1!==r){const e=this.#q[r]?._parentPos,t=this.#q[r+1]?._parentPos;a=makePosition(e,t),o._setParentLink(this,a)}this._insertAndSort(o);return{modified:makeUpdate(this,[insertDelta(this._indexOfPosition(a),o)]),reverse:[{type:5,id:t}]}}#ne(e){const{id:t,parentKey:n}=e,o=creationOpToLiveNode(e);if(void 0!==this._pool?.getNode(t))return{modified:!1};this.#W.set(n,nn(e.opId));const r=this._indexOfPosition(n);o._attach(t,nn(this._pool)),o._setParentLink(this,n);const a=n;if(-1!==r){const t=this.#q[r];t._detach(),this.#q[r]=o;const a=HACK_addIntentAndDeletedIdToOperation(t._toOps(nn(this._id),n,this._pool),e.id),i=[setDelta(r,o)],s=this.#Y(e.deletedId);return s&&i.push(s),{modified:makeUpdate(this,i),reverse:a}}this._insertAndSort(o),this.#Y(e.deletedId);return{reverse:[{type:5,id:t}],modified:makeUpdate(this,[insertDelta(this._indexOfPosition(a),o)])}}_attachChild(e,t){if(void 0===this._pool)throw new Error("Can't attach child if managed pool is not present");let n;return n="set"===e.intent?1===t?this.#G(e):2===t?this.#J(e):this.#ne(e):1===t?this.#Z(e):2===t?this.#ee(e):this.#te(e),!1!==n.modified&&this.invalidate(),n}_detachChild(e){if(e){const t=nn(e._parentKey),n=e._toOps(nn(this._id),t,this._pool),o=this.#q.indexOf(e);if(-1===o)return{modified:!1};const[r]=this.#q.splice(o,1);return this.invalidate(),e._detach(),{modified:makeUpdate(this,[deleteDelta(o,r)]),reverse:n}}return{modified:!1}}#oe(e,t){if(this.#K.has(t)){this.#K.delete(t),t._setParentLink(this,e),this._insertAndSort(t);return{modified:makeUpdate(this,[insertDelta(this.#q.indexOf(t),t)]),reverse:[]}}if(e===t._parentKey)return{modified:!1};const n=this._indexOfPosition(e);if(-1===n){const n=this.#q.indexOf(t);t._setParentLink(this,e),this._sortItems();const o=this.#q.indexOf(t);return o===n?{modified:!1}:{modified:makeUpdate(this,[moveDelta(n,o,t)]),reverse:[]}}{this.#q[n]._setParentLink(this,makePosition(e,this.#q[n+1]?._parentPos));const o=this.#q.indexOf(t);t._setParentLink(this,e),this._sortItems();const r=this.#q.indexOf(t);return r===o?{modified:!1}:{modified:makeUpdate(this,[moveDelta(o,r,t)]),reverse:[]}}}#re(e,t){const n=nn(t._parentKey);if(this.#K.has(t)){const n=this._indexOfPosition(e);return this.#K.delete(t),-1!==n&&this.#q[n]._setParentLink(this,makePosition(e,this.#q[n+1]?._parentPos)),t._setParentLink(this,e),this._insertAndSort(t),{modified:!1}}{if(e===n)return{modified:!1};const o=this.#q.indexOf(t),r=this._indexOfPosition(e);-1!==r&&this.#q[r]._setParentLink(this,makePosition(e,this.#q[r+1]?._parentPos)),t._setParentLink(this,e),this._sortItems();const a=this.#q.indexOf(t);return o===a?{modified:!1}:{modified:makeUpdate(this,[moveDelta(o,a,t)]),reverse:[]}}}#ae(e,t){const n=nn(t._parentKey),o=this.#q.indexOf(t),r=this._indexOfPosition(e);-1!==r&&this.#q[r]._setParentLink(this,makePosition(e,this.#q[r+1]?._parentPos)),t._setParentLink(this,e),this._sortItems();const a=this.#q.indexOf(t);return o===a?{modified:!1}:{modified:makeUpdate(this,[moveDelta(o,a,t)]),reverse:[{type:1,id:nn(t._id),parentKey:n}]}}_setChildKey(e,t,n){return 1===n?this.#oe(e,t):2===n?this.#re(e,t):this.#ae(e,t)}_apply(e,t){return super._apply(e,t)}_serialize(){if("HasParent"!==this.parent.type)throw new Error("Cannot serialize LiveList if parent is missing");return{type:1,parentId:nn(this.parent.node._id,"Parent node expected to have ID"),parentKey:this.parent.key}}get length(){return this.#q.length}push(e){return this._pool?.assertStorageIsWritable(),this.insert(e,this.length)}insert(e,t){if(this._pool?.assertStorageIsWritable(),t<0||t>this.#q.length)throw new Error(`Cannot insert list item at index "${t}". index should be between 0 and ${this.#q.length}`);const n=makePosition(this.#q[t-1]?this.#q[t-1]._parentPos:void 0,this.#q[t]?this.#q[t]._parentPos:void 0),o=lsonToLiveNode(e);if(o._setParentLink(this,n),this._insertAndSort(o),this._pool&&this._id){const e=this._pool.generateId();o._attach(e,this._pool),this._pool.dispatch(o._toOps(this._id,n,this._pool),[{type:5,id:e}],new Map([[this._id,makeUpdate(this,[insertDelta(t,o)])]]))}}move(e,t){if(this._pool?.assertStorageIsWritable(),t<0)throw new Error("targetIndex cannot be less than 0");if(t>=this.#q.length)throw new Error("targetIndex cannot be greater or equal than the list length");if(e<0)throw new Error("index cannot be less than 0");if(e>=this.#q.length)throw new Error("index cannot be greater or equal than the list length");let n=null,o=null;e<t?(o=t===this.#q.length-1?void 0:this.#q[t+1]._parentPos,n=this.#q[t]._parentPos):(o=this.#q[t]._parentPos,n=0===t?void 0:this.#q[t-1]._parentPos);const r=makePosition(n,o),a=this.#q[e],i=a._getParentKeyOrThrow();if(a._setParentLink(this,r),this._sortItems(),this._pool&&this._id){const n=new Map([[this._id,makeUpdate(this,[moveDelta(e,t,a)])]]);this._pool.dispatch([{type:1,id:nn(a._id),opId:this._pool.generateOpId(),parentKey:r}],[{type:1,id:nn(a._id),parentKey:i}],n)}}delete(e){if(this._pool?.assertStorageIsWritable(),e<0||e>=this.#q.length)throw new Error(`Cannot delete list item at index "${e}". index should be between 0 and ${this.#q.length-1}`);const t=this.#q[e];t._detach();const[n]=this.#q.splice(e,1);if(this.invalidate(),this._pool){const o=t._id;if(o){const r=new Map;r.set(nn(this._id),makeUpdate(this,[deleteDelta(e,n)])),this._pool.dispatch([{id:o,opId:this._pool.generateOpId(),type:5}],t._toOps(nn(this._id),t._getParentKeyOrThrow()),r)}}}clear(){if(this._pool?.assertStorageIsWritable(),this._pool){const e=[],t=[],n=[];for(const o of this.#q){o._detach();const r=o._id;r&&(e.push({type:5,id:r,opId:this._pool.generateOpId()}),t.push(...o._toOps(nn(this._id),o._getParentKeyOrThrow())),n.push(deleteDelta(0,o)))}this.#q=[],this.invalidate();const o=new Map;o.set(nn(this._id),makeUpdate(this,n)),this._pool.dispatch(e,t,o)}else{for(const e of this.#q)e._detach();this.#q=[],this.invalidate()}}set(e,t){if(this._pool?.assertStorageIsWritable(),e<0||e>=this.#q.length)throw new Error(`Cannot set list item at index "${e}". index should be between 0 and ${this.#q.length-1}`);const n=this.#q[e],o=n._getParentKeyOrThrow(),r=n._id;n._detach();const a=lsonToLiveNode(t);if(a._setParentLink(this,o),this.#q[e]=a,this.invalidate(),this._pool&&this._id){const t=this._pool.generateId();a._attach(t,this._pool);const i=new Map;i.set(this._id,makeUpdate(this,[setDelta(e,a)]));const s=HACK_addIntentAndDeletedIdToOperation(a._toOps(this._id,o,this._pool),r);this.#W.set(o,nn(s[0].opId));const l=HACK_addIntentAndDeletedIdToOperation(n._toOps(this._id,o,void 0),t);this._pool.dispatch(s,l,i)}}toArray(){return this.#q.map(e=>liveNodeToLson(e))}every(e){return this.toArray().every(e)}filter(e){return this.toArray().filter(e)}find(e){return this.toArray().find(e)}findIndex(e){return this.toArray().findIndex(e)}forEach(e){return this.toArray().forEach(e)}get(e){if(!(e<0||e>=this.#q.length))return liveNodeToLson(this.#q[e])}indexOf(e,t){return this.toArray().indexOf(e,t)}lastIndexOf(e,t){return this.toArray().lastIndexOf(e,t)}map(e){return this.#q.map((t,n)=>e(liveNodeToLson(t),n))}some(e){return this.toArray().some(e)}[Symbol.iterator](){return new LiveListIterator(this.#q)}#X(e,t){const n=creationOpToLiveNode(e);n._attach(e.id,nn(this._pool)),n._setParentLink(this,t),this._insertAndSort(n);return{newItem:n,newIndex:this._indexOfPosition(t)}}#Q(e,t){const n=makePosition(t,this.#q.length>e+1?this.#q[e+1]?._parentPos:void 0);this.#q[e]._setParentLink(this,n)}_toTreeNode(e){return{type:"LiveList",id:this._id??nanoid(),key:e,payload:this.#q.map((e,t)=>e.toTreeNode(t.toString()))}}toImmutable(){return super.toImmutable()}_toImmutable(){const e=this.#q.map(e=>e.toImmutable());return e}clone(){return new e(this.#q.map(e=>e.clone()))}},LiveListIterator=class{#ie;constructor(e){this.#ie=e[Symbol.iterator]()}[Symbol.iterator](){return this}next(){const e=this.#ie.next();if(e.done)return{done:!0,value:void 0};return{value:liveNodeToLson(e.value)}}};function makeUpdate(e,t){return{node:e,type:"LiveList",updates:t}}function setDelta(e,t){return{index:e,type:"set",item:t instanceof LiveRegister?t.data:t}}function deleteDelta(e,t){return{type:"delete",index:e,deletedItem:t instanceof LiveRegister?t.data:t}}function insertDelta(e,t){return{index:e,type:"insert",item:t instanceof LiveRegister?t.data:t}}function moveDelta(e,t,n){return{type:"move",index:t,item:n instanceof LiveRegister?n.data:n,previousIndex:e}}function HACK_addIntentAndDeletedIdToOperation(e,t){return e.map((e,n)=>{if(0===n){return{...e,intent:"set",deletedId:t}}return e})}var LiveMap=class e extends AbstractCrdt{#se;#le;constructor(e){if(super(),this.#le=new Map,e){const t=[];for(const[n,o]of e){const e=lsonToLiveNode(o);e._setParentLink(this,n),t.push([n,e])}this.#se=new Map(t)}else this.#se=new Map}_toOps(e,t,n){if(void 0===this._id)throw new Error("Cannot serialize item is not attached");const o=[],r={id:this._id,opId:n?.generateOpId(),type:7,parentId:e,parentKey:t};o.push(r);for(const[e,t]of this.#se)o.push(...t._toOps(this._id,e,n));return o}static _deserialize([t,n],o,r){const a=new e;a._attach(t,r);const i=o.get(t);if(void 0===i)return a;for(const[e,t]of i){const n=deserialize$1([e,t],o,r);n._setParentLink(a,t.parentKey),a.#se.set(t.parentKey,n),a.invalidate()}return a}_attach(e,t){super._attach(e,t);for(const[e,n]of this.#se)isLiveNode(n)&&n._attach(t.generateId(),t)}_attachChild(e,t){if(void 0===this._pool)throw new Error("Can't attach child if managed pool is not present");const{id:n,parentKey:o,opId:r}=e,a=o,i=creationOpToLiveNode(e);if(void 0!==this._pool.getNode(n))return{modified:!1};if(2===t){const e=this.#le.get(a);if(e===r)return this.#le.delete(a),{modified:!1};if(void 0!==e)return{modified:!1}}else 1===t&&this.#le.delete(a);const s=this.#se.get(a);let l;if(s){const e=nn(this._id);l=s._toOps(e,a),s._detach()}else l=[{type:5,id:n}];return i._setParentLink(this,a),i._attach(n,this._pool),this.#se.set(a,i),this.invalidate(),{modified:{node:this,type:"LiveMap",updates:{[a]:{type:"update"}}},reverse:l}}_detach(){super._detach();for(const e of this.#se.values())e._detach()}_detachChild(e){const t=nn(this._id),n=nn(e._parentKey),o=e._toOps(t,n,this._pool);for(const[t,n]of this.#se)n===e&&(this.#se.delete(t),this.invalidate());e._detach();return{modified:{node:this,type:"LiveMap",updates:{[n]:{type:"delete"}}},reverse:o}}_serialize(){if("HasParent"!==this.parent.type)throw new Error("Cannot serialize LiveMap if parent is missing");return{type:2,parentId:nn(this.parent.node._id,"Parent node expected to have ID"),parentKey:this.parent.key}}get(e){const t=this.#se.get(e);if(void 0!==t)return liveNodeToLson(t)}set(e,t){this._pool?.assertStorageIsWritable();const n=this.#se.get(e);n&&n._detach();const o=lsonToLiveNode(t);if(o._setParentLink(this,e),this.#se.set(e,o),this.invalidate(),this._pool&&this._id){const t=this._pool.generateId();o._attach(t,this._pool);const r=new Map;r.set(this._id,{node:this,type:"LiveMap",updates:{[e]:{type:"update"}}});const a=o._toOps(this._id,e,this._pool);this.#le.set(e,nn(a[0].opId)),this._pool.dispatch(o._toOps(this._id,e,this._pool),n?n._toOps(this._id,e):[{type:5,id:t}],r)}}get size(){return this.#se.size}has(e){return this.#se.has(e)}delete(e){this._pool?.assertStorageIsWritable();const t=this.#se.get(e);if(void 0===t)return!1;if(t._detach(),this.#se.delete(e),this.invalidate(),this._pool&&t._id){const n=nn(this._id),o=new Map;o.set(n,{node:this,type:"LiveMap",updates:{[e]:{type:"delete"}}}),this._pool.dispatch([{type:5,id:t._id,opId:this._pool.generateOpId()}],t._toOps(n,e),o)}return!0}entries(){const e=this.#se.entries();return{[Symbol.iterator](){return this},next(){const t=e.next();if(t.done)return{done:!0,value:void 0};return{value:[t.value[0],liveNodeToLson(t.value[1])]}}}}[Symbol.iterator](){return this.entries()}keys(){return this.#se.keys()}values(){const e=this.#se.values();return{[Symbol.iterator](){return this},next(){const t=e.next();if(t.done)return{done:!0,value:void 0};return{value:liveNodeToLson(t.value)}}}}forEach(e){for(const t of this)e(t[1],t[0],this)}_toTreeNode(e){return{type:"LiveMap",id:this._id??nanoid(),key:e,payload:Array.from(this.#se.entries()).map(([e,t])=>t.toTreeNode(e))}}toImmutable(){return super.toImmutable()}_toImmutable(){const e=new Map;for(const[t,n]of this.#se)e.set(t,n.toImmutable());return freeze$2(e)}clone(){return new e(Array.from(this.#se).map(([e,t])=>[e,t.clone()]))}},LiveObject=class e extends AbstractCrdt{#se;#ce;static#de(e){const t=new Map;let n=null;for(const[o,r]of e)if(isRootCrdt(r))n=[o,r];else{const e=[o,r],n=t.get(r.parentId);void 0!==n?n.push(e):t.set(r.parentId,[e])}if(null===n)throw new Error("Root can't be null");return[n,t]}static _fromItems(t,n){const[o,r]=e.#de(t);return e._deserialize(o,r,n)}constructor(e={}){super(),this.#ce=new Map;const t=compactObject(e);for(const e of Object.keys(t)){const n=t[e];isLiveNode(n)&&n._setParentLink(this,e)}this.#se=new Map(Object.entries(t))}_toOps(e,t,n){if(void 0===this._id)throw new Error("Cannot serialize item is not attached");const o=n?.generateOpId(),r=[],a={type:4,id:this._id,opId:o,parentId:e,parentKey:t,data:{}};r.push(a);for(const[e,t]of this.#se)isLiveNode(t)?r.push(...t._toOps(this._id,e,n)):a.data[e]=t;return r}static _deserialize([t,n],o,r){const a=new e(n.data);return a._attach(t,r),this._deserializeChildren(a,o,r)}static _deserializeChildren(e,t,n){const o=t.get(nn(e._id));if(void 0===o)return e;for(const[r,a]of o){const o=deserializeToLson([r,a],t,n);isLiveStructure(o)&&o._setParentLink(e,a.parentKey),e.#se.set(a.parentKey,o),e.invalidate()}return e}_attach(e,t){super._attach(e,t);for(const[e,n]of this.#se)isLiveNode(n)&&n._attach(t.generateId(),t)}_attachChild(e,t){if(void 0===this._pool)throw new Error("Can't attach child if managed pool is not present");const{id:n,opId:o,parentKey:r}=e,a=creationOpToLson(e);if(void 0!==this._pool.getNode(n))return this.#ce.get(r)===o&&this.#ce.delete(r),{modified:!1};if(0===t)this.#ce.set(r,nn(o));else if(void 0!==this.#ce.get(r))return this.#ce.get(r)===o?(this.#ce.delete(r),{modified:!1}):{modified:!1};const i=nn(this._id),s=this.#se.get(r);let l;return isLiveNode(s)?(l=s._toOps(i,r),s._detach()):l=void 0===s?[{type:6,id:i,key:r}]:[{type:3,id:i,data:{[r]:s}}],this.#se.set(r,a),this.invalidate(),isLiveStructure(a)&&(a._setParentLink(this,r),a._attach(n,this._pool)),{reverse:l,modified:{node:this,type:"LiveObject",updates:{[r]:{type:"update"}}}}}_detachChild(e){if(e){const t=nn(this._id),n=nn(e._parentKey),o=e._toOps(t,n,this._pool);for(const[t,n]of this.#se)n===e&&(this.#se.delete(t),this.invalidate());e._detach();return{modified:{node:this,type:"LiveObject",updates:{[n]:{type:"delete"}}},reverse:o}}return{modified:!1}}_detach(){super._detach();for(const e of this.#se.values())isLiveNode(e)&&e._detach()}_apply(e,t){return 3===e.type?this.#ue(e,t):6===e.type?this.#fe(e,t):super._apply(e,t)}_serialize(){const e={};for(const[t,n]of this.#se)isLiveNode(n)||(e[t]=n);return"HasParent"===this.parent.type&&this.parent.node._id?{type:0,parentId:this.parent.node._id,parentKey:this.parent.key,data:e}:{type:0,data:e}}#ue(e,t){let n=!1;const o=nn(this._id),r=[],a={type:3,id:o,data:{}};for(const t in e.data){const e=this.#se.get(t);isLiveNode(e)?(r.push(...e._toOps(o,t)),e._detach()):void 0!==e?a.data[t]=e:void 0===e&&r.push({type:6,id:o,key:t})}const i={};for(const o in e.data){const r=e.data[o];if(void 0===r)continue;if(t)this.#ce.set(o,nn(e.opId));else{if(void 0!==this.#ce.get(o)){if(this.#ce.get(o)===e.opId){this.#ce.delete(o);continue}continue}n=!0}const a=this.#se.get(o);isLiveNode(a)&&a._detach(),n=!0,i[o]={type:"update"},this.#se.set(o,r),this.invalidate()}return 0!==Object.keys(a.data).length&&r.unshift(a),n?{modified:{node:this,type:"LiveObject",updates:i},reverse:r}:{modified:!1}}#fe(e,t){const n=e.key;if(!1===this.#se.has(n))return{modified:!1};if(!t&&void 0!==this.#ce.get(n))return{modified:!1};const o=this.#se.get(n),r=nn(this._id);let a=[];return isLiveNode(o)?(a=o._toOps(r,e.key),o._detach()):void 0!==o&&(a=[{type:3,id:r,data:{[n]:o}}]),this.#se.delete(n),this.invalidate(),{modified:{node:this,type:"LiveObject",updates:{[e.key]:{type:"delete"}}},reverse:a}}toObject(){return Object.fromEntries(this.#se)}set(e,t){this._pool?.assertStorageIsWritable(),this.update({[e]:t})}get(e){return this.#se.get(e)}delete(e){this._pool?.assertStorageIsWritable();const t=e,n=this.#se.get(t);if(void 0===n)return;if(void 0===this._pool||void 0===this._id)return isLiveNode(n)&&n._detach(),this.#se.delete(t),void this.invalidate();let o;isLiveNode(n)?(n._detach(),o=n._toOps(this._id,t)):o=[{type:3,data:{[t]:n},id:this._id}],this.#se.delete(t),this.invalidate();const r=new Map;r.set(this._id,{node:this,type:"LiveObject",updates:{[e]:{type:"delete"}}}),this._pool.dispatch([{type:6,key:t,id:this._id,opId:this._pool.generateOpId()}],o,r)}update(e){if(this._pool?.assertStorageIsWritable(),void 0===this._pool||void 0===this._id){for(const t in e){const n=e[t];if(void 0===n)continue;const o=this.#se.get(t);isLiveNode(o)&&o._detach(),isLiveNode(n)&&n._setParentLink(this,t),this.#se.set(t,n),this.invalidate()}return}const t=[],n=[],o=this._pool.generateOpId(),r={},a={id:this._id,type:3,data:{}},i={};for(const s in e){const l=e[s];if(void 0===l)continue;const c=this.#se.get(s);if(isLiveNode(c)?(n.push(...c._toOps(this._id,s)),c._detach()):void 0===c?n.push({type:6,id:this._id,key:s}):a.data[s]=c,isLiveNode(l)){l._setParentLink(this,s),l._attach(this._pool.generateId(),this._pool);const e=l._toOps(this._id,s,this._pool),n=e.find(e=>e.parentId===this._id);n&&this.#ce.set(s,nn(n.opId)),t.push(...e)}else r[s]=l,this.#ce.set(s,o);this.#se.set(s,l),this.invalidate(),i[s]={type:"update"}}0!==Object.keys(a.data).length&&n.unshift(a),0!==Object.keys(r).length&&t.unshift({opId:o,id:this._id,type:3,data:r});const s=new Map;s.set(this._id,{node:this,type:"LiveObject",updates:i}),this._pool.dispatch(t,n,s)}toImmutable(){return super.toImmutable()}toTreeNode(e){return super.toTreeNode(e)}_toTreeNode(e){const t=this._id??nanoid();return{type:"LiveObject",id:t,key:e,payload:Array.from(this.#se.entries()).map(([e,n])=>isLiveNode(n)?n.toTreeNode(e):{type:"Json",id:`${t}:${e}`,key:e,payload:n})}}_toImmutable(){const e={};for(const[t,n]of this.#se)e[t]=isLiveStructure(n)?n.toImmutable():n;return e}clone(){return new e(Object.fromEntries(Array.from(this.#se).map(([e,t])=>[e,isLiveStructure(t)?t.clone():deepClone(t)])))}};function creationOpToLiveNode(e){return lsonToLiveNode(creationOpToLson(e))}function creationOpToLson(e){switch(e.type){case 8:return e.data;case 4:return new LiveObject(e.data);case 7:return new LiveMap;case 2:return new LiveList([]);default:return assertNever(e,"Unknown creation Op")}}function isSameNodeOrChildOf(e,t){return e===t||"HasParent"===e.parent.type&&isSameNodeOrChildOf(e.parent.node,t)}function deserialize$1([e,t],n,o){switch(t.type){case 0:return LiveObject._deserialize([e,t],n,o);case 1:return LiveList._deserialize([e,t],n,o);case 2:return LiveMap._deserialize([e,t],n,o);case 3:return LiveRegister._deserialize([e,t],n,o);default:throw new Error("Unexpected CRDT type")}}function deserializeToLson([e,t],n,o){switch(t.type){case 0:return LiveObject._deserialize([e,t],n,o);case 1:return LiveList._deserialize([e,t],n,o);case 2:return LiveMap._deserialize([e,t],n,o);case 3:return t.data;default:throw new Error("Unexpected CRDT type")}}function isLiveStructure(e){return isLiveList(e)||isLiveMap(e)||isLiveObject(e)}function isLiveNode(e){return isLiveStructure(e)||isLiveRegister(e)}function isLiveList(e){return e instanceof LiveList}function isLiveMap(e){return e instanceof LiveMap}function isLiveObject(e){return e instanceof LiveObject}function isLiveRegister(e){return e instanceof LiveRegister}function cloneLson(e){return void 0===e?void 0:isLiveStructure(e)?e.clone():deepClone(e)}function liveNodeToLson(e){return e instanceof LiveRegister?e.data:e instanceof LiveList||e instanceof LiveMap||e instanceof LiveObject?e:assertNever(e,"Unknown AbstractCrdt")}function lsonToLiveNode(e){return e instanceof LiveObject||e instanceof LiveMap||e instanceof LiveList?e:new LiveRegister(e)}function getTreesDiffOperations(e,t){const n=[];return e.forEach((e,o)=>{t.get(o)||n.push({type:5,id:o})}),t.forEach((t,o)=>{const r=e.get(o);if(r)0===t.type&&(0===r.type&&JSON.stringify(t.data)===JSON.stringify(r.data)||n.push({type:3,id:o,data:t.data})),t.parentKey!==r.parentKey&&n.push({type:1,id:o,parentKey:nn(t.parentKey,"Parent key must not be missing")});else switch(t.type){case 3:n.push({type:8,id:o,parentId:t.parentId,parentKey:t.parentKey,data:t.data});break;case 1:n.push({type:2,id:o,parentId:t.parentId,parentKey:t.parentKey});break;case 0:if(void 0===t.parentId||void 0===t.parentKey)throw new Error("Internal error. Cannot serialize storage root into an operation");n.push({type:4,id:o,parentId:t.parentId,parentKey:t.parentKey,data:t.data});break;case 2:n.push({type:7,id:o,parentId:t.parentId,parentKey:t.parentKey})}}),n}function mergeObjectStorageUpdates(e,t){const n=e.updates;for(const[e,o]of entries(t.updates))n[e]=o;return{...t,updates:n}}function mergeMapStorageUpdates(e,t){const n=e.updates;for(const[e,o]of entries(t.updates))n[e]=o;return{...t,updates:n}}function mergeListStorageUpdates(e,t){const n=e.updates;return{...t,updates:n.concat(t.updates)}}function mergeStorageUpdates(e,t){return void 0===e?t:"LiveObject"===e.type&&"LiveObject"===t.type?mergeObjectStorageUpdates(e,t):"LiveMap"===e.type&&"LiveMap"===t.type?mergeMapStorageUpdates(e,t):"LiveList"===e.type&&"LiveList"===t.type?mergeListStorageUpdates(e,t):t}function isJsonScalar(e){return null===e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e}function isJsonArray(e){return Array.isArray(e)}function isJsonObject(e){return!isJsonScalar(e)&&!isJsonArray(e)}function makeUser(e,t){const{connectionId:n,id:o,info:r}=e,a=canWriteStorage(e.scopes);return freeze$2(compactObject({connectionId:n,id:o,info:r,canWrite:a,canComment:canComment(e.scopes),isReadOnly:!a,presence:t}))}var ManagedOthers=class{#pe;#_e;signal;constructor(){this.#pe=new MutableSignal({connections:new Map,presences:new Map}),this.signal=DerivedSignal.from(this.#pe,e=>compact(Array.from(this.#pe.get().presences.keys()).map(e=>this.getUser(Number(e))))),this.#_e=new Map}get(){return this.signal.get()}connectionIds(){return this.#pe.get().connections.keys()}clearOthers(){this.#pe.mutate(e=>{e.connections.clear(),e.presences.clear(),this.#_e.clear()})}#me(e){const t=this.#pe.get(),n=t.connections.get(e),o=t.presences.get(e);if(void 0!==n&&void 0!==o)return makeUser(n,o)}getUser(e){const t=this.#_e.get(e);if(t)return t;const n=this.#me(e);return n?(this.#_e.set(e,n),n):void 0}#he(e){this.#_e.delete(e)}setConnection(e,t,n,o){this.#pe.mutate(r=>(r.connections.set(e,freeze$2({connectionId:e,id:t,info:n,scopes:o})),!!r.presences.has(e)&&this.#he(e)))}removeConnection(e){this.#pe.mutate(t=>{t.connections.delete(e),t.presences.delete(e),this.#he(e)})}setOther(e,t){this.#pe.mutate(n=>(n.presences.set(e,freeze$2(compactObject(t))),!!n.connections.has(e)&&this.#he(e)))}patchOther(e,t){this.#pe.mutate(n=>{const o=n.presences.get(e);if(void 0===o)return!1;const r=merge(o,t);return o!==r&&(n.presences.set(e,freeze$2(r)),this.#he(e))})}},MAX_SOCKET_MESSAGE_SIZE=1047552;function makeIdFactory(e){let t=0;return()=>`${e}:${t++}`}function userToTreeNode(e,t){return{type:"User",id:`${t.connectionId}`,key:e,payload:{connectionId:t.connectionId,id:t.id,info:t.info,presence:t.presence,isReadOnly:!t.canWrite}}}function installBackgroundTabSpy(){const e="undefined"!=typeof document?document:void 0,t={current:null};function n(){t.current="hidden"===e?.visibilityState?t.current??Date.now():null}e?.addEventListener("visibilitychange",n);return[t,()=>{e?.removeEventListener("visibilitychange",n)}]}function createRoom(e,t){const n=e.initialPresence,o=e.initialStorage,r=t.roomHttpClient,[a,i]=installBackgroundTabSpy(),s={...t.delegates,canZombie:()=>void 0!==t.backgroundKeepAliveTimeout&&null!==a.current&&Date.now()>a.current+t.backgroundKeepAliveTimeout&&"synchronizing"!==K()},l=new ManagedSocket(s,t.enableDebugLogging),c={buffer:{flushTimerID:void 0,lastFlushedAt:0,presenceUpdates:{type:"full",data:n},messages:[],storageOperations:[]},staticSessionInfoSig:new Signal(null),dynamicSessionInfoSig:new Signal(null),myPresence:new PatchableSignal(n),others:new ManagedOthers,initialStorage:o,idFactory:null,yjsProvider:void 0,yjsProviderDidChange:makeEventSource(),clock:0,opClock:0,nodes:new Map,root:void 0,undoStack:[],redoStack:[],pausedHistory:null,activeBatch:null,unacknowledgedOps:new Map,opStackTraces:void 0};let d,u;let f=!1;l.events.onMessage.subscribe(function(e){if("string"!=typeof e.data)return;const t=function(e){const t=tryParseJson(e);return void 0===t?null:isJsonArray(t)?compact(t.map(e=>$(e))):compact([$(t)])}(e.data);if(null===t||0===t.length)return;const n={storageUpdates:new Map,others:[]};for(const e of t)switch(e.type){case 101:{const t=j(e);t&&n.others.push(t);break}case 100:{const t=T(e);t&&n.others.push(t);break}case 103:{const t=c.others.get();_.customEvent.notify({connectionId:e.actor,user:e.actor<0?null:t.find(t=>t.connectionId===e.actor)??null,event:e.event});break}case 102:{const t=A(e);t&&n.others.push(t);break}case 300:_.ydoc.notify(e);break;case 104:n.others.push(O(e));break;case 200:L(e);break;case 201:{const t=S(e.ops,!1);for(const[e,o]of t.updates.storageUpdates)n.storageUpdates.set(e,mergeStorageUpdates(n.storageUpdates.get(e),o));break}case 299:errorWithTitle("Storage mutation rejection error",e.reason);break;case 400:case 407:case 401:case 408:case 405:case 406:case 402:case 403:case 404:_.comments.notify(e)}x(n)}),l.events.statusDidChange.subscribe(function(e){const t=l.authValue;if(null!==t){const e=getBearerTokenFromAuthValue(t);if(e!==d)if(d=e,"secret"===t.type){const e=t.token.parsed;c.staticSessionInfoSig.set({userId:"sec-legacy"===e.k?e.id:e.uid,userInfo:"sec-legacy"===e.k?e.info:e.ui})}else c.staticSessionInfoSig.set({userId:void 0,userInfo:void 0})}_.status.notify(e),v()}),l.events.statusDidChange.subscribe(function(e){"reconnecting"===e?u=setTimeout(()=>{_.lostConnection.notify("lost"),f=!0,c.others.clearOthers(),x({others:[{type:"reset"}]})},t.lostConnectionTimeout):(clearTimeout(u),f&&("disconnected"===e?_.lostConnection.notify("failed"):_.lostConnection.notify("restored"),f=!1))}),l.events.didConnect.subscribe(function(){c.buffer.presenceUpdates={type:"full",data:{...c.myPresence.get()}},null!==M&&U({flush:!1}),F()}),l.events.didDisconnect.subscribe(function(){clearTimeout(c.buffer.flushTimerID)}),l.events.onLiveblocksError.subscribe(e=>{_.error.notify(e)});const p={roomId:t.roomId,getNode:e=>c.nodes.get(e),addNode:(e,t)=>{c.nodes.set(e,t)},deleteNode:e=>{c.nodes.delete(e)},generateId:()=>`${R()}:${c.clock++}`,generateOpId:()=>`${R()}:${c.opClock++}`,dispatch(e,t,n){const o=c.activeBatch;if(o){for(const t of e)o.ops.push(t);for(const[e,t]of n)o.updates.storageUpdates.set(e,mergeStorageUpdates(o.updates.storageUpdates.get(e),t));o.reverseOps.unshift(...t)}else C(t),c.redoStack.length=0,P(e),x({storageUpdates:n})},assertStorageIsWritable:()=>{const e=c.dynamicSessionInfoSig.get()?.scopes;if(void 0===e)return;if(!canWriteStorage(e))throw new Error("Cannot write to storage with a read only user, please ensure the user has write permissions")}},_={status:makeEventSource(),lostConnection:makeEventSource(),customEvent:makeEventSource(),self:makeEventSource(),myPresence:makeEventSource(),others:makeEventSource(),error:makeEventSource(),storageBatch:makeEventSource(),history:makeEventSource(),storageDidLoad:makeEventSource(),storageStatus:makeEventSource(),ydoc:makeEventSource(),comments:makeEventSource()},m=t.roomId;function h(e){const n=JSON.stringify(e),o=c.dynamicSessionInfoSig.get()?.nonce;if(t.unstable_fallbackToHTTP&&o){if((new TextEncoder).encode(n).length>MAX_SOCKET_MESSAGE_SIZE)return r.sendMessages({roomId:m,nonce:o,messages:e}).then(e=>{e.ok||403!==e.status||l.reconnect()}),void warn$1("Message was too large for websockets and sent over HTTP instead")}l.send(n)}const g=DerivedSignal.from(c.staticSessionInfoSig,c.dynamicSessionInfoSig,c.myPresence,(e,t,n)=>{if(null===e||null===t)return null;{const o=canWriteStorage(t.scopes);return{connectionId:t.actor,id:e.userId,info:e.userInfo,presence:n,canWrite:o,canComment:canComment(t.scopes)}}});let b;function v(){const e=g.get();null!==e&&e!==b&&(_.self.notify(e),b=e)}const y=DerivedSignal.from(g,e=>null!==e?userToTreeNode("Me",e):null);function E(e){if(0===e.items.length)throw new Error("Internal error: cannot load storage without items");void 0!==c.root?function(e){if(void 0===c.root)return;const t=new Map;for(const[e,n]of c.nodes)t.set(e,n._serialize());const n=getTreesDiffOperations(t,new Map(e));x(S(n,!1).updates)}(e.items):c.root=LiveObject._fromItems(e.items,p);const t=g.get()?.canWrite??!0,n=c.undoStack.length;for(const e in c.initialStorage)void 0===c.root.get(e)&&(t?c.root.set(e,cloneLson(c.initialStorage[e])):warn$1(`Attempted to populate missing storage key '${e}', but current user has no write access`));c.undoStack.length=n}function w(e){c.undoStack.length>=50&&c.undoStack.shift(),c.undoStack.push(e),N()}function C(e){null!==c.pausedHistory?c.pausedHistory.unshift(...e):w(e)}function x(e){const t=e.storageUpdates,n=e.others;if(void 0!==n&&n.length>0){const e=c.others.get();for(const t of n)_.others.notify({...t,others:e})}if(e.presence&&(v(),_.myPresence.notify(c.myPresence.get())),void 0!==t&&t.size>0){const e=Array.from(t.values());_.storageBatch.notify(e)}G()}function R(){const e=c.dynamicSessionInfoSig.get();if(e)return e.actor;throw new Error("Internal. Tried to get connection id but connection was never open")}function S(e,t){const n={reverse:[],storageUpdates:new Map,presence:!1},o=new Set,r=e.map(e=>"presence"===e.type||e.opId?e:{...e,opId:p.generateOpId()});for(const e of r)if("presence"===e.type){const t={type:"presence",data:{}};for(const n in e.data)t.data[n]=c.myPresence.get()[n];if(c.myPresence.patch(e.data),null===c.buffer.presenceUpdates)c.buffer.presenceUpdates={type:"partial",data:e.data};else for(const t in e.data)c.buffer.presenceUpdates.data[t]=e.data[t];n.reverse.unshift(t),n.presence=!0}else{let r;if(t)r=0;else{const t=nn(e.opId);r=c.unacknowledgedOps.delete(t)?2:1}const a=D(e,r);if(a.modified){const t=a.modified.node._id;t&&o.has(t)||(n.storageUpdates.set(nn(a.modified.node._id),mergeStorageUpdates(n.storageUpdates.get(nn(a.modified.node._id)),a.modified)),n.reverse.unshift(...a.reverse)),2!==e.type&&7!==e.type&&4!==e.type||o.add(nn(e.id))}}return{ops:r,reverse:n.reverse,updates:{storageUpdates:n.storageUpdates,presence:n.presence}}}function D(e,t){if(isAckOp(e))return{modified:!1};switch(e.type){case 6:case 3:case 5:{const n=c.nodes.get(e.id);return void 0===n?{modified:!1}:n._apply(e,0===t)}case 1:{const n=c.nodes.get(e.id);return void 0===n?{modified:!1}:"HasParent"===n.parent.type&&isLiveList(n.parent.node)?n.parent.node._setChildKey(asPos(e.parentKey),n,t):{modified:!1}}case 4:case 2:case 7:case 8:{if(void 0===e.parentId)return{modified:!1};const n=c.nodes.get(e.parentId);return void 0===n?{modified:!1}:n._attachChild(e,t)}}}function T(e){if(void 0!==e.targetActor){const t=c.others.getUser(e.actor);c.others.setOther(e.actor,e.data);const n=c.others.getUser(e.actor);if(void 0===t&&void 0!==n)return{type:"enter",user:n}}else c.others.patchOther(e.actor,e.data);const t=c.others.getUser(e.actor);return t?{type:"update",updates:e.data,user:t}:void 0}function A(e){const t=c.others.getUser(e.actor);return t?(c.others.removeConnection(e.actor),{type:"leave",user:t}):null}function O(e){c.dynamicSessionInfoSig.set({actor:e.actor,nonce:e.nonce,scopes:e.scopes}),c.idFactory=makeIdFactory(e.actor),v();for(const t of c.others.connectionIds()){void 0===e.users[t]&&c.others.removeConnection(t)}for(const t in e.users){const n=e.users[t],o=Number(t);c.others.setConnection(o,n.id,n.info,n.scopes)}return{type:"reset"}}function I(){return c.undoStack.length>0}function k(){return c.redoStack.length>0}function N(){_.history.notify({canUndo:I(),canRedo:k()})}function j(e){c.others.setConnection(e.actor,e.id,e.info,e.scopes),c.buffer.messages.push({type:100,data:c.myPresence.get(),targetActor:e.actor}),F();const t=c.others.getUser(e.actor);return t?{type:"enter",user:t}:void 0}function $(e){return isJsonObject(e)?e:null}function F(){const e=c.buffer.storageOperations;if(e.length>0){for(const t of e)c.unacknowledgedOps.set(nn(t.opId),t);G()}if("connected"!==l.getStatus())return void(c.buffer.storageOperations=[]);const n=Date.now(),o=n-c.buffer.lastFlushedAt;if(o>=t.throttleDelay){const e=function(){const e=[];c.buffer.presenceUpdates&&e.push("full"===c.buffer.presenceUpdates.type?{type:100,targetActor:-1,data:c.buffer.presenceUpdates.data}:{type:100,data:c.buffer.presenceUpdates.data});for(const t of c.buffer.messages)e.push(t);c.buffer.storageOperations.length>0&&e.push({type:201,ops:c.buffer.storageOperations});return e}();if(0===e.length)return;h(e),c.buffer={flushTimerID:void 0,lastFlushedAt:n,messages:[],storageOperations:[],presenceUpdates:null}}else clearTimeout(c.buffer.flushTimerID),c.buffer.flushTimerID=setTimeout(F,t.throttleDelay-o)}function P(e){const{storageOperations:t}=c.buffer;for(const n of e)t.push(n);F()}let M=null,B=null;function L(e){const t=new Map(c.unacknowledgedOps);E(e),function(e){if(0===e.size)return;const t=[],n=S(Array.from(e.values()),!0);t.push({type:201,ops:n.ops}),x(n.updates),h(t)}(t),B?.(),G(),_.storageDidLoad.notify()}function U(e){const n=c.buffer.messages;t.unstable_streamData?async function(){if(!l.authValue)return;L({type:200,items:await r.streamStorage({roomId:m})})}():n.some(e=>200===e.type)||n.push({type:200}),e.flush&&F()}function V(){return null===M&&(U({flush:!0}),M=new Promise(e=>{B=e}),G()),M}function H(){const e=c.root;return void 0!==e?e:(V(),null)}async function z(){return void 0!==c.root?Promise.resolve({root:c.root}):(await V(),{root:nn(c.root)})}const q=t.createSyncSource();function K(){return void 0===c.root?null===M?"not-loaded":"loading":0===c.unacknowledgedOps.size?"synchronized":"synchronizing"}let W=K();function G(){const e=K();W!==e&&(W=e,_.storageStatus.notify(e)),q.setSyncStatus("synchronizing"===e?"synchronizing":"synchronized")}function Y(){return null!==g.get()}function J(){return null!==H()}const X=DerivedSignal.from(c.others.signal,e=>e.map((e,t)=>userToTreeNode(`Other ${t}`,e))),Z={status:_.status.observable,lostConnection:_.lostConnection.observable,customEvent:_.customEvent.observable,others:_.others.observable,self:_.self.observable,myPresence:_.myPresence.observable,error:_.error.observable,storage:_.storageBatch.observable,storageBatch:_.storageBatch.observable,history:_.history.observable,storageDidLoad:_.storageDidLoad.observable,storageStatus:_.storageStatus.observable,ydoc:_.ydoc.observable,comments:_.comments.observable};const Q=t.createSyncSource();function ee(e){return Q.setSyncStatus("synchronizing"===e?"synchronizing":"synchronized")}return Object.defineProperty({[kInternal]:{get presenceBuffer(){return deepClone(c.buffer.presenceUpdates?.data??null)},get undoStack(){return deepClone(c.undoStack)},get nodeCount(){return c.nodes.size},getYjsProvider:()=>c.yjsProvider,setYjsProvider(e){c.yjsProvider?.off("status",ee),c.yjsProvider=e,e?.on("status",ee),c.yjsProviderDidChange.notify()},yjsProviderDidChange:c.yjsProviderDidChange.observable,reportTextEditor:async function(e,t){await r.reportTextEditor({roomId:m,type:e,rootKey:t})},createTextMention:async function(e,t){return r.createTextMention({roomId:m,userId:e,mentionId:t})},deleteTextMention:async function(e){return r.deleteTextMention({roomId:m,mentionId:e})},listTextVersions:async function(){return r.listTextVersions({roomId:m})},listTextVersionsSince:async function(e){return r.listTextVersionsSince({roomId:m,since:e.since,signal:e.signal})},getTextVersion:async function(e){return r.getTextVersion({roomId:m,versionId:e})},createTextVersion:async function(){return r.createTextVersion({roomId:m})},getSelf_forDevTools:()=>y.get(),getOthers_forDevTools:()=>X.get(),simulate:{explicitClose:e=>l._privateSendMachineEvent({type:"EXPLICIT_SOCKET_CLOSE",event:e}),rawSend:e=>l.send(e)},attachmentUrlsStore:r.getOrCreateAttachmentUrlsStore(m)},id:t.roomId,subscribe:makeClassicSubscribeFn(Z),connect:()=>l.connect(),reconnect:()=>l.reconnect(),disconnect:()=>l.disconnect(),destroy:()=>{q.destroy(),c.yjsProvider?.off("status",ee),Q.destroy(),i(),l.destroy()},updatePresence:function(e,t){const n={};null===c.buffer.presenceUpdates&&(c.buffer.presenceUpdates={type:"partial",data:{}});for(const t in e){const o=e[t];void 0!==o&&(c.buffer.presenceUpdates.data[t]=o,n[t]=c.myPresence.get()[t])}c.myPresence.patch(e),c.activeBatch?(t?.addToHistory&&c.activeBatch.reverseOps.unshift({type:"presence",data:n}),c.activeBatch.updates.presence=!0):(F(),t?.addToHistory&&C([{type:"presence",data:n}]),x({presence:!0}))},updateYDoc:function(e,t){const n={type:301,update:e,guid:t};c.buffer.messages.push(n),_.ydoc.notify(n),F()},broadcastEvent:function(e,t={shouldQueueEventIfNotReady:!1}){("connected"===l.getStatus()||t.shouldQueueEventIfNotReady)&&(c.buffer.messages.push({type:103,event:e}),F())},batch:function(e){if(c.activeBatch)return e();let t;c.activeBatch={ops:[],updates:{storageUpdates:new Map,presence:!1,others:[]},reverseOps:[]};try{t=e()}finally{const e=c.activeBatch;c.activeBatch=null,e.reverseOps.length>0&&C(e.reverseOps),e.ops.length>0&&(c.redoStack.length=0),e.ops.length>0&&P(e.ops),x(e.updates),F()}return t},history:{undo:function(){if(c.activeBatch)throw new Error("undo is not allowed during a batch");const e=c.undoStack.pop();if(void 0===e)return;c.pausedHistory=null;const t=S(e,!0);x(t.updates),c.redoStack.push(t.reverse),N();for(const e of t.ops)"presence"!==e.type&&c.buffer.storageOperations.push(e);F()},redo:function(){if(c.activeBatch)throw new Error("redo is not allowed during a batch");const e=c.redoStack.pop();if(void 0===e)return;c.pausedHistory=null;const t=S(e,!0);x(t.updates),c.undoStack.push(t.reverse),N();for(const e of t.ops)"presence"!==e.type&&c.buffer.storageOperations.push(e);F()},canUndo:I,canRedo:k,clear:function(){c.undoStack.length=0,c.redoStack.length=0},pause:function(){null===c.pausedHistory&&(c.pausedHistory=[])},resume:function(){const e=c.pausedHistory;c.pausedHistory=null,null!==e&&e.length>0&&w(e)}},fetchYDoc:function(e,t){c.buffer.messages.find(n=>300===n.type&&n.vector===e&&n.guid===t)||c.buffer.messages.push({type:300,vector:e,guid:t}),F()},getStorage:z,getStorageSnapshot:H,getStorageStatus:K,isPresenceReady:Y,isStorageReady:J,waitUntilPresenceReady:memoizeOnSuccess(async function(){for(;!Y();){const{promise:e,resolve:t}=Promise_withResolvers(),n=Z.self.subscribeOnce(t),o=Z.status.subscribeOnce(t);await e,n(),o()}}),waitUntilStorageReady:memoizeOnSuccess(async function(){for(;!J();)await z()}),events:Z,getStatus:()=>l.getStatus(),getSelf:()=>g.get(),getPresence:()=>c.myPresence.get(),getOthers:()=>c.others.get(),getThreads:async function(e){return r.getThreads({roomId:m,query:e?.query,cursor:e?.cursor})},getThreadsSince:async function(e){return r.getThreadsSince({roomId:m,since:e.since,signal:e.signal})},getThread:async function(e){return r.getThread({roomId:m,threadId:e})},createThread:async function(e){return r.createThread({roomId:m,threadId:e.threadId,commentId:e.commentId,metadata:e.metadata,body:e.body,attachmentIds:e.attachmentIds})},deleteThread:async function(e){return r.deleteThread({roomId:m,threadId:e})},editThreadMetadata:async function({metadata:e,threadId:t}){return r.editThreadMetadata({roomId:m,threadId:t,metadata:e})},markThreadAsResolved:async function(e){return r.markThreadAsResolved({roomId:m,threadId:e})},markThreadAsUnresolved:async function(e){return r.markThreadAsUnresolved({roomId:m,threadId:e})},createComment:async function(e){return r.createComment({roomId:m,threadId:e.threadId,commentId:e.commentId,body:e.body,attachmentIds:e.attachmentIds})},editComment:async function(e){return r.editComment({roomId:m,threadId:e.threadId,commentId:e.commentId,body:e.body,attachmentIds:e.attachmentIds})},deleteComment:async function({threadId:e,commentId:t}){return r.deleteComment({roomId:m,threadId:e,commentId:t})},addReaction:async function({threadId:e,commentId:t,emoji:n}){return r.addReaction({roomId:m,threadId:e,commentId:t,emoji:n})},removeReaction:async function({threadId:e,commentId:t,emoji:n}){return await r.removeReaction({roomId:m,threadId:e,commentId:t,emoji:n})},prepareAttachment:function(e){return{type:"localAttachment",status:"idle",id:createCommentAttachmentId(),name:e.name,size:e.size,mimeType:e.type,file:e}},uploadAttachment:async function(e,t={}){return r.uploadAttachment({roomId:m,attachment:e,signal:t.signal})},getAttachmentUrl:function(e){return r.getAttachmentUrl({roomId:m,attachmentId:e})},getNotificationSettings:function(e){return r.getNotificationSettings({roomId:m,signal:e?.signal})},updateNotificationSettings:function(e){return r.updateNotificationSettings({roomId:m,settings:e})},markInboxNotificationAsRead:async function(e){await r.markRoomInboxNotificationAsRead({roomId:m,inboxNotificationId:e})}},kInternal,{enumerable:!1})}function makeClassicSubscribeFn(e){return function(t,n,o){if("string"==typeof t&&isRoomEventName(t)){if("function"!=typeof n)throw new Error("Second argument must be a callback function");const o=n;switch(t){case"event":return e.customEvent.subscribe(o);case"my-presence":return e.myPresence.subscribe(o);case"others":{const t=o;return e.others.subscribe(e=>{const{others:n,...o}=e;return t(n,o)})}case"error":return e.error.subscribe(o);case"status":return e.status.subscribe(o);case"lost-connection":return e.lostConnection.subscribe(o);case"history":return e.history.subscribe(o);case"storage-status":return e.storageStatus.subscribe(o);case"comments":return e.comments.subscribe(o);default:return assertNever(t,`"${String(t)}" is not a valid event name`)}}if(void 0===n||"function"==typeof t){if("function"==typeof t){const n=t;return e.storageBatch.subscribe(n)}throw new Error("Please specify a listener callback")}if(isLiveNode(t)){const r=t;if(o?.isDeep){return function(t,n){return e.storageBatch.subscribe(e=>{const o=e.filter(e=>isSameNodeOrChildOf(e.node,t));o.length>0&&n(o)})}(r,n)}return function(t,n){return e.storageBatch.subscribe(e=>{for(const o of e)o.node._id===t._id&&n(o.node)})}(r,n)}throw new Error(`${String(t)} is not a value that can be subscribed to.`)}}function isRoomEventName(e){return"my-presence"===e||"others"===e||"event"===e||"error"===e||"history"===e||"status"===e||"storage-status"===e||"lost-connection"===e||"connection"===e||"comments"===e}function makeAuthDelegateForRoom(e,t){return async()=>t.getAuthValue({requestedScope:"room:read",roomId:e})}function makeCreateSocketDelegateForRoom(e,t,n){return o=>{const r=n??("undefined"==typeof WebSocket?void 0:WebSocket);if(void 0===r)throw new StopRetrying("To use Liveblocks client in a non-DOM environment, you need to provide a WebSocket polyfill.");const a=new URL(t);if(a.protocol="http:"===a.protocol?"ws":"wss",a.pathname="/v7",a.searchParams.set("roomId",e),"secret"===o.type)a.searchParams.set("tok",o.token.raw);else{if("public"!==o.type)return assertNever(o,"Unhandled case");a.searchParams.set("pubkey",o.publicApiKey)}return a.searchParams.set("version",PKG_VERSION$2),new r(a.toString())}}var MIN_THROTTLE=16,MAX_THROTTLE=1e3,DEFAULT_THROTTLE=100,MIN_BACKGROUND_KEEP_ALIVE_TIMEOUT=15e3,MIN_LOST_CONNECTION_TIMEOUT=200,RECOMMENDED_MIN_LOST_CONNECTION_TIMEOUT=1e3,MAX_LOST_CONNECTION_TIMEOUT=3e4,DEFAULT_LOST_CONNECTION_TIMEOUT=5e3,RESOLVE_USERS_BATCH_DELAY=50,RESOLVE_ROOMS_INFO_BATCH_DELAY=50;function getBaseUrl(e){return"string"==typeof e&&e.startsWith("http")?e:DEFAULT_BASE_URL}function createClient(e){const t=e,n=getThrottle(t.throttle??DEFAULT_THROTTLE),o=getLostConnectionTimeout(t.lostConnectionTimeout??DEFAULT_LOST_CONNECTION_TIMEOUT),r=getBackgroundKeepAliveTimeout(t.backgroundKeepAliveTimeout),a=getBaseUrl(t.baseUrl),i=new Signal(void 0),s=createAuthManager(e,e=>{const t="sec-legacy"===e.k?e.id:e.uid;i.set(()=>t)}),l=t.polyfills?.fetch||globalThis.fetch?.bind(globalThis),c=createApiClient({baseUrl:a,fetchPolyfill:l,authManager:s}),d=new Map;function u(e){const t=()=>{const n=t;var o;e.unsubs.delete(n)?0===e.unsubs.size&&(unlinkDevTools((o=e.room).id),d.delete(o.id),o.destroy()):warn$1("This leave function was already called. Calling it more than once has no effect.")};return e.unsubs.add(t),{room:e.room,leave:t}}const f=t.resolveUsers,p=createDevelopmentWarning(()=>!f,"Set the resolveUsers option in createClient to specify user info."),_=createBatchStore(new Batch(async e=>{const t=e.flat(),n=await(f?.({userIds:t}));return p(),n??t.map(()=>{})},{delay:RESOLVE_USERS_BATCH_DELAY}));const m=t.resolveRoomsInfo,h=createDevelopmentWarning(()=>!m,"Set the resolveRoomsInfo option in createClient to specify room info."),g=createBatchStore(new Batch(async e=>{const t=e.flat(),n=await(m?.({roomIds:t}));return h(),n??t.map(()=>{})},{delay:RESOLVE_ROOMS_INFO_BATCH_DELAY}));const b=new Map;const v=[],y=new Signal("synchronized");function E(){y.set(v.some(e=>"synchronizing"===e.get())?"synchronizing":v.some(e=>"has-local-changes"===e.get())?"has-local-changes":"synchronized")}function w(){const e=new Signal("synchronized");v.push(e);const t=e.subscribe(()=>E());return{setSyncStatus:function(t){e.set(t)},destroy:function(){t();const n=v.findIndex(t=>t===e);if(n>-1){const[e]=v.splice(n,1);"synchronized"!==e.get()&&E()}}}}{const e=e=>{t.preventUnsavedChanges&&"synchronized"!==y.get()&&e.preventDefault()},n="undefined"!=typeof window?window:void 0;n?.addEventListener("beforeunload",e)}const C=Object.defineProperty({enterRoom:function(e,...i){const l=d.get(e);if(void 0!==l)return u(l);const f=i[0]??{},p=createRoom({initialPresence:("function"==typeof f.initialPresence?f.initialPresence(e):f.initialPresence)??{},initialStorage:("function"==typeof f.initialStorage?f.initialStorage(e):f.initialStorage)??{}},{roomId:e,throttleDelay:n,lostConnectionTimeout:o,backgroundKeepAliveTimeout:r,polyfills:t.polyfills,delegates:t.mockedDelegates??{createSocket:makeCreateSocketDelegateForRoom(e,a,t.polyfills?.WebSocket),authenticate:makeAuthDelegateForRoom(e,s)},enableDebugLogging:t.enableDebugLogging,baseUrl:a,unstable_fallbackToHTTP:!!t.unstable_fallbackToHTTP,unstable_streamData:!!t.unstable_streamData,roomHttpClient:c,createSyncSource:w}),_={room:p,unsubs:new Set};if(d.set(e,_),f.autoConnect??!0){if("undefined"==typeof atob){if(void 0===t.polyfills?.atob)throw new Error("You need to polyfill atob to use the client in your environment. Please follow the instructions at https://liveblocks.io/docs/errors/liveblocks-client/atob-polyfill");global.atob=t.polyfills.atob}p.connect()}return u(_)},getRoom:function(e){const t=d.get(e)?.room;return t||null},logout:function(){s.reset(),i.set(()=>{});for(const{room:e}of d.values())isIdle(e.getStatus())||e.reconnect()},getInboxNotifications:c.getInboxNotifications,getInboxNotificationsSince:c.getInboxNotificationsSince,getUnreadInboxNotificationsCount:c.getUnreadInboxNotificationsCount,markAllInboxNotificationsAsRead:c.markAllInboxNotificationsAsRead,markInboxNotificationAsRead:c.markInboxNotificationAsRead,deleteAllInboxNotifications:c.deleteAllInboxNotifications,deleteInboxNotification:c.deleteInboxNotification,resolvers:{invalidateUsers:function(e){_.invalidate(e)},invalidateRoomsInfo:function(e){g.invalidate(e)},invalidateMentionSuggestions:function(){b.clear()}},getSyncStatus:function(){const e=y.get();return"synchronizing"===e?e:"synchronized"},events:{syncStatus:y},[kInternal]:{currentUserId:i,mentionSuggestionsCache:b,resolveMentionSuggestions:t.resolveMentionSuggestions,usersStore:_,roomsInfoStore:g,getRoomIds:()=>Array.from(d.keys()),httpClient:c,as:()=>C,createSyncSource:w}},kInternal,{enumerable:!1});return C}function checkBounds(e,t,n,o,r){if("number"!=typeof t||t<n||void 0!==o&&t>o)throw new Error(void 0!==o?`${e} should be between ${r??n} and ${o}.`:`${e} should be at least ${r??n}.`);return t}function getBackgroundKeepAliveTimeout(e){if(void 0!==e)return checkBounds("backgroundKeepAliveTimeout",e,MIN_BACKGROUND_KEEP_ALIVE_TIMEOUT)}function getThrottle(e){return checkBounds("throttle",e,MIN_THROTTLE,MAX_THROTTLE)}function getLostConnectionTimeout(e){return checkBounds("lostConnectionTimeout",e,MIN_LOST_CONNECTION_TIMEOUT,MAX_LOST_CONNECTION_TIMEOUT,RECOMMENDED_MIN_LOST_CONNECTION_TIMEOUT)}function createDevelopmentWarning(e,...t){return()=>{}}function isCommentBodyParagraph(e){return"type"in e&&"paragraph"===e.type}function isCommentBodyText$1(e){return!("type"in e)&&"text"in e&&"string"==typeof e.text}function isCommentBodyMention$1(e){return"type"in e&&"mention"===e.type}function isCommentBodyLink$1(e){return"type"in e&&"link"===e.type}var commentBodyElementsGuards={paragraph:isCommentBodyParagraph,text:isCommentBodyText$1,link:isCommentBodyLink$1,mention:isCommentBodyMention$1},commentBodyElementsTypes={paragraph:"block",text:"inline",link:"inline",mention:"inline"};function traverseCommentBody(e,t,n){if(!e||!e?.content)return;const o="string"==typeof t?t:void 0,r=o?commentBodyElementsTypes[o]:"all",a=o?commentBodyElementsGuards[o]:()=>!0,i="function"==typeof t?t:n;for(const t of e.content)if("all"!==r&&"block"!==r||a(t)&&i?.(t),"all"===r||"inline"===r)for(const e of t.children)a(e)&&i?.(e)}function getMentionedIdsFromCommentBody(e){const t=new Set;return traverseCommentBody(e,"mention",e=>t.add(e.id)),Array.from(t)}var htmlEscapables={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};new RegExp(Object.keys(htmlEscapables).map(e=>`\\${e}`).join("|"),"g");var markdownEscapables={_:"\\_","*":"\\*","#":"\\#","`":"\\`","~":"\\~","!":"\\!","|":"\\|","(":"\\(",")":"\\)","{":"\\{","}":"\\}","[":"\\[","]":"\\]"};new RegExp(Object.keys(markdownEscapables).map(e=>`\\${e}`).join("|"),"g");var BACKOFF_DELAYS2=[1e3,2e3,4e3,8e3,1e4];function makePoller(e,t,n){const o=performance.now(),r="undefined"!=typeof document?document:void 0,a="undefined"!=typeof window?window:void 0,i=n?.maxStaleTimeMs??Number.POSITIVE_INFINITY,s={inForeground:"hidden"!==r?.visibilityState,lastSuccessfulPollAt:o,count:0,backoff:0};function l(){return s.count>0&&s.inForeground}const c=new FSM({}).addState("@idle").addState("@enabled").addState("@polling");function d(){l()?c.send({type:"START"}):c.send({type:"STOP"})}function u(){performance.now()-s.lastSuccessfulPollAt>i&&c.send({type:"POLL"})}function f(e){s.inForeground=e,d(),u()}function p(){f("hidden"!==r?.visibilityState)}return c.addTransitions("@idle",{START:"@enabled"}),c.addTransitions("@enabled",{STOP:"@idle",POLL:"@polling"}),c.addTimedTransition("@enabled",()=>{const e=s.lastSuccessfulPollAt+t;return Math.max(0,e-performance.now())+s.backoff},"@polling"),c.onEnterAsync("@polling",async(t,n)=>{await e(n),n.aborted||(s.lastSuccessfulPollAt=performance.now())},()=>({target:l()?"@enabled":"@idle",effect:()=>{s.backoff=0}}),()=>({target:l()?"@enabled":"@idle",effect:()=>{s.backoff=BACKOFF_DELAYS2.find(e=>e>s.backoff)??BACKOFF_DELAYS2[BACKOFF_DELAYS2.length-1]}}),3e4),r?.addEventListener("visibilitychange",p),a?.addEventListener("online",p),c.start(),{inc:function(){s.count++,d()},dec:function(){s.count--,s.count<0&&(s.count=0),d()},pollNowIfStale:u,setInForeground:f}}function shallowArray(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Object.is(e[n],t[n]))return!1;return!0}function shallowObj(e,t){if(!isPlainObject$2(e)||!isPlainObject$2(t))return!1;const n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(n=>Object.prototype.hasOwnProperty.call(t,n)&&Object.is(e[n],t[n]))}function shallow(e,t){if(Object.is(e,t))return!0;const n=Array.isArray(e),o=Array.isArray(t);return n||o?!(!n||!o)&&shallowArray(e,t):shallowObj(e,t)}function bisectRight(e,t,n){let o=0,r=e.length;for(;o<r;){const a=o+(r-o>>1);n(t,e[a])?r=a:o=a+1}return o}var SortedList=class e{#z;#ge;constructor(e,t){this.#ge=t,this.#z=e}static from(t,n){const o=new e([],n);for(const e of t)o.add(e);return o}static fromAlreadySorted(t,n){return new e(t,n)}clone(){return new e(this.#z.slice(),this.#ge)}add(e){const t=bisectRight(this.#z,e,this.#ge);this.#z.splice(t,0,e)}remove(e){const t=this.#z.indexOf(e);return t>=0&&(this.#z.splice(t,1),!0)}get length(){return this.#z.length}*filter(e){for(const t of this.#z)e(t)&&(yield t)}[Symbol.iterator](){return this.#z[Symbol.iterator]()}};detectDupes(PKG_NAME$2,PKG_VERSION$2,PKG_FORMAT$2);var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==global?global:"undefined"!=typeof self?self:{},jsxRuntime={exports:{}},reactJsxRuntime_production_min={},hasRequiredReactJsxRuntime_production_min;function requireReactJsxRuntime_production_min(){if(hasRequiredReactJsxRuntime_production_min)return reactJsxRuntime_production_min;hasRequiredReactJsxRuntime_production_min=1;var e=React__default.default,t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,r=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function i(e,n,i){var s,l={},c=null,d=null;for(s in void 0!==i&&(c=""+i),void 0!==n.key&&(c=""+n.key),void 0!==n.ref&&(d=n.ref),n)o.call(n,s)&&!a.hasOwnProperty(s)&&(l[s]=n[s]);if(e&&e.defaultProps)for(s in n=e.defaultProps)void 0===l[s]&&(l[s]=n[s]);return{$$typeof:t,type:e,key:c,ref:d,props:l,_owner:r.current}}return reactJsxRuntime_production_min.Fragment=n,reactJsxRuntime_production_min.jsx=i,reactJsxRuntime_production_min.jsxs=i,reactJsxRuntime_production_min}!function(e){e.exports=requireReactJsxRuntime_production_min()}(jsxRuntime);var PKG_NAME$1="@liveblocks/client",PKG_VERSION$1="2.15.1",PKG_FORMAT$1="esm";detectDupes(PKG_NAME$1,PKG_VERSION$1,PKG_FORMAT$1);var RoomContext=React.createContext(null);function useRoomOrNull(){return React.useContext(RoomContext)}function is$1(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}function useSyncExternalStoreWithSelector(e,t,n,o,r){const a=React.useRef(null);let i;null===a.current?(i={hasValue:!1,value:null},a.current=i):i=a.current;const[s,l]=React.useMemo(()=>{let e,a,s=!1;const l=t=>{if(!s){s=!0,e=t;const n=o(t);if(void 0!==r&&i.hasValue){const e=i.value;if(r(e,n))return a=e,e}return a=n,n}const n=a;if(is$1(e,t))return n;const l=o(t);return void 0!==r&&r(n,l)?(e=t,n):(e=t,a=l,l)},c=void 0===n?null:n;return[()=>l(t()),null===c?void 0:()=>l(c())]},[t,n,o,r]),c=React.useSyncExternalStore(e,s,l);return React.useEffect(()=>{i.hasValue=!0,i.value=c},[c]),React.useDebugValue(c),c}var SECONDS=1e3,MINUTES=60*SECONDS,config$1={SMOOTH_DELAY:1*SECONDS,NOTIFICATIONS_POLL_INTERVAL:1*MINUTES,NOTIFICATIONS_MAX_STALE_TIME:5*SECONDS,ROOM_THREADS_POLL_INTERVAL:5*MINUTES,ROOM_THREADS_MAX_STALE_TIME:5*SECONDS,USER_THREADS_POLL_INTERVAL:1*MINUTES,USER_THREADS_MAX_STALE_TIME:5*SECONDS,HISTORY_VERSIONS_POLL_INTERVAL:1*MINUTES,HISTORY_VERSIONS_MAX_STALE_TIME:5*SECONDS,NOTIFICATION_SETTINGS_POLL_INTERVAL:1*MINUTES,NOTIFICATION_SETTINGS_MAX_STALE_TIME:5*SECONDS};function shallow2(e,t){if(!isPlainObject$2(e)||!isPlainObject$2(t))return shallow(e,t);const n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(n=>Object.prototype.hasOwnProperty.call(t,n)&&shallow(e[n],t[n]))}function useLatest$1(e){const t=React.useRef(e);return React.useEffect(()=>{t.current=e},[e]),t}var noop$2=e=>e;function useInitial$1(e){return React.useReducer(noop$2,e)[0]}function useInitialUnlessFunction(e){const t=useInitial$1(e);if("function"==typeof t){const t=useLatest$1(e);return React.useCallback((...e)=>t.current(...e),[t])}return t}var use=e=>{if("pending"===e.status)throw e;if("fulfilled"===e.status)return e.value;throw"rejected"===e.status?e.reason:(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e)};function autobind(e){const t=new Set;t.add("constructor");let n=e.constructor.prototype;do{for(const o of Reflect.ownKeys(n)){if(t.has(o))continue;const r=Reflect.getOwnPropertyDescriptor(n,o);"function"==typeof r?.value&&(t.add(o),e[o]=e[o].bind(e))}}while((n=Reflect.getPrototypeOf(n))&&n!==Object.prototype)}function find(e,t){for(const n of e)if(t(n))return n}function isStartsWith(e){return isPlainObject$2(e)&&isString(e.startsWith)}function isString(e){return"string"==typeof e}function makeThreadsFilter(e){return t=>matchesQuery(t,e)&&matchesMetadata(t,e)}function matchesQuery(e,t){return void 0===t.resolved||e.resolved===t.resolved}function matchesMetadata(e,t){const n=e.metadata;return void 0===t.metadata||Object.entries(t.metadata).every(([e,t])=>matchesOperator(n[e],t))}function matchesOperator(e,t){return isStartsWith(t)?isString(e)&&e.startsWith(t.startsWith):e===t}function sanitizeThread(e){if(e.deletedAt&&e.comments.length>0)return{...e,comments:[]};return e.comments.some(e=>!e.deletedAt)?e:{...e,deletedAt:new Date,comments:[]}}var ThreadDB=class e{#be;#ve;#ye;signal;constructor(){this.#ve=SortedList.from([],(e,t)=>{const n=e.createdAt,o=t.createdAt;return n<o||n===o&&e.id<t.id}),this.#ye=SortedList.from([],(e,t)=>{const n=t.updatedAt,o=e.updatedAt;return n<o||n===o&&t.id<e.id}),this.#be=new Map,this.signal=new MutableSignal(this)}clone(){const t=new e;return t.#be=new Map(this.#be),t.#ve=this.#ve.clone(),t.#ye=this.#ye.clone(),t}get(e){const t=this.getEvenIfDeleted(e);return t?.deletedAt?void 0:t}getEvenIfDeleted(e){return this.#be.get(e)}upsert(e){this.signal.mutate(()=>{const t=(e=sanitizeThread(e)).id,n=this.#be.get(t);if(n){if(n.deletedAt)return!1;this.#ve.remove(n),this.#ye.remove(n)}return e.deletedAt||(this.#ve.add(e),this.#ye.add(e)),this.#be.set(t,e),!0})}upsertIfNewer(e){const t=this.get(e.id);(!t||e.updatedAt>=t.updatedAt)&&this.upsert(e)}applyDelta(e){batch(()=>{for(const t of e.newThreads)this.upsertIfNewer(t);for(const{id:t,deletedAt:n}of e.deletedThreads){this.getEvenIfDeleted(t)&&this.delete(t,n)}})}delete(e,t){const n=this.#be.get(e);n&&!n.deletedAt&&this.upsert({...n,deletedAt:t,updatedAt:t})}findMany(e,t,n){const o="desc"===n?this.#ye:this.#ve,r=[];return void 0!==e&&r.push(t=>t.roomId===e),r.push(makeThreadsFilter(t)),Array.from(o.filter(e=>r.every(t=>t(e))))}};function makeRoomThreadsQueryKey(e,t){return`${e}-${stringify(t??{})}`}function makeUserThreadsQueryKey(e){return`USER_THREADS:${stringify(e??{})}`}function makeNotificationSettingsQueryKey(e){return`${e}:NOTIFICATION_SETTINGS`}function makeVersionsQueryKey(e){return`${e}-VERSIONS`}function usify(e){if("status"in e)return e;const t=e;return t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}),t}var noop2=Promise.resolve(),ASYNC_LOADING=Object.freeze({isLoading:!0}),PaginatedResource=class{observable;#O;#Ee;#we;#Ce;constructor(e){this.#we=null,this.#Ee=e,this.#O=makeEventSource(),this.#Ce=null,this.observable=this.#O.observable,autobind(this)}#xe(e){const t=this.#we;null!==t&&(this.#we={...t,...e},this.#O.notify())}async#Re(){const e=this.#we;if(e?.cursor){this.#xe({isFetchingMore:!0});try{const t=await this.#Ee(e.cursor);this.#xe({cursor:t,fetchMoreError:void 0,isFetchingMore:!1})}catch(e){this.#xe({isFetchingMore:!1,fetchMoreError:e})}}}fetchMore(){const e=this.#we;return null===e?.cursor?noop2:(this.#Ce||(this.#Ce=this.#Re().finally(()=>{this.#Ce=null})),this.#Ce)}get(){const e=this.#Se;if(null===e||"pending"===e.status)return ASYNC_LOADING;if("rejected"===e.status)return{isLoading:!1,error:e.reason};const t=this.#we;return{isLoading:!1,data:{fetchMore:this.fetchMore,isFetchingMore:t.isFetchingMore,fetchMoreError:t.fetchMoreError,hasFetchedAll:null===t.cursor}}}#Se=null;waitUntilLoaded(){if(this.#Se)return this.#Se;const e=usify(autoRetry(()=>this.#Ee(void 0),5,[5e3,5e3,1e4,15e3]).then(e=>{this.#we={cursor:e,isFetchingMore:!1,fetchMoreError:void 0}}));return e.then(()=>this.#O.notify(),()=>{this.#O.notify(),setTimeout(()=>{this.#Se=null,this.#O.notify()},5e3)}),this.#Se=e,e}},SinglePageResource=class{observable;#O;#Ee;constructor(e){this.#Ee=e,this.#O=makeEventSource(),this.observable=this.#O.observable,autobind(this)}get(){const e=this.#Se;return null===e||"pending"===e.status?ASYNC_LOADING:"rejected"===e.status?{isLoading:!1,error:e.reason}:{isLoading:!1,data:void 0}}#Se=null;waitUntilLoaded(){if(this.#Se)return this.#Se;const e=usify(autoRetry(()=>this.#Ee(),5,[5e3,5e3,1e4,15e3]));return e.then(()=>this.#O.notify(),()=>{this.#O.notify(),setTimeout(()=>{this.#Se=null,this.#O.notify()},5e3)}),this.#Se=e,e}};function createStore_forNotifications(){const e=new MutableSignal(new Map);return{signal:e.asReadonly(),markAllRead:function(t){e.mutate(e=>{for(const n of e.values())n.readAt=t})},markRead:function(t,n){e.mutate(e=>{const o=e.get(t);return!!o&&(e.set(t,{...o,readAt:n}),!0)})},delete:function(t){e.mutate(e=>e.delete(t))},applyDelta:function(t,n){e.mutate(e=>{let o=!1;for(const n of t){const t=e.get(n.id);if(t){if(1===compareInboxNotifications(t,n))continue}e.set(n.id,n),o=!0}for(const t of n)e.delete(t.id),o=!0;return o})},clear:function(){e.mutate(e=>e.clear())},updateAssociatedNotification:function(t){e.mutate(e=>{const n=find(e.values(),e=>"thread"===e.kind&&e.threadId===t.threadId);return!!n&&(e.set(n.id,{...n,notifiedAt:t.createdAt,readAt:t.createdAt}),!0)})},force_set:t=>e.mutate(t),invalidate:()=>e.mutate()}}function createStore_forRoomNotificationSettings(){const e=new MutableSignal(new Map);return{signal:e.asReadonly(),update:function(t,n){e.mutate(e=>{e.set(t,n)})},invalidate:()=>e.mutate()}}function createStore_forHistoryVersions(){const e=new MutableSignal(new Map);return{signal:e.asReadonly(),update:function(t,n){e.mutate(e=>{const o=e.get(t)??(e.set(t,new Map),e.get(t));for(const e of n)o.set(e.id,e)})},force_set:t=>e.mutate(t),invalidate:()=>e.mutate()}}function createStore_forPermissionHints(){const e=new Signal({});return{signal:e.asReadonly(),update:function(t){e.set(e=>{const n={...e};for(const[e,o]of Object.entries(t)){const t=n[e]??new Set;for(const e of o)t.add(e);n[e]=t}return n})},invalidate:()=>e.set(e=>({...e}))}}function createStore_forOptimistic(e){const t=new Signal([]),n=e[kInternal].createSyncSource();return t.subscribe(()=>n.setSyncStatus(t.get().length>0?"synchronizing":"synchronized")),{signal:t.asReadonly(),add:function(e){const n=nanoid(),o={...e,id:n};return t.set(e=>[...e,o]),n},remove:function(e){t.set(t=>t.filter(t=>t.id!==e))},invalidate:()=>t.set(e=>[...e])}}var UmbrellaStore=class{#De;threads;notifications;roomNotificationSettings;historyVersions;permissionHints;optimisticUpdates;outputs;#Te=null;#Ae;#Oe=new Map;#Ie=new Map;#ke=null;#Ne=new Map;#je=new Map;#$e=new Map;#Fe=new Map;constructor(e){this.#De=e[kInternal].as(),this.optimisticUpdates=createStore_forOptimistic(this.#De),this.permissionHints=createStore_forPermissionHints();this.#Ae=new PaginatedResource(async e=>{const t=await this.#De.getInboxNotifications({cursor:e});this.updateThreadifications(t.threads,t.inboxNotifications),null===this.#Te&&(this.#Te=t.requestedAt);return t.nextCursor}),this.#Ae.observable.subscribe(()=>this.invalidateEntireStore()),this.threads=new ThreadDB,this.notifications=createStore_forNotifications(),this.roomNotificationSettings=createStore_forRoomNotificationSettings(),this.historyVersions=createStore_forHistoryVersions();const t=DerivedSignal.from(this.threads.signal,this.notifications.signal,this.optimisticUpdates.signal,(e,t,n)=>applyOptimisticUpdates_forThreadifications(e,t,n)),n=DerivedSignal.from(t,e=>({threadsDB:e.threadsDB}),shallow),o=DerivedSignal.from(t,e=>({sortedNotifications:e.sortedNotifications,notificationsById:e.notificationsById}),shallow),r=DerivedSignal.from(this.roomNotificationSettings.signal,this.optimisticUpdates.signal,(e,t)=>applyOptimisticUpdates_forSettings(e,t)),a=DerivedSignal.from(this.historyVersions.signal,e=>Object.fromEntries([...e].map(([e,t])=>[e,Object.fromEntries(t)])));this.outputs={threadifications:t,threads:n,notifications:o,settingsByRoomId:r,versionsByRoomId:a},autobind(this)}get1_both(){return this.outputs.threadifications.get()}subscribe1_both(e){return this.outputs.threadifications.subscribe(e)}get1_threads(){return this.outputs.threads.get()}subscribe1_threads(e){return this.outputs.threads.subscribe(e)}get1_notifications(){return this.outputs.notifications.get()}subscribe1_notifications(e){return this.outputs.notifications.subscribe(e)}get2(){return this.outputs.settingsByRoomId.get()}subscribe2(e){return this.outputs.settingsByRoomId.subscribe(e)}get3(){return this.outputs.versionsByRoomId.get()}subscribe3(e){return this.outputs.versionsByRoomId.subscribe(e)}getRoomThreadsLoadingState(e,t){const n=makeRoomThreadsQueryKey(e,t),o=this.#Ie.get(n);if(void 0===o)return ASYNC_LOADING;const r=o.get();if(r.isLoading||r.error)return r;const a=this.get1_threads().threadsDB.findMany(e,t??{},"asc"),i=r.data;return{isLoading:!1,threads:a,hasFetchedAll:i.hasFetchedAll,isFetchingMore:i.isFetchingMore,fetchMoreError:i.fetchMoreError,fetchMore:i.fetchMore}}getUserThreadsLoadingState(e){const t=makeUserThreadsQueryKey(e),n=this.#Ne.get(t);if(void 0===n)return ASYNC_LOADING;const o=n.get();if(o.isLoading||o.error)return o;const r=this.get1_threads().threadsDB.findMany(void 0,e??{},"desc"),a=o.data;return{isLoading:!1,threads:r,hasFetchedAll:a.hasFetchedAll,isFetchingMore:a.isFetchingMore,fetchMoreError:a.fetchMoreError,fetchMore:a.fetchMore}}getInboxNotificationsLoadingState(){const e=this.#Ae.get();if(e.isLoading||e.error)return e;const t=e.data;return{isLoading:!1,inboxNotifications:this.get1_notifications().sortedNotifications,hasFetchedAll:t.hasFetchedAll,isFetchingMore:t.isFetchingMore,fetchMoreError:t.fetchMoreError,fetchMore:t.fetchMore}}getNotificationSettingsLoadingState(e){const t=makeNotificationSettingsQueryKey(e),n=this.#Fe.get(t);if(void 0===n)return ASYNC_LOADING;const o=n.get();return o.isLoading||o.error?o:{isLoading:!1,settings:nn(this.get2()[e])}}getRoomVersionsLoadingState(e){const t=makeVersionsQueryKey(e),n=this.#je.get(t);if(void 0===n)return ASYNC_LOADING;const o=n.get();return o.isLoading||o.error?o:{isLoading:!1,versions:Object.values(this.get3()[e]??{})}}force_set_versions(e){batch(()=>{this.historyVersions.force_set(e),this.invalidateEntireStore()})}force_set_notifications(e){batch(()=>{this.notifications.force_set(e),this.invalidateEntireStore()})}markInboxNotificationRead(e,t,n){batch(()=>{this.optimisticUpdates.remove(n),this.notifications.markRead(e,t)})}markAllInboxNotificationsRead(e,t){batch(()=>{this.optimisticUpdates.remove(e),this.notifications.markAllRead(t)})}deleteInboxNotification(e,t){batch(()=>{this.optimisticUpdates.remove(t),this.notifications.delete(e)})}deleteAllInboxNotifications(e){batch(()=>{this.optimisticUpdates.remove(e),this.notifications.clear()})}createThread(e,t){batch(()=>{this.optimisticUpdates.remove(e),this.threads.upsert(t)})}#Pe(e,t,n,o){batch(()=>{null!==t&&this.optimisticUpdates.remove(t);const r=this.threads,a=r.get(e);a&&(o&&a.updatedAt>o||r.upsert(n(a)))})}patchThread(e,t,n,o){return this.#Pe(e,t,e=>({...e,...compactObject(n)}),o)}addReaction(e,t,n,o,r){this.#Pe(e,t,e=>applyAddReaction(e,n,o),r)}removeReaction(e,t,n,o,r,a){this.#Pe(e,t,e=>applyRemoveReaction(e,n,o,r,a),a)}deleteThread(e,t){return this.#Pe(e,t,e=>({...e,updatedAt:new Date,deletedAt:new Date}))}createComment(e,t){batch(()=>{this.optimisticUpdates.remove(t);const n=this.threads.get(e.threadId);n&&(this.threads.upsert(applyUpsertComment(n,e)),this.notifications.updateAssociatedNotification(e))})}editComment(e,t,n){return this.#Pe(e,t,e=>applyUpsertComment(e,n))}deleteComment(e,t,n,o){return this.#Pe(e,t,e=>applyDeleteComment(e,n,o),o)}updateThreadifications(e,t,n=[],o=[]){batch(()=>{this.threads.applyDelta({newThreads:e,deletedThreads:n}),this.notifications.applyDelta(t,o)})}updateRoomNotificationSettings(e,t,n){batch(()=>{this.optimisticUpdates.remove(t),this.roomNotificationSettings.update(e,n)})}async fetchNotificationsDeltaUpdate(e){const t=this.#Te;if(null===t)return;const n=await this.#De.getInboxNotificationsSince({since:t,signal:e});t<n.requestedAt&&(this.#Te=n.requestedAt),this.updateThreadifications(n.threads.updated,n.inboxNotifications.updated,n.threads.deleted,n.inboxNotifications.deleted)}waitUntilNotificationsLoaded(){return this.#Ae.waitUntilLoaded()}waitUntilRoomThreadsLoaded(e,t){const n=async n=>{const o=await this.#De[kInternal].httpClient.getThreads({roomId:e,cursor:n,query:t});this.updateThreadifications(o.threads,o.inboxNotifications),this.permissionHints.update(o.permissionHints);const r=this.#Oe.get(e);return(void 0===r||r>o.requestedAt)&&this.#Oe.set(e,o.requestedAt),o.nextCursor},o=makeRoomThreadsQueryKey(e,t);let r=this.#Ie.get(o);return void 0===r&&(r=new PaginatedResource(n)),r.observable.subscribe(()=>this.invalidateEntireStore()),this.#Ie.set(o,r),r.waitUntilLoaded()}async fetchRoomThreadsDeltaUpdate(e,t){const n=this.#Oe.get(e);if(void 0===n)return;const o=await this.#De[kInternal].httpClient.getThreadsSince({roomId:e,since:n,signal:t});this.updateThreadifications(o.threads.updated,o.inboxNotifications.updated,o.threads.deleted,o.inboxNotifications.deleted),this.permissionHints.update(o.permissionHints),n<o.requestedAt&&this.#Oe.set(e,o.requestedAt)}waitUntilUserThreadsLoaded(e){const t=makeUserThreadsQueryKey(e),n=async t=>{const n=await this.#De[kInternal].httpClient.getUserThreads_experimental({cursor:t,query:e});return this.updateThreadifications(n.threads,n.inboxNotifications),this.permissionHints.update(n.permissionHints),null===this.#ke&&(this.#ke=n.requestedAt),n.nextCursor};let o=this.#Ne.get(t);return void 0===o&&(o=new PaginatedResource(n)),o.observable.subscribe(()=>this.invalidateEntireStore()),this.#Ne.set(t,o),o.waitUntilLoaded()}invalidateEntireStore(){batch(()=>{this.historyVersions.invalidate(),this.notifications.invalidate(),this.optimisticUpdates.invalidate(),this.permissionHints.invalidate(),this.roomNotificationSettings.invalidate()})}async fetchUserThreadsDeltaUpdate(e){const t=this.#ke;if(null===t)return;const n=await this.#De[kInternal].httpClient.getUserThreadsSince_experimental({since:t,signal:e});t<n.requestedAt&&(this.#Te=n.requestedAt),this.updateThreadifications(n.threads.updated,n.inboxNotifications.updated,n.threads.deleted,n.inboxNotifications.deleted),this.permissionHints.update(n.permissionHints)}waitUntilRoomVersionsLoaded(e){const t=makeVersionsQueryKey(e);let n=this.#je.get(t);if(void 0===n){n=new SinglePageResource(async()=>{const t=this.#De.getRoom(e);if(null===t)throw new HttpError(`Room '${e}' is not available on client`,479);const n=await t[kInternal].listTextVersions();this.historyVersions.update(e,n.versions);const o=this.#$e.get(e);(void 0===o||o>n.requestedAt)&&this.#$e.set(e,n.requestedAt)})}return n.observable.subscribe(()=>this.invalidateEntireStore()),this.#je.set(t,n),n.waitUntilLoaded()}async fetchRoomVersionsDeltaUpdate(e,t){const n=this.#$e.get(e);if(void 0===n)return;const o=nn(this.#De.getRoom(e),`Room with id ${e} is not available on client`),r=await o[kInternal].listTextVersionsSince({since:n,signal:t});this.historyVersions.update(e,r.versions),n<r.requestedAt&&this.#$e.set(e,r.requestedAt)}waitUntilRoomNotificationSettingsLoaded(e){const t=makeNotificationSettingsQueryKey(e);let n=this.#Fe.get(t);if(void 0===n){n=new SinglePageResource(async()=>{const t=this.#De.getRoom(e);if(null===t)throw new HttpError(`Room '${e}' is not available on client`,479);const n=await t.getNotificationSettings();this.roomNotificationSettings.update(e,n)})}return n.observable.subscribe(()=>this.invalidateEntireStore()),this.#Fe.set(t,n),n.waitUntilLoaded()}async refreshRoomNotificationSettings(e,t){const n=nn(this.#De.getRoom(e),`Room with id ${e} is not available on client`),o=await n.getNotificationSettings({signal:t});this.roomNotificationSettings.update(e,o)}};function applyOptimisticUpdates_forThreadifications(e,t,n){const o=e.clone();let r=Object.fromEntries(t);for(const e of n)switch(e.type){case"create-thread":o.upsert(e.thread);break;case"edit-thread-metadata":{const t=o.get(e.threadId);if(void 0===t)break;if(t.updatedAt>e.updatedAt)break;o.upsert({...t,updatedAt:e.updatedAt,metadata:{...t.metadata,...e.metadata}});break}case"mark-thread-as-resolved":{const t=o.get(e.threadId);if(void 0===t)break;o.upsert({...t,resolved:!0});break}case"mark-thread-as-unresolved":{const t=o.get(e.threadId);if(void 0===t)break;o.upsert({...t,resolved:!1});break}case"create-comment":{const t=o.get(e.comment.threadId);if(void 0===t)break;o.upsert(applyUpsertComment(t,e.comment));const n=Object.values(r).find(e=>"thread"===e.kind&&e.threadId===t.id);if(void 0===n)break;r[n.id]={...n,notifiedAt:e.comment.createdAt,readAt:e.comment.createdAt};break}case"edit-comment":{const t=o.get(e.comment.threadId);if(void 0===t)break;o.upsert(applyUpsertComment(t,e.comment));break}case"delete-comment":{const t=o.get(e.threadId);if(void 0===t)break;o.upsert(applyDeleteComment(t,e.commentId,e.deletedAt));break}case"delete-thread":{const t=o.get(e.threadId);if(void 0===t)break;o.upsert({...t,deletedAt:e.deletedAt,updatedAt:e.deletedAt,comments:[]});break}case"add-reaction":{const t=o.get(e.threadId);if(void 0===t)break;o.upsert(applyAddReaction(t,e.commentId,e.reaction));break}case"remove-reaction":{const t=o.get(e.threadId);if(void 0===t)break;o.upsert(applyRemoveReaction(t,e.commentId,e.emoji,e.userId,e.removedAt));break}case"mark-inbox-notification-as-read":{const t=r[e.inboxNotificationId];if(void 0===t)break;r[e.inboxNotificationId]={...t,readAt:e.readAt};break}case"mark-all-inbox-notifications-as-read":for(const t in r){const n=r[t];if(void 0===n)break;r[t]={...n,readAt:e.readAt}}break;case"delete-inbox-notification":delete r[e.inboxNotificationId];break;case"delete-all-inbox-notifications":r={}}return{sortedNotifications:Object.values(r).filter(e=>"thread"!==e.kind||void 0!==o.get(e.threadId)).sort((e,t)=>t.notifiedAt.getTime()-e.notifiedAt.getTime()),notificationsById:r,threadsDB:o}}function applyOptimisticUpdates_forSettings(e,t){const n=Object.fromEntries(e);for(const e of t)switch(e.type){case"update-notification-settings":{const t=n[e.roomId];if(void 0===t)break;n[e.roomId]={...t,...e.settings}}}return n}function compareInboxNotifications(e,t){return e.notifiedAt>t.notifiedAt?1:e.notifiedAt<t.notifiedAt?-1:e.readAt&&t.readAt?e.readAt>t.readAt?1:e.readAt<t.readAt?-1:0:e.readAt||t.readAt?e.readAt?1:-1:0}function applyUpsertComment(e,t){if(void 0!==e.deletedAt)return e;if(t.threadId!==e.id)return fancy_console_exports.warn(`Comment ${t.id} does not belong to thread ${e.id}`),e;const n=e.comments.find(e=>e.id===t.id);if(void 0===n){const n=new Date(Math.max(e.updatedAt.getTime(),t.createdAt.getTime()));return{...e,updatedAt:n,comments:[...e.comments,t]}}if(void 0!==n.deletedAt)return e;if(void 0===n.editedAt||void 0===t.editedAt||n.editedAt<=t.editedAt){const n=e.comments.map(e=>e.id===t.id?t:e);return{...e,updatedAt:new Date(Math.max(e.updatedAt.getTime(),t.editedAt?.getTime()||t.createdAt.getTime())),comments:n}}return e}function applyDeleteComment(e,t,n){if(void 0!==e.deletedAt)return e;const o=e.comments.find(e=>e.id===t);if(void 0===o)return e;if(void 0!==o.deletedAt)return e;const r=e.comments.map(e=>e.id===t?{...e,deletedAt:n,body:void 0,attachments:[]}:e);return r.every(e=>void 0!==e.deletedAt)?{...e,deletedAt:n,updatedAt:n}:{...e,updatedAt:n,comments:r}}function applyAddReaction(e,t,n){if(void 0!==e.deletedAt)return e;const o=e.comments.find(e=>e.id===t);if(void 0===o)return e;if(void 0!==o.deletedAt)return e;const r=e.comments.map(e=>e.id===t?{...e,reactions:upsertReaction(e.reactions,n)}:e);return{...e,updatedAt:new Date(Math.max(n.createdAt.getTime(),e.updatedAt.getTime())),comments:r}}function applyRemoveReaction(e,t,n,o,r){if(void 0!==e.deletedAt)return e;const a=e.comments.find(e=>e.id===t);if(void 0===a)return e;if(void 0!==a.deletedAt)return e;const i=e.comments.map(e=>e.id===t?{...e,reactions:e.reactions.map(e=>e.emoji===n?{...e,users:e.users.filter(e=>e.id!==o)}:e).filter(e=>e.users.length>0)}:e);return{...e,updatedAt:new Date(Math.max(r.getTime(),e.updatedAt.getTime())),comments:i}}function upsertReaction(e,t){const n=e.find(e=>e.emoji===t.emoji);return void 0===n?[...e,{emoji:t.emoji,createdAt:t.createdAt,users:[{id:t.userId}]}]:!1===n.users.some(e=>e.id===t.userId)?e.map(e=>e.emoji===t.emoji?{...e,users:[...e.users,{id:t.userId}]}:e):e}var ClientContext=React.createContext(null);function missingUserError(e){return new Error(`resolveUsers didn't return anything for user '${e}'`)}function missingRoomInfoError(e){return new Error(`resolveRoomsInfo didn't return anything for room '${e}'`)}function identity(e){return e}var _umbrellaStores=new WeakMap,_extras=new WeakMap;function selectUnreadInboxNotificationsCount(e){let t=0;for(const n of e)(null===n.readAt||n.readAt<n.notifiedAt)&&t++;return t}function selectorFor_useUnreadInboxNotificationsCount(e){return e.inboxNotifications?{isLoading:!1,count:selectUnreadInboxNotificationsCount(e.inboxNotifications)}:e}function selectorFor_useUser(e,t){return void 0===e||e?.isLoading?e??{isLoading:!0}:e.error?e:e.data?{isLoading:!1,user:e.data}:{isLoading:!1,error:missingUserError(t)}}function selectorFor_useRoomInfo(e,t){return void 0===e||e?.isLoading?e??{isLoading:!0}:e.error?e:e.data?{isLoading:!1,info:e.data}:{isLoading:!1,error:missingRoomInfoError(t)}}function getUmbrellaStoreForClient(e){let t=_umbrellaStores.get(e);return t||(t=new UmbrellaStore(e),_umbrellaStores.set(e,t)),t}function getLiveblocksExtrasForClient(e){let t=_extras.get(e);return t||(t=makeLiveblocksExtrasForClient(e),_extras.set(e,t)),t}function makeLiveblocksExtrasForClient(e){const t=getUmbrellaStoreForClient(e),n=makePoller(async e=>{try{return await t.fetchNotificationsDeltaUpdate(e)}catch(e){throw console.warn(`Polling new inbox notifications failed: ${String(e)}`),e}},config$1.NOTIFICATIONS_POLL_INTERVAL,{maxStaleTimeMs:config$1.NOTIFICATIONS_MAX_STALE_TIME}),o=makePoller(async e=>{try{return await t.fetchUserThreadsDeltaUpdate(e)}catch(e){throw console.warn(`Polling new user threads failed: ${String(e)}`),e}},config$1.USER_THREADS_POLL_INTERVAL,{maxStaleTimeMs:config$1.USER_THREADS_MAX_STALE_TIME});return{store:t,notificationsPoller:n,userThreadsPoller:o}}function useInboxNotifications_withClient(e,t,n){const{store:o,notificationsPoller:r}=getLiveblocksExtrasForClient(e);return React.useEffect(()=>{o.waitUntilNotificationsLoaded()}),React.useEffect(()=>(r.inc(),r.pollNowIfStale(),()=>{r.dec()}),[r]),useSyncExternalStoreWithSelector(o.subscribe1_notifications,o.getInboxNotificationsLoadingState,o.getInboxNotificationsLoadingState,t,n)}function useInboxNotificationsSuspense_withClient(e){const t=getLiveblocksExtrasForClient(e).store;use(t.waitUntilNotificationsLoaded());const n=useInboxNotifications_withClient(e,identity,shallow);return assert(!n.error),assert(!n.isLoading),n}function useUnreadInboxNotificationsCount_withClient(e){return useInboxNotifications_withClient(e,selectorFor_useUnreadInboxNotificationsCount,shallow)}function useUnreadInboxNotificationsCountSuspense_withClient(e){const t=getLiveblocksExtrasForClient(e).store;use(t.waitUntilNotificationsLoaded());const n=useUnreadInboxNotificationsCount_withClient(e);return assert(!n.isLoading),assert(!n.error),n}function useMarkInboxNotificationAsRead_withClient(e){return React.useCallback(t=>{const{store:n}=getLiveblocksExtrasForClient(e),o=new Date,r=n.optimisticUpdates.add({type:"mark-inbox-notification-as-read",inboxNotificationId:t,readAt:o});e.markInboxNotificationAsRead(t).then(()=>{n.markInboxNotificationRead(t,o,r)},()=>{n.optimisticUpdates.remove(r)})},[e])}function useMarkAllInboxNotificationsAsRead_withClient(e){return React.useCallback(()=>{const{store:t}=getLiveblocksExtrasForClient(e),n=new Date,o=t.optimisticUpdates.add({type:"mark-all-inbox-notifications-as-read",readAt:n});e.markAllInboxNotificationsAsRead().then(()=>{t.markAllInboxNotificationsRead(o,n)},()=>{t.optimisticUpdates.remove(o)})},[e])}function useDeleteInboxNotification_withClient(e){return React.useCallback(t=>{const{store:n}=getLiveblocksExtrasForClient(e),o=new Date,r=n.optimisticUpdates.add({type:"delete-inbox-notification",inboxNotificationId:t,deletedAt:o});e.deleteInboxNotification(t).then(()=>{n.deleteInboxNotification(t,r)},()=>{n.optimisticUpdates.remove(r)})},[e])}function useDeleteAllInboxNotifications_withClient(e){return React.useCallback(()=>{const{store:t}=getLiveblocksExtrasForClient(e),n=new Date,o=t.optimisticUpdates.add({type:"delete-all-inbox-notifications",deletedAt:n});e.deleteAllInboxNotifications().then(()=>{t.deleteAllInboxNotifications(o)},()=>{t.optimisticUpdates.remove(o)})},[e])}function useInboxNotificationThread_withClient(e,t){const{store:n}=getLiveblocksExtrasForClient(e),o=n.get1_both,r=React.useCallback(e=>{const n=e.notificationsById[t]??raise(`Inbox notification with ID "${t}" not found`);"thread"!==n.kind&&raise(`Inbox notification with ID "${t}" is not of kind "thread"`);return e.threadsDB.get(n.threadId)??raise(`Thread with ID "${n.threadId}" not found, this inbox notification might not be of kind "thread"`)},[t]);return useSyncExternalStoreWithSelector(n.subscribe1_both,o,o,r)}function useUser_withClient(e,t){const n=e[kInternal].usersStore,o=React.useCallback(()=>n.getState(t),[n,t]),r=React.useCallback(e=>selectorFor_useUser(e,t),[t]),a=useSyncExternalStoreWithSelector(n.subscribe,o,o,r,shallow);return React.useEffect(()=>{n.get(t)},[n,t,a]),a}function useRoomInfo_withClient(e,t){const n=e[kInternal].roomsInfoStore,o=React.useCallback(()=>n.getState(t),[n,t]),r=React.useCallback(e=>selectorFor_useRoomInfo(e,t),[t]),a=useSyncExternalStoreWithSelector(n.subscribe,o,o,r,shallow);return React.useEffect(()=>{n.get(t)},[n,t,a]),a}function useEnsureNoLiveblocksProvider(e){const t=useClientOrNull();if(!e?.allowNesting&&null!==t)throw new Error("You cannot nest multiple LiveblocksProvider instances in the same React tree.")}function useClientOrNull(){return React.useContext(ClientContext)}function useClient(){return useClientOrNull()??raise("LiveblocksProvider is missing from the React tree.")}function LiveblocksProviderWithClient(e){return useEnsureNoLiveblocksProvider(e),jsxRuntime.exports.jsx(ClientContext.Provider,{value:e.client,children:e.children})}function LiveblocksProvider(e){const{children:t,...n}=e,o={publicApiKey:useInitial$1(n.publicApiKey),throttle:useInitial$1(n.throttle),lostConnectionTimeout:useInitial$1(n.lostConnectionTimeout),backgroundKeepAliveTimeout:useInitial$1(n.backgroundKeepAliveTimeout),polyfills:useInitial$1(n.polyfills),unstable_fallbackToHTTP:useInitial$1(n.unstable_fallbackToHTTP),unstable_streamData:useInitial$1(n.unstable_streamData),preventUnsavedChanges:useInitial$1(n.preventUnsavedChanges),authEndpoint:useInitialUnlessFunction(n.authEndpoint),resolveMentionSuggestions:useInitialUnlessFunction(n.resolveMentionSuggestions),resolveUsers:useInitialUnlessFunction(n.resolveUsers),resolveRoomsInfo:useInitialUnlessFunction(n.resolveRoomsInfo),baseUrl:useInitial$1(n.baseUrl),enableDebugLogging:useInitial$1(n.enableDebugLogging)},r=React.useMemo(()=>createClient(o),[]);return jsxRuntime.exports.jsx(LiveblocksProviderWithClient,{client:r,children:t})}function useInboxNotificationsSuspense(){return useInboxNotificationsSuspense_withClient(useClient())}function useInboxNotificationThread(e){return useInboxNotificationThread_withClient(useClient(),e)}function useMarkAllInboxNotificationsAsRead(){return useMarkAllInboxNotificationsAsRead_withClient(useClient())}function useMarkInboxNotificationAsRead(){return useMarkInboxNotificationAsRead_withClient(useClient())}function useDeleteAllInboxNotifications(){return useDeleteAllInboxNotifications_withClient(useClient())}function useDeleteInboxNotification(){return useDeleteInboxNotification_withClient(useClient())}function useUnreadInboxNotificationsCountSuspense(){return useUnreadInboxNotificationsCountSuspense_withClient(useClient())}function useUser(e){return useUser_withClient(useClient(),e)}function useRoomInfo(e){return useRoomInfo_withClient(useClient(),e)}var _useInboxNotificationThread=useInboxNotificationThread,_useUser=useUser,CreateThreadError=class extends Error{constructor(e,t){super("Create thread failed."),this.cause=e,this.context=t,this.name="CreateThreadError"}},MarkThreadAsResolvedError=class extends Error{constructor(e,t){super("Mark thread as resolved failed."),this.cause=e,this.context=t,this.name="MarkThreadAsResolvedError"}},MarkThreadAsUnresolvedError=class extends Error{constructor(e,t){super("Mark thread as unresolved failed."),this.cause=e,this.context=t,this.name="MarkThreadAsUnresolvedError"}},CreateCommentError=class extends Error{constructor(e,t){super("Create comment failed."),this.cause=e,this.context=t,this.name="CreateCommentError"}},EditCommentError=class extends Error{constructor(e,t){super("Edit comment failed."),this.cause=e,this.context=t,this.name="EditCommentError"}},DeleteCommentError=class extends Error{constructor(e,t){super("Delete comment failed."),this.cause=e,this.context=t,this.name="DeleteCommentError"}},AddReactionError=class extends Error{constructor(e,t){super("Add reaction failed."),this.cause=e,this.context=t,this.name="AddReactionError"}},RemoveReactionError=class extends Error{constructor(e,t){super("Remove reaction failed."),this.cause=e,this.context=t,this.name="RemoveReactionError"}},MarkInboxNotificationAsReadError=class extends Error{constructor(e,t){super("Mark inbox notification as read failed."),this.cause=e,this.context=t,this.name="MarkInboxNotificationAsReadError"}},identity2=e=>e;function useSignal(e,t,n){return useSyncExternalStoreWithSelector(e.subscribe,e.get,e.get,t??identity2,n)}function handleScrollToCommentOnLoad(e,t){if(!1===e)return;if(!t.threads)return;if(!("undefined"!=typeof window))return;const n=window.location.hash.slice(1);if(!n.startsWith("cm_"))return;const o=document.getElementById(n);if(null===o)return;t.threads.flatMap(e=>e.comments).some(e=>e.id===n)&&o.scrollIntoView()}function useScrollToCommentOnLoadEffect(e,t){React.useEffect(()=>{handleScrollToCommentOnLoad(e,t)},[t.isLoading])}var identity3=e=>e;function getCurrentUserId(e){const t=e[kInternal].currentUserId.get();return void 0===t?"anonymous":t}function handleApiError(e){const t=`Request failed with status ${e.status}: ${e.message}`;if("FORBIDDEN"===e.details?.error){const n=[t,e.details.suggestion,e.details.docs].filter(Boolean).join("\n");fancy_console_exports.error(n)}return new Error(t)}Object.freeze([]);var _extras2=new WeakMap;function getRoomExtrasForClient(e){let t=_extras2.get(e);return t||(t=makeRoomExtrasForClient(e),_extras2.set(e,t)),t}function makeRoomExtrasForClient(e){const t=getUmbrellaStoreForClient(e),n=makeEventSource();const o=new Map,r=new Map,a=new Map;return{store:t,commentsErrorEventSource:n.observable,onMutationFailure:function(e,o,r){if(t.optimisticUpdates.remove(o),e instanceof HttpError){const t=handleApiError(e);return void n.notify(r(t))}if(!(e instanceof HttpError))throw e;handleApiError(e)},getOrCreateThreadsPollerForRoomId:function(e){let n=o.get(e);return n||(n=makePoller(async n=>{try{return await t.fetchRoomThreadsDeltaUpdate(e,n)}catch(t){throw fancy_console_exports.warn(`Polling new threads for '${e}' failed: ${String(t)}`),t}},config$1.ROOM_THREADS_POLL_INTERVAL,{maxStaleTimeMs:config$1.ROOM_THREADS_MAX_STALE_TIME}),o.set(e,n)),n},getOrCreateVersionsPollerForRoomId:function(e){let n=r.get(e);return n||(n=makePoller(async n=>{try{return await t.fetchRoomVersionsDeltaUpdate(e,n)}catch(t){throw fancy_console_exports.warn(`Polling new history versions for '${e}' failed: ${String(t)}`),t}},config$1.HISTORY_VERSIONS_POLL_INTERVAL,{maxStaleTimeMs:config$1.HISTORY_VERSIONS_MAX_STALE_TIME}),r.set(e,n)),n},getOrCreateNotificationsSettingsPollerForRoomId:function(e){let n=a.get(e);return n||(n=makePoller(async n=>{try{return await t.refreshRoomNotificationSettings(e,n)}catch(t){throw fancy_console_exports.warn(`Polling notification settings for '${e}' failed: ${String(t)}`),t}},config$1.NOTIFICATION_SETTINGS_POLL_INTERVAL,{maxStaleTimeMs:config$1.NOTIFICATION_SETTINGS_MAX_STALE_TIME}),a.set(e,n)),n}}}function RoomProvider(e){const t=useClient(),[n]=React.useState(()=>new Map),o=React.useCallback((e,o)=>{const r=n.get(e);if(r)return r;const a=t.enterRoom(e,o),i=a.leave;return a.leave=()=>{i(),n.delete(e)},n.set(e,a),a},[t,n]);return jsxRuntime.exports.jsx(RoomProviderInner,{...e,stableEnterRoom:o})}function RoomProviderInner(e){const t=useClient(),{id:n,stableEnterRoom:o}=e,r=useInitial$1({initialPresence:e.initialPresence,initialStorage:e.initialStorage,autoConnect:e.autoConnect??"undefined"!=typeof window}),[{room:a},i]=React.useState(()=>o(n,{...r,autoConnect:!1}));return React.useEffect(()=>{const{store:e}=getRoomExtrasForClient(t);return a.events.comments.subscribe(t=>{!async function(t){if(t.type===ServerMsgCode.THREAD_DELETED)return void e.deleteThread(t.threadId,null);const n=await a.getThread(t.threadId);if(!n.thread)return void e.deleteThread(t.threadId,null);const{thread:o,inboxNotification:r}=n,i=e.get1_threads().threadsDB.getEvenIfDeleted(t.threadId);switch(t.type){case ServerMsgCode.COMMENT_EDITED:case ServerMsgCode.THREAD_METADATA_UPDATED:case ServerMsgCode.THREAD_UPDATED:case ServerMsgCode.COMMENT_REACTION_ADDED:case ServerMsgCode.COMMENT_REACTION_REMOVED:case ServerMsgCode.COMMENT_DELETED:if(!i)break;e.updateThreadifications([o],r?[r]:[]);break;case ServerMsgCode.COMMENT_CREATED:e.updateThreadifications([o],r?[r]:[])}}(t)})},[t,a]),React.useEffect(()=>{const e=o(n,r);i(e);const{room:t,leave:a}=e;return r.autoConnect&&t.connect(),()=>{a()}},[n,r,o]),jsxRuntime.exports.jsx(RoomContext.Provider,{value:a,children:e.children})}function useRoom(){const e=useRoomOrNull();if(null===e)throw new Error("RoomProvider is missing from the React tree.");return e}function useResolveMentionSuggestions(){return useClient()[kInternal].resolveMentionSuggestions}function useMentionSuggestionsCache(){return useClient()[kInternal].mentionSuggestionsCache}function useThreads(e={query:{metadata:{}}}){const{scrollOnLoad:t=!0}=e,n=useClient(),o=useRoom(),{store:r,getOrCreateThreadsPollerForRoomId:a}=getRoomExtrasForClient(n),i=a(o.id);React.useEffect(()=>{r.waitUntilRoomThreadsLoaded(o.id,e.query)}),React.useEffect(()=>(i.inc(),i.pollNowIfStale(),()=>i.dec()),[i]);const s=React.useCallback(()=>r.getRoomThreadsLoadingState(o.id,e.query),[r,o.id,e.query]),l=useSyncExternalStoreWithSelector(r.subscribe1_threads,s,s,identity3,shallow2);return useScrollToCommentOnLoadEffect(t,l),l}function useCreateRoomThread(e){const t=useClient();return React.useCallback(n=>{const o=n.body,r=n.metadata??{},a=n.attachments,i=createThreadId(),s=createCommentId(),l=new Date,c={id:s,threadId:i,roomId:e,createdAt:l,type:"comment",userId:getCurrentUserId(t),body:o,reactions:[],attachments:a??[]},d={id:i,type:"thread",createdAt:l,updatedAt:l,roomId:e,metadata:r,comments:[c],resolved:!1},{store:u,onMutationFailure:f}=getRoomExtrasForClient(t),p=u.optimisticUpdates.add({type:"create-thread",thread:d,roomId:e}),_=a?.map(e=>e.id);return t[kInternal].httpClient.createThread({roomId:e,threadId:i,commentId:s,body:o,metadata:r,attachmentIds:_}).then(e=>{u.createThread(p,e)},t=>f(t,p,t=>new CreateThreadError(t,{roomId:e,threadId:i,commentId:s,body:o,metadata:r}))),d},[t,e])}function useCreateRoomComment(e){const t=useClient();return React.useCallback(({threadId:n,body:o,attachments:r})=>{const a=createCommentId(),i={id:a,threadId:n,roomId:e,type:"comment",createdAt:new Date,userId:getCurrentUserId(t),body:o,reactions:[],attachments:r??[]},{store:s,onMutationFailure:l}=getRoomExtrasForClient(t),c=s.optimisticUpdates.add({type:"create-comment",comment:i}),d=r?.map(e=>e.id);return t[kInternal].httpClient.createComment({roomId:e,threadId:n,commentId:a,body:o,attachmentIds:d}).then(e=>{s.createComment(e,c)},t=>l(t,c,t=>new CreateCommentError(t,{roomId:e,threadId:n,commentId:a,body:o}))),i},[t,e])}function useEditRoomComment(e){const t=useClient();return React.useCallback(({threadId:n,commentId:o,body:r,attachments:a})=>{const i=new Date,{store:s,onMutationFailure:l}=getRoomExtrasForClient(t),c=s.get1_threads().threadsDB.getEvenIfDeleted(n);if(void 0===c)return void fancy_console_exports.warn(`Internal unexpected behavior. Cannot edit comment in thread "${n}" because the thread does not exist in the cache.`);const d=c.comments.find(e=>e.id===o);if(void 0===d||void 0!==d.deletedAt)return void fancy_console_exports.warn(`Internal unexpected behavior. Cannot edit comment "${o}" in thread "${n}" because the comment does not exist in the cache.`);const u=s.optimisticUpdates.add({type:"edit-comment",comment:{...d,editedAt:i,body:r,attachments:a??[]}}),f=a?.map(e=>e.id);t[kInternal].httpClient.editComment({roomId:e,threadId:n,commentId:o,body:r,attachmentIds:f}).then(e=>{s.editComment(n,u,e)},t=>l(t,u,t=>new EditCommentError(t,{roomId:e,threadId:n,commentId:o,body:r})))},[t,e])}function useDeleteRoomComment(e){const t=useClient();return React.useCallback(({threadId:n,commentId:o})=>{const r=new Date,{store:a,onMutationFailure:i}=getRoomExtrasForClient(t),s=a.optimisticUpdates.add({type:"delete-comment",threadId:n,commentId:o,deletedAt:r,roomId:e});t[kInternal].httpClient.deleteComment({roomId:e,threadId:n,commentId:o}).then(()=>{a.deleteComment(n,s,o,r)},t=>i(t,s,t=>new DeleteCommentError(t,{roomId:e,threadId:n,commentId:o})))},[t,e])}function useAddRoomCommentReaction(e){const t=useClient();return React.useCallback(({threadId:n,commentId:o,emoji:r})=>{const a=new Date,i=getCurrentUserId(t),{store:s,onMutationFailure:l}=getRoomExtrasForClient(t),c=s.optimisticUpdates.add({type:"add-reaction",threadId:n,commentId:o,reaction:{emoji:r,userId:i,createdAt:a}});t[kInternal].httpClient.addReaction({roomId:e,threadId:n,commentId:o,emoji:r}).then(e=>{s.addReaction(n,c,o,e,a)},t=>l(t,c,t=>new AddReactionError(t,{roomId:e,threadId:n,commentId:o,emoji:r})))},[t,e])}function useRemoveRoomCommentReaction(e){const t=useClient();return React.useCallback(({threadId:n,commentId:o,emoji:r})=>{const a=getCurrentUserId(t),i=new Date,{store:s,onMutationFailure:l}=getRoomExtrasForClient(t),c=s.optimisticUpdates.add({type:"remove-reaction",threadId:n,commentId:o,emoji:r,userId:a,removedAt:i});t[kInternal].httpClient.removeReaction({roomId:e,threadId:n,commentId:o,emoji:r}).then(()=>{s.removeReaction(n,c,o,r,a,i)},t=>l(t,c,t=>new RemoveReactionError(t,{roomId:e,threadId:n,commentId:o,emoji:r})))},[t,e])}function useMarkRoomThreadAsRead(e){const t=useClient();return React.useCallback(n=>{const{store:o,onMutationFailure:r}=getRoomExtrasForClient(t),a=Object.values(o.get1_notifications().notificationsById).find(e=>"thread"===e.kind&&e.threadId===n);if(!a)return;const i=new Date,s=o.optimisticUpdates.add({type:"mark-inbox-notification-as-read",inboxNotificationId:a.id,readAt:i});t[kInternal].httpClient.markRoomInboxNotificationAsRead({roomId:e,inboxNotificationId:a.id}).then(()=>{o.markInboxNotificationRead(a.id,i,s)},e=>{r(e,s,e=>new MarkInboxNotificationAsReadError(e,{inboxNotificationId:a.id}))})},[t,e])}function useMarkRoomThreadAsResolved(e){const t=useClient();return React.useCallback(n=>{const o=new Date,{store:r,onMutationFailure:a}=getRoomExtrasForClient(t),i=r.optimisticUpdates.add({type:"mark-thread-as-resolved",threadId:n,updatedAt:o});t[kInternal].httpClient.markThreadAsResolved({roomId:e,threadId:n}).then(()=>{r.patchThread(n,i,{resolved:!0},o)},t=>a(t,i,t=>new MarkThreadAsResolvedError(t,{roomId:e,threadId:n})))},[t,e])}function useMarkRoomThreadAsUnresolved(e){const t=useClient();return React.useCallback(n=>{const o=new Date,{store:r,onMutationFailure:a}=getRoomExtrasForClient(t),i=r.optimisticUpdates.add({type:"mark-thread-as-unresolved",threadId:n,updatedAt:o});t[kInternal].httpClient.markThreadAsUnresolved({roomId:e,threadId:n}).then(()=>{r.patchThread(n,i,{resolved:!1},o)},t=>a(t,i,t=>new MarkThreadAsUnresolvedError(t,{roomId:e,threadId:n})))},[t,e])}function useThreadSubscription(e){const t=useClient(),{store:n}=getRoomExtrasForClient(t);return useSignal(n.outputs.threadifications,React.useCallback(t=>{const n=t.sortedNotifications.find(t=>"thread"===t.kind&&t.threadId===e),o=t.threadsDB.get(e);return void 0===n||void 0===o?{status:"not-subscribed"}:{status:"subscribed",unreadSince:n.readAt}},[e]),shallow)}function useThreadsSuspense(e={query:{metadata:{}}}){const t=useClient(),n=useRoom(),{store:o}=getRoomExtrasForClient(t);use(o.waitUntilRoomThreadsLoaded(n.id,e.query));const r=useThreads(e);return assert(!r.error),assert(!r.isLoading),r}function selectorFor_useAttachmentUrl(e){return void 0===e||e?.isLoading?e??{isLoading:!0}:e.error?e:(assert(void 0!==e.data),{isLoading:!1,url:e.data})}function useRoomAttachmentUrl(e,t){const n=useClient()[kInternal].httpClient.getOrCreateAttachmentUrlsStore(t),o=React.useCallback(()=>n.getState(e),[n,e]);return React.useEffect(()=>{n.get(e)},[n,e]),useSyncExternalStoreWithSelector(n.subscribe,o,o,selectorFor_useAttachmentUrl,shallow)}function useRoomPermissions(e){return useSignal(getRoomExtrasForClient(useClient()).store.permissionHints.signal,t=>t[e]??new Set)}var _RoomProvider=RoomProvider,_useThreadsSuspense=useThreadsSuspense,MENTION_SUGGESTIONS_DEBOUNCE=500;function useMentionSuggestions(e,t){const[n,o]=React.useState(),r=React.useRef(),a=useResolveMentionSuggestions(),i=useMentionSuggestionsCache();return React.useEffect(()=>{if(void 0===t||!a)return;const n={text:t,roomId:e},s=stringify(n);let l,c=!1;const d=async()=>{try{r.current=performance.now();const e=await a(n);c||(o(e),i.set(s,e))}catch(e){console.error(e?.message)}};return i.has(s)?o(i.get(s)):!r.current||Math.abs(performance.now()-r.current)>MENTION_SUGGESTIONS_DEBOUNCE?d():l=window.setTimeout(()=>{d()},MENTION_SUGGESTIONS_DEBOUNCE),()=>{c=!0,window.clearTimeout(l)}},[t,e,a,i]),n}function useSyncSource(){const e=useClient()[kInternal].createSyncSource,[t,n]=React.useState();return React.useEffect(()=>{const t=e();return n(t),()=>t.destroy()},[e]),t}function composeEventHandlers(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e?.(o),!1===n||!o.defaultPrevented)return t?.(o)}}var useLayoutEffect2=globalThis?.document?React__namespace.useLayoutEffect:()=>{},useInsertionEffect=React__namespace[" useInsertionEffect ".trim().toString()]||useLayoutEffect2;function useControllableState$1({prop:e,defaultProp:t,onChange:n=()=>{},caller:o}){const[r,a,i]=useUncontrolledState({defaultProp:t,onChange:n}),s=void 0!==e,l=s?e:r;{const t=React__namespace.useRef(void 0!==e);React__namespace.useEffect(()=>{const e=t.current;if(e!==s){const t=e?"controlled":"uncontrolled",n=s?"controlled":"uncontrolled";console.warn(`${o} is changing from ${t} to ${n}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=s},[s,o])}return[l,React__namespace.useCallback(t=>{if(s){const n=isFunction(t)?t(e):t;n!==e&&i.current?.(n)}else a(t)},[s,e,a,i])]}function useUncontrolledState({defaultProp:e,onChange:t}){const[n,o]=React__namespace.useState(e),r=React__namespace.useRef(n),a=React__namespace.useRef(t);return useInsertionEffect(()=>{a.current=t},[t]),React__namespace.useEffect(()=>{r.current!==n&&(a.current?.(n),r.current=n)},[n,r]),[n,o,a]}function isFunction(e){return"function"==typeof e}function setRef(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function composeRefs(...e){return t=>{let n=!1;const o=e.map(e=>{const o=setRef(e,t);return n||"function"!=typeof o||(n=!0),o});if(n)return()=>{for(let t=0;t<o.length;t++){const n=o[t];"function"==typeof n?n():setRef(e[t],null)}}}}function useComposedRefs(...e){return React__namespace.useCallback(composeRefs(...e),e)}function createSlot(e){const t=createSlotClone(e),n=React__namespace.forwardRef((e,n)=>{const{children:o,...r}=e,a=React__namespace.Children.toArray(o),i=a.find(isSlottable);if(i){const e=i.props.children,o=a.map(t=>t===i?React__namespace.Children.count(e)>1?React__namespace.Children.only(null):React__namespace.isValidElement(e)?e.props.children:null:t);return jsxRuntime.exports.jsx(t,{...r,ref:n,children:React__namespace.isValidElement(e)?React__namespace.cloneElement(e,void 0,o):null})}return jsxRuntime.exports.jsx(t,{...r,ref:n,children:o})});return n.displayName=`${e}.Slot`,n}var Slot$2=createSlot("Slot");function createSlotClone(e){const t=React__namespace.forwardRef((e,t)=>{const{children:n,...o}=e;if(React__namespace.isValidElement(n)){const e=getElementRef$1(n),r=mergeProps(o,n.props);return n.type!==React__namespace.Fragment&&(r.ref=t?composeRefs(t,e):e),React__namespace.cloneElement(n,r)}return React__namespace.Children.count(n)>1?React__namespace.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var SLOTTABLE_IDENTIFIER=Symbol("radix.slottable");function createSlottable(e){const t=({children:e})=>jsxRuntime.exports.jsx(jsxRuntime.exports.Fragment,{children:e});return t.displayName=`${e}.Slottable`,t.__radixId=SLOTTABLE_IDENTIFIER,t}var Slottable$1=createSlottable("Slottable");function isSlottable(e){return React__namespace.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===SLOTTABLE_IDENTIFIER}function mergeProps(e,t){const n={...t};for(const o in t){const r=e[o],a=t[o];/^on[A-Z]/.test(o)?r&&a?n[o]=(...e)=>{const t=a(...e);return r(...e),t}:r&&(n[o]=r):"style"===o?n[o]={...r,...a}:"className"===o&&(n[o]=[r,a].filter(Boolean).join(" "))}return{...e,...n}}function getElementRef$1(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var NODES=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Primitive=NODES.reduce((e,t)=>{const n=createSlot(`Primitive.${t}`),o=React__namespace.forwardRef((e,o)=>{const{asChild:r,...a}=e,i=r?n:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),jsxRuntime.exports.jsx(i,{...a,ref:o})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function dispatchDiscreteCustomEvent(e,t){e&&ReactDOM__namespace.flushSync(()=>e.dispatchEvent(t))}var NAME$2="Toggle",Toggle=React__namespace.forwardRef((e,t)=>{const{pressed:n,defaultPressed:o,onPressedChange:r,...a}=e,[i,s]=useControllableState$1({prop:n,onChange:r,defaultProp:o??!1,caller:NAME$2});return jsxRuntime.exports.jsx(Primitive.button,{type:"button","aria-pressed":i,"data-state":i?"on":"off","data-disabled":e.disabled?"":void 0,...a,ref:t,onClick:composeEventHandlers(e.onClick,()=>{e.disabled||s(!i)})})});Toggle.displayName=NAME$2;var Root$3=Toggle;function classNames(...e){return e.filter(e=>"string"==typeof e||"number"==typeof e).join(" ")}const ICON_WIDTH=20,ICON_HEIGHT=20;function Icon({children:e,className:t,...n}){return jsxRuntime.exports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:ICON_WIDTH,height:ICON_HEIGHT,viewBox:`0 0 ${ICON_WIDTH} ${ICON_HEIGHT}`,fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",role:"presentation",className:classNames("lb-icon",t),...n,children:e})}function CheckIcon(e){return jsxRuntime.exports.jsx(Icon,{...e,children:jsxRuntime.exports.jsx("path",{d:"M16 6L8 14L4 10"})})}function CrossIcon(e){return jsxRuntime.exports.jsxs(Icon,{...e,children:[jsxRuntime.exports.jsx("path",{d:"M15 5L5 15"}),jsxRuntime.exports.jsx("path",{d:"M5 5L15 15"})]})}function DeleteIcon(e){return jsxRuntime.exports.jsx(Icon,{...e,children:jsxRuntime.exports.jsx("path",{d:"M4.5 6.5h11M14 6.5V14a1.5 1.5 0 0 1-1.5 1.5h-5A1.5 1.5 0 0 1 6 14V6.5M7.5 6.5V5a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v1.5"})})}function EditIcon(e){return jsxRuntime.exports.jsx(Icon,{...e,children:jsxRuntime.exports.jsx("path",{d:"m11.784 5.797-6.13 6.138a4 4 0 0 0-1.03 1.775L4 16l2.285-.624a4 4 0 0 0 1.776-1.032l6.145-6.152m-2.422-2.395 1.244-1.246c.608-.608 1.826-.81 2.53-.104.7.7.499 1.893-.122 2.515l-1.23 1.23m-2.422-2.395 2.422 2.395"})})}function EllipsisIcon(e){return jsxRuntime.exports.jsxs(Icon,{fill:"currentColor",...e,children:[jsxRuntime.exports.jsx("circle",{cx:5,cy:10,r:.75}),jsxRuntime.exports.jsx("circle",{cx:10,cy:10,r:.75}),jsxRuntime.exports.jsx("circle",{cx:15,cy:10,r:.75})]})}function EmojiAddIcon(e){return jsxRuntime.exports.jsxs(Icon,{...e,children:[jsxRuntime.exports.jsx("path",{d:"M11 3.07A7 7 0 1 0 16.93 9"}),jsxRuntime.exports.jsx("path",{d:"M7.5 11.5S8.25 13 10 13s2.5-1.5 2.5-1.5M8 8h0"}),jsxRuntime.exports.jsx("path",{d:"M12 8h0"}),jsxRuntime.exports.jsx("path",{d:"M13 5h4m-2-2v4"}),jsxRuntime.exports.jsx("circle",{cx:"8",cy:"8",r:".25"}),jsxRuntime.exports.jsx("circle",{cx:"12",cy:"8",r:".25"})]})}const FLOATING_ELEMENT_SIDE_OFFSET=6,FLOATING_ELEMENT_COLLISION_PADDING=10,EMOJI_FONT_FAMILY="'Apple Color Emoji', 'Noto Color Emoji', 'Twemoji Mozilla', 'Android Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', EmojiSymbols, sans-serif",Emoji$1=React.forwardRef(({emoji:e,style:t,asChild:n,...o},r)=>{const a=n?Slot$2:"span";return jsxRuntime.exports.jsx(a,{role:"img","aria-label":e,"data-emoji":e,style:{...t,fontFamily:EMOJI_FONT_FAMILY,display:"inline-flex",alignItems:"center",justifyContent:"center",width:"1em",whiteSpace:"nowrap"},...o,ref:r,children:e})}),Emoji=React.forwardRef(({className:e,...t},n)=>jsxRuntime.exports.jsx(Emoji$1,{className:classNames("lb-emoji",e),...t,ref:n}));function pluralize(e,t,n){return 1===e?t:n??`${t}s`}const defaultOverrides={locale:"en",dir:"ltr",USER_SELF:"you",USER_UNKNOWN:"Anonymous",LIST_REMAINING:e=>`${e} more`,LIST_REMAINING_USERS:e=>`${e} ${pluralize(e,"other")}`,LIST_REMAINING_COMMENTS:e=>`${e} more ${pluralize(e,"comment")}`,EMOJI_PICKER_SEARCH_PLACEHOLDER:"Search…",EMOJI_PICKER_EMPTY:"No emoji found.",EMOJI_PICKER_ERROR:()=>"There was an error while getting the list of emoji.",ATTACHMENT_TOO_LARGE:e=>e?`The file is larger than ${e}`:"The file is too large",ATTACHMENT_ERROR:()=>"The file couldn’t be uploaded.",COMPOSER_INSERT_MENTION:"Mention someone",COMPOSER_INSERT_EMOJI:"Add emoji",COMPOSER_ATTACH_FILES:"Attach files",COMPOSER_REMOVE_ATTACHMENT:"Remove attachment",COMPOSER_PLACEHOLDER:"Write a comment…",COMPOSER_SEND:"Send",COMPOSER_TOGGLE_MARK:e=>{switch(e){case"bold":return"Bold";case"italic":return"Italic";case"strikethrough":return"Strikethrough";case"code":return"Inline code";default:return assertNever(e,"Unexpected mark")}},COMMENT_EDITED:"(edited)",COMMENT_DELETED:"This comment has been deleted.",COMMENT_MORE:"More",COMMENT_EDIT:"Edit comment",COMMENT_EDIT_COMPOSER_PLACEHOLDER:"Edit comment…",COMMENT_EDIT_COMPOSER_CANCEL:"Cancel",COMMENT_EDIT_COMPOSER_SAVE:"Save",COMMENT_DELETE:"Delete comment",COMMENT_DELETE_ATTACHMENT:"Delete attachment",COMMENT_ADD_REACTION:"Add reaction",COMMENT_REACTION_LIST:(e,t)=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[e," reacted with ",jsxRuntime.exports.jsx(Emoji,{emoji:t})]}),COMMENT_REACTION_DESCRIPTION:(e,t)=>`${t} ${pluralize(t,"reaction")}, react with ${e}`,THREAD_RESOLVE:"Resolve thread",THREAD_UNRESOLVE:"Re-open thread",THREAD_NEW_INDICATOR:"New",THREAD_NEW_INDICATOR_DESCRIPTION:"New comments",THREAD_COMPOSER_PLACEHOLDER:"Reply to thread…",THREAD_COMPOSER_SEND:"Reply",INBOX_NOTIFICATION_MORE:"More",INBOX_NOTIFICATION_MARK_AS_READ:"Mark as read",INBOX_NOTIFICATION_DELETE:"Delete notification",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST:(e,t)=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[e," commented",t?jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[" in ",t]}):jsxRuntime.exports.jsx(jsxRuntime.exports.Fragment,{children:" in a thread"})]}),INBOX_NOTIFICATION_THREAD_MENTION:(e,t)=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[e," mentioned you",t?jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[" in ",t]}):null]}),INBOX_NOTIFICATION_TEXT_MENTION:(e,t)=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[e," mentioned you",t?jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[" in ",t]}):null]}),HISTORY_VERSION_PREVIEW_AUTHORS_LIST:e=>jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:["Edits from ",e]}),HISTORY_VERSION_PREVIEW_RESTORE:"Restore",HISTORY_VERSION_PREVIEW_EMPTY:"No content.",HISTORY_VERSION_PREVIEW_ERROR:()=>"There was an error while getting this version."},OverridesContext=React.createContext(void 0);function useOverrides(e){const t=React.useContext(OverridesContext);return React.useMemo(()=>({...defaultOverrides,...t,...e}),[t,e])}function OverridesProvider({children:e,overrides:t}){const n=React.useContext(OverridesContext),o=React.useMemo(()=>({...defaultOverrides,...n,...t}),[n,t]);return jsxRuntime.exports.jsx(OverridesContext.Provider,{value:o,children:e})}
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("i18next"),require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["exports","i18next","react","react-dom"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).BuilderLiveblocks={},e.i18next,e.React,e.ReactDOM)}(this,function(e,t,n,r){const o=window;function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var s=i(t),u=i(n),c=a(n),l=a(r),d=i(r),f={frontend_inbox_empty:"There aren’t any notifications yet.",frontend_comment_inbox:"Comment Inbox",frontend_mark_all_read:"Mark all as read",frontend_delete_all:"Delete all",frontend_fallback_error:"There was an error while getting notifications.",frontend_fetch_mention_suggestions_error:"Problem resolving mention suggestions",frontend_fetch_rooms_info_error:"Problem resolving rooms info",frontend_fetch_users_error:"Problem resolving users"},h={frontend_inbox_empty:"没有通知。",frontend_comment_inbox:"评论收件箱",frontend_mark_all_read:"全部标记为已读",frontend_delete_all:"全部删除",frontend_fallback_error:"收到通知时出现错误。",frontend_fetch_mention_suggestions_error:"请求提及建议时出现错误。",frontend_fetch_rooms_info_error:"请求Rooms信息时出现错误。",frontend_fetch_users_error:"请求用户清单时出现错误。",COMPOSER_PLACEHOLDER:"写评论...",THREAD_COMPOSER_PLACEHOLDER:"回复...",THREAD_COMPOSER_SEND:"回复",THREAD_RESOLVE:"标记为已解决",THREAD_UNRESOLVE:"重新开启讨论",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented:"评论",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in:"于",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread:"于评论栏",INBOX_NOTIFICATION_DELETE:"删除通知",INBOX_NOTIFICATION_MORE:"更多",COMMENT_EDIT:"编辑讨论",COMMENT_EDIT_COMPOSER_PLACEHOLDER:"编辑讨论...",COMMENT_DELETE:"删除讨论",COMMENT_EDIT_COMPOSER_CANCEL:"取消",COMMENT_EDIT_COMPOSER_SAVE:"保存",COMMENT_MORE:"更多",COMPOSER_INSERT_MENTION:"提及某个人",COMPOSER_INSERT_EMOJI:"添加表情",COMPOSER_ATTACH_FILES:"上传附件",COMMENT_ADD_REACTION:"添加表情",COMPOSER_SEND:"发送"};s.default.addResources("en","liveblocks",f),s.default.addResources("zh-CN","liveblocks",h);var p=Object.defineProperty,m="@liveblocks/core",g="2.15.1",v="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==o?o:{};function y(e){console.error(e)}function b(e,t,n){const r=Symbol.for(e),o=n?`${t||"dev"} (${n})`:t||"dev";if(v[r])if(v[r]===o);else{y(["Multiple copies of Liveblocks are being loaded in your project. This will cause issues! See https://liveblocks.io/docs/errors/dupes ","","Conflicts:",`- ${e} ${v[r]} (already loaded)`,`- ${e} ${o} (trying to load this now)`].join("\n"))}else v[r]=o;t&&g&&t!==g&&y(["Cross-linked versions of Liveblocks found, which will cause issues! See https://liveblocks.io/docs/errors/cross-linked ","","Conflicts:",`- ${m} is at ${g}`,`- ${e} is at ${t}`,"","Always upgrade all Liveblocks packages to the same version number."].join("\n"))}function w(e){const t=e.editedAt?new Date(e.editedAt):void 0,n=new Date(e.createdAt),r=e.reactions.map(e=>({...e,createdAt:new Date(e.createdAt)}));if(e.body)return{...e,reactions:r,createdAt:n,editedAt:t};{const o=new Date(e.deletedAt);return{...e,reactions:r,createdAt:n,editedAt:t,deletedAt:o}}}function C(e){const t=new Date(e.createdAt),n=new Date(e.updatedAt),r=e.comments.map(e=>w(e));return{...e,createdAt:t,updatedAt:n,comments:r}}function D(e){const t=new Date(e.notifiedAt),n=e.readAt?new Date(e.readAt):null;if("activities"in e){const r=e.activities.map(e=>({...e,createdAt:new Date(e.createdAt)}));return{...e,notifiedAt:t,readAt:n,activities:r}}return{...e,notifiedAt:t,readAt:n}}function E(e){const t=new Date(e.deletedAt);return{...e,deletedAt:t}}function x(e){const t=new Date(e.deletedAt);return{...e,deletedAt:t}}var A={};((e,t)=>{for(var n in t)p(e,n,{get:t[n],enumerable:!0})})(A,{error:()=>T,errorWithTitle:()=>_,warn:()=>O,warnWithTitle:()=>k});var I="background:#0e0d12;border-radius:9999px;color:#fff;padding:3px 7px;font-family:sans-serif;font-weight:600;";function S(e){return"undefined"==typeof window?console[e]:(t,...n)=>console[e]("%cLiveblocks",I,t,...n)}var O=S("warn"),T=S("error");function B(e){return"undefined"==typeof window?console[e]:(t,n,...r)=>console[e](`%cLiveblocks%c ${t}`,I,"font-weight:600",n,...r)}var k=B("warn"),_=B("error");function F(e){throw new Error(e)}function R(e){return null!==e&&"object"==typeof e&&"[object Object]"===Object.prototype.toString.call(e)}function j(e){return Object.entries(e)}function N(e){try{return JSON.parse(e)}catch(e){return}}function P(e){return JSON.parse(JSON.stringify(e))}function M(e){return e.filter(e=>null!=e)}function L(e){const t={...e};return Object.keys(e).forEach(e=>{const n=e;void 0===t[n]&&delete t[n]}),t}function H(e){return new Promise(t=>setTimeout(t,e))}async function z(e,t,n){let r;const o=new Promise((e,o)=>{r=setTimeout(()=>{o(new Error(n))},t)});return Promise.race([e,o]).finally(()=>clearTimeout(r))}function U(e){let t=null;return()=>(null===t&&(t=e().catch(e=>{throw setTimeout(()=>{t=null},5e3),e})),t)}var W=class extends Error{constructor(e,t,n){super(e),this.message=e,this.status=t,this.details=n}},V=e=>e instanceof W&&e.status>=400&&e.status<500;async function $(e,t,n,r=V){const o=n.length>0?n[n.length-1]:0;let i=0;for(;;){i++;try{return await e()}catch(e){if(r(e))throw e;if(i>=t)throw new Error(`Failed after ${t} attempts: ${String(e)}`)}const a=n[i-1]??o;O(`Attempt ${i} was unsuccessful. Retrying in ${a} milliseconds.`),await H(a)}}function q(){let e,t;return[new Promise((n,r)=>{e=n,t=r}),e,t]}function K(){const[e,t,n]=q();return{promise:e,resolve:t,reject:n}}function G(){const e=new Set;function t(t){return e.add(t),()=>e.delete(t)}function n(e){const n=t(t=>(n(),e(t)));return n}async function r(e){let n;return new Promise(r=>{n=t(t=>{(void 0===e||e(t))&&r(t)})}).finally(()=>n?.())}return{notify:function(t){e.forEach(e=>e(t))},subscribe:t,subscribeOnce:n,count:function(){return e.size},waitUntil:r,[Symbol.dispose]:()=>{e.clear()},observable:{subscribe:t,subscribeOnce:n,waitUntil:r}}}function X(e,...t){if("object"!=typeof e||null===e||Array.isArray(e))return JSON.stringify(e,...t);const n=Object.keys(e).sort().reduce((t,n)=>(t[n]=e[n],t),{});return JSON.stringify(n,...t)}var Z=class{input;resolve;reject;promise;constructor(e){this.input=e;const{promise:t,resolve:n,reject:r}=K();this.promise=t,this.resolve=n,this.reject=r}},Y=class{#e=[];#t;#n;#r;#o;error=!1;constructor(e,t){this.#t=e,this.#n=t.size??50,this.#r=t.delay}#i(){void 0!==this.#o&&(clearTimeout(this.#o),this.#o=void 0)}#a(){this.#e.length===this.#n?this.#s():1===this.#e.length&&(this.#i(),this.#o=setTimeout(()=>{this.#s()},this.#r))}async#s(){if(0===this.#e.length)return;const e=this.#e.splice(0),t=e.map(e=>e.input);try{const n=await this.#t(t);this.error=!1,e.forEach((t,r)=>{const o=n?.[r];Array.isArray(n)?e.length!==n.length?t.reject(new Error(`Callback must return an array of the same length as the number of provided items. Expected ${e.length}, but got ${n.length}.`)):o instanceof Error?t.reject(o):t.resolve(o):t.reject(new Error("Callback must return an array."))})}catch(t){this.error=!0,e.forEach(e=>{e.reject(t)})}}get(e){const t=this.#e.find(t=>X(t.input)===X(e));if(t)return t.promise;const n=new Z(e);return this.#e.push(n),this.#a(),n.promise}clear(){this.#e=[],this.error=!1,this.#i()}};function J(e){const t=new Map,n=G();function r(e){return X(e)}function o(e,r){t.set(e,r),n.notify()}return{...n.observable,get:async function(n){const i=r(n);if(!t.has(i))try{o(i,{isLoading:!0});o(i,{isLoading:!1,data:await e.get(n)})}catch(e){o(i,{isLoading:!1,error:e})}},getState:function(e){const n=r(e);return t.get(n)},invalidate:function(e){if(Array.isArray(e))for(const n of e)t.delete(r(n));else t.clear();n.notify()},getBatch:function(){return e},_cacheKeys:function(){return[...t.keys()]}}}function Q(e,t){const n=[];for(let r=0,o=e.length;r<o;r+=t)n.push(e.slice(r,r+t));return n}var ee=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((e,t)=>e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t<63?"_":"-"),"");function te(e){return`${e}_${ee()}`}function ne(){return te("th")}function re(){return te("cm")}function oe(){return te("at")}var ie=/^[a-zA-Z_][a-zA-Z0-9_]*$/;function ae(e){let t=[];const n=Object.entries(e),r=[],o=[],i=[];return n.forEach(([e,t])=>{if(!ie.test(e))throw new Error("Key must only contain letters, numbers, _");ce(t)?r.push([e,t]):le(t)?o.push([e,t]):"object"!=typeof t||"startsWith"in t||i.push([e,t])}),t=[...se(r),...ue(o)],i.forEach(([e,n])=>{const r=Object.entries(n),o=[],i=[];r.forEach(([t,n])=>{if(pe(t))throw new Error("Key cannot be empty");ce(n)?o.push([fe(e,t),n]):le(n)&&i.push([fe(e,t),n])}),t=[...t,...se(o),...ue(i)]}),t.map(({key:e,operator:t,value:n})=>de(e,t,he(n))).join(" AND ")}var se=e=>{const t=[];return e.forEach(([e,n])=>{t.push({key:e,operator:":",value:n})}),t},ue=e=>{const t=[];return e.forEach(([e,n])=>{"startsWith"in n&&"string"==typeof n.startsWith&&t.push({key:e,operator:"^",value:n.startsWith})}),t},ce=e=>"string"==typeof e||"number"==typeof e||"boolean"==typeof e,le=e=>"object"==typeof e&&null!==e&&"startsWith"in e,de=(e,t,n)=>`${e}${t}${n}`,fe=(e,t)=>t?`${e}[${JSON.stringify(t)}]`:e,he=e=>{if("string"==typeof e){if(pe(e))throw new Error("Value cannot be empty");return JSON.stringify(e)}return e.toString()},pe=e=>!e||""===e.toString().trim();function me(e,t,n){const r=new URL(t,e);return void 0!==n&&(r.search=(n instanceof URLSearchParams?n:function(e){const t=new URLSearchParams;for(const[n,r]of Object.entries(e))null!=r&&t.set(n,r.toString());return t}(n)).toString()),r.toString()}function ge(e,...t){return e.reduce((e,n,r)=>e+encodeURIComponent(t[r-1]??"")+n)}function ve({baseUrl:e,authManager:t,fetchPolyfill:n}){const r=new be(e,n);const o=new Map;function i(e){let n=o.get(e);if(void 0===n){n=J(new Y(async n=>{const o=n.flat(),{urls:i}=await r.post(ge`/v2/c/rooms/${e}/attachments/presigned-urls`,await t.getAuthValue({requestedScope:"comments:read",roomId:e}),{attachmentIds:o});return i.map(e=>e??new Error("There was an error while getting this attachment's URL"))},{delay:50})),o.set(e,n)}return n}const a=new Map;const s=new Y(async e=>{const n=e.flat();return await async function(e){await r.post(ge`/v2/c/inbox-notifications/read`,await t.getAuthValue({requestedScope:"comments:read"}),{inboxNotificationIds:e})}(n),n},{delay:50});return{getThreads:async function(e){let n;e.query&&(n=ae(e.query));try{const o=await r.get(ge`/v2/c/rooms/${e.roomId}/threads`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{cursor:e.cursor,query:n,limit:50});return{threads:o.data.map(C),inboxNotifications:o.inboxNotifications.map(D),nextCursor:o.meta.nextCursor,requestedAt:new Date(o.meta.requestedAt),permissionHints:o.meta.permissionHints}}catch(e){if(e instanceof W&&404===e.status)return{threads:[],inboxNotifications:[],nextCursor:null,requestedAt:new Date(Date.now()-216e5),permissionHints:{}};throw e}},getThreadsSince:async function(e){const n=await r.get(ge`/v2/c/rooms/${e.roomId}/threads/delta`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{since:e.since.toISOString()},{signal:e.signal});return{threads:{updated:n.data.map(C),deleted:n.deletedThreads.map(E)},inboxNotifications:{updated:n.inboxNotifications.map(D),deleted:n.deletedInboxNotifications.map(x)},requestedAt:new Date(n.meta.requestedAt),permissionHints:n.meta.permissionHints}},createThread:async function(e){const n=e.commentId??re(),o=e.threadId??ne();return C(await r.post(ge`/v2/c/rooms/${e.roomId}/threads`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{id:o,comment:{id:n,body:e.body,attachmentIds:e.attachmentIds},metadata:e.metadata}))},getThread:async function(e){const n=await r.rawGet(ge`/v2/c/rooms/${e.roomId}/thread-with-notification/${e.threadId}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}));if(n.ok){const e=await n.json();return{thread:C(e.thread),inboxNotification:e.inboxNotification?D(e.inboxNotification):void 0}}if(404===n.status)return{thread:void 0,inboxNotification:void 0};throw new Error(`There was an error while getting thread ${e.threadId}.`)},deleteThread:async function(e){await r.delete(ge`/v2/c/rooms/${e.roomId}/threads/${e.threadId}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},editThreadMetadata:async function(e){return await r.post(ge`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/metadata`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),e.metadata)},createComment:async function(e){const n=e.commentId??re();return w(await r.post(ge`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/comments`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{id:n,body:e.body,attachmentIds:e.attachmentIds}))},editComment:async function(e){return w(await r.post(ge`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/comments/${e.commentId}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{body:e.body,attachmentIds:e.attachmentIds}))},deleteComment:async function(e){await r.delete(ge`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/comments/${e.commentId}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},addReaction:async function(e){const n=await r.post(ge`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/comments/${e.commentId}/reactions`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{emoji:e.emoji});return o=n,{...o,createdAt:new Date(o.createdAt)};var o},removeReaction:async function(e){await r.delete(ge`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/comments/${e.commentId}/reactions/${e.emoji}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},markThreadAsResolved:async function(e){await r.post(ge`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/mark-as-resolved`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},markThreadAsUnresolved:async function(e){await r.post(ge`/v2/c/rooms/${e.roomId}/threads/${e.threadId}/mark-as-unresolved`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},markRoomInboxNotificationAsRead:async function(e){return function(e){let n=a.get(e);return void 0===n&&(n=new Y(async n=>{const o=n.flat();return await r.post(ge`/v2/c/rooms/${e}/inbox-notifications/read`,await t.getAuthValue({requestedScope:"comments:read",roomId:e}),{inboxNotificationIds:o}),o},{delay:50}),a.set(e,n)),n}(e.roomId).get(e.inboxNotificationId)},updateNotificationSettings:async function(e){return r.post(ge`/v2/c/rooms/${e.roomId}/notification-settings`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),e.settings)},getNotificationSettings:async function(e){return r.get(ge`/v2/c/rooms/${e.roomId}/notification-settings`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),void 0,{signal:e.signal})},createTextMention:async function(e){await r.rawPost(ge`/v2/c/rooms/${e.roomId}/text-mentions`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{userId:e.userId,mentionId:e.mentionId})},deleteTextMention:async function(e){await r.rawDelete(ge`/v2/c/rooms/${e.roomId}/text-mentions/${e.mentionId}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},getTextVersion:async function(e){return r.rawGet(ge`/v2/c/rooms/${e.roomId}/y-version/${e.versionId}`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},createTextVersion:async function(e){await r.rawPost(ge`/v2/c/rooms/${e.roomId}/version`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}))},reportTextEditor:async function(e){await r.rawPost(ge`/v2/c/rooms/${e.roomId}/text-metadata`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{type:e.type,rootKey:e.rootKey})},listTextVersions:async function(e){const n=await r.get(ge`/v2/c/rooms/${e.roomId}/versions`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}));return{versions:n.versions.map(({createdAt:e,...t})=>({createdAt:new Date(e),...t})),requestedAt:new Date(n.meta.requestedAt)}},listTextVersionsSince:async function(e){const n=await r.get(ge`/v2/c/rooms/${e.roomId}/versions/delta`,await t.getAuthValue({requestedScope:"comments:read",roomId:e.roomId}),{since:e.since.toISOString()},{signal:e.signal});return{versions:n.versions.map(({createdAt:e,...t})=>({createdAt:new Date(e),...t})),requestedAt:new Date(n.meta.requestedAt)}},getAttachmentUrl:function(e){return i(e.roomId).getBatch().get(e.attachmentId)},uploadAttachment:async function(e){const n=e.roomId,o=e.signal,i=e.attachment,a=o?new DOMException(`Upload of attachment ${e.attachment.id} was aborted.`,"AbortError"):void 0;if(o?.aborted)throw a;const s=e=>{if(o?.aborted)throw a;if(e instanceof W&&413===e.status)throw e;return!1},u=524288e3,c=[2e3,2e3,2e3,2e3,2e3,2e3,2e3,2e3,2e3,2e3];if(i.size<=u)return $(async()=>r.putBlob(ge`/v2/c/rooms/${n}/attachments/${i.id}/upload/${encodeURIComponent(i.name)}`,await t.getAuthValue({requestedScope:"comments:read",roomId:n}),i.file,{fileSize:i.size},{signal:o}),10,c,s);{let e;const l=[],d=await $(async()=>r.post(ge`/v2/c/rooms/${n}/attachments/${i.id}/multipart/${encodeURIComponent(i.name)}`,await t.getAuthValue({requestedScope:"comments:read",roomId:n}),void 0,{signal:o},{fileSize:i.size}),10,c,s);try{e=d.uploadId;const f=function(e){const t=[];let n=0;for(;n<e.size;){const r=Math.min(n+u,e.size);t.push({partNumber:t.length+1,part:e.slice(n,r)}),n=r}return t}(i.file);if(o?.aborted)throw a;const h=Q(f,5);for(const e of h){const a=[];for(const{part:u,partNumber:l}of e)a.push($(async()=>r.putBlob(ge`/v2/c/rooms/${n}/attachments/${i.id}/multipart/${d.uploadId}/${String(l)}`,await t.getAuthValue({requestedScope:"comments:read",roomId:n}),u,void 0,{signal:o}),10,c,s));l.push(...await Promise.all(a))}if(o?.aborted)throw a;const p=l.sort((e,t)=>e.partNumber-t.partNumber);return r.post(ge`/v2/c/rooms/${n}/attachments/${i.id}/multipart/${e}/complete`,await t.getAuthValue({requestedScope:"comments:read",roomId:n}),{parts:p},{signal:o})}catch(o){if(e&&o?.name&&("AbortError"===o.name||"TimeoutError"===o.name))try{await r.rawDelete(ge`/v2/c/rooms/${n}/attachments/${i.id}/multipart/${e}`,await t.getAuthValue({requestedScope:"comments:read",roomId:n}))}catch(e){}throw o}}},getOrCreateAttachmentUrlsStore:i,streamStorage:async function(e){const n=await r.rawGet(ge`/v2/c/rooms/${e.roomId}/storage`,await t.getAuthValue({requestedScope:"room:read",roomId:e.roomId}));return await n.json()},sendMessages:async function(e){return r.rawPost(ge`/v2/c/rooms/${e.roomId}/send-message`,await t.getAuthValue({requestedScope:"room:read",roomId:e.roomId}),{nonce:e.nonce,messages:e.messages})},getInboxNotifications:async function(e){const n=await r.get(ge`/v2/c/inbox-notifications`,await t.getAuthValue({requestedScope:"comments:read"}),{cursor:e?.cursor,limit:50});return{inboxNotifications:n.inboxNotifications.map(D),threads:n.threads.map(C),nextCursor:n.meta.nextCursor,requestedAt:new Date(n.meta.requestedAt)}},getInboxNotificationsSince:async function(e){const n=await r.get(ge`/v2/c/inbox-notifications/delta`,await t.getAuthValue({requestedScope:"comments:read"}),{since:e.since.toISOString()},{signal:e.signal});return{inboxNotifications:{updated:n.inboxNotifications.map(D),deleted:n.deletedInboxNotifications.map(x)},threads:{updated:n.threads.map(C),deleted:n.deletedThreads.map(E)},requestedAt:new Date(n.meta.requestedAt)}},getUnreadInboxNotificationsCount:async function(){const{count:e}=await r.get(ge`/v2/c/inbox-notifications/count`,await t.getAuthValue({requestedScope:"comments:read"}));return e},markAllInboxNotificationsAsRead:async function(){await r.post(ge`/v2/c/inbox-notifications/read`,await t.getAuthValue({requestedScope:"comments:read"}),{inboxNotificationIds:"all"})},markInboxNotificationAsRead:async function(e){await s.get(e)},deleteAllInboxNotifications:async function(){await r.delete(ge`/v2/c/inbox-notifications`,await t.getAuthValue({requestedScope:"comments:read"}))},deleteInboxNotification:async function(e){await r.delete(ge`/v2/c/inbox-notifications/${e}`,await t.getAuthValue({requestedScope:"comments:read"}))},getUserThreads_experimental:async function(e){let n;e?.query&&(n=ae(e.query));const o=await r.get(ge`/v2/c/threads`,await t.getAuthValue({requestedScope:"comments:read"}),{cursor:e?.cursor,query:n,limit:50});return{threads:o.threads.map(C),inboxNotifications:o.inboxNotifications.map(D),nextCursor:o.meta.nextCursor,requestedAt:new Date(o.meta.requestedAt),permissionHints:o.meta.permissionHints}},getUserThreadsSince_experimental:async function(e){const n=await r.get(ge`/v2/c/threads/delta`,await t.getAuthValue({requestedScope:"comments:read"}),{since:e.since.toISOString()},{signal:e.signal});return{threads:{updated:n.threads.map(C),deleted:n.deletedThreads.map(E)},inboxNotifications:{updated:n.inboxNotifications.map(D),deleted:n.deletedInboxNotifications.map(x)},requestedAt:new Date(n.meta.requestedAt),permissionHints:n.meta.permissionHints}}}}function ye(e){return"public"===e.type?e.publicApiKey:e.token.raw}var be=class{#u;#c;constructor(e,t){this.#u=e,this.#c=t}async#l(e,t,n,r){e.startsWith("/v2/c/")||F("This client can only be used to make /v2/c/* requests");const o=me(this.#u,e,r);return await this.#c(o,{...n,headers:{"Content-Type":"application/json; charset=utf-8",...n?.headers,Authorization:`Bearer ${ye(t)}`,"X-LB-Client":g}})}async#d(e,t,n,r){const o=await this.#l(e,t,n,r);if(!o.ok){let e;try{const t=await o.json();e=new W(t.message,o.status,t)}catch{e=new W(o.statusText,o.status)}throw e}let i;try{i=await o.json()}catch{i={}}return i}async rawGet(e,t,n,r){return await this.#l(e,t,r,n)}async rawPost(e,t,n){return await this.#l(e,t,{method:"POST",body:JSON.stringify(n)})}async rawDelete(e,t){return await this.#l(e,t,{method:"DELETE"})}async get(e,t,n,r){return await this.#d(e,t,r,n)}async post(e,t,n,r,o){return await this.#d(e,t,{...r,method:"POST",body:JSON.stringify(n)},o)}async delete(e,t){return await this.#d(e,t,{method:"DELETE"})}async putBlob(e,t,n,r,o){return await this.#d(e,t,{...o,method:"PUT",headers:{"Content-Type":"application/octet-stream"},body:n},r)}};function we(e,t){throw new Error(t)}function Ce(e,t="Expected value to be non-nullable"){return e}var De=class{#f;constructor(e){this.#f=e}get current(){return this.#f}allowPatching(e){const t=this;let n=!0;e({...this.#f,patch(e){if(!n)throw new Error("Can no longer patch stale context");t.#f=Object.assign({},t.#f,e);for(const t of Object.entries(e)){const[e,n]=t;"patch"!==e&&(this[e]=n)}}}),n=!1}},Ee=1,xe=class{id;#h;#p;#m;#g;#v;#y;events;#b;#w;#C;get#D(){const e=this.#m.values()[Symbol.iterator]().next();if(e.done)throw new Error("No states defined yet");return e.value}get currentState(){if(null===this.#g)throw 0===this.#h?new Error("Not started yet"):new Error("Already stopped");return this.#g}start(){if(0!==this.#h)throw new Error("State machine has already started");return this.#h=1,this.#g=this.#D,this.#E(null),this}stop(){if(1!==this.#h)throw new Error("Cannot stop a state machine that hasn't started yet");this.#x(null),this.#h=2,this.#g=null}constructor(e){this.id=Ee++,this.#h=0,this.#g=null,this.#m=new Set,this.#w=new Map,this.#b=[],this.#C=new Set,this.#v=new Map,this.#p=new De(e),this.#y={didReceiveEvent:G(),willTransition:G(),didIgnoreEvent:G(),willExitState:G(),didEnterState:G()},this.events={didReceiveEvent:this.#y.didReceiveEvent.observable,willTransition:this.#y.willTransition.observable,didIgnoreEvent:this.#y.didIgnoreEvent.observable,willExitState:this.#y.willExitState.observable,didEnterState:this.#y.didEnterState.observable}}get context(){return this.#p.current}addState(e){if(0!==this.#h)throw new Error("Already started");return this.#m.add(e),this}onEnter(e,t){if(0!==this.#h)throw new Error("Already started");if(this.#w.has(e))throw new Error(`enter/exit function for ${e} already exists`);return this.#w.set(e,t),this}onEnterAsync(e,t,n,r,o){return this.onEnter(e,()=>{const e=new AbortController,i=e.signal,a=o?setTimeout(()=>{const e=new Error("Timed out");this.#A({type:"ASYNC_ERROR",reason:e},r)},o):void 0;let s=!1;return t(this.#p.current,i).then(e=>{i.aborted||(s=!0,this.#A({type:"ASYNC_OK",data:e},n))},e=>{i.aborted||(s=!0,this.#A({type:"ASYNC_ERROR",reason:e},r))}),()=>{clearTimeout(a),s||e.abort()}})}#I(e){const t=[];if("*"===e)for(const e of this.#m)t.push(e);else if(e.endsWith(".*")){const n=e.slice(0,-1);for(const e of this.#m)e.startsWith(n)&&t.push(e)}else{const n=e;this.#m.has(n)&&t.push(n)}if(0===t.length)throw new Error(`No states match ${JSON.stringify(e)}`);return t}addTransitions(e,t){if(0!==this.#h)throw new Error("Already started");for(const n of this.#I(e)){let r=this.#v.get(n);void 0===r&&(r=new Map,this.#v.set(n,r));for(const[o,i]of Object.entries(t)){if(r.has(o))throw new Error(`Trying to set transition "${o}" on "${n}" (via "${e}"), but a transition already exists there.`);const t=i;if(this.#C.add(o),void 0!==t){const e="function"==typeof t?t:()=>t;r.set(o,e)}}}return this}addTimedTransition(e,t,n){return this.onEnter(e,()=>{const e="function"==typeof t?t(this.#p.current):t,r=setTimeout(()=>{this.#A({type:"TIMER"},n)},e);return()=>{clearTimeout(r)}})}#S(e){return this.#v.get(this.currentState)?.get(e)}#x(e){this.#y.willExitState.notify(this.currentState),this.#p.allowPatching(t=>{e=e??this.#b.length;for(let n=0;n<e;n++)this.#b.pop()?.(t)})}#E(e){const t=function(e,t){const n=e.split(".");if(t<1||t>n.length+1)throw new Error("Invalid number of levels");const r=[];t>n.length&&r.push("*");for(let e=n.length-t+1;e<n.length;e++){const t=n.slice(0,e);t.length>0&&r.push(t.join(".")+".*")}return r.push(e),r}(this.currentState,e??this.currentState.split(".").length+1);this.#p.allowPatching(e=>{for(const n of t){const t=this.#w.get(n),r=t?.(e);"function"==typeof r?this.#b.push(r):this.#b.push(null)}}),this.#y.didEnterState.notify(this.currentState)}send(e){if(!this.#C.has(e.type))throw new Error(`Invalid event ${JSON.stringify(e.type)}`);if(2===this.#h)return;const t=this.#S(e.type);if(void 0!==t)return this.#A(e,t);this.#y.didIgnoreEvent.notify(e)}#A(e,t){this.#y.didReceiveEvent.notify(e);const n=this.currentState,r=("function"==typeof t?t:()=>t)(e,this.#p.current);let o,i;if(null===r)return void this.#y.didIgnoreEvent.notify(e);if("string"==typeof r?o=r:(o=r.target,i=Array.isArray(r.effect)?r.effect:[r.effect]),!this.#m.has(o))throw new Error(`Invalid next state name: ${JSON.stringify(o)}`);this.#y.willTransition.notify({from:n,to:o});const[a,s]=function(e,t){if(e===t)return[0,0];const n=e.split("."),r=t.split("."),o=Math.min(n.length,r.length);let i=0;for(;i<o&&n[i]===r[i];i++);return[n.length-i,r.length-i]}(this.currentState,o);if(a>0&&this.#x(a),this.#g=o,void 0!==i){const t=i;this.#p.allowPatching(n=>{for(const r of t)"function"==typeof r?r(n,e):n.patch(r)})}s>0&&this.#E(s)}},Ae=(e=>(e[e.UPDATE_PRESENCE=100]="UPDATE_PRESENCE",e[e.USER_JOINED=101]="USER_JOINED",e[e.USER_LEFT=102]="USER_LEFT",e[e.BROADCASTED_EVENT=103]="BROADCASTED_EVENT",e[e.ROOM_STATE=104]="ROOM_STATE",e[e.INITIAL_STORAGE_STATE=200]="INITIAL_STORAGE_STATE",e[e.UPDATE_STORAGE=201]="UPDATE_STORAGE",e[e.REJECT_STORAGE_OP=299]="REJECT_STORAGE_OP",e[e.UPDATE_YDOC=300]="UPDATE_YDOC",e[e.THREAD_CREATED=400]="THREAD_CREATED",e[e.THREAD_DELETED=407]="THREAD_DELETED",e[e.THREAD_METADATA_UPDATED=401]="THREAD_METADATA_UPDATED",e[e.THREAD_UPDATED=408]="THREAD_UPDATED",e[e.COMMENT_CREATED=402]="COMMENT_CREATED",e[e.COMMENT_EDITED=403]="COMMENT_EDITED",e[e.COMMENT_DELETED=404]="COMMENT_DELETED",e[e.COMMENT_REACTION_ADDED=405]="COMMENT_REACTION_ADDED",e[e.COMMENT_REACTION_REMOVED=406]="COMMENT_REACTION_REMOVED",e))(Ae||{});function Ie(e){return 4999===e||e>=4e3&&e<4100}function Se(e){return 1013===e||e>=4200&&e<4300}function Oe(e){return"initial"===e||"disconnected"===e}function Te(e){const t=e.currentState;switch(t){case"@ok.connected":case"@ok.awaiting-pong":return"connected";case"@idle.initial":return"initial";case"@auth.busy":case"@auth.backoff":case"@connecting.busy":case"@connecting.backoff":case"@idle.zombie":return e.context.successCount>0?"reconnecting":"connecting";case"@idle.failed":return"disconnected";default:return we(0,"Unknown state")}}var Be=[250,500,1e3,2e3,4e3,8e3,1e4],ke=Be[0]-1,_e=[2e3,3e4,6e4,3e5],Fe=class extends Error{constructor(e){super(e)}},Re=class extends Error{constructor(e,t){super(e),this.code=t}};function je(e,t){return t.find(t=>t>e)??t[t.length-1]}function Ne(e){e.patch({backoffDelay:je(e.backoffDelay,Be)})}function Pe(e){e.patch({backoffDelay:je(e.backoffDelay,_e)})}function Me(e){e.patch({successCount:0})}function Le(e,t){const n=2===e?T:1===e?O:()=>{};return()=>{n(t)}}function He(e){const t="Connection to Liveblocks websocket server";return n=>{e instanceof Error?O(`${t} could not be established. ${String(e)}`):O(We(e)?`${t} closed prematurely (code: ${e.code}). Retrying in ${n.backoffDelay}ms.`:`${t} could not be established.`)}}function ze(e){const t=[`code: ${e.code}`];return e.reason&&t.push(`reason: ${e.reason}`),e=>{O(`Connection to Liveblocks websocket server closed (${t.join(", ")}). Retrying in ${e.backoffDelay}ms.`)}}var Ue=Le(1,"Connection to WebSocket closed permanently. Won't retry.");function We(e){return!(e instanceof Error)&&"close"===e.type}var Ve=e=>t=>t.patch(e);function $e(e,t){const n=function(){const e=G();let t=null;return{...e,notify:function(n){null!==t?t.push(n):e.notify(n)},pause:function(){t=[]},unpause:function(){if(null!==t){for(const n of t)e.notify(n);t=null}},[Symbol.dispose]:()=>{e[Symbol.dispose](),null!==t&&(t.length=0)}}}();n.pause();const r=G();function o(e,t){return()=>{const n=new Re(e,t);r.notify(n)}}const i=new xe({successCount:0,authValue:null,socket:null,backoffDelay:ke}).addState("@idle.initial").addState("@idle.failed").addState("@idle.zombie").addState("@auth.busy").addState("@auth.backoff").addState("@connecting.busy").addState("@connecting.backoff").addState("@ok.connected").addState("@ok.awaiting-pong");i.addTransitions("*",{RECONNECT:{target:"@auth.backoff",effect:[Ne,Me]},DISCONNECT:"@idle.initial"}),i.onEnter("@idle.*",Me).addTransitions("@idle.*",{CONNECT:(e,t)=>null!==t.authValue?"@connecting.busy":"@auth.busy"}),i.addTransitions("@auth.backoff",{NAVIGATOR_ONLINE:{target:"@auth.busy",effect:Ve({backoffDelay:ke})}}).addTimedTransition("@auth.backoff",e=>e.backoffDelay,"@auth.busy").onEnterAsync("@auth.busy",()=>z(e.authenticate(),1e4,"Timed out during auth"),e=>({target:"@connecting.busy",effect:Ve({authValue:e.data})}),e=>e.reason instanceof Fe?{target:"@idle.failed",effect:[Le(2,e.reason.message),o(e.reason.message,-1)]}:{target:"@auth.backoff",effect:[Ne,Le(2,`Authentication failed: ${e.reason instanceof Error?e.reason.message:String(e.reason)}`)]});const a=e=>i.send({type:"EXPLICIT_SOCKET_ERROR",event:e}),s=e=>i.send({type:"EXPLICIT_SOCKET_CLOSE",event:e}),u=e=>"pong"===e.data?i.send({type:"PONG"}):n.notify(e);function c(e){e&&(e.removeEventListener("error",a),e.removeEventListener("close",s),e.removeEventListener("message",u),e.close())}i.addTransitions("@connecting.backoff",{NAVIGATOR_ONLINE:{target:"@connecting.busy",effect:Ve({backoffDelay:ke})}}).addTimedTransition("@connecting.backoff",e=>e.backoffDelay,"@connecting.busy").onEnterAsync("@connecting.busy",async(n,r)=>{let o=null,i=null;return z(new Promise((r,c)=>{if(null===n.authValue)throw new Error("No auth authValue");const l=e.createSocket(n.authValue);function d(e){o=e,l.removeEventListener("message",u),c(e)}i=l;const[f,h]=q();function p(e){const t=N(e.data);104===t?.type&&h()}t.waitForActorId||h(),l.addEventListener("message",u),t.waitForActorId&&l.addEventListener("message",p),l.addEventListener("error",d),l.addEventListener("close",d),l.addEventListener("open",()=>{l.addEventListener("error",a),l.addEventListener("close",s);const e=()=>{l.removeEventListener("error",d),l.removeEventListener("close",d),l.removeEventListener("message",p)};f.then(()=>{r([l,e])})})}),1e4,"Timed out during websocket connection").then(([e,t])=>{if(t(),r.aborted)throw new Error("Aborted");if(o)throw o;return e}).catch(e=>{throw c(i),e})},e=>({target:"@ok.connected",effect:Ve({socket:e.data,backoffDelay:ke})}),e=>{const t=e.reason;if(t instanceof Fe)return{target:"@idle.failed",effect:[Le(2,t.message),o(t.message,-1)]};if(We(t)){if(4109===t.code)return"@auth.busy";if(Se(t.code))return{target:"@connecting.backoff",effect:[Pe,He(t)]};if(Ie(t.code))return{target:"@idle.failed",effect:[Le(2,t.reason),o(t.reason,t.code)]}}return{target:"@auth.backoff",effect:[Ne,He(t)]}});const l={target:"@ok.awaiting-pong",effect:e=>{e.socket?.send("ping")}},d=()=>{const t="undefined"!=typeof document?document:void 0;return"hidden"===t?.visibilityState&&e.canZombie()?"@idle.zombie":l};if(i.addTimedTransition("@ok.connected",3e4,d).addTransitions("@ok.connected",{NAVIGATOR_OFFLINE:d,WINDOW_GOT_FOCUS:l}),i.addTransitions("@idle.zombie",{WINDOW_GOT_FOCUS:"@connecting.backoff"}),i.onEnter("@ok.*",e=>{e.patch({successCount:e.successCount+1});const t=setTimeout(n.unpause,0);return e=>{c(e.socket),e.patch({socket:null}),clearTimeout(t),n.pause()}}).addTransitions("@ok.awaiting-pong",{PONG:"@ok.connected"}).addTimedTransition("@ok.awaiting-pong",2e3,{target:"@connecting.busy",effect:Le(1,"Received no pong from server, assume implicit connection loss.")}).addTransitions("@ok.*",{EXPLICIT_SOCKET_ERROR:(e,t)=>1===t.socket?.readyState?null:{target:"@connecting.backoff",effect:Ne},EXPLICIT_SOCKET_CLOSE:e=>{return Ie(e.event.code)?{target:"@idle.failed",effect:[Ue,o(e.event.reason,e.event.code)]}:(t=e.event.code)>=4100&&t<4200?4109===e.event.code?"@auth.busy":{target:"@auth.backoff",effect:[Ne,ze(e.event)]}:Se(e.event.code)?{target:"@connecting.backoff",effect:[Pe,ze(e.event)]}:{target:"@connecting.backoff",effect:[Ne,ze(e.event)]};var t}}),"undefined"!=typeof document){const e="undefined"!=typeof document?document:void 0,t="undefined"!=typeof window?window:void 0,n=t??e;i.onEnter("*",r=>{function o(){i.send({type:"NAVIGATOR_OFFLINE"})}function a(){i.send({type:"NAVIGATOR_ONLINE"})}function s(){"visible"===e?.visibilityState&&i.send({type:"WINDOW_GOT_FOCUS"})}return t?.addEventListener("online",a),t?.addEventListener("offline",o),n?.addEventListener("visibilitychange",s),()=>{n?.removeEventListener("visibilitychange",s),t?.removeEventListener("online",a),t?.removeEventListener("offline",o),c(r.socket)}})}const f=[],{statusDidChange:h,didConnect:p,didDisconnect:m,unsubscribe:g}=function(e){const t=G(),n=G(),r=G();let o=null;const i=e.events.didEnterState.subscribe(()=>{const i=Te(e);i!==o&&t.notify(i),"connected"===o&&"connected"!==i?r.notify():"connected"!==o&&"connected"===i&&n.notify(),o=i});return{statusDidChange:t.observable,didConnect:n.observable,didDisconnect:r.observable,unsubscribe:i}}(i);return f.push(g),t.enableDebugLogging&&f.push(function(e){const t=(new Date).getTime();function n(...n){O(`${(((new Date).getTime()-t)/1e3).toFixed(2)} [FSM #${e.id}]`,...n)}const r=[e.events.didReceiveEvent.subscribe(e=>n(`Event ${e.type}`)),e.events.willTransition.subscribe(({from:e,to:t})=>n("Transitioning",e,"→",t)),e.events.didIgnoreEvent.subscribe(e=>n("Ignored event",e.type,e,"(current state won't handle it)"))];return()=>{for(const e of r)e()}}(i)),i.start(),{machine:i,cleanups:f,events:{statusDidChange:h,didConnect:p,didDisconnect:m,onMessage:n.observable,onLiveblocksError:r.observable}}}var qe=class{#O;#T;events;constructor(e,t=!1,n=!0){const{machine:r,events:o,cleanups:i}=$e(e,{waitForActorId:n,enableDebugLogging:t});this.#O=r,this.events=o,this.#T=i}getStatus(){try{return Te(this.#O)}catch{return"initial"}}get authValue(){return this.#O.context.authValue}connect(){this.#O.send({type:"CONNECT"})}reconnect(){this.#O.send({type:"RECONNECT"})}disconnect(){this.#O.send({type:"DISCONNECT"})}destroy(){let e;for(this.#O.stop();e=this.#T.pop();)e()}send(e){const t=this.#O.context?.socket;null===t?O("Cannot send: not connected yet",e):1!==t.readyState?O("Cannot send: WebSocket no longer open",e):t.send(e)}_privateSendMachineEvent(e){this.#O.send(e)}},Ke=(e=>(e.Read="room:read",e.Write="room:write",e.PresenceWrite="room:presence:write",e.CommentsWrite="comments:write",e.CommentsRead="comments:read",e))(Ke||{});function Ge(e){return e.includes("room:write")}function Xe(e){return e.includes("comments:write")||e.includes("room:write")}function Ze(e){const t=e.split(".");if(3!==t.length)throw new Error("Authentication error: invalid JWT token");const n=N(function(e){try{const t=e.replace(/-/g,"+").replace(/_/g,"/");return decodeURIComponent(atob(t).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join(""))}catch(t){return atob(e)}}(t[1]));if(!n||(!R(r=n)||"acc"!==r.k&&"id"!==r.k&&"sec-legacy"!==r.k))throw new Error("Authentication error: expected a valid token but did not get one. Hint: if you are using a callback, ensure the room is passed when creating the token. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClientCallback");var r;return{raw:e,parsed:n}}function Ye(e,t){const n=function(e){const{publicApiKey:t,authEndpoint:n}=e;if(void 0!==n&&void 0!==t)throw new Error("You cannot simultaneously use `publicApiKey` and `authEndpoint` options. Please pick one and leave the other option unspecified. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClient");if("string"==typeof t){if(t.startsWith("sk_"))throw new Error("Invalid `publicApiKey` option. The value you passed is a secret key, which should not be used from the client. Please only ever pass a public key here. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClientPublicKey");if(!t.startsWith("pk_"))throw new Error("Invalid key. Please use the public key format: pk_<public key>. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClientPublicKey");return{type:"public",publicApiKey:t}}if("string"==typeof n)return{type:"private",url:n};if("function"==typeof n)return{type:"custom",callback:n};if(void 0!==n)throw new Error("The `authEndpoint` option must be a string or a function. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClientAuthEndpoint");throw new Error("Invalid Liveblocks client options. Please provide either a `publicApiKey` or `authEndpoint` option. They cannot both be empty. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClient")}(e),r=new Set,o=[],i=[],a=new Map;function s(e,t){return"comments:read"===e?t.includes("comments:read")||t.includes("comments:write")||t.includes("room:read")||t.includes("room:write"):"room:read"===e&&(t.includes("room:read")||t.includes("room:write"))}async function u(o){const i=e.polyfills?.fetch??("undefined"==typeof window?void 0:window.fetch);if("private"===n.type){if(void 0===i)throw new Fe("To use Liveblocks client in a non-DOM environment with a url as auth endpoint, you need to provide a fetch polyfill.");const e=await async function(e,t,n){const r=await e(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!r.ok){const e=`${(await r.text()).trim()||"reason not provided in auth response"} (${r.status} returned by POST ${t})`;throw 401===r.status||403===r.status?new Fe(`Unauthorized: ${e}`):new Error(`Failed to authenticate: ${e}`)}let o;try{o=await r.json()}catch(e){throw new Error(`Expected a JSON response when doing a POST request on "${t}". ${String(e)}`)}if(!R(o)||"string"!=typeof o.token)throw new Error(`Expected a JSON response of the form \`{ token: "..." }\` when doing a POST request on "${t}", but got ${JSON.stringify(o)}`);const{token:i}=o;return{token:i}}(i,n.url,{room:o.roomId}),a=Ze(e.token);if(r.has(a.raw))throw new Fe("The same Liveblocks auth token was issued from the backend before. Caching Liveblocks tokens is not supported.");return t?.(a.parsed),a}if("custom"===n.type){const e=await n.callback(o.roomId);if(e&&"object"==typeof e){if("string"==typeof e.token){const n=Ze(e.token);return t?.(n.parsed),n}if("string"==typeof e.error){const t=`Authentication failed: ${"reason"in e&&"string"==typeof e.reason?e.reason:"Forbidden"}`;throw"forbidden"===e.error?new Fe(t):new Error(t)}}throw new Error('Your authentication callback function should return a token, but it did not. Hint: the return value should look like: { token: "..." }')}throw new Error("Unexpected authentication type. Must be private or custom.")}return{reset:function(){r.clear(),o.length=0,i.length=0,a.clear()},getAuthValue:async function(e){if("public"===n.type)return{type:"public",publicApiKey:n.publicApiKey};const t=function(e){const t=Math.ceil(Date.now()/1e3);for(let n=o.length-1;n>=0;n--){const r=o[n];if(i[n]<=t)o.splice(n,1),i.splice(n,1);else{if("id"===r.parsed.k)return r;if("acc"===r.parsed.k){if(!e.roomId&&0===Object.entries(r.parsed.perms).length)return r;for(const[t,n]of Object.entries(r.parsed.perms))if(e.roomId){if(t.includes("*")&&e.roomId.startsWith(t.replace("*",""))||e.roomId===t&&s(e.requestedScope,n))return r}else if(t.includes("*")&&s(e.requestedScope,n))return r}}}}(e);if(void 0!==t)return{type:"secret",token:t};let c;e.roomId?(c=a.get(e.roomId),void 0===c&&(c=u(e),a.set(e.roomId,c))):(c=a.get("liveblocks-user-token"),void 0===c&&(c=u(e),a.set("liveblocks-user-token",c)));try{const e=await c,t=30,n=Math.floor(Date.now()/1e3)+(e.parsed.exp-e.parsed.iat)-t;return r.add(e.raw),"sec-legacy"!==e.parsed.k&&(o.push(e),i.push(n)),{type:"secret",token:e}}finally{e.roomId?a.delete(e.roomId):a.delete("liveblocks-user-token")}}}}var Je=Symbol();G().observable;var Qe=Symbol("kSinks"),et=Symbol("kTrigger"),tt=null;function nt(e){if(null===tt){tt=new Set;try{e()}finally{for(const e of tt)e[et]();tt=null}}else e()}function rt(e){tt||F("Expected to be in an active batch"),tt.add(e)}function ot(e,t){let n=!1;const r={...e};return Object.keys(t).forEach(e=>{const o=e,i=t[o];r[o]!==i&&(void 0===i?delete r[o]:r[o]=i,n=!0)}),n?r:e}var it=class{equals;#B;[Qe];constructor(e){this.equals=e??Object.is,this.#B=G(),this[Qe]=new Set,this.get=this.get.bind(this),this.subscribe=this.subscribe.bind(this),this.subscribeOnce=this.subscribeOnce.bind(this)}[Symbol.dispose](){this.#B[Symbol.dispose](),this.#B="(disposed)",this.equals="(disposed)"}get hasWatchers(){if(this.#B.count()>0)return!0;for(const e of this[Qe])if(e.hasWatchers)return!0;return!1}[et](){this.#B.notify();for(const e of this[Qe])rt(e)}subscribe(e){return this.#B.subscribe(e)}subscribeOnce(e){const t=this.subscribe(()=>(t(),e()));return t}waitUntil(){throw new Error("waitUntil not supported on Signals")}markSinksDirty(){for(const e of this[Qe])e.markDirty()}addSink(e){this[Qe].add(e)}removeSink(e){this[Qe].delete(e)}asReadonly(){return this}},at=class extends it{#k;constructor(e,t){super(t),this.#k=e}[Symbol.dispose](){super[Symbol.dispose](),this.#k="(disposed)"}get(){return this.#k}set(e){nt(()=>{"function"==typeof e&&(e=e(this.#k)),this.equals(this.#k,e)||(this.#k=e,this.markSinksDirty(),rt(this))})}},st=class extends at{constructor(e){super(L(e))}set(){throw new Error("Don't call .set() directly, use .patch()")}patch(e){super.set(t=>ot(t,e))}},ut=Symbol(),ct=class e extends it{#_;#F;#R;#j;static from(...t){const n=t.pop();if("function"!=typeof n&&F("Invalid .from() call, last argument expected to be a function"),"function"==typeof t[t.length-1]){const r=n,o=t.pop();return new e(t,o,r)}return new e(t,n)}constructor(e,t,n){super(n),this.#F=!0,this.#_=ut,this.#R=e,this.#j=t;for(const t of e)t.addSink(this)}[Symbol.dispose](){for(const e of this.#R)e.removeSink(this);this.#_="(disposed)",this.#R="(disposed)",this.#j="(disposed)"}get isDirty(){return this.#F}#N(){const e=this.#j(...this.#R.map(e=>e.get()));return this.#F=!1,!this.equals(this.#_,e)&&(this.#_=e,!0)}markDirty(){this.#F||(this.#F=!0,this.markSinksDirty())}get(){return this.#F&&this.#N(),this.#_}[et](){if(!this.hasWatchers)return;this.#N()&&super[et]()}},lt=class extends it{#P;constructor(e){super(),this.#P=e}[Symbol.dispose](){super[Symbol.dispose](),this.#P="(disposed)"}get(){return this.#P}mutate(e){nt(()=>{const t=!e||e(this.#P);null!==t&&"object"==typeof t&&"then"in t&&F("MutableSignal.mutate() does not support async callbacks"),!1!==t&&(this.markSinksDirty(),rt(this))})}},dt=32,ft=126,ht=gt(0),pt=gt(1),mt=ht+gt(-1);function gt(e){const t=dt+(e<0?95+e:e);if(t<dt||t>ft)throw new Error(`Invalid n value: ${e}`);return String.fromCharCode(t)}function vt(e,t){return void 0!==e&&void 0!==t?function(e,t){if(e<t)return yt(e,t);if(e>t)return yt(t,e);throw new Error("Cannot compute value between two equal positions")}(e,t):void 0!==e?function(e){for(let t=0;t<=e.length-1;t++){const n=e.charCodeAt(t);if(!(n>=ft))return e.substring(0,t)+String.fromCharCode(n+1)}return e+pt}(e):void 0!==t?function(e){const t=e.length-1;for(let n=0;n<=t;n++){const r=e.charCodeAt(n);if(!(r<=dt))return n===t?33===r?e.substring(0,n)+mt:e.substring(0,n)+String.fromCharCode(r-1):e.substring(0,n+1)}return pt}(t):pt}function yt(e,t){let n=0;const r=e.length,o=t.length;for(;;){const i=n<r?e.charCodeAt(n):dt,a=n<o?t.charCodeAt(n):ft;if(i!==a){if(a-i===1){const t=n+1;let r=e.substring(0,t);r.length<t&&(r+=ht.repeat(t-r.length));return r+yt(e.substring(t),"")}return bt(e,n)+String.fromCharCode(a+i>>1)}n++}}function bt(e,t){return t<e.length?e.substring(0,t):e+ht.repeat(t-e.length)}function wt(e){return function(e){if(""===e)return!1;const t=e.length-1,n=e.charCodeAt(t);if(n<33||n>ft)return!1;for(let n=0;n<t;n++){const t=e.charCodeAt(n);if(t<dt||t>ft)return!1}return!0}(e)?e:function(e){const t=[];for(let n=0;n<e.length;n++){const r=e.charCodeAt(n);t.push(r<dt?dt:r>ft?ft:r)}for(;t.length>0&&t[t.length-1]===dt;)t.length--;return t.length>0?String.fromCharCode(...t):pt}(e)}function Ct(e,t,n=wt(t)){return Object.freeze({type:"HasParent",node:e,key:t,pos:n})}var Dt=Object.freeze({type:"NoParent"});var Et=class{#M;#L;#H=Dt;_getParentKeyOrThrow(){switch(this.parent.type){case"HasParent":return this.parent.key;case"NoParent":throw new Error("Parent key is missing");case"Orphaned":return this.parent.oldKey;default:return we(this.parent,"Unknown state")}}get _parentPos(){switch(this.parent.type){case"HasParent":return this.parent.pos;case"NoParent":throw new Error("Parent key is missing");case"Orphaned":return this.parent.oldPos;default:return we(this.parent,"Unknown state")}}get _pool(){return this.#M}get roomId(){return this.#M?this.#M.roomId:null}get _id(){return this.#L}get parent(){return this.#H}get _parentKey(){switch(this.parent.type){case"HasParent":return this.parent.key;case"NoParent":return null;case"Orphaned":return this.parent.oldKey;default:return we(this.parent,"Unknown state")}}_apply(e,t){return 5===e.type&&"HasParent"===this.parent.type?this.parent.node._detachChild(this):{modified:!1}}_setParentLink(e,t){switch(this.parent.type){case"HasParent":if(this.parent.node!==e)throw new Error("Cannot set parent: node already has a parent");return void(this.#H=Ct(e,t));case"Orphaned":case"NoParent":return void(this.#H=Ct(e,t));default:return we(this.parent,"Unknown state")}}_attach(e,t){if(this.#L||this.#M)throw new Error("Cannot attach node: already attached");t.addNode(e,this),this.#L=e,this.#M=t}_detach(){switch(this.#M&&this.#L&&this.#M.deleteNode(this.#L),this.parent.type){case"HasParent":this.#H=function(e,t=wt(e)){return Object.freeze({type:"Orphaned",oldKey:e,oldPos:t})}(this.parent.key,this.parent.pos);break;case"NoParent":this.#H=Dt;break;case"Orphaned":break;default:we(this.parent,"Unknown state")}this.#M=void 0}#z;#U;#W;invalidate(){void 0===this.#z&&void 0===this.#W||(this.#z=void 0,this.#W=void 0,"HasParent"===this.parent.type&&this.parent.node.invalidate())}toTreeNode(e){return void 0!==this.#W&&this.#U===e||(this.#U=e,this.#W=this._toTreeNode(e)),this.#W}toImmutable(){return void 0===this.#z&&(this.#z=this._toImmutable()),this.#z}};function xt(e){return 0===e.type&&!function(e){return void 0!==e.parentId&&void 0!==e.parentKey}(e)}var At=class e extends Et{#V;constructor(e){super(),this.#V=e}get data(){return this.#V}static _deserialize([t,n],r,o){const i=new e(n.data);return i._attach(t,o),i}_toOps(e,t,n){if(void 0===this._id)throw new Error("Cannot serialize register if parentId or parentKey is undefined");return[{type:8,opId:n?.generateOpId(),id:this._id,parentId:e,parentKey:t,data:this.data}]}_serialize(){if("HasParent"!==this.parent.type)throw new Error("Cannot serialize LiveRegister if parent is missing");return{type:3,parentId:Ce(this.parent.node._id,"Parent node expected to have ID"),parentKey:this.parent.key,data:this.data}}_attachChild(e){throw new Error("Method not implemented.")}_detachChild(e){throw new Error("Method not implemented.")}_apply(e,t){return super._apply(e,t)}_toTreeNode(e){return{type:"Json",id:this._id??ee(),key:e,payload:this.#V}}_toImmutable(){return this.#V}clone(){return P(this.data)}};function It(e,t){const n=e._parentPos,r=t._parentPos;return n===r?0:n<r?-1:1}var St=class e extends Et{#$;#q;#K;constructor(e){let t;super(),this.#$=[],this.#q=new WeakSet,this.#K=new Map;for(const n of e){const e=vt(t),r=Kt(n);r._setParentLink(this,e),this.#$.push(r),t=e}}static _deserialize([t],n,r){const o=new e([]);o._attach(t,r);const i=n.get(t);if(void 0===i)return o;for(const[e,t]of i){const i=Ht([e,t],n,r);i._setParentLink(o,t.parentKey),o._insertAndSort(i)}return o}_toOps(e,t,n){if(void 0===this._id)throw new Error("Cannot serialize item is not attached");const r=[],o={id:this._id,opId:n?.generateOpId(),type:2,parentId:e,parentKey:t};r.push(o);for(const e of this.#$){const t=e._getParentKeyOrThrow(),o=Rt(e._toOps(this._id,t,n),void 0),i=o[0].opId;void 0!==i&&this.#K.set(t,i),r.push(...o)}return r}_insertAndSort(e){this.#$.push(e),this._sortItems()}_sortItems(){this.#$.sort(It),this.invalidate()}_indexOfPosition(e){return this.#$.findIndex(t=>t._getParentKeyOrThrow()===e)}_attach(e,t){super._attach(e,t);for(const e of this.#$)e._attach(t.generateId(),t)}_detach(){super._detach();for(const e of this.#$)e._detach()}#G(e){if(void 0===this._pool)throw new Error("Can't attach child if managed pool is not present");const{id:t,parentKey:n}=e,r=Pt(e);r._attach(t,this._pool),r._setParentLink(this,n);const o=e.deletedId,i=this._indexOfPosition(n);if(-1!==i){const t=this.#$[i];if(t._id===o)return t._detach(),this.#$[i]=r,{modified:Tt(this,[Bt(i,r)]),reverse:[]};{this.#q.add(t),this.#$[i]=r;const n=[Bt(i,r)],o=this.#X(e.deletedId);return o&&n.push(o),{modified:Tt(this,n),reverse:[]}}}{const t=[],o=this.#X(e.deletedId);return o&&t.push(o),this._insertAndSort(r),t.push(_t(this._indexOfPosition(n),r)),{reverse:[],modified:Tt(this,t)}}}#Z(e){if(void 0===this._pool)throw new Error("Can't attach child if managed pool is not present");const t=[],n=this.#X(e.deletedId);n&&t.push(n);const r=this.#K.get(e.parentKey);if(void 0!==r){if(r!==e.opId)return 0===t.length?{modified:!1}:{modified:Tt(this,t),reverse:[]};this.#K.delete(e.parentKey)}const o=this._indexOfPosition(e.parentKey),i=this.#$.find(t=>t._id===e.id);if(void 0!==i){if(i._parentKey===e.parentKey)return{modified:t.length>0&&Tt(this,t),reverse:[]};if(-1!==o){this.#q.add(this.#$[o]);const[e]=this.#$.splice(o,1);t.push(kt(o,e))}const n=this.#$.indexOf(i);i._setParentLink(this,e.parentKey),this._sortItems();const r=this.#$.indexOf(i);return r!==n&&t.push(Ft(n,r,i)),{modified:t.length>0&&Tt(this,t),reverse:[]}}{const n=this._pool.getNode(e.id);if(n&&this.#q.has(n)){n._setParentLink(this,e.parentKey),this.#q.delete(n),this._insertAndSort(n);const r=this.#$.indexOf(n);return{modified:Tt(this,[-1===o?_t(r,n):Bt(r,n),...t]),reverse:[]}}{-1!==o&&this.#$.splice(o,1);const{newItem:n,newIndex:r}=this.#Y(e,e.parentKey);return{modified:Tt(this,[-1===o?_t(r,n):Bt(r,n),...t]),reverse:[]}}}}#X(e){if(void 0===e||void 0===this._pool)return null;const t=this._pool.getNode(e);if(void 0===t)return null;const n=this._detachChild(t);return!1===n.modified?null:n.modified.updates[0]}#J(e){if(void 0===this._pool)throw new Error("Can't attach child if managed pool is not present");const t=wt(e.parentKey),n=this._indexOfPosition(t);-1!==n&&this.#Q(n,t);const{newItem:r,newIndex:o}=this.#Y(e,t);return{modified:Tt(this,[_t(o,r)]),reverse:[]}}#ee(e){const t=this.#$.find(t=>t._id===e.id),n=wt(e.parentKey),r=this._indexOfPosition(n);if(t){if(t._parentKey===n)return{modified:!1};{const e=this.#$.indexOf(t);-1!==r&&this.#Q(r,n),t._setParentLink(this,n),this._sortItems();const o=this._indexOfPosition(n);return o===e?{modified:!1}:{modified:Tt(this,[Ft(e,o,t)]),reverse:[]}}}{const t=Ce(this._pool).getNode(e.id);if(t&&this.#q.has(t)){t._setParentLink(this,n),this.#q.delete(t),this._insertAndSort(t);return{modified:Tt(this,[_t(this._indexOfPosition(n),t)]),reverse:[]}}{-1!==r&&this.#Q(r,n);const{newItem:t,newIndex:o}=this.#Y(e,n);return{modified:Tt(this,[_t(o,t)]),reverse:[]}}}}#te(e){const{id:t,parentKey:n}=e,r=Pt(e);if(void 0!==this._pool?.getNode(t))return{modified:!1};r._attach(t,Ce(this._pool)),r._setParentLink(this,n);const o=this._indexOfPosition(n);let i=n;if(-1!==o){const e=this.#$[o]?._parentPos,t=this.#$[o+1]?._parentPos;i=vt(e,t),r._setParentLink(this,i)}this._insertAndSort(r);return{modified:Tt(this,[_t(this._indexOfPosition(i),r)]),reverse:[{type:5,id:t}]}}#ne(e){const{id:t,parentKey:n}=e,r=Pt(e);if(void 0!==this._pool?.getNode(t))return{modified:!1};this.#K.set(n,Ce(e.opId));const o=this._indexOfPosition(n);r._attach(t,Ce(this._pool)),r._setParentLink(this,n);const i=n;if(-1!==o){const t=this.#$[o];t._detach(),this.#$[o]=r;const i=Rt(t._toOps(Ce(this._id),n,this._pool),e.id),a=[Bt(o,r)],s=this.#X(e.deletedId);return s&&a.push(s),{modified:Tt(this,a),reverse:i}}this._insertAndSort(r),this.#X(e.deletedId);return{reverse:[{type:5,id:t}],modified:Tt(this,[_t(this._indexOfPosition(i),r)])}}_attachChild(e,t){if(void 0===this._pool)throw new Error("Can't attach child if managed pool is not present");let n;return n="set"===e.intent?1===t?this.#G(e):2===t?this.#Z(e):this.#ne(e):1===t?this.#J(e):2===t?this.#ee(e):this.#te(e),!1!==n.modified&&this.invalidate(),n}_detachChild(e){if(e){const t=Ce(e._parentKey),n=e._toOps(Ce(this._id),t,this._pool),r=this.#$.indexOf(e);if(-1===r)return{modified:!1};const[o]=this.#$.splice(r,1);return this.invalidate(),e._detach(),{modified:Tt(this,[kt(r,o)]),reverse:n}}return{modified:!1}}#re(e,t){if(this.#q.has(t)){this.#q.delete(t),t._setParentLink(this,e),this._insertAndSort(t);return{modified:Tt(this,[_t(this.#$.indexOf(t),t)]),reverse:[]}}if(e===t._parentKey)return{modified:!1};const n=this._indexOfPosition(e);if(-1===n){const n=this.#$.indexOf(t);t._setParentLink(this,e),this._sortItems();const r=this.#$.indexOf(t);return r===n?{modified:!1}:{modified:Tt(this,[Ft(n,r,t)]),reverse:[]}}{this.#$[n]._setParentLink(this,vt(e,this.#$[n+1]?._parentPos));const r=this.#$.indexOf(t);t._setParentLink(this,e),this._sortItems();const o=this.#$.indexOf(t);return o===r?{modified:!1}:{modified:Tt(this,[Ft(r,o,t)]),reverse:[]}}}#oe(e,t){const n=Ce(t._parentKey);if(this.#q.has(t)){const n=this._indexOfPosition(e);return this.#q.delete(t),-1!==n&&this.#$[n]._setParentLink(this,vt(e,this.#$[n+1]?._parentPos)),t._setParentLink(this,e),this._insertAndSort(t),{modified:!1}}{if(e===n)return{modified:!1};const r=this.#$.indexOf(t),o=this._indexOfPosition(e);-1!==o&&this.#$[o]._setParentLink(this,vt(e,this.#$[o+1]?._parentPos)),t._setParentLink(this,e),this._sortItems();const i=this.#$.indexOf(t);return r===i?{modified:!1}:{modified:Tt(this,[Ft(r,i,t)]),reverse:[]}}}#ie(e,t){const n=Ce(t._parentKey),r=this.#$.indexOf(t),o=this._indexOfPosition(e);-1!==o&&this.#$[o]._setParentLink(this,vt(e,this.#$[o+1]?._parentPos)),t._setParentLink(this,e),this._sortItems();const i=this.#$.indexOf(t);return r===i?{modified:!1}:{modified:Tt(this,[Ft(r,i,t)]),reverse:[{type:1,id:Ce(t._id),parentKey:n}]}}_setChildKey(e,t,n){return 1===n?this.#re(e,t):2===n?this.#oe(e,t):this.#ie(e,t)}_apply(e,t){return super._apply(e,t)}_serialize(){if("HasParent"!==this.parent.type)throw new Error("Cannot serialize LiveList if parent is missing");return{type:1,parentId:Ce(this.parent.node._id,"Parent node expected to have ID"),parentKey:this.parent.key}}get length(){return this.#$.length}push(e){return this._pool?.assertStorageIsWritable(),this.insert(e,this.length)}insert(e,t){if(this._pool?.assertStorageIsWritable(),t<0||t>this.#$.length)throw new Error(`Cannot insert list item at index "${t}". index should be between 0 and ${this.#$.length}`);const n=vt(this.#$[t-1]?this.#$[t-1]._parentPos:void 0,this.#$[t]?this.#$[t]._parentPos:void 0),r=Kt(e);if(r._setParentLink(this,n),this._insertAndSort(r),this._pool&&this._id){const e=this._pool.generateId();r._attach(e,this._pool),this._pool.dispatch(r._toOps(this._id,n,this._pool),[{type:5,id:e}],new Map([[this._id,Tt(this,[_t(t,r)])]]))}}move(e,t){if(this._pool?.assertStorageIsWritable(),t<0)throw new Error("targetIndex cannot be less than 0");if(t>=this.#$.length)throw new Error("targetIndex cannot be greater or equal than the list length");if(e<0)throw new Error("index cannot be less than 0");if(e>=this.#$.length)throw new Error("index cannot be greater or equal than the list length");let n=null,r=null;e<t?(r=t===this.#$.length-1?void 0:this.#$[t+1]._parentPos,n=this.#$[t]._parentPos):(r=this.#$[t]._parentPos,n=0===t?void 0:this.#$[t-1]._parentPos);const o=vt(n,r),i=this.#$[e],a=i._getParentKeyOrThrow();if(i._setParentLink(this,o),this._sortItems(),this._pool&&this._id){const n=new Map([[this._id,Tt(this,[Ft(e,t,i)])]]);this._pool.dispatch([{type:1,id:Ce(i._id),opId:this._pool.generateOpId(),parentKey:o}],[{type:1,id:Ce(i._id),parentKey:a}],n)}}delete(e){if(this._pool?.assertStorageIsWritable(),e<0||e>=this.#$.length)throw new Error(`Cannot delete list item at index "${e}". index should be between 0 and ${this.#$.length-1}`);const t=this.#$[e];t._detach();const[n]=this.#$.splice(e,1);if(this.invalidate(),this._pool){const r=t._id;if(r){const o=new Map;o.set(Ce(this._id),Tt(this,[kt(e,n)])),this._pool.dispatch([{id:r,opId:this._pool.generateOpId(),type:5}],t._toOps(Ce(this._id),t._getParentKeyOrThrow()),o)}}}clear(){if(this._pool?.assertStorageIsWritable(),this._pool){const e=[],t=[],n=[];for(const r of this.#$){r._detach();const o=r._id;o&&(e.push({type:5,id:o,opId:this._pool.generateOpId()}),t.push(...r._toOps(Ce(this._id),r._getParentKeyOrThrow())),n.push(kt(0,r)))}this.#$=[],this.invalidate();const r=new Map;r.set(Ce(this._id),Tt(this,n)),this._pool.dispatch(e,t,r)}else{for(const e of this.#$)e._detach();this.#$=[],this.invalidate()}}set(e,t){if(this._pool?.assertStorageIsWritable(),e<0||e>=this.#$.length)throw new Error(`Cannot set list item at index "${e}". index should be between 0 and ${this.#$.length-1}`);const n=this.#$[e],r=n._getParentKeyOrThrow(),o=n._id;n._detach();const i=Kt(t);if(i._setParentLink(this,r),this.#$[e]=i,this.invalidate(),this._pool&&this._id){const t=this._pool.generateId();i._attach(t,this._pool);const a=new Map;a.set(this._id,Tt(this,[Bt(e,i)]));const s=Rt(i._toOps(this._id,r,this._pool),o);this.#K.set(r,Ce(s[0].opId));const u=Rt(n._toOps(this._id,r,void 0),t);this._pool.dispatch(s,u,a)}}toArray(){return this.#$.map(e=>qt(e))}every(e){return this.toArray().every(e)}filter(e){return this.toArray().filter(e)}find(e){return this.toArray().find(e)}findIndex(e){return this.toArray().findIndex(e)}forEach(e){return this.toArray().forEach(e)}get(e){if(!(e<0||e>=this.#$.length))return qt(this.#$[e])}indexOf(e,t){return this.toArray().indexOf(e,t)}lastIndexOf(e,t){return this.toArray().lastIndexOf(e,t)}map(e){return this.#$.map((t,n)=>e(qt(t),n))}some(e){return this.toArray().some(e)}[Symbol.iterator](){return new Ot(this.#$)}#Y(e,t){const n=Pt(e);n._attach(e.id,Ce(this._pool)),n._setParentLink(this,t),this._insertAndSort(n);return{newItem:n,newIndex:this._indexOfPosition(t)}}#Q(e,t){const n=vt(t,this.#$.length>e+1?this.#$[e+1]?._parentPos:void 0);this.#$[e]._setParentLink(this,n)}_toTreeNode(e){return{type:"LiveList",id:this._id??ee(),key:e,payload:this.#$.map((e,t)=>e.toTreeNode(t.toString()))}}toImmutable(){return super.toImmutable()}_toImmutable(){const e=this.#$.map(e=>e.toImmutable());return e}clone(){return new e(this.#$.map(e=>e.clone()))}},Ot=class{#ae;constructor(e){this.#ae=e[Symbol.iterator]()}[Symbol.iterator](){return this}next(){const e=this.#ae.next();if(e.done)return{done:!0,value:void 0};return{value:qt(e.value)}}};function Tt(e,t){return{node:e,type:"LiveList",updates:t}}function Bt(e,t){return{index:e,type:"set",item:t instanceof At?t.data:t}}function kt(e,t){return{type:"delete",index:e,deletedItem:t instanceof At?t.data:t}}function _t(e,t){return{index:e,type:"insert",item:t instanceof At?t.data:t}}function Ft(e,t,n){return{type:"move",index:t,item:n instanceof At?n.data:n,previousIndex:e}}function Rt(e,t){return e.map((e,n)=>{if(0===n){return{...e,intent:"set",deletedId:t}}return e})}var jt=class e extends Et{#se;#ue;constructor(e){if(super(),this.#ue=new Map,e){const t=[];for(const[n,r]of e){const e=Kt(r);e._setParentLink(this,n),t.push([n,e])}this.#se=new Map(t)}else this.#se=new Map}_toOps(e,t,n){if(void 0===this._id)throw new Error("Cannot serialize item is not attached");const r=[],o={id:this._id,opId:n?.generateOpId(),type:7,parentId:e,parentKey:t};r.push(o);for(const[e,t]of this.#se)r.push(...t._toOps(this._id,e,n));return r}static _deserialize([t,n],r,o){const i=new e;i._attach(t,o);const a=r.get(t);if(void 0===a)return i;for(const[e,t]of a){const n=Ht([e,t],r,o);n._setParentLink(i,t.parentKey),i.#se.set(t.parentKey,n),i.invalidate()}return i}_attach(e,t){super._attach(e,t);for(const[e,n]of this.#se)Wt(n)&&n._attach(t.generateId(),t)}_attachChild(e,t){if(void 0===this._pool)throw new Error("Can't attach child if managed pool is not present");const{id:n,parentKey:r,opId:o}=e,i=r,a=Pt(e);if(void 0!==this._pool.getNode(n))return{modified:!1};if(2===t){const e=this.#ue.get(i);if(e===o)return this.#ue.delete(i),{modified:!1};if(void 0!==e)return{modified:!1}}else 1===t&&this.#ue.delete(i);const s=this.#se.get(i);let u;if(s){const e=Ce(this._id);u=s._toOps(e,i),s._detach()}else u=[{type:5,id:n}];return a._setParentLink(this,i),a._attach(n,this._pool),this.#se.set(i,a),this.invalidate(),{modified:{node:this,type:"LiveMap",updates:{[i]:{type:"update"}}},reverse:u}}_detach(){super._detach();for(const e of this.#se.values())e._detach()}_detachChild(e){const t=Ce(this._id),n=Ce(e._parentKey),r=e._toOps(t,n,this._pool);for(const[t,n]of this.#se)n===e&&(this.#se.delete(t),this.invalidate());e._detach();return{modified:{node:this,type:"LiveMap",updates:{[n]:{type:"delete"}}},reverse:r}}_serialize(){if("HasParent"!==this.parent.type)throw new Error("Cannot serialize LiveMap if parent is missing");return{type:2,parentId:Ce(this.parent.node._id,"Parent node expected to have ID"),parentKey:this.parent.key}}get(e){const t=this.#se.get(e);if(void 0!==t)return qt(t)}set(e,t){this._pool?.assertStorageIsWritable();const n=this.#se.get(e);n&&n._detach();const r=Kt(t);if(r._setParentLink(this,e),this.#se.set(e,r),this.invalidate(),this._pool&&this._id){const t=this._pool.generateId();r._attach(t,this._pool);const o=new Map;o.set(this._id,{node:this,type:"LiveMap",updates:{[e]:{type:"update"}}});const i=r._toOps(this._id,e,this._pool);this.#ue.set(e,Ce(i[0].opId)),this._pool.dispatch(r._toOps(this._id,e,this._pool),n?n._toOps(this._id,e):[{type:5,id:t}],o)}}get size(){return this.#se.size}has(e){return this.#se.has(e)}delete(e){this._pool?.assertStorageIsWritable();const t=this.#se.get(e);if(void 0===t)return!1;if(t._detach(),this.#se.delete(e),this.invalidate(),this._pool&&t._id){const n=Ce(this._id),r=new Map;r.set(n,{node:this,type:"LiveMap",updates:{[e]:{type:"delete"}}}),this._pool.dispatch([{type:5,id:t._id,opId:this._pool.generateOpId()}],t._toOps(n,e),r)}return!0}entries(){const e=this.#se.entries();return{[Symbol.iterator](){return this},next(){const t=e.next();if(t.done)return{done:!0,value:void 0};return{value:[t.value[0],qt(t.value[1])]}}}}[Symbol.iterator](){return this.entries()}keys(){return this.#se.keys()}values(){const e=this.#se.values();return{[Symbol.iterator](){return this},next(){const t=e.next();if(t.done)return{done:!0,value:void 0};return{value:qt(t.value)}}}}forEach(e){for(const t of this)e(t[1],t[0],this)}_toTreeNode(e){return{type:"LiveMap",id:this._id??ee(),key:e,payload:Array.from(this.#se.entries()).map(([e,t])=>t.toTreeNode(e))}}toImmutable(){return super.toImmutable()}_toImmutable(){const e=new Map;for(const[t,n]of this.#se)e.set(t,n.toImmutable());return e}clone(){return new e(Array.from(this.#se).map(([e,t])=>[e,t.clone()]))}},Nt=class e extends Et{#se;#ce;static#le(e){const t=new Map;let n=null;for(const[r,o]of e)if(xt(o))n=[r,o];else{const e=[r,o],n=t.get(o.parentId);void 0!==n?n.push(e):t.set(o.parentId,[e])}if(null===n)throw new Error("Root can't be null");return[n,t]}static _fromItems(t,n){const[r,o]=e.#le(t);return e._deserialize(r,o,n)}constructor(e={}){super(),this.#ce=new Map;const t=L(e);for(const e of Object.keys(t)){const n=t[e];Wt(n)&&n._setParentLink(this,e)}this.#se=new Map(Object.entries(t))}_toOps(e,t,n){if(void 0===this._id)throw new Error("Cannot serialize item is not attached");const r=n?.generateOpId(),o=[],i={type:4,id:this._id,opId:r,parentId:e,parentKey:t,data:{}};o.push(i);for(const[e,t]of this.#se)Wt(t)?o.push(...t._toOps(this._id,e,n)):i.data[e]=t;return o}static _deserialize([t,n],r,o){const i=new e(n.data);return i._attach(t,o),this._deserializeChildren(i,r,o)}static _deserializeChildren(e,t,n){const r=t.get(Ce(e._id));if(void 0===r)return e;for(const[o,i]of r){const r=zt([o,i],t,n);Ut(r)&&r._setParentLink(e,i.parentKey),e.#se.set(i.parentKey,r),e.invalidate()}return e}_attach(e,t){super._attach(e,t);for(const[e,n]of this.#se)Wt(n)&&n._attach(t.generateId(),t)}_attachChild(e,t){if(void 0===this._pool)throw new Error("Can't attach child if managed pool is not present");const{id:n,opId:r,parentKey:o}=e,i=Mt(e);if(void 0!==this._pool.getNode(n))return this.#ce.get(o)===r&&this.#ce.delete(o),{modified:!1};if(0===t)this.#ce.set(o,Ce(r));else if(void 0!==this.#ce.get(o))return this.#ce.get(o)===r?(this.#ce.delete(o),{modified:!1}):{modified:!1};const a=Ce(this._id),s=this.#se.get(o);let u;return Wt(s)?(u=s._toOps(a,o),s._detach()):u=void 0===s?[{type:6,id:a,key:o}]:[{type:3,id:a,data:{[o]:s}}],this.#se.set(o,i),this.invalidate(),Ut(i)&&(i._setParentLink(this,o),i._attach(n,this._pool)),{reverse:u,modified:{node:this,type:"LiveObject",updates:{[o]:{type:"update"}}}}}_detachChild(e){if(e){const t=Ce(this._id),n=Ce(e._parentKey),r=e._toOps(t,n,this._pool);for(const[t,n]of this.#se)n===e&&(this.#se.delete(t),this.invalidate());e._detach();return{modified:{node:this,type:"LiveObject",updates:{[n]:{type:"delete"}}},reverse:r}}return{modified:!1}}_detach(){super._detach();for(const e of this.#se.values())Wt(e)&&e._detach()}_apply(e,t){return 3===e.type?this.#de(e,t):6===e.type?this.#fe(e,t):super._apply(e,t)}_serialize(){const e={};for(const[t,n]of this.#se)Wt(n)||(e[t]=n);return"HasParent"===this.parent.type&&this.parent.node._id?{type:0,parentId:this.parent.node._id,parentKey:this.parent.key,data:e}:{type:0,data:e}}#de(e,t){let n=!1;const r=Ce(this._id),o=[],i={type:3,id:r,data:{}};for(const t in e.data){const e=this.#se.get(t);Wt(e)?(o.push(...e._toOps(r,t)),e._detach()):void 0!==e?i.data[t]=e:void 0===e&&o.push({type:6,id:r,key:t})}const a={};for(const r in e.data){const o=e.data[r];if(void 0===o)continue;if(t)this.#ce.set(r,Ce(e.opId));else{if(void 0!==this.#ce.get(r)){if(this.#ce.get(r)===e.opId){this.#ce.delete(r);continue}continue}n=!0}const i=this.#se.get(r);Wt(i)&&i._detach(),n=!0,a[r]={type:"update"},this.#se.set(r,o),this.invalidate()}return 0!==Object.keys(i.data).length&&o.unshift(i),n?{modified:{node:this,type:"LiveObject",updates:a},reverse:o}:{modified:!1}}#fe(e,t){const n=e.key;if(!1===this.#se.has(n))return{modified:!1};if(!t&&void 0!==this.#ce.get(n))return{modified:!1};const r=this.#se.get(n),o=Ce(this._id);let i=[];return Wt(r)?(i=r._toOps(o,e.key),r._detach()):void 0!==r&&(i=[{type:3,id:o,data:{[n]:r}}]),this.#se.delete(n),this.invalidate(),{modified:{node:this,type:"LiveObject",updates:{[e.key]:{type:"delete"}}},reverse:i}}toObject(){return Object.fromEntries(this.#se)}set(e,t){this._pool?.assertStorageIsWritable(),this.update({[e]:t})}get(e){return this.#se.get(e)}delete(e){this._pool?.assertStorageIsWritable();const t=e,n=this.#se.get(t);if(void 0===n)return;if(void 0===this._pool||void 0===this._id)return Wt(n)&&n._detach(),this.#se.delete(t),void this.invalidate();let r;Wt(n)?(n._detach(),r=n._toOps(this._id,t)):r=[{type:3,data:{[t]:n},id:this._id}],this.#se.delete(t),this.invalidate();const o=new Map;o.set(this._id,{node:this,type:"LiveObject",updates:{[e]:{type:"delete"}}}),this._pool.dispatch([{type:6,key:t,id:this._id,opId:this._pool.generateOpId()}],r,o)}update(e){if(this._pool?.assertStorageIsWritable(),void 0===this._pool||void 0===this._id){for(const t in e){const n=e[t];if(void 0===n)continue;const r=this.#se.get(t);Wt(r)&&r._detach(),Wt(n)&&n._setParentLink(this,t),this.#se.set(t,n),this.invalidate()}return}const t=[],n=[],r=this._pool.generateOpId(),o={},i={id:this._id,type:3,data:{}},a={};for(const s in e){const u=e[s];if(void 0===u)continue;const c=this.#se.get(s);if(Wt(c)?(n.push(...c._toOps(this._id,s)),c._detach()):void 0===c?n.push({type:6,id:this._id,key:s}):i.data[s]=c,Wt(u)){u._setParentLink(this,s),u._attach(this._pool.generateId(),this._pool);const e=u._toOps(this._id,s,this._pool),n=e.find(e=>e.parentId===this._id);n&&this.#ce.set(s,Ce(n.opId)),t.push(...e)}else o[s]=u,this.#ce.set(s,r);this.#se.set(s,u),this.invalidate(),a[s]={type:"update"}}0!==Object.keys(i.data).length&&n.unshift(i),0!==Object.keys(o).length&&t.unshift({opId:r,id:this._id,type:3,data:o});const s=new Map;s.set(this._id,{node:this,type:"LiveObject",updates:a}),this._pool.dispatch(t,n,s)}toImmutable(){return super.toImmutable()}toTreeNode(e){return super.toTreeNode(e)}_toTreeNode(e){const t=this._id??ee();return{type:"LiveObject",id:t,key:e,payload:Array.from(this.#se.entries()).map(([e,n])=>Wt(n)?n.toTreeNode(e):{type:"Json",id:`${t}:${e}`,key:e,payload:n})}}_toImmutable(){const e={};for(const[t,n]of this.#se)e[t]=Ut(n)?n.toImmutable():n;return e}clone(){return new e(Object.fromEntries(Array.from(this.#se).map(([e,t])=>[e,Ut(t)?t.clone():P(t)])))}};function Pt(e){return Kt(Mt(e))}function Mt(e){switch(e.type){case 8:return e.data;case 4:return new Nt(e.data);case 7:return new jt;case 2:return new St([]);default:return we(0,"Unknown creation Op")}}function Lt(e,t){return e===t||"HasParent"===e.parent.type&&Lt(e.parent.node,t)}function Ht([e,t],n,r){switch(t.type){case 0:return Nt._deserialize([e,t],n,r);case 1:return St._deserialize([e,t],n,r);case 2:return jt._deserialize([e,t],n,r);case 3:return At._deserialize([e,t],n,r);default:throw new Error("Unexpected CRDT type")}}function zt([e,t],n,r){switch(t.type){case 0:return Nt._deserialize([e,t],n,r);case 1:return St._deserialize([e,t],n,r);case 2:return jt._deserialize([e,t],n,r);case 3:return t.data;default:throw new Error("Unexpected CRDT type")}}function Ut(e){return Vt(e)||function(e){return e instanceof jt}(e)||function(e){return e instanceof Nt}(e)}function Wt(e){return Ut(e)||function(e){return e instanceof At}(e)}function Vt(e){return e instanceof St}function $t(e){return void 0===e?void 0:Ut(e)?e.clone():P(e)}function qt(e){return e instanceof At?e.data:e instanceof St||e instanceof jt||e instanceof Nt?e:we(0,"Unknown AbstractCrdt")}function Kt(e){return e instanceof Nt||e instanceof jt||e instanceof St?e:new At(e)}function Gt(e,t){return void 0===e?t:"LiveObject"===e.type&&"LiveObject"===t.type?function(e,t){const n=e.updates;for(const[e,r]of j(t.updates))n[e]=r;return{...t,updates:n}}(e,t):"LiveMap"===e.type&&"LiveMap"===t.type?function(e,t){const n=e.updates;for(const[e,r]of j(t.updates))n[e]=r;return{...t,updates:n}}(e,t):"LiveList"===e.type&&"LiveList"===t.type?function(e,t){const n=e.updates;return{...t,updates:n.concat(t.updates)}}(e,t):t}function Xt(e){return Array.isArray(e)}var Zt=class{#he;#pe;signal;constructor(){this.#he=new lt({connections:new Map,presences:new Map}),this.signal=ct.from(this.#he,e=>M(Array.from(this.#he.get().presences.keys()).map(e=>this.getUser(Number(e))))),this.#pe=new Map}get(){return this.signal.get()}connectionIds(){return this.#he.get().connections.keys()}clearOthers(){this.#he.mutate(e=>{e.connections.clear(),e.presences.clear(),this.#pe.clear()})}#me(e){const t=this.#he.get(),n=t.connections.get(e),r=t.presences.get(e);if(void 0!==n&&void 0!==r)return function(e,t){const{connectionId:n,id:r,info:o}=e,i=Ge(e.scopes);return L({connectionId:n,id:r,info:o,canWrite:i,canComment:Xe(e.scopes),isReadOnly:!i,presence:t})}(n,r)}getUser(e){const t=this.#pe.get(e);if(t)return t;const n=this.#me(e);return n?(this.#pe.set(e,n),n):void 0}#ge(e){this.#pe.delete(e)}setConnection(e,t,n,r){this.#he.mutate(o=>(o.connections.set(e,{connectionId:e,id:t,info:n,scopes:r}),!!o.presences.has(e)&&this.#ge(e)))}removeConnection(e){this.#he.mutate(t=>{t.connections.delete(e),t.presences.delete(e),this.#ge(e)})}setOther(e,t){this.#he.mutate(n=>(n.presences.set(e,L(t)),!!n.connections.has(e)&&this.#ge(e)))}patchOther(e,t){this.#he.mutate(n=>{const r=n.presences.get(e);if(void 0===r)return!1;const o=ot(r,t);return r!==o&&(n.presences.set(e,o),this.#ge(e))})}};function Yt(e,t){return{type:"User",id:`${t.connectionId}`,key:e,payload:{connectionId:t.connectionId,id:t.id,info:t.info,presence:t.presence,isReadOnly:!t.canWrite}}}function Jt(e,t){const n=e.initialPresence,r=e.initialStorage,o=t.roomHttpClient,[i,a]=function(){const e="undefined"!=typeof document?document:void 0,t={current:null};function n(){t.current="hidden"===e?.visibilityState?t.current??Date.now():null}return e?.addEventListener("visibilitychange",n),[t,()=>{e?.removeEventListener("visibilitychange",n)}]}(),s={...t.delegates,canZombie:()=>void 0!==t.backgroundKeepAliveTimeout&&null!==i.current&&Date.now()>i.current+t.backgroundKeepAliveTimeout&&"synchronizing"!==ee()},u=new qe(s,t.enableDebugLogging),c={buffer:{flushTimerID:void 0,lastFlushedAt:0,presenceUpdates:{type:"full",data:n},messages:[],storageOperations:[]},staticSessionInfoSig:new at(null),dynamicSessionInfoSig:new at(null),myPresence:new st(n),others:new Zt,initialStorage:r,idFactory:null,yjsProvider:void 0,yjsProviderDidChange:G(),clock:0,opClock:0,nodes:new Map,root:void 0,undoStack:[],redoStack:[],pausedHistory:null,activeBatch:null,unacknowledgedOps:new Map,opStackTraces:void 0};let l,d;let f=!1;u.events.onMessage.subscribe(function(e){if("string"!=typeof e.data)return;const t=function(e){const t=N(e);return void 0===t?null:Xt(t)?M(t.map(e=>H(e))):M([H(t)])}(e.data);if(null===t||0===t.length)return;const n={storageUpdates:new Map,others:[]};for(const e of t)switch(e.type){case 101:{const t=L(e);t&&n.others.push(t);break}case 100:{const t=T(e);t&&n.others.push(t);break}case 103:{const t=c.others.get();p.customEvent.notify({connectionId:e.actor,user:e.actor<0?null:t.find(t=>t.connectionId===e.actor)??null,event:e.event});break}case 102:{const t=B(e);t&&n.others.push(t);break}case 300:p.ydoc.notify(e);break;case 104:n.others.push(k(e));break;case 200:q(e);break;case 201:{const t=I(e.ops,!1);for(const[e,r]of t.updates.storageUpdates)n.storageUpdates.set(e,Gt(n.storageUpdates.get(e),r));break}case 299:_("Storage mutation rejection error",e.reason);break;case 400:case 407:case 401:case 408:case 405:case 406:case 402:case 403:case 404:p.comments.notify(e)}x(n)}),u.events.statusDidChange.subscribe(function(e){const t=u.authValue;if(null!==t){const e=ye(t);if(e!==l)if(l=e,"secret"===t.type){const e=t.token.parsed;c.staticSessionInfoSig.set({userId:"sec-legacy"===e.k?e.id:e.uid,userInfo:"sec-legacy"===e.k?e.info:e.ui})}else c.staticSessionInfoSig.set({userId:void 0,userInfo:void 0})}p.status.notify(e),b()}),u.events.statusDidChange.subscribe(function(e){"reconnecting"===e?d=setTimeout(()=>{p.lostConnection.notify("lost"),f=!0,c.others.clearOthers(),x({others:[{type:"reset"}]})},t.lostConnectionTimeout):(clearTimeout(d),f&&("disconnected"===e?p.lostConnection.notify("failed"):p.lostConnection.notify("restored"),f=!1))}),u.events.didConnect.subscribe(function(){c.buffer.presenceUpdates={type:"full",data:{...c.myPresence.get()}},null!==V&&X({flush:!1}),z()}),u.events.didDisconnect.subscribe(function(){clearTimeout(c.buffer.flushTimerID)}),u.events.onLiveblocksError.subscribe(e=>{p.error.notify(e)});const h={roomId:t.roomId,getNode:e=>c.nodes.get(e),addNode:(e,t)=>{c.nodes.set(e,t)},deleteNode:e=>{c.nodes.delete(e)},generateId:()=>`${A()}:${c.clock++}`,generateOpId:()=>`${A()}:${c.opClock++}`,dispatch(e,t,n){const r=c.activeBatch;if(r){for(const t of e)r.ops.push(t);for(const[e,t]of n)r.updates.storageUpdates.set(e,Gt(r.updates.storageUpdates.get(e),t));r.reverseOps.unshift(...t)}else E(t),c.redoStack.length=0,W(e),x({storageUpdates:n})},assertStorageIsWritable:()=>{const e=c.dynamicSessionInfoSig.get()?.scopes;if(void 0===e)return;if(!Ge(e))throw new Error("Cannot write to storage with a read only user, please ensure the user has write permissions")}},p={status:G(),lostConnection:G(),customEvent:G(),self:G(),myPresence:G(),others:G(),error:G(),storageBatch:G(),history:G(),storageDidLoad:G(),storageStatus:G(),ydoc:G(),comments:G()},m=t.roomId;function g(e){const n=JSON.stringify(e),r=c.dynamicSessionInfoSig.get()?.nonce;if(t.unstable_fallbackToHTTP&&r){if((new TextEncoder).encode(n).length>1047552)return o.sendMessages({roomId:m,nonce:r,messages:e}).then(e=>{e.ok||403!==e.status||u.reconnect()}),void O("Message was too large for websockets and sent over HTTP instead")}u.send(n)}const v=ct.from(c.staticSessionInfoSig,c.dynamicSessionInfoSig,c.myPresence,(e,t,n)=>{if(null===e||null===t)return null;{const r=Ge(t.scopes);return{connectionId:t.actor,id:e.userId,info:e.userInfo,presence:n,canWrite:r,canComment:Xe(t.scopes)}}});let y;function b(){const e=v.get();null!==e&&e!==y&&(p.self.notify(e),y=e)}const w=ct.from(v,e=>null!==e?Yt("Me",e):null);function C(e){if(0===e.items.length)throw new Error("Internal error: cannot load storage without items");void 0!==c.root?function(e){if(void 0===c.root)return;const t=new Map;for(const[e,n]of c.nodes)t.set(e,n._serialize());const n=function(e,t){const n=[];return e.forEach((e,r)=>{t.get(r)||n.push({type:5,id:r})}),t.forEach((t,r)=>{const o=e.get(r);if(o)0===t.type&&(0===o.type&&JSON.stringify(t.data)===JSON.stringify(o.data)||n.push({type:3,id:r,data:t.data})),t.parentKey!==o.parentKey&&n.push({type:1,id:r,parentKey:Ce(t.parentKey,"Parent key must not be missing")});else switch(t.type){case 3:n.push({type:8,id:r,parentId:t.parentId,parentKey:t.parentKey,data:t.data});break;case 1:n.push({type:2,id:r,parentId:t.parentId,parentKey:t.parentKey});break;case 0:if(void 0===t.parentId||void 0===t.parentKey)throw new Error("Internal error. Cannot serialize storage root into an operation");n.push({type:4,id:r,parentId:t.parentId,parentKey:t.parentKey,data:t.data});break;case 2:n.push({type:7,id:r,parentId:t.parentId,parentKey:t.parentKey})}}),n}(t,new Map(e));x(I(n,!1).updates)}(e.items):c.root=Nt._fromItems(e.items,h);const t=v.get()?.canWrite??!0,n=c.undoStack.length;for(const e in c.initialStorage)void 0===c.root.get(e)&&(t?c.root.set(e,$t(c.initialStorage[e])):O(`Attempted to populate missing storage key '${e}', but current user has no write access`));c.undoStack.length=n}function D(e){c.undoStack.length>=50&&c.undoStack.shift(),c.undoStack.push(e),j()}function E(e){null!==c.pausedHistory?c.pausedHistory.unshift(...e):D(e)}function x(e){const t=e.storageUpdates,n=e.others;if(void 0!==n&&n.length>0){const e=c.others.get();for(const t of n)p.others.notify({...t,others:e})}if(e.presence&&(b(),p.myPresence.notify(c.myPresence.get())),void 0!==t&&t.size>0){const e=Array.from(t.values());p.storageBatch.notify(e)}ne()}function A(){const e=c.dynamicSessionInfoSig.get();if(e)return e.actor;throw new Error("Internal. Tried to get connection id but connection was never open")}function I(e,t){const n={reverse:[],storageUpdates:new Map,presence:!1},r=new Set,o=e.map(e=>"presence"===e.type||e.opId?e:{...e,opId:h.generateOpId()});for(const e of o)if("presence"===e.type){const t={type:"presence",data:{}};for(const n in e.data)t.data[n]=c.myPresence.get()[n];if(c.myPresence.patch(e.data),null===c.buffer.presenceUpdates)c.buffer.presenceUpdates={type:"partial",data:e.data};else for(const t in e.data)c.buffer.presenceUpdates.data[t]=e.data[t];n.reverse.unshift(t),n.presence=!0}else{let o;if(t)o=0;else{const t=Ce(e.opId);o=c.unacknowledgedOps.delete(t)?2:1}const i=S(e,o);if(i.modified){const t=i.modified.node._id;t&&r.has(t)||(n.storageUpdates.set(Ce(i.modified.node._id),Gt(n.storageUpdates.get(Ce(i.modified.node._id)),i.modified)),n.reverse.unshift(...i.reverse)),2!==e.type&&7!==e.type&&4!==e.type||r.add(Ce(e.id))}}return{ops:o,reverse:n.reverse,updates:{storageUpdates:n.storageUpdates,presence:n.presence}}}function S(e,t){if(function(e){return 5===e.type&&"ACK"===e.id}(e))return{modified:!1};switch(e.type){case 6:case 3:case 5:{const n=c.nodes.get(e.id);return void 0===n?{modified:!1}:n._apply(e,0===t)}case 1:{const n=c.nodes.get(e.id);return void 0===n?{modified:!1}:"HasParent"===n.parent.type&&Vt(n.parent.node)?n.parent.node._setChildKey(wt(e.parentKey),n,t):{modified:!1}}case 4:case 2:case 7:case 8:{if(void 0===e.parentId)return{modified:!1};const n=c.nodes.get(e.parentId);return void 0===n?{modified:!1}:n._attachChild(e,t)}}}function T(e){if(void 0!==e.targetActor){const t=c.others.getUser(e.actor);c.others.setOther(e.actor,e.data);const n=c.others.getUser(e.actor);if(void 0===t&&void 0!==n)return{type:"enter",user:n}}else c.others.patchOther(e.actor,e.data);const t=c.others.getUser(e.actor);return t?{type:"update",updates:e.data,user:t}:void 0}function B(e){const t=c.others.getUser(e.actor);return t?(c.others.removeConnection(e.actor),{type:"leave",user:t}):null}function k(e){c.dynamicSessionInfoSig.set({actor:e.actor,nonce:e.nonce,scopes:e.scopes}),c.idFactory=function(e){let t=0;return()=>`${e}:${t++}`}(e.actor),b();for(const t of c.others.connectionIds()){void 0===e.users[t]&&c.others.removeConnection(t)}for(const t in e.users){const n=e.users[t],r=Number(t);c.others.setConnection(r,n.id,n.info,n.scopes)}return{type:"reset"}}function F(){return c.undoStack.length>0}function R(){return c.redoStack.length>0}function j(){p.history.notify({canUndo:F(),canRedo:R()})}function L(e){c.others.setConnection(e.actor,e.id,e.info,e.scopes),c.buffer.messages.push({type:100,data:c.myPresence.get(),targetActor:e.actor}),z();const t=c.others.getUser(e.actor);return t?{type:"enter",user:t}:void 0}function H(e){return function(e){return!function(e){return null===e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e}(e)&&!Xt(e)}(e)?e:null}function z(){const e=c.buffer.storageOperations;if(e.length>0){for(const t of e)c.unacknowledgedOps.set(Ce(t.opId),t);ne()}if("connected"!==u.getStatus())return void(c.buffer.storageOperations=[]);const n=Date.now(),r=n-c.buffer.lastFlushedAt;if(r>=t.throttleDelay){const e=function(){const e=[];c.buffer.presenceUpdates&&e.push("full"===c.buffer.presenceUpdates.type?{type:100,targetActor:-1,data:c.buffer.presenceUpdates.data}:{type:100,data:c.buffer.presenceUpdates.data});for(const t of c.buffer.messages)e.push(t);c.buffer.storageOperations.length>0&&e.push({type:201,ops:c.buffer.storageOperations});return e}();if(0===e.length)return;g(e),c.buffer={flushTimerID:void 0,lastFlushedAt:n,messages:[],storageOperations:[],presenceUpdates:null}}else clearTimeout(c.buffer.flushTimerID),c.buffer.flushTimerID=setTimeout(z,t.throttleDelay-r)}function W(e){const{storageOperations:t}=c.buffer;for(const n of e)t.push(n);z()}let V=null,$=null;function q(e){const t=new Map(c.unacknowledgedOps);C(e),function(e){if(0===e.size)return;const t=[],n=I(Array.from(e.values()),!0);t.push({type:201,ops:n.ops}),x(n.updates),g(t)}(t),$?.(),ne(),p.storageDidLoad.notify()}function X(e){const n=c.buffer.messages;t.unstable_streamData?async function(){if(!u.authValue)return;q({type:200,items:await o.streamStorage({roomId:m})})}():n.some(e=>200===e.type)||n.push({type:200}),e.flush&&z()}function Z(){return null===V&&(X({flush:!0}),V=new Promise(e=>{$=e}),ne()),V}function Y(){const e=c.root;return void 0!==e?e:(Z(),null)}async function J(){return void 0!==c.root?Promise.resolve({root:c.root}):(await Z(),{root:Ce(c.root)})}const Q=t.createSyncSource();function ee(){return void 0===c.root?null===V?"not-loaded":"loading":0===c.unacknowledgedOps.size?"synchronized":"synchronizing"}let te=ee();function ne(){const e=ee();te!==e&&(te=e,p.storageStatus.notify(e)),Q.setSyncStatus("synchronizing"===e?"synchronizing":"synchronized")}function re(){return null!==v.get()}function ie(){return null!==Y()}const ae=ct.from(c.others.signal,e=>e.map((e,t)=>Yt(`Other ${t}`,e))),se={status:p.status.observable,lostConnection:p.lostConnection.observable,customEvent:p.customEvent.observable,others:p.others.observable,self:p.self.observable,myPresence:p.myPresence.observable,error:p.error.observable,storage:p.storageBatch.observable,storageBatch:p.storageBatch.observable,history:p.history.observable,storageDidLoad:p.storageDidLoad.observable,storageStatus:p.storageStatus.observable,ydoc:p.ydoc.observable,comments:p.comments.observable};const ue=t.createSyncSource();function ce(e){return ue.setSyncStatus("synchronizing"===e?"synchronizing":"synchronized")}return Object.defineProperty({[Je]:{get presenceBuffer(){return P(c.buffer.presenceUpdates?.data??null)},get undoStack(){return P(c.undoStack)},get nodeCount(){return c.nodes.size},getYjsProvider:()=>c.yjsProvider,setYjsProvider(e){c.yjsProvider?.off("status",ce),c.yjsProvider=e,e?.on("status",ce),c.yjsProviderDidChange.notify()},yjsProviderDidChange:c.yjsProviderDidChange.observable,reportTextEditor:async function(e,t){await o.reportTextEditor({roomId:m,type:e,rootKey:t})},createTextMention:async function(e,t){return o.createTextMention({roomId:m,userId:e,mentionId:t})},deleteTextMention:async function(e){return o.deleteTextMention({roomId:m,mentionId:e})},listTextVersions:async function(){return o.listTextVersions({roomId:m})},listTextVersionsSince:async function(e){return o.listTextVersionsSince({roomId:m,since:e.since,signal:e.signal})},getTextVersion:async function(e){return o.getTextVersion({roomId:m,versionId:e})},createTextVersion:async function(){return o.createTextVersion({roomId:m})},getSelf_forDevTools:()=>w.get(),getOthers_forDevTools:()=>ae.get(),simulate:{explicitClose:e=>u._privateSendMachineEvent({type:"EXPLICIT_SOCKET_CLOSE",event:e}),rawSend:e=>u.send(e)},attachmentUrlsStore:o.getOrCreateAttachmentUrlsStore(m)},id:t.roomId,subscribe:Qt(se),connect:()=>u.connect(),reconnect:()=>u.reconnect(),disconnect:()=>u.disconnect(),destroy:()=>{Q.destroy(),c.yjsProvider?.off("status",ce),ue.destroy(),a(),u.destroy()},updatePresence:function(e,t){const n={};null===c.buffer.presenceUpdates&&(c.buffer.presenceUpdates={type:"partial",data:{}});for(const t in e){const r=e[t];void 0!==r&&(c.buffer.presenceUpdates.data[t]=r,n[t]=c.myPresence.get()[t])}c.myPresence.patch(e),c.activeBatch?(t?.addToHistory&&c.activeBatch.reverseOps.unshift({type:"presence",data:n}),c.activeBatch.updates.presence=!0):(z(),t?.addToHistory&&E([{type:"presence",data:n}]),x({presence:!0}))},updateYDoc:function(e,t){const n={type:301,update:e,guid:t};c.buffer.messages.push(n),p.ydoc.notify(n),z()},broadcastEvent:function(e,t={shouldQueueEventIfNotReady:!1}){("connected"===u.getStatus()||t.shouldQueueEventIfNotReady)&&(c.buffer.messages.push({type:103,event:e}),z())},batch:function(e){if(c.activeBatch)return e();let t;c.activeBatch={ops:[],updates:{storageUpdates:new Map,presence:!1,others:[]},reverseOps:[]};try{t=e()}finally{const e=c.activeBatch;c.activeBatch=null,e.reverseOps.length>0&&E(e.reverseOps),e.ops.length>0&&(c.redoStack.length=0),e.ops.length>0&&W(e.ops),x(e.updates),z()}return t},history:{undo:function(){if(c.activeBatch)throw new Error("undo is not allowed during a batch");const e=c.undoStack.pop();if(void 0===e)return;c.pausedHistory=null;const t=I(e,!0);x(t.updates),c.redoStack.push(t.reverse),j();for(const e of t.ops)"presence"!==e.type&&c.buffer.storageOperations.push(e);z()},redo:function(){if(c.activeBatch)throw new Error("redo is not allowed during a batch");const e=c.redoStack.pop();if(void 0===e)return;c.pausedHistory=null;const t=I(e,!0);x(t.updates),c.undoStack.push(t.reverse),j();for(const e of t.ops)"presence"!==e.type&&c.buffer.storageOperations.push(e);z()},canUndo:F,canRedo:R,clear:function(){c.undoStack.length=0,c.redoStack.length=0},pause:function(){null===c.pausedHistory&&(c.pausedHistory=[])},resume:function(){const e=c.pausedHistory;c.pausedHistory=null,null!==e&&e.length>0&&D(e)}},fetchYDoc:function(e,t){c.buffer.messages.find(n=>300===n.type&&n.vector===e&&n.guid===t)||c.buffer.messages.push({type:300,vector:e,guid:t}),z()},getStorage:J,getStorageSnapshot:Y,getStorageStatus:ee,isPresenceReady:re,isStorageReady:ie,waitUntilPresenceReady:U(async function(){for(;!re();){const{promise:e,resolve:t}=K(),n=se.self.subscribeOnce(t),r=se.status.subscribeOnce(t);await e,n(),r()}}),waitUntilStorageReady:U(async function(){for(;!ie();)await J()}),events:se,getStatus:()=>u.getStatus(),getSelf:()=>v.get(),getPresence:()=>c.myPresence.get(),getOthers:()=>c.others.get(),getThreads:async function(e){return o.getThreads({roomId:m,query:e?.query,cursor:e?.cursor})},getThreadsSince:async function(e){return o.getThreadsSince({roomId:m,since:e.since,signal:e.signal})},getThread:async function(e){return o.getThread({roomId:m,threadId:e})},createThread:async function(e){return o.createThread({roomId:m,threadId:e.threadId,commentId:e.commentId,metadata:e.metadata,body:e.body,attachmentIds:e.attachmentIds})},deleteThread:async function(e){return o.deleteThread({roomId:m,threadId:e})},editThreadMetadata:async function({metadata:e,threadId:t}){return o.editThreadMetadata({roomId:m,threadId:t,metadata:e})},markThreadAsResolved:async function(e){return o.markThreadAsResolved({roomId:m,threadId:e})},markThreadAsUnresolved:async function(e){return o.markThreadAsUnresolved({roomId:m,threadId:e})},createComment:async function(e){return o.createComment({roomId:m,threadId:e.threadId,commentId:e.commentId,body:e.body,attachmentIds:e.attachmentIds})},editComment:async function(e){return o.editComment({roomId:m,threadId:e.threadId,commentId:e.commentId,body:e.body,attachmentIds:e.attachmentIds})},deleteComment:async function({threadId:e,commentId:t}){return o.deleteComment({roomId:m,threadId:e,commentId:t})},addReaction:async function({threadId:e,commentId:t,emoji:n}){return o.addReaction({roomId:m,threadId:e,commentId:t,emoji:n})},removeReaction:async function({threadId:e,commentId:t,emoji:n}){return await o.removeReaction({roomId:m,threadId:e,commentId:t,emoji:n})},prepareAttachment:function(e){return{type:"localAttachment",status:"idle",id:oe(),name:e.name,size:e.size,mimeType:e.type,file:e}},uploadAttachment:async function(e,t={}){return o.uploadAttachment({roomId:m,attachment:e,signal:t.signal})},getAttachmentUrl:function(e){return o.getAttachmentUrl({roomId:m,attachmentId:e})},getNotificationSettings:function(e){return o.getNotificationSettings({roomId:m,signal:e?.signal})},updateNotificationSettings:function(e){return o.updateNotificationSettings({roomId:m,settings:e})},markInboxNotificationAsRead:async function(e){await o.markRoomInboxNotificationAsRead({roomId:m,inboxNotificationId:e})}},Je,{enumerable:!1})}function Qt(e){function t(t,n){return e.storageBatch.subscribe(e=>{const r=e.filter(e=>Lt(e.node,t));r.length>0&&n(r)})}return function(n,r,o){if("string"==typeof n&&("my-presence"===(i=n)||"others"===i||"event"===i||"error"===i||"history"===i||"status"===i||"storage-status"===i||"lost-connection"===i||"connection"===i||"comments"===i)){if("function"!=typeof r)throw new Error("Second argument must be a callback function");const t=r;switch(n){case"event":return e.customEvent.subscribe(t);case"my-presence":return e.myPresence.subscribe(t);case"others":{const n=t;return e.others.subscribe(e=>{const{others:t,...r}=e;return n(t,r)})}case"error":return e.error.subscribe(t);case"status":return e.status.subscribe(t);case"lost-connection":return e.lostConnection.subscribe(t);case"history":return e.history.subscribe(t);case"storage-status":return e.storageStatus.subscribe(t);case"comments":return e.comments.subscribe(t);default:return we(0,`"${String(n)}" is not a valid event name`)}}var i;if(void 0===r||"function"==typeof n){if("function"==typeof n){const t=n;return e.storageBatch.subscribe(t)}throw new Error("Please specify a listener callback")}if(Wt(n)){const i=n;if(o?.isDeep){return t(i,r)}return function(t,n){return e.storageBatch.subscribe(e=>{for(const r of e)r.node._id===t._id&&n(r.node)})}(i,r)}throw new Error(`${String(n)} is not a value that can be subscribed to.`)}}function en(e,t){return async()=>t.getAuthValue({requestedScope:"room:read",roomId:e})}function tn(e,t,n){return r=>{const o=n??("undefined"==typeof WebSocket?void 0:WebSocket);if(void 0===o)throw new Fe("To use Liveblocks client in a non-DOM environment, you need to provide a WebSocket polyfill.");const i=new URL(t);if(i.protocol="http:"===i.protocol?"ws":"wss",i.pathname="/v7",i.searchParams.set("roomId",e),"secret"===r.type)i.searchParams.set("tok",r.token.raw);else{if("public"!==r.type)return we(0,"Unhandled case");i.searchParams.set("pubkey",r.publicApiKey)}return i.searchParams.set("version",g),new o(i.toString())}}function nn(e){const t=e,n=rn("throttle",t.throttle??100,16,1e3);const r=function(e){return rn("lostConnectionTimeout",e,200,3e4,1e3)}(t.lostConnectionTimeout??5e3),i=function(e){return void 0===e?void 0:rn("backgroundKeepAliveTimeout",e,15e3)}(t.backgroundKeepAliveTimeout),a=function(e){return"string"==typeof e&&e.startsWith("http")?e:"https://api.liveblocks.io"}(t.baseUrl),s=new at(void 0),u=Ye(e,e=>{const t="sec-legacy"===e.k?e.id:e.uid;s.set(()=>t)}),c=t.polyfills?.fetch||globalThis.fetch?.bind(globalThis),l=ve({baseUrl:a,fetchPolyfill:c,authManager:u}),d=new Map;function f(e){const t=()=>{const n=t;var r;e.unsubs.delete(n)?0===e.unsubs.size&&((r=e.room).id,d.delete(r.id),r.destroy()):O("This leave function was already called. Calling it more than once has no effect.")};return e.unsubs.add(t),{room:e.room,leave:t}}const h=t.resolveUsers,p=on(()=>!h,"Set the resolveUsers option in createClient to specify user info."),m=J(new Y(async e=>{const t=e.flat(),n=await(h?.({userIds:t}));return p(),n??t.map(()=>{})},{delay:50}));const g=t.resolveRoomsInfo,v=on(()=>!g,"Set the resolveRoomsInfo option in createClient to specify room info."),y=J(new Y(async e=>{const t=e.flat(),n=await(g?.({roomIds:t}));return v(),n??t.map(()=>{})},{delay:50}));const b=new Map;const w=[],C=new at("synchronized");function D(){C.set(w.some(e=>"synchronizing"===e.get())?"synchronizing":w.some(e=>"has-local-changes"===e.get())?"has-local-changes":"synchronized")}function E(){const e=new at("synchronized");w.push(e);const t=e.subscribe(()=>D());return{setSyncStatus:function(t){e.set(t)},destroy:function(){t();const n=w.findIndex(t=>t===e);if(n>-1){const[e]=w.splice(n,1);"synchronized"!==e.get()&&D()}}}}{const e=e=>{t.preventUnsavedChanges&&"synchronized"!==C.get()&&e.preventDefault()},n="undefined"!=typeof window?window:void 0;n?.addEventListener("beforeunload",e)}const x=Object.defineProperty({enterRoom:function(e,...s){const c=d.get(e);if(void 0!==c)return f(c);const h=s[0]??{},p=Jt({initialPresence:("function"==typeof h.initialPresence?h.initialPresence(e):h.initialPresence)??{},initialStorage:("function"==typeof h.initialStorage?h.initialStorage(e):h.initialStorage)??{}},{roomId:e,throttleDelay:n,lostConnectionTimeout:r,backgroundKeepAliveTimeout:i,polyfills:t.polyfills,delegates:t.mockedDelegates??{createSocket:tn(e,a,t.polyfills?.WebSocket),authenticate:en(e,u)},enableDebugLogging:t.enableDebugLogging,baseUrl:a,unstable_fallbackToHTTP:!!t.unstable_fallbackToHTTP,unstable_streamData:!!t.unstable_streamData,roomHttpClient:l,createSyncSource:E}),m={room:p,unsubs:new Set};if(d.set(e,m),h.autoConnect??!0){if("undefined"==typeof atob){if(void 0===t.polyfills?.atob)throw new Error("You need to polyfill atob to use the client in your environment. Please follow the instructions at https://liveblocks.io/docs/errors/liveblocks-client/atob-polyfill");o.atob=t.polyfills.atob}p.connect()}return f(m)},getRoom:function(e){const t=d.get(e)?.room;return t||null},logout:function(){u.reset(),s.set(()=>{});for(const{room:e}of d.values())Oe(e.getStatus())||e.reconnect()},getInboxNotifications:l.getInboxNotifications,getInboxNotificationsSince:l.getInboxNotificationsSince,getUnreadInboxNotificationsCount:l.getUnreadInboxNotificationsCount,markAllInboxNotificationsAsRead:l.markAllInboxNotificationsAsRead,markInboxNotificationAsRead:l.markInboxNotificationAsRead,deleteAllInboxNotifications:l.deleteAllInboxNotifications,deleteInboxNotification:l.deleteInboxNotification,resolvers:{invalidateUsers:function(e){m.invalidate(e)},invalidateRoomsInfo:function(e){y.invalidate(e)},invalidateMentionSuggestions:function(){b.clear()}},getSyncStatus:function(){const e=C.get();return"synchronizing"===e?e:"synchronized"},events:{syncStatus:C},[Je]:{currentUserId:s,mentionSuggestionsCache:b,resolveMentionSuggestions:t.resolveMentionSuggestions,usersStore:m,roomsInfoStore:y,getRoomIds:()=>Array.from(d.keys()),httpClient:l,as:()=>x,createSyncSource:E}},Je,{enumerable:!1});return x}function rn(e,t,n,r,o){if("number"!=typeof t||t<n||void 0!==r&&t>r)throw new Error(void 0!==r?`${e} should be between ${o??n} and ${r}.`:`${e} should be at least ${o??n}.`);return t}function on(e,...t){return()=>{}}var an={paragraph:function(e){return"type"in e&&"paragraph"===e.type},text:function(e){return!("type"in e)&&"text"in e&&"string"==typeof e.text},link:function(e){return"type"in e&&"link"===e.type},mention:function(e){return"type"in e&&"mention"===e.type}},sn={paragraph:"block",text:"inline",link:"inline",mention:"inline"};function un(e){const t=new Set;return function(e,t,n){if(!e||!e?.content)return;const r="string"==typeof t?t:void 0,o=r?sn[r]:"all",i=r?an[r]:()=>!0,a="function"==typeof t?t:n;for(const t of e.content)if("all"!==o&&"block"!==o||i(t)&&a?.(t),"all"===o||"inline"===o)for(const e of t.children)i(e)&&a?.(e)}(e,"mention",e=>t.add(e.id)),Array.from(t)}new RegExp(Object.keys({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}).map(e=>`\\${e}`).join("|"),"g");new RegExp(Object.keys({_:"\\_","*":"\\*","#":"\\#","`":"\\`","~":"\\~","!":"\\!","|":"\\|","(":"\\(",")":"\\)","{":"\\{","}":"\\}","[":"\\[","]":"\\]"}).map(e=>`\\${e}`).join("|"),"g");var cn=[1e3,2e3,4e3,8e3,1e4];function ln(e,t,n){const r=performance.now(),o="undefined"!=typeof document?document:void 0,i="undefined"!=typeof window?window:void 0,a=n?.maxStaleTimeMs??Number.POSITIVE_INFINITY,s={inForeground:"hidden"!==o?.visibilityState,lastSuccessfulPollAt:r,count:0,backoff:0};function u(){return s.count>0&&s.inForeground}const c=new xe({}).addState("@idle").addState("@enabled").addState("@polling");function l(){u()?c.send({type:"START"}):c.send({type:"STOP"})}function d(){performance.now()-s.lastSuccessfulPollAt>a&&c.send({type:"POLL"})}function f(e){s.inForeground=e,l(),d()}function h(){f("hidden"!==o?.visibilityState)}return c.addTransitions("@idle",{START:"@enabled"}),c.addTransitions("@enabled",{STOP:"@idle",POLL:"@polling"}),c.addTimedTransition("@enabled",()=>{const e=s.lastSuccessfulPollAt+t;return Math.max(0,e-performance.now())+s.backoff},"@polling"),c.onEnterAsync("@polling",async(t,n)=>{await e(n),n.aborted||(s.lastSuccessfulPollAt=performance.now())},()=>({target:u()?"@enabled":"@idle",effect:()=>{s.backoff=0}}),()=>({target:u()?"@enabled":"@idle",effect:()=>{s.backoff=cn.find(e=>e>s.backoff)??cn[cn.length-1]}}),3e4),o?.addEventListener("visibilitychange",h),i?.addEventListener("online",h),c.start(),{inc:function(){s.count++,l()},dec:function(){s.count--,s.count<0&&(s.count=0),l()},pollNowIfStale:d,setInForeground:f}}function dn(e,t){if(Object.is(e,t))return!0;const n=Array.isArray(e),r=Array.isArray(t);return n||r?!(!n||!r)&&function(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Object.is(e[n],t[n]))return!1;return!0}(e,t):function(e,t){if(!R(e)||!R(t))return!1;const n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(n=>Object.prototype.hasOwnProperty.call(t,n)&&Object.is(e[n],t[n]))}(e,t)}var fn=class e{#V;#ve;constructor(e,t){this.#ve=t,this.#V=e}static from(t,n){const r=new e([],n);for(const e of t)r.add(e);return r}static fromAlreadySorted(t,n){return new e(t,n)}clone(){return new e(this.#V.slice(),this.#ve)}add(e){const t=function(e,t,n){let r=0,o=e.length;for(;r<o;){const i=r+(o-r>>1);n(t,e[i])?o=i:r=i+1}return r}(this.#V,e,this.#ve);this.#V.splice(t,0,e)}remove(e){const t=this.#V.indexOf(e);return t>=0&&(this.#V.splice(t,1),!0)}get length(){return this.#V.length}*filter(e){for(const t of this.#V)e(t)&&(yield t)}[Symbol.iterator](){return this.#V[Symbol.iterator]()}};b(m,g,"esm");var hn="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==o?o:"undefined"!=typeof self?self:{};function pn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var mn,gn,vn={exports:{}},yn={};var bn=(gn||(gn=1,vn.exports=function(){if(mn)return yn;mn=1;var e=u.default,t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,o=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function a(e,n,a){var s,u={},c=null,l=null;for(s in void 0!==a&&(c=""+a),void 0!==n.key&&(c=""+n.key),void 0!==n.ref&&(l=n.ref),n)r.call(n,s)&&!i.hasOwnProperty(s)&&(u[s]=n[s]);if(e&&e.defaultProps)for(s in n=e.defaultProps)void 0===u[s]&&(u[s]=n[s]);return{$$typeof:t,type:e,key:c,ref:l,props:u,_owner:o.current}}return yn.Fragment=n,yn.jsx=a,yn.jsxs=a,yn}()),vn.exports);b("@liveblocks/client","2.15.1","esm");var wn=n.createContext(null);function Cn(){return n.useContext(wn)}function Dn(e,t,r,o,i){const a=n.useRef(null);let s;null===a.current?(s={hasValue:!1,value:null},a.current=s):s=a.current;const[u,c]=n.useMemo(()=>{let e,n,a=!1;const u=t=>{if(!a){a=!0,e=t;const r=o(t);if(void 0!==i&&s.hasValue){const e=s.value;if(i(e,r))return n=e,e}return n=r,r}const r=n;if(function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}(e,t))return r;const u=o(t);return void 0!==i&&i(r,u)?(e=t,r):(e=t,n=u,u)},c=void 0===r?null:r;return[()=>u(t()),null===c?void 0:()=>u(c())]},[t,r,o,i]),l=n.useSyncExternalStore(e,u,c);return n.useEffect(()=>{s.hasValue=!0,s.value=l},[l]),n.useDebugValue(l),l}var En={SMOOTH_DELAY:1e3,NOTIFICATIONS_POLL_INTERVAL:6e4,NOTIFICATIONS_MAX_STALE_TIME:5e3,ROOM_THREADS_POLL_INTERVAL:3e5,ROOM_THREADS_MAX_STALE_TIME:5e3,USER_THREADS_POLL_INTERVAL:6e4,USER_THREADS_MAX_STALE_TIME:5e3,HISTORY_VERSIONS_POLL_INTERVAL:6e4,HISTORY_VERSIONS_MAX_STALE_TIME:5e3,NOTIFICATION_SETTINGS_POLL_INTERVAL:6e4,NOTIFICATION_SETTINGS_MAX_STALE_TIME:5e3};function xn(e,t){if(!R(e)||!R(t))return dn(e,t);const n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(n=>Object.prototype.hasOwnProperty.call(t,n)&&dn(e[n],t[n]))}var An=e=>e;function In(e){return n.useReducer(An,e)[0]}function Sn(e){const t=In(e);if("function"==typeof t){const t=function(e){const t=n.useRef(e);return n.useEffect(()=>{t.current=e},[e]),t}(e);return n.useCallback((...e)=>t.current(...e),[t])}return t}var On=e=>{if("pending"===e.status)throw e;if("fulfilled"===e.status)return e.value;throw"rejected"===e.status?e.reason:(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e)};function Tn(e){const t=new Set;t.add("constructor");let n=e.constructor.prototype;do{for(const r of Reflect.ownKeys(n)){if(t.has(r))continue;const o=Reflect.getOwnPropertyDescriptor(n,r);"function"==typeof o?.value&&(t.add(r),e[r]=e[r].bind(e))}}while((n=Reflect.getPrototypeOf(n))&&n!==Object.prototype)}function Bn(e){return"string"==typeof e}function kn(e){return t=>function(e,t){return void 0===t.resolved||e.resolved===t.resolved}(t,e)&&function(e,t){const n=e.metadata;return void 0===t.metadata||Object.entries(t.metadata).every(([e,t])=>function(e,t){return n=t,R(n)&&Bn(n.startsWith)?Bn(e)&&e.startsWith(t.startsWith):e===t;var n}(n[e],t))}(t,e)}var _n=class e{#ye;#be;#we;signal;constructor(){this.#be=fn.from([],(e,t)=>{const n=e.createdAt,r=t.createdAt;return n<r||n===r&&e.id<t.id}),this.#we=fn.from([],(e,t)=>{const n=t.updatedAt,r=e.updatedAt;return n<r||n===r&&t.id<e.id}),this.#ye=new Map,this.signal=new lt(this)}clone(){const t=new e;return t.#ye=new Map(this.#ye),t.#be=this.#be.clone(),t.#we=this.#we.clone(),t}get(e){const t=this.getEvenIfDeleted(e);return t?.deletedAt?void 0:t}getEvenIfDeleted(e){return this.#ye.get(e)}upsert(e){this.signal.mutate(()=>{const t=(e=function(e){return e.deletedAt&&e.comments.length>0?{...e,comments:[]}:e.comments.some(e=>!e.deletedAt)?e:{...e,deletedAt:new Date,comments:[]}}(e)).id,n=this.#ye.get(t);if(n){if(n.deletedAt)return!1;this.#be.remove(n),this.#we.remove(n)}return e.deletedAt||(this.#be.add(e),this.#we.add(e)),this.#ye.set(t,e),!0})}upsertIfNewer(e){const t=this.get(e.id);(!t||e.updatedAt>=t.updatedAt)&&this.upsert(e)}applyDelta(e){nt(()=>{for(const t of e.newThreads)this.upsertIfNewer(t);for(const{id:t,deletedAt:n}of e.deletedThreads){this.getEvenIfDeleted(t)&&this.delete(t,n)}})}delete(e,t){const n=this.#ye.get(e);n&&!n.deletedAt&&this.upsert({...n,deletedAt:t,updatedAt:t})}findMany(e,t,n){const r="desc"===n?this.#we:this.#be,o=[];return void 0!==e&&o.push(t=>t.roomId===e),o.push(kn(t)),Array.from(r.filter(e=>o.every(t=>t(e))))}};function Fn(e,t){return`${e}-${X(t??{})}`}function Rn(e){return`USER_THREADS:${X(e??{})}`}function jn(e){return`${e}:NOTIFICATION_SETTINGS`}function Nn(e){return`${e}-VERSIONS`}function Pn(e){if("status"in e)return e;const t=e;return t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}),t}var Mn=Promise.resolve(),Ln=Object.freeze({isLoading:!0}),Hn=class{observable;#B;#Ce;#De;#Ee;constructor(e){this.#De=null,this.#Ce=e,this.#B=G(),this.#Ee=null,this.observable=this.#B.observable,Tn(this)}#xe(e){const t=this.#De;null!==t&&(this.#De={...t,...e},this.#B.notify())}async#Ae(){const e=this.#De;if(e?.cursor){this.#xe({isFetchingMore:!0});try{const t=await this.#Ce(e.cursor);this.#xe({cursor:t,fetchMoreError:void 0,isFetchingMore:!1})}catch(e){this.#xe({isFetchingMore:!1,fetchMoreError:e})}}}fetchMore(){const e=this.#De;return null===e?.cursor?Mn:(this.#Ee||(this.#Ee=this.#Ae().finally(()=>{this.#Ee=null})),this.#Ee)}get(){const e=this.#Ie;if(null===e||"pending"===e.status)return Ln;if("rejected"===e.status)return{isLoading:!1,error:e.reason};const t=this.#De;return{isLoading:!1,data:{fetchMore:this.fetchMore,isFetchingMore:t.isFetchingMore,fetchMoreError:t.fetchMoreError,hasFetchedAll:null===t.cursor}}}#Ie=null;waitUntilLoaded(){if(this.#Ie)return this.#Ie;const e=Pn($(()=>this.#Ce(void 0),5,[5e3,5e3,1e4,15e3]).then(e=>{this.#De={cursor:e,isFetchingMore:!1,fetchMoreError:void 0}}));return e.then(()=>this.#B.notify(),()=>{this.#B.notify(),setTimeout(()=>{this.#Ie=null,this.#B.notify()},5e3)}),this.#Ie=e,e}},zn=class{observable;#B;#Ce;constructor(e){this.#Ce=e,this.#B=G(),this.observable=this.#B.observable,Tn(this)}get(){const e=this.#Ie;return null===e||"pending"===e.status?Ln:"rejected"===e.status?{isLoading:!1,error:e.reason}:{isLoading:!1,data:void 0}}#Ie=null;waitUntilLoaded(){if(this.#Ie)return this.#Ie;const e=Pn($(()=>this.#Ce(),5,[5e3,5e3,1e4,15e3]));return e.then(()=>this.#B.notify(),()=>{this.#B.notify(),setTimeout(()=>{this.#Ie=null,this.#B.notify()},5e3)}),this.#Ie=e,e}};var Un=class{#Se;threads;notifications;roomNotificationSettings;historyVersions;permissionHints;optimisticUpdates;outputs;#Oe=null;#Te;#Be=new Map;#ke=new Map;#_e=null;#Fe=new Map;#Re=new Map;#je=new Map;#Ne=new Map;constructor(e){this.#Se=e[Je].as(),this.optimisticUpdates=function(e){const t=new at([]),n=e[Je].createSyncSource();return t.subscribe(()=>n.setSyncStatus(t.get().length>0?"synchronizing":"synchronized")),{signal:t.asReadonly(),add:function(e){const n=ee(),r={...e,id:n};return t.set(e=>[...e,r]),n},remove:function(e){t.set(t=>t.filter(t=>t.id!==e))},invalidate:()=>t.set(e=>[...e])}}(this.#Se),this.permissionHints=function(){const e=new at({});return{signal:e.asReadonly(),update:function(t){e.set(e=>{const n={...e};for(const[e,r]of Object.entries(t)){const t=n[e]??new Set;for(const e of r)t.add(e);n[e]=t}return n})},invalidate:()=>e.set(e=>({...e}))}}();this.#Te=new Hn(async e=>{const t=await this.#Se.getInboxNotifications({cursor:e});this.updateThreadifications(t.threads,t.inboxNotifications),null===this.#Oe&&(this.#Oe=t.requestedAt);return t.nextCursor}),this.#Te.observable.subscribe(()=>this.invalidateEntireStore()),this.threads=new _n,this.notifications=function(){const e=new lt(new Map);return{signal:e.asReadonly(),markAllRead:function(t){e.mutate(e=>{for(const n of e.values())n.readAt=t})},markRead:function(t,n){e.mutate(e=>{const r=e.get(t);return!!r&&(e.set(t,{...r,readAt:n}),!0)})},delete:function(t){e.mutate(e=>e.delete(t))},applyDelta:function(t,n){e.mutate(e=>{let r=!1;for(const n of t){const t=e.get(n.id);t&&1===Wn(t,n)||(e.set(n.id,n),r=!0)}for(const t of n)e.delete(t.id),r=!0;return r})},clear:function(){e.mutate(e=>e.clear())},updateAssociatedNotification:function(t){e.mutate(e=>{const n=function(e,t){for(const n of e)if(t(n))return n}(e.values(),e=>"thread"===e.kind&&e.threadId===t.threadId);return!!n&&(e.set(n.id,{...n,notifiedAt:t.createdAt,readAt:t.createdAt}),!0)})},force_set:t=>e.mutate(t),invalidate:()=>e.mutate()}}(),this.roomNotificationSettings=function(){const e=new lt(new Map);return{signal:e.asReadonly(),update:function(t,n){e.mutate(e=>{e.set(t,n)})},invalidate:()=>e.mutate()}}(),this.historyVersions=function(){const e=new lt(new Map);return{signal:e.asReadonly(),update:function(t,n){e.mutate(e=>{const r=e.get(t)??(e.set(t,new Map),e.get(t));for(const e of n)r.set(e.id,e)})},force_set:t=>e.mutate(t),invalidate:()=>e.mutate()}}();const t=ct.from(this.threads.signal,this.notifications.signal,this.optimisticUpdates.signal,(e,t,n)=>function(e,t,n){const r=e.clone();let o=Object.fromEntries(t);for(const e of n)switch(e.type){case"create-thread":r.upsert(e.thread);break;case"edit-thread-metadata":{const t=r.get(e.threadId);if(void 0===t)break;if(t.updatedAt>e.updatedAt)break;r.upsert({...t,updatedAt:e.updatedAt,metadata:{...t.metadata,...e.metadata}});break}case"mark-thread-as-resolved":{const t=r.get(e.threadId);if(void 0===t)break;r.upsert({...t,resolved:!0});break}case"mark-thread-as-unresolved":{const t=r.get(e.threadId);if(void 0===t)break;r.upsert({...t,resolved:!1});break}case"create-comment":{const t=r.get(e.comment.threadId);if(void 0===t)break;r.upsert(Vn(t,e.comment));const n=Object.values(o).find(e=>"thread"===e.kind&&e.threadId===t.id);if(void 0===n)break;o[n.id]={...n,notifiedAt:e.comment.createdAt,readAt:e.comment.createdAt};break}case"edit-comment":{const t=r.get(e.comment.threadId);if(void 0===t)break;r.upsert(Vn(t,e.comment));break}case"delete-comment":{const t=r.get(e.threadId);if(void 0===t)break;r.upsert($n(t,e.commentId,e.deletedAt));break}case"delete-thread":{const t=r.get(e.threadId);if(void 0===t)break;r.upsert({...t,deletedAt:e.deletedAt,updatedAt:e.deletedAt,comments:[]});break}case"add-reaction":{const t=r.get(e.threadId);if(void 0===t)break;r.upsert(qn(t,e.commentId,e.reaction));break}case"remove-reaction":{const t=r.get(e.threadId);if(void 0===t)break;r.upsert(Kn(t,e.commentId,e.emoji,e.userId,e.removedAt));break}case"mark-inbox-notification-as-read":{const t=o[e.inboxNotificationId];if(void 0===t)break;o[e.inboxNotificationId]={...t,readAt:e.readAt};break}case"mark-all-inbox-notifications-as-read":for(const t in o){const n=o[t];if(void 0===n)break;o[t]={...n,readAt:e.readAt}}break;case"delete-inbox-notification":delete o[e.inboxNotificationId];break;case"delete-all-inbox-notifications":o={}}return{sortedNotifications:Object.values(o).filter(e=>"thread"!==e.kind||void 0!==r.get(e.threadId)).sort((e,t)=>t.notifiedAt.getTime()-e.notifiedAt.getTime()),notificationsById:o,threadsDB:r}}(e,t,n)),n=ct.from(t,e=>({threadsDB:e.threadsDB}),dn),r=ct.from(t,e=>({sortedNotifications:e.sortedNotifications,notificationsById:e.notificationsById}),dn),o=ct.from(this.roomNotificationSettings.signal,this.optimisticUpdates.signal,(e,t)=>function(e,t){const n=Object.fromEntries(e);for(const e of t)switch(e.type){case"update-notification-settings":{const t=n[e.roomId];if(void 0===t)break;n[e.roomId]={...t,...e.settings}}}return n}(e,t)),i=ct.from(this.historyVersions.signal,e=>Object.fromEntries([...e].map(([e,t])=>[e,Object.fromEntries(t)])));this.outputs={threadifications:t,threads:n,notifications:r,settingsByRoomId:o,versionsByRoomId:i},Tn(this)}get1_both(){return this.outputs.threadifications.get()}subscribe1_both(e){return this.outputs.threadifications.subscribe(e)}get1_threads(){return this.outputs.threads.get()}subscribe1_threads(e){return this.outputs.threads.subscribe(e)}get1_notifications(){return this.outputs.notifications.get()}subscribe1_notifications(e){return this.outputs.notifications.subscribe(e)}get2(){return this.outputs.settingsByRoomId.get()}subscribe2(e){return this.outputs.settingsByRoomId.subscribe(e)}get3(){return this.outputs.versionsByRoomId.get()}subscribe3(e){return this.outputs.versionsByRoomId.subscribe(e)}getRoomThreadsLoadingState(e,t){const n=Fn(e,t),r=this.#ke.get(n);if(void 0===r)return Ln;const o=r.get();if(o.isLoading||o.error)return o;const i=this.get1_threads().threadsDB.findMany(e,t??{},"asc"),a=o.data;return{isLoading:!1,threads:i,hasFetchedAll:a.hasFetchedAll,isFetchingMore:a.isFetchingMore,fetchMoreError:a.fetchMoreError,fetchMore:a.fetchMore}}getUserThreadsLoadingState(e){const t=Rn(e),n=this.#Fe.get(t);if(void 0===n)return Ln;const r=n.get();if(r.isLoading||r.error)return r;const o=this.get1_threads().threadsDB.findMany(void 0,e??{},"desc"),i=r.data;return{isLoading:!1,threads:o,hasFetchedAll:i.hasFetchedAll,isFetchingMore:i.isFetchingMore,fetchMoreError:i.fetchMoreError,fetchMore:i.fetchMore}}getInboxNotificationsLoadingState(){const e=this.#Te.get();if(e.isLoading||e.error)return e;const t=e.data;return{isLoading:!1,inboxNotifications:this.get1_notifications().sortedNotifications,hasFetchedAll:t.hasFetchedAll,isFetchingMore:t.isFetchingMore,fetchMoreError:t.fetchMoreError,fetchMore:t.fetchMore}}getNotificationSettingsLoadingState(e){const t=jn(e),n=this.#Ne.get(t);if(void 0===n)return Ln;const r=n.get();return r.isLoading||r.error?r:{isLoading:!1,settings:Ce(this.get2()[e])}}getRoomVersionsLoadingState(e){const t=Nn(e),n=this.#Re.get(t);if(void 0===n)return Ln;const r=n.get();return r.isLoading||r.error?r:{isLoading:!1,versions:Object.values(this.get3()[e]??{})}}force_set_versions(e){nt(()=>{this.historyVersions.force_set(e),this.invalidateEntireStore()})}force_set_notifications(e){nt(()=>{this.notifications.force_set(e),this.invalidateEntireStore()})}markInboxNotificationRead(e,t,n){nt(()=>{this.optimisticUpdates.remove(n),this.notifications.markRead(e,t)})}markAllInboxNotificationsRead(e,t){nt(()=>{this.optimisticUpdates.remove(e),this.notifications.markAllRead(t)})}deleteInboxNotification(e,t){nt(()=>{this.optimisticUpdates.remove(t),this.notifications.delete(e)})}deleteAllInboxNotifications(e){nt(()=>{this.optimisticUpdates.remove(e),this.notifications.clear()})}createThread(e,t){nt(()=>{this.optimisticUpdates.remove(e),this.threads.upsert(t)})}#Pe(e,t,n,r){nt(()=>{null!==t&&this.optimisticUpdates.remove(t);const o=this.threads,i=o.get(e);i&&(r&&i.updatedAt>r||o.upsert(n(i)))})}patchThread(e,t,n,r){return this.#Pe(e,t,e=>({...e,...L(n)}),r)}addReaction(e,t,n,r,o){this.#Pe(e,t,e=>qn(e,n,r),o)}removeReaction(e,t,n,r,o,i){this.#Pe(e,t,e=>Kn(e,n,r,o,i),i)}deleteThread(e,t){return this.#Pe(e,t,e=>({...e,updatedAt:new Date,deletedAt:new Date}))}createComment(e,t){nt(()=>{this.optimisticUpdates.remove(t);const n=this.threads.get(e.threadId);n&&(this.threads.upsert(Vn(n,e)),this.notifications.updateAssociatedNotification(e))})}editComment(e,t,n){return this.#Pe(e,t,e=>Vn(e,n))}deleteComment(e,t,n,r){return this.#Pe(e,t,e=>$n(e,n,r),r)}updateThreadifications(e,t,n=[],r=[]){nt(()=>{this.threads.applyDelta({newThreads:e,deletedThreads:n}),this.notifications.applyDelta(t,r)})}updateRoomNotificationSettings(e,t,n){nt(()=>{this.optimisticUpdates.remove(t),this.roomNotificationSettings.update(e,n)})}async fetchNotificationsDeltaUpdate(e){const t=this.#Oe;if(null===t)return;const n=await this.#Se.getInboxNotificationsSince({since:t,signal:e});t<n.requestedAt&&(this.#Oe=n.requestedAt),this.updateThreadifications(n.threads.updated,n.inboxNotifications.updated,n.threads.deleted,n.inboxNotifications.deleted)}waitUntilNotificationsLoaded(){return this.#Te.waitUntilLoaded()}waitUntilRoomThreadsLoaded(e,t){const n=async n=>{const r=await this.#Se[Je].httpClient.getThreads({roomId:e,cursor:n,query:t});this.updateThreadifications(r.threads,r.inboxNotifications),this.permissionHints.update(r.permissionHints);const o=this.#Be.get(e);return(void 0===o||o>r.requestedAt)&&this.#Be.set(e,r.requestedAt),r.nextCursor},r=Fn(e,t);let o=this.#ke.get(r);return void 0===o&&(o=new Hn(n)),o.observable.subscribe(()=>this.invalidateEntireStore()),this.#ke.set(r,o),o.waitUntilLoaded()}async fetchRoomThreadsDeltaUpdate(e,t){const n=this.#Be.get(e);if(void 0===n)return;const r=await this.#Se[Je].httpClient.getThreadsSince({roomId:e,since:n,signal:t});this.updateThreadifications(r.threads.updated,r.inboxNotifications.updated,r.threads.deleted,r.inboxNotifications.deleted),this.permissionHints.update(r.permissionHints),n<r.requestedAt&&this.#Be.set(e,r.requestedAt)}waitUntilUserThreadsLoaded(e){const t=Rn(e),n=async t=>{const n=await this.#Se[Je].httpClient.getUserThreads_experimental({cursor:t,query:e});return this.updateThreadifications(n.threads,n.inboxNotifications),this.permissionHints.update(n.permissionHints),null===this.#_e&&(this.#_e=n.requestedAt),n.nextCursor};let r=this.#Fe.get(t);return void 0===r&&(r=new Hn(n)),r.observable.subscribe(()=>this.invalidateEntireStore()),this.#Fe.set(t,r),r.waitUntilLoaded()}invalidateEntireStore(){nt(()=>{this.historyVersions.invalidate(),this.notifications.invalidate(),this.optimisticUpdates.invalidate(),this.permissionHints.invalidate(),this.roomNotificationSettings.invalidate()})}async fetchUserThreadsDeltaUpdate(e){const t=this.#_e;if(null===t)return;const n=await this.#Se[Je].httpClient.getUserThreadsSince_experimental({since:t,signal:e});t<n.requestedAt&&(this.#Oe=n.requestedAt),this.updateThreadifications(n.threads.updated,n.inboxNotifications.updated,n.threads.deleted,n.inboxNotifications.deleted),this.permissionHints.update(n.permissionHints)}waitUntilRoomVersionsLoaded(e){const t=Nn(e);let n=this.#Re.get(t);if(void 0===n){n=new zn(async()=>{const t=this.#Se.getRoom(e);if(null===t)throw new W(`Room '${e}' is not available on client`,479);const n=await t[Je].listTextVersions();this.historyVersions.update(e,n.versions);const r=this.#je.get(e);(void 0===r||r>n.requestedAt)&&this.#je.set(e,n.requestedAt)})}return n.observable.subscribe(()=>this.invalidateEntireStore()),this.#Re.set(t,n),n.waitUntilLoaded()}async fetchRoomVersionsDeltaUpdate(e,t){const n=this.#je.get(e);if(void 0===n)return;const r=Ce(this.#Se.getRoom(e),`Room with id ${e} is not available on client`),o=await r[Je].listTextVersionsSince({since:n,signal:t});this.historyVersions.update(e,o.versions),n<o.requestedAt&&this.#je.set(e,o.requestedAt)}waitUntilRoomNotificationSettingsLoaded(e){const t=jn(e);let n=this.#Ne.get(t);if(void 0===n){n=new zn(async()=>{const t=this.#Se.getRoom(e);if(null===t)throw new W(`Room '${e}' is not available on client`,479);const n=await t.getNotificationSettings();this.roomNotificationSettings.update(e,n)})}return n.observable.subscribe(()=>this.invalidateEntireStore()),this.#Ne.set(t,n),n.waitUntilLoaded()}async refreshRoomNotificationSettings(e,t){const n=Ce(this.#Se.getRoom(e),`Room with id ${e} is not available on client`),r=await n.getNotificationSettings({signal:t});this.roomNotificationSettings.update(e,r)}};function Wn(e,t){return e.notifiedAt>t.notifiedAt?1:e.notifiedAt<t.notifiedAt?-1:e.readAt&&t.readAt?e.readAt>t.readAt?1:e.readAt<t.readAt?-1:0:e.readAt||t.readAt?e.readAt?1:-1:0}function Vn(e,t){if(void 0!==e.deletedAt)return e;if(t.threadId!==e.id)return A.warn(`Comment ${t.id} does not belong to thread ${e.id}`),e;const n=e.comments.find(e=>e.id===t.id);if(void 0===n){const n=new Date(Math.max(e.updatedAt.getTime(),t.createdAt.getTime()));return{...e,updatedAt:n,comments:[...e.comments,t]}}if(void 0!==n.deletedAt)return e;if(void 0===n.editedAt||void 0===t.editedAt||n.editedAt<=t.editedAt){const n=e.comments.map(e=>e.id===t.id?t:e);return{...e,updatedAt:new Date(Math.max(e.updatedAt.getTime(),t.editedAt?.getTime()||t.createdAt.getTime())),comments:n}}return e}function $n(e,t,n){if(void 0!==e.deletedAt)return e;const r=e.comments.find(e=>e.id===t);if(void 0===r)return e;if(void 0!==r.deletedAt)return e;const o=e.comments.map(e=>e.id===t?{...e,deletedAt:n,body:void 0,attachments:[]}:e);return o.every(e=>void 0!==e.deletedAt)?{...e,deletedAt:n,updatedAt:n}:{...e,updatedAt:n,comments:o}}function qn(e,t,n){if(void 0!==e.deletedAt)return e;const r=e.comments.find(e=>e.id===t);if(void 0===r)return e;if(void 0!==r.deletedAt)return e;const o=e.comments.map(e=>e.id===t?{...e,reactions:Gn(e.reactions,n)}:e);return{...e,updatedAt:new Date(Math.max(n.createdAt.getTime(),e.updatedAt.getTime())),comments:o}}function Kn(e,t,n,r,o){if(void 0!==e.deletedAt)return e;const i=e.comments.find(e=>e.id===t);if(void 0===i)return e;if(void 0!==i.deletedAt)return e;const a=e.comments.map(e=>e.id===t?{...e,reactions:e.reactions.map(e=>e.emoji===n?{...e,users:e.users.filter(e=>e.id!==r)}:e).filter(e=>e.users.length>0)}:e);return{...e,updatedAt:new Date(Math.max(o.getTime(),e.updatedAt.getTime())),comments:a}}function Gn(e,t){const n=e.find(e=>e.emoji===t.emoji);return void 0===n?[...e,{emoji:t.emoji,createdAt:t.createdAt,users:[{id:t.userId}]}]:!1===n.users.some(e=>e.id===t.userId)?e.map(e=>e.emoji===t.emoji?{...e,users:[...e.users,{id:t.userId}]}:e):e}var Xn=n.createContext(null);function Zn(e){return new Error(`resolveUsers didn't return anything for user '${e}'`)}function Yn(e){return new Error(`resolveRoomsInfo didn't return anything for room '${e}'`)}function Jn(e){return e}var Qn=new WeakMap,er=new WeakMap;function tr(e){let t=0;for(const n of e)(null===n.readAt||n.readAt<n.notifiedAt)&&t++;return t}function nr(e){return e.inboxNotifications?{isLoading:!1,count:tr(e.inboxNotifications)}:e}function rr(e){let t=Qn.get(e);return t||(t=new Un(e),Qn.set(e,t)),t}function or(e){let t=er.get(e);return t||(t=function(e){const t=rr(e),n=ln(async e=>{try{return await t.fetchNotificationsDeltaUpdate(e)}catch(e){throw console.warn(`Polling new inbox notifications failed: ${String(e)}`),e}},En.NOTIFICATIONS_POLL_INTERVAL,{maxStaleTimeMs:En.NOTIFICATIONS_MAX_STALE_TIME}),r=ln(async e=>{try{return await t.fetchUserThreadsDeltaUpdate(e)}catch(e){throw console.warn(`Polling new user threads failed: ${String(e)}`),e}},En.USER_THREADS_POLL_INTERVAL,{maxStaleTimeMs:En.USER_THREADS_MAX_STALE_TIME});return{store:t,notificationsPoller:n,userThreadsPoller:r}}(e),er.set(e,t)),t}function ir(e,t,r){const{store:o,notificationsPoller:i}=or(e);return n.useEffect(()=>{o.waitUntilNotificationsLoaded()}),n.useEffect(()=>(i.inc(),i.pollNowIfStale(),()=>{i.dec()}),[i]),Dn(o.subscribe1_notifications,o.getInboxNotificationsLoadingState,o.getInboxNotificationsLoadingState,t,r)}function ar(e){const t=or(e).store;On(t.waitUntilNotificationsLoaded());const n=function(e){return ir(e,nr,dn)}(e);return n.isLoading,n.error,n}function sr(e,t){const r=e[Je].usersStore,o=n.useCallback(()=>r.getState(t),[r,t]),i=n.useCallback(e=>function(e,t){return void 0===e||e?.isLoading?e??{isLoading:!0}:e.error?e:e.data?{isLoading:!1,user:e.data}:{isLoading:!1,error:Zn(t)}}(e,t),[t]),a=Dn(r.subscribe,o,o,i,dn);return n.useEffect(()=>{r.get(t)},[r,t,a]),a}function ur(e,t){const r=e[Je].roomsInfoStore,o=n.useCallback(()=>r.getState(t),[r,t]),i=n.useCallback(e=>function(e,t){return void 0===e||e?.isLoading?e??{isLoading:!0}:e.error?e:e.data?{isLoading:!1,info:e.data}:{isLoading:!1,error:Yn(t)}}(e,t),[t]),a=Dn(r.subscribe,o,o,i,dn);return n.useEffect(()=>{r.get(t)},[r,t,a]),a}function cr(){return n.useContext(Xn)}function lr(){return cr()??F("LiveblocksProvider is missing from the React tree.")}function dr(e){return function(e){const t=cr();if(!e?.allowNesting&&null!==t)throw new Error("You cannot nest multiple LiveblocksProvider instances in the same React tree.")}(e),bn.jsx(Xn.Provider,{value:e.client,children:e.children})}function fr(e){const{children:t,...r}=e,o={publicApiKey:In(r.publicApiKey),throttle:In(r.throttle),lostConnectionTimeout:In(r.lostConnectionTimeout),backgroundKeepAliveTimeout:In(r.backgroundKeepAliveTimeout),polyfills:In(r.polyfills),unstable_fallbackToHTTP:In(r.unstable_fallbackToHTTP),unstable_streamData:In(r.unstable_streamData),preventUnsavedChanges:In(r.preventUnsavedChanges),authEndpoint:Sn(r.authEndpoint),resolveMentionSuggestions:Sn(r.resolveMentionSuggestions),resolveUsers:Sn(r.resolveUsers),resolveRoomsInfo:Sn(r.resolveRoomsInfo),baseUrl:In(r.baseUrl),enableDebugLogging:In(r.enableDebugLogging)},i=n.useMemo(()=>nn(o),[]);return bn.jsx(dr,{client:i,children:t})}function hr(){return function(e){const t=or(e).store;On(t.waitUntilNotificationsLoaded());const n=ir(e,Jn,dn);return n.error,n.isLoading,n}(lr())}function pr(){return e=lr(),n.useCallback(()=>{const{store:t}=or(e),n=new Date,r=t.optimisticUpdates.add({type:"mark-all-inbox-notifications-as-read",readAt:n});e.markAllInboxNotificationsAsRead().then(()=>{t.markAllInboxNotificationsRead(r,n)},()=>{t.optimisticUpdates.remove(r)})},[e]);var e}function mr(){return e=lr(),n.useCallback(t=>{const{store:n}=or(e),r=new Date,o=n.optimisticUpdates.add({type:"mark-inbox-notification-as-read",inboxNotificationId:t,readAt:r});e.markInboxNotificationAsRead(t).then(()=>{n.markInboxNotificationRead(t,r,o)},()=>{n.optimisticUpdates.remove(o)})},[e]);var e}function gr(){return e=lr(),n.useCallback(()=>{const{store:t}=or(e),n=new Date,r=t.optimisticUpdates.add({type:"delete-all-inbox-notifications",deletedAt:n});e.deleteAllInboxNotifications().then(()=>{t.deleteAllInboxNotifications(r)},()=>{t.optimisticUpdates.remove(r)})},[e]);var e}function vr(){return e=lr(),n.useCallback(t=>{const{store:n}=or(e),r=new Date,o=n.optimisticUpdates.add({type:"delete-inbox-notification",inboxNotificationId:t,deletedAt:r});e.deleteInboxNotification(t).then(()=>{n.deleteInboxNotification(t,o)},()=>{n.optimisticUpdates.remove(o)})},[e]);var e}function yr(e){return ur(lr(),e)}var br=function(e){return function(e,t){const{store:r}=or(e),o=r.get1_both,i=n.useCallback(e=>{const n=e.notificationsById[t]??F(`Inbox notification with ID "${t}" not found`);return"thread"!==n.kind&&F(`Inbox notification with ID "${t}" is not of kind "thread"`),e.threadsDB.get(n.threadId)??F(`Thread with ID "${n.threadId}" not found, this inbox notification might not be of kind "thread"`)},[t]);return Dn(r.subscribe1_both,o,o,i)}(lr(),e)},wr=function(e){return sr(lr(),e)},Cr=class extends Error{constructor(e,t){super("Create thread failed."),this.cause=e,this.context=t,this.name="CreateThreadError"}},Dr=class extends Error{constructor(e,t){super("Mark thread as resolved failed."),this.cause=e,this.context=t,this.name="MarkThreadAsResolvedError"}},Er=class extends Error{constructor(e,t){super("Mark thread as unresolved failed."),this.cause=e,this.context=t,this.name="MarkThreadAsUnresolvedError"}},xr=class extends Error{constructor(e,t){super("Create comment failed."),this.cause=e,this.context=t,this.name="CreateCommentError"}},Ar=class extends Error{constructor(e,t){super("Edit comment failed."),this.cause=e,this.context=t,this.name="EditCommentError"}},Ir=class extends Error{constructor(e,t){super("Delete comment failed."),this.cause=e,this.context=t,this.name="DeleteCommentError"}},Sr=class extends Error{constructor(e,t){super("Add reaction failed."),this.cause=e,this.context=t,this.name="AddReactionError"}},Or=class extends Error{constructor(e,t){super("Remove reaction failed."),this.cause=e,this.context=t,this.name="RemoveReactionError"}},Tr=class extends Error{constructor(e,t){super("Mark inbox notification as read failed."),this.cause=e,this.context=t,this.name="MarkInboxNotificationAsReadError"}},Br=e=>e;function kr(e,t,n){return Dn(e.subscribe,e.get,e.get,t??Br,n)}function _r(e,t){n.useEffect(()=>{!function(e,t){if(!1===e)return;if(!t.threads)return;if("undefined"==typeof window)return;const n=window.location.hash.slice(1);if(!n.startsWith("cm_"))return;const r=document.getElementById(n);if(null===r)return;t.threads.flatMap(e=>e.comments).some(e=>e.id===n)&&r.scrollIntoView()}(e,t)},[t.isLoading])}var Fr=e=>e;function Rr(e){const t=e[Je].currentUserId.get();return void 0===t?"anonymous":t}function jr(e){const t=`Request failed with status ${e.status}: ${e.message}`;if("FORBIDDEN"===e.details?.error){const n=[t,e.details.suggestion,e.details.docs].filter(Boolean).join("\n");A.error(n)}return new Error(t)}Object.freeze([]);var Nr=new WeakMap;function Pr(e){let t=Nr.get(e);return t||(t=function(e){const t=rr(e),n=G();function r(e,r,o){if(t.optimisticUpdates.remove(r),e instanceof W){const t=jr(e);return void n.notify(o(t))}if(!(e instanceof W))throw e;jr(e)}const o=new Map,i=new Map,a=new Map;function s(e){let n=o.get(e);return n||(n=ln(async n=>{try{return await t.fetchRoomThreadsDeltaUpdate(e,n)}catch(t){throw A.warn(`Polling new threads for '${e}' failed: ${String(t)}`),t}},En.ROOM_THREADS_POLL_INTERVAL,{maxStaleTimeMs:En.ROOM_THREADS_MAX_STALE_TIME}),o.set(e,n)),n}function u(e){let n=i.get(e);return n||(n=ln(async n=>{try{return await t.fetchRoomVersionsDeltaUpdate(e,n)}catch(t){throw A.warn(`Polling new history versions for '${e}' failed: ${String(t)}`),t}},En.HISTORY_VERSIONS_POLL_INTERVAL,{maxStaleTimeMs:En.HISTORY_VERSIONS_MAX_STALE_TIME}),i.set(e,n)),n}function c(e){let n=a.get(e);return n||(n=ln(async n=>{try{return await t.refreshRoomNotificationSettings(e,n)}catch(t){throw A.warn(`Polling notification settings for '${e}' failed: ${String(t)}`),t}},En.NOTIFICATION_SETTINGS_POLL_INTERVAL,{maxStaleTimeMs:En.NOTIFICATION_SETTINGS_MAX_STALE_TIME}),a.set(e,n)),n}return{store:t,commentsErrorEventSource:n.observable,onMutationFailure:r,getOrCreateThreadsPollerForRoomId:s,getOrCreateVersionsPollerForRoomId:u,getOrCreateNotificationsSettingsPollerForRoomId:c}}(e),Nr.set(e,t)),t}function Mr(e){const t=lr(),{id:r,stableEnterRoom:o}=e,i=In({initialPresence:e.initialPresence,initialStorage:e.initialStorage,autoConnect:e.autoConnect??"undefined"!=typeof window}),[{room:a},s]=n.useState(()=>o(r,{...i,autoConnect:!1}));return n.useEffect(()=>{const{store:e}=Pr(t);return a.events.comments.subscribe(t=>{!async function(t){if(t.type===Ae.THREAD_DELETED)return void e.deleteThread(t.threadId,null);const n=await a.getThread(t.threadId);if(!n.thread)return void e.deleteThread(t.threadId,null);const{thread:r,inboxNotification:o}=n,i=e.get1_threads().threadsDB.getEvenIfDeleted(t.threadId);switch(t.type){case Ae.COMMENT_EDITED:case Ae.THREAD_METADATA_UPDATED:case Ae.THREAD_UPDATED:case Ae.COMMENT_REACTION_ADDED:case Ae.COMMENT_REACTION_REMOVED:case Ae.COMMENT_DELETED:if(!i)break;e.updateThreadifications([r],o?[o]:[]);break;case Ae.COMMENT_CREATED:e.updateThreadifications([r],o?[o]:[])}}(t)})},[t,a]),n.useEffect(()=>{const e=o(r,i);s(e);const{room:t,leave:n}=e;return i.autoConnect&&t.connect(),()=>{n()}},[r,i,o]),bn.jsx(wn.Provider,{value:a,children:e.children})}function Lr(){const e=Cn();if(null===e)throw new Error("RoomProvider is missing from the React tree.");return e}function Hr(){return lr()[Je].resolveMentionSuggestions}function zr(e){const t=lr();return n.useCallback(({threadId:n,commentId:r,body:o,attachments:i})=>{const a=new Date,{store:s,onMutationFailure:u}=Pr(t),c=s.get1_threads().threadsDB.getEvenIfDeleted(n);if(void 0===c)return void A.warn(`Internal unexpected behavior. Cannot edit comment in thread "${n}" because the thread does not exist in the cache.`);const l=c.comments.find(e=>e.id===r);if(void 0===l||void 0!==l.deletedAt)return void A.warn(`Internal unexpected behavior. Cannot edit comment "${r}" in thread "${n}" because the comment does not exist in the cache.`);const d=s.optimisticUpdates.add({type:"edit-comment",comment:{...l,editedAt:a,body:o,attachments:i??[]}}),f=i?.map(e=>e.id);t[Je].httpClient.editComment({roomId:e,threadId:n,commentId:r,body:o,attachmentIds:f}).then(e=>{s.editComment(n,d,e)},t=>u(t,d,t=>new Ar(t,{roomId:e,threadId:n,commentId:r,body:o})))},[t,e])}function Ur(e){const t=lr();return n.useCallback(({threadId:n,commentId:r,emoji:o})=>{const i=new Date,a=Rr(t),{store:s,onMutationFailure:u}=Pr(t),c=s.optimisticUpdates.add({type:"add-reaction",threadId:n,commentId:r,reaction:{emoji:o,userId:a,createdAt:i}});t[Je].httpClient.addReaction({roomId:e,threadId:n,commentId:r,emoji:o}).then(e=>{s.addReaction(n,c,r,e,i)},t=>u(t,c,t=>new Sr(t,{roomId:e,threadId:n,commentId:r,emoji:o})))},[t,e])}function Wr(e){const t=lr();return n.useCallback(({threadId:n,commentId:r,emoji:o})=>{const i=Rr(t),a=new Date,{store:s,onMutationFailure:u}=Pr(t),c=s.optimisticUpdates.add({type:"remove-reaction",threadId:n,commentId:r,emoji:o,userId:i,removedAt:a});t[Je].httpClient.removeReaction({roomId:e,threadId:n,commentId:r,emoji:o}).then(()=>{s.removeReaction(n,c,r,o,i,a)},t=>u(t,c,t=>new Or(t,{roomId:e,threadId:n,commentId:r,emoji:o})))},[t,e])}function Vr(e){return void 0===e||e?.isLoading?e??{isLoading:!0}:e.error?e:(e.data,{isLoading:!1,url:e.data})}function $r(e,t){const r=lr()[Je].httpClient.getOrCreateAttachmentUrlsStore(t),o=n.useCallback(()=>r.getState(e),[r,e]);return n.useEffect(()=>{r.get(e)},[r,e]),Dn(r.subscribe,o,o,Vr,dn)}var qr=function(e){const t=lr(),[r]=n.useState(()=>new Map),o=n.useCallback((e,n)=>{const o=r.get(e);if(o)return o;const i=t.enterRoom(e,n),a=i.leave;return i.leave=()=>{a(),r.delete(e)},r.set(e,i),i},[t,r]);return bn.jsx(Mr,{...e,stableEnterRoom:o})},Kr=function(e={query:{metadata:{}}}){const t=lr(),r=Lr(),{store:o}=Pr(t);On(o.waitUntilRoomThreadsLoaded(r.id,e.query));const i=function(e={query:{metadata:{}}}){const{scrollOnLoad:t=!0}=e,r=lr(),o=Lr(),{store:i,getOrCreateThreadsPollerForRoomId:a}=Pr(r),s=a(o.id);n.useEffect(()=>{i.waitUntilRoomThreadsLoaded(o.id,e.query)}),n.useEffect(()=>(s.inc(),s.pollNowIfStale(),()=>s.dec()),[s]);const u=n.useCallback(()=>i.getRoomThreadsLoadingState(o.id,e.query),[i,o.id,e.query]),c=Dn(i.subscribe1_threads,u,u,Fr,xn);return _r(t,c),c}(e);return i.error,i.isLoading,i};function Gr(e,t){const[r,o]=n.useState(),i=n.useRef(),a=Hr(),s=lr()[Je].mentionSuggestionsCache;return n.useEffect(()=>{if(void 0===t||!a)return;const n={text:t,roomId:e},r=X(n);let u,c=!1;const l=async()=>{try{i.current=performance.now();const e=await a(n);c||(o(e),s.set(r,e))}catch(e){console.error(e?.message)}};return s.has(r)?o(s.get(r)):!i.current||Math.abs(performance.now()-i.current)>500?l():u=window.setTimeout(()=>{l()},500),()=>{c=!0,window.clearTimeout(u)}},[t,e,a,s]),r}function Xr(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}var Zr=globalThis?.document?c.useLayoutEffect:()=>{},Yr=c[" useInsertionEffect ".trim().toString()]||Zr;function Jr({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,i,a]=function({defaultProp:e,onChange:t}){const[n,r]=c.useState(e),o=c.useRef(n),i=c.useRef(t);return Yr(()=>{i.current=t},[t]),c.useEffect(()=>{o.current!==n&&(i.current?.(n),o.current=n)},[n,o]),[n,r,i]}({defaultProp:t,onChange:n}),s=void 0!==e,u=s?e:o;{const t=c.useRef(void 0!==e);c.useEffect(()=>{const e=t.current;if(e!==s){const t=e?"controlled":"uncontrolled",n=s?"controlled":"uncontrolled";console.warn(`${r} is changing from ${t} to ${n}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=s},[s,r])}const l=c.useCallback(t=>{if(s){const n=function(e){return"function"==typeof e}(t)?t(e):t;n!==e&&a.current?.(n)}else i(t)},[s,e,i,a]);return[u,l]}function Qr(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function eo(...e){return t=>{let n=!1;const r=e.map(e=>{const r=Qr(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){const n=r[t];"function"==typeof n?n():Qr(e[t],null)}}}}function to(...e){return c.useCallback(eo(...e),e)}function no(e){const t=oo(e),n=c.forwardRef((e,n)=>{const{children:r,...o}=e,i=c.Children.toArray(r),a=i.find(uo);if(a){const e=a.props.children,r=i.map(t=>t===a?c.Children.count(e)>1?c.Children.only(null):c.isValidElement(e)?e.props.children:null:t);return bn.jsx(t,{...o,ref:n,children:c.isValidElement(e)?c.cloneElement(e,void 0,r):null})}return bn.jsx(t,{...o,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}var ro=no("Slot");function oo(e){const t=c.forwardRef((e,t)=>{const{children:n,...r}=e;if(c.isValidElement(n)){const e=function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;if(n)return e.ref;if(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(n),o=function(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...e)=>{const t=i(...e);return o(...e),t}:o&&(n[r]=o):"style"===r?n[r]={...o,...i}:"className"===r&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}(r,n.props);return n.type!==c.Fragment&&(o.ref=t?eo(t,e):e),c.cloneElement(n,o)}return c.Children.count(n)>1?c.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var io=Symbol("radix.slottable");function ao(e){const t=({children:e})=>bn.jsx(bn.Fragment,{children:e});return t.displayName=`${e}.Slottable`,t.__radixId=io,t}var so=ao("Slottable");function uo(e){return c.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===io}var co=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{const n=no(`Primitive.${t}`),r=c.forwardRef((e,r)=>{const{asChild:o,...i}=e,a=o?n:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),bn.jsx(a,{...i,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function lo(e,t){e&&l.flushSync(()=>e.dispatchEvent(t))}var fo="Toggle",ho=c.forwardRef((e,t)=>{const{pressed:n,defaultPressed:r,onPressedChange:o,...i}=e,[a,s]=Jr({prop:n,onChange:o,defaultProp:r??!1,caller:fo});return bn.jsx(co.button,{type:"button","aria-pressed":a,"data-state":a?"on":"off","data-disabled":e.disabled?"":void 0,...i,ref:t,onClick:Xr(e.onClick,()=>{e.disabled||s(!a)})})});ho.displayName=fo;var po=ho;function mo(...e){return e.filter(e=>"string"==typeof e||"number"==typeof e).join(" ")}function go({children:e,className:t,...n}){return bn.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",role:"presentation",className:mo("lb-icon",t),...n,children:e})}function vo(e){return bn.jsx(go,{...e,children:bn.jsx("path",{d:"M16 6L8 14L4 10"})})}function yo(e){return bn.jsxs(go,{...e,children:[bn.jsx("path",{d:"M15 5L5 15"}),bn.jsx("path",{d:"M5 5L15 15"})]})}function bo(e){return bn.jsx(go,{...e,children:bn.jsx("path",{d:"M4.5 6.5h11M14 6.5V14a1.5 1.5 0 0 1-1.5 1.5h-5A1.5 1.5 0 0 1 6 14V6.5M7.5 6.5V5a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v1.5"})})}function wo(e){return bn.jsx(go,{...e,children:bn.jsx("path",{d:"m11.784 5.797-6.13 6.138a4 4 0 0 0-1.03 1.775L4 16l2.285-.624a4 4 0 0 0 1.776-1.032l6.145-6.152m-2.422-2.395 1.244-1.246c.608-.608 1.826-.81 2.53-.104.7.7.499 1.893-.122 2.515l-1.23 1.23m-2.422-2.395 2.422 2.395"})})}function Co(e){return bn.jsxs(go,{fill:"currentColor",...e,children:[bn.jsx("circle",{cx:5,cy:10,r:.75}),bn.jsx("circle",{cx:10,cy:10,r:.75}),bn.jsx("circle",{cx:15,cy:10,r:.75})]})}function Do(e){return bn.jsxs(go,{...e,children:[bn.jsx("path",{d:"M11 3.07A7 7 0 1 0 16.93 9"}),bn.jsx("path",{d:"M7.5 11.5S8.25 13 10 13s2.5-1.5 2.5-1.5M8 8h0"}),bn.jsx("path",{d:"M12 8h0"}),bn.jsx("path",{d:"M13 5h4m-2-2v4"}),bn.jsx("circle",{cx:"8",cy:"8",r:".25"}),bn.jsx("circle",{cx:"12",cy:"8",r:".25"})]})}const Eo="'Apple Color Emoji', 'Noto Color Emoji', 'Twemoji Mozilla', 'Android Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', EmojiSymbols, sans-serif",xo=n.forwardRef(({emoji:e,style:t,asChild:n,...r},o)=>{const i=n?ro:"span";return bn.jsx(i,{role:"img","aria-label":e,"data-emoji":e,style:{...t,fontFamily:Eo,display:"inline-flex",alignItems:"center",justifyContent:"center",width:"1em",whiteSpace:"nowrap"},...r,ref:o,children:e})}),Ao=n.forwardRef(({className:e,...t},n)=>bn.jsx(xo,{className:mo("lb-emoji",e),...t,ref:n}));function Io(e,t,n){return 1===e?t:n??`${t}s`}const So={locale:"en",dir:"ltr",USER_SELF:"you",USER_UNKNOWN:"Anonymous",LIST_REMAINING:e=>`${e} more`,LIST_REMAINING_USERS:e=>`${e} ${Io(e,"other")}`,LIST_REMAINING_COMMENTS:e=>`${e} more ${Io(e,"comment")}`,EMOJI_PICKER_SEARCH_PLACEHOLDER:"Search…",EMOJI_PICKER_EMPTY:"No emoji found.",EMOJI_PICKER_ERROR:()=>"There was an error while getting the list of emoji.",ATTACHMENT_TOO_LARGE:e=>e?`The file is larger than ${e}`:"The file is too large",ATTACHMENT_ERROR:()=>"The file couldn’t be uploaded.",COMPOSER_INSERT_MENTION:"Mention someone",COMPOSER_INSERT_EMOJI:"Add emoji",COMPOSER_ATTACH_FILES:"Attach files",COMPOSER_REMOVE_ATTACHMENT:"Remove attachment",COMPOSER_PLACEHOLDER:"Write a comment…",COMPOSER_SEND:"Send",COMPOSER_TOGGLE_MARK:e=>{switch(e){case"bold":return"Bold";case"italic":return"Italic";case"strikethrough":return"Strikethrough";case"code":return"Inline code";default:return we(0,"Unexpected mark")}},COMMENT_EDITED:"(edited)",COMMENT_DELETED:"This comment has been deleted.",COMMENT_MORE:"More",COMMENT_EDIT:"Edit comment",COMMENT_EDIT_COMPOSER_PLACEHOLDER:"Edit comment…",COMMENT_EDIT_COMPOSER_CANCEL:"Cancel",COMMENT_EDIT_COMPOSER_SAVE:"Save",COMMENT_DELETE:"Delete comment",COMMENT_DELETE_ATTACHMENT:"Delete attachment",COMMENT_ADD_REACTION:"Add reaction",COMMENT_REACTION_LIST:(e,t)=>bn.jsxs(bn.Fragment,{children:[e," reacted with ",bn.jsx(Ao,{emoji:t})]}),COMMENT_REACTION_DESCRIPTION:(e,t)=>`${t} ${Io(t,"reaction")}, react with ${e}`,THREAD_RESOLVE:"Resolve thread",THREAD_UNRESOLVE:"Re-open thread",THREAD_NEW_INDICATOR:"New",THREAD_NEW_INDICATOR_DESCRIPTION:"New comments",THREAD_COMPOSER_PLACEHOLDER:"Reply to thread…",THREAD_COMPOSER_SEND:"Reply",INBOX_NOTIFICATION_MORE:"More",INBOX_NOTIFICATION_MARK_AS_READ:"Mark as read",INBOX_NOTIFICATION_DELETE:"Delete notification",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST:(e,t)=>bn.jsxs(bn.Fragment,{children:[e," commented",t?bn.jsxs(bn.Fragment,{children:[" in ",t]}):bn.jsx(bn.Fragment,{children:" in a thread"})]}),INBOX_NOTIFICATION_THREAD_MENTION:(e,t)=>bn.jsxs(bn.Fragment,{children:[e," mentioned you",t?bn.jsxs(bn.Fragment,{children:[" in ",t]}):null]}),INBOX_NOTIFICATION_TEXT_MENTION:(e,t)=>bn.jsxs(bn.Fragment,{children:[e," mentioned you",t?bn.jsxs(bn.Fragment,{children:[" in ",t]}):null]}),HISTORY_VERSION_PREVIEW_AUTHORS_LIST:e=>bn.jsxs(bn.Fragment,{children:["Edits from ",e]}),HISTORY_VERSION_PREVIEW_RESTORE:"Restore",HISTORY_VERSION_PREVIEW_EMPTY:"No content.",HISTORY_VERSION_PREVIEW_ERROR:()=>"There was an error while getting this version."},Oo=n.createContext(void 0);function To(e){const t=n.useContext(Oo);return n.useMemo(()=>({...So,...t,...e}),[t,e])}function Bo({children:e,overrides:t}){const r=n.useContext(Oo),o=n.useMemo(()=>({...So,...r,...t}),[r,t]);return bn.jsx(Oo.Provider,{value:o,children:e})}
2
2
  /*!
3
- * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
4
- *
5
- * Copyright (c) 2014-2017, Jon Schlinkert.
6
- * Released under the MIT License.
7
- */function isObject$4(e){return"[object Object]"===Object.prototype.toString.call(e)}function isPlainObject$1(e){var t,n;return!1!==isObject$4(e)&&(void 0===(t=e.constructor)||!1!==isObject$4(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf"))}var NOTHING=Symbol.for("immer-nothing"),DRAFTABLE=Symbol.for("immer-draftable"),DRAFT_STATE=Symbol.for("immer-state");function die(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var getPrototypeOf=Object.getPrototypeOf;function isDraft(e){return!!e&&!!e[DRAFT_STATE]}function isDraftable(e){return!!e&&(isPlainObject(e)||Array.isArray(e)||!!e[DRAFTABLE]||!!e.constructor?.[DRAFTABLE]||isMap(e)||isSet(e))}var objectCtorString=Object.prototype.constructor.toString();function isPlainObject(e){if(!e||"object"!=typeof e)return!1;const t=getPrototypeOf(e);if(null===t)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return n===Object||"function"==typeof n&&Function.toString.call(n)===objectCtorString}function each(e,t){0===getArchtype(e)?Reflect.ownKeys(e).forEach(n=>{t(n,e[n],e)}):e.forEach((n,o)=>t(o,n,e))}function getArchtype(e){const t=e[DRAFT_STATE];return t?t.type_:Array.isArray(e)?1:isMap(e)?2:isSet(e)?3:0}function has(e,t){return 2===getArchtype(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function set(e,t,n){const o=getArchtype(e);2===o?e.set(t,n):3===o?e.add(n):e[t]=n}function is(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function isMap(e){return e instanceof Map}function isSet(e){return e instanceof Set}function latest(e){return e.copy_||e.base_}function shallowCopy(e,t){if(isMap(e))return new Map(e);if(isSet(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=isPlainObject(e);if(!0===t||"class_only"===t&&!n){const t=Object.getOwnPropertyDescriptors(e);delete t[DRAFT_STATE];let n=Reflect.ownKeys(t);for(let o=0;o<n.length;o++){const r=n[o],a=t[r];!1===a.writable&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[r]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[r]})}return Object.create(getPrototypeOf(e),t)}{const t=getPrototypeOf(e);if(null!==t&&n)return{...e};const o=Object.create(t);return Object.assign(o,e)}}function freeze$1(e,t=!1){return isFrozen(e)||isDraft(e)||!isDraftable(e)||(getArchtype(e)>1&&Object.defineProperties(e,{set:{value:dontMutateFrozenCollections},add:{value:dontMutateFrozenCollections},clear:{value:dontMutateFrozenCollections},delete:{value:dontMutateFrozenCollections}}),Object.freeze(e),t&&Object.values(e).forEach(e=>freeze$1(e,!0))),e}function dontMutateFrozenCollections(){die(2)}function isFrozen(e){return Object.isFrozen(e)}var plugins={},currentScope;function getPlugin(e){const t=plugins[e];return t||die(0,e),t}function getCurrentScope(){return currentScope}function createScope(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function usePatchesInScope(e,t){t&&(getPlugin("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function revokeScope(e){leaveScope(e),e.drafts_.forEach(revokeDraft),e.drafts_=null}function leaveScope(e){e===currentScope&&(currentScope=e.parent_)}function enterScope(e){return currentScope=createScope(currentScope,e)}function revokeDraft(e){const t=e[DRAFT_STATE];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function processResult(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return void 0!==e&&e!==n?(n[DRAFT_STATE].modified_&&(revokeScope(t),die(4)),isDraftable(e)&&(e=finalize(t,e),t.parent_||maybeFreeze(t,e)),t.patches_&&getPlugin("Patches").generateReplacementPatches_(n[DRAFT_STATE].base_,e,t.patches_,t.inversePatches_)):e=finalize(t,n,[]),revokeScope(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==NOTHING?e:void 0}function finalize(e,t,n){if(isFrozen(t))return t;const o=t[DRAFT_STATE];if(!o)return each(t,(r,a)=>finalizeProperty(e,o,t,r,a,n)),t;if(o.scope_!==e)return t;if(!o.modified_)return maybeFreeze(e,o.base_,!0),o.base_;if(!o.finalized_){o.finalized_=!0,o.scope_.unfinalizedDrafts_--;const t=o.copy_;let r=t,a=!1;3===o.type_&&(r=new Set(t),t.clear(),a=!0),each(r,(r,i)=>finalizeProperty(e,o,t,r,i,n,a)),maybeFreeze(e,t,!1),n&&e.patches_&&getPlugin("Patches").generatePatches_(o,n,e.patches_,e.inversePatches_)}return o.copy_}function finalizeProperty(e,t,n,o,r,a,i){if(isDraft(r)){const i=finalize(e,r,a&&t&&3!==t.type_&&!has(t.assigned_,o)?a.concat(o):void 0);if(set(n,o,i),!isDraft(i))return;e.canAutoFreeze_=!1}else i&&n.add(r);if(isDraftable(r)&&!isFrozen(r)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;finalize(e,r),t&&t.scope_.parent_||"symbol"==typeof o||!(isMap(n)?n.has(o):Object.prototype.propertyIsEnumerable.call(n,o))||maybeFreeze(e,r)}}function maybeFreeze(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&freeze$1(t,n)}function createProxyProxy(e,t){const n=Array.isArray(e),o={type_:n?1:0,scope_:t?t.scope_:getCurrentScope(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let r=o,a=objectTraps;n&&(r=[o],a=arrayTraps);const{revoke:i,proxy:s}=Proxy.revocable(r,a);return o.draft_=s,o.revoke_=i,s}var objectTraps={get(e,t){if(t===DRAFT_STATE)return e;const n=latest(e);if(!has(n,t))return readPropFromProto(e,n,t);const o=n[t];return e.finalized_||!isDraftable(o)?o:o===peek(e.base_,t)?(prepareCopy(e),e.copy_[t]=createProxy(o,e)):o},has:(e,t)=>t in latest(e),ownKeys:e=>Reflect.ownKeys(latest(e)),set(e,t,n){const o=getDescriptorFromProto(latest(e),t);if(o?.set)return o.set.call(e.draft_,n),!0;if(!e.modified_){const o=peek(latest(e),t),r=o?.[DRAFT_STATE];if(r&&r.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(is(n,o)&&(void 0!==n||has(e.base_,t)))return!0;prepareCopy(e),markChanged(e)}return e.copy_[t]===n&&(void 0!==n||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty:(e,t)=>(void 0!==peek(e.base_,t)||t in e.base_?(e.assigned_[t]=!1,prepareCopy(e),markChanged(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const n=latest(e),o=Reflect.getOwnPropertyDescriptor(n,t);return o?{writable:!0,configurable:1!==e.type_||"length"!==t,enumerable:o.enumerable,value:n[t]}:o},defineProperty(){die(11)},getPrototypeOf:e=>getPrototypeOf(e.base_),setPrototypeOf(){die(12)}},arrayTraps={};function peek(e,t){const n=e[DRAFT_STATE];return(n?latest(n):e)[t]}function readPropFromProto(e,t,n){const o=getDescriptorFromProto(t,n);return o?"value"in o?o.value:o.get?.call(e.draft_):void 0}function getDescriptorFromProto(e,t){if(!(t in e))return;let n=getPrototypeOf(e);for(;n;){const e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=getPrototypeOf(n)}}function markChanged(e){e.modified_||(e.modified_=!0,e.parent_&&markChanged(e.parent_))}function prepareCopy(e){e.copy_||(e.copy_=shallowCopy(e.base_,e.scope_.immer_.useStrictShallowCopy_))}each(objectTraps,(e,t)=>{arrayTraps[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),arrayTraps.deleteProperty=function(e,t){return arrayTraps.set.call(this,e,t,void 0)},arrayTraps.set=function(e,t,n){return objectTraps.set.call(this,e[0],t,n,e[0])};var Immer2=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(e,t,n)=>{if("function"==typeof e&&"function"!=typeof t){const n=t;t=e;const o=this;return function(e=n,...r){return o.produce(e,e=>t.call(this,e,...r))}}let o;if("function"!=typeof t&&die(6),void 0!==n&&"function"!=typeof n&&die(7),isDraftable(e)){const r=enterScope(this),a=createProxy(e,void 0);let i=!0;try{o=t(a),i=!1}finally{i?revokeScope(r):leaveScope(r)}return usePatchesInScope(r,n),processResult(o,r)}if(!e||"object"!=typeof e){if(o=t(e),void 0===o&&(o=e),o===NOTHING&&(o=void 0),this.autoFreeze_&&freeze$1(o,!0),n){const t=[],r=[];getPlugin("Patches").generateReplacementPatches_(e,o,t,r),n(t,r)}return o}die(1,e)},this.produceWithPatches=(e,t)=>{if("function"==typeof e)return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,o;return[this.produce(e,t,(e,t)=>{n=e,o=t}),n,o]},"boolean"==typeof e?.autoFreeze&&this.setAutoFreeze(e.autoFreeze),"boolean"==typeof e?.useStrictShallowCopy&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){isDraftable(e)||die(8),isDraft(e)&&(e=current(e));const t=enterScope(this),n=createProxy(e,void 0);return n[DRAFT_STATE].isManual_=!0,leaveScope(t),n}finishDraft(e,t){const n=e&&e[DRAFT_STATE];n&&n.isManual_||die(9);const{scope_:o}=n;return usePatchesInScope(o,t),processResult(void 0,o)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const o=t[n];if(0===o.path.length&&"replace"===o.op){e=o.value;break}}n>-1&&(t=t.slice(n+1));const o=getPlugin("Patches").applyPatches_;return isDraft(e)?o(e,t):this.produce(e,e=>o(e,t))}};function createProxy(e,t){const n=isMap(e)?getPlugin("MapSet").proxyMap_(e,t):isSet(e)?getPlugin("MapSet").proxySet_(e,t):createProxyProxy(e,t);return(t?t.scope_:getCurrentScope()).drafts_.push(n),n}function current(e){return isDraft(e)||die(10,e),currentImpl(e)}function currentImpl(e){if(!isDraftable(e)||isFrozen(e))return e;const t=e[DRAFT_STATE];let n;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=shallowCopy(e,t.scope_.immer_.useStrictShallowCopy_)}else n=shallowCopy(e,!0);return each(n,(e,t)=>{set(n,e,currentImpl(t))}),t&&(t.finalized_=!1),n}var immer=new Immer2,produce=immer.produce,createDraft=immer.createDraft.bind(immer),finishDraft=immer.finishDraft.bind(immer),PathRef={transform(e,t){var{current:n,affinity:o}=e;if(null!=n){var r=Path.transform(n,t,{affinity:o});e.current=r,null==r&&e.unref()}}},PointRef={transform(e,t){var{current:n,affinity:o}=e;if(null!=n){var r=Point.transform(n,t,{affinity:o});e.current=r,null==r&&e.unref()}}},RangeRef={transform(e,t){var{current:n,affinity:o}=e;if(null!=n){var r=Range.transform(n,t,{affinity:o});e.current=r,null==r&&e.unref()}}},DIRTY_PATHS=new WeakMap,DIRTY_PATH_KEYS=new WeakMap,FLUSHING=new WeakMap,NORMALIZING=new WeakMap,PATH_REFS=new WeakMap,POINT_REFS=new WeakMap,RANGE_REFS=new WeakMap,Path={ancestors(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,o=Path.levels(e,t);return o=n?o.slice(1):o.slice(0,-1)},common(e,t){for(var n=[],o=0;o<e.length&&o<t.length;o++){var r=e[o];if(r!==t[o])break;n.push(r)}return n},compare(e,t){for(var n=Math.min(e.length,t.length),o=0;o<n;o++){if(e[o]<t[o])return-1;if(e[o]>t[o])return 1}return 0},endsAfter(e,t){var n=e.length-1,o=e.slice(0,n),r=t.slice(0,n),a=e[n],i=t[n];return Path.equals(o,r)&&a>i},endsAt(e,t){var n=e.length,o=e.slice(0,n),r=t.slice(0,n);return Path.equals(o,r)},endsBefore(e,t){var n=e.length-1,o=e.slice(0,n),r=t.slice(0,n),a=e[n],i=t[n];return Path.equals(o,r)&&a<i},equals:(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),hasPrevious:e=>e[e.length-1]>0,isAfter:(e,t)=>1===Path.compare(e,t),isAncestor:(e,t)=>e.length<t.length&&0===Path.compare(e,t),isBefore:(e,t)=>-1===Path.compare(e,t),isChild:(e,t)=>e.length===t.length+1&&0===Path.compare(e,t),isCommon:(e,t)=>e.length<=t.length&&0===Path.compare(e,t),isDescendant:(e,t)=>e.length>t.length&&0===Path.compare(e,t),isParent:(e,t)=>e.length+1===t.length&&0===Path.compare(e,t),isPath:e=>Array.isArray(e)&&(0===e.length||"number"==typeof e[0]),isSibling(e,t){if(e.length!==t.length)return!1;var n=e.slice(0,-1),o=t.slice(0,-1);return e[e.length-1]!==t[t.length-1]&&Path.equals(n,o)},levels(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,o=[],r=0;r<=e.length;r++)o.push(e.slice(0,r));return n&&o.reverse(),o},next(e){if(0===e.length)throw new Error("Cannot get the next path of a root path [".concat(e,"], because it has no next index."));var t=e[e.length-1];return e.slice(0,-1).concat(t+1)},operationCanTransformPath(e){switch(e.type){case"insert_node":case"remove_node":case"merge_node":case"split_node":case"move_node":return!0;default:return!1}},parent(e){if(0===e.length)throw new Error("Cannot get the parent path of the root path [".concat(e,"]."));return e.slice(0,-1)},previous(e){if(0===e.length)throw new Error("Cannot get the previous path of a root path [".concat(e,"], because it has no previous index."));var t=e[e.length-1];if(t<=0)throw new Error("Cannot get the previous path of a first child path [".concat(e,"] because it would result in a negative index."));return e.slice(0,-1).concat(t-1)},relative(e,t){if(!Path.isAncestor(t,e)&&!Path.equals(e,t))throw new Error("Cannot get the relative path of [".concat(e,"] inside ancestor [").concat(t,"], because it is not above or equal to the path."));return e.slice(t.length)},transform(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e)return null;var o=[...e],{affinity:r="forward"}=n;if(0===e.length)return o;switch(t.type){case"insert_node":var{path:a}=t;(Path.equals(a,o)||Path.endsBefore(a,o)||Path.isAncestor(a,o))&&(o[a.length-1]+=1);break;case"remove_node":var{path:i}=t;if(Path.equals(i,o)||Path.isAncestor(i,o))return null;Path.endsBefore(i,o)&&(o[i.length-1]-=1);break;case"merge_node":var{path:s,position:l}=t;Path.equals(s,o)||Path.endsBefore(s,o)?o[s.length-1]-=1:Path.isAncestor(s,o)&&(o[s.length-1]-=1,o[s.length]+=l);break;case"split_node":var{path:c,position:d}=t;if(Path.equals(c,o)){if("forward"===r)o[o.length-1]+=1;else if("backward"!==r)return null}else Path.endsBefore(c,o)?o[c.length-1]+=1:Path.isAncestor(c,o)&&e[c.length]>=d&&(o[c.length-1]+=1,o[c.length]-=d);break;case"move_node":var{path:u,newPath:f}=t;if(Path.equals(u,f))return o;if(Path.isAncestor(u,o)||Path.equals(u,o)){var p=f.slice();return Path.endsBefore(u,f)&&u.length<f.length&&(p[u.length-1]-=1),p.concat(o.slice(u.length))}Path.isSibling(u,f)&&(Path.isAncestor(f,o)||Path.equals(f,o))?Path.endsBefore(u,o)?o[u.length-1]-=1:o[u.length-1]+=1:Path.endsBefore(f,o)||Path.equals(f,o)||Path.isAncestor(f,o)?(Path.endsBefore(u,o)&&(o[u.length-1]-=1),o[f.length-1]+=1):Path.endsBefore(u,o)&&(Path.equals(f,o)&&(o[f.length-1]+=1),o[u.length-1]-=1)}return o}};function _typeof$3(e){return _typeof$3="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$3(e)}function _toPrimitive$2(e,t){if("object"!==_typeof$3(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==_typeof$3(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$2(e){var t=_toPrimitive$2(e,"string");return"symbol"===_typeof$3(t)?t:String(t)}function _defineProperty$3(e,t,n){return(t=_toPropertyKey$2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys$e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$e(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$e(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var applyToDraft=(e,t,n)=>{switch(n.type){case"insert_node":var{path:o,node:r}=n,a=Node$1.parent(e,o),i=o[o.length-1];if(i>a.children.length)throw new Error('Cannot apply an "insert_node" operation at path ['.concat(o,"] because the destination is past the end of the node."));if(a.children.splice(i,0,r),t)for(var[s,l]of Range.points(t))t[l]=Point.transform(s,n);break;case"insert_text":var{path:c,offset:d,text:u}=n;if(0===u.length)break;var f=Node$1.leaf(e,c),p=f.text.slice(0,d),_=f.text.slice(d);if(f.text=p+u+_,t)for(var[m,h]of Range.points(t))t[h]=Point.transform(m,n);break;case"merge_node":var{path:g}=n,b=Node$1.get(e,g),v=Path.previous(g),y=Node$1.get(e,v),E=Node$1.parent(e,g),w=g[g.length-1];if(Text$1.isText(b)&&Text$1.isText(y))y.text+=b.text;else{if(Text$1.isText(b)||Text$1.isText(y))throw new Error('Cannot apply a "merge_node" operation at path ['.concat(g,"] to nodes of different interfaces: ").concat(Scrubber.stringify(b)," ").concat(Scrubber.stringify(y)));y.children.push(...b.children)}if(E.children.splice(w,1),t)for(var[C,x]of Range.points(t))t[x]=Point.transform(C,n);break;case"move_node":var{path:R,newPath:S}=n;if(Path.isAncestor(R,S))throw new Error("Cannot move a path [".concat(R,"] to new path [").concat(S,"] because the destination is inside itself."));var D=Node$1.get(e,R),T=Node$1.parent(e,R),A=R[R.length-1];T.children.splice(A,1);var O=Path.transform(R,n),I=Node$1.get(e,Path.parent(O)),k=O[O.length-1];if(I.children.splice(k,0,D),t)for(var[N,j]of Range.points(t))t[j]=Point.transform(N,n);break;case"remove_node":var{path:$}=n,F=$[$.length-1];if(Node$1.parent(e,$).children.splice(F,1),t)for(var[P,M]of Range.points(t)){var B=Point.transform(P,n);if(null!=t&&null!=B)t[M]=B;else{var L=void 0,U=void 0;for(var[V,H]of Node$1.texts(e)){if(-1!==Path.compare(H,$)){U=[V,H];break}L=[V,H]}var z=!1;L&&U&&(z=Path.equals(U[1],$)?!Path.hasPrevious(U[1]):Path.common(L[1],$).length<Path.common(U[1],$).length),L&&!z?(P.path=L[1],P.offset=L[0].text.length):U?(P.path=U[1],P.offset=0):t=null}}break;case"remove_text":var{path:q,offset:K,text:W}=n;if(0===W.length)break;var G=Node$1.leaf(e,q),Y=G.text.slice(0,K),J=G.text.slice(K+W.length);if(G.text=Y+J,t)for(var[X,Z]of Range.points(t))t[Z]=Point.transform(X,n);break;case"set_node":var{path:Q,properties:ee,newProperties:te}=n;if(0===Q.length)throw new Error("Cannot set properties on the root node!");var ne=Node$1.get(e,Q);for(var oe in te){if("children"===oe||"text"===oe)throw new Error('Cannot set the "'.concat(oe,'" property of nodes!'));var re=te[oe];null==re?delete ne[oe]:ne[oe]=re}for(var ae in ee)te.hasOwnProperty(ae)||delete ne[ae];break;case"set_selection":var{newProperties:ie}=n;if(null==ie)t=ie;else{if(null==t){if(!Range.isRange(ie))throw new Error('Cannot apply an incomplete "set_selection" operation properties '.concat(Scrubber.stringify(ie)," when there is no current selection."));t=_objectSpread$e({},ie)}for(var se in ie){var le=ie[se];if(null==le){if("anchor"===se||"focus"===se)throw new Error('Cannot remove the "'.concat(se,'" selection property'));delete t[se]}else t[se]=le}}break;case"split_node":var{path:ce,position:de,properties:ue}=n;if(0===ce.length)throw new Error('Cannot apply a "split_node" operation at path ['.concat(ce,"] because the root node cannot be split."));var fe,pe=Node$1.get(e,ce),_e=Node$1.parent(e,ce),me=ce[ce.length-1];if(Text$1.isText(pe)){var he=pe.text.slice(0,de),ge=pe.text.slice(de);pe.text=he,fe=_objectSpread$e(_objectSpread$e({},ue),{},{text:ge})}else{var be=pe.children.slice(0,de),ve=pe.children.slice(de);pe.children=be,fe=_objectSpread$e(_objectSpread$e({},ue),{},{children:ve})}if(_e.children.splice(me+1,0,fe),t)for(var[ye,Ee]of Range.points(t))t[Ee]=Point.transform(ye,n)}return t},GeneralTransforms={transform(e,t){e.children=createDraft(e.children);var n=e.selection&&createDraft(e.selection);try{n=applyToDraft(e,n,t)}finally{e.children=finishDraft(e.children),e.selection=n?isDraft(n)?finishDraft(n):n:null}}},NodeTransforms={insertNodes(e,t,n){e.insertNodes(t,n)},liftNodes(e,t){e.liftNodes(t)},mergeNodes(e,t){e.mergeNodes(t)},moveNodes(e,t){e.moveNodes(t)},removeNodes(e,t){e.removeNodes(t)},setNodes(e,t,n){e.setNodes(t,n)},splitNodes(e,t){e.splitNodes(t)},unsetNodes(e,t,n){e.unsetNodes(t,n)},unwrapNodes(e,t){e.unwrapNodes(t)},wrapNodes(e,t,n){e.wrapNodes(t,n)}},SelectionTransforms={collapse(e,t){e.collapse(t)},deselect(e){e.deselect()},move(e,t){e.move(t)},select(e,t){e.select(t)},setPoint(e,t,n){e.setPoint(t,n)},setSelection(e,t){e.setSelection(t)}},isDeepEqual=(e,t)=>{for(var n in e){var o=e[n],r=t[n];if(isPlainObject$1(o)&&isPlainObject$1(r)){if(!isDeepEqual(o,r))return!1}else if(Array.isArray(o)&&Array.isArray(r)){if(o.length!==r.length)return!1;for(var a=0;a<o.length;a++)if(o[a]!==r[a])return!1}else if(o!==r)return!1}for(var i in t)if(void 0===e[i]&&void 0!==t[i])return!1;return!0};function _objectWithoutPropertiesLoose$1(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}function _objectWithoutProperties$1(e,t){if(null==e)return{};var n,o,r=_objectWithoutPropertiesLoose$1(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var _excluded$4=["anchor","focus"];function ownKeys$d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$d(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$d(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Range={edges(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,{anchor:o,focus:r}=e;return Range.isBackward(e)===n?[o,r]:[r,o]},end(e){var[,t]=Range.edges(e);return t},equals:(e,t)=>Point.equals(e.anchor,t.anchor)&&Point.equals(e.focus,t.focus),surrounds(e,t){var n=Range.intersection(e,t);return!!n&&Range.equals(n,t)},includes(e,t){if(Range.isRange(t)){if(Range.includes(e,t.anchor)||Range.includes(e,t.focus))return!0;var[n,o]=Range.edges(e),[r,a]=Range.edges(t);return Point.isBefore(n,r)&&Point.isAfter(o,a)}var[i,s]=Range.edges(e),l=!1,c=!1;return Point.isPoint(t)?(l=Point.compare(t,i)>=0,c=Point.compare(t,s)<=0):(l=Path.compare(t,i.path)>=0,c=Path.compare(t,s.path)<=0),l&&c},intersection(e,t){var n=_objectWithoutProperties$1(e,_excluded$4),[o,r]=Range.edges(e),[a,i]=Range.edges(t),s=Point.isBefore(o,a)?a:o,l=Point.isBefore(r,i)?r:i;return Point.isBefore(l,s)?null:_objectSpread$d({anchor:s,focus:l},n)},isBackward(e){var{anchor:t,focus:n}=e;return Point.isAfter(t,n)},isCollapsed(e){var{anchor:t,focus:n}=e;return Point.equals(t,n)},isExpanded:e=>!Range.isCollapsed(e),isForward:e=>!Range.isBackward(e),isRange:e=>isPlainObject$1(e)&&Point.isPoint(e.anchor)&&Point.isPoint(e.focus),*points(e){yield[e.anchor,"anchor"],yield[e.focus,"focus"]},start(e){var[t]=Range.edges(e);return t},transform(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return produce(e,e=>{if(null===e)return null;var o,r,{affinity:a="inward"}=n;if("inward"===a){var i=Range.isCollapsed(e);Range.isForward(e)?(o="forward",r=i?o:"backward"):(o="backward",r=i?o:"forward")}else"outward"===a?Range.isForward(e)?(o="backward",r="forward"):(o="forward",r="backward"):(o=a,r=a);var s=Point.transform(e.anchor,t,{affinity:o}),l=Point.transform(e.focus,t,{affinity:r});if(!s||!l)return null;e.anchor=s,e.focus=l})}},isElement$2=e=>isPlainObject$1(e)&&Node$1.isNodeList(e.children)&&!Editor.isEditor(e),Element$2={isAncestor:e=>isPlainObject$1(e)&&Node$1.isNodeList(e.children),isElement:isElement$2,isElementList:e=>Array.isArray(e)&&e.every(e=>Element$2.isElement(e)),isElementProps:e=>void 0!==e.children,isElementType:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"type";return isElement$2(e)&&e[n]===t},matches(e,t){for(var n in t)if("children"!==n&&e[n]!==t[n])return!1;return!0}},_excluded$3$1=["children"],_excluded2$3=["text"],IS_NODE_LIST_CACHE=new WeakMap,Node$1={ancestor(e,t){var n=Node$1.get(e,t);if(Text$1.isText(n))throw new Error("Cannot get the ancestor node at path [".concat(t,"] because it refers to a text node instead: ").concat(Scrubber.stringify(n)));return n},ancestors(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var o of Path.ancestors(t,n)){var r=[Node$1.ancestor(e,o),o];yield r}}()},child(e,t){if(Text$1.isText(e))throw new Error("Cannot get the child of a text node: ".concat(Scrubber.stringify(e)));var n=e.children[t];if(null==n)throw new Error("Cannot get child at index `".concat(t,"` in node: ").concat(Scrubber.stringify(e)));return n},children(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var{reverse:o=!1}=n,r=Node$1.ancestor(e,t),{children:a}=r,i=o?a.length-1:0;o?i>=0:i<a.length;){var s=Node$1.child(r,i),l=t.concat(i);yield[s,l],i=o?i-1:i+1}}()},common(e,t,n){var o=Path.common(t,n);return[Node$1.get(e,o),o]},descendant(e,t){var n=Node$1.get(e,t);if(Editor.isEditor(n))throw new Error("Cannot get the descendant node at path [".concat(t,"] because it refers to the root editor node instead: ").concat(Scrubber.stringify(n)));return n},descendants(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,o]of Node$1.nodes(e,t))0!==o.length&&(yield[n,o])}()},elements(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,o]of Node$1.nodes(e,t))Element$2.isElement(n)&&(yield[n,o])}()},extractProps:e=>Element$2.isAncestor(e)?_objectWithoutProperties$1(e,_excluded$3$1):_objectWithoutProperties$1(e,_excluded2$3),first(e,t){for(var n=t.slice(),o=Node$1.get(e,n);o&&!Text$1.isText(o)&&0!==o.children.length;)o=o.children[0],n.push(0);return[o,n]},fragment(e,t){if(Text$1.isText(e))throw new Error("Cannot get a fragment starting from a root text node: ".concat(Scrubber.stringify(e)));var n=produce({children:e.children},e=>{var[n,o]=Range.edges(t),r=Node$1.nodes(e,{reverse:!0,pass:e=>{var[,n]=e;return!Range.includes(t,n)}});for(var[,a]of r){if(!Range.includes(t,a)){var i=Node$1.parent(e,a),s=a[a.length-1];i.children.splice(s,1)}if(Path.equals(a,o.path)){var l=Node$1.leaf(e,a);l.text=l.text.slice(0,o.offset)}if(Path.equals(a,n.path)){var c=Node$1.leaf(e,a);c.text=c.text.slice(n.offset)}}Editor.isEditor(e)&&(e.selection=null)});return n.children},get(e,t){var n=Node$1.getIf(e,t);if(void 0===n)throw new Error("Cannot find a descendant at path [".concat(t,"] in node: ").concat(Scrubber.stringify(e)));return n},getIf(e,t){for(var n=e,o=0;o<t.length;o++){var r=t[o];if(Text$1.isText(n)||!n.children[r])return;n=n.children[r]}return n},has(e,t){for(var n=e,o=0;o<t.length;o++){var r=t[o];if(Text$1.isText(n)||!n.children[r])return!1;n=n.children[r]}return!0},isNode:e=>Text$1.isText(e)||Element$2.isElement(e)||Editor.isEditor(e),isNodeList(e){if(!Array.isArray(e))return!1;var t=IS_NODE_LIST_CACHE.get(e);if(void 0!==t)return t;var n=e.every(e=>Node$1.isNode(e));return IS_NODE_LIST_CACHE.set(e,n),n},last(e,t){for(var n=t.slice(),o=Node$1.get(e,n);o&&!Text$1.isText(o)&&0!==o.children.length;){var r=o.children.length-1;o=o.children[r],n.push(r)}return[o,n]},leaf(e,t){var n=Node$1.get(e,t);if(!Text$1.isText(n))throw new Error("Cannot get the leaf node at path [".concat(t,"] because it refers to a non-leaf node: ").concat(Scrubber.stringify(n)));return n},levels(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var o of Path.levels(t,n)){var r=Node$1.get(e,o);yield[r,o]}}()},matches:(e,t)=>Element$2.isElement(e)&&Element$2.isElementProps(t)&&Element$2.matches(e,t)||Text$1.isText(e)&&Text$1.isTextProps(t)&&Text$1.matches(e,t),nodes(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var{pass:n,reverse:o=!1}=t,{from:r=[],to:a}=t,i=new Set,s=[],l=e;!a||!(o?Path.isBefore(s,a):Path.isAfter(s,a));)if(i.has(l)||(yield[l,s]),i.has(l)||Text$1.isText(l)||0===l.children.length||null!=n&&!1!==n([l,s])){if(0===s.length)break;if(!o){var c=Path.next(s);if(Node$1.has(e,c)){s=c,l=Node$1.get(e,s);continue}}if(o&&0!==s[s.length-1])s=Path.previous(s),l=Node$1.get(e,s);else s=Path.parent(s),l=Node$1.get(e,s),i.add(l)}else{i.add(l);var d=o?l.children.length-1:0;Path.isAncestor(s,r)&&(d=r[s.length]),s=s.concat(d),l=Node$1.get(e,s)}}()},parent(e,t){var n=Path.parent(t),o=Node$1.get(e,n);if(Text$1.isText(o))throw new Error("Cannot get the parent of path [".concat(t,"] because it does not exist in the root."));return o},string:e=>Text$1.isText(e)?e.text:e.children.map(Node$1.string).join(""),texts(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,o]of Node$1.nodes(e,t))Text$1.isText(n)&&(yield[n,o])}()}};function ownKeys$c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$c(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$c(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Operation={isNodeOperation:e=>Operation.isOperation(e)&&e.type.endsWith("_node"),isOperation(e){if(!isPlainObject$1(e))return!1;switch(e.type){case"insert_node":case"remove_node":return Path.isPath(e.path)&&Node$1.isNode(e.node);case"insert_text":case"remove_text":return"number"==typeof e.offset&&"string"==typeof e.text&&Path.isPath(e.path);case"merge_node":return"number"==typeof e.position&&Path.isPath(e.path)&&isPlainObject$1(e.properties);case"move_node":return Path.isPath(e.path)&&Path.isPath(e.newPath);case"set_node":return Path.isPath(e.path)&&isPlainObject$1(e.properties)&&isPlainObject$1(e.newProperties);case"set_selection":return null===e.properties&&Range.isRange(e.newProperties)||null===e.newProperties&&Range.isRange(e.properties)||isPlainObject$1(e.properties)&&isPlainObject$1(e.newProperties);case"split_node":return Path.isPath(e.path)&&"number"==typeof e.position&&isPlainObject$1(e.properties);default:return!1}},isOperationList:e=>Array.isArray(e)&&e.every(e=>Operation.isOperation(e)),isSelectionOperation:e=>Operation.isOperation(e)&&e.type.endsWith("_selection"),isTextOperation:e=>Operation.isOperation(e)&&e.type.endsWith("_text"),inverse(e){switch(e.type){case"insert_node":return _objectSpread$c(_objectSpread$c({},e),{},{type:"remove_node"});case"insert_text":return _objectSpread$c(_objectSpread$c({},e),{},{type:"remove_text"});case"merge_node":return _objectSpread$c(_objectSpread$c({},e),{},{type:"split_node",path:Path.previous(e.path)});case"move_node":var{newPath:t,path:n}=e;if(Path.equals(t,n))return e;if(Path.isSibling(n,t))return _objectSpread$c(_objectSpread$c({},e),{},{path:t,newPath:n});var o=Path.transform(n,e),r=Path.transform(Path.next(n),e);return _objectSpread$c(_objectSpread$c({},e),{},{path:o,newPath:r});case"remove_node":return _objectSpread$c(_objectSpread$c({},e),{},{type:"insert_node"});case"remove_text":return _objectSpread$c(_objectSpread$c({},e),{},{type:"insert_text"});case"set_node":var{properties:a,newProperties:i}=e;return _objectSpread$c(_objectSpread$c({},e),{},{properties:i,newProperties:a});case"set_selection":var{properties:s,newProperties:l}=e;return _objectSpread$c(_objectSpread$c({},e),{},null==s?{properties:l,newProperties:null}:null==l?{properties:null,newProperties:s}:{properties:l,newProperties:s});case"split_node":return _objectSpread$c(_objectSpread$c({},e),{},{type:"merge_node",path:Path.next(e.path)})}}},IS_EDITOR_CACHE=new WeakMap,isEditor=e=>{var t=IS_EDITOR_CACHE.get(e);if(void 0!==t)return t;if(!isPlainObject$1(e))return!1;var n="function"==typeof e.addMark&&"function"==typeof e.apply&&"function"==typeof e.deleteFragment&&"function"==typeof e.insertBreak&&"function"==typeof e.insertSoftBreak&&"function"==typeof e.insertFragment&&"function"==typeof e.insertNode&&"function"==typeof e.insertText&&"function"==typeof e.isElementReadOnly&&"function"==typeof e.isInline&&"function"==typeof e.isSelectable&&"function"==typeof e.isVoid&&"function"==typeof e.normalizeNode&&"function"==typeof e.onChange&&"function"==typeof e.removeMark&&"function"==typeof e.getDirtyPaths&&(null===e.marks||isPlainObject$1(e.marks))&&(null===e.selection||Range.isRange(e.selection))&&Node$1.isNodeList(e.children)&&Operation.isOperationList(e.operations);return IS_EDITOR_CACHE.set(e,n),n},Editor={above:(e,t)=>e.above(t),addMark(e,t,n){e.addMark(t,n)},after:(e,t,n)=>e.after(t,n),before:(e,t,n)=>e.before(t,n),deleteBackward(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{unit:n="character"}=t;e.deleteBackward(n)},deleteForward(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{unit:n="character"}=t;e.deleteForward(n)},deleteFragment(e,t){e.deleteFragment(t)},edges:(e,t)=>e.edges(t),elementReadOnly(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.elementReadOnly(t)},end:(e,t)=>e.end(t),first:(e,t)=>e.first(t),fragment:(e,t)=>e.fragment(t),hasBlocks:(e,t)=>e.hasBlocks(t),hasInlines:(e,t)=>e.hasInlines(t),hasPath:(e,t)=>e.hasPath(t),hasTexts:(e,t)=>e.hasTexts(t),insertBreak(e){e.insertBreak()},insertFragment(e,t,n){e.insertFragment(t,n)},insertNode(e,t){e.insertNode(t)},insertSoftBreak(e){e.insertSoftBreak()},insertText(e,t){e.insertText(t)},isBlock:(e,t)=>e.isBlock(t),isEdge:(e,t,n)=>e.isEdge(t,n),isEditor:e=>isEditor(e),isElementReadOnly:(e,t)=>e.isElementReadOnly(t),isEmpty:(e,t)=>e.isEmpty(t),isEnd:(e,t,n)=>e.isEnd(t,n),isInline:(e,t)=>e.isInline(t),isNormalizing:e=>e.isNormalizing(),isSelectable:(e,t)=>e.isSelectable(t),isStart:(e,t,n)=>e.isStart(t,n),isVoid:(e,t)=>e.isVoid(t),last:(e,t)=>e.last(t),leaf:(e,t,n)=>e.leaf(t,n),levels:(e,t)=>e.levels(t),marks:e=>e.getMarks(),next:(e,t)=>e.next(t),node:(e,t,n)=>e.node(t,n),nodes:(e,t)=>e.nodes(t),normalize(e,t){e.normalize(t)},parent:(e,t,n)=>e.parent(t,n),path:(e,t,n)=>e.path(t,n),pathRef:(e,t,n)=>e.pathRef(t,n),pathRefs:e=>e.pathRefs(),point:(e,t,n)=>e.point(t,n),pointRef:(e,t,n)=>e.pointRef(t,n),pointRefs:e=>e.pointRefs(),positions:(e,t)=>e.positions(t),previous:(e,t)=>e.previous(t),range:(e,t,n)=>e.range(t,n),rangeRef:(e,t,n)=>e.rangeRef(t,n),rangeRefs:e=>e.rangeRefs(),removeMark(e,t){e.removeMark(t)},setNormalizing(e,t){e.setNormalizing(t)},start:(e,t)=>e.start(t),string:(e,t,n)=>e.string(t,n),unhangRange:(e,t,n)=>e.unhangRange(t,n),void:(e,t)=>e.void(t),withoutNormalizing(e,t){e.withoutNormalizing(t)},shouldMergeNodesRemovePrevNode:(e,t,n)=>e.shouldMergeNodesRemovePrevNode(t,n)},Span={isSpan:e=>Array.isArray(e)&&2===e.length&&e.every(Path.isPath)};function ownKeys$b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$b(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$b(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Point={compare(e,t){var n=Path.compare(e.path,t.path);return 0===n?e.offset<t.offset?-1:e.offset>t.offset?1:0:n},isAfter:(e,t)=>1===Point.compare(e,t),isBefore:(e,t)=>-1===Point.compare(e,t),equals:(e,t)=>e.offset===t.offset&&Path.equals(e.path,t.path),isPoint:e=>isPlainObject$1(e)&&"number"==typeof e.offset&&Path.isPath(e.path),transform(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return produce(e,e=>{if(null===e)return null;var{affinity:o="forward"}=n,{path:r,offset:a}=e;switch(t.type){case"insert_node":case"move_node":e.path=Path.transform(r,t,n);break;case"insert_text":Path.equals(t.path,r)&&(t.offset<a||t.offset===a&&"forward"===o)&&(e.offset+=t.text.length);break;case"merge_node":Path.equals(t.path,r)&&(e.offset+=t.position),e.path=Path.transform(r,t,n);break;case"remove_text":Path.equals(t.path,r)&&t.offset<=a&&(e.offset-=Math.min(a-t.offset,t.text.length));break;case"remove_node":if(Path.equals(t.path,r)||Path.isAncestor(t.path,r))return null;e.path=Path.transform(r,t,n);break;case"split_node":if(Path.equals(t.path,r)){if(t.position===a&&null==o)return null;(t.position<a||t.position===a&&"forward"===o)&&(e.offset-=t.position,e.path=Path.transform(r,t,_objectSpread$b(_objectSpread$b({},n),{},{affinity:"forward"})))}else e.path=Path.transform(r,t,n)}})}},_scrubber=void 0,Scrubber={setScrubber(e){_scrubber=e},stringify:e=>JSON.stringify(e,_scrubber)},_excluded$2$1=["text"],_excluded2$2=["anchor","focus"];function ownKeys$a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$a(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$a(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Text$1={equals(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{loose:o=!1}=n;function r(e){return _objectWithoutProperties$1(e,_excluded$2$1)}return isDeepEqual(o?r(e):e,o?r(t):t)},isText:e=>isPlainObject$1(e)&&"string"==typeof e.text,isTextList:e=>Array.isArray(e)&&e.every(e=>Text$1.isText(e)),isTextProps:e=>void 0!==e.text,matches(e,t){for(var n in t)if("text"!==n&&(!e.hasOwnProperty(n)||e[n]!==t[n]))return!1;return!0},decorations(e,t){var n=[_objectSpread$a({},e)];for(var o of t){var r=_objectWithoutProperties$1(o,_excluded2$2),[a,i]=Range.edges(o),s=[],l=0,c=a.offset,d=i.offset;for(var u of n){var{length:f}=u.text,p=l;if(l+=f,c<=p&&l<=d)Object.assign(u,r),s.push(u);else if(c!==d&&(c===l||d===p)||c>l||d<p||d===p&&0!==p)s.push(u);else{var _=u,m=void 0,h=void 0;if(d<l){var g=d-p;h=_objectSpread$a(_objectSpread$a({},_),{},{text:_.text.slice(g)}),_=_objectSpread$a(_objectSpread$a({},_),{},{text:_.text.slice(0,g)})}if(c>p){var b=c-p;m=_objectSpread$a(_objectSpread$a({},_),{},{text:_.text.slice(0,b)}),_=_objectSpread$a(_objectSpread$a({},_),{},{text:_.text.slice(b)})}Object.assign(_,r),m&&s.push(m),s.push(_),h&&s.push(h)}}n=s}return n}},getDefaultInsertLocation=e=>e.selection?e.selection:e.children.length>0?Editor.end(e,[]):[0],matchPath=(e,t)=>{var[n]=Editor.node(e,t);return e=>e===n},getCharacterDistance=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!t,o=t?codepointsIteratorRTL(e):e,r=CodepointType.None,a=CodepointType.None,i=0,s=null;for(var l of o){var c=l.codePointAt(0);if(!c)break;var d=getCodepointType(l,c);if([r,a]=n?[a,d]:[d,r],intersects(r,CodepointType.ZWJ)&&intersects(a,CodepointType.ExtPict)&&!endsWithEmojiZWJ(n?e.substring(0,i):e.substring(0,e.length-i)))break;if(intersects(r,CodepointType.RI)&&intersects(a,CodepointType.RI)&&!(s=null!==s?!s:!!n||endsWithOddNumberOfRIs(e.substring(0,e.length-i))))break;if(r!==CodepointType.None&&a!==CodepointType.None&&isBoundaryPair(r,a))break;i+=l.length}return i||1},SPACE=/\s/,PUNCTUATION=/[\u002B\u0021-\u0023\u0025-\u002A\u002C-\u002F\u003A\u003B\u003F\u0040\u005B-\u005D\u005F\u007B\u007D\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E3B\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/,CHAMELEON=/['\u2018\u2019]/,getWordDistance=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=0,o=!1;e.length>0;){var r=getCharacterDistance(e,t),[a,i]=splitByCharacterDistance(e,r,t);if(isWordCharacter(a,i,t))o=!0,n+=r;else{if(o)break;n+=r}e=i}return n},splitByCharacterDistance=(e,t,n)=>{if(n){var o=e.length-t;return[e.slice(o,e.length),e.slice(0,o)]}return[e.slice(0,t),e.slice(t)]},isWordCharacter=function e(t,n){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(SPACE.test(t))return!1;if(CHAMELEON.test(t)){var r=getCharacterDistance(n,o),[a,i]=splitByCharacterDistance(n,r,o);if(e(a,i,o))return!0}return!PUNCTUATION.test(t)},codepointsIteratorRTL=function*(e){for(var t=e.length-1,n=0;n<e.length;n++){var o=e.charAt(t-n);if(isLowSurrogate(o.charCodeAt(0))){var r=e.charAt(t-n-1);if(isHighSurrogate(r.charCodeAt(0))){yield r+o,n++;continue}}yield o}},isHighSurrogate=e=>e>=55296&&e<=56319,isLowSurrogate=e=>e>=56320&&e<=57343,CodepointType;!function(e){e[e.None=0]="None",e[e.Extend=1]="Extend",e[e.ZWJ=2]="ZWJ",e[e.RI=4]="RI",e[e.Prepend=8]="Prepend",e[e.SpacingMark=16]="SpacingMark",e[e.L=32]="L",e[e.V=64]="V",e[e.T=128]="T",e[e.LV=256]="LV",e[e.LVT=512]="LVT",e[e.ExtPict=1024]="ExtPict",e[e.Any=2048]="Any"}(CodepointType||(CodepointType={}));var reExtend=/^(?:[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09BE\u09C1-\u09C4\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3E\u0B3F\u0B41-\u0B44\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE\u0BC0\u0BCD\u0BD7\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC2\u0CC6\u0CCC\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D3E\u0D41-\u0D44\u0D4D\u0D57\u0D62\u0D63\u0D81\u0DCA\u0DCF\u0DD2-\u0DD4\u0DD6\u0DDF\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200C\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDEFD-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC01\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDE41\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF3E\uDF40\uDF57\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB0\uDCB3-\uDCB8\uDCBA\uDCBD\uDCBF\uDCC0\uDCC2\uDCC3\uDDAF\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD30\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4\uDF00\uDF01\uDF36-\uDF3A\uDF40\uDF42]|\uD80D[\uDC40\uDC47-\uDC55]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65\uDD67-\uDD69\uDD6E-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF])$/,rePrepend=/^(?:[\u0600-\u0605\u06DD\u070F\u0890\u0891\u08E2\u0D4E]|\uD804[\uDCBD\uDCCD\uDDC2\uDDC3]|\uD806[\uDD3F\uDD41\uDE3A\uDE84-\uDE89]|\uD807\uDD46)$/,reSpacingMark=/^(?:[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E\u094F\u0982\u0983\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0C01-\u0C03\u0C41-\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0D02\u0D03\u0D3F\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D82\u0D83\u0DD0\u0DD1\u0DD8-\u0DDE\u0DF2\u0DF3\u0E33\u0EB3\u0F3E\u0F3F\u0F7F\u1031\u103B\u103C\u1056\u1057\u1084\u1715\u1734\u17B6\u17BE-\u17C5\u17C7\u17C8\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1A19\u1A1A\u1A55\u1A57\u1A6D-\u1A72\u1B04\u1B3B\u1B3D-\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1C24-\u1C2B\u1C34\u1C35\u1CE1\u1CF7\uA823\uA824\uA827\uA880\uA881\uA8B4-\uA8C3\uA952\uA953\uA983\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9C0\uAA2F\uAA30\uAA33\uAA34\uAA4D\uAAEB\uAAEE\uAAEF\uAAF5\uABE3\uABE4\uABE6\uABE7\uABE9\uABEA\uABEC]|\uD804[\uDC00\uDC02\uDC82\uDCB0-\uDCB2\uDCB7\uDCB8\uDD2C\uDD45\uDD46\uDD82\uDDB3-\uDDB5\uDDBF\uDDC0\uDDCE\uDE2C-\uDE2E\uDE32\uDE33\uDE35\uDEE0-\uDEE2\uDF02\uDF03\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF62\uDF63]|\uD805[\uDC35-\uDC37\uDC40\uDC41\uDC45\uDCB1\uDCB2\uDCB9\uDCBB\uDCBC\uDCBE\uDCC1\uDDB0\uDDB1\uDDB8-\uDDBB\uDDBE\uDE30-\uDE32\uDE3B\uDE3C\uDE3E\uDEAC\uDEAE\uDEAF\uDEB6\uDF26]|\uD806[\uDC2C-\uDC2E\uDC38\uDD31-\uDD35\uDD37\uDD38\uDD3D\uDD40\uDD42\uDDD1-\uDDD3\uDDDC-\uDDDF\uDDE4\uDE39\uDE57\uDE58\uDE97]|\uD807[\uDC2F\uDC3E\uDCA9\uDCB1\uDCB4\uDD8A-\uDD8E\uDD93\uDD94\uDD96\uDEF5\uDEF6]|\uD81B[\uDF51-\uDF87\uDFF0\uDFF1]|\uD834[\uDD66\uDD6D])$/,reL=/^[\u1100-\u115F\uA960-\uA97C]$/,reV=/^[\u1160-\u11A7\uD7B0-\uD7C6]$/,reT=/^[\u11A8-\u11FF\uD7CB-\uD7FB]$/,reLV=/^[\uAC00\uAC1C\uAC38\uAC54\uAC70\uAC8C\uACA8\uACC4\uACE0\uACFC\uAD18\uAD34\uAD50\uAD6C\uAD88\uADA4\uADC0\uADDC\uADF8\uAE14\uAE30\uAE4C\uAE68\uAE84\uAEA0\uAEBC\uAED8\uAEF4\uAF10\uAF2C\uAF48\uAF64\uAF80\uAF9C\uAFB8\uAFD4\uAFF0\uB00C\uB028\uB044\uB060\uB07C\uB098\uB0B4\uB0D0\uB0EC\uB108\uB124\uB140\uB15C\uB178\uB194\uB1B0\uB1CC\uB1E8\uB204\uB220\uB23C\uB258\uB274\uB290\uB2AC\uB2C8\uB2E4\uB300\uB31C\uB338\uB354\uB370\uB38C\uB3A8\uB3C4\uB3E0\uB3FC\uB418\uB434\uB450\uB46C\uB488\uB4A4\uB4C0\uB4DC\uB4F8\uB514\uB530\uB54C\uB568\uB584\uB5A0\uB5BC\uB5D8\uB5F4\uB610\uB62C\uB648\uB664\uB680\uB69C\uB6B8\uB6D4\uB6F0\uB70C\uB728\uB744\uB760\uB77C\uB798\uB7B4\uB7D0\uB7EC\uB808\uB824\uB840\uB85C\uB878\uB894\uB8B0\uB8CC\uB8E8\uB904\uB920\uB93C\uB958\uB974\uB990\uB9AC\uB9C8\uB9E4\uBA00\uBA1C\uBA38\uBA54\uBA70\uBA8C\uBAA8\uBAC4\uBAE0\uBAFC\uBB18\uBB34\uBB50\uBB6C\uBB88\uBBA4\uBBC0\uBBDC\uBBF8\uBC14\uBC30\uBC4C\uBC68\uBC84\uBCA0\uBCBC\uBCD8\uBCF4\uBD10\uBD2C\uBD48\uBD64\uBD80\uBD9C\uBDB8\uBDD4\uBDF0\uBE0C\uBE28\uBE44\uBE60\uBE7C\uBE98\uBEB4\uBED0\uBEEC\uBF08\uBF24\uBF40\uBF5C\uBF78\uBF94\uBFB0\uBFCC\uBFE8\uC004\uC020\uC03C\uC058\uC074\uC090\uC0AC\uC0C8\uC0E4\uC100\uC11C\uC138\uC154\uC170\uC18C\uC1A8\uC1C4\uC1E0\uC1FC\uC218\uC234\uC250\uC26C\uC288\uC2A4\uC2C0\uC2DC\uC2F8\uC314\uC330\uC34C\uC368\uC384\uC3A0\uC3BC\uC3D8\uC3F4\uC410\uC42C\uC448\uC464\uC480\uC49C\uC4B8\uC4D4\uC4F0\uC50C\uC528\uC544\uC560\uC57C\uC598\uC5B4\uC5D0\uC5EC\uC608\uC624\uC640\uC65C\uC678\uC694\uC6B0\uC6CC\uC6E8\uC704\uC720\uC73C\uC758\uC774\uC790\uC7AC\uC7C8\uC7E4\uC800\uC81C\uC838\uC854\uC870\uC88C\uC8A8\uC8C4\uC8E0\uC8FC\uC918\uC934\uC950\uC96C\uC988\uC9A4\uC9C0\uC9DC\uC9F8\uCA14\uCA30\uCA4C\uCA68\uCA84\uCAA0\uCABC\uCAD8\uCAF4\uCB10\uCB2C\uCB48\uCB64\uCB80\uCB9C\uCBB8\uCBD4\uCBF0\uCC0C\uCC28\uCC44\uCC60\uCC7C\uCC98\uCCB4\uCCD0\uCCEC\uCD08\uCD24\uCD40\uCD5C\uCD78\uCD94\uCDB0\uCDCC\uCDE8\uCE04\uCE20\uCE3C\uCE58\uCE74\uCE90\uCEAC\uCEC8\uCEE4\uCF00\uCF1C\uCF38\uCF54\uCF70\uCF8C\uCFA8\uCFC4\uCFE0\uCFFC\uD018\uD034\uD050\uD06C\uD088\uD0A4\uD0C0\uD0DC\uD0F8\uD114\uD130\uD14C\uD168\uD184\uD1A0\uD1BC\uD1D8\uD1F4\uD210\uD22C\uD248\uD264\uD280\uD29C\uD2B8\uD2D4\uD2F0\uD30C\uD328\uD344\uD360\uD37C\uD398\uD3B4\uD3D0\uD3EC\uD408\uD424\uD440\uD45C\uD478\uD494\uD4B0\uD4CC\uD4E8\uD504\uD520\uD53C\uD558\uD574\uD590\uD5AC\uD5C8\uD5E4\uD600\uD61C\uD638\uD654\uD670\uD68C\uD6A8\uD6C4\uD6E0\uD6FC\uD718\uD734\uD750\uD76C\uD788]$/,reLVT=/^[\uAC01-\uAC1B\uAC1D-\uAC37\uAC39-\uAC53\uAC55-\uAC6F\uAC71-\uAC8B\uAC8D-\uACA7\uACA9-\uACC3\uACC5-\uACDF\uACE1-\uACFB\uACFD-\uAD17\uAD19-\uAD33\uAD35-\uAD4F\uAD51-\uAD6B\uAD6D-\uAD87\uAD89-\uADA3\uADA5-\uADBF\uADC1-\uADDB\uADDD-\uADF7\uADF9-\uAE13\uAE15-\uAE2F\uAE31-\uAE4B\uAE4D-\uAE67\uAE69-\uAE83\uAE85-\uAE9F\uAEA1-\uAEBB\uAEBD-\uAED7\uAED9-\uAEF3\uAEF5-\uAF0F\uAF11-\uAF2B\uAF2D-\uAF47\uAF49-\uAF63\uAF65-\uAF7F\uAF81-\uAF9B\uAF9D-\uAFB7\uAFB9-\uAFD3\uAFD5-\uAFEF\uAFF1-\uB00B\uB00D-\uB027\uB029-\uB043\uB045-\uB05F\uB061-\uB07B\uB07D-\uB097\uB099-\uB0B3\uB0B5-\uB0CF\uB0D1-\uB0EB\uB0ED-\uB107\uB109-\uB123\uB125-\uB13F\uB141-\uB15B\uB15D-\uB177\uB179-\uB193\uB195-\uB1AF\uB1B1-\uB1CB\uB1CD-\uB1E7\uB1E9-\uB203\uB205-\uB21F\uB221-\uB23B\uB23D-\uB257\uB259-\uB273\uB275-\uB28F\uB291-\uB2AB\uB2AD-\uB2C7\uB2C9-\uB2E3\uB2E5-\uB2FF\uB301-\uB31B\uB31D-\uB337\uB339-\uB353\uB355-\uB36F\uB371-\uB38B\uB38D-\uB3A7\uB3A9-\uB3C3\uB3C5-\uB3DF\uB3E1-\uB3FB\uB3FD-\uB417\uB419-\uB433\uB435-\uB44F\uB451-\uB46B\uB46D-\uB487\uB489-\uB4A3\uB4A5-\uB4BF\uB4C1-\uB4DB\uB4DD-\uB4F7\uB4F9-\uB513\uB515-\uB52F\uB531-\uB54B\uB54D-\uB567\uB569-\uB583\uB585-\uB59F\uB5A1-\uB5BB\uB5BD-\uB5D7\uB5D9-\uB5F3\uB5F5-\uB60F\uB611-\uB62B\uB62D-\uB647\uB649-\uB663\uB665-\uB67F\uB681-\uB69B\uB69D-\uB6B7\uB6B9-\uB6D3\uB6D5-\uB6EF\uB6F1-\uB70B\uB70D-\uB727\uB729-\uB743\uB745-\uB75F\uB761-\uB77B\uB77D-\uB797\uB799-\uB7B3\uB7B5-\uB7CF\uB7D1-\uB7EB\uB7ED-\uB807\uB809-\uB823\uB825-\uB83F\uB841-\uB85B\uB85D-\uB877\uB879-\uB893\uB895-\uB8AF\uB8B1-\uB8CB\uB8CD-\uB8E7\uB8E9-\uB903\uB905-\uB91F\uB921-\uB93B\uB93D-\uB957\uB959-\uB973\uB975-\uB98F\uB991-\uB9AB\uB9AD-\uB9C7\uB9C9-\uB9E3\uB9E5-\uB9FF\uBA01-\uBA1B\uBA1D-\uBA37\uBA39-\uBA53\uBA55-\uBA6F\uBA71-\uBA8B\uBA8D-\uBAA7\uBAA9-\uBAC3\uBAC5-\uBADF\uBAE1-\uBAFB\uBAFD-\uBB17\uBB19-\uBB33\uBB35-\uBB4F\uBB51-\uBB6B\uBB6D-\uBB87\uBB89-\uBBA3\uBBA5-\uBBBF\uBBC1-\uBBDB\uBBDD-\uBBF7\uBBF9-\uBC13\uBC15-\uBC2F\uBC31-\uBC4B\uBC4D-\uBC67\uBC69-\uBC83\uBC85-\uBC9F\uBCA1-\uBCBB\uBCBD-\uBCD7\uBCD9-\uBCF3\uBCF5-\uBD0F\uBD11-\uBD2B\uBD2D-\uBD47\uBD49-\uBD63\uBD65-\uBD7F\uBD81-\uBD9B\uBD9D-\uBDB7\uBDB9-\uBDD3\uBDD5-\uBDEF\uBDF1-\uBE0B\uBE0D-\uBE27\uBE29-\uBE43\uBE45-\uBE5F\uBE61-\uBE7B\uBE7D-\uBE97\uBE99-\uBEB3\uBEB5-\uBECF\uBED1-\uBEEB\uBEED-\uBF07\uBF09-\uBF23\uBF25-\uBF3F\uBF41-\uBF5B\uBF5D-\uBF77\uBF79-\uBF93\uBF95-\uBFAF\uBFB1-\uBFCB\uBFCD-\uBFE7\uBFE9-\uC003\uC005-\uC01F\uC021-\uC03B\uC03D-\uC057\uC059-\uC073\uC075-\uC08F\uC091-\uC0AB\uC0AD-\uC0C7\uC0C9-\uC0E3\uC0E5-\uC0FF\uC101-\uC11B\uC11D-\uC137\uC139-\uC153\uC155-\uC16F\uC171-\uC18B\uC18D-\uC1A7\uC1A9-\uC1C3\uC1C5-\uC1DF\uC1E1-\uC1FB\uC1FD-\uC217\uC219-\uC233\uC235-\uC24F\uC251-\uC26B\uC26D-\uC287\uC289-\uC2A3\uC2A5-\uC2BF\uC2C1-\uC2DB\uC2DD-\uC2F7\uC2F9-\uC313\uC315-\uC32F\uC331-\uC34B\uC34D-\uC367\uC369-\uC383\uC385-\uC39F\uC3A1-\uC3BB\uC3BD-\uC3D7\uC3D9-\uC3F3\uC3F5-\uC40F\uC411-\uC42B\uC42D-\uC447\uC449-\uC463\uC465-\uC47F\uC481-\uC49B\uC49D-\uC4B7\uC4B9-\uC4D3\uC4D5-\uC4EF\uC4F1-\uC50B\uC50D-\uC527\uC529-\uC543\uC545-\uC55F\uC561-\uC57B\uC57D-\uC597\uC599-\uC5B3\uC5B5-\uC5CF\uC5D1-\uC5EB\uC5ED-\uC607\uC609-\uC623\uC625-\uC63F\uC641-\uC65B\uC65D-\uC677\uC679-\uC693\uC695-\uC6AF\uC6B1-\uC6CB\uC6CD-\uC6E7\uC6E9-\uC703\uC705-\uC71F\uC721-\uC73B\uC73D-\uC757\uC759-\uC773\uC775-\uC78F\uC791-\uC7AB\uC7AD-\uC7C7\uC7C9-\uC7E3\uC7E5-\uC7FF\uC801-\uC81B\uC81D-\uC837\uC839-\uC853\uC855-\uC86F\uC871-\uC88B\uC88D-\uC8A7\uC8A9-\uC8C3\uC8C5-\uC8DF\uC8E1-\uC8FB\uC8FD-\uC917\uC919-\uC933\uC935-\uC94F\uC951-\uC96B\uC96D-\uC987\uC989-\uC9A3\uC9A5-\uC9BF\uC9C1-\uC9DB\uC9DD-\uC9F7\uC9F9-\uCA13\uCA15-\uCA2F\uCA31-\uCA4B\uCA4D-\uCA67\uCA69-\uCA83\uCA85-\uCA9F\uCAA1-\uCABB\uCABD-\uCAD7\uCAD9-\uCAF3\uCAF5-\uCB0F\uCB11-\uCB2B\uCB2D-\uCB47\uCB49-\uCB63\uCB65-\uCB7F\uCB81-\uCB9B\uCB9D-\uCBB7\uCBB9-\uCBD3\uCBD5-\uCBEF\uCBF1-\uCC0B\uCC0D-\uCC27\uCC29-\uCC43\uCC45-\uCC5F\uCC61-\uCC7B\uCC7D-\uCC97\uCC99-\uCCB3\uCCB5-\uCCCF\uCCD1-\uCCEB\uCCED-\uCD07\uCD09-\uCD23\uCD25-\uCD3F\uCD41-\uCD5B\uCD5D-\uCD77\uCD79-\uCD93\uCD95-\uCDAF\uCDB1-\uCDCB\uCDCD-\uCDE7\uCDE9-\uCE03\uCE05-\uCE1F\uCE21-\uCE3B\uCE3D-\uCE57\uCE59-\uCE73\uCE75-\uCE8F\uCE91-\uCEAB\uCEAD-\uCEC7\uCEC9-\uCEE3\uCEE5-\uCEFF\uCF01-\uCF1B\uCF1D-\uCF37\uCF39-\uCF53\uCF55-\uCF6F\uCF71-\uCF8B\uCF8D-\uCFA7\uCFA9-\uCFC3\uCFC5-\uCFDF\uCFE1-\uCFFB\uCFFD-\uD017\uD019-\uD033\uD035-\uD04F\uD051-\uD06B\uD06D-\uD087\uD089-\uD0A3\uD0A5-\uD0BF\uD0C1-\uD0DB\uD0DD-\uD0F7\uD0F9-\uD113\uD115-\uD12F\uD131-\uD14B\uD14D-\uD167\uD169-\uD183\uD185-\uD19F\uD1A1-\uD1BB\uD1BD-\uD1D7\uD1D9-\uD1F3\uD1F5-\uD20F\uD211-\uD22B\uD22D-\uD247\uD249-\uD263\uD265-\uD27F\uD281-\uD29B\uD29D-\uD2B7\uD2B9-\uD2D3\uD2D5-\uD2EF\uD2F1-\uD30B\uD30D-\uD327\uD329-\uD343\uD345-\uD35F\uD361-\uD37B\uD37D-\uD397\uD399-\uD3B3\uD3B5-\uD3CF\uD3D1-\uD3EB\uD3ED-\uD407\uD409-\uD423\uD425-\uD43F\uD441-\uD45B\uD45D-\uD477\uD479-\uD493\uD495-\uD4AF\uD4B1-\uD4CB\uD4CD-\uD4E7\uD4E9-\uD503\uD505-\uD51F\uD521-\uD53B\uD53D-\uD557\uD559-\uD573\uD575-\uD58F\uD591-\uD5AB\uD5AD-\uD5C7\uD5C9-\uD5E3\uD5E5-\uD5FF\uD601-\uD61B\uD61D-\uD637\uD639-\uD653\uD655-\uD66F\uD671-\uD68B\uD68D-\uD6A7\uD6A9-\uD6C3\uD6C5-\uD6DF\uD6E1-\uD6FB\uD6FD-\uD717\uD719-\uD733\uD735-\uD74F\uD751-\uD76B\uD76D-\uD787\uD789-\uD7A3]$/,reExtPict=/^(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2605\u2607-\u2612\u2614-\u2685\u2690-\u2705\u2708-\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763-\u2767\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDAD-\uDDE5\uDE01-\uDE0F\uDE1A\uDE2F\uDE32-\uDE3A\uDE3C-\uDE3F\uDE49-\uDFFA]|\uD83D[\uDC00-\uDD3D\uDD46-\uDE4F\uDE80-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDEFF]|\uD83F[\uDC00-\uDFFD])$/,getCodepointType=(e,t)=>{var n=CodepointType.Any;return-1!==e.search(reExtend)&&(n|=CodepointType.Extend),8205===t&&(n|=CodepointType.ZWJ),t>=127462&&t<=127487&&(n|=CodepointType.RI),-1!==e.search(rePrepend)&&(n|=CodepointType.Prepend),-1!==e.search(reSpacingMark)&&(n|=CodepointType.SpacingMark),-1!==e.search(reL)&&(n|=CodepointType.L),-1!==e.search(reV)&&(n|=CodepointType.V),-1!==e.search(reT)&&(n|=CodepointType.T),-1!==e.search(reLV)&&(n|=CodepointType.LV),-1!==e.search(reLVT)&&(n|=CodepointType.LVT),-1!==e.search(reExtPict)&&(n|=CodepointType.ExtPict),n};function intersects(e,t){return 0!==(e&t)}var NonBoundaryPairs=[[CodepointType.L,CodepointType.L|CodepointType.V|CodepointType.LV|CodepointType.LVT],[CodepointType.LV|CodepointType.V,CodepointType.V|CodepointType.T],[CodepointType.LVT|CodepointType.T,CodepointType.T],[CodepointType.Any,CodepointType.Extend|CodepointType.ZWJ],[CodepointType.Any,CodepointType.SpacingMark],[CodepointType.Prepend,CodepointType.Any],[CodepointType.ZWJ,CodepointType.ExtPict],[CodepointType.RI,CodepointType.RI]];function isBoundaryPair(e,t){return-1===NonBoundaryPairs.findIndex(n=>intersects(e,n[0])&&intersects(t,n[1]))}var endingEmojiZWJ=/(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2605\u2607-\u2612\u2614-\u2685\u2690-\u2705\u2708-\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763-\u2767\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDAD-\uDDE5\uDE01-\uDE0F\uDE1A\uDE2F\uDE32-\uDE3A\uDE3C-\uDE3F\uDE49-\uDFFA]|\uD83D[\uDC00-\uDD3D\uDD46-\uDE4F\uDE80-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDEFF]|\uD83F[\uDC00-\uDFFD])(?:[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09BE\u09C1-\u09C4\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3E\u0B3F\u0B41-\u0B44\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE\u0BC0\u0BCD\u0BD7\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC2\u0CC6\u0CCC\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D3E\u0D41-\u0D44\u0D4D\u0D57\u0D62\u0D63\u0D81\u0DCA\u0DCF\u0DD2-\u0DD4\u0DD6\u0DDF\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200C\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDEFD-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC01\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDE41\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF3E\uDF40\uDF57\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB0\uDCB3-\uDCB8\uDCBA\uDCBD\uDCBF\uDCC0\uDCC2\uDCC3\uDDAF\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD30\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4\uDF00\uDF01\uDF36-\uDF3A\uDF40\uDF42]|\uD80D[\uDC40\uDC47-\uDC55]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65\uDD67-\uDD69\uDD6E-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF])*\u200D$/,endsWithEmojiZWJ=e=>-1!==e.search(endingEmojiZWJ),endingRIs=/(?:\uD83C[\uDDE6-\uDDFF])+$/g,endsWithOddNumberOfRIs=e=>{var t=e.match(endingRIs);return null!==t&&t[0].length/2%2==1},TextTransforms={delete(e,t){e.delete(t)},insertFragment(e,t,n){e.insertFragment(t,n)},insertText(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,()=>{var{voids:o=!1}=n,{at:r=getDefaultInsertLocation(e)}=n;if(Path.isPath(r)&&(r=Editor.range(e,r)),Range.isRange(r))if(Range.isCollapsed(r))r=r.anchor;else{var a=Range.end(r);if(!o&&Editor.void(e,{at:a}))return;var i=Range.start(r),s=Editor.pointRef(e,i),l=Editor.pointRef(e,a);Transforms.delete(e,{at:r,voids:o});var c=s.unref(),d=l.unref();r=c||d,Transforms.setSelection(e,{anchor:r,focus:r})}if(!(!o&&Editor.void(e,{at:r})||Editor.elementReadOnly(e,{at:r}))){var{path:u,offset:f}=r;t.length>0&&e.apply({type:"insert_text",path:u,offset:f,text:t})}})}};function ownKeys$9$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$9$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$9$1(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$9$1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Transforms=_objectSpread$9$1(_objectSpread$9$1(_objectSpread$9$1(_objectSpread$9$1({},GeneralTransforms),NodeTransforms),SelectionTransforms),TextTransforms),BATCHING_DIRTY_PATHS=new WeakMap,isBatchingDirtyPaths=e=>BATCHING_DIRTY_PATHS.get(e)||!1,batchDirtyPaths=(e,t,n)=>{var o=BATCHING_DIRTY_PATHS.get(e)||!1;BATCHING_DIRTY_PATHS.set(e,!0);try{t(),n()}finally{BATCHING_DIRTY_PATHS.set(e,o)}};function updateDirtyPaths(e,t,n){var o,r,a=DIRTY_PATHS.get(e)||[],i=DIRTY_PATH_KEYS.get(e)||new Set,s=e=>{if(e){var t=e.join(",");r.has(t)||(r.add(t),o.push(e))}};if(n)for(var l of(o=[],r=new Set,a)){s(n(l))}else o=a,r=i;for(var c of t)s(c);DIRTY_PATHS.set(e,o),DIRTY_PATH_KEYS.set(e,r)}var apply=(e,t)=>{for(var n of Editor.pathRefs(e))PathRef.transform(n,t);for(var o of Editor.pointRefs(e))PointRef.transform(o,t);for(var r of Editor.rangeRefs(e))RangeRef.transform(r,t);if(!isBatchingDirtyPaths(e)){var a=Path.operationCanTransformPath(t)?e=>Path.transform(e,t):void 0;updateDirtyPaths(e,e.getDirtyPaths(t),a)}Transforms.transform(e,t),e.operations.push(t),Editor.normalize(e,{operation:t}),"set_selection"===t.type&&(e.marks=null),FLUSHING.get(e)||(FLUSHING.set(e,!0),Promise.resolve().then(()=>{FLUSHING.set(e,!1),e.onChange({operation:t}),e.operations=[]}))},getDirtyPaths=(e,t)=>{switch(t.type){case"insert_text":case"remove_text":case"set_node":var{path:n}=t;return Path.levels(n);case"insert_node":var{node:o,path:r}=t,a=Path.levels(r),i=Text$1.isText(o)?[]:Array.from(Node$1.nodes(o),e=>{var[,t]=e;return r.concat(t)});return[...a,...i];case"merge_node":var{path:s}=t;return[...Path.ancestors(s),Path.previous(s)];case"move_node":var{path:l,newPath:c}=t;if(Path.equals(l,c))return[];var d=[],u=[];for(var f of Path.ancestors(l)){var p=Path.transform(f,t);d.push(p)}for(var _ of Path.ancestors(c)){var m=Path.transform(_,t);u.push(m)}var h=u[u.length-1],g=c[c.length-1],b=h.concat(g);return[...d,...u,b];case"remove_node":var{path:v}=t;return[...Path.ancestors(v)];case"split_node":var{path:y}=t;return[...Path.levels(y),Path.next(y)];default:return[]}},getFragment=e=>{var{selection:t}=e;return t?Node$1.fragment(e,t):[]},normalizeNode=(e,t)=>{var[n,o]=t;if(!Text$1.isText(n))if(Element$2.isElement(n)&&0===n.children.length){Transforms.insertNodes(e,{text:""},{at:o.concat(0),voids:!0})}else for(var r=!Editor.isEditor(n)&&(Element$2.isElement(n)&&(e.isInline(n)||0===n.children.length||Text$1.isText(n.children[0])||e.isInline(n.children[0]))),a=0,i=0;i<n.children.length;i++,a++){var s=Node$1.get(e,o);if(!Text$1.isText(s)){var l=s.children[a],c=s.children[a-1],d=i===n.children.length-1;if((Text$1.isText(l)||Element$2.isElement(l)&&e.isInline(l))!==r)Transforms.removeNodes(e,{at:o.concat(a),voids:!0}),a--;else if(Element$2.isElement(l)){if(e.isInline(l))if(null!=c&&Text$1.isText(c)){if(d){Transforms.insertNodes(e,{text:""},{at:o.concat(a+1),voids:!0}),a++}}else{Transforms.insertNodes(e,{text:""},{at:o.concat(a),voids:!0}),a++}}else{if(!Text$1.isText(l)&&!("children"in l))l.children=[];null!=c&&Text$1.isText(c)&&(Text$1.equals(l,c,{loose:!0})?(Transforms.mergeNodes(e,{at:o.concat(a),voids:!0}),a--):""===c.text?(Transforms.removeNodes(e,{at:o.concat(a-1),voids:!0}),a--):""===l.text&&(Transforms.removeNodes(e,{at:o.concat(a),voids:!0}),a--))}}}},shouldNormalize=(e,t)=>{var{iteration:n,initialDirtyPathsLength:o}=t,r=42*o;if(n>r)throw new Error("Could not completely normalize the editor after ".concat(r," iterations! This is usually due to incorrect normalization logic that leaves a node in an invalid state."));return!0},above=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{voids:n=!1,mode:o="lowest",at:r=e.selection,match:a}=t;if(r){var i=Editor.path(e,r),s="lowest"===o;for(var[l,c]of Editor.levels(e,{at:i,voids:n,match:a,reverse:s}))if(!Text$1.isText(l))if(Range.isRange(r)){if(Path.isAncestor(c,r.anchor.path)&&Path.isAncestor(c,r.focus.path))return[l,c]}else if(!Path.equals(i,c))return[l,c]}};function ownKeys$8$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$8$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$8$1(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$8$1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var addMark=(e,t,n)=>{var{selection:o}=e;if(o){var r=(t,n)=>{if(!Text$1.isText(t))return!1;var[o,r]=Editor.parent(e,n);return!e.isVoid(o)||e.markableVoid(o)},a=Range.isExpanded(o),i=!1;if(!a){var[s,l]=Editor.node(e,o);if(s&&r(s,l)){var[c]=Editor.parent(e,l);i=c&&e.markableVoid(c)}}if(a||i)Transforms.setNodes(e,{[t]:n},{match:r,split:!0,voids:!0});else{var d=_objectSpread$8$1(_objectSpread$8$1({},Editor.marks(e)||{}),{},{[t]:n});e.marks=d,FLUSHING.get(e)||e.onChange()}}};function ownKeys$7$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$7$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$7$1(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$7$1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var after=function(e,t){var n,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={anchor:Editor.point(e,t,{edge:"end"}),focus:Editor.end(e,[])},{distance:a=1}=o,i=0;for(var s of Editor.positions(e,_objectSpread$7$1(_objectSpread$7$1({},o),{},{at:r}))){if(i>a)break;0!==i&&(n=s),i++}return n};function ownKeys$6$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$6$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$6$2(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$6$2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var before=function(e,t){var n,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={anchor:Editor.start(e,[]),focus:Editor.point(e,t,{edge:"start"})},{distance:a=1}=o,i=0;for(var s of Editor.positions(e,_objectSpread$6$2(_objectSpread$6$2({},o),{},{at:r,reverse:!0}))){if(i>a)break;0!==i&&(n=s),i++}return n},deleteBackward=(e,t)=>{var{selection:n}=e;n&&Range.isCollapsed(n)&&Transforms.delete(e,{unit:t,reverse:!0})},deleteForward=(e,t)=>{var{selection:n}=e;n&&Range.isCollapsed(n)&&Transforms.delete(e,{unit:t})},deleteFragment=function(e){var{direction:t="forward"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{selection:n}=e;n&&Range.isExpanded(n)&&Transforms.delete(e,{reverse:"backward"===t})},edges=(e,t)=>[Editor.start(e,t),Editor.end(e,t)];function ownKeys$5$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$5$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5$2(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$5$2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var elementReadOnly=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Editor.above(e,_objectSpread$5$2(_objectSpread$5$2({},t),{},{match:t=>Element$2.isElement(t)&&Editor.isElementReadOnly(e,t)}))},end=(e,t)=>Editor.point(e,t,{edge:"end"}),first=(e,t)=>{var n=Editor.path(e,t,{edge:"start"});return Editor.node(e,n)},fragment=(e,t)=>{var n=Editor.range(e,t);return Node$1.fragment(e,n)};function ownKeys$4$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$4$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$4$2(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$4$2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var getVoid=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Editor.above(e,_objectSpread$4$2(_objectSpread$4$2({},t),{},{match:t=>Element$2.isElement(t)&&Editor.isVoid(e,t)}))},hasBlocks=(e,t)=>t.children.some(t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),hasInlines=(e,t)=>t.children.some(t=>Text$1.isText(t)||Editor.isInline(e,t)),hasPath=(e,t)=>Node$1.has(e,t),hasTexts=(e,t)=>t.children.every(e=>Text$1.isText(e)),insertBreak=e=>{Transforms.splitNodes(e,{always:!0})},insertNode=(e,t,n)=>{Transforms.insertNodes(e,t,n)},insertSoftBreak=e=>{Transforms.splitNodes(e,{always:!0})};function ownKeys$3$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$3$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3$2(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3$2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var insertText=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{selection:o,marks:r}=e;if(o){if(r){var a=_objectSpread$3$2({text:t},r);Transforms.insertNodes(e,a,{at:n.at,voids:n.voids})}else Transforms.insertText(e,t,n);e.marks=null}},isBlock=(e,t)=>!e.isInline(t),isEdge=(e,t,n)=>Editor.isStart(e,t,n)||Editor.isEnd(e,t,n),isEmpty$1=(e,t)=>{var{children:n}=t,[o]=n;return 0===n.length||1===n.length&&Text$1.isText(o)&&""===o.text&&!e.isVoid(t)},isEnd=(e,t,n)=>{var o=Editor.end(e,n);return Point.equals(t,o)},isNormalizing=e=>{var t=NORMALIZING.get(e);return void 0===t||t},isStart=(e,t,n)=>{if(0!==t.offset)return!1;var o=Editor.start(e,n);return Point.equals(t,o)},last=(e,t)=>{var n=Editor.path(e,t,{edge:"end"});return Editor.node(e,n)},leaf=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=Editor.path(e,t,n);return[Node$1.leaf(e,o),o]};function levels(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,reverse:o=!1,voids:r=!1}=t,{match:a}=t;if(null==a&&(a=()=>!0),n){var i=[],s=Editor.path(e,n);for(var[l,c]of Node$1.levels(e,s))if(a(l,c)&&(i.push([l,c]),!r&&Element$2.isElement(l)&&Editor.isVoid(e,l)))break;o&&i.reverse(),yield*i}}()}var _excluded$1$1=["text"],_excluded2$1$1=["text"],marks=function(e){var{marks:t,selection:n}=e;if(!n)return null;var{anchor:o,focus:r}=n;if(t)return t;if(Range.isExpanded(n)){if(Range.isBackward(n)&&([r,o]=[o,r]),Editor.isEnd(e,o,o.path)){var a=Editor.after(e,o);a&&(o=a)}var[i]=Editor.nodes(e,{match:Text$1.isText,at:{anchor:o,focus:r}});if(i){var[s]=i;return _objectWithoutProperties$1(s,_excluded$1$1)}return{}}var{path:l}=o,[c]=Editor.leaf(e,l);if(0===o.offset){var d=Editor.previous(e,{at:l,match:Text$1.isText}),u=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isVoid(e,t)&&e.markableVoid(t)});if(!u){var f=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t)});if(d&&f){var[p,_]=d,[,m]=f;Path.isAncestor(m,_)&&(c=p)}}}return _objectWithoutProperties$1(c,_excluded2$1$1)},next=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{mode:n="lowest",voids:o=!1}=t,{match:r,at:a=e.selection}=t;if(a){var i=Editor.after(e,a,{voids:o});if(i){var[,s]=Editor.last(e,[]),l=[i.path,s];if(Path.isPath(a)&&0===a.length)throw new Error("Cannot get the next node from the root node!");if(null==r)if(Path.isPath(a)){var[c]=Editor.parent(e,a);r=e=>c.children.includes(e)}else r=()=>!0;var[d]=Editor.nodes(e,{at:l,match:r,mode:n,voids:o});return d}}},node=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=Editor.path(e,t,n),r=Node$1.get(e,o);return[r,o]};function nodes(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,mode:o="all",universal:r=!1,reverse:a=!1,voids:i=!1,ignoreNonSelectable:s=!1}=t,{match:l}=t;if(l||(l=()=>!0),n){var c,d;if(Span.isSpan(n))c=n[0],d=n[1];else{var u=Editor.path(e,n,{edge:"start"}),f=Editor.path(e,n,{edge:"end"});c=a?f:u,d=a?u:f}var p,_=Node$1.nodes(e,{reverse:a,from:c,to:d,pass:t=>{var[n]=t;return!!Element$2.isElement(n)&&(!(i||!Editor.isVoid(e,n)&&!Editor.isElementReadOnly(e,n))||!(!s||Editor.isSelectable(e,n)))}}),m=[];for(var[h,g]of _)if(!s||!Element$2.isElement(h)||Editor.isSelectable(e,h)){var b=p&&0===Path.compare(g,p[1]);if("highest"!==o||!b)if(l(h,g))if("lowest"===o&&b)p=[h,g];else{var v="lowest"===o?p:[h,g];v&&(r?m.push(v):yield v),p=[h,g]}else if(r&&!b&&Text$1.isText(h))return}"lowest"===o&&p&&(r?m.push(p):yield p),r&&(yield*m)}}()}var normalize=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{force:n=!1,operation:o}=t,r=e=>DIRTY_PATHS.get(e)||[],a=e=>{var t=r(e).pop(),n=t.join(",");return(e=>DIRTY_PATH_KEYS.get(e)||new Set)(e).delete(n),t};if(Editor.isNormalizing(e)){if(n){var i=Array.from(Node$1.nodes(e),e=>{var[,t]=e;return t}),s=new Set(i.map(e=>e.join(",")));DIRTY_PATHS.set(e,i),DIRTY_PATH_KEYS.set(e,s)}0!==r(e).length&&Editor.withoutNormalizing(e,()=>{for(var t of r(e))if(Node$1.has(e,t)){var n=Editor.node(e,t),[i,s]=n;Element$2.isElement(i)&&0===i.children.length&&e.normalizeNode(n,{operation:o})}for(var l=r(e),c=l.length,d=0;0!==l.length;){if(!e.shouldNormalize({dirtyPaths:l,iteration:d,initialDirtyPathsLength:c,operation:o}))return;var u=a(e);if(Node$1.has(e,u)){var f=Editor.node(e,u);e.normalizeNode(f,{operation:o})}d++,l=r(e)}})}},parent=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=Editor.path(e,t,n),r=Path.parent(o);return Editor.node(e,r)},pathRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:o="forward"}=n,r={current:t,affinity:o,unref(){var{current:t}=r;return Editor.pathRefs(e).delete(r),r.current=null,t}};return Editor.pathRefs(e).add(r),r},pathRefs=e=>{var t=PATH_REFS.get(e);return t||(t=new Set,PATH_REFS.set(e,t)),t},path=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{depth:o,edge:r}=n;if(Path.isPath(t))if("start"===r){var[,a]=Node$1.first(e,t);t=a}else if("end"===r){var[,i]=Node$1.last(e,t);t=i}return Range.isRange(t)&&(t="start"===r?Range.start(t):"end"===r?Range.end(t):Path.common(t.anchor.path,t.focus.path)),Point.isPoint(t)&&(t=t.path),null!=o&&(t=t.slice(0,o)),t},pointRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:o="forward"}=n,r={current:t,affinity:o,unref(){var{current:t}=r;return Editor.pointRefs(e).delete(r),r.current=null,t}};return Editor.pointRefs(e).add(r),r},pointRefs=e=>{var t=POINT_REFS.get(e);return t||(t=new Set,POINT_REFS.set(e,t)),t},point=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{edge:o="start"}=n;if(Path.isPath(t)){var r;if("end"===o){var[,a]=Node$1.last(e,t);r=a}else{var[,i]=Node$1.first(e,t);r=i}var s=Node$1.get(e,r);if(!Text$1.isText(s))throw new Error("Cannot get the ".concat(o," point in the node at path [").concat(t,"] because it has no ").concat(o," text node."));return{path:r,offset:"end"===o?s.text.length:0}}if(Range.isRange(t)){var[l,c]=Range.edges(t);return"start"===o?l:c}return t};function positions(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,unit:o="offset",reverse:r=!1,voids:a=!1,ignoreNonSelectable:i=!1}=t;if(n){var s=Editor.range(e,n),[l,c]=Range.edges(s),d=r?c:l,u=!1,f="",p=0,_=0,m=0;for(var[h,g]of Editor.nodes(e,{at:n,reverse:r,voids:a,ignoreNonSelectable:i})){if(Element$2.isElement(h)){if(!a&&(e.isVoid(h)||e.isElementReadOnly(h))){yield Editor.start(e,g);continue}if(e.isInline(h))continue;if(Editor.hasInlines(e,h)){var b=Path.isAncestor(g,c.path)?c:Editor.end(e,g),v=Path.isAncestor(g,l.path)?l:Editor.start(e,g);f=Editor.string(e,{anchor:v,focus:b},{voids:a}),u=!0}}if(Text$1.isText(h)){var y=Path.equals(g,d.path);for(y?(_=r?d.offset:h.text.length-d.offset,m=d.offset):(_=h.text.length,m=r?_:0),(y||u||"offset"===o)&&(yield{path:g,offset:m},u=!1);;){if(0===p){if(""===f)break;p=E(f,o,r),f=splitByCharacterDistance(f,p,r)[1]}if(m=r?m-p:m+p,(_-=p)<0){p=-_;break}p=0,yield{path:g,offset:m}}}}}function E(e,t,n){return"character"===t?getCharacterDistance(e,n):"word"===t?getWordDistance(e,n):"line"===t||"block"===t?e.length:1}}()}var previous=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{mode:n="lowest",voids:o=!1}=t,{match:r,at:a=e.selection}=t;if(a){var i=Editor.before(e,a,{voids:o});if(i){var[,s]=Editor.first(e,[]),l=[i.path,s];if(Path.isPath(a)&&0===a.length)throw new Error("Cannot get the previous node from the root node!");if(null==r)if(Path.isPath(a)){var[c]=Editor.parent(e,a);r=e=>c.children.includes(e)}else r=()=>!0;var[d]=Editor.nodes(e,{reverse:!0,at:l,match:r,mode:n,voids:o});return d}}},rangeRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:o="forward"}=n,r={current:t,affinity:o,unref(){var{current:t}=r;return Editor.rangeRefs(e).delete(r),r.current=null,t}};return Editor.rangeRefs(e).add(r),r},rangeRefs=e=>{var t=RANGE_REFS.get(e);return t||(t=new Set,RANGE_REFS.set(e,t)),t},range=(e,t,n)=>Range.isRange(t)&&!n?t:{anchor:Editor.start(e,t),focus:Editor.end(e,n||t)};function ownKeys$2$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$2$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2$2(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2$2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var removeMark=(e,t)=>{var{selection:n}=e;if(n){var o=(t,n)=>{if(!Text$1.isText(t))return!1;var[o,r]=Editor.parent(e,n);return!e.isVoid(o)||e.markableVoid(o)},r=Range.isExpanded(n),a=!1;if(!r){var[i,s]=Editor.node(e,n);if(i&&o(i,s)){var[l]=Editor.parent(e,s);a=l&&e.markableVoid(l)}}if(r||a)Transforms.unsetNodes(e,t,{match:o,split:!0,voids:!0});else{var c=_objectSpread$2$2({},Editor.marks(e)||{});delete c[t],e.marks=c,FLUSHING.get(e)||e.onChange()}}},setNormalizing=(e,t)=>{NORMALIZING.set(e,t)},start=(e,t)=>Editor.point(e,t,{edge:"start"}),string=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{voids:o=!1}=n,r=Editor.range(e,t),[a,i]=Range.edges(r),s="";for(var[l,c]of Editor.nodes(e,{at:r,match:Text$1.isText,voids:o})){var d=l.text;Path.equals(c,i.path)&&(d=d.slice(0,i.offset)),Path.equals(c,a.path)&&(d=d.slice(a.offset)),s+=d}return s},unhangRange=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{voids:o=!1}=n,[r,a]=Range.edges(t);if(0!==r.offset||0!==a.offset||Range.isCollapsed(t)||Path.hasPrevious(a.path))return t;var i=Editor.above(e,{at:a,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),voids:o}),s=i?i[1]:[],l={anchor:Editor.start(e,r),focus:a},c=!0;for(var[d,u]of Editor.nodes(e,{at:l,match:Text$1.isText,reverse:!0,voids:o}))if(c)c=!1;else if(""!==d.text||Path.isBefore(u,s)){a={path:u,offset:d.text.length};break}return{anchor:r,focus:a}},withoutNormalizing=(e,t)=>{var n=Editor.isNormalizing(e);Editor.setNormalizing(e,!1);try{t()}finally{Editor.setNormalizing(e,n)}Editor.normalize(e)},shouldMergeNodesRemovePrevNode=(e,t,n)=>{var[o,r]=t;return Element$2.isElement(o)&&Editor.isEmpty(e,o)||Text$1.isText(o)&&""===o.text&&0!==r[r.length-1]},deleteText=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,()=>{var n,o,{reverse:r=!1,unit:a="character",distance:i=1,voids:s=!1}=t,{at:l=e.selection,hanging:c=!1}=t;if(l){var d=!1;if(Range.isRange(l)&&Range.isCollapsed(l)&&(d=!0,l=l.anchor),Point.isPoint(l)){var u=Editor.void(e,{at:l,mode:"highest"});if(!s&&u){var[,f]=u;l=f}else{var p={unit:a,distance:i};l={anchor:l,focus:r?Editor.before(e,l,p)||Editor.start(e,[]):Editor.after(e,l,p)||Editor.end(e,[])},c=!0}}if(Path.isPath(l))Transforms.removeNodes(e,{at:l,voids:s});else if(!Range.isCollapsed(l)){if(!c){var[,_]=Range.edges(l),m=Editor.end(e,[]);Point.equals(_,m)||(l=Editor.unhangRange(e,l,{voids:s}))}var[h,g]=Range.edges(l),b=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:h,voids:s}),v=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:g,voids:s}),y=b&&v&&!Path.equals(b[1],v[1]),E=Path.equals(h.path,g.path),w=s?null:null!==(n=Editor.void(e,{at:h,mode:"highest"}))&&void 0!==n?n:Editor.elementReadOnly(e,{at:h,mode:"highest"}),C=s?null:null!==(o=Editor.void(e,{at:g,mode:"highest"}))&&void 0!==o?o:Editor.elementReadOnly(e,{at:g,mode:"highest"});if(w){var x=Editor.before(e,h);x&&b&&Path.isAncestor(b[1],x.path)&&(h=x)}if(C){var R=Editor.after(e,g);R&&v&&Path.isAncestor(v[1],R.path)&&(g=R)}var S,D=[];for(var T of Editor.nodes(e,{at:l,voids:s})){var[A,O]=T;S&&0===Path.compare(O,S)||(!s&&Element$2.isElement(A)&&(Editor.isVoid(e,A)||Editor.isElementReadOnly(e,A))||!Path.isCommon(O,h.path)&&!Path.isCommon(O,g.path))&&(D.push(T),S=O)}var I=Array.from(D,t=>{var[,n]=t;return Editor.pathRef(e,n)}),k=Editor.pointRef(e,h),N=Editor.pointRef(e,g),j="";if(!E&&!w){var $=k.current,[F]=Editor.leaf(e,$),{path:P}=$,{offset:M}=h,B=F.text.slice(M);B.length>0&&(e.apply({type:"remove_text",path:P,offset:M,text:B}),j=B)}if(I.reverse().map(e=>e.unref()).filter(e=>null!==e).forEach(t=>Transforms.removeNodes(e,{at:t,voids:s})),!C){var L=N.current,[U]=Editor.leaf(e,L),{path:V}=L,H=E?h.offset:0,z=U.text.slice(H,g.offset);z.length>0&&(e.apply({type:"remove_text",path:V,offset:H,text:z}),j=z)}!E&&y&&N.current&&k.current&&Transforms.mergeNodes(e,{at:N.current,hanging:!0,voids:s}),d&&r&&"character"===a&&j.length>1&&j.match(/[\u0E00-\u0E7F]+/)&&Transforms.insertText(e,j.slice(0,j.length-i));var q=k.unref(),K=N.unref(),W=r?q||K:K||q;null==t.at&&W&&Transforms.select(e,W)}}})},insertFragment=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,()=>{var{hanging:o=!1,voids:r=!1}=n,{at:a=getDefaultInsertLocation(e),batchDirty:i=!0}=n;if(t.length){if(Range.isRange(a))if(o||(a=Editor.unhangRange(e,a,{voids:r})),Range.isCollapsed(a))a=a.anchor;else{var[,s]=Range.edges(a);if(!r&&Editor.void(e,{at:s}))return;var l=Editor.pointRef(e,s);Transforms.delete(e,{at:a}),a=l.unref()}else Path.isPath(a)&&(a=Editor.start(e,a));if(r||!Editor.void(e,{at:a})){var c=Editor.above(e,{at:a,match:t=>Element$2.isElement(t)&&Editor.isInline(e,t),mode:"highest",voids:r});if(c){var[,d]=c;if(Editor.isEnd(e,a,d))a=Editor.after(e,d);else if(Editor.isStart(e,a,d)){a=Editor.before(e,d)}}var u=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:a,voids:r}),[,f]=u,p=Editor.isStart(e,a,f),_=Editor.isEnd(e,a,f),m=p&&_,h=!p||p&&_,g=!_,[,b]=Node$1.first({children:t},[]),[,v]=Node$1.last({children:t},[]),y=[],E=t=>{var[n,o]=t;return!(0===o.length)&&(!!m||!(h&&Path.isAncestor(o,b)&&Element$2.isElement(n)&&!e.isVoid(n)&&!e.isInline(n))&&!(g&&Path.isAncestor(o,v)&&Element$2.isElement(n)&&!e.isVoid(n)&&!e.isInline(n)))};for(var w of Node$1.nodes({children:t},{pass:E}))E(w)&&y.push(w);var C=[],x=[],R=[],S=!0,D=!1;for(var[T]of y)Element$2.isElement(T)&&!e.isInline(T)?(S=!1,D=!0,x.push(T)):S?C.push(T):R.push(T);var[A]=Editor.nodes(e,{at:a,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:r}),[,O]=A,I=Editor.isStart(e,a,O),k=Editor.isEnd(e,a,O),N=Editor.pathRef(e,_&&!R.length?Path.next(f):f),j=Editor.pathRef(e,k?Path.next(O):O);Transforms.splitNodes(e,{at:a,match:t=>D?Element$2.isElement(t)&&Editor.isBlock(e,t):Text$1.isText(t)||Editor.isInline(e,t),mode:D?"lowest":"highest",always:D&&(!p||C.length>0)&&(!_||R.length>0),voids:r});var $,F=Editor.pathRef(e,!I||I&&k?Path.next(O):O);if(Transforms.insertNodes(e,C,{at:F.current,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:r,batchDirty:i}),m&&!C.length&&x.length&&!R.length&&Transforms.delete(e,{at:f,voids:r}),Transforms.insertNodes(e,x,{at:N.current,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),mode:"lowest",voids:r,batchDirty:i}),Transforms.insertNodes(e,R,{at:j.current,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:r,batchDirty:i}),!n.at)if(R.length>0&&j.current?$=Path.previous(j.current):x.length>0&&N.current?$=Path.previous(N.current):F.current&&($=Path.previous(F.current)),$){var P=Editor.end(e,$);Transforms.select(e,P)}F.unref(),N.unref(),j.unref()}}})},collapse$1=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{edge:n="anchor"}=t,{selection:o}=e;if(o)if("anchor"===n)Transforms.select(e,o.anchor);else if("focus"===n)Transforms.select(e,o.focus);else if("start"===n){var[r]=Range.edges(o);Transforms.select(e,r)}else if("end"===n){var[,a]=Range.edges(o);Transforms.select(e,a)}},deselect=e=>{var{selection:t}=e;t&&e.apply({type:"set_selection",properties:t,newProperties:null})},move=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{selection:n}=e,{distance:o=1,unit:r="character",reverse:a=!1}=t,{edge:i=null}=t;if(n){"start"===i&&(i=Range.isBackward(n)?"focus":"anchor"),"end"===i&&(i=Range.isBackward(n)?"anchor":"focus");var{anchor:s,focus:l}=n,c={distance:o,unit:r,ignoreNonSelectable:!0},d={};if(null==i||"anchor"===i){var u=a?Editor.before(e,s,c):Editor.after(e,s,c);u&&(d.anchor=u)}if(null==i||"focus"===i){var f=a?Editor.before(e,l,c):Editor.after(e,l,c);f&&(d.focus=f)}Transforms.setSelection(e,d)}},select=(e,t)=>{var{selection:n}=e;if(t=Editor.range(e,t),n)Transforms.setSelection(e,t);else{if(!Range.isRange(t))throw new Error("When setting the selection and the current selection is `null` you must provide at least an `anchor` and `focus`, but you passed: ".concat(Scrubber.stringify(t)));e.apply({type:"set_selection",properties:n,newProperties:t})}};function ownKeys$1$4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$1$4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1$4(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1$4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var setPoint=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{selection:o}=e,{edge:r="both"}=n;if(o){"start"===r&&(r=Range.isBackward(o)?"focus":"anchor"),"end"===r&&(r=Range.isBackward(o)?"anchor":"focus");var{anchor:a,focus:i}=o,s="anchor"===r?a:i;Transforms.setSelection(e,{["anchor"===r?"anchor":"focus"]:_objectSpread$1$4(_objectSpread$1$4({},s),t)})}},setSelection=(e,t)=>{var{selection:n}=e,o={},r={};if(n){for(var a in t)("anchor"===a&&null!=t.anchor&&!Point.equals(t.anchor,n.anchor)||"focus"===a&&null!=t.focus&&!Point.equals(t.focus,n.focus)||"anchor"!==a&&"focus"!==a&&t[a]!==n[a])&&(o[a]=n[a],r[a]=t[a]);Object.keys(o).length>0&&e.apply({type:"set_selection",properties:o,newProperties:r})}},insertNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,()=>{var{hanging:o=!1,voids:r=!1,mode:a="lowest",batchDirty:i=!0}=n,{at:s,match:l,select:c}=n;if(Node$1.isNode(t)&&(t=[t]),0!==t.length){var[d]=t;if(s||(s=getDefaultInsertLocation(e),!1!==c&&(c=!0)),null==c&&(c=!1),Range.isRange(s))if(o||(s=Editor.unhangRange(e,s,{voids:r})),Range.isCollapsed(s))s=s.anchor;else{var[,u]=Range.edges(s),f=Editor.pointRef(e,u);Transforms.delete(e,{at:s}),s=f.unref()}if(Point.isPoint(s)){null==l&&(l=Text$1.isText(d)?e=>Text$1.isText(e):e.isInline(d)?t=>Text$1.isText(t)||Editor.isInline(e,t):t=>Element$2.isElement(t)&&Editor.isBlock(e,t));var[p]=Editor.nodes(e,{at:s.path,match:l,mode:a,voids:r});if(!p)return;var[,_]=p,m=Editor.pathRef(e,_),h=Editor.isEnd(e,s,_);Transforms.splitNodes(e,{at:s,match:l,mode:a,voids:r});var g=m.unref();s=h?Path.next(g):g}var b=Path.parent(s),v=s[s.length-1];if(r||!Editor.void(e,{at:b})){if(i){var y=[],E=Path.levels(b);batchDirtyPaths(e,()=>{var n=function(){var t=b.concat(v);v++;var n={type:"insert_node",path:t,node:o};e.apply(n),s=Path.next(s),y.push(n),Text$1.isText?E.push(...Array.from(Node$1.nodes(o),e=>{var[,n]=e;return t.concat(n)})):E.push(t)};for(var o of t)n()},()=>{updateDirtyPaths(e,E,e=>{var t=e;for(var n of y)if(Path.operationCanTransformPath(n)&&!(t=Path.transform(t,n)))return null;return t})})}else for(var w of t){var C=b.concat(v);v++,e.apply({type:"insert_node",path:C,node:w}),s=Path.next(s)}if(s=Path.previous(s),c){var x=Editor.end(e,s);x&&Transforms.select(e,x)}}}})},liftNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,()=>{var{at:n=e.selection,mode:o="lowest",voids:r=!1}=t,{match:a}=t;if(null==a&&(a=Path.isPath(n)?matchPath(e,n):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),n){var i=Editor.nodes(e,{at:n,match:a,mode:o,voids:r}),s=Array.from(i,t=>{var[,n]=t;return Editor.pathRef(e,n)});for(var l of s){var c=l.unref();if(c.length<2)throw new Error("Cannot lift node at a path [".concat(c,"] because it has a depth of less than `2`."));var d=Editor.node(e,Path.parent(c)),[u,f]=d,p=c[c.length-1],{length:_}=u.children;if(1===_){var m=Path.next(f);Transforms.moveNodes(e,{at:c,to:m,voids:r}),Transforms.removeNodes(e,{at:f,voids:r})}else if(0===p)Transforms.moveNodes(e,{at:c,to:f,voids:r});else if(p===_-1){var h=Path.next(f);Transforms.moveNodes(e,{at:c,to:h,voids:r})}else{var g=Path.next(c),b=Path.next(f);Transforms.splitNodes(e,{at:g,voids:r}),Transforms.moveNodes(e,{at:c,to:b,voids:r})}}}})},_excluded$5=["text"],_excluded2$4=["children"],hasSingleChildNest=(e,t)=>{if(Element$2.isElement(t)){var n=t;return!!Editor.isVoid(e,t)||1===n.children.length&&hasSingleChildNest(e,n.children[0])}return!Editor.isEditor(t)},mergeNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,()=>{var{match:n,at:o=e.selection}=t,{hanging:r=!1,voids:a=!1,mode:i="lowest"}=t;if(o){if(null==n)if(Path.isPath(o)){var[s]=Editor.parent(e,o);n=e=>s.children.includes(e)}else n=t=>Element$2.isElement(t)&&Editor.isBlock(e,t);if(!r&&Range.isRange(o)&&(o=Editor.unhangRange(e,o,{voids:a})),Range.isRange(o))if(Range.isCollapsed(o))o=o.anchor;else{var[,l]=Range.edges(o),c=Editor.pointRef(e,l);Transforms.delete(e,{at:o}),o=c.unref(),null==t.at&&Transforms.select(e,o)}var[d]=Editor.nodes(e,{at:o,match:n,voids:a,mode:i}),u=Editor.previous(e,{at:o,match:n,voids:a,mode:i});if(d&&u){var[f,p]=d,[_,m]=u;if(0!==p.length&&0!==m.length){var h,g,b=Path.next(m),v=Path.common(p,m),y=Path.isSibling(p,m),E=Array.from(Editor.levels(e,{at:p}),e=>{var[t]=e;return t}).slice(v.length).slice(0,-1),w=Editor.above(e,{at:p,mode:"highest",match:t=>E.includes(t)&&hasSingleChildNest(e,t)}),C=w&&Editor.pathRef(e,w[1]);if(Text$1.isText(f)&&Text$1.isText(_)){var x=_objectWithoutProperties$1(f,_excluded$5);g=_.text.length,h=x}else{if(!Element$2.isElement(f)||!Element$2.isElement(_))throw new Error("Cannot merge the node at path [".concat(p,"] with the previous sibling because it is not the same kind: ").concat(Scrubber.stringify(f)," ").concat(Scrubber.stringify(_)));x=_objectWithoutProperties$1(f,_excluded2$4);g=_.children.length,h=x}y||Transforms.moveNodes(e,{at:p,to:b,voids:a}),C&&Transforms.removeNodes(e,{at:C.current,voids:a}),Editor.shouldMergeNodesRemovePrevNode(e,u,d)?Transforms.removeNodes(e,{at:m,voids:a}):e.apply({type:"merge_node",path:b,position:g,properties:h}),C&&C.unref()}}}})},moveNodes=(e,t)=>{Editor.withoutNormalizing(e,()=>{var{to:n,at:o=e.selection,mode:r="lowest",voids:a=!1}=t,{match:i}=t;if(o){null==i&&(i=Path.isPath(o)?matchPath(e,o):t=>Element$2.isElement(t)&&Editor.isBlock(e,t));var s=Editor.pathRef(e,n),l=Editor.nodes(e,{at:o,match:i,mode:r,voids:a}),c=Array.from(l,t=>{var[,n]=t;return Editor.pathRef(e,n)});for(var d of c){var u=d.unref(),f=s.current;0!==u.length&&e.apply({type:"move_node",path:u,newPath:f}),s.current&&Path.isSibling(f,u)&&Path.isAfter(f,u)&&(s.current=Path.next(s.current))}s.unref()}})},removeNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,()=>{var{hanging:n=!1,voids:o=!1,mode:r="lowest"}=t,{at:a=e.selection,match:i}=t;if(a){null==i&&(i=Path.isPath(a)?matchPath(e,a):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),!n&&Range.isRange(a)&&(a=Editor.unhangRange(e,a,{voids:o}));var s=Editor.nodes(e,{at:a,match:i,mode:r,voids:o}),l=Array.from(s,t=>{var[,n]=t;return Editor.pathRef(e,n)});for(var c of l){var d=c.unref();if(d){var[u]=Editor.node(e,d);e.apply({type:"remove_node",path:d,node:u})}}}})},setNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,()=>{var{match:o,at:r=e.selection,compare:a,merge:i}=n,{hanging:s=!1,mode:l="lowest",split:c=!1,voids:d=!1}=n;if(r){if(null==o&&(o=Path.isPath(r)?matchPath(e,r):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),!s&&Range.isRange(r)&&(r=Editor.unhangRange(e,r,{voids:d})),c&&Range.isRange(r)){if(Range.isCollapsed(r)&&Editor.leaf(e,r.anchor)[0].text.length>0)return;var u=Editor.rangeRef(e,r,{affinity:"inward"}),[f,p]=Range.edges(r),_="lowest"===l?"lowest":"highest",m=Editor.isEnd(e,p,p.path);Transforms.splitNodes(e,{at:p,match:o,mode:_,voids:d,always:!m});var h=Editor.isStart(e,f,f.path);Transforms.splitNodes(e,{at:f,match:o,mode:_,voids:d,always:!h}),r=u.unref(),null==n.at&&Transforms.select(e,r)}for(var[g,b]of(a||(a=(e,t)=>e!==t),Editor.nodes(e,{at:r,match:o,mode:l,voids:d}))){var v={},y={};if(0!==b.length){var E=!1;for(var w in t)"children"!==w&&"text"!==w&&a(t[w],g[w])&&(E=!0,g.hasOwnProperty(w)&&(v[w]=g[w]),i?null!=t[w]&&(y[w]=i(g[w],t[w])):null!=t[w]&&(y[w]=t[w]));E&&e.apply({type:"set_node",path:b,properties:v,newProperties:y})}}}})},deleteRange=(e,t)=>{if(Range.isCollapsed(t))return t.anchor;var[,n]=Range.edges(t),o=Editor.pointRef(e,n);return Transforms.delete(e,{at:t}),o.unref()},splitNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,()=>{var{mode:n="lowest",voids:o=!1}=t,{match:r,at:a=e.selection,height:i=0,always:s=!1}=t;if(null==r&&(r=t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),Range.isRange(a)&&(a=deleteRange(e,a)),Path.isPath(a)){var l=a,c=Editor.point(e,l),[d]=Editor.parent(e,l);r=e=>e===d,i=c.path.length-l.length+1,a=c,s=!0}if(a){var u,f=Editor.pointRef(e,a,{affinity:"backward"});try{var[p]=Editor.nodes(e,{at:a,match:r,mode:n,voids:o});if(!p)return;var _=Editor.void(e,{at:a,mode:"highest"});if(!o&&_){var[m,h]=_;if(Element$2.isElement(m)&&e.isInline(m)){var g=Editor.after(e,h);if(!g){var b=Path.next(h);Transforms.insertNodes(e,{text:""},{at:b,voids:o}),g=Editor.point(e,b)}a=g,s=!0}i=a.path.length-h.length+1,s=!0}u=Editor.pointRef(e,a);var v=a.path.length-i,[,y]=p,E=a.path.slice(0,v),w=0===i?a.offset:a.path[v]+0;for(var[C,x]of Editor.levels(e,{at:E,reverse:!0,voids:o})){var R=!1;if(x.length<y.length||0===x.length||!o&&Element$2.isElement(C)&&Editor.isVoid(e,C))break;var S=f.current,D=Editor.isEnd(e,S,x);if(s||!f||!Editor.isEdge(e,S,x)){R=!0;var T=Node$1.extractProps(C);e.apply({type:"split_node",path:x,position:w,properties:T})}w=x[x.length-1]+(R||D?1:0)}if(null==t.at){var A=u.current||Editor.end(e,[]);Transforms.select(e,A)}}finally{var O;f.unref(),null===(O=u)||void 0===O||O.unref()}}})},unsetNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Array.isArray(t)||(t=[t]);var o={};for(var r of t)o[r]=null;Transforms.setNodes(e,o,n)},unwrapNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,()=>{var{mode:n="lowest",split:o=!1,voids:r=!1}=t,{at:a=e.selection,match:i}=t;if(a){null==i&&(i=Path.isPath(a)?matchPath(e,a):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),Path.isPath(a)&&(a=Editor.range(e,a));var s=Range.isRange(a)?Editor.rangeRef(e,a):null,l=Editor.nodes(e,{at:a,match:i,mode:n,voids:r}),c=Array.from(l,t=>{var[,n]=t;return Editor.pathRef(e,n)}).reverse(),d=function(){var t=u.unref(),[n]=Editor.node(e,t),a=Editor.range(e,t);o&&s&&(a=Range.intersection(s.current,a)),Transforms.liftNodes(e,{at:a,match:e=>Element$2.isAncestor(n)&&n.children.includes(e),voids:r})};for(var u of c)d();s&&s.unref()}})};function ownKeys$f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$f(Object(n),!0).forEach(function(t){_defineProperty$3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$f(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var wrapNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,()=>{var{mode:o="lowest",split:r=!1,voids:a=!1}=n,{match:i,at:s=e.selection}=n;if(s){if(null==i&&(i=Path.isPath(s)?matchPath(e,s):e.isInline(t)?t=>Element$2.isElement(t)&&Editor.isInline(e,t)||Text$1.isText(t):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),r&&Range.isRange(s)){var[l,c]=Range.edges(s),d=Editor.rangeRef(e,s,{affinity:"inward"});Transforms.splitNodes(e,{at:c,match:i,voids:a}),Transforms.splitNodes(e,{at:l,match:i,voids:a}),s=d.unref(),null==n.at&&Transforms.select(e,s)}var u=Array.from(Editor.nodes(e,{at:s,match:e.isInline(t)?t=>Element$2.isElement(t)&&Editor.isBlock(e,t):e=>Editor.isEditor(e),mode:"lowest",voids:a})),f=function(){var n=Range.isRange(s)?Range.intersection(s,Editor.range(e,p)):s;if(!n)return 0;var r=Array.from(Editor.nodes(e,{at:n,match:i,mode:o,voids:a}));if(r.length>0){var[l]=r,c=r[r.length-1],[,d]=l,[,u]=c;if(0===d.length&&0===u.length)return 0;var f=Path.equals(d,u)?Path.parent(d):Path.common(d,u),_=Editor.range(e,d,u),m=Editor.node(e,f),[h]=m,g=f.length+1,b=Path.next(u.slice(0,g)),v=_objectSpread$f(_objectSpread$f({},t),{},{children:[]});Transforms.insertNodes(e,v,{at:b,voids:a}),Transforms.moveNodes(e,{at:_,match:e=>Element$2.isAncestor(h)&&h.children.includes(e),to:b.concat(0),voids:a})}};for(var[,p]of u)f()}})},createEditor$1=()=>{var e={children:[],operations:[],selection:null,marks:null,isElementReadOnly:()=>!1,isInline:()=>!1,isSelectable:()=>!0,isVoid:()=>!1,markableVoid:()=>!1,onChange:()=>{},apply:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return apply(e,...n)},addMark:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return addMark(e,...n)},deleteBackward:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deleteBackward(e,...n)},deleteForward:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deleteForward(e,...n)},deleteFragment:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deleteFragment(e,...n)},getFragment:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return getFragment(e,...n)},insertBreak:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertBreak(e,...n)},insertSoftBreak:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertSoftBreak(e,...n)},insertFragment:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertFragment(e,...n)},insertNode:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertNode(e,...n)},insertText:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertText(e,...n)},normalizeNode:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return normalizeNode(e,...n)},removeMark:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return removeMark(e,...n)},getDirtyPaths:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return getDirtyPaths(e,...n)},shouldNormalize:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return shouldNormalize(e,...n)},above:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return above(e,...n)},after:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return after(e,...n)},before:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return before(e,...n)},collapse:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return collapse$1(e,...n)},delete:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deleteText(e,...n)},deselect:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deselect(e,...n)},edges:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return edges(e,...n)},elementReadOnly:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return elementReadOnly(e,...n)},end:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return end(e,...n)},first:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return first(e,...n)},fragment:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return fragment(e,...n)},getMarks:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return marks(e,...n)},hasBlocks:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return hasBlocks(e,...n)},hasInlines:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return hasInlines(e,...n)},hasPath:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return hasPath(e,...n)},hasTexts:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return hasTexts(e,...n)},insertNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertNodes(e,...n)},isBlock:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isBlock(e,...n)},isEdge:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isEdge(e,...n)},isEmpty:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isEmpty$1(e,...n)},isEnd:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isEnd(e,...n)},isNormalizing:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isNormalizing(e,...n)},isStart:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isStart(e,...n)},last:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return last(e,...n)},leaf:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return leaf(e,...n)},levels:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return levels(e,...n)},liftNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return liftNodes(e,...n)},mergeNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return mergeNodes(e,...n)},move:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return move(e,...n)},moveNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return moveNodes(e,...n)},next:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return next(e,...n)},node:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return node(e,...n)},nodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return nodes(e,...n)},normalize:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return normalize(e,...n)},parent:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return parent(e,...n)},path:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return path(e,...n)},pathRef:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return pathRef(e,...n)},pathRefs:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return pathRefs(e,...n)},point:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return point(e,...n)},pointRef:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return pointRef(e,...n)},pointRefs:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return pointRefs(e,...n)},positions:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return positions(e,...n)},previous:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return previous(e,...n)},range:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return range(e,...n)},rangeRef:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return rangeRef(e,...n)},rangeRefs:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return rangeRefs(e,...n)},removeNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return removeNodes(e,...n)},select:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return select(e,...n)},setNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return setNodes(e,...n)},setNormalizing:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return setNormalizing(e,...n)},setPoint:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return setPoint(e,...n)},setSelection:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return setSelection(e,...n)},splitNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return splitNodes(e,...n)},start:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return start(e,...n)},string:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return string(e,...n)},unhangRange:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return unhangRange(e,...n)},unsetNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return unsetNodes(e,...n)},unwrapNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return unwrapNodes(e,...n)},void:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return getVoid(e,...n)},withoutNormalizing:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return withoutNormalizing(e,...n)},wrapNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return wrapNodes(e,...n)},shouldMergeNodesRemovePrevNode:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return shouldMergeNodesRemovePrevNode(e,...n)}};return e};function getCharacterBefore(e,t,n={}){const{filterVoids:o}=n,r=Editor.before(e,t,{unit:"character",voids:o});if(r){const n=Editor.range(e,r,Range.isRange(t)?Range.start(t):t),o=Editor.string(e,n);return{range:n,text:o,void:0===o.length}}}function getCharacterAfter(e,t,n={}){const{filterVoids:o}=n,r=Editor.after(e,t,{unit:"character",voids:o});if(r){const n=Editor.range(e,r,Range.isRange(t)?Range.end(t):t),o=Editor.string(e,n);return{range:n,text:o,void:0===o.length}}}const defaultOptions$2={direction:"before"};function getMatchRange(e,t,n=[" "],o=defaultOptions$2){const{include:r,direction:a}={...defaultOptions$2,...o};let[i,s]=Range.edges(t),l=i;function c(t){const o="after"===t?Editor.after(e,l,{unit:"character"}):Editor.before(e,l,{unit:"character"}),r=o&&Editor.string(e,"after"===t?{anchor:l,focus:o}:{anchor:o,focus:l}),a=r&&r["after"===t?0:r.length-1];return!(!o||!a||n.includes(a))&&(l=o,0!==l.offset)}if("before"!==a){for(l=s;c("after"););s=l}if("after"!==a){for(l=i;c("before"););i=l}return r?{anchor:Editor.before(e,i,{unit:"offset"})??i,focus:Editor.after(e,s,{unit:"offset"})??s}:{anchor:i,focus:s}}function isEmptyString(e){return!e.trim()}const MENTION_CHARACTER="@";function getMentionDraftAtSelection(e){const{selection:t}=e;if(!t||!Range.isCollapsed(t))return;const n=getMatchRange(e,t);if(!n)return;const o=Editor.string(e,n);return o.startsWith(MENTION_CHARACTER)?{range:n,text:o.substring(1)}:void 0}function isComposerBodyMention(e){return Element$2.isElement(e)&&"mention"===e.type}function insertMention(e,t){const n={type:"mention",id:t,children:[{text:""}]};Transforms.insertNodes(e,n),Transforms.move(e);const o=e.selection?getCharacterAfter(e,e.selection):void 0;!o||o.void?Transforms.insertText(e," "):isEmptyString(o.text)&&Transforms.move(e)}function insertMentionCharacter(e){if(!e.selection)return;const t=getCharacterBefore(e,e.selection,{filterVoids:!0}),n=getCharacterAfter(e,e.selection,{filterVoids:!0}),o=t&&!isEmptyString(t.text),r=n&&!isEmptyString(n.text);if(Range.isCollapsed(e.selection)){const t=(o?" ":"")+MENTION_CHARACTER;e.insertText(t,{at:Range.start(e.selection)}),r&&e.insertText(" ",{at:Range.end(e.selection)}),Transforms.collapse(e,{edge:"end"})}else{const t=(o?" ":"")+MENTION_CHARACTER+(r?" ":"");e.insertText(t),r&&Transforms.move(e,{distance:1,unit:"character",reverse:!0})}}function withMentions(e){const{isInline:t,isVoid:n,markableVoid:o,deleteBackward:r}=e;return e.isInline=e=>isComposerBodyMention(e)||t(e),e.isVoid=e=>isComposerBodyMention(e)||n(e),e.markableVoid=e=>isComposerBodyMention(e)||o(e),e.deleteBackward=t=>{const{selection:n}=e;if(n&&Range.isCollapsed(n)){const[o]=Editor.nodes(e,{at:"character"===t?Editor.before(e,n,{unit:"character"}):n,match:isComposerBodyMention});r(t),o&&Transforms.insertText(e,MENTION_CHARACTER)}else r(t)},e}function isCommentBodyText(e){return!("type"in e)&&"text"in e&&"string"==typeof e.text}function isCommentBodyMention(e){return"type"in e&&"mention"===e.type}function isCommentBodyLink(e){return"type"in e&&"link"===e.type}function toAbsoluteUrl(e){return e.startsWith("http://")||e.startsWith("https://")?e:e.startsWith("www.")?"https://"+e:void 0}const CommentMention$1=React.forwardRef(({children:e,asChild:t,...n},o)=>{const r=t?Slot$2:"span";return jsxRuntime.exports.jsx(r,{...n,ref:o,children:e})}),CommentLink$1=React.forwardRef(({children:e,asChild:t,...n},o)=>{const r=t?Slot$2:"a";return jsxRuntime.exports.jsx(r,{target:"_blank",rel:"noopener noreferrer nofollow",...n,ref:o,children:e})}),defaultBodyComponents={Mention:({userId:e})=>jsxRuntime.exports.jsxs(CommentMention$1,{children:[MENTION_CHARACTER,e]}),Link:({href:e,children:t})=>jsxRuntime.exports.jsx(CommentLink$1,{href:e,children:t})},CommentBody=React.forwardRef(({body:e,components:t,style:n,asChild:o,...r},a)=>{const i=o?Slot$2:"div",{Mention:s,Link:l}=React.useMemo(()=>({...defaultBodyComponents,...t}),[t]);return e&&e?.content?jsxRuntime.exports.jsx(i,{...r,style:{whiteSpace:"break-spaces",...n},ref:a,children:e.content.map((e,t)=>"paragraph"===e.type?jsxRuntime.exports.jsx("p",{style:{minHeight:"1lh"},children:e.children.map((e,t)=>{if(isCommentBodyMention(e))return e.id?jsxRuntime.exports.jsx(s,{userId:e.id},t):null;if(isCommentBodyLink(e)){const n=toAbsoluteUrl(e.url)??e.url;return jsxRuntime.exports.jsx(l,{href:n,children:e.text??e.url},t)}let n=e.text;return e.bold&&(n=jsxRuntime.exports.jsx("strong",{children:n},t)),e.italic&&(n=jsxRuntime.exports.jsx("em",{children:n},t)),e.strikethrough&&(n=jsxRuntime.exports.jsx("s",{children:n},t)),e.code&&(n=jsxRuntime.exports.jsx("code",{children:n},t)),jsxRuntime.exports.jsx("span",{children:n},t)})},t):null)}):null});var History={isHistory:e=>isPlainObject$1(e)&&Array.isArray(e.redos)&&Array.isArray(e.undos)&&(0===e.redos.length||Operation.isOperationList(e.redos[0].operations))&&(0===e.undos.length||Operation.isOperationList(e.undos[0].operations))},SAVING=new WeakMap,MERGING=new WeakMap,SPLITTING_ONCE=new WeakMap,HistoryEditor={isHistoryEditor:e=>History.isHistory(e.history)&&Editor.isEditor(e),isMerging:e=>MERGING.get(e),isSplittingOnce:e=>SPLITTING_ONCE.get(e),setSplittingOnce(e,t){SPLITTING_ONCE.set(e,t)},isSaving:e=>SAVING.get(e),redo(e){e.redo()},undo(e){e.undo()},withMerging(e,t){var n=HistoryEditor.isMerging(e);MERGING.set(e,!0),t(),MERGING.set(e,n)},withNewBatch(e,t){var n=HistoryEditor.isMerging(e);MERGING.set(e,!0),SPLITTING_ONCE.set(e,!0),t(),MERGING.set(e,n),SPLITTING_ONCE.delete(e)},withoutMerging(e,t){var n=HistoryEditor.isMerging(e);MERGING.set(e,!1),t(),MERGING.set(e,n)},withoutSaving(e,t){var n=HistoryEditor.isSaving(e);SAVING.set(e,!1),t(),SAVING.set(e,n)}},withHistory=e=>{var t=e,{apply:n}=t;return t.history={undos:[],redos:[]},t.redo=()=>{var{history:e}=t,{redos:n}=e;if(n.length>0){var o=n[n.length-1];o.selectionBefore&&Transforms.setSelection(t,o.selectionBefore),HistoryEditor.withoutSaving(t,()=>{Editor.withoutNormalizing(t,()=>{for(var e of o.operations)t.apply(e)})}),e.redos.pop(),t.writeHistory("undos",o)}},t.undo=()=>{var{history:e}=t,{undos:n}=e;if(n.length>0){var o=n[n.length-1];HistoryEditor.withoutSaving(t,()=>{Editor.withoutNormalizing(t,()=>{var e=o.operations.map(Operation.inverse).reverse();for(var n of e)t.apply(n);o.selectionBefore&&Transforms.setSelection(t,o.selectionBefore)})}),t.writeHistory("redos",o),e.undos.pop()}},t.apply=e=>{var{operations:o,history:r}=t,{undos:a}=r,i=a[a.length-1],s=i&&i.operations[i.operations.length-1],l=HistoryEditor.isSaving(t),c=HistoryEditor.isMerging(t);if(null==l&&(l=shouldSave(e)),l){if(null==c&&(c=null!=i&&(0!==o.length||shouldMerge(e,s))),HistoryEditor.isSplittingOnce(t)&&(c=!1,HistoryEditor.setSplittingOnce(t,void 0)),i&&c)i.operations.push(e);else{var d={operations:[e],selectionBefore:t.selection};t.writeHistory("undos",d)}for(;a.length>100;)a.shift();r.redos=[]}n(e)},t.writeHistory=(e,n)=>{t.history[e].push(n)},t},shouldMerge=(e,t)=>!(!t||"insert_text"!==e.type||"insert_text"!==t.type||e.offset!==t.offset+t.text.length||!Path.equals(e.path,t.path))||!(!t||"remove_text"!==e.type||"remove_text"!==t.type||e.offset+e.text.length!==t.offset||!Path.equals(e.path,t.path)),shouldSave=(e,t)=>"set_selection"!==e.type,direction_1=direction,RTL="֑-߿יִ-﷽ﹰ-ﻼ",LTR="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ࠀ-῿‎Ⰰ-﬜︀-﹯﻽-￿",rtl=new RegExp("^[^"+LTR+"]*["+RTL+"]"),ltr=new RegExp("^[^"+RTL+"]*["+LTR+"]");function direction(e){return e=String(e||""),rtl.test(e)?"rtl":ltr.test(e)?"ltr":"neutral"}function isObject$3(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var isObject_1=isObject$3,freeGlobal$1="object"==typeof commonjsGlobal&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,_freeGlobal=freeGlobal$1,freeGlobal=_freeGlobal,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root$2=freeGlobal||freeSelf||Function("return this")(),_root=root$2,root$1=_root,now$1=function(){return root$1.Date.now()},now_1=now$1,reWhitespace=/\s/;function trimmedEndIndex$1(e){for(var t=e.length;t--&&reWhitespace.test(e.charAt(t)););return t}var _trimmedEndIndex=trimmedEndIndex$1,trimmedEndIndex=_trimmedEndIndex,reTrimStart=/^\s+/;function baseTrim$1(e){return e?e.slice(0,trimmedEndIndex(e)+1).replace(reTrimStart,""):e}var _baseTrim=baseTrim$1,root=_root,Symbol$3=root.Symbol,_Symbol=Symbol$3,Symbol$2=_Symbol,objectProto$1=Object.prototype,hasOwnProperty=objectProto$1.hasOwnProperty,nativeObjectToString$1=objectProto$1.toString,symToStringTag$1=Symbol$2?Symbol$2.toStringTag:void 0;function getRawTag$1(e){var t=hasOwnProperty.call(e,symToStringTag$1),n=e[symToStringTag$1];try{e[symToStringTag$1]=void 0;var o=!0}catch(e){}var r=nativeObjectToString$1.call(e);return o&&(t?e[symToStringTag$1]=n:delete e[symToStringTag$1]),r}var _getRawTag=getRawTag$1,objectProto=Object.prototype,nativeObjectToString=objectProto.toString;function objectToString$1(e){return nativeObjectToString.call(e)}var _objectToString=objectToString$1,Symbol$1=_Symbol,getRawTag=_getRawTag,objectToString=_objectToString,nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=Symbol$1?Symbol$1.toStringTag:void 0;function baseGetTag$1(e){return null==e?void 0===e?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(e)?getRawTag(e):objectToString(e)}var _baseGetTag=baseGetTag$1;function isObjectLike$1(e){return null!=e&&"object"==typeof e}var isObjectLike_1=isObjectLike$1,baseGetTag=_baseGetTag,isObjectLike=isObjectLike_1,symbolTag="[object Symbol]";function isSymbol$1(e){return"symbol"==typeof e||isObjectLike(e)&&baseGetTag(e)==symbolTag}var isSymbol_1=isSymbol$1,baseTrim=_baseTrim,isObject$2=isObject_1,isSymbol=isSymbol_1,NAN=NaN,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt;function toNumber$1(e){if("number"==typeof e)return e;if(isSymbol(e))return NAN;if(isObject$2(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=isObject$2(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=baseTrim(e);var n=reIsBinary.test(e);return n||reIsOctal.test(e)?freeParseInt(e.slice(2),n?2:8):reIsBadHex.test(e)?NAN:+e}var toNumber_1=toNumber$1,isObject$1=isObject_1,now=now_1,toNumber=toNumber_1,FUNC_ERROR_TEXT$1="Expected a function",nativeMax=Math.max,nativeMin=Math.min;function debounce$1(e,t,n){var o,r,a,i,s,l,c=0,d=!1,u=!1,f=!0;if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT$1);function p(t){var n=o,a=r;return o=r=void 0,c=t,i=e.apply(a,n)}function _(e){var n=e-l;return void 0===l||n>=t||n<0||u&&e-c>=a}function m(){var e=now();if(_(e))return h(e);s=setTimeout(m,function(e){var n=t-(e-l);return u?nativeMin(n,a-(e-c)):n}(e))}function h(e){return s=void 0,f&&o?p(e):(o=r=void 0,i)}function g(){var e=now(),n=_(e);if(o=arguments,r=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(m,t),d?p(e):i}(l);if(u)return clearTimeout(s),s=setTimeout(m,t),p(l)}return void 0===s&&(s=setTimeout(m,t)),i}return t=toNumber(t)||0,isObject$1(n)&&(d=!!n.leading,a=(u="maxWait"in n)?nativeMax(toNumber(n.maxWait)||0,t):a,f="trailing"in n?!!n.trailing:f),g.cancel=function(){void 0!==s&&clearTimeout(s),c=0,o=l=r=s=void 0},g.flush=function(){return void 0===s?i:h(now())},g}var debounce_1=debounce$1,debounce=debounce_1,isObject=isObject_1,FUNC_ERROR_TEXT="Expected a function";function throttle(e,t,n){var o=!0,r=!0;if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT);return isObject(n)&&(o="leading"in n?!!n.leading:o,r="trailing"in n?!!n.trailing:r),debounce(e,t,{leading:o,maxWait:t,trailing:r})}var throttle_1=throttle;const t=e=>"object"==typeof e&&null!=e&&1===e.nodeType,e$1=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,n$1=(e,t)=>{if(e.clientHeight<e.scrollHeight||e.clientWidth<e.scrollWidth){const n=getComputedStyle(e,null);return e$1(n.overflowY,t)||e$1(n.overflowX,t)||(e=>{const t=(e=>{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e);return!!t&&(t.clientHeight<e.scrollHeight||t.clientWidth<e.scrollWidth)})(e)}return!1},o$1=(e,t,n,o,r,a,i,s)=>a<e&&i>t||a>e&&i<t?0:a<=e&&s<=n||i>=t&&s>=n?a-e-o:i>t&&s<n||a<e&&s>n?i-t+r:0,l=e=>{const t=e.parentElement;return null==t?e.getRootNode().host||null:t},r$1=(e,n)=>{var o,r,a,i;if("undefined"==typeof document)return[];const{scrollMode:s,block:c,inline:d,boundary:u,skipOverflowHiddenElements:f}=n,p="function"==typeof u?u:e=>e!==u;if(!t(e))throw new TypeError("Invalid target");const _=document.scrollingElement||document.documentElement,m=[];let h=e;for(;t(h)&&p(h);){if(h=l(h),h===_){m.push(h);break}null!=h&&h===document.body&&n$1(h)&&!n$1(document.documentElement)||null!=h&&n$1(h,f)&&m.push(h)}const g=null!=(r=null==(o=window.visualViewport)?void 0:o.width)?r:innerWidth,b=null!=(i=null==(a=window.visualViewport)?void 0:a.height)?i:innerHeight,{scrollX:v,scrollY:y}=window,{height:E,width:w,top:C,right:x,bottom:R,left:S}=e.getBoundingClientRect(),{top:D,right:T,bottom:A,left:O}=(e=>{const t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);let I="start"===c||"nearest"===c?C-D:"end"===c?R+A:C+E/2-D+A,k="center"===d?S+w/2-O+T:"end"===d?x+T:S-O;const N=[];for(let e=0;e<m.length;e++){const t=m[e],{height:n,width:o,top:r,right:a,bottom:i,left:l}=t.getBoundingClientRect();if("if-needed"===s&&C>=0&&S>=0&&R<=b&&x<=g&&(t===_&&!n$1(t)||C>=r&&R<=i&&S>=l&&x<=a))return N;const u=getComputedStyle(t),f=parseInt(u.borderLeftWidth,10),p=parseInt(u.borderTopWidth,10),h=parseInt(u.borderRightWidth,10),D=parseInt(u.borderBottomWidth,10);let T=0,A=0;const O="offsetWidth"in t?t.offsetWidth-t.clientWidth-f-h:0,j="offsetHeight"in t?t.offsetHeight-t.clientHeight-p-D:0,$="offsetWidth"in t?0===t.offsetWidth?0:o/t.offsetWidth:0,F="offsetHeight"in t?0===t.offsetHeight?0:n/t.offsetHeight:0;if(_===t)T="start"===c?I:"end"===c?I-b:"nearest"===c?o$1(y,y+b,b,p,D,y+I,y+I+E,E):I-b/2,A="start"===d?k:"center"===d?k-g/2:"end"===d?k-g:o$1(v,v+g,g,f,h,v+k,v+k+w,w),T=Math.max(0,T+y),A=Math.max(0,A+v);else{T="start"===c?I-r-p:"end"===c?I-i+D+j:"nearest"===c?o$1(r,i,n,p,D+j,I,I+E,E):I-(r+n/2)+j/2,A="start"===d?k-l-f:"center"===d?k-(l+o/2)+O/2:"end"===d?k-a+h+O:o$1(l,a,o,f,h+O,k,k+w,w);const{scrollLeft:e,scrollTop:s}=t;T=0===F?0:Math.max(0,Math.min(s+T/F,t.scrollHeight-n/F+j)),A=0===$?0:Math.max(0,Math.min(e+A/$,t.scrollWidth-o/$+O)),I+=s-T,k+=e-A}N.push({el:t,top:T,left:A})}return N},o=e=>!1===e?{block:"end",inline:"nearest"}:(e=>e===Object(e)&&0!==Object.keys(e).length)(e)?e:{block:"start",inline:"nearest"};function e(e,t){if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;const n=(e=>{const t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);if((e=>"object"==typeof e&&"function"==typeof e.behavior)(t))return t.behavior(r$1(e,t));const r="boolean"==typeof t||null==t?void 0:t.behavior;for(const{el:a,top:i,left:s}of r$1(e,o(t))){const e=i-n.top+n.bottom,t=s-n.left+n.right;a.scroll({top:e,left:t,behavior:r})}}var resizeObservers=[],hasActiveObservations=function(){return resizeObservers.some(function(e){return e.activeTargets.length>0})},hasSkippedObservations=function(){return resizeObservers.some(function(e){return e.skippedTargets.length>0})},msg="ResizeObserver loop completed with undelivered notifications.",deliverResizeLoopError=function(){var e;"function"==typeof ErrorEvent?e=new ErrorEvent("error",{message:msg}):((e=document.createEvent("Event")).initEvent("error",!1,!1),e.message=msg),window.dispatchEvent(e)},ResizeObserverBoxOptions;!function(e){e.BORDER_BOX="border-box",e.CONTENT_BOX="content-box",e.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"}(ResizeObserverBoxOptions||(ResizeObserverBoxOptions={}));var freeze=function(e){return Object.freeze(e)},ResizeObserverSize=function(e,t){this.inlineSize=e,this.blockSize=t,freeze(this)},DOMRectReadOnly=function(){function e(e,t,n,o){return this.x=e,this.y=t,this.width=n,this.height=o,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,freeze(this)}return e.prototype.toJSON=function(){var e=this;return{x:e.x,y:e.y,top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e}(),isSVG=function(e){return e instanceof SVGElement&&"getBBox"in e},isHidden$1=function(e){if(isSVG(e)){var t=e.getBBox(),n=t.width,o=t.height;return!n&&!o}var r=e,a=r.offsetWidth,i=r.offsetHeight;return!(a||i||e.getClientRects().length)},isElement$1=function(e){var t;if(e instanceof Element)return!0;var n=null===(t=null==e?void 0:e.ownerDocument)||void 0===t?void 0:t.defaultView;return!!(n&&e instanceof n.Element)},isReplacedElement=function(e){switch(e.tagName){case"INPUT":if("image"!==e.type)break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1},global$1="undefined"!=typeof window?window:{},cache=new WeakMap,scrollRegexp=/auto|scroll/,verticalRegexp=/^tb|vertical/,IE=/msie|trident/i.test(global$1.navigator&&global$1.navigator.userAgent),parseDimension=function(e){return parseFloat(e||"0")},size$3=function(e,t,n){return void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=!1),new ResizeObserverSize((n?t:e)||0,(n?e:t)||0)},zeroBoxes=freeze({devicePixelContentBoxSize:size$3(),borderBoxSize:size$3(),contentBoxSize:size$3(),contentRect:new DOMRectReadOnly(0,0,0,0)}),calculateBoxSizes=function(e,t){if(void 0===t&&(t=!1),cache.has(e)&&!t)return cache.get(e);if(isHidden$1(e))return cache.set(e,zeroBoxes),zeroBoxes;var n=getComputedStyle(e),o=isSVG(e)&&e.ownerSVGElement&&e.getBBox(),r=!IE&&"border-box"===n.boxSizing,a=verticalRegexp.test(n.writingMode||""),i=!o&&scrollRegexp.test(n.overflowY||""),s=!o&&scrollRegexp.test(n.overflowX||""),l=o?0:parseDimension(n.paddingTop),c=o?0:parseDimension(n.paddingRight),d=o?0:parseDimension(n.paddingBottom),u=o?0:parseDimension(n.paddingLeft),f=o?0:parseDimension(n.borderTopWidth),p=o?0:parseDimension(n.borderRightWidth),_=o?0:parseDimension(n.borderBottomWidth),m=u+c,h=l+d,g=(o?0:parseDimension(n.borderLeftWidth))+p,b=f+_,v=s?e.offsetHeight-b-e.clientHeight:0,y=i?e.offsetWidth-g-e.clientWidth:0,E=r?m+g:0,w=r?h+b:0,C=o?o.width:parseDimension(n.width)-E-y,x=o?o.height:parseDimension(n.height)-w-v,R=C+m+y+g,S=x+h+v+b,D=freeze({devicePixelContentBoxSize:size$3(Math.round(C*devicePixelRatio),Math.round(x*devicePixelRatio),a),borderBoxSize:size$3(R,S,a),contentBoxSize:size$3(C,x,a),contentRect:new DOMRectReadOnly(u,l,C,x)});return cache.set(e,D),D},calculateBoxSize=function(e,t,n){var o=calculateBoxSizes(e,n),r=o.borderBoxSize,a=o.contentBoxSize,i=o.devicePixelContentBoxSize;switch(t){case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:return i;case ResizeObserverBoxOptions.BORDER_BOX:return r;default:return a}},ResizeObserverEntry=function(e){var t=calculateBoxSizes(e);this.target=e,this.contentRect=t.contentRect,this.borderBoxSize=freeze([t.borderBoxSize]),this.contentBoxSize=freeze([t.contentBoxSize]),this.devicePixelContentBoxSize=freeze([t.devicePixelContentBoxSize])},calculateDepthForNode=function(e){if(isHidden$1(e))return 1/0;for(var t=0,n=e.parentNode;n;)t+=1,n=n.parentNode;return t},broadcastActiveObservations=function(){var e=1/0,t=[];resizeObservers.forEach(function(n){if(0!==n.activeTargets.length){var o=[];n.activeTargets.forEach(function(t){var n=new ResizeObserverEntry(t.target),r=calculateDepthForNode(t.target);o.push(n),t.lastReportedSize=calculateBoxSize(t.target,t.observedBox),r<e&&(e=r)}),t.push(function(){n.callback.call(n.observer,o,n.observer)}),n.activeTargets.splice(0,n.activeTargets.length)}});for(var n=0,o=t;n<o.length;n++){(0,o[n])()}return e},gatherActiveObservationsAtDepth=function(e){resizeObservers.forEach(function(t){t.activeTargets.splice(0,t.activeTargets.length),t.skippedTargets.splice(0,t.skippedTargets.length),t.observationTargets.forEach(function(n){n.isActive()&&(calculateDepthForNode(n.target)>e?t.activeTargets.push(n):t.skippedTargets.push(n))})})},process$1=function(){var e=0;for(gatherActiveObservationsAtDepth(e);hasActiveObservations();)e=broadcastActiveObservations(),gatherActiveObservationsAtDepth(e);return hasSkippedObservations()&&deliverResizeLoopError(),e>0},trigger,callbacks=[],notify=function(){return callbacks.splice(0).forEach(function(e){return e()})},queueMicroTask=function(e){if(!trigger){var t=0,n=document.createTextNode("");new MutationObserver(function(){return notify()}).observe(n,{characterData:!0}),trigger=function(){n.textContent="".concat(t?t--:t++)}}callbacks.push(e),trigger()},queueResizeObserver=function(e){queueMicroTask(function(){requestAnimationFrame(e)})},watching=0,isWatching=function(){return!!watching},CATCH_PERIOD=250,observerConfig={attributes:!0,characterData:!0,childList:!0,subtree:!0},events=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],time=function(e){return void 0===e&&(e=0),Date.now()+e},scheduled=!1,Scheduler=function(){function e(){var e=this;this.stopped=!0,this.listener=function(){return e.schedule()}}return e.prototype.run=function(e){var t=this;if(void 0===e&&(e=CATCH_PERIOD),!scheduled){scheduled=!0;var n=time(e);queueResizeObserver(function(){var o=!1;try{o=process$1()}finally{if(scheduled=!1,e=n-time(),!isWatching())return;o?t.run(1e3):e>0?t.run(e):t.start()}})}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var e=this,t=function(){return e.observer&&e.observer.observe(document.body,observerConfig)};document.body?t():global$1.addEventListener("DOMContentLoaded",t)},e.prototype.start=function(){var e=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),events.forEach(function(t){return global$1.addEventListener(t,e.listener,!0)}))},e.prototype.stop=function(){var e=this;this.stopped||(this.observer&&this.observer.disconnect(),events.forEach(function(t){return global$1.removeEventListener(t,e.listener,!0)}),this.stopped=!0)},e}(),scheduler=new Scheduler,updateCount=function(e){!watching&&e>0&&scheduler.start(),!(watching+=e)&&scheduler.stop()},skipNotifyOnElement=function(e){return!isSVG(e)&&!isReplacedElement(e)&&"inline"===getComputedStyle(e).display},ResizeObservation=function(){function e(e,t){this.target=e,this.observedBox=t||ResizeObserverBoxOptions.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return e.prototype.isActive=function(){var e=calculateBoxSize(this.target,this.observedBox,!0);return skipNotifyOnElement(this.target)&&(this.lastReportedSize=e),this.lastReportedSize.inlineSize!==e.inlineSize||this.lastReportedSize.blockSize!==e.blockSize},e}(),ResizeObserverDetail=function(e,t){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=e,this.callback=t},observerMap=new WeakMap,getObservationIndex=function(e,t){for(var n=0;n<e.length;n+=1)if(e[n].target===t)return n;return-1},ResizeObserverController=function(){function e(){}return e.connect=function(e,t){var n=new ResizeObserverDetail(e,t);observerMap.set(e,n)},e.observe=function(e,t,n){var o=observerMap.get(e),r=0===o.observationTargets.length;getObservationIndex(o.observationTargets,t)<0&&(r&&resizeObservers.push(o),o.observationTargets.push(new ResizeObservation(t,n&&n.box)),updateCount(1),scheduler.schedule())},e.unobserve=function(e,t){var n=observerMap.get(e),o=getObservationIndex(n.observationTargets,t),r=1===n.observationTargets.length;o>=0&&(r&&resizeObservers.splice(resizeObservers.indexOf(n),1),n.observationTargets.splice(o,1),updateCount(-1))},e.disconnect=function(e){var t=this,n=observerMap.get(e);n.observationTargets.slice().forEach(function(n){return t.unobserve(e,n.target)}),n.activeTargets.splice(0,n.activeTargets.length)},e}(),ResizeObserver$1=function(){function e(e){if(0===arguments.length)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if("function"!=typeof e)throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");ResizeObserverController.connect(this,e)}return e.prototype.observe=function(e,t){if(0===arguments.length)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!isElement$1(e))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");ResizeObserverController.observe(this,e,t)},e.prototype.unobserve=function(e){if(0===arguments.length)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!isElement$1(e))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");ResizeObserverController.unobserve(this,e)},e.prototype.disconnect=function(){ResizeObserverController.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e}(),lib={};Object.defineProperty(lib,"__esModule",{value:!0});for(var IS_MAC="undefined"!=typeof window&&/Mac|iPod|iPhone|iPad/.test(window.navigator.platform),MODIFIERS$1={alt:"altKey",control:"ctrlKey",meta:"metaKey",shift:"shiftKey"},ALIASES={add:"+",break:"pause",cmd:"meta",command:"meta",ctl:"control",ctrl:"control",del:"delete",down:"arrowdown",esc:"escape",ins:"insert",left:"arrowleft",mod:IS_MAC?"meta":"control",opt:"alt",option:"alt",return:"enter",right:"arrowright",space:" ",spacebar:" ",up:"arrowup",win:"meta",windows:"meta"},CODES={backspace:8,tab:9,enter:13,shift:16,control:17,alt:18,pause:19,capslock:20,escape:27," ":32,pageup:33,pagedown:34,end:35,home:36,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,insert:45,delete:46,meta:91,numlock:144,scrolllock:145,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},f=1;f<20;f++)CODES["f"+f]=111+f;function isHotkey(e,t,n){t&&!("byKey"in t)&&(n=t,t=null),Array.isArray(e)||(e=[e]);var o=e.map(function(e){return parseHotkey(e,t)}),r=function(e){return o.some(function(t){return compareHotkey(t,e)})};return null==n?r:r(n)}function isCodeHotkey(e,t){return isHotkey(e,t)}function isKeyHotkey(e,t){return isHotkey(e,{byKey:!0},t)}function parseHotkey(e,t){var n=t&&t.byKey,o={},r=(e=e.replace("++","+add")).split("+"),a=r.length;for(var i in MODIFIERS$1)o[MODIFIERS$1[i]]=!1;var s=!0,l=!1,c=void 0;try{for(var d,u=r[Symbol.iterator]();!(s=(d=u.next()).done);s=!0){var f=d.value,p=f.endsWith("?")&&f.length>1;p&&(f=f.slice(0,-1));var _=toKeyName(f),m=MODIFIERS$1[_];if(f.length>1&&!m&&!ALIASES[f]&&!CODES[_])throw new TypeError('Unknown modifier: "'+f+'"');1!==a&&m||(n?o.key=_:o.which=toKeyCode(f)),m&&(o[m]=!p||null)}}catch(e){l=!0,c=e}finally{try{!s&&u.return&&u.return()}finally{if(l)throw c}}return o}function compareHotkey(e,t){for(var n in e){var o=e[n],r=void 0;if(null!=o&&((null!=(r="key"===n&&null!=t.key?t.key.toLowerCase():"which"===n?91===o&&93===t.which?91:t.which:t[n])||!1!==o)&&r!==o))return!1}return!0}function toKeyCode(e){return e=toKeyName(e),CODES[e]||e.toUpperCase().charCodeAt(0)}function toKeyName(e){return e=e.toLowerCase(),e=ALIASES[e]||e}lib.default=isHotkey;var isHotkey_1=lib.isHotkey=isHotkey;function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}function _objectWithoutProperties(e,t){if(null==e)return{};var n,o,r=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function _typeof$2(e){return _typeof$2="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$2(e)}function _toPrimitive$1(e,t){if("object"!==_typeof$2(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==_typeof$2(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$1(e){var t=_toPrimitive$1(e,"string");return"symbol"===_typeof$2(t)?t:String(t)}function _defineProperty$2(e,t,n){return(t=_toPropertyKey$1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}lib.isCodeHotkey=isCodeHotkey,lib.isKeyHotkey=isKeyHotkey,lib.parseHotkey=parseHotkey,lib.compareHotkey=compareHotkey,lib.toKeyCode=toKeyCode,lib.toKeyName=toKeyName;var EditorContext=React.createContext(null),useSlateStatic=()=>{var e=React.useContext(EditorContext);if(!e)throw new Error("The `useSlateStatic` hook must be used inside the <Slate> component's context.");return e},_navigator$userAgent$,_navigator$userAgent$2,REACT_MAJOR_VERSION=parseInt(React__default.default.version.split(".")[0],10),IS_IOS=!1,IS_ANDROID="undefined"!=typeof navigator&&/Android/.test(navigator.userAgent),IS_FIREFOX="undefined"!=typeof navigator&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),IS_WEBKIT="undefined"!=typeof navigator&&/AppleWebKit(?!.*Chrome)/i.test(navigator.userAgent),IS_EDGE_LEGACY="undefined"!=typeof navigator&&/Edge?\/(?:[0-6][0-9]|[0-7][0-8])(?:\.)/i.test(navigator.userAgent),IS_CHROME="undefined"!=typeof navigator&&/Chrome/i.test(navigator.userAgent),IS_CHROME_LEGACY="undefined"!=typeof navigator&&/Chrome?\/(?:[0-7][0-5]|[0-6][0-9])(?:\.)/i.test(navigator.userAgent),IS_ANDROID_CHROME_LEGACY=IS_ANDROID&&"undefined"!=typeof navigator&&/Chrome?\/(?:[0-5]?\d)(?:\.)/i.test(navigator.userAgent),IS_FIREFOX_LEGACY="undefined"!=typeof navigator&&/^(?!.*Seamonkey)(?=.*Firefox\/(?:[0-7][0-9]|[0-8][0-6])(?:\.)).*/i.test(navigator.userAgent),IS_UC_MOBILE="undefined"!=typeof navigator&&/.*UCBrowser/.test(navigator.userAgent),IS_WECHATBROWSER="undefined"!=typeof navigator&&/.*Wechat/.test(navigator.userAgent)&&!/.*MacWechat/.test(navigator.userAgent),CAN_USE_DOM=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement);"undefined"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&/Version\/(\d+)/.test(navigator.userAgent)&&null!==(_navigator$userAgent$=navigator.userAgent.match(/Version\/(\d+)/))&&void 0!==_navigator$userAgent$&&_navigator$userAgent$[1]&&parseInt(null===(_navigator$userAgent$2=navigator.userAgent.match(/Version\/(\d+)/))||void 0===_navigator$userAgent$2?void 0:_navigator$userAgent$2[1],10);var HAS_BEFORE_INPUT_SUPPORT=(!IS_CHROME_LEGACY||!IS_ANDROID_CHROME_LEGACY)&&!IS_EDGE_LEGACY&&"undefined"!=typeof globalThis&&globalThis.InputEvent&&"function"==typeof globalThis.InputEvent.prototype.getTargetRanges,IS_NODE_MAP_DIRTY=new WeakMap,NODE_TO_INDEX=new WeakMap,NODE_TO_PARENT=new WeakMap,EDITOR_TO_WINDOW=new WeakMap,EDITOR_TO_ELEMENT=new WeakMap,EDITOR_TO_PLACEHOLDER_ELEMENT=new WeakMap,ELEMENT_TO_NODE=new WeakMap,NODE_TO_ELEMENT=new WeakMap,NODE_TO_KEY=new WeakMap,EDITOR_TO_KEY_TO_ELEMENT=new WeakMap,IS_READ_ONLY=new WeakMap,IS_FOCUSED=new WeakMap,IS_COMPOSING=new WeakMap,EDITOR_TO_USER_SELECTION=new WeakMap,EDITOR_TO_ON_CHANGE=new WeakMap,EDITOR_TO_SCHEDULE_FLUSH=new WeakMap,EDITOR_TO_PENDING_INSERTION_MARKS=new WeakMap,EDITOR_TO_USER_MARKS=new WeakMap,EDITOR_TO_PENDING_DIFFS=new WeakMap,EDITOR_TO_PENDING_ACTION=new WeakMap,EDITOR_TO_PENDING_SELECTION=new WeakMap,EDITOR_TO_FORCE_RENDER=new WeakMap,PLACEHOLDER_SYMBOL=Symbol("placeholder"),MARK_PLACEHOLDER_SYMBOL=Symbol("mark-placeholder"),DOMNode=globalThis.Node,DOMText=globalThis.Text,getDefaultView=e=>e&&e.ownerDocument&&e.ownerDocument.defaultView||null,isDOMComment=e=>isDOMNode(e)&&8===e.nodeType,isDOMElement=e=>isDOMNode(e)&&1===e.nodeType,isDOMNode=e=>{var t=getDefaultView(e);return!!t&&e instanceof t.Node},isDOMSelection=e=>{var t=e&&e.anchorNode&&getDefaultView(e.anchorNode);return!!t&&e instanceof t.Selection},isDOMText=e=>isDOMNode(e)&&3===e.nodeType,isPlainTextOnlyPaste=e=>e.clipboardData&&""!==e.clipboardData.getData("text/plain")&&1===e.clipboardData.types.length,normalizeDOMPoint=e=>{var[t,n]=e;if(isDOMElement(t)&&t.childNodes.length){var o=n===t.childNodes.length,r=o?n-1:n;for([t,r]=getEditableChildAndIndex(t,r,o?"backward":"forward"),o=r<n;isDOMElement(t)&&t.childNodes.length;){var a=o?t.childNodes.length-1:0;t=getEditableChild(t,a,o?"backward":"forward")}n=o&&null!=t.textContent?t.textContent.length:0}return[t,n]},hasShadowRoot=e=>{for(var t=e&&e.parentNode;t;){if("[object ShadowRoot]"===t.toString())return!0;t=t.parentNode}return!1},getEditableChildAndIndex=(e,t,n)=>{for(var{childNodes:o}=e,r=o[t],a=t,i=!1,s=!1;(isDOMComment(r)||isDOMElement(r)&&0===r.childNodes.length||isDOMElement(r)&&"false"===r.getAttribute("contenteditable"))&&(!i||!s);)a>=o.length?(i=!0,a=t-1,n="backward"):a<0?(s=!0,a=t+1,n="forward"):(r=o[a],t=a,a+="forward"===n?1:-1);return[r,t]},getEditableChild=(e,t,n)=>{var[o]=getEditableChildAndIndex(e,t,n);return o},getPlainText=e=>{var t="";if(isDOMText(e)&&e.nodeValue)return e.nodeValue;if(isDOMElement(e)){for(var n of Array.from(e.childNodes))t+=getPlainText(n);var o=getComputedStyle(e).getPropertyValue("display");"block"!==o&&"list"!==o&&"BR"!==e.tagName||(t+="\n")}return t},catchSlateFragment=/data-slate-fragment="(.+?)"/m,getSlateFragmentAttribute=e=>{var t=e.getData("text/html"),[,n]=t.match(catchSlateFragment)||[];return n},getSelection=e=>null!=e.getSelection?e.getSelection():document.getSelection(),isTrackedMutation=(e,t,n)=>{var{target:o}=t;if(isDOMElement(o)&&o.matches('[contentEditable="false"]'))return!1;var{document:r}=ReactEditor.getWindow(e);if(r.contains(o))return ReactEditor.hasDOMNode(e,o,{editable:!0});var a=n.find(e=>{var{addedNodes:t,removedNodes:n}=e;for(var r of t)if(r===o||r.contains(o))return!0;for(var a of n)if(a===o||a.contains(o))return!0});return!(!a||a===t)&&isTrackedMutation(e,a,n)},getActiveElement=()=>{for(var e=document.activeElement;null!==(t=e)&&void 0!==t&&t.shadowRoot&&null!==(n=e.shadowRoot)&&void 0!==n&&n.activeElement;){var t,n,o;e=null===(o=e)||void 0===o||null===(o=o.shadowRoot)||void 0===o?void 0:o.activeElement}return e},isBefore=(e,t)=>Boolean(e.compareDocumentPosition(t)&DOMNode.DOCUMENT_POSITION_PRECEDING),isAfter=(e,t)=>Boolean(e.compareDocumentPosition(t)&DOMNode.DOCUMENT_POSITION_FOLLOWING),n=0;class Key{constructor(){_defineProperty$2(this,"id",void 0),this.id="".concat(n++)}}var ReactEditor={androidPendingDiffs:e=>EDITOR_TO_PENDING_DIFFS.get(e),androidScheduleFlush:e=>{var t;null===(t=EDITOR_TO_SCHEDULE_FLUSH.get(e))||void 0===t||t()},blur:e=>{var t=ReactEditor.toDOMNode(e,e),n=ReactEditor.findDocumentOrShadowRoot(e);IS_FOCUSED.set(e,!1),n.activeElement===t&&t.blur()},deselect:e=>{var{selection:t}=e,n=ReactEditor.findDocumentOrShadowRoot(e),o=getSelection(n);o&&o.rangeCount>0&&o.removeAllRanges(),t&&Transforms.deselect(e)},findDocumentOrShadowRoot:e=>{var t=ReactEditor.toDOMNode(e,e),n=t.getRootNode();return n instanceof Document||n instanceof ShadowRoot?n:t.ownerDocument},findEventRange:(e,t)=>{"nativeEvent"in t&&(t=t.nativeEvent);var{clientX:n,clientY:o,target:r}=t;if(null==n||null==o)throw new Error("Cannot resolve a Slate range from a DOM event: ".concat(t));var a,i=ReactEditor.toSlateNode(e,t.target),s=ReactEditor.findPath(e,i);if(Element$2.isElement(i)&&Editor.isVoid(e,i)){var l=r.getBoundingClientRect(),c=e.isInline(i)?n-l.left<l.left+l.width-n:o-l.top<l.top+l.height-o,d=Editor.point(e,s,{edge:c?"start":"end"}),u=c?Editor.before(e,d):Editor.after(e,d);if(u)return Editor.range(e,u)}var{document:f}=ReactEditor.getWindow(e);if(f.caretRangeFromPoint)a=f.caretRangeFromPoint(n,o);else{var p=f.caretPositionFromPoint(n,o);p&&((a=f.createRange()).setStart(p.offsetNode,p.offset),a.setEnd(p.offsetNode,p.offset))}if(!a)throw new Error("Cannot resolve a Slate range from a DOM event: ".concat(t));return ReactEditor.toSlateRange(e,a,{exactMatch:!1,suppressThrow:!1})},findKey:(e,t)=>{var n=NODE_TO_KEY.get(t);return n||(n=new Key,NODE_TO_KEY.set(t,n)),n},findPath:(e,t)=>{for(var n=[],o=t;;){var r=NODE_TO_PARENT.get(o);if(null==r){if(Editor.isEditor(o))return n;break}var a=NODE_TO_INDEX.get(o);if(null==a)break;n.unshift(a),o=r}throw new Error("Unable to find the path for Slate node: ".concat(Scrubber.stringify(t)))},focus:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{retries:5};if(!IS_FOCUSED.get(e)){if(t.retries<=0)throw new Error("Could not set focus, editor seems stuck with pending operations");if(e.operations.length>0)setTimeout(()=>{ReactEditor.focus(e,{retries:t.retries-1})},10);else{var n=ReactEditor.toDOMNode(e,e),o=ReactEditor.findDocumentOrShadowRoot(e);if(o.activeElement!==n){if(e.selection&&o instanceof Document){var r=getSelection(o),a=ReactEditor.toDOMRange(e,e.selection);null==r||r.removeAllRanges(),null==r||r.addRange(a)}e.selection||Transforms.select(e,Editor.start(e,[])),IS_FOCUSED.set(e,!0),n.focus({preventScroll:!0})}}}},getWindow:e=>{var t=EDITOR_TO_WINDOW.get(e);if(!t)throw new Error("Unable to find a host window element for this editor");return t},hasDOMNode:function(e,t){var n,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{editable:r=!1}=o,a=ReactEditor.toDOMNode(e,e);try{n=isDOMElement(t)?t:t.parentElement}catch(e){if(e instanceof Error&&!e.message.includes('Permission denied to access property "nodeType"'))throw e}return!!n&&!(n.closest("[data-slate-editor]")!==a||r&&!n.isContentEditable&&("boolean"!=typeof n.isContentEditable||n.closest('[contenteditable="false"]')!==a)&&!n.getAttribute("data-slate-zero-width"))},hasEditableTarget:(e,t)=>isDOMNode(t)&&ReactEditor.hasDOMNode(e,t,{editable:!0}),hasRange:(e,t)=>{var{anchor:n,focus:o}=t;return Editor.hasPath(e,n.path)&&Editor.hasPath(e,o.path)},hasSelectableTarget:(e,t)=>ReactEditor.hasEditableTarget(e,t)||ReactEditor.isTargetInsideNonReadonlyVoid(e,t),hasTarget:(e,t)=>isDOMNode(t)&&ReactEditor.hasDOMNode(e,t),insertData:(e,t)=>{e.insertData(t)},insertFragmentData:(e,t)=>e.insertFragmentData(t),insertTextData:(e,t)=>e.insertTextData(t),isComposing:e=>!!IS_COMPOSING.get(e),isFocused:e=>!!IS_FOCUSED.get(e),isReadOnly:e=>!!IS_READ_ONLY.get(e),isTargetInsideNonReadonlyVoid:(e,t)=>{if(IS_READ_ONLY.get(e))return!1;var n=ReactEditor.hasTarget(e,t)&&ReactEditor.toSlateNode(e,t);return Element$2.isElement(n)&&Editor.isVoid(e,n)},setFragmentData:(e,t,n)=>e.setFragmentData(t,n),toDOMNode:(e,t)=>{var n=EDITOR_TO_KEY_TO_ELEMENT.get(e),o=Editor.isEditor(t)?EDITOR_TO_ELEMENT.get(e):null==n?void 0:n.get(ReactEditor.findKey(e,t));if(!o)throw new Error("Cannot resolve a DOM node from Slate node: ".concat(Scrubber.stringify(t)));return o},toDOMPoint:(e,t)=>{var n,[o]=Editor.node(e,t.path),r=ReactEditor.toDOMNode(e,o);Editor.void(e,{at:t})&&(t={path:t.path,offset:0});for(var a=Array.from(r.querySelectorAll("[data-slate-string], [data-slate-zero-width]")),i=0,s=0;s<a.length;s++){var l=a[s],c=l.childNodes[0];if(null!=c&&null!=c.textContent){var{length:d}=c.textContent,u=l.getAttribute("data-slate-length"),f=i+(null==u?d:parseInt(u,10)),p=a[s+1];if(t.offset===f&&null!=p&&p.hasAttribute("data-slate-mark-placeholder")){var _,m=p.childNodes[0];n=[m instanceof DOMText?m:p,null!==(_=p.textContent)&&void 0!==_&&_.startsWith("\ufeff")?1:0];break}if(t.offset<=f){n=[c,Math.min(d,Math.max(0,t.offset-i))];break}i=f}}if(!n)throw new Error("Cannot resolve a DOM point from Slate point: ".concat(Scrubber.stringify(t)));return n},toDOMRange:(e,t)=>{var{anchor:n,focus:o}=t,r=Range.isBackward(t),a=ReactEditor.toDOMPoint(e,n),i=Range.isCollapsed(t)?a:ReactEditor.toDOMPoint(e,o),s=ReactEditor.getWindow(e).document.createRange(),[l,c]=r?i:a,[d,u]=r?a:i,f=!!(isDOMElement(l)?l:l.parentElement).getAttribute("data-slate-zero-width"),p=!!(isDOMElement(d)?d:d.parentElement).getAttribute("data-slate-zero-width");return s.setStart(l,f?1:c),s.setEnd(d,p?1:u),s},toSlateNode:(e,t)=>{var n=isDOMElement(t)?t:t.parentElement;n&&!n.hasAttribute("data-slate-node")&&(n=n.closest("[data-slate-node]"));var o=n?ELEMENT_TO_NODE.get(n):null;if(!o)throw new Error("Cannot resolve a Slate node from DOM node: ".concat(n));return o},toSlatePoint:(e,t,n)=>{var{exactMatch:o,suppressThrow:r,searchDirection:a="backward"}=n,[i,s]=o?t:normalizeDOMPoint(t),l=i.parentNode,c=null,d=0;if(l){var u,f,p=ReactEditor.toDOMNode(e,e),_=l.closest('[data-slate-void="true"]'),m=_&&p.contains(_)?_:null,h=l.closest('[contenteditable="false"]'),g=h&&p.contains(h)?h:null,b=l.closest("[data-slate-leaf]"),v=null;if(b){if(c=b.closest('[data-slate-node="text"]')){var y=ReactEditor.getWindow(e).document.createRange();y.setStart(c,0),y.setEnd(i,s);var E=y.cloneContents();[...Array.prototype.slice.call(E.querySelectorAll("[data-slate-zero-width]")),...Array.prototype.slice.call(E.querySelectorAll("[contenteditable=false]"))].forEach(e=>{IS_ANDROID&&!o&&e.hasAttribute("data-slate-zero-width")&&e.textContent.length>0&&"\ufeff"!==e.textContext?e.textContent.startsWith("\ufeff")&&(e.textContent=e.textContent.slice(1)):e.parentNode.removeChild(e)}),d=E.textContent.length,v=c}}else if(m){for(var w=m.querySelectorAll("[data-slate-leaf]"),C=0;C<w.length;C++){var x=w[C];if(ReactEditor.hasDOMNode(e,x)){b=x;break}}b?(c=b.closest('[data-slate-node="text"]'),d=(v=b).textContent.length,v.querySelectorAll("[data-slate-zero-width]").forEach(e=>{d-=e.textContent.length})):d=1}else if(g){var R,S,D=e=>e?e.querySelectorAll("[data-slate-leaf]:not(:scope [data-slate-editor] [data-slate-leaf])"):[],T=g.closest('[data-slate-node="element"]');if("forward"===a)b=null!==(R=[...D(T),...D(null==T?void 0:T.nextElementSibling)].find(e=>isAfter(g,e)))&&void 0!==R?R:null;else b=null!==(S=[...D(null==T?void 0:T.previousElementSibling),...D(T)].findLast(e=>isBefore(g,e)))&&void 0!==S?S:null;b&&(c=b.closest('[data-slate-node="text"]'),v=b,"forward"===a?d=0:(d=v.textContent.length,v.querySelectorAll("[data-slate-zero-width]").forEach(e=>{d-=e.textContent.length})))}v&&d===v.textContent.length&&IS_ANDROID&&"z"===v.getAttribute("data-slate-zero-width")&&null!==(u=v.textContent)&&void 0!==u&&u.startsWith("\ufeff")&&(l.hasAttribute("data-slate-zero-width")||IS_FIREFOX&&null!==(f=v.textContent)&&void 0!==f&&f.endsWith("\n\n"))&&d--}if(IS_ANDROID&&!c&&!o){var A=l.hasAttribute("data-slate-node")?l:l.closest("[data-slate-node]");if(A&&ReactEditor.hasDOMNode(e,A,{editable:!0})){var O=ReactEditor.toSlateNode(e,A),{path:I,offset:k}=Editor.start(e,ReactEditor.findPath(e,O));return A.querySelector("[data-slate-leaf]")||(k=s),{path:I,offset:k}}}if(!c){if(r)return null;throw new Error("Cannot resolve a Slate point from DOM point: ".concat(t))}var N=ReactEditor.toSlateNode(e,c);return{path:ReactEditor.findPath(e,N),offset:d}},toSlateRange:(e,t,n)=>{var o,r,a,i,s,l,{exactMatch:c,suppressThrow:d}=n;if(isDOMSelection(t)?t.anchorNode:t.startContainer)if(isDOMSelection(t)){if(IS_FIREFOX&&t.rangeCount>1){i=t.focusNode;var u=t.getRangeAt(0),f=t.getRangeAt(t.rangeCount-1);if(i instanceof HTMLTableRowElement&&u.startContainer instanceof HTMLTableRowElement&&f.startContainer instanceof HTMLTableRowElement){function p(e){return e.childElementCount>0?p(e.children[0]):e}var _=u.startContainer,m=f.startContainer,h=p(_.children[u.startOffset]),g=p(m.children[f.startOffset]);s=0,r=g.childNodes.length>0?g.childNodes[0]:g,i=h.childNodes.length>0?h.childNodes[0]:h,a=g instanceof HTMLElement?g.innerHTML.length:0}else u.startContainer===i?(r=f.endContainer,a=f.endOffset,s=u.startOffset):(r=u.startContainer,a=u.endOffset,s=f.startOffset)}else r=t.anchorNode,a=t.anchorOffset,i=t.focusNode,s=t.focusOffset;l=IS_CHROME&&hasShadowRoot(r)||IS_FIREFOX?t.anchorNode===t.focusNode&&t.anchorOffset===t.focusOffset:t.isCollapsed}else r=t.startContainer,a=t.startOffset,i=t.endContainer,s=t.endOffset,l=t.collapsed;if(null==r||null==i||null==a||null==s)throw new Error("Cannot resolve a Slate range from DOM range: ".concat(t));IS_FIREFOX&&null!==(o=i.textContent)&&void 0!==o&&o.endsWith("\n\n")&&s===i.textContent.length&&s--;var b=ReactEditor.toSlatePoint(e,[r,a],{exactMatch:c,suppressThrow:d});if(!b)return null;var v=isBefore(r,i)||r===i&&s<a,y=l?b:ReactEditor.toSlatePoint(e,[i,s],{exactMatch:c,suppressThrow:d,searchDirection:v?"forward":"backward"});if(!y)return null;var E={anchor:b,focus:y};return Range.isExpanded(E)&&Range.isForward(E)&&isDOMElement(i)&&Editor.void(e,{at:E.focus,mode:"highest"})&&(E=Editor.unhangRange(e,E,{voids:!0})),E}};function verifyDiffState(e,t){var{path:n,diff:o}=t;if(!Editor.hasPath(e,n))return!1;var r=Node$1.get(e,n);if(!Text$1.isText(r))return!1;if(o.start!==r.text.length||0===o.text.length)return r.text.slice(o.start,o.start+o.text.length)===o.text;var a=Path.next(n);if(!Editor.hasPath(e,a))return!1;var i=Node$1.get(e,a);return Text$1.isText(i)&&i.text.startsWith(o.text)}function applyStringDiff(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return n.reduce((e,t)=>e.slice(0,t.start)+t.text+e.slice(t.end),e)}function longestCommonPrefixLength(e,t){for(var n=Math.min(e.length,t.length),o=0;o<n;o++)if(e.charAt(o)!==t.charAt(o))return o;return n}function longestCommonSuffixLength(e,t,n){for(var o=Math.min(e.length,t.length,n),r=0;r<o;r++)if(e.charAt(e.length-r-1)!==t.charAt(t.length-r-1))return r;return o}function normalizeStringDiff(e,t){var{start:n,end:o,text:r}=t,a=e.slice(n,o),i=longestCommonPrefixLength(a,r),s=longestCommonSuffixLength(a,r,Math.min(a.length-i,r.length-i)),l={start:n+i,end:o-s,text:r.slice(i,r.length-s)};return l.start===l.end&&0===l.text.length?null:l}function mergeStringDiffs(e,t,n){var o=Math.min(t.start,n.start),r=Math.max(0,Math.min(t.start+t.text.length,n.end)-n.start),a=applyStringDiff(e,t,n),i=Math.max(n.start+n.text.length,t.start+t.text.length+(t.start+t.text.length>n.start?n.text.length:0)-r),s=a.slice(o,i);return normalizeStringDiff(e,{start:o,end:Math.max(t.end,n.end-t.text.length+(t.end-t.start)),text:s})}function targetRange(e){var{path:t,diff:n}=e;return{anchor:{path:t,offset:n.start},focus:{path:t,offset:n.end}}}function normalizePoint(e,t){var{path:n,offset:o}=t;if(!Editor.hasPath(e,n))return null;var r=Node$1.get(e,n);if(!Text$1.isText(r))return null;var a=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:n});if(!a)return null;for(;o>r.text.length;){var i=Editor.next(e,{at:n,match:Text$1.isText});if(!i||!Path.isDescendant(i[1],a[1]))return null;o-=r.text.length,r=i[0],n=i[1]}return{path:n,offset:o}}function normalizeRange(e,t){var n=normalizePoint(e,t.anchor);if(!n)return null;if(Range.isCollapsed(t))return{anchor:n,focus:n};var o=normalizePoint(e,t.focus);return o?{anchor:n,focus:o}:null}function transformPendingPoint(e,t,n){var o=EDITOR_TO_PENDING_DIFFS.get(e),r=null==o?void 0:o.find(e=>{var{path:n}=e;return Path.equals(n,t.path)});if(!r||t.offset<=r.diff.start)return Point.transform(t,n,{affinity:"backward"});var{diff:a}=r;if(t.offset<=a.start+a.text.length){var i={path:t.path,offset:a.start},s=Point.transform(i,n,{affinity:"backward"});return s?{path:s.path,offset:s.offset+t.offset-a.start}:null}var l={path:t.path,offset:t.offset-a.text.length+a.end-a.start},c=Point.transform(l,n,{affinity:"backward"});return c?"split_node"===n.type&&Path.equals(n.path,t.path)&&l.offset<n.position&&a.start<n.position?c:{path:c.path,offset:c.offset+a.text.length-a.end+a.start}:null}function transformPendingRange(e,t,n){var o=transformPendingPoint(e,t.anchor,n);if(!o)return null;if(Range.isCollapsed(t))return{anchor:o,focus:o};var r=transformPendingPoint(e,t.focus,n);return r?{anchor:o,focus:r}:null}function transformTextDiff(e,t){var{path:n,diff:o,id:r}=e;switch(t.type){case"insert_text":return!Path.equals(t.path,n)||t.offset>=o.end?e:t.offset<=o.start?{diff:{start:t.text.length+o.start,end:t.text.length+o.end,text:o.text},id:r,path:n}:{diff:{start:o.start,end:o.end+t.text.length,text:o.text},id:r,path:n};case"remove_text":return!Path.equals(t.path,n)||t.offset>=o.end?e:t.offset+t.text.length<=o.start?{diff:{start:o.start-t.text.length,end:o.end-t.text.length,text:o.text},id:r,path:n}:{diff:{start:o.start,end:o.end-t.text.length,text:o.text},id:r,path:n};case"split_node":return!Path.equals(t.path,n)||t.position>=o.end?{diff:o,id:r,path:Path.transform(n,t,{affinity:"backward"})}:t.position>o.start?{diff:{start:o.start,end:Math.min(t.position,o.end),text:o.text},id:r,path:n}:{diff:{start:o.start-t.position,end:o.end-t.position,text:o.text},id:r,path:Path.transform(n,t,{affinity:"forward"})};case"merge_node":return Path.equals(t.path,n)?{diff:{start:o.start+t.position,end:o.end+t.position,text:o.text},id:r,path:Path.transform(n,t)}:{diff:o,id:r,path:Path.transform(n,t)}}var a=Path.transform(n,t);return a?{diff:o,path:a,id:r}:null}function ownKeys$6$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$6$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$6$1(Object(n),!0).forEach(function(t){_defineProperty$2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$6$1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var RESOLVE_DELAY=25,FLUSH_DELAY=200,debug=function(){},isDataTransfer=e=>"DataTransfer"===(null==e?void 0:e.constructor.name);function createAndroidInputManager(e){var{editor:t,scheduleOnDOMSelectionChange:n,onDOMSelectionChange:o}=e,r=!1,a=null,i=null,s=null,l=0,c=!1,d=()=>{var e=EDITOR_TO_PENDING_SELECTION.get(t);if(EDITOR_TO_PENDING_SELECTION.delete(t),e){var{selection:n}=t,o=normalizeRange(t,e);!o||n&&Range.equals(o,n)||Transforms.select(t,o)}},u=()=>{if(i&&(clearTimeout(i),i=null),s&&(clearTimeout(s),s=null),h()||m()){r||(r=!0,setTimeout(()=>r=!1)),m()&&(r="action");var e=t.selection&&Editor.rangeRef(t,t.selection,{affinity:"forward"});EDITOR_TO_USER_MARKS.set(t,t.marks),debug("flush",EDITOR_TO_PENDING_ACTION.get(t),EDITOR_TO_PENDING_DIFFS.get(t));for(var a,l=h();a=null===(u=EDITOR_TO_PENDING_DIFFS.get(t))||void 0===u?void 0:u[0];){var u,f,p=EDITOR_TO_PENDING_INSERTION_MARKS.get(t);void 0!==p&&(EDITOR_TO_PENDING_INSERTION_MARKS.delete(t),t.marks=p),p&&!1===c&&(c=null);var _=targetRange(a);t.selection&&Range.equals(t.selection,_)||Transforms.select(t,_),a.diff.text?Editor.insertText(t,a.diff.text):Editor.deleteFragment(t),EDITOR_TO_PENDING_DIFFS.set(t,null===(f=EDITOR_TO_PENDING_DIFFS.get(t))||void 0===f?void 0:f.filter(e=>{var{id:t}=e;return t!==a.id})),verifyDiffState(t,a)||(l=!1,EDITOR_TO_PENDING_ACTION.delete(t),EDITOR_TO_USER_MARKS.delete(t),r="action",EDITOR_TO_PENDING_SELECTION.delete(t),n.cancel(),o.cancel(),null==e||e.unref())}var g=null==e?void 0:e.unref();if(!g||EDITOR_TO_PENDING_SELECTION.get(t)||t.selection&&Range.equals(g,t.selection)||Transforms.select(t,g),m())(()=>{var e=EDITOR_TO_PENDING_ACTION.get(t);if(EDITOR_TO_PENDING_ACTION.delete(t),e){if(e.at){var n=Point.isPoint(e.at)?normalizePoint(t,e.at):normalizeRange(t,e.at);if(!n)return;var o=Editor.range(t,n);t.selection&&Range.equals(t.selection,o)||Transforms.select(t,n)}e.run()}})();else{l&&n(),n.flush(),o.flush(),d();var b=EDITOR_TO_USER_MARKS.get(t);EDITOR_TO_USER_MARKS.delete(t),void 0!==b&&(t.marks=b,t.onChange())}}else d()},f=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=EDITOR_TO_PLACEHOLDER_ELEMENT.get(t);n&&(h()||e?n.style.display="none":n.style.removeProperty("display"))},p=(e,n)=>{var o,r=null!==(o=EDITOR_TO_PENDING_DIFFS.get(t))&&void 0!==o?o:[];EDITOR_TO_PENDING_DIFFS.set(t,r);var a=Node$1.leaf(t,e),i=r.findIndex(t=>Path.equals(t.path,e));if(i<0)return normalizeStringDiff(a.text,n)&&r.push({path:e,diff:n,id:l++}),void f();var s=mergeStringDiffs(a.text,r[i].diff,n);if(!s)return r.splice(i,1),void f();r[i]=_objectSpread$6$1(_objectSpread$6$1({},r[i]),{},{diff:s})},_=function(e){var{at:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};c=!1,EDITOR_TO_PENDING_SELECTION.delete(t),n.cancel(),o.cancel(),m()&&u(),EDITOR_TO_PENDING_ACTION.set(t,{at:r,run:e}),s=setTimeout(u)},m=()=>!!EDITOR_TO_PENDING_ACTION.get(t),h=()=>{var e;return!(null===(e=EDITOR_TO_PENDING_DIFFS.get(t))||void 0===e||!e.length)},g=e=>{EDITOR_TO_PENDING_SELECTION.set(t,e),i&&(clearTimeout(i),i=null);var{selection:n}=t;if(e){var o=!n||!Path.equals(n.anchor.path,e.anchor.path),r=!n||!Path.equals(n.anchor.path.slice(0,-1),e.anchor.path.slice(0,-1));(o&&c||r)&&(c=!1),(o||h())&&(i=setTimeout(u,FLUSH_DELAY))}},b=()=>{m()||(s=setTimeout(u))};return{flush:u,scheduleFlush:b,hasPendingDiffs:h,hasPendingAction:m,hasPendingChanges:()=>m()||h(),isFlushing:()=>r,handleUserSelect:g,handleCompositionEnd:e=>{a&&clearTimeout(a),a=setTimeout(()=>{IS_COMPOSING.set(t,!1),u()},RESOLVE_DELAY)},handleCompositionStart:e=>{IS_COMPOSING.set(t,!0),a&&(clearTimeout(a),a=null)},handleDOMBeforeInput:e=>{var n;if(i&&(clearTimeout(i),i=null),!IS_NODE_MAP_DIRTY.get(t)){var{inputType:o}=e,r=null,a=e.dataTransfer||e.data||void 0;!1!==c&&"insertText"!==o&&"insertCompositionText"!==o&&(c=!1);var[s]=e.getTargetRanges();s&&(r=ReactEditor.toSlateRange(t,s,{exactMatch:!1,suppressThrow:!0}));var l=ReactEditor.getWindow(t).getSelection();if(!r&&l&&(s=l,r=ReactEditor.toSlateRange(t,l,{exactMatch:!1,suppressThrow:!0})),r=null!==(n=r)&&void 0!==n?n:t.selection){var d=!0;if(o.startsWith("delete")){if(Range.isExpanded(r)){var[u,f]=Range.edges(r);if(Node$1.leaf(t,u.path).text.length===u.offset&&0===f.offset){var m=Editor.next(t,{at:u.path,match:Text$1.isText});m&&Path.equals(m[1],f.path)&&(r={anchor:f,focus:f})}}var h=o.endsWith("Backward")?"backward":"forward",[v,y]=Range.edges(r),[E,w]=Editor.leaf(t,v.path),C={text:"",start:v.offset,end:y.offset},x=EDITOR_TO_PENDING_DIFFS.get(t),R=null==x?void 0:x.find(e=>Path.equals(e.path,w)),S=R?[R.diff,C]:[C];if(0===applyStringDiff(E.text,...S).length&&(d=!1),Range.isExpanded(r)){if(d&&Path.equals(r.anchor.path,r.focus.path)){var D={path:r.anchor.path,offset:v.offset},T=Editor.range(t,D,D);return g(T),p(r.anchor.path,{text:"",end:y.offset,start:v.offset})}return _(()=>Editor.deleteFragment(t,{direction:h}),{at:r})}}switch(o){case"deleteByComposition":case"deleteByCut":case"deleteByDrag":return _(()=>Editor.deleteFragment(t),{at:r});case"deleteContent":case"deleteContentForward":var{anchor:A}=r;if(d&&Range.isCollapsed(r)){var O=Node$1.leaf(t,A.path);if(A.offset<O.text.length)return p(A.path,{text:"",start:A.offset,end:A.offset+1})}return _(()=>Editor.deleteForward(t),{at:r});case"deleteContentBackward":var I,{anchor:k}=r,N=isDOMSelection(s)?s.isCollapsed:!(null===(I=s)||void 0===I||!I.collapsed);return d&&N&&Range.isCollapsed(r)&&k.offset>0?p(k.path,{text:"",start:k.offset-1,end:k.offset}):_(()=>Editor.deleteBackward(t),{at:r});case"deleteEntireSoftLine":return _(()=>{Editor.deleteBackward(t,{unit:"line"}),Editor.deleteForward(t,{unit:"line"})},{at:r});case"deleteHardLineBackward":return _(()=>Editor.deleteBackward(t,{unit:"block"}),{at:r});case"deleteSoftLineBackward":return _(()=>Editor.deleteBackward(t,{unit:"line"}),{at:r});case"deleteHardLineForward":return _(()=>Editor.deleteForward(t,{unit:"block"}),{at:r});case"deleteSoftLineForward":return _(()=>Editor.deleteForward(t,{unit:"line"}),{at:r});case"deleteWordBackward":return _(()=>Editor.deleteBackward(t,{unit:"word"}),{at:r});case"deleteWordForward":return _(()=>Editor.deleteForward(t,{unit:"word"}),{at:r});case"insertLineBreak":return _(()=>Editor.insertSoftBreak(t),{at:r});case"insertParagraph":return _(()=>Editor.insertBreak(t),{at:r});case"insertCompositionText":case"deleteCompositionText":case"insertFromComposition":case"insertFromDrop":case"insertFromPaste":case"insertFromYank":case"insertReplacementText":case"insertText":if(isDataTransfer(a))return _(()=>ReactEditor.insertData(t,a),{at:r});var j=null!=a?a:"";if(EDITOR_TO_PENDING_INSERTION_MARKS.get(t)&&(j=j.replace("\ufeff","")),"insertText"===o&&/.*\n.*\n$/.test(j)&&(j=j.slice(0,-1)),j.includes("\n"))return _(()=>{var e=j.split("\n");e.forEach((n,o)=>{n&&Editor.insertText(t,n),o!==e.length-1&&Editor.insertSoftBreak(t)})},{at:r});if(Path.equals(r.anchor.path,r.focus.path)){var[$,F]=Range.edges(r),P={start:$.offset,end:F.offset,text:j};if(j&&c&&"insertCompositionText"===o){var M=c.start+c.text.search(/\S|$/);P.start+P.text.search(/\S|$/)===M+1&&P.end===c.start+c.text.length?(P.start-=1,c=null,b()):c=!1}else c="insertText"===o&&(null===c?P:!(!c||!Range.isCollapsed(r)||c.end+c.text.length!==$.offset)&&_objectSpread$6$1(_objectSpread$6$1({},c),{},{text:c.text+j}));if(d)return void p($.path,P)}return _(()=>Editor.insertText(t,j),{at:r})}}}},handleKeyDown:e=>{h()||(f(!0),setTimeout(f))},handleDomMutations:e=>{var n;h()||m()||e.some(n=>isTrackedMutation(t,n,e))&&(null===(n=EDITOR_TO_FORCE_RENDER.get(t))||void 0===n||n())},handleInput:()=>{!m()&&h()||u()}}}function useIsMounted(){var e=React.useRef(!1);return React.useEffect(()=>(e.current=!0,()=>{e.current=!1}),[]),e.current}var useIsomorphicLayoutEffect$1=CAN_USE_DOM?React.useLayoutEffect:React.useEffect;function useMutationObserver(e,t,n){var[o]=React.useState(()=>new MutationObserver(t));useIsomorphicLayoutEffect$1(()=>{o.takeRecords()}),React.useEffect(()=>{if(!e.current)throw new Error("Failed to attach MutationObserver, `node` is undefined");return o.observe(e.current,n),()=>o.disconnect()},[o,e,n])}var _excluded$3=["node"];function ownKeys$5$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$5$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5$1(Object(n),!0).forEach(function(t){_defineProperty$2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$5$1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var MUTATION_OBSERVER_CONFIG$1={subtree:!0,childList:!0,characterData:!0},useAndroidInputManager=IS_ANDROID?e=>{var{node:t}=e,n=_objectWithoutProperties(e,_excluded$3);if(!IS_ANDROID)return null;var o=useSlateStatic(),r=useIsMounted(),[a]=React.useState(()=>createAndroidInputManager(_objectSpread$5$1({editor:o},n)));return useMutationObserver(t,a.handleDomMutations,MUTATION_OBSERVER_CONFIG$1),EDITOR_TO_SCHEDULE_FLUSH.set(o,a.scheduleFlush),r&&a.flush(),a}:()=>null,_excluded$2=["anchor","focus"],_excluded2$1=["anchor","focus"],shallowCompare=(e,t)=>Object.keys(e).length===Object.keys(t).length&&Object.keys(e).every(n=>t.hasOwnProperty(n)&&e[n]===t[n]),isDecorationFlagsEqual=(e,t)=>{var n=_objectWithoutProperties(e,_excluded$2),o=_objectWithoutProperties(t,_excluded2$1);return e[PLACEHOLDER_SYMBOL]===t[PLACEHOLDER_SYMBOL]&&shallowCompare(n,o)},isElementDecorationsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var o=e[n],r=t[n];if(!Range.equals(o,r)||!isDecorationFlagsEqual(o,r))return!1}return!0},isTextDecorationsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var o=e[n],r=t[n];if(o.anchor.offset!==r.anchor.offset||o.focus.offset!==r.focus.offset||!isDecorationFlagsEqual(o,r))return!1}return!0};function ownKeys$4$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$4$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$4$1(Object(n),!0).forEach(function(t){_defineProperty$2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$4$1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var String$1=e=>{var{isLast:t,leaf:n,parent:o,text:r}=e,a=useSlateStatic(),i=ReactEditor.findPath(a,r),s=Path.parent(i),l=Boolean(n[MARK_PLACEHOLDER_SYMBOL]);return a.isVoid(o)?React__default.default.createElement(ZeroWidthString,{length:Node$1.string(o).length}):""!==n.text||o.children[o.children.length-1]!==r||a.isInline(o)||""!==Editor.string(a,s)?""===n.text?React__default.default.createElement(ZeroWidthString,{isMarkPlaceholder:l}):t&&"\n"===n.text.slice(-1)?React__default.default.createElement(TextString,{isTrailing:!0,text:n.text}):React__default.default.createElement(TextString,{text:n.text}):React__default.default.createElement(ZeroWidthString,{isLineBreak:!0,isMarkPlaceholder:l})},TextString=e=>{var{text:t,isTrailing:n=!1}=e,o=React.useRef(null),r=()=>"".concat(null!=t?t:"").concat(n?"\n":""),[a]=React.useState(r);return useIsomorphicLayoutEffect$1(()=>{var e=r();o.current&&o.current.textContent!==e&&(o.current.textContent=e)}),React__default.default.createElement(MemoizedText$1,{ref:o},a)},MemoizedText$1=React.memo(React.forwardRef((e,t)=>React__default.default.createElement("span",{"data-slate-string":!0,ref:t},e.children))),ZeroWidthString=e=>{var{length:t=0,isLineBreak:n=!1,isMarkPlaceholder:o=!1}=e,r={"data-slate-zero-width":n?"n":"z","data-slate-length":t};return o&&(r["data-slate-mark-placeholder"]=!0),React__default.default.createElement("span",_objectSpread$4$1({},r),(IS_ANDROID||IS_IOS)&&n?null:"\ufeff",n?React__default.default.createElement("br",null):null)};function ownKeys$3$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$3$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3$1(Object(n),!0).forEach(function(t){_defineProperty$2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3$1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var PLACEHOLDER_DELAY=IS_ANDROID?300:0;function disconnectPlaceholderResizeObserver(e,t){e.current&&(e.current.disconnect(),t&&(e.current=null))}function clearTimeoutRef(e){e.current&&(clearTimeout(e.current),e.current=null)}var Leaf=e=>{var{leaf:t,isLast:n,text:o,parent:r,renderPlaceholder:a,renderLeaf:i=e=>React__default.default.createElement(DefaultLeaf,_objectSpread$3$1({},e))}=e,s=useSlateStatic(),l=React.useRef(null),c=React.useRef(null),[d,u]=React.useState(!1),f=React.useRef(null),p=React.useCallback(e=>{if(disconnectPlaceholderResizeObserver(l,null==e),null==e){var n;EDITOR_TO_PLACEHOLDER_ELEMENT.delete(s),null===(n=t.onPlaceholderResize)||void 0===n||n.call(t,null)}else{if(EDITOR_TO_PLACEHOLDER_ELEMENT.set(s,e),!l.current){var o=window.ResizeObserver||ResizeObserver$1;l.current=new o(()=>{var n;null===(n=t.onPlaceholderResize)||void 0===n||n.call(t,e)})}l.current.observe(e),c.current=e}},[c,t,s]),_=React__default.default.createElement(String$1,{isLast:n,leaf:t,parent:r,text:o}),m=Boolean(t[PLACEHOLDER_SYMBOL]);if(React.useEffect(()=>(m?f.current||(f.current=setTimeout(()=>{u(!0),f.current=null},PLACEHOLDER_DELAY)):(clearTimeoutRef(f),u(!1)),()=>clearTimeoutRef(f)),[m,u]),m&&d){var h={children:t.placeholder,attributes:{"data-slate-placeholder":!0,style:{position:"absolute",top:0,pointerEvents:"none",width:"100%",maxWidth:"100%",display:"block",opacity:"0.333",userSelect:"none",textDecoration:"none",WebkitUserModify:IS_WEBKIT?"inherit":void 0},contentEditable:!1,ref:p}};_=React__default.default.createElement(React__default.default.Fragment,null,a(h),_)}return i({attributes:{"data-slate-leaf":!0},children:_,leaf:t,text:o})},MemoizedLeaf=React__default.default.memo(Leaf,(e,t)=>t.parent===e.parent&&t.isLast===e.isLast&&t.renderLeaf===e.renderLeaf&&t.renderPlaceholder===e.renderPlaceholder&&t.text===e.text&&Text$1.equals(t.leaf,e.leaf)&&t.leaf[PLACEHOLDER_SYMBOL]===e.leaf[PLACEHOLDER_SYMBOL]),DefaultLeaf=e=>{var{attributes:t,children:n}=e;return React__default.default.createElement("span",_objectSpread$3$1({},t),n)},Text=e=>{for(var{decorations:t,isLast:n,parent:o,renderPlaceholder:r,renderLeaf:a,text:i}=e,s=useSlateStatic(),l=React.useRef(null),c=Text$1.decorations(i,t),d=ReactEditor.findKey(s,i),u=[],f=0;f<c.length;f++){var p=c[f];u.push(React__default.default.createElement(MemoizedLeaf,{isLast:n&&f===c.length-1,key:"".concat(d.id,"-").concat(f),renderPlaceholder:r,leaf:p,text:i,parent:o,renderLeaf:a}))}var _=React.useCallback(e=>{var t=EDITOR_TO_KEY_TO_ELEMENT.get(s);e?(null==t||t.set(d,e),NODE_TO_ELEMENT.set(i,e),ELEMENT_TO_NODE.set(e,i)):(null==t||t.delete(d),NODE_TO_ELEMENT.delete(i),l.current&&ELEMENT_TO_NODE.delete(l.current)),l.current=e},[l,s,d,i]);return React__default.default.createElement("span",{"data-slate-node":"text",ref:_},u)},MemoizedText=React__default.default.memo(Text,(e,t)=>t.parent===e.parent&&t.isLast===e.isLast&&t.renderLeaf===e.renderLeaf&&t.renderPlaceholder===e.renderPlaceholder&&t.text===e.text&&isTextDecorationsEqual(t.decorations,e.decorations));function ownKeys$2$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$2$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2$1(Object(n),!0).forEach(function(t){_defineProperty$2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2$1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Element$1=e=>{var{decorations:t,element:n,renderElement:o=e=>React__default.default.createElement(DefaultElement,_objectSpread$2$1({},e)),renderPlaceholder:r,renderLeaf:a,selection:i}=e,s=useSlateStatic(),l=useReadOnly(),c=s.isInline(n),d=ReactEditor.findKey(s,n),u=React.useCallback(e=>{var t=EDITOR_TO_KEY_TO_ELEMENT.get(s);e?(null==t||t.set(d,e),NODE_TO_ELEMENT.set(n,e),ELEMENT_TO_NODE.set(e,n)):(null==t||t.delete(d),NODE_TO_ELEMENT.delete(n))},[s,d,n]),f=useChildren({decorations:t,node:n,renderElement:o,renderPlaceholder:r,renderLeaf:a,selection:i}),p={"data-slate-node":"element",ref:u};if(c&&(p["data-slate-inline"]=!0),!c&&Editor.hasInlines(s,n)){var _=Node$1.string(n),m=direction_1(_);"rtl"===m&&(p.dir=m)}if(Editor.isVoid(s,n)){p["data-slate-void"]=!0,!l&&c&&(p.contentEditable=!1);var h=c?"span":"div",[[g]]=Node$1.texts(n);f=React__default.default.createElement(h,{"data-slate-spacer":!0,style:{height:"0",color:"transparent",outline:"none",position:"absolute"}},React__default.default.createElement(MemoizedText,{renderPlaceholder:r,decorations:[],isLast:!1,parent:n,text:g})),NODE_TO_INDEX.set(g,0),NODE_TO_PARENT.set(g,n)}return o({attributes:p,children:f,element:n})},MemoizedElement=React__default.default.memo(Element$1,(e,t)=>e.element===t.element&&e.renderElement===t.renderElement&&e.renderLeaf===t.renderLeaf&&e.renderPlaceholder===t.renderPlaceholder&&isElementDecorationsEqual(e.decorations,t.decorations)&&(e.selection===t.selection||!!e.selection&&!!t.selection&&Range.equals(e.selection,t.selection))),DefaultElement=e=>{var{attributes:t,children:n,element:o}=e,r=useSlateStatic().isInline(o)?"span":"div";return React__default.default.createElement(r,_objectSpread$2$1(_objectSpread$2$1({},t),{},{style:{position:"relative"}}),n)},DecorateContext=React.createContext(()=>[]),useDecorate=()=>React.useContext(DecorateContext),SelectedContext=React.createContext(!1),useSelected=()=>React.useContext(SelectedContext),useChildren=e=>{var{decorations:t,node:n,renderElement:o,renderPlaceholder:r,renderLeaf:a,selection:i}=e,s=useDecorate(),l=useSlateStatic();IS_NODE_MAP_DIRTY.set(l,!1);for(var c=ReactEditor.findPath(l,n),d=[],u=Element$2.isElement(n)&&!l.isInline(n)&&Editor.hasInlines(l,n),f=0;f<n.children.length;f++){var p=c.concat(f),_=n.children[f],m=ReactEditor.findKey(l,_),h=Editor.range(l,p),g=i&&Range.intersection(h,i),b=s([_,p]);for(var v of t){var y=Range.intersection(v,h);y&&b.push(y)}Element$2.isElement(_)?d.push(React__default.default.createElement(SelectedContext.Provider,{key:"provider-".concat(m.id),value:!!g},React__default.default.createElement(MemoizedElement,{decorations:b,element:_,key:m.id,renderElement:o,renderPlaceholder:r,renderLeaf:a,selection:g}))):d.push(React__default.default.createElement(MemoizedText,{decorations:b,key:m.id,isLast:u&&f===n.children.length-1,parent:n,renderPlaceholder:r,renderLeaf:a,text:_})),NODE_TO_INDEX.set(_,f),NODE_TO_PARENT.set(_,n)}return d},ReadOnlyContext=React.createContext(!1),useReadOnly=()=>React.useContext(ReadOnlyContext),SlateContext=React.createContext(null),useSlate=()=>{var e=React.useContext(SlateContext);if(!e)throw new Error("The `useSlate` hook must be used inside the <Slate> component's context.");var{editor:t}=e;return t};function useTrackUserInput(){var e=useSlateStatic(),t=React.useRef(!1),n=React.useRef(0),o=React.useCallback(()=>{if(!t.current){t.current=!0;var o=ReactEditor.getWindow(e);o.cancelAnimationFrame(n.current),n.current=o.requestAnimationFrame(()=>{t.current=!1})}},[e]);return React.useEffect(()=>()=>cancelAnimationFrame(n.current),[]),{receivedUserInput:t,onUserInput:o}}var TRIPLE_CLICK=3,HOTKEYS={bold:"mod+b",compose:["down","left","right","up","backspace","enter"],moveBackward:"left",moveForward:"right",moveWordBackward:"ctrl+left",moveWordForward:"ctrl+right",deleteBackward:"shift?+backspace",deleteForward:"shift?+delete",extendBackward:"shift+left",extendForward:"shift+right",italic:"mod+i",insertSoftBreak:"shift+enter",splitBlock:"enter",undo:"mod+z"},APPLE_HOTKEYS={moveLineBackward:"opt+up",moveLineForward:"opt+down",moveWordBackward:"opt+left",moveWordForward:"opt+right",deleteBackward:["ctrl+backspace","ctrl+h"],deleteForward:["ctrl+delete","ctrl+d"],deleteLineBackward:"cmd+shift?+backspace",deleteLineForward:["cmd+shift?+delete","ctrl+k"],deleteWordBackward:"opt+shift?+backspace",deleteWordForward:"opt+shift?+delete",extendLineBackward:"opt+shift+up",extendLineForward:"opt+shift+down",redo:"cmd+shift+z",transposeCharacter:"ctrl+t"},WINDOWS_HOTKEYS={deleteWordBackward:"ctrl+shift?+backspace",deleteWordForward:"ctrl+shift?+delete",redo:["ctrl+y","ctrl+shift+z"]},create=e=>{var t=HOTKEYS[e],n=APPLE_HOTKEYS[e],o=WINDOWS_HOTKEYS[e],r=t&&isHotkey_1(t);n&&isHotkey_1(n);var a=o&&isHotkey_1(o);return e=>!(!r||!r(e))||!(!a||!a(e))},Hotkeys={isBold:create("bold"),isCompose:create("compose"),isMoveBackward:create("moveBackward"),isMoveForward:create("moveForward"),isDeleteBackward:create("deleteBackward"),isDeleteForward:create("deleteForward"),isDeleteLineBackward:create("deleteLineBackward"),isDeleteLineForward:create("deleteLineForward"),isDeleteWordBackward:create("deleteWordBackward"),isDeleteWordForward:create("deleteWordForward"),isExtendBackward:create("extendBackward"),isExtendForward:create("extendForward"),isExtendLineBackward:create("extendLineBackward"),isExtendLineForward:create("extendLineForward"),isItalic:create("italic"),isMoveLineBackward:create("moveLineBackward"),isMoveLineForward:create("moveLineForward"),isMoveWordBackward:create("moveWordBackward"),isMoveWordForward:create("moveWordForward"),isRedo:create("redo"),isSoftBreak:create("insertSoftBreak"),isSplitBlock:create("splitBlock"),isTransposeCharacter:create("transposeCharacter"),isUndo:create("undo")},createRestoreDomManager=(e,t)=>{var n=[],o=()=>{n=[]};return{registerMutations:o=>{if(t.current){var r=o.filter(t=>isTrackedMutation(e,t,o));n.push(...r)}},restoreDOM:function(){n.length>0&&(n.reverse().forEach(e=>{"characterData"!==e.type&&(e.removedNodes.forEach(t=>{e.target.insertBefore(t,e.nextSibling)}),e.addedNodes.forEach(t=>{e.target.removeChild(t)}))}),o())},clear:o}},MUTATION_OBSERVER_CONFIG={subtree:!0,childList:!0,characterData:!0,characterDataOldValue:!0};class RestoreDOMComponent extends React.Component{constructor(){super(...arguments),_defineProperty$2(this,"context",null),_defineProperty$2(this,"manager",null),_defineProperty$2(this,"mutationObserver",null)}observe(){var e,{node:t}=this.props;if(!t.current)throw new Error("Failed to attach MutationObserver, `node` is undefined");null===(e=this.mutationObserver)||void 0===e||e.observe(t.current,MUTATION_OBSERVER_CONFIG)}componentDidMount(){var{receivedUserInput:e}=this.props,t=this.context;this.manager=createRestoreDomManager(t,e),this.mutationObserver=new MutationObserver(this.manager.registerMutations),this.observe()}getSnapshotBeforeUpdate(){var e,t,n,o,r=null===(e=this.mutationObserver)||void 0===e?void 0:e.takeRecords();null!=r&&r.length&&(null===(o=this.manager)||void 0===o||o.registerMutations(r));return null===(t=this.mutationObserver)||void 0===t||t.disconnect(),null===(n=this.manager)||void 0===n||n.restoreDOM(),null}componentDidUpdate(){var e;null===(e=this.manager)||void 0===e||e.clear(),this.observe()}componentWillUnmount(){var e;null===(e=this.mutationObserver)||void 0===e||e.disconnect()}render(){return this.props.children}}_defineProperty$2(RestoreDOMComponent,"contextType",EditorContext);var RestoreDOM=IS_ANDROID?RestoreDOMComponent:e=>{var{children:t}=e;return React__default.default.createElement(React__default.default.Fragment,null,t)},ComposingContext=React.createContext(!1),_excluded$1=["autoFocus","decorate","onDOMBeforeInput","placeholder","readOnly","renderElement","renderLeaf","renderPlaceholder","scrollSelectionIntoView","style","as","disableDefaultStyles"],_excluded2=["text"];function ownKeys$1$3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$1$3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1$3(Object(n),!0).forEach(function(t){_defineProperty$2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1$3(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Children=e=>React__default.default.createElement(React__default.default.Fragment,null,useChildren(e)),Editable=React.forwardRef((e,t)=>{var n=React.useCallback(e=>React__default.default.createElement(DefaultPlaceholder,_objectSpread$1$3({},e)),[]),{autoFocus:o,decorate:r=defaultDecorate,onDOMBeforeInput:a,placeholder:i,readOnly:s=!1,renderElement:l,renderLeaf:c,renderPlaceholder:d=n,scrollSelectionIntoView:u=defaultScrollSelectionIntoView,style:f={},as:p="div",disableDefaultStyles:_=!1}=e,m=_objectWithoutProperties(e,_excluded$1),h=useSlate(),[g,b]=React.useState(!1),v=React.useRef(null),y=React.useRef([]),[E,w]=React.useState(),C=React.useRef(!1),{onUserInput:x,receivedUserInput:R}=useTrackUserInput(),[,S]=React.useReducer(e=>e+1,0);EDITOR_TO_FORCE_RENDER.set(h,S),IS_READ_ONLY.set(h,s);var D=React.useMemo(()=>({isDraggingInternally:!1,isUpdatingSelection:!1,latestElement:null,hasMarkPlaceholder:!1}),[]);React.useEffect(()=>{v.current&&o&&v.current.focus()},[o]);var T=React.useRef(),A=React.useMemo(()=>throttle_1(()=>{if(IS_NODE_MAP_DIRTY.get(h))A();else{var e=ReactEditor.toDOMNode(h,h).getRootNode();if(!C.current&&IS_WEBKIT&&e instanceof ShadowRoot)return C.current=!0,getActiveElement()?document.execCommand("indent"):Transforms.deselect(h),void(C.current=!1);var t=T.current;if((IS_ANDROID||!ReactEditor.isComposing(h))&&(!D.isUpdatingSelection||null!=t&&t.isFlushing())&&!D.isDraggingInternally){var n=ReactEditor.findDocumentOrShadowRoot(h),{activeElement:o}=n,r=ReactEditor.toDOMNode(h,h),a=getSelection(n);if(o===r?(D.latestElement=o,IS_FOCUSED.set(h,!0)):IS_FOCUSED.delete(h),!a)return Transforms.deselect(h);var{anchorNode:i,focusNode:l}=a,c=ReactEditor.hasEditableTarget(h,i)||ReactEditor.isTargetInsideNonReadonlyVoid(h,i),d=ReactEditor.hasTarget(h,l);if(c&&d){var u=ReactEditor.toSlateRange(h,a,{exactMatch:!1,suppressThrow:!0});u&&(ReactEditor.isComposing(h)||null!=t&&t.hasPendingChanges()||null!=t&&t.isFlushing()?null==t||t.handleUserSelect(u):Transforms.select(h,u))}!s||c&&d||Transforms.deselect(h)}}},100),[h,s,D]),O=React.useMemo(()=>debounce_1(A,0),[A]);T.current=useAndroidInputManager({node:v,onDOMSelectionChange:A,scheduleOnDOMSelectionChange:O}),useIsomorphicLayoutEffect$1(()=>{var e,t,n;v.current&&(n=getDefaultView(v.current))?(EDITOR_TO_WINDOW.set(h,n),EDITOR_TO_ELEMENT.set(h,v.current),NODE_TO_ELEMENT.set(h,v.current),ELEMENT_TO_NODE.set(v.current,h)):NODE_TO_ELEMENT.delete(h);var{selection:o}=h,r=ReactEditor.findDocumentOrShadowRoot(h),a=getSelection(r);if(a&&ReactEditor.isFocused(h)&&(null===(e=T.current)||void 0===e||!e.hasPendingAction())){var i=e=>{var t="None"!==a.type;if(o||t){var n,r=a.focusNode;if(IS_FIREFOX&&a.rangeCount>1){var i=a.getRangeAt(0),s=a.getRangeAt(a.rangeCount-1);n=i.startContainer===r?s.endContainer:i.startContainer}else n=a.anchorNode;var l=EDITOR_TO_ELEMENT.get(h),c=!1;if(l.contains(n)&&l.contains(r)&&(c=!0),t&&c&&o&&!e){var d=ReactEditor.toSlateRange(h,a,{exactMatch:!0,suppressThrow:!0});if(d&&Range.equals(d,o)){var f;if(!D.hasMarkPlaceholder)return;if(null!==(f=n)&&void 0!==f&&null!==(f=f.parentElement)&&void 0!==f&&f.hasAttribute("data-slate-mark-placeholder"))return}}if(!o||ReactEditor.hasRange(h,o)){D.isUpdatingSelection=!0;var p=o&&ReactEditor.toDOMRange(h,o);return p?(ReactEditor.isComposing(h)&&!IS_ANDROID?a.collapseToEnd():Range.isBackward(o)?a.setBaseAndExtent(p.endContainer,p.endOffset,p.startContainer,p.startOffset):a.setBaseAndExtent(p.startContainer,p.startOffset,p.endContainer,p.endOffset),u(h,p)):a.removeAllRanges(),p}h.selection=ReactEditor.toSlateRange(h,a,{exactMatch:!1,suppressThrow:!0})}};a.rangeCount<=1&&i();var s="action"===(null===(t=T.current)||void 0===t?void 0:t.isFlushing());if(IS_ANDROID&&s){var l=null,c=requestAnimationFrame(()=>{if(s){var e=e=>{try{ReactEditor.toDOMNode(h,h).focus(),i(e)}catch(e){}};e(),l=setTimeout(()=>{e(!0),D.isUpdatingSelection=!1})}});return()=>{cancelAnimationFrame(c),l&&clearTimeout(l)}}setTimeout(()=>{D.isUpdatingSelection=!1})}});var I=React.useCallback(e=>{var t=ReactEditor.toDOMNode(h,h).getRootNode();if(null!=C&&C.current&&IS_WEBKIT&&t instanceof ShadowRoot){var n=e.getTargetRanges()[0],o=new window.Range;o.setStart(n.startContainer,n.startOffset),o.setEnd(n.endContainer,n.endOffset);var r=ReactEditor.toSlateRange(h,o,{exactMatch:!1,suppressThrow:!1});return Transforms.select(h,r),e.preventDefault(),void e.stopImmediatePropagation()}if(x(),!s&&ReactEditor.hasEditableTarget(h,e.target)&&!isDOMEventHandled(e,a)){var i;if(T.current)return T.current.handleDOMBeforeInput(e);O.flush(),A.flush();var{selection:l}=h,{inputType:c}=e,d=e.dataTransfer||e.data||void 0,u="insertCompositionText"===c||"deleteCompositionText"===c;if(u&&ReactEditor.isComposing(h))return;var f=!1;if("insertText"===c&&l&&Range.isCollapsed(l)&&e.data&&1===e.data.length&&/[a-z ]/i.test(e.data)&&0!==l.anchor.offset&&(f=!0,h.marks&&(f=!1),!IS_NODE_MAP_DIRTY.get(h))){var p,_,{anchor:m}=l,[g,v]=ReactEditor.toDOMPoint(h,m),E=null===(p=g.parentElement)||void 0===p?void 0:p.closest("a"),w=ReactEditor.getWindow(h);if(f&&E&&ReactEditor.hasDOMNode(h,E)){var R,S=null==w?void 0:w.document.createTreeWalker(E,NodeFilter.SHOW_TEXT).lastChild();S===g&&(null===(R=S.textContent)||void 0===R?void 0:R.length)===v&&(f=!1)}if(f&&g.parentElement&&"pre"===(null==w||null===(_=w.getComputedStyle(g.parentElement))||void 0===_?void 0:_.whiteSpace)){var D=Editor.above(h,{at:m.path,match:e=>Element$2.isElement(e)&&Editor.isBlock(h,e)});D&&Node$1.string(D[0]).includes("\t")&&(f=!1)}}if((!c.startsWith("delete")||c.startsWith("deleteBy"))&&!IS_NODE_MAP_DIRTY.get(h)){var[I]=e.getTargetRanges();if(I){var k=ReactEditor.toSlateRange(h,I,{exactMatch:!1,suppressThrow:!1});if(!l||!Range.equals(l,k)){f=!1;var N=!u&&h.selection&&Editor.rangeRef(h,h.selection);Transforms.select(h,k),N&&EDITOR_TO_USER_SELECTION.set(h,N)}}}if(u)return;if(f||e.preventDefault(),l&&Range.isExpanded(l)&&c.startsWith("delete")){var j=c.endsWith("Backward")?"backward":"forward";return void Editor.deleteFragment(h,{direction:j})}switch(c){case"deleteByComposition":case"deleteByCut":case"deleteByDrag":Editor.deleteFragment(h);break;case"deleteContent":case"deleteContentForward":Editor.deleteForward(h);break;case"deleteContentBackward":Editor.deleteBackward(h);break;case"deleteEntireSoftLine":Editor.deleteBackward(h,{unit:"line"}),Editor.deleteForward(h,{unit:"line"});break;case"deleteHardLineBackward":Editor.deleteBackward(h,{unit:"block"});break;case"deleteSoftLineBackward":Editor.deleteBackward(h,{unit:"line"});break;case"deleteHardLineForward":Editor.deleteForward(h,{unit:"block"});break;case"deleteSoftLineForward":Editor.deleteForward(h,{unit:"line"});break;case"deleteWordBackward":Editor.deleteBackward(h,{unit:"word"});break;case"deleteWordForward":Editor.deleteForward(h,{unit:"word"});break;case"insertLineBreak":Editor.insertSoftBreak(h);break;case"insertParagraph":Editor.insertBreak(h);break;case"insertFromComposition":case"insertFromDrop":case"insertFromPaste":case"insertFromYank":case"insertReplacementText":case"insertText":"insertFromComposition"===c&&ReactEditor.isComposing(h)&&(b(!1),IS_COMPOSING.set(h,!1)),"DataTransfer"===(null==d?void 0:d.constructor.name)?ReactEditor.insertData(h,d):"string"==typeof d&&(f?y.current.push(()=>Editor.insertText(h,d)):Editor.insertText(h,d))}var $=null===(i=EDITOR_TO_USER_SELECTION.get(h))||void 0===i?void 0:i.unref();EDITOR_TO_USER_SELECTION.delete(h),!$||h.selection&&Range.equals(h.selection,$)||Transforms.select(h,$)}},[h,A,x,a,s,O]),k=React.useCallback(e=>{null==e?(A.cancel(),O.cancel(),EDITOR_TO_ELEMENT.delete(h),NODE_TO_ELEMENT.delete(h),v.current&&HAS_BEFORE_INPUT_SUPPORT&&v.current.removeEventListener("beforeinput",I)):HAS_BEFORE_INPUT_SUPPORT&&e.addEventListener("beforeinput",I),v.current=e,"function"==typeof t?t(e):t&&(t.current=e)},[A,O,h,I,t]);useIsomorphicLayoutEffect$1(()=>{var e=ReactEditor.getWindow(h);e.document.addEventListener("selectionchange",O);var t=()=>{D.isDraggingInternally=!1};return e.document.addEventListener("dragend",t),e.document.addEventListener("drop",t),()=>{e.document.removeEventListener("selectionchange",O),e.document.removeEventListener("dragend",t),e.document.removeEventListener("drop",t)}},[O,D]);var N=r([h,[]]),j=i&&1===h.children.length&&1===Array.from(Node$1.texts(h)).length&&""===Node$1.string(h)&&!g,$=React.useCallback(e=>{var t;e&&j?w(null===(t=e.getBoundingClientRect())||void 0===t?void 0:t.height):w(void 0)},[j]);if(j){var F=Editor.start(h,[]);N.push({[PLACEHOLDER_SYMBOL]:!0,placeholder:i,onPlaceholderResize:$,anchor:F,focus:F})}var{marks:P}=h;if(D.hasMarkPlaceholder=!1,h.selection&&Range.isCollapsed(h.selection)&&P){var{anchor:M}=h.selection,B=Node$1.leaf(h,M.path),L=_objectWithoutProperties(B,_excluded2);if(!Text$1.equals(B,P,{loose:!0})){D.hasMarkPlaceholder=!0;var U=Object.fromEntries(Object.keys(L).map(e=>[e,null]));N.push(_objectSpread$1$3(_objectSpread$1$3(_objectSpread$1$3({[MARK_PLACEHOLDER_SYMBOL]:!0},U),P),{},{anchor:M,focus:M}))}}return React.useEffect(()=>{setTimeout(()=>{var{selection:e}=h;if(e){var{anchor:t}=e,n=Node$1.leaf(h,t.path);if(P&&!Text$1.equals(n,P,{loose:!0}))return void EDITOR_TO_PENDING_INSERTION_MARKS.set(h,P)}EDITOR_TO_PENDING_INSERTION_MARKS.delete(h)})}),React__default.default.createElement(ReadOnlyContext.Provider,{value:s},React__default.default.createElement(ComposingContext.Provider,{value:g},React__default.default.createElement(DecorateContext.Provider,{value:r},React__default.default.createElement(RestoreDOM,{node:v,receivedUserInput:R},React__default.default.createElement(p,_objectSpread$1$3(_objectSpread$1$3({role:s?void 0:"textbox","aria-multiline":!s||void 0},m),{},{spellCheck:!(!HAS_BEFORE_INPUT_SUPPORT&&CAN_USE_DOM)&&m.spellCheck,autoCorrect:HAS_BEFORE_INPUT_SUPPORT||!CAN_USE_DOM?m.autoCorrect:"false",autoCapitalize:HAS_BEFORE_INPUT_SUPPORT||!CAN_USE_DOM?m.autoCapitalize:"false","data-slate-editor":!0,"data-slate-node":"value",contentEditable:!s,zindex:-1,suppressContentEditableWarning:!0,ref:k,style:_objectSpread$1$3(_objectSpread$1$3({},_?{}:_objectSpread$1$3({position:"relative",whiteSpace:"pre-wrap",wordWrap:"break-word"},E?{minHeight:E}:{})),f),onBeforeInput:React.useCallback(e=>{if(!HAS_BEFORE_INPUT_SUPPORT&&!s&&!isEventHandled(e,m.onBeforeInput)&&ReactEditor.hasSelectableTarget(h,e.target)&&(e.preventDefault(),!ReactEditor.isComposing(h))){var t=e.data;Editor.insertText(h,t)}},[m.onBeforeInput,h,s]),onInput:React.useCallback(e=>{if(!isEventHandled(e,m.onInput))if(T.current)T.current.handleInput();else{for(var t of y.current)t();if(y.current=[],!ReactEditor.isFocused(h)){var n=e.nativeEvent,o=h;if("historyUndo"===n.inputType&&"function"==typeof o.undo)return void o.undo();if("historyRedo"===n.inputType&&"function"==typeof o.redo)return void o.redo()}}},[m.onInput,h]),onBlur:React.useCallback(e=>{if(!s&&!D.isUpdatingSelection&&ReactEditor.hasSelectableTarget(h,e.target)&&!isEventHandled(e,m.onBlur)){var t=ReactEditor.findDocumentOrShadowRoot(h);if(D.latestElement!==t.activeElement){var{relatedTarget:n}=e;if(!(n===ReactEditor.toDOMNode(h,h)||isDOMElement(n)&&n.hasAttribute("data-slate-spacer"))){if(null!=n&&isDOMNode(n)&&ReactEditor.hasDOMNode(h,n)){var o=ReactEditor.toSlateNode(h,n);if(Element$2.isElement(o)&&!h.isVoid(o))return}if(IS_WEBKIT){var r=getSelection(t);null==r||r.removeAllRanges()}IS_FOCUSED.delete(h)}}}},[s,D.isUpdatingSelection,D.latestElement,h,m.onBlur]),onClick:React.useCallback(e=>{if(ReactEditor.hasTarget(h,e.target)&&!isEventHandled(e,m.onClick)&&isDOMNode(e.target)){var t=ReactEditor.toSlateNode(h,e.target),n=ReactEditor.findPath(h,t);if(!Editor.hasPath(h,n)||Node$1.get(h,n)!==t)return;if(e.detail===TRIPLE_CLICK&&n.length>=1){var o=n;if(!Element$2.isElement(t)||!Editor.isBlock(h,t)){var r,a=Editor.above(h,{match:e=>Element$2.isElement(e)&&Editor.isBlock(h,e),at:n});o=null!==(r=null==a?void 0:a[1])&&void 0!==r?r:n.slice(0,1)}var i=Editor.range(h,o);return void Transforms.select(h,i)}if(s)return;var l=Editor.start(h,n),c=Editor.end(h,n),d=Editor.void(h,{at:l}),u=Editor.void(h,{at:c});if(d&&u&&Path.equals(d[1],u[1])){var f=Editor.range(h,l);Transforms.select(h,f)}}},[h,m.onClick,s]),onCompositionEnd:React.useCallback(e=>{if(ReactEditor.hasSelectableTarget(h,e.target)){var t;if(ReactEditor.isComposing(h)&&Promise.resolve().then(()=>{b(!1),IS_COMPOSING.set(h,!1)}),null===(t=T.current)||void 0===t||t.handleCompositionEnd(e),isEventHandled(e,m.onCompositionEnd)||IS_ANDROID)return;if(!IS_WEBKIT&&!IS_FIREFOX_LEGACY&&!IS_IOS&&!IS_WECHATBROWSER&&!IS_UC_MOBILE&&e.data){var n=EDITOR_TO_PENDING_INSERTION_MARKS.get(h);EDITOR_TO_PENDING_INSERTION_MARKS.delete(h),void 0!==n&&(EDITOR_TO_USER_MARKS.set(h,h.marks),h.marks=n),Editor.insertText(h,e.data);var o=EDITOR_TO_USER_MARKS.get(h);EDITOR_TO_USER_MARKS.delete(h),void 0!==o&&(h.marks=o)}}},[m.onCompositionEnd,h]),onCompositionUpdate:React.useCallback(e=>{ReactEditor.hasSelectableTarget(h,e.target)&&!isEventHandled(e,m.onCompositionUpdate)&&(ReactEditor.isComposing(h)||(b(!0),IS_COMPOSING.set(h,!0)))},[m.onCompositionUpdate,h]),onCompositionStart:React.useCallback(e=>{if(ReactEditor.hasSelectableTarget(h,e.target)){var t;if(null===(t=T.current)||void 0===t||t.handleCompositionStart(e),isEventHandled(e,m.onCompositionStart)||IS_ANDROID)return;b(!0);var{selection:n}=h;if(n&&Range.isExpanded(n))return void Editor.deleteFragment(h)}},[m.onCompositionStart,h]),onCopy:React.useCallback(e=>{!ReactEditor.hasSelectableTarget(h,e.target)||isEventHandled(e,m.onCopy)||isDOMEventTargetInput(e)||(e.preventDefault(),ReactEditor.setFragmentData(h,e.clipboardData,"copy"))},[m.onCopy,h]),onCut:React.useCallback(e=>{if(!s&&ReactEditor.hasSelectableTarget(h,e.target)&&!isEventHandled(e,m.onCut)&&!isDOMEventTargetInput(e)){e.preventDefault(),ReactEditor.setFragmentData(h,e.clipboardData,"cut");var{selection:t}=h;if(t)if(Range.isExpanded(t))Editor.deleteFragment(h);else{var n=Node$1.parent(h,t.anchor.path);Editor.isVoid(h,n)&&Transforms.delete(h)}}},[s,h,m.onCut]),onDragOver:React.useCallback(e=>{if(ReactEditor.hasTarget(h,e.target)&&!isEventHandled(e,m.onDragOver)){var t=ReactEditor.toSlateNode(h,e.target);Element$2.isElement(t)&&Editor.isVoid(h,t)&&e.preventDefault()}},[m.onDragOver,h]),onDragStart:React.useCallback(e=>{if(!s&&ReactEditor.hasTarget(h,e.target)&&!isEventHandled(e,m.onDragStart)){var t=ReactEditor.toSlateNode(h,e.target),n=ReactEditor.findPath(h,t);if(Element$2.isElement(t)&&Editor.isVoid(h,t)||Editor.void(h,{at:n,voids:!0})){var o=Editor.range(h,n);Transforms.select(h,o)}D.isDraggingInternally=!0,ReactEditor.setFragmentData(h,e.dataTransfer,"drag")}},[s,h,m.onDragStart,D]),onDrop:React.useCallback(e=>{if(!s&&ReactEditor.hasTarget(h,e.target)&&!isEventHandled(e,m.onDrop)){e.preventDefault();var t=h.selection,n=ReactEditor.findEventRange(h,e),o=e.dataTransfer;Transforms.select(h,n),D.isDraggingInternally&&(!t||Range.equals(t,n)||Editor.void(h,{at:n,voids:!0})||Transforms.delete(h,{at:t})),ReactEditor.insertData(h,o),ReactEditor.isFocused(h)||ReactEditor.focus(h)}},[s,h,m.onDrop,D]),onDragEnd:React.useCallback(e=>{!s&&D.isDraggingInternally&&m.onDragEnd&&ReactEditor.hasTarget(h,e.target)&&m.onDragEnd(e)},[s,D,m,h]),onFocus:React.useCallback(e=>{if(!s&&!D.isUpdatingSelection&&ReactEditor.hasEditableTarget(h,e.target)&&!isEventHandled(e,m.onFocus)){var t=ReactEditor.toDOMNode(h,h),n=ReactEditor.findDocumentOrShadowRoot(h);if(D.latestElement=n.activeElement,IS_FIREFOX&&e.target!==t)return void t.focus();IS_FOCUSED.set(h,!0)}},[s,D,h,m.onFocus]),onKeyDown:React.useCallback(e=>{if(!s&&ReactEditor.hasEditableTarget(h,e.target)){var t;null===(t=T.current)||void 0===t||t.handleKeyDown(e);var{nativeEvent:n}=e;if(ReactEditor.isComposing(h)&&!1===n.isComposing&&(IS_COMPOSING.set(h,!1),b(!1)),isEventHandled(e,m.onKeyDown)||ReactEditor.isComposing(h))return;var{selection:o}=h,r=h.children[null!==o?o.focus.path[0]:0],a="rtl"===direction_1(Node$1.string(r));if(Hotkeys.isRedo(n)){e.preventDefault();var i=h;return void("function"==typeof i.redo&&i.redo())}if(Hotkeys.isUndo(n)){e.preventDefault();var l=h;return void("function"==typeof l.undo&&l.undo())}if(Hotkeys.isMoveLineBackward(n))return e.preventDefault(),void Transforms.move(h,{unit:"line",reverse:!0});if(Hotkeys.isMoveLineForward(n))return e.preventDefault(),void Transforms.move(h,{unit:"line"});if(Hotkeys.isExtendLineBackward(n))return e.preventDefault(),void Transforms.move(h,{unit:"line",edge:"focus",reverse:!0});if(Hotkeys.isExtendLineForward(n))return e.preventDefault(),void Transforms.move(h,{unit:"line",edge:"focus"});if(Hotkeys.isMoveBackward(n))return e.preventDefault(),void(o&&Range.isCollapsed(o)?Transforms.move(h,{reverse:!a}):Transforms.collapse(h,{edge:a?"end":"start"}));if(Hotkeys.isMoveForward(n))return e.preventDefault(),void(o&&Range.isCollapsed(o)?Transforms.move(h,{reverse:a}):Transforms.collapse(h,{edge:a?"start":"end"}));if(Hotkeys.isMoveWordBackward(n))return e.preventDefault(),o&&Range.isExpanded(o)&&Transforms.collapse(h,{edge:"focus"}),void Transforms.move(h,{unit:"word",reverse:!a});if(Hotkeys.isMoveWordForward(n))return e.preventDefault(),o&&Range.isExpanded(o)&&Transforms.collapse(h,{edge:"focus"}),void Transforms.move(h,{unit:"word",reverse:a});if(HAS_BEFORE_INPUT_SUPPORT){if((IS_CHROME||IS_WEBKIT)&&o&&(Hotkeys.isDeleteBackward(n)||Hotkeys.isDeleteForward(n))&&Range.isCollapsed(o)){var c=Node$1.parent(h,o.anchor.path);if(Element$2.isElement(c)&&Editor.isVoid(h,c)&&(Editor.isInline(h,c)||Editor.isBlock(h,c)))return e.preventDefault(),void Editor.deleteBackward(h,{unit:"block"})}}else{if(Hotkeys.isBold(n)||Hotkeys.isItalic(n)||Hotkeys.isTransposeCharacter(n))return void e.preventDefault();if(Hotkeys.isSoftBreak(n))return e.preventDefault(),void Editor.insertSoftBreak(h);if(Hotkeys.isSplitBlock(n))return e.preventDefault(),void Editor.insertBreak(h);if(Hotkeys.isDeleteBackward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"backward"}):Editor.deleteBackward(h));if(Hotkeys.isDeleteForward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"forward"}):Editor.deleteForward(h));if(Hotkeys.isDeleteLineBackward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"backward"}):Editor.deleteBackward(h,{unit:"line"}));if(Hotkeys.isDeleteLineForward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"forward"}):Editor.deleteForward(h,{unit:"line"}));if(Hotkeys.isDeleteWordBackward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"backward"}):Editor.deleteBackward(h,{unit:"word"}));if(Hotkeys.isDeleteWordForward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"forward"}):Editor.deleteForward(h,{unit:"word"}))}}},[s,h,m.onKeyDown]),onPaste:React.useCallback(e=>{s||!ReactEditor.hasEditableTarget(h,e.target)||isEventHandled(e,m.onPaste)||(!HAS_BEFORE_INPUT_SUPPORT||isPlainTextOnlyPaste(e.nativeEvent)||IS_WEBKIT)&&(e.preventDefault(),ReactEditor.insertData(h,e.clipboardData))},[s,h,m.onPaste])}),React__default.default.createElement(Children,{decorations:N,node:h,renderElement:l,renderPlaceholder:d,renderLeaf:c,selection:h.selection}))))))}),DefaultPlaceholder=e=>{var{attributes:t,children:n}=e;return React__default.default.createElement("span",_objectSpread$1$3({},t),n,IS_ANDROID&&React__default.default.createElement("br",null))},defaultDecorate=()=>[],defaultScrollSelectionIntoView=(t,n)=>{if(n.getBoundingClientRect&&(!t.selection||t.selection&&Range.isCollapsed(t.selection))){var o=n.startContainer.parentElement;o.getBoundingClientRect=n.getBoundingClientRect.bind(n),e(o,{scrollMode:"if-needed"}),delete o.getBoundingClientRect}},isEventHandled=(e,t)=>{if(!t)return!1;var n=t(e);return null!=n?n:e.isDefaultPrevented()||e.isPropagationStopped()},isDOMEventTargetInput=e=>isDOMNode(e.target)&&(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement),isDOMEventHandled=(e,t)=>{if(!t)return!1;var n=t(e);return null!=n?n:e.defaultPrevented},FocusedContext=React.createContext(!1),SlateSelectorContext=React.createContext({});function useSelectorContext(e){var t=React.useRef([]).current,n=React.useRef({editor:e}).current,o=React.useCallback(e=>{n.editor=e,t.forEach(t=>t(e))},[t,n]);return{selectorContext:React.useMemo(()=>({getSlate:()=>n.editor,addEventListener:e=>(t.push(e),()=>{t.splice(t.indexOf(e),1)})}),[t,n]),onChange:o}}var _excluded=["editor","children","onChange","onSelectionChange","onValueChange","initialValue"],Slate=e=>{var{editor:t,children:n,onChange:o,onSelectionChange:r,onValueChange:a,initialValue:i}=e,s=_objectWithoutProperties(e,_excluded),[l,c]=React__default.default.useState(()=>{if(!Node$1.isNodeList(i))throw new Error("[Slate] initialValue is invalid! Expected a list of elements but got: ".concat(Scrubber.stringify(i)));if(!Editor.isEditor(t))throw new Error("[Slate] editor is invalid! You passed: ".concat(Scrubber.stringify(t)));return t.children=i,Object.assign(t,s),{v:0,editor:t}}),{selectorContext:d,onChange:u}=useSelectorContext(t),f=React.useCallback(e=>{var n;if(o&&o(t.children),"set_selection"===(null==e||null===(n=e.operation)||void 0===n?void 0:n.type))null==r||r(t.selection);else null==a||a(t.children);c(e=>({v:e.v+1,editor:t})),u(t)},[t,u,o,r,a]);React.useEffect(()=>(EDITOR_TO_ON_CHANGE.set(t,f),()=>{EDITOR_TO_ON_CHANGE.set(t,()=>{})}),[t,f]);var[p,_]=React.useState(ReactEditor.isFocused(t));return React.useEffect(()=>{_(ReactEditor.isFocused(t))},[t]),useIsomorphicLayoutEffect$1(()=>{var e=()=>_(ReactEditor.isFocused(t));return REACT_MAJOR_VERSION>=17?(document.addEventListener("focusin",e),document.addEventListener("focusout",e),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",e)}):(document.addEventListener("focus",e,!0),document.addEventListener("blur",e,!0),()=>{document.removeEventListener("focus",e,!0),document.removeEventListener("blur",e,!0)})},[]),React__default.default.createElement(SlateSelectorContext.Provider,{value:d},React__default.default.createElement(SlateContext.Provider,{value:l},React__default.default.createElement(EditorContext.Provider,{value:l.editor},React__default.default.createElement(FocusedContext.Provider,{value:p},n))))},doRectsIntersect=(e,t)=>{var n=(t.top+t.bottom)/2;return e.top<=n&&e.bottom>=n},areRangesSameLine=(e,t,n)=>{var o=ReactEditor.toDOMRange(e,t).getBoundingClientRect(),r=ReactEditor.toDOMRange(e,n).getBoundingClientRect();return doRectsIntersect(o,r)&&doRectsIntersect(r,o)},findCurrentLineRange=(e,t)=>{var n=Editor.range(e,Range.end(t)),o=Array.from(Editor.positions(e,{at:t})),r=0,a=o.length,i=Math.floor(a/2);if(areRangesSameLine(e,Editor.range(e,o[r]),n))return Editor.range(e,o[r],n);if(o.length<2)return Editor.range(e,o[o.length-1],n);for(;i!==o.length&&i!==r;)areRangesSameLine(e,Editor.range(e,o[i]),n)?a=i:r=i,i=Math.floor((r+a)/2);return Editor.range(e,o[a],n)};function ownKeys$9(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$9(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$9(Object(n),!0).forEach(function(t){_defineProperty$2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$9(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var withReact=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"x-slate-fragment",n=e,{apply:o,onChange:r,deleteBackward:a,addMark:i,removeMark:s}=n;return EDITOR_TO_KEY_TO_ELEMENT.set(n,new WeakMap),n.addMark=(e,t)=>{var o,r;null===(o=EDITOR_TO_SCHEDULE_FLUSH.get(n))||void 0===o||o(),!EDITOR_TO_PENDING_INSERTION_MARKS.get(n)&&null!==(r=EDITOR_TO_PENDING_DIFFS.get(n))&&void 0!==r&&r.length&&EDITOR_TO_PENDING_INSERTION_MARKS.set(n,null),EDITOR_TO_USER_MARKS.delete(n),i(e,t)},n.removeMark=e=>{var t;!EDITOR_TO_PENDING_INSERTION_MARKS.get(n)&&null!==(t=EDITOR_TO_PENDING_DIFFS.get(n))&&void 0!==t&&t.length&&EDITOR_TO_PENDING_INSERTION_MARKS.set(n,null),EDITOR_TO_USER_MARKS.delete(n),s(e)},n.deleteBackward=e=>{if("line"!==e)return a(e);if(n.selection&&Range.isCollapsed(n.selection)){var t=Editor.above(n,{match:e=>Element$2.isElement(e)&&Editor.isBlock(n,e),at:n.selection});if(t){var[,o]=t,r=Editor.range(n,o,n.selection.anchor),i=findCurrentLineRange(n,r);Range.isCollapsed(i)||Transforms.delete(n,{at:i})}}},n.apply=t=>{var r=[],a=[],i=EDITOR_TO_PENDING_DIFFS.get(n);if(null!=i&&i.length){var s=i.map(e=>transformTextDiff(e,t)).filter(Boolean);EDITOR_TO_PENDING_DIFFS.set(n,s)}var l=EDITOR_TO_PENDING_SELECTION.get(n);l&&EDITOR_TO_PENDING_SELECTION.set(n,transformPendingRange(n,l,t));var c=EDITOR_TO_PENDING_ACTION.get(n);if(null!=c&&c.at){var d=Point.isPoint(null==c?void 0:c.at)?transformPendingPoint(n,c.at,t):transformPendingRange(n,c.at,t);EDITOR_TO_PENDING_ACTION.set(n,d?_objectSpread$9(_objectSpread$9({},c),{},{at:d}):null)}switch(t.type){case"insert_text":case"remove_text":case"set_node":case"split_node":r.push(...getMatches(n,t.path));break;case"set_selection":var u;null===(u=EDITOR_TO_USER_SELECTION.get(n))||void 0===u||u.unref(),EDITOR_TO_USER_SELECTION.delete(n);break;case"insert_node":case"remove_node":r.push(...getMatches(n,Path.parent(t.path)));break;case"merge_node":var f=Path.previous(t.path);r.push(...getMatches(n,f));break;case"move_node":var p,_=Path.common(Path.parent(t.path),Path.parent(t.newPath));r.push(...getMatches(n,_)),Path.isBefore(t.path,t.newPath)?(r.push(...getMatches(n,Path.parent(t.path))),p=t.newPath):(r.push(...getMatches(n,Path.parent(t.newPath))),p=t.path);var m=Node$1.get(e,Path.parent(p)),h=ReactEditor.findKey(n,m),g=Editor.pathRef(n,Path.parent(p));a.push([g,h])}switch(o(t),t.type){case"insert_node":case"remove_node":case"merge_node":case"move_node":case"split_node":IS_NODE_MAP_DIRTY.set(n,!0)}for(var[b,v]of r){var[y]=Editor.node(n,b);NODE_TO_KEY.set(y,v)}for(var[E,w]of a){if(E.current){var[C]=Editor.node(n,E.current);NODE_TO_KEY.set(C,w)}E.unref()}},n.setFragmentData=e=>{var{selection:o}=n;if(o){var[r,a]=Range.edges(o),i=Editor.void(n,{at:r.path}),s=Editor.void(n,{at:a.path});if(!Range.isCollapsed(o)||i){var l=ReactEditor.toDOMRange(n,o),c=l.cloneContents(),d=c.childNodes[0];if(c.childNodes.forEach(e=>{e.textContent&&""!==e.textContent.trim()&&(d=e)}),s){var[u]=s,f=l.cloneRange(),p=ReactEditor.toDOMNode(n,u);f.setEndAfter(p),c=f.cloneContents()}if(i&&(d=c.querySelector("[data-slate-spacer]")),Array.from(c.querySelectorAll("[data-slate-zero-width]")).forEach(e=>{var t="n"===e.getAttribute("data-slate-zero-width");e.textContent=t?"\n":""}),isDOMText(d)){var _=d.ownerDocument.createElement("span");_.style.whiteSpace="pre",_.appendChild(d),c.appendChild(_),d=_}var m=n.getFragment(),h=JSON.stringify(m),g=window.btoa(encodeURIComponent(h));d.setAttribute("data-slate-fragment",g),e.setData("application/".concat(t),g);var b=c.ownerDocument.createElement("div");return b.appendChild(c),b.setAttribute("hidden","true"),c.ownerDocument.body.appendChild(b),e.setData("text/html",b.innerHTML),e.setData("text/plain",getPlainText(b)),c.ownerDocument.body.removeChild(b),e}}},n.insertData=e=>{n.insertFragmentData(e)||n.insertTextData(e)},n.insertFragmentData=e=>{var o=e.getData("application/".concat(t))||getSlateFragmentAttribute(e);if(o){var r=decodeURIComponent(window.atob(o)),a=JSON.parse(r);return n.insertFragment(a),!0}return!1},n.insertTextData=e=>{var t=e.getData("text/plain");if(t){var o=t.split(/\r\n|\r|\n/),r=!1;for(var a of o)r&&Transforms.splitNodes(n,{always:!0}),n.insertText(a),r=!0;return!0}return!1},n.onChange=e=>{(REACT_MAJOR_VERSION<18?ReactDOM__default.default.unstable_batchedUpdates:e=>e())(()=>{var t=EDITOR_TO_ON_CHANGE.get(n);t&&t(e),r(e)})},n},getMatches=(e,t)=>{var n=[];for(var[o,r]of Editor.levels(e,{at:t})){var a=ReactEditor.findKey(e,o);n.push([r,a])}return n};const defaultComponents={Anchor:"a"},ComponentsContext=React.createContext(void 0);function useComponents(e){const t=React.useContext(ComponentsContext);return React.useMemo(()=>({...defaultComponents,...t,...e}),[t,e])}function ComponentsProvider({children:e,components:t}){const n=React.useContext(ComponentsContext),o=React.useMemo(()=>({...defaultComponents,...n,...t}),[n,t]);return jsxRuntime.exports.jsx(ComponentsContext.Provider,{value:o,children:e})}const LiveblocksUIConfigContext=React.createContext({});function useLiveblocksUIConfig(){return React.useContext(LiveblocksUIConfigContext)}function LiveblocksUIConfig({overrides:e,components:t,portalContainer:n,preventUnsavedComposerChanges:o=!0,children:r}){const a=React.useMemo(()=>({portalContainer:n,preventUnsavedComposerChanges:o}),[n,o]);return jsxRuntime.exports.jsx(LiveblocksUIConfigContext.Provider,{value:a,children:jsxRuntime.exports.jsx(OverridesProvider,{overrides:e,children:jsxRuntime.exports.jsx(ComponentsProvider,{components:t,children:r})})})}const formatters=[{type:"mark",mark:"bold",character:"*"},{type:"mark",mark:"italic",character:"_"},{type:"mark",mark:"strikethrough",character:"~"},{type:"mark",mark:"code",character:"`"}],markFormattingCharacters=formatters.filter(e=>"mark"===e.type).map(e=>e.character);function formatMark(e,t,n){if(t!==n.character)return!1;const o=getMatchRange(e,e.selection,[n.character]);if(!o||Range.isCollapsed(o))return!1;const r=getCharacterBefore(e,o);if(!r||r.text!==n.character)return!1;const a=getCharacterBefore(e,r.range);if(a&&!markFormattingCharacters.includes(a.text)&&!isEmptyString(a.text))return!1;const i=Editor.string(e,o);return i.trim()===i&&(Transforms.select(e,o),e.addMark(n.mark,!0),Transforms.collapse(e,{edge:"end"}),e.removeMark(n.mark),Transforms.delete(e,{at:r.range}),!0)}function withAutoFormatting(e){const{insertText:t}=e;return e.insertText=(n,o)=>{if(!e.selection||!Range.isCollapsed(e.selection))return t(n,o);let r=!0;for(const t of formatters)"mark"===t.type&&formatMark(e,n,t)&&(r=!1);r&&t(n,o)},e}function isText(e){return!("type"in e)&&"text"in e&&"string"==typeof e.text}function isPlainText(e){return isText(e)&&1===Object.keys(e).length}const defaultMarks={bold:!1,italic:!1,strikethrough:!1,code:!1};function isMarkActive(e,t){const n=Editor.marks(e);return!!n&&!0===n[t]}function getMarks(e){if(!e)return{...defaultMarks};const t=Editor.marks(e);return{...defaultMarks,...t}}function filterActiveMarks(e){return Object.keys(e??{}).filter(e=>"text"!==e)}function toggleMark(e,t){isMarkActive(e,t)?Editor.removeMark(e,t):Editor.addMark(e,t,!0)}function removeMarks(e){const t=Editor.marks(e);if(t)for(const n in t)Editor.removeMark(e,n)}function leaveMarkEdge(e,t){if(e.selection&&Range.isCollapsed(e.selection)){if(Object.keys(Editor.marks(e)??{}).length>0){("start"===t?getCharacterBefore(e,e.selection):getCharacterAfter(e,e.selection))||removeMarks(e)}}}function selectionContainsInlines(e,t){const{selection:n}=e;if(!n)return!1;const o=Array.from(Editor.nodes(e,{at:n,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),mode:"lowest"}));for(const[,r]of o){const o=Range.isRange(n)?Range.intersection(n,Editor.range(e,r)):n;if(!o)continue;const a=Array.from(Editor.nodes(e,{at:o,match:n=>Editor.isInline(e,n)&&t(n)}));if(a.length>0)return!0}return!1}function isUrl(e){try{return new URL(e),!0}catch(e){return!1}}function withCustomLinks(e){const{isInline:t,normalizeNode:n,insertData:o}=e;return e.isInline=e=>"custom-link"===e.type||t(e),e.normalizeNode=t=>{const[o,r]=t;if(isText(o)){if(isComposerBodyCustomLink(Node$1.parent(e,r))&&!isPlainText(o)){const t=filterActiveMarks(o);Transforms.unsetNodes(e,t,{at:r})}}n(t)},e.insertData=t=>{const{selection:n}=e,r=t.getData("text/plain");let a=!0;n&&!Range.isCollapsed(n)&&n.anchor.path[0]===n.focus.path[0]&&isUrl(r)&&(selectionContainsInlines(e,e=>!isText(e))||(Transforms.wrapNodes(e,{type:"custom-link",url:r,children:[]},{at:n,split:!0,match:isPlainText}),a=!1)),a&&o(t)},e}function isComposerBodyCustomLink(e){return Element$2.isElement(e)&&"custom-link"===e.type}function withAutoLinks(e){const{isInline:t,normalizeNode:n,deleteBackward:o}=e;return e.isInline=e=>"auto-link"===e.type||t(e),e.normalizeNode=t=>{const[o,r]=t;if(!isComposerBodyCustomLink(o)){if(isText(o)){const t=Node$1.parent(e,r);if(isComposerBodyCustomLink(t))return;if(isComposerBodyAutoLink(t)){const n=Path.parent(r);if(handleLinkEdit(e,[t,n]),!isPlainText(o)){const t=filterActiveMarks(o);Transforms.unsetNodes(e,t,{at:r})}}else handleLinkCreate(e,[o,r]),handleNeighbours(e,[o,r])}n(t)}},e.deleteBackward=t=>{o(t);const{selection:n}=e;if(!n)return;if(!Range.isCollapsed(n))return;const[r]=Editor.nodes(e,{at:n,match:isComposerBodyAutoLink,mode:"lowest"});r&&Transforms.unwrapNodes(e,{match:isComposerBodyAutoLink})},e}function isComposerBodyAutoLink(e){return Element$2.isElement(e)&&"auto-link"===e.type}const URL_REGEX=/((https?:\/\/(www\.)?)|(www\.))[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9().@:%_+~#?&//=]*)/,PUNCTUATION_OR_SPACE=/[.,;!?\s()]/,PERIOD_OR_QUESTION_MARK_FOLLOWED_BY_ALPHANUMERIC=/^[.?][a-zA-Z0-9]+/,PARENTHESES=/[()]/;function isSeparator(e){return PUNCTUATION_OR_SPACE.test(e)}function endsWithSeparator(e){const t=e[e.length-1];return void 0!==t&&isSeparator(t)}function startsWithSeparator(e){const t=e[0];return void 0!==t&&isSeparator(t)}function endsWithPeriodOrQuestionMark(e){return"."===e[e.length-1]||"?"===e[e.length-1]}function getUrlLogicalLength(e){if(!PARENTHESES.test(e))return e.length;let t=0,n=0;for(const o of e){if("("===o&&n++,")"===o&&(n--,n<0))break;t++}return t}function isPreviousNodeValid(e,t){const n=Editor.previous(e,{at:t});return!n||isText(n[0])&&(endsWithSeparator(n[0].text)||""===n[0].text)}function isNextNodeValid(e,t){const n=Editor.next(e,{at:t});return!n||isText(n[0])&&(startsWithSeparator(n[0].text)||""===n[0].text)}function isContentAroundValid(e,t,n,o){const[r,a]=t,i=r.text,s=i[n-1],l=n>0&&s?isSeparator(s):isPreviousNodeValid(e,a),c=i[o],d=o<i.length&&c?isSeparator(c):isNextNodeValid(e,a);return l&&d}const handleLinkEdit=(e,t)=>{const[n,o]=t,r=Node$1.children(e,o);for(const[t]of r)if(!isText(t))return void Transforms.unwrapNodes(e,{at:o});const a=Node$1.string(n),i=URL_REGEX.exec(a),s=i?.[0];if(!i||s!==a)return void Transforms.unwrapNodes(e,{at:o});if(endsWithPeriodOrQuestionMark(a)){Transforms.unwrapNodes(e,{at:o});const t=a.slice(0,a.length-1);return void Transforms.wrapNodes(e,{type:"auto-link",url:t,children:[]},{at:{anchor:{path:o,offset:0},focus:{path:o,offset:t.length}},split:!0})}const l=getUrlLogicalLength(a);if(l<a.length){Transforms.unwrapNodes(e,{at:o});const t=a.slice(0,l);return void Transforms.wrapNodes(e,{type:"auto-link",url:t,children:[]},{at:{anchor:{path:o,offset:0},focus:{path:o,offset:t.length}},split:!0})}isPreviousNodeValid(e,o)&&isNextNodeValid(e,o)?n.url===a||Transforms.setNodes(e,{url:s},{at:o}):Transforms.unwrapNodes(e,{at:o})},handleLinkCreate=(e,t)=>{const[n,o]=t,r=URL_REGEX.exec(n.text),a=r?.[0];if(!r||void 0===a)return;const i=r.index,s=i+a.length;isContentAroundValid(e,t,i,s)&&Transforms.wrapNodes(e,{type:"auto-link",url:a,children:[]},{at:{anchor:{path:o,offset:i},focus:{path:o,offset:s}},split:!0})},handleNeighbours=(e,t)=>{const[n,o]=t,r=n.text,a=Editor.previous(e,{at:o});if(a&&isComposerBodyAutoLink(a[0])){if(PERIOD_OR_QUESTION_MARK_FOLLOWED_BY_ALPHANUMERIC.test(r))return Transforms.unwrapNodes(e,{at:a[1]}),void Transforms.mergeNodes(e,{at:o});if(!startsWithSeparator(r))return void Transforms.unwrapNodes(e,{at:a[1]})}const i=Editor.next(e,{at:o});i&&isComposerBodyAutoLink(i[0])&&!endsWithSeparator(r)&&Transforms.unwrapNodes(e,{at:i[1]})};function isEmpty(e,t){for(const n of t)if(isText(n)){if(!isEmptyString(n.text))return!1}else if("paragraph"===n.type){if(n.children.length>1||n.children[0]&&(!isText(n.children[0])||!isEmptyString(n.children[0].text)))return!1}else if(!Editor.isEmpty(e,n))return!1;return!0}function withEmptyClearFormatting(e){const{onChange:t}=e;return e.onChange=n=>{isEmpty(e,e.children)&&removeMarks(e),t(n)},e}function withNormalize(e){const{normalizeNode:t}=e;return e.normalizeNode=n=>{const[o,r]=n;if(Element$2.isElement(o)&&"paragraph"===o.type)for(const[t,n]of Node$1.children(e,r))if(Element$2.isElement(t)&&!e.isInline(t))return void Transforms.unwrapNodes(e,{at:n});!Element$2.isElement(o)||"auto-link"!==o.type&&"custom-link"!==o.type||(0===o.children.length||1===o.children.length&&""===o.children[0]?.text)&&Transforms.removeNodes(e,{at:r}),t(n)},e}function _typeof$1(e){return _typeof$1="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$1(e)}function _toPrimitive(e,t){if("object"!==_typeof$1(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==_typeof$1(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"===_typeof$1(t)?t:String(t)}function _defineProperty$1(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ANCHOR=new WeakMap,FOCUS=new WeakMap;class Token{}class AnchorToken extends Token{constructor(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),_defineProperty$1(this,"offset",void 0),_defineProperty$1(this,"path",void 0);var{offset:t,path:n}=e;this.offset=t,this.path=n}}class FocusToken extends Token{constructor(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),_defineProperty$1(this,"offset",void 0),_defineProperty$1(this,"path",void 0);var{offset:t,path:n}=e;this.offset=t,this.path=n}}var addAnchorToken=(e,t)=>{var n=e.text.length;ANCHOR.set(e,[n,t])},getAnchorOffset=e=>ANCHOR.get(e),addFocusToken=(e,t)=>{var n=e.text.length;FOCUS.set(e,[n,t])},getFocusOffset=e=>FOCUS.get(e);function ownKeys$1$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$1$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1$2(Object(n),!0).forEach(function(t){_defineProperty$1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1$2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var STRINGS=new WeakSet,resolveDescendants=e=>{var t=[],n=e=>{if(null!=e){var o=t[t.length-1];if("string"==typeof e){var r={text:e};STRINGS.add(r),e=r}if(Text$1.isText(e)){var a=e;Text$1.isText(o)&&STRINGS.has(o)&&STRINGS.has(a)&&Text$1.equals(o,a,{loose:!0})?o.text+=a.text:t.push(a)}else if(Element$2.isElement(e))t.push(e);else{if(!(e instanceof Token))throw new Error("Unexpected hyperscript child object: ".concat(e));var i=t[t.length-1];Text$1.isText(i)||(n(""),i=t[t.length-1]),e instanceof AnchorToken?addAnchorToken(i,e):e instanceof FocusToken&&addFocusToken(i,e)}}};for(var o of e.flat(1/0))n(o);return t};function createAnchor(e,t,n){return new AnchorToken(t)}function createCursor(e,t,n){return[new AnchorToken(t),new FocusToken(t)]}function createElement(e,t,n){return _objectSpread$1$2(_objectSpread$1$2({},t),{},{children:resolveDescendants(n)})}function createFocus(e,t,n){return new FocusToken(t)}function createFragment(e,t,n){return resolveDescendants(n)}function createSelection(e,t,n){var o=n.find(e=>e instanceof AnchorToken),r=n.find(e=>e instanceof FocusToken);if(!o||null==o.offset||null==o.path)throw new Error("The <selection> hyperscript tag must have an <anchor> tag as a child with `path` and `offset` attributes defined.");if(!r||null==r.offset||null==r.path)throw new Error("The <selection> hyperscript tag must have a <focus> tag as a child with `path` and `offset` attributes defined.");return _objectSpread$1$2({anchor:{offset:o.offset,path:o.path},focus:{offset:r.offset,path:r.path}},t)}function createText(e,t,n){var o=resolveDescendants(n);if(o.length>1)throw new Error("The <text> hyperscript tag must only contain a single node's worth of children.");var[r]=o;if(null==r&&(r={text:""}),!Text$1.isText(r))throw new Error("\n The <text> hyperscript tag can only contain text content as children.");return STRINGS.delete(r),Object.assign(r,t),r}var createEditor=e=>(t,n,o)=>{var r,a=[];for(var i of o)Range.isRange(i)?r=i:a.push(i);var s=resolveDescendants(a),l={},c=e();for(var[d,u]of(Object.assign(c,n),c.children=s,Node$1.texts(c))){var f=getAnchorOffset(d),p=getFocusOffset(d);if(null!=f){var[_]=f;l.anchor={path:u,offset:_}}if(null!=p){var[m]=p;l.focus={path:u,offset:m}}}if(l.anchor&&!l.focus)throw new Error("Slate hyperscript ranges must have both `<anchor />` and `<focus />` defined if one is defined, but you only defined `<anchor />`. For collapsed selections, use `<cursor />` instead.");if(!l.anchor&&l.focus)throw new Error("Slate hyperscript ranges must have both `<anchor />` and `<focus />` defined if one is defined, but you only defined `<focus />`. For collapsed selections, use `<cursor />` instead.");return null!=r?c.selection=r:Range.isRange(l)&&(c.selection=l),c};function ownKeys$8(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$8(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$8(Object(n),!0).forEach(function(t){_defineProperty$1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$8(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var DEFAULT_CREATORS={anchor:createAnchor,cursor:createCursor,editor:createEditor(createEditor$1),element:createElement,focus:createFocus,fragment:createFragment,selection:createSelection,text:createText},createHyperscript=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{elements:t={}}=e,n=normalizeElements(t),o=_objectSpread$8(_objectSpread$8(_objectSpread$8({},DEFAULT_CREATORS),n),e.creators);return createFactory(o)},createFactory=e=>function(t,n){for(var o=arguments.length,r=new Array(o>2?o-2:0),a=2;a<o;a++)r[a-2]=arguments[a];var i=e[t];if(!i)throw new Error("No hyperscript creator found for tag: <".concat(t,">"));return null==n&&(n={}),isPlainObject$1(n)||(r=[n].concat(r),n={}),i(t,n,r=r.filter(e=>Boolean(e)).flat())},normalizeElements=e=>{var t={},n=function(){var n=e[o];if("object"!=typeof n)throw new Error("Properties specified for a hyperscript shorthand should be an object, but for the custom element <".concat(o,"> tag you passed: ").concat(n));t[o]=(e,t,o)=>createElement("element",_objectSpread$8(_objectSpread$8({},n),t),o)};for(var o in e)n();return t},jsx=createHyperscript();function exists(e){return null!=e}function getFiles(e){if(!e.types.includes("Files"))return[];let t=Array.from(e.items).map(e=>{const t=e.webkitGetAsEntry();return t&&t.isFile?e.getAsFile():null}).filter(exists);return t.length||(t=Array.from(e.files).filter(e=>""!==e.type)),t}function areUrlsEqual(e,t){try{const n=new URL(e),o=new URL(t);return n.origin===o.origin&&n.pathname===o.pathname}catch{return!1}}const createParagraphElement=()=>({type:"paragraph"}),ELEMENT_TAGS={A:e=>{const t=e.getAttribute("href"),n=e.innerText;return{type:t&&areUrlsEqual(t,n)?"auto-link":"custom-link",url:t??""}},P:createParagraphElement,BLOCKQUOTE:createParagraphElement,H1:createParagraphElement,H2:createParagraphElement,H3:createParagraphElement,H4:createParagraphElement,H5:createParagraphElement,H6:createParagraphElement,LI:createParagraphElement},TEXT_TAGS={CODE:()=>({code:!0}),DEL:()=>({strikethrough:!0}),EM:()=>({italic:!0}),I:()=>({italic:!0}),S:()=>({strikethrough:!0}),STRONG:()=>({bold:!0}),B:()=>({bold:!0})};function flattenListItems(e){const t=[];return"LI"===e.nodeName&&t.push(e),e.childNodes.forEach(e=>{1===e.nodeType&&t.push(...flattenListItems(e))}),t}function jsxTextChildren(e,t){return e.map(e=>jsx("text",t,e))}function deserialize(e){if(3===e.nodeType)return e.textContent;if(1!==e.nodeType)return null;if("BR"===e.nodeName)return jsx("element",createParagraphElement(),[]);let t=Array.from(e.childNodes).map(deserialize).flat();if("UL"===e.nodeName||"OL"===e.nodeName){t=flattenListItems(e).map(e=>deserialize(e)).flat()}if(0===t.length&&(t=[{text:""}]),"BODY"===e.nodeName)return t.length>0&&t.every(e=>"string"==typeof e)&&(t=[{type:"paragraph",children:[{text:t.join("")}]}]),jsx("fragment",{},t.filter(e=>"string"!=typeof e));if(ELEMENT_TAGS[e.nodeName]){const n=ELEMENT_TAGS[e.nodeName](e);return jsx("element",n,t)}if(TEXT_TAGS[e.nodeName]){const n=TEXT_TAGS[e.nodeName](e);return t.some(e=>e&&"string"!=typeof e&&"type"in e)?jsx("fragment",{},t):jsxTextChildren(t,n)}if("SPAN"===e.nodeName){const n=e.style,o={};return"bold"!==n.fontWeight&&"700"!==n.fontWeight&&"800"!==n.fontWeight&&"900"!==n.fontWeight||(o.bold=!0),"italic"===n.fontStyle&&(o.italic=!0),"line-through"===n.textDecoration&&(o.strikethrough=!0),jsxTextChildren(t,o)}return t}function withPaste(e,{createAttachments:t,pasteFilesAsAttachments:n}){const{insertData:o}=e;return e.insertData=r=>{if(r.types.includes("Files")&&n){const e=getFiles(r);if(e.length>0)return void t(e)}if(r.types.includes("text/html")&&!r.types.includes("application/x-slate-fragment")){const t=r.getData("text/html");try{const{body:n}=(new DOMParser).parseFromString(t,"text/html");if(n.querySelector("br.Apple-interchange-newline")?.remove(),1===n.children.length&&"B"===n.children[0]?.nodeName){const e=n.children[0];for(;e.firstChild;)n.insertBefore(e.firstChild,e);n.removeChild(e)}const o=deserialize(n);if(null!==o&&Array.isArray(o))return void Transforms.insertFragment(e,o)}catch{}}o(r)},e}function getDOMRange(e,t){try{return ReactEditor.toDOMRange(e,t)}catch(n){return getDOMRange(e,{anchor:t.anchor,focus:t.anchor})}}const APPLE_REGEX=/Mac|iPod|iPhone|iPad/;function isApple(){return"undefined"!=typeof window&&APPLE_REGEX.test(window.navigator.platform)}const MODIFIERS={alt:()=>"altKey",ctrl:()=>"ctrlKey",meta:()=>"metaKey",mod:()=>isApple()?"metaKey":"ctrlKey",shift:()=>"shiftKey"};function isKey(e,t,n={}){if(e.key!==t)return!1;return Object.entries(n).filter(([,e])=>"boolean"==typeof e).every(([t,n])=>{const o=MODIFIERS[t]();return e[o]===n})}const useReactFlushSync=ReactDOM__default.default["flushSync".toString()];function flushSyncFallback(e){return e()}const flushSync=useReactFlushSync??flushSyncFallback,PersistContext=React.createContext(null);function usePersist(){return nn(React.useContext(PersistContext),"Persist is missing from the React tree.")}function getChild(e){const t=Array.isArray(e)?React.Children.only(e):e;return React.isValidElement(t)?t:void 0}function useAnimationPersist(e){const[t,n]=usePersist(),o=React.useRef(null),r=React.useRef(null);React.useLayoutEffect(()=>{const t=e.current;if(!t)return;const a=e=>{e.animationName===r.current&&n(),o.current=e.animationName};return t.addEventListener("animationcancel",a),t.addEventListener("animationend",a),()=>{t.removeEventListener("animationcancel",a),t.removeEventListener("animationend",a)}},[e,n]),React.useLayoutEffect(()=>{const a=e.current;let i;if(a)return t||(i=requestAnimationFrame(()=>{const e=getComputedStyle(a);r.current=e.animationName,"none"!==e.animationName&&e.animationName!==o.current&&"none"!==e.display||n()})),()=>{cancelAnimationFrame(i)}},[t,e,n])}function Persist({children:e}){const[t,n]=React.useState(!0),o=React.useRef(null),r=getChild(e),a=React.useCallback(()=>{flushSync(()=>n(!1))},[]);return React.useLayoutEffect(()=>{r&&(n(!0),o.current=r)},[r]),jsxRuntime.exports.jsx(PersistContext.Provider,{value:[Boolean(r),a],children:r??(t?o.current:null)})}const Portal$4=React.forwardRef(({container:e=document?.body,asChild:t,...n},o)=>{const r=t?Slot$2:"div";return e?ReactDOM.createPortal(jsxRuntime.exports.jsx(r,{"data-liveblocks-portal":"",...n,ref:o}),e):null});function requestSubmit(e,t){if("function"==typeof e.requestSubmit)return e.requestSubmit(t);t?t.click():((t=document.createElement("input")).type="submit",t.hidden=!0,e.appendChild(t),t.click(),e.removeChild(t))}function clamp$1(e,t,n){return Math.min(Math.max(e,t),n)}function wrap(e,t,n){const o=n-t;return o>0?((e-t)%o+o)%o+t:0}const defaultOptions$1={wrap:!0};function useIndex(e,t,n){const{wrap:o}=React.useMemo(()=>({...defaultOptions$1,...n}),[n]),r=React.useMemo(()=>o?wrap:clamp$1,[o]),[a,i]=React.useState(e);React.useEffect(()=>{i(e=>clamp$1(e,0,Math.max(t-1,0)))},[t]);return[a,React.useCallback(()=>{i(e=>r(e-1,0,Math.max(t,0)))},[t,r]),React.useCallback(()=>{i(e=>r(e+1,0,Math.max(t,0)))},[t,r]),i]}function useInitial(e){const[t]=React.useState(e);return t}function useLatest(e){const t=React.useRef(e);return React.useEffect(()=>{t.current=e},[e]),t}function useObservable(e,t){const n=useLatest(t);React.useEffect(()=>e.subscribe(()=>n.current()),[e,n])}function applyRef(e,t){t&&("function"==typeof e?e(t):e&&"current"in e&&(e.current=t))}function mergeRefs(e,...t){for(const n of t)applyRef(n,e)}function useRefs(...e){return React.useCallback(t=>mergeRefs(t,...e),[e])}const ComposerContext=React.createContext(null),ComposerEditorContext=React.createContext(null),ComposerAttachmentsContext=React.createContext(null),ComposerSuggestionsContext=React.createContext(null),ComposerFloatingToolbarContext=React.createContext(null);function useComposerEditorContext(){return nn(React.useContext(ComposerEditorContext),"Composer.Form is missing from the React tree.")}function useComposerAttachmentsContextOrNull(){return React.useContext(ComposerAttachmentsContext)}function useComposerAttachmentsContext(){return nn(useComposerAttachmentsContextOrNull(),"Composer.Form is missing from the React tree.")}function useComposerSuggestionsContext(e="useComposerSuggestionsContext"){return nn(React.useContext(ComposerSuggestionsContext),`${e} can’t be used outside of Composer.Editor.`)}function useComposerFloatingToolbarContext(e="useComposerFloatingToolbarContext"){return nn(React.useContext(ComposerFloatingToolbarContext),`${e} can’t be used outside of Composer.Editor.`)}function useComposer(){return nn(React.useContext(ComposerContext),"Composer.Form is missing from the React tree.")}const sides=["top","right","bottom","left"],alignments=["start","end"],placements=sides.reduce((e,t)=>e.concat(t,t+"-"+alignments[0],t+"-"+alignments[1]),[]),min=Math.min,max=Math.max,round=Math.round,floor=Math.floor,createCoords=e=>({x:e,y:e}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"},oppositeAlignmentMap={start:"end",end:"start"};function clamp(e,t,n){return max(e,min(t,n))}function evaluate(e,t){return"function"==typeof e?e(t):e}function getSide(e){return e.split("-")[0]}function getAlignment(e){return e.split("-")[1]}function getOppositeAxis(e){return"x"===e?"y":"x"}function getAxisLength(e){return"y"===e?"height":"width"}const yAxisSides=new Set(["top","bottom"]);function getSideAxis(e){return yAxisSides.has(getSide(e))?"y":"x"}function getAlignmentAxis(e){return getOppositeAxis(getSideAxis(e))}function getAlignmentSides(e,t,n){void 0===n&&(n=!1);const o=getAlignment(e),r=getAlignmentAxis(e),a=getAxisLength(r);let i="x"===r?o===(n?"end":"start")?"right":"left":"start"===o?"bottom":"top";return t.reference[a]>t.floating[a]&&(i=getOppositePlacement(i)),[i,getOppositePlacement(i)]}function getExpandedPlacements(e){const t=getOppositePlacement(e);return[getOppositeAlignmentPlacement(e),t,getOppositeAlignmentPlacement(t)]}function getOppositeAlignmentPlacement(e){return e.replace(/start|end/g,e=>oppositeAlignmentMap[e])}const lrPlacement=["left","right"],rlPlacement=["right","left"],tbPlacement=["top","bottom"],btPlacement=["bottom","top"];function getSideList(e,t,n){switch(e){case"top":case"bottom":return n?t?rlPlacement:lrPlacement:t?lrPlacement:rlPlacement;case"left":case"right":return t?tbPlacement:btPlacement;default:return[]}}function getOppositeAxisPlacements(e,t,n,o){const r=getAlignment(e);let a=getSideList(getSide(e),"start"===n,o);return r&&(a=a.map(e=>e+"-"+r),t&&(a=a.concat(a.map(getOppositeAlignmentPlacement)))),a}function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,e=>oppositeSideMap[e])}function expandPaddingObject(e){return{top:0,right:0,bottom:0,left:0,...e}}function getPaddingObject(e){return"number"!=typeof e?expandPaddingObject(e):{top:e,right:e,bottom:e,left:e}}function rectToClientRect(e){const{x:t,y:n,width:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}function computeCoordsFromPlacement(e,t,n){let{reference:o,floating:r}=e;const a=getSideAxis(t),i=getAlignmentAxis(t),s=getAxisLength(i),l=getSide(t),c="y"===a,d=o.x+o.width/2-r.width/2,u=o.y+o.height/2-r.height/2,f=o[s]/2-r[s]/2;let p;switch(l){case"top":p={x:d,y:o.y-r.height};break;case"bottom":p={x:d,y:o.y+o.height};break;case"right":p={x:o.x+o.width,y:u};break;case"left":p={x:o.x-r.width,y:u};break;default:p={x:o.x,y:o.y}}switch(getAlignment(t)){case"start":p[i]-=f*(n&&c?-1:1);break;case"end":p[i]+=f*(n&&c?-1:1)}return p}const computePosition$1=async(e,t,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:a=[],platform:i}=n,s=a.filter(Boolean),l=await(null==i.isRTL?void 0:i.isRTL(t));let c=await i.getElementRects({reference:e,floating:t,strategy:r}),{x:d,y:u}=computeCoordsFromPlacement(c,o,l),f=o,p={},_=0;for(let n=0;n<s.length;n++){const{name:a,fn:m}=s[n],{x:h,y:g,data:b,reset:v}=await m({x:d,y:u,initialPlacement:o,placement:f,strategy:r,middlewareData:p,rects:c,platform:i,elements:{reference:e,floating:t}});d=null!=h?h:d,u=null!=g?g:u,p={...p,[a]:{...p[a],...b}},v&&_<=50&&(_++,"object"==typeof v&&(v.placement&&(f=v.placement),v.rects&&(c=!0===v.rects?await i.getElementRects({reference:e,floating:t,strategy:r}):v.rects),({x:d,y:u}=computeCoordsFromPlacement(c,f,l))),n=-1)}return{x:d,y:u,placement:f,strategy:r,middlewareData:p}};async function detectOverflow(e,t){var n;void 0===t&&(t={});const{x:o,y:r,platform:a,rects:i,elements:s,strategy:l}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:u="floating",altBoundary:f=!1,padding:p=0}=evaluate(t,e),_=getPaddingObject(p),m=s[f?"floating"===u?"reference":"floating":u],h=rectToClientRect(await a.getClippingRect({element:null==(n=await(null==a.isElement?void 0:a.isElement(m)))||n?m:m.contextElement||await(null==a.getDocumentElement?void 0:a.getDocumentElement(s.floating)),boundary:c,rootBoundary:d,strategy:l})),g="floating"===u?{x:o,y:r,width:i.floating.width,height:i.floating.height}:i.reference,b=await(null==a.getOffsetParent?void 0:a.getOffsetParent(s.floating)),v=await(null==a.isElement?void 0:a.isElement(b))&&await(null==a.getScale?void 0:a.getScale(b))||{x:1,y:1},y=rectToClientRect(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:g,offsetParent:b,strategy:l}):g);return{top:(h.top-y.top+_.top)/v.y,bottom:(y.bottom-h.bottom+_.bottom)/v.y,left:(h.left-y.left+_.left)/v.x,right:(y.right-h.right+_.right)/v.x}}const arrow$3=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,rects:a,platform:i,elements:s,middlewareData:l}=t,{element:c,padding:d=0}=evaluate(e,t)||{};if(null==c)return{};const u=getPaddingObject(d),f={x:n,y:o},p=getAlignmentAxis(r),_=getAxisLength(p),m=await i.getDimensions(c),h="y"===p,g=h?"top":"left",b=h?"bottom":"right",v=h?"clientHeight":"clientWidth",y=a.reference[_]+a.reference[p]-f[p]-a.floating[_],E=f[p]-a.reference[p],w=await(null==i.getOffsetParent?void 0:i.getOffsetParent(c));let C=w?w[v]:0;C&&await(null==i.isElement?void 0:i.isElement(w))||(C=s.floating[v]||a.floating[_]);const x=y/2-E/2,R=C/2-m[_]/2-1,S=min(u[g],R),D=min(u[b],R),T=S,A=C-m[_]-D,O=C/2-m[_]/2+x,I=clamp(T,O,A),k=!l.arrow&&null!=getAlignment(r)&&O!==I&&a.reference[_]/2-(O<T?S:D)-m[_]/2<0,N=k?O<T?O-T:O-A:0;return{[p]:f[p]+N,data:{[p]:I,centerOffset:O-I-N,...k&&{alignmentOffset:N}},reset:k}}});function getPlacementList(e,t,n){return(e?[...n.filter(t=>getAlignment(t)===e),...n.filter(t=>getAlignment(t)!==e)]:n.filter(e=>getSide(e)===e)).filter(n=>!e||(getAlignment(n)===e||!!t&&getOppositeAlignmentPlacement(n)!==n))}const autoPlacement=function(e){return void 0===e&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,o,r;const{rects:a,middlewareData:i,placement:s,platform:l,elements:c}=t,{crossAxis:d=!1,alignment:u,allowedPlacements:f=placements,autoAlignment:p=!0,..._}=evaluate(e,t),m=void 0!==u||f===placements?getPlacementList(u||null,p,f):f,h=await detectOverflow(t,_),g=(null==(n=i.autoPlacement)?void 0:n.index)||0,b=m[g];if(null==b)return{};const v=getAlignmentSides(b,a,await(null==l.isRTL?void 0:l.isRTL(c.floating)));if(s!==b)return{reset:{placement:m[0]}};const y=[h[getSide(b)],h[v[0]],h[v[1]]],E=[...(null==(o=i.autoPlacement)?void 0:o.overflows)||[],{placement:b,overflows:y}],w=m[g+1];if(w)return{data:{index:g+1,overflows:E},reset:{placement:w}};const C=E.map(e=>{const t=getAlignment(e.placement);return[e.placement,t&&d?e.overflows.slice(0,2).reduce((e,t)=>e+t,0):e.overflows[0],e.overflows]}).sort((e,t)=>e[1]-t[1]),x=(null==(r=C.filter(e=>e[2].slice(0,getAlignment(e[0])?2:3).every(e=>e<=0))[0])?void 0:r[0])||C[0][0];return x!==s?{data:{index:g+1,overflows:E},reset:{placement:x}}:{}}}},flip$2=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:r,middlewareData:a,rects:i,initialPlacement:s,platform:l,elements:c}=t,{mainAxis:d=!0,crossAxis:u=!0,fallbackPlacements:f,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:_="none",flipAlignment:m=!0,...h}=evaluate(e,t);if(null!=(n=a.arrow)&&n.alignmentOffset)return{};const g=getSide(r),b=getSideAxis(s),v=getSide(s)===s,y=await(null==l.isRTL?void 0:l.isRTL(c.floating)),E=f||(v||!m?[getOppositePlacement(s)]:getExpandedPlacements(s)),w="none"!==_;!f&&w&&E.push(...getOppositeAxisPlacements(s,m,_,y));const C=[s,...E],x=await detectOverflow(t,h),R=[];let S=(null==(o=a.flip)?void 0:o.overflows)||[];if(d&&R.push(x[g]),u){const e=getAlignmentSides(r,i,y);R.push(x[e[0]],x[e[1]])}if(S=[...S,{placement:r,overflows:R}],!R.every(e=>e<=0)){var D,T;const e=((null==(D=a.flip)?void 0:D.index)||0)+1,t=C[e];if(t){if(!("alignment"===u&&b!==getSideAxis(t))||S.every(e=>getSideAxis(e.placement)!==b||e.overflows[0]>0))return{data:{index:e,overflows:S},reset:{placement:t}}}let n=null==(T=S.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:T.placement;if(!n)switch(p){case"bestFit":{var A;const e=null==(A=S.filter(e=>{if(w){const t=getSideAxis(e.placement);return t===b||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:A[0];e&&(n=e);break}case"initialPlacement":n=s}if(r!==n)return{reset:{placement:n}}}return{}}}};function getSideOffsets(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function isAnySideFullyClipped(e){return sides.some(t=>e[t]>=0)}const hide$2=function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:o="referenceHidden",...r}=evaluate(e,t);switch(o){case"referenceHidden":{const e=getSideOffsets(await detectOverflow(t,{...r,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:isAnySideFullyClipped(e)}}}case"escaped":{const e=getSideOffsets(await detectOverflow(t,{...r,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:isAnySideFullyClipped(e)}}}default:return{}}}}};function getBoundingRect(e){const t=min(...e.map(e=>e.left)),n=min(...e.map(e=>e.top));return{x:t,y:n,width:max(...e.map(e=>e.right))-t,height:max(...e.map(e=>e.bottom))-n}}function getRectsByLine(e){const t=e.slice().sort((e,t)=>e.y-t.y),n=[];let o=null;for(let e=0;e<t.length;e++){const r=t[e];!o||r.y-o.y>o.height/2?n.push([r]):n[n.length-1].push(r),o=r}return n.map(e=>rectToClientRect(getBoundingRect(e)))}const inline$2=function(e){return void 0===e&&(e={}),{name:"inline",options:e,async fn(t){const{placement:n,elements:o,rects:r,platform:a,strategy:i}=t,{padding:s=2,x:l,y:c}=evaluate(e,t),d=Array.from(await(null==a.getClientRects?void 0:a.getClientRects(o.reference))||[]),u=getRectsByLine(d),f=rectToClientRect(getBoundingRect(d)),p=getPaddingObject(s);const _=await a.getElementRects({reference:{getBoundingClientRect:function(){if(2===u.length&&u[0].left>u[1].right&&null!=l&&null!=c)return u.find(e=>l>e.left-p.left&&l<e.right+p.right&&c>e.top-p.top&&c<e.bottom+p.bottom)||f;if(u.length>=2){if("y"===getSideAxis(n)){const e=u[0],t=u[u.length-1],o="top"===getSide(n),r=e.top,a=t.bottom,i=o?e.left:t.left,s=o?e.right:t.right;return{top:r,bottom:a,left:i,right:s,width:s-i,height:a-r,x:i,y:r}}const e="left"===getSide(n),t=max(...u.map(e=>e.right)),o=min(...u.map(e=>e.left)),r=u.filter(n=>e?n.left===o:n.right===t),a=r[0].top,i=r[r.length-1].bottom;return{top:a,bottom:i,left:o,right:t,width:t-o,height:i-a,x:o,y:a}}return f}},floating:o.floating,strategy:i});return r.reference.x!==_.reference.x||r.reference.y!==_.reference.y||r.reference.width!==_.reference.width||r.reference.height!==_.reference.height?{reset:{rects:_}}:{}}}},originSides=new Set(["left","top"]);async function convertValueToCoords(e,t){const{placement:n,platform:o,elements:r}=e,a=await(null==o.isRTL?void 0:o.isRTL(r.floating)),i=getSide(n),s=getAlignment(n),l="y"===getSideAxis(n),c=originSides.has(i)?-1:1,d=a&&l?-1:1,u=evaluate(t,e);let{mainAxis:f,crossAxis:p,alignmentAxis:_}="number"==typeof u?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return s&&"number"==typeof _&&(p="end"===s?-1*_:_),l?{x:p*d,y:f*c}:{x:f*c,y:p*d}}const offset$2=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:r,y:a,placement:i,middlewareData:s}=t,l=await convertValueToCoords(t,e);return i===(null==(n=s.offset)?void 0:n.placement)&&null!=(o=s.arrow)&&o.alignmentOffset?{}:{x:r+l.x,y:a+l.y,data:{...l,placement:i}}}}},shift$2=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:r}=t,{mainAxis:a=!0,crossAxis:i=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=evaluate(e,t),c={x:n,y:o},d=await detectOverflow(t,l),u=getSideAxis(getSide(r)),f=getOppositeAxis(u);let p=c[f],_=c[u];if(a){const e="y"===f?"bottom":"right";p=clamp(p+d["y"===f?"top":"left"],p,p-d[e])}if(i){const e="y"===u?"bottom":"right";_=clamp(_+d["y"===u?"top":"left"],_,_-d[e])}const m=s.fn({...t,[f]:p,[u]:_});return{...m,data:{x:m.x-n,y:m.y-o,enabled:{[f]:a,[u]:i}}}}}},limitShift$2=function(e){return void 0===e&&(e={}),{options:e,fn(t){const{x:n,y:o,placement:r,rects:a,middlewareData:i}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=evaluate(e,t),d={x:n,y:o},u=getSideAxis(r),f=getOppositeAxis(u);let p=d[f],_=d[u];const m=evaluate(s,t),h="number"==typeof m?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(l){const e="y"===f?"height":"width",t=a.reference[f]-a.floating[e]+h.mainAxis,n=a.reference[f]+a.reference[e]-h.mainAxis;p<t?p=t:p>n&&(p=n)}if(c){var g,b;const e="y"===f?"width":"height",t=originSides.has(getSide(r)),n=a.reference[u]-a.floating[e]+(t&&(null==(g=i.offset)?void 0:g[u])||0)+(t?0:h.crossAxis),o=a.reference[u]+a.reference[e]+(t?0:(null==(b=i.offset)?void 0:b[u])||0)-(t?h.crossAxis:0);_<n?_=n:_>o&&(_=o)}return{[f]:p,[u]:_}}}},size$2=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,o;const{placement:r,rects:a,platform:i,elements:s}=t,{apply:l=()=>{},...c}=evaluate(e,t),d=await detectOverflow(t,c),u=getSide(r),f=getAlignment(r),p="y"===getSideAxis(r),{width:_,height:m}=a.floating;let h,g;"top"===u||"bottom"===u?(h=u,g=f===(await(null==i.isRTL?void 0:i.isRTL(s.floating))?"start":"end")?"left":"right"):(g=u,h="end"===f?"top":"bottom");const b=m-d.top-d.bottom,v=_-d.left-d.right,y=min(m-d[h],b),E=min(_-d[g],v),w=!t.middlewareData.shift;let C=y,x=E;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(x=v),null!=(o=t.middlewareData.shift)&&o.enabled.y&&(C=b),w&&!f){const e=max(d.left,0),t=max(d.right,0),n=max(d.top,0),o=max(d.bottom,0);p?x=_-2*(0!==e||0!==t?e+t:max(d.left,d.right)):C=m-2*(0!==n||0!==o?n+o:max(d.top,d.bottom))}await l({...t,availableWidth:x,availableHeight:C});const R=await i.getDimensions(s.floating);return _!==R.width||m!==R.height?{reset:{rects:!0}}:{}}}};function hasWindow(){return"undefined"!=typeof window}function getNodeName(e){return isNode(e)?(e.nodeName||"").toLowerCase():"#document"}function getWindow(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function getDocumentElement(e){var t;return null==(t=(isNode(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function isNode(e){return!!hasWindow()&&(e instanceof Node||e instanceof getWindow(e).Node)}function isElement(e){return!!hasWindow()&&(e instanceof Element||e instanceof getWindow(e).Element)}function isHTMLElement(e){return!!hasWindow()&&(e instanceof HTMLElement||e instanceof getWindow(e).HTMLElement)}function isShadowRoot(e){return!(!hasWindow()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof getWindow(e).ShadowRoot)}const invalidOverflowDisplayValues=new Set(["inline","contents"]);function isOverflowElement(e){const{overflow:t,overflowX:n,overflowY:o,display:r}=getComputedStyle$1(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&!invalidOverflowDisplayValues.has(r)}const tableElements=new Set(["table","td","th"]);function isTableElement(e){return tableElements.has(getNodeName(e))}const topLayerSelectors=[":popover-open",":modal"];function isTopLayer(e){return topLayerSelectors.some(t=>{try{return e.matches(t)}catch(e){return!1}})}const transformProperties=["transform","translate","scale","rotate","perspective"],willChangeValues=["transform","translate","scale","rotate","perspective","filter"],containValues=["paint","layout","strict","content"];function isContainingBlock(e){const t=isWebKit(),n=isElement(e)?getComputedStyle$1(e):e;return transformProperties.some(e=>!!n[e]&&"none"!==n[e])||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||willChangeValues.some(e=>(n.willChange||"").includes(e))||containValues.some(e=>(n.contain||"").includes(e))}function getContainingBlock(e){let t=getParentNode(e);for(;isHTMLElement(t)&&!isLastTraversableNode(t);){if(isContainingBlock(t))return t;if(isTopLayer(t))return null;t=getParentNode(t)}return null}function isWebKit(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}const lastTraversableNodeNames=new Set(["html","body","#document"]);function isLastTraversableNode(e){return lastTraversableNodeNames.has(getNodeName(e))}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function getNodeScroll(e){return isElement(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function getParentNode(e){if("html"===getNodeName(e))return e;const t=e.assignedSlot||e.parentNode||isShadowRoot(e)&&e.host||getDocumentElement(e);return isShadowRoot(t)?t.host:t}function getNearestOverflowAncestor(e){const t=getParentNode(e);return isLastTraversableNode(t)?e.ownerDocument?e.ownerDocument.body:e.body:isHTMLElement(t)&&isOverflowElement(t)?t:getNearestOverflowAncestor(t)}function getOverflowAncestors(e,t,n){var o;void 0===t&&(t=[]),void 0===n&&(n=!0);const r=getNearestOverflowAncestor(e),a=r===(null==(o=e.ownerDocument)?void 0:o.body),i=getWindow(r);if(a){const e=getFrameElement(i);return t.concat(i,i.visualViewport||[],isOverflowElement(r)?r:[],e&&n?getOverflowAncestors(e):[])}return t.concat(r,getOverflowAncestors(r,[],n))}function getFrameElement(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function getCssDimensions(e){const t=getComputedStyle$1(e);let n=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const r=isHTMLElement(e),a=r?e.offsetWidth:n,i=r?e.offsetHeight:o,s=round(n)!==a||round(o)!==i;return s&&(n=a,o=i),{width:n,height:o,$:s}}function unwrapElement(e){return isElement(e)?e:e.contextElement}function getScale(e){const t=unwrapElement(e);if(!isHTMLElement(t))return createCoords(1);const n=t.getBoundingClientRect(),{width:o,height:r,$:a}=getCssDimensions(t);let i=(a?round(n.width):n.width)/o,s=(a?round(n.height):n.height)/r;return i&&Number.isFinite(i)||(i=1),s&&Number.isFinite(s)||(s=1),{x:i,y:s}}const noOffsets=createCoords(0);function getVisualOffsets(e){const t=getWindow(e);return isWebKit()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:noOffsets}function shouldAddVisualOffsets(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==getWindow(e))&&t}function getBoundingClientRect(e,t,n,o){void 0===t&&(t=!1),void 0===n&&(n=!1);const r=e.getBoundingClientRect(),a=unwrapElement(e);let i=createCoords(1);t&&(o?isElement(o)&&(i=getScale(o)):i=getScale(e));const s=shouldAddVisualOffsets(a,n,o)?getVisualOffsets(a):createCoords(0);let l=(r.left+s.x)/i.x,c=(r.top+s.y)/i.y,d=r.width/i.x,u=r.height/i.y;if(a){const e=getWindow(a),t=o&&isElement(o)?getWindow(o):o;let n=e,r=getFrameElement(n);for(;r&&o&&t!==n;){const e=getScale(r),t=r.getBoundingClientRect(),o=getComputedStyle$1(r),a=t.left+(r.clientLeft+parseFloat(o.paddingLeft))*e.x,i=t.top+(r.clientTop+parseFloat(o.paddingTop))*e.y;l*=e.x,c*=e.y,d*=e.x,u*=e.y,l+=a,c+=i,n=getWindow(r),r=getFrameElement(n)}}return rectToClientRect({width:d,height:u,x:l,y:c})}function getWindowScrollBarX(e,t){const n=getNodeScroll(e).scrollLeft;return t?t.left+n:getBoundingClientRect(getDocumentElement(e)).left+n}function getHTMLOffset(e,t){const n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-getWindowScrollBarX(e,n),y:n.top+t.scrollTop}}function convertOffsetParentRelativeRectToViewportRelativeRect(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e;const a="fixed"===r,i=getDocumentElement(o),s=!!t&&isTopLayer(t.floating);if(o===i||s&&a)return n;let l={scrollLeft:0,scrollTop:0},c=createCoords(1);const d=createCoords(0),u=isHTMLElement(o);if((u||!u&&!a)&&(("body"!==getNodeName(o)||isOverflowElement(i))&&(l=getNodeScroll(o)),isHTMLElement(o))){const e=getBoundingClientRect(o);c=getScale(o),d.x=e.x+o.clientLeft,d.y=e.y+o.clientTop}const f=!i||u||a?createCoords(0):getHTMLOffset(i,l);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+d.x+f.x,y:n.y*c.y-l.scrollTop*c.y+d.y+f.y}}function getClientRects(e){return Array.from(e.getClientRects())}function getDocumentRect(e){const t=getDocumentElement(e),n=getNodeScroll(e),o=e.ownerDocument.body,r=max(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),a=max(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let i=-n.scrollLeft+getWindowScrollBarX(e);const s=-n.scrollTop;return"rtl"===getComputedStyle$1(o).direction&&(i+=max(t.clientWidth,o.clientWidth)-r),{width:r,height:a,x:i,y:s}}const SCROLLBAR_MAX=25;function getViewportRect(e,t){const n=getWindow(e),o=getDocumentElement(e),r=n.visualViewport;let a=o.clientWidth,i=o.clientHeight,s=0,l=0;if(r){a=r.width,i=r.height;const e=isWebKit();(!e||e&&"fixed"===t)&&(s=r.offsetLeft,l=r.offsetTop)}const c=getWindowScrollBarX(o);if(c<=0){const e=o.ownerDocument,t=e.body,n=getComputedStyle(t),r="CSS1Compat"===e.compatMode&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(o.clientWidth-t.clientWidth-r);i<=SCROLLBAR_MAX&&(a-=i)}else c<=SCROLLBAR_MAX&&(a+=c);return{width:a,height:i,x:s,y:l}}const absoluteOrFixed=new Set(["absolute","fixed"]);function getInnerBoundingClientRect(e,t){const n=getBoundingClientRect(e,!0,"fixed"===t),o=n.top+e.clientTop,r=n.left+e.clientLeft,a=isHTMLElement(e)?getScale(e):createCoords(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:r*a.x,y:o*a.y}}function getClientRectFromClippingAncestor(e,t,n){let o;if("viewport"===t)o=getViewportRect(e,n);else if("document"===t)o=getDocumentRect(getDocumentElement(e));else if(isElement(t))o=getInnerBoundingClientRect(t,n);else{const n=getVisualOffsets(e);o={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return rectToClientRect(o)}function hasFixedPositionAncestor(e,t){const n=getParentNode(e);return!(n===t||!isElement(n)||isLastTraversableNode(n))&&("fixed"===getComputedStyle$1(n).position||hasFixedPositionAncestor(n,t))}function getClippingElementAncestors(e,t){const n=t.get(e);if(n)return n;let o=getOverflowAncestors(e,[],!1).filter(e=>isElement(e)&&"body"!==getNodeName(e)),r=null;const a="fixed"===getComputedStyle$1(e).position;let i=a?getParentNode(e):e;for(;isElement(i)&&!isLastTraversableNode(i);){const t=getComputedStyle$1(i),n=isContainingBlock(i);n||"fixed"!==t.position||(r=null);(a?!n&&!r:!n&&"static"===t.position&&!!r&&absoluteOrFixed.has(r.position)||isOverflowElement(i)&&!n&&hasFixedPositionAncestor(e,i))?o=o.filter(e=>e!==i):r=t,i=getParentNode(i)}return t.set(e,o),o}function getClippingRect(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const a=[..."clippingAncestors"===n?isTopLayer(t)?[]:getClippingElementAncestors(t,this._c):[].concat(n),o],i=a[0],s=a.reduce((e,n)=>{const o=getClientRectFromClippingAncestor(t,n,r);return e.top=max(o.top,e.top),e.right=min(o.right,e.right),e.bottom=min(o.bottom,e.bottom),e.left=max(o.left,e.left),e},getClientRectFromClippingAncestor(t,i,r));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function getDimensions(e){const{width:t,height:n}=getCssDimensions(e);return{width:t,height:n}}function getRectRelativeToOffsetParent(e,t,n){const o=isHTMLElement(t),r=getDocumentElement(t),a="fixed"===n,i=getBoundingClientRect(e,!0,a,t);let s={scrollLeft:0,scrollTop:0};const l=createCoords(0);function c(){l.x=getWindowScrollBarX(r)}if(o||!o&&!a)if(("body"!==getNodeName(t)||isOverflowElement(r))&&(s=getNodeScroll(t)),o){const e=getBoundingClientRect(t,!0,a,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else r&&c();a&&!o&&r&&c();const d=!r||o||a?createCoords(0):getHTMLOffset(r,s);return{x:i.left+s.scrollLeft-l.x-d.x,y:i.top+s.scrollTop-l.y-d.y,width:i.width,height:i.height}}function isStaticPositioned(e){return"static"===getComputedStyle$1(e).position}function getTrueOffsetParent(e,t){if(!isHTMLElement(e)||"fixed"===getComputedStyle$1(e).position)return null;if(t)return t(e);let n=e.offsetParent;return getDocumentElement(e)===n&&(n=n.ownerDocument.body),n}function getOffsetParent(e,t){const n=getWindow(e);if(isTopLayer(e))return n;if(!isHTMLElement(e)){let t=getParentNode(e);for(;t&&!isLastTraversableNode(t);){if(isElement(t)&&!isStaticPositioned(t))return t;t=getParentNode(t)}return n}let o=getTrueOffsetParent(e,t);for(;o&&isTableElement(o)&&isStaticPositioned(o);)o=getTrueOffsetParent(o,t);return o&&isLastTraversableNode(o)&&isStaticPositioned(o)&&!isContainingBlock(o)?n:o||getContainingBlock(e)||n}const getElementRects=async function(e){const t=this.getOffsetParent||getOffsetParent,n=this.getDimensions,o=await n(e.floating);return{reference:getRectRelativeToOffsetParent(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function isRTL(e){return"rtl"===getComputedStyle$1(e).direction}const platform={convertOffsetParentRelativeRectToViewportRelativeRect:convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement:getDocumentElement,getClippingRect:getClippingRect,getOffsetParent:getOffsetParent,getElementRects:getElementRects,getClientRects:getClientRects,getDimensions:getDimensions,getScale:getScale,isElement:isElement,isRTL:isRTL};function rectsAreEqual(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function observeMove(e,t){let n,o=null;const r=getDocumentElement(e);function a(){var e;clearTimeout(n),null==(e=o)||e.disconnect(),o=null}return function i(s,l){void 0===s&&(s=!1),void 0===l&&(l=1),a();const c=e.getBoundingClientRect(),{left:d,top:u,width:f,height:p}=c;if(s||t(),!f||!p)return;const _={rootMargin:-floor(u)+"px "+-floor(r.clientWidth-(d+f))+"px "+-floor(r.clientHeight-(u+p))+"px "+-floor(d)+"px",threshold:max(0,min(1,l))||1};let m=!0;function h(t){const o=t[0].intersectionRatio;if(o!==l){if(!m)return i();o?i(!1,o):n=setTimeout(()=>{i(!1,1e-7)},1e3)}1!==o||rectsAreEqual(c,e.getBoundingClientRect())||i(),m=!1}try{o=new IntersectionObserver(h,{..._,root:r.ownerDocument})}catch(e){o=new IntersectionObserver(h,_)}o.observe(e)}(!0),a}function autoUpdate(e,t,n,o){void 0===o&&(o={});const{ancestorScroll:r=!0,ancestorResize:a=!0,elementResize:i="function"==typeof ResizeObserver,layoutShift:s="function"==typeof IntersectionObserver,animationFrame:l=!1}=o,c=unwrapElement(e),d=r||a?[...c?getOverflowAncestors(c):[],...getOverflowAncestors(t)]:[];d.forEach(e=>{r&&e.addEventListener("scroll",n,{passive:!0}),a&&e.addEventListener("resize",n)});const u=c&&s?observeMove(c,n):null;let f,p=-1,_=null;i&&(_=new ResizeObserver(e=>{let[o]=e;o&&o.target===c&&_&&(_.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var e;null==(e=_)||e.observe(t)})),n()}),c&&!l&&_.observe(c),_.observe(t));let m=l?getBoundingClientRect(e):null;return l&&function t(){const o=getBoundingClientRect(e);m&&!rectsAreEqual(m,o)&&n();m=o,f=requestAnimationFrame(t)}(),n(),()=>{var e;d.forEach(e=>{r&&e.removeEventListener("scroll",n),a&&e.removeEventListener("resize",n)}),null==u||u(),null==(e=_)||e.disconnect(),_=null,l&&cancelAnimationFrame(f)}}const offset$1=offset$2,shift$1=shift$2,flip$1=flip$2,size$1=size$2,hide$1=hide$2,arrow$2=arrow$3,inline$1=inline$2,limitShift$1=limitShift$2,computePosition=(e,t,n)=>{const o=new Map,r={platform:platform,...n},a={...r.platform,_c:o};return computePosition$1(e,t,{...r,platform:a})};var isClient="undefined"!=typeof document,noop$1=function(){},index=isClient?React.useLayoutEffect:noop$1;function deepEqual(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;let n,o,r;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(o=n;0!==o--;)if(!deepEqual(e[o],t[o]))return!1;return!0}if(r=Object.keys(e),n=r.length,n!==Object.keys(t).length)return!1;for(o=n;0!==o--;)if(!{}.hasOwnProperty.call(t,r[o]))return!1;for(o=n;0!==o--;){const n=r[o];if(("_owner"!==n||!e.$$typeof)&&!deepEqual(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function getDPR(e){if("undefined"==typeof window)return 1;return(e.ownerDocument.defaultView||window).devicePixelRatio||1}function roundByDPR(e,t){const n=getDPR(e);return Math.round(t*n)/n}function useLatestRef(e){const t=React__namespace.useRef(e);return index(()=>{t.current=e}),t}function useFloating(e){void 0===e&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:o=[],platform:r,elements:{reference:a,floating:i}={},transform:s=!0,whileElementsMounted:l,open:c}=e,[d,u]=React__namespace.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=React__namespace.useState(o);deepEqual(f,o)||p(o);const[_,m]=React__namespace.useState(null),[h,g]=React__namespace.useState(null),b=React__namespace.useCallback(e=>{e!==w.current&&(w.current=e,m(e))},[]),v=React__namespace.useCallback(e=>{e!==C.current&&(C.current=e,g(e))},[]),y=a||_,E=i||h,w=React__namespace.useRef(null),C=React__namespace.useRef(null),x=React__namespace.useRef(d),R=null!=l,S=useLatestRef(l),D=useLatestRef(r),T=useLatestRef(c),A=React__namespace.useCallback(()=>{if(!w.current||!C.current)return;const e={placement:t,strategy:n,middleware:f};D.current&&(e.platform=D.current),computePosition(w.current,C.current,e).then(e=>{const t={...e,isPositioned:!1!==T.current};O.current&&!deepEqual(x.current,t)&&(x.current=t,ReactDOM__namespace.flushSync(()=>{u(t)}))})},[f,t,n,D,T]);index(()=>{!1===c&&x.current.isPositioned&&(x.current.isPositioned=!1,u(e=>({...e,isPositioned:!1})))},[c]);const O=React__namespace.useRef(!1);index(()=>(O.current=!0,()=>{O.current=!1}),[]),index(()=>{if(y&&(w.current=y),E&&(C.current=E),y&&E){if(S.current)return S.current(y,E,A);A()}},[y,E,A,S,R]);const I=React__namespace.useMemo(()=>({reference:w,floating:C,setReference:b,setFloating:v}),[b,v]),k=React__namespace.useMemo(()=>({reference:y,floating:E}),[y,E]),N=React__namespace.useMemo(()=>{const e={position:n,left:0,top:0};if(!k.floating)return e;const t=roundByDPR(k.floating,d.x),o=roundByDPR(k.floating,d.y);return s?{...e,transform:"translate("+t+"px, "+o+"px)",...getDPR(k.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:o}},[n,s,k.floating,d.x,d.y]);return React__namespace.useMemo(()=>({...d,update:A,refs:I,elements:k,floatingStyles:N}),[d,A,I,k,N])}const arrow$1=e=>({name:"arrow",options:e,fn(t){const{element:n,padding:o}="function"==typeof e?e(t):e;return n&&(r=n,{}.hasOwnProperty.call(r,"current"))?null!=n.current?arrow$2({element:n.current,padding:o}).fn(t):{}:n?arrow$2({element:n,padding:o}).fn(t):{};var r}}),offset=(e,t)=>({...offset$1(e),options:[e,t]}),shift=(e,t)=>({...shift$1(e),options:[e,t]}),limitShift=(e,t)=>({...limitShift$1(e),options:[e,t]}),flip=(e,t)=>({...flip$1(e),options:[e,t]}),size=(e,t)=>({...size$1(e),options:[e,t]}),hide=(e,t)=>({...hide$1(e),options:[e,t]}),inline=(e,t)=>({...inline$1(e),options:[e,t]}),arrow=(e,t)=>({...arrow$1(e),options:[e,t]});var PKG_NAME="@liveblocks/react",PKG_VERSION="2.15.1",PKG_FORMAT="esm";function ClientSideSuspense(e){const[t,n]=React.useState(!1);return React.useEffect(()=>{n(!0)},[]),jsxRuntime.exports.jsx(React.Suspense,{fallback:e.fallback,children:t?"function"==typeof e.children?e.children():e.children:e.fallback})}function composerBodyMentionToCommentBodyMention(e){return{type:"mention",id:e.id}}function composerBodyAutoLinkToCommentBodyLink(e){return{type:"link",url:e.url}}function composerBodyCustomLinkToCommentBodyLink(e){return{type:"link",url:e.url,text:e.children.map(e=>e.text).join("")}}function commentBodyMentionToComposerBodyMention(e){return{type:"mention",id:e.id,children:[{text:""}]}}function commentBodyLinkToComposerBodyLink(e){return e.text?{type:"custom-link",url:e.url,children:[{text:e.text}]}:{type:"auto-link",url:e.url,children:[{text:e.url}]}}function composerBodyToCommentBody(e){return{version:1,content:e.map(e=>{if("paragraph"!==e.type)return null;const t=e.children.map(e=>isComposerBodyMention(e)?composerBodyMentionToCommentBodyMention(e):isComposerBodyAutoLink(e)?composerBodyAutoLinkToCommentBodyLink(e):isComposerBodyCustomLink(e)?composerBodyCustomLinkToCommentBodyLink(e):isText(e)?e:null).filter(exists);return{...e,children:t}}).filter(exists)}}detectDupes(PKG_NAME,PKG_VERSION,PKG_FORMAT);const emptyComposerBody=[];function commentBodyToComposerBody(e){return e&&e?.content?e.content.map(e=>{if("paragraph"!==e.type)return null;const t=e.children.map(e=>isCommentBodyMention(e)?commentBodyMentionToComposerBodyMention(e):isCommentBodyLink(e)?commentBodyLinkToComposerBodyLink(e):isCommentBodyText(e)?e:null).filter(exists);return{...e,children:t}}).filter(exists):emptyComposerBody}function getRtlFloatingAlignment(e){switch(e){case"start":return"end";case"end":return"start";default:return"center"}}function getSideAndAlignFromFloatingPlacement(e){const[t,n="center"]=e.split("-");return[t,n]}function useContentZIndex(){const[e,t]=React.useState(null),n=React.useCallback(t,[t]),[o,r]=React.useState();return React.useLayoutEffect(()=>{e&&r(window.getComputedStyle(e).zIndex)},[e]),[n,o]}function useFloatingWithOptions({type:e="bounds",position:t,alignment:n,dir:o,open:r}){return useFloating({...React.useMemo(()=>{const r={padding:FLOATING_ELEMENT_COLLISION_PADDING},a=["range"===e?inline(r):null,flip({...r,crossAxis:!1}),hide(r),shift({...r,limiter:limitShift()}),"range"===e?offset(FLOATING_ELEMENT_SIDE_OFFSET):null,size({...r,apply({availableWidth:e,availableHeight:t,elements:n}){n.floating.style.setProperty("--lb-composer-floating-available-width",`${e}px`),n.floating.style.setProperty("--lb-composer-floating-available-height",`${t}px`)}})];return{strategy:"fixed",placement:"center"===n?t:`${t}-${"rtl"===o?getRtlFloatingAlignment(n):n}`,middleware:a,whileElementsMounted:(...e)=>autoUpdate(...e,{animationFrame:!0})}},[n,t,o,e]),open:r})}function useComposerAttachmentsDropArea({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:o,disabled:r}){const{isDisabled:a}=useComposer(),i=a||r,{createAttachments:s}=useComposerAttachmentsContext(),[l,c]=React.useState(!1),d=useLatest(l);return[l,{onDragEnter:React.useCallback(t=>{if(e?.(t),d.current||i||t.isDefaultPrevented())return;t.dataTransfer.types.includes("Files")&&(t.preventDefault(),t.stopPropagation(),c(!0))},[e,i]),onDragLeave:React.useCallback(e=>{t?.(e),!d.current||i||e.isDefaultPrevented()||(e.relatedTarget?e.relatedTarget===e.currentTarget||e.currentTarget.contains(e.relatedTarget):e.currentTarget!==e.target)||(e.preventDefault(),e.stopPropagation(),c(!1))},[t,i]),onDragOver:React.useCallback(e=>{n?.(e),i||e.isDefaultPrevented()||(e.preventDefault(),e.stopPropagation())},[n,i]),onDrop:React.useCallback(e=>{if(o?.(e),!d.current||i||e.isDefaultPrevented())return;e.preventDefault(),e.stopPropagation(),c(!1);const t=getFiles(e.dataTransfer);s(t)},[o,i,s]),"data-drop":l?"":void 0,"data-disabled":i?"":void 0}]}class AttachmentTooLargeError extends Error{origin;name="AttachmentTooLargeError";constructor(e,t="client"){super(e),this.origin=t}}function createComposerAttachmentsManager(e,t,n){const o=new Map,r=new Map,a=makeEventSource();let i=null;function s(){i=null,a.notify()}function l(n){const a=new AbortController;r.set(n.id,a),e[kInternal].httpClient.uploadAttachment({roomId:t,attachment:n,signal:a.signal}).then(()=>{o.set(n.id,{...n,status:"uploaded"}),s()}).catch(e=>{e instanceof Error&&"AbortError"!==e.name&&"TimeoutError"!==e.name&&(o.set(n.id,{...n,status:"error",error:e instanceof HttpError&&413===e.status?new AttachmentTooLargeError("File is too large.","server"):e}),s())})}return{addAttachments:function(e){if(0===e.length)return;const t=e.filter(e=>!o.has(e.id)),r=[];for(const e of t)if("localAttachment"===e.type){if(e.file.size>n.maxFileSize){o.set(e.id,{...e,status:"error",error:new AttachmentTooLargeError("File is too large.","client")});continue}o.set(e.id,{...e,status:"uploading"}),r.push(e)}else o.set(e.id,e);t.length>0&&s();for(const e of r)l(e)},removeAttachment:function(e){const t=r.get(e);t?.abort(),o.delete(e),r.delete(e),s()},getSnapshot:function(){return i||(i=Array.from(o.values())),i},subscribe:a.subscribe,clear:function(){r.forEach(e=>e.abort()),r.clear(),o.clear(),s()}}}function preventBeforeUnloadDefault(e){e.preventDefault()}function useComposerAttachmentsManager(e,t){const n=useClient(),o=useInitial(e),r=useInitial(()=>createComposerAttachmentsManager(n,t.roomId,t));React.useEffect(()=>{r.addAttachments(o)},[o,r]),React.useEffect(()=>()=>{r.clear()},[r]);const a=React.useSyncExternalStore(r.subscribe,r.getSnapshot,r.getSnapshot),i=React.useMemo(()=>a.some(e=>"localAttachment"===e.type&&"uploading"===e.status),[a]);return React.useEffect(()=>{if(i)return window.addEventListener("beforeunload",preventBeforeUnloadDefault),()=>{window.removeEventListener("beforeunload",preventBeforeUnloadDefault)}},[i]),{attachments:a,isUploadingAttachments:i,addAttachments:r.addAttachments,removeAttachment:r.removeAttachment,clearAttachments:r.clear}}const MENTION_SUGGESTIONS_POSITION="top",FLOATING_TOOLBAR_POSITION="top",COMPOSER_FLOATING_TOOLBAR_NAME="ComposerFloatingToolbar",COMPOSER_SUGGESTIONS_NAME="ComposerSuggestions",COMPOSER_SUGGESTIONS_LIST_NAME="ComposerSuggestionsList",COMPOSER_SUGGESTIONS_LIST_ITEM_NAME="ComposerSuggestionsListItem",emptyCommentBody={version:1,content:[{type:"paragraph",children:[{text:""}]}]};function createComposerEditor({createAttachments:e,pasteFilesAsAttachments:t}){return withNormalize(withMentions(withCustomLinks(withAutoLinks(withAutoFormatting(withEmptyClearFormatting(withPaste(withHistory(withReact(createEditor$1())),{createAttachments:e,pasteFilesAsAttachments:t})))))))}function ComposerEditorMentionWrapper({Mention:e,attributes:t,children:n,element:o}){const r=useSelected();return jsxRuntime.exports.jsxs("span",{...t,children:[o.id?jsxRuntime.exports.jsx(e,{userId:o.id,isSelected:r}):null,n]})}function ComposerEditorLinkWrapper({Link:e,attributes:t,element:n,children:o}){const r=React.useMemo(()=>toAbsoluteUrl(n.url)??n.url,[n.url]);return jsxRuntime.exports.jsx("span",{...t,children:jsxRuntime.exports.jsx(e,{href:r,children:o})})}function ComposerEditorMentionSuggestionsWrapper({id:e,itemId:t,userIds:n,selectedUserId:o,setSelectedUserId:r,mentionDraft:a,setMentionDraft:i,onItemSelect:s,position:l=MENTION_SUGGESTIONS_POSITION,dir:c,MentionSuggestions:d}){const u=useSlateStatic(),{onEditorChange:f}=useComposerEditorContext(),{isFocused:p}=useComposer(),{portalContainer:_}=useLiveblocksUIConfig(),[m,h]=useContentZIndex(),g=p&&void 0!==a?.range&&void 0!==n,{refs:{setReference:b,setFloating:v},strategy:y,isPositioned:E,placement:w,x:C,y:x}=useFloatingWithOptions({position:l,dir:c,alignment:"start",open:g});return useObservable(f,()=>{i(getMentionDraftAtSelection(u))}),React.useLayoutEffect(()=>{if(!a)return void b(null);const e=getDOMRange(u,a.range);b(e??null)},[b,u,a]),jsxRuntime.exports.jsx(Persist,{children:g?jsxRuntime.exports.jsx(ComposerSuggestionsContext.Provider,{value:{id:e,itemId:t,selectedValue:o,setSelectedValue:r,onItemSelect:s,placement:w,dir:c,ref:m},children:jsxRuntime.exports.jsx(Portal$4,{ref:v,container:_,style:{position:y,top:0,left:0,transform:E?`translate3d(${Math.round(C)}px, ${Math.round(x)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:h},children:jsxRuntime.exports.jsx(d,{userIds:n,selectedUserId:o})})}):null})}function ComposerEditorFloatingToolbarWrapper({id:e,position:t=FLOATING_TOOLBAR_POSITION,dir:n,FloatingToolbar:o,hasFloatingToolbarRange:r,setHasFloatingToolbarRange:a}){const i=useSlateStatic(),{onEditorChange:s}=useComposerEditorContext(),{isFocused:l}=useComposer(),{portalContainer:c}=useLiveblocksUIConfig(),[d,u]=useContentZIndex(),[f,p]=React.useState(!1),_=l&&!f&&r,{refs:{setReference:m,setFloating:h},strategy:g,isPositioned:b,placement:v,x:y,y:E}=useFloatingWithOptions({type:"range",position:t,dir:n,alignment:"center",open:_});return React.useLayoutEffect(()=>{if(!l)return;const e=()=>p(!0),t=()=>p(!1);return document.addEventListener("pointerdown",e),document.addEventListener("pointerup",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("pointerup",t)}},[l]),useObservable(s,()=>{m(null),requestAnimationFrame(()=>{const e=window.getSelection();if(i.selection&&!Range.isCollapsed(i.selection)&&e&&e.rangeCount){a(!0);const t=e.getRangeAt(0);m(t)}else a(!1),m(null)})}),jsxRuntime.exports.jsx(Persist,{children:_?jsxRuntime.exports.jsx(ComposerFloatingToolbarContext.Provider,{value:{id:e,placement:v,dir:n,ref:d},children:jsxRuntime.exports.jsx(Portal$4,{ref:h,container:c,style:{position:g,top:0,left:0,transform:b?`translate3d(${Math.round(y)}px, ${Math.round(E)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:u},children:jsxRuntime.exports.jsx(o,{})})}):null})}const ComposerFloatingToolbar$1=React.forwardRef(({children:e,onPointerDown:t,style:n,asChild:o,...r},a)=>{const[i]=usePersist(),s=React.useRef(null),{id:l,ref:c,placement:d,dir:u}=useComposerFloatingToolbarContext(COMPOSER_FLOATING_TOOLBAR_NAME),f=useRefs(a,c,s),[p,_]=React.useMemo(()=>getSideAndAlignFromFloatingPlacement(d),[d]),m=o?Slot$2:"div";useAnimationPersist(s);const h=React.useCallback(e=>{t?.(e),e.preventDefault(),e.stopPropagation()},[t]);return jsxRuntime.exports.jsx(m,{dir:u,role:"toolbar",id:l,"aria-label":"Floating toolbar",...r,onPointerDown:h,"data-state":i?"open":"closed","data-side":p,"data-align":_,style:{display:"flex",flexDirection:"row",maxWidth:"var(--lb-composer-floating-available-width)",overflowX:"auto",...n},ref:f,children:e})});function ComposerEditorElement({Mention:e,Link:t,...n}){const{attributes:o,children:r,element:a}=n;switch(a.type){case"mention":return jsxRuntime.exports.jsx(ComposerEditorMentionWrapper,{Mention:e,...n});case"auto-link":case"custom-link":return jsxRuntime.exports.jsx(ComposerEditorLinkWrapper,{Link:t,...n});case"paragraph":return jsxRuntime.exports.jsx("p",{...o,style:{position:"relative"},children:r});default:return null}}function ComposerEditorLeaf({attributes:e,children:t,leaf:n}){return n.bold&&(t=jsxRuntime.exports.jsx("strong",{children:t})),n.italic&&(t=jsxRuntime.exports.jsx("em",{children:t})),n.strikethrough&&(t=jsxRuntime.exports.jsx("s",{children:t})),n.code&&(t=jsxRuntime.exports.jsx("code",{children:t})),jsxRuntime.exports.jsx("span",{...e,children:t})}function ComposerEditorPlaceholder({attributes:e,children:t}){const{opacity:n,...o}=e.style;return jsxRuntime.exports.jsx("span",{...e,style:o,"data-placeholder":"",children:t})}const ComposerMention$1=React.forwardRef(({children:e,asChild:t,...n},o)=>{const r=t?Slot$2:"span",a=useSelected();return jsxRuntime.exports.jsx(r,{"data-selected":a||void 0,...n,ref:o,children:e})}),ComposerLink$1=React.forwardRef(({children:e,asChild:t,...n},o)=>{const r=t?Slot$2:"a";return jsxRuntime.exports.jsx(r,{target:"_blank",rel:"noopener noreferrer nofollow",...n,ref:o,children:e})}),ComposerSuggestions=React.forwardRef(({children:e,style:t,asChild:n,...o},r)=>{const[a]=usePersist(),i=React.useRef(null),{ref:s,placement:l,dir:c}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_NAME),d=useRefs(r,s,i),[u,f]=React.useMemo(()=>getSideAndAlignFromFloatingPlacement(l),[l]),p=n?Slot$2:"div";return useAnimationPersist(i),jsxRuntime.exports.jsx(p,{dir:c,...o,"data-state":a?"open":"closed","data-side":u,"data-align":f,style:{display:"flex",flexDirection:"column",maxHeight:"var(--lb-composer-floating-available-height)",overflowY:"auto",...t},ref:d,children:e})}),ComposerSuggestionsList=React.forwardRef(({children:e,asChild:t,...n},o)=>{const{id:r}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_NAME),a=t?Slot$2:"ul";return jsxRuntime.exports.jsx(a,{role:"listbox",id:r,"aria-label":"Suggestions list",...n,ref:o,children:e})}),ComposerSuggestionsListItem=React.forwardRef(({value:e,children:t,onPointerMove:n,onPointerDown:o,onClick:r,asChild:a,...i},s)=>{const l=React.useRef(null),c=useRefs(s,l),{selectedValue:d,setSelectedValue:u,itemId:f,onItemSelect:p}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_ITEM_NAME),_=a?Slot$2:"li",m=React.useMemo(()=>d===e,[d,e]),h=React.useMemo(()=>f(e),[f,e]);React.useEffect(()=>{l?.current&&m&&l.current.scrollIntoView({block:"nearest"})},[m]);const g=React.useCallback(t=>{n?.(t),t.isDefaultPrevented()||u(e)},[n,u,e]),b=React.useCallback(e=>{o?.(e),e.preventDefault(),e.stopPropagation()},[o]),v=React.useCallback(t=>{r?.(t);const n=t.isDefaultPrevented();t.preventDefault(),t.stopPropagation(),n||p(e)},[r,p,e]);return jsxRuntime.exports.jsx(_,{role:"option",id:h,"data-selected":m||void 0,"aria-selected":m||void 0,onPointerMove:g,onPointerDown:b,onClick:v,...i,ref:c,children:t})}),defaultEditorComponents={Link:({href:e,children:t})=>jsxRuntime.exports.jsx(ComposerLink$1,{href:e,children:t}),Mention:({userId:e})=>jsxRuntime.exports.jsxs(ComposerMention$1,{children:[MENTION_CHARACTER,e]}),MentionSuggestions:({userIds:e})=>e.length>0?jsxRuntime.exports.jsx(ComposerSuggestions,{children:jsxRuntime.exports.jsx(ComposerSuggestionsList,{children:e.map(e=>jsxRuntime.exports.jsx(ComposerSuggestionsListItem,{value:e,children:e},e))})}):null},ComposerEditor=React.forwardRef(({defaultValue:e,onKeyDown:t,onFocus:n,onBlur:o,disabled:r,autoFocus:a,components:i,dir:s,...l},c)=>{const d=useClientOrNull(),{editor:u,validate:f,setFocused:p,onEditorChange:_,roomId:m}=useComposerEditorContext(),{submit:h,focus:g,blur:b,select:v,canSubmit:y,isDisabled:E,isFocused:w}=useComposer(),C=E||r,x=useInitial(e??emptyCommentBody),R=React.useMemo(()=>commentBodyToComposerBody(x),[x]),{Link:S,Mention:D,MentionSuggestions:T,FloatingToolbar:A}=React.useMemo(()=>({...defaultEditorComponents,...i}),[i]),[O,I]=React.useState(!1),k=useResolveMentionSuggestions(),N=!d||k,[j,$]=React.useState(),F=useMentionSuggestions(m,j?.text),[P,M,B,L]=useIndex(0,F?.length??0),U=React.useId(),V=React.useMemo(()=>`liveblocks-floating-toolbar-${U}`,[U]),H=React.useMemo(()=>`liveblocks-suggestions-list-${U}`,[U]),z=React.useCallback(e=>e?`liveblocks-suggestions-list-item-${U}-${e}`:void 0,[U]),q=React.useCallback(e=>jsxRuntime.exports.jsx(ComposerEditorElement,{Mention:D,Link:S,...e}),[S,D]),K=React.useCallback(e=>{f(e),_.notify()},[f,_]),W=React.useCallback(e=>{j&&e&&(Transforms.select(u,j.range),insertMention(u,e),$(void 0),L(0))},[u,j,L]),G=React.useCallback(e=>{if(t?.(e),!e.isDefaultPrevented())if(isKey(e,"ArrowLeft")&&leaveMarkEdge(u,"start"),isKey(e,"ArrowRight")&&leaveMarkEdge(u,"end"),j&&F?.length){if(isKey(e,"ArrowDown")&&(e.preventDefault(),B()),isKey(e,"ArrowUp")&&(e.preventDefault(),M()),isKey(e,"Enter")||isKey(e,"Tab")){e.preventDefault();const t=F?.[P];W(t)}isKey(e,"Escape")&&(e.preventDefault(),$(void 0),L(0))}else O&&isKey(e,"Escape")&&(e.preventDefault(),I(!1)),isKey(e,"Escape")&&(e.preventDefault(),b()),isKey(e,"Enter",{shift:!1})&&(e.preventDefault(),y&&h()),isKey(e,"Enter",{shift:!0})&&(e.preventDefault(),u.insertBreak()),isKey(e,"b",{mod:!0})&&(e.preventDefault(),toggleMark(u,"bold")),isKey(e,"i",{mod:!0})&&(e.preventDefault(),toggleMark(u,"italic")),isKey(e,"s",{mod:!0,shift:!0})&&(e.preventDefault(),toggleMark(u,"strikethrough")),isKey(e,"e",{mod:!0})&&(e.preventDefault(),toggleMark(u,"code"))},[t,j,F,O,u,B,M,P,W,L,b,y,h]),Y=React.useCallback(e=>{n?.(e),e.isDefaultPrevented()||p(!0)},[n,p]),J=React.useCallback(e=>{o?.(e),e.isDefaultPrevented()||p(!1)},[o,p]),X=React.useMemo(()=>F?.[P],[P,F]),Z=React.useCallback(e=>{const t=F?.indexOf(e);void 0!==t&&t>=0&&L(t)},[L,F]),Q=React.useMemo(()=>j?{role:"combobox","aria-autocomplete":"list","aria-expanded":!0,"aria-controls":H,"aria-activedescendant":z(X)}:O?{"aria-haspopup":!0,"aria-controls":V}:{},[j,H,z,X,O,V]);return React.useImperativeHandle(c,()=>ReactEditor.toDOMNode(u,u),[u]),React.useLayoutEffect(()=>{a&&g()},[a,u,g]),React.useLayoutEffect(()=>{w&&null===u.selection&&v()},[u,v,w]),jsxRuntime.exports.jsxs(Slate,{editor:u,initialValue:R,onChange:K,children:[jsxRuntime.exports.jsx(Editable,{dir:s,enterKeyHint:j?"enter":"send",autoCapitalize:"sentences","aria-label":"Composer editor","data-focused":w||void 0,"data-disabled":C||void 0,...Q,...l,readOnly:C,disabled:C,onKeyDown:G,onFocus:Y,onBlur:J,renderElement:q,renderLeaf:ComposerEditorLeaf,renderPlaceholder:ComposerEditorPlaceholder}),N&&jsxRuntime.exports.jsx(ComposerEditorMentionSuggestionsWrapper,{dir:s,mentionDraft:j,setMentionDraft:$,selectedUserId:X,setSelectedUserId:Z,userIds:F,id:H,itemId:z,onItemSelect:W,MentionSuggestions:T}),A&&jsxRuntime.exports.jsx(ComposerEditorFloatingToolbarWrapper,{dir:s,id:V,hasFloatingToolbarRange:O,setHasFloatingToolbarRange:I,FloatingToolbar:A})]})}),MAX_ATTACHMENTS=10,MAX_ATTACHMENT_SIZE=1073741824;function prepareAttachment(e){return{type:"localAttachment",status:"idle",id:createCommentAttachmentId(),name:e.name,size:e.size,mimeType:e.type,file:e}}const ComposerForm=React.forwardRef(({children:e,onSubmit:t,onComposerSubmit:n,defaultAttachments:o=[],pasteFilesAsAttachments:r,preventUnsavedChanges:a=!0,disabled:i,asChild:s,roomId:l,...c},d)=>{const u=s?Slot$2:"form",[f,p]=React.useState(!0),[_,m]=React.useState(!1),[h,g]=React.useState(!1),b=useRoomOrNull(),v=void 0!==l?l:b?.id;if(void 0===v)throw new Error("Composer.Form must be a descendant of RoomProvider.");const y=MAX_ATTACHMENTS,E=MAX_ATTACHMENT_SIZE,{attachments:w,isUploadingAttachments:C,addAttachments:x,removeAttachment:R,clearAttachments:S}=useComposerAttachmentsManager(o,{maxFileSize:E,roomId:v}),D=w.length,T=D>=y,A=React.useMemo(()=>_||!0===i,[_,i]),O=React.useMemo(()=>!f&&!C,[f,C]),[I,k]=React.useState(getMarks),N=React.useRef(null),j=useRefs(d,N),$=React.useRef(null),F=useSyncSource(),P=!!a&&(!f||C||w.length>0);React.useEffect(()=>{F?.setSyncStatus(P?"has-local-changes":"synchronized")},[F,P]);const M=React.useCallback(e=>{if(!e.length)return;const t=Math.max(0,y-D);e.splice(t);const n=e.map(e=>prepareAttachment(e));x(n)},[x,y,D]),B=React.useRef(M);React.useEffect(()=>{B.current=M},[M]);const L=React.useCallback(e=>{B.current(e)},[]),U=useInitial(()=>createComposerEditor({createAttachments:L,pasteFilesAsAttachments:r})),V=useInitial(makeEventSource),H=React.useCallback(e=>{p(isEmpty(U,e))},[U]),z=React.useCallback(()=>{O&&requestAnimationFrame(()=>{N.current&&requestSubmit(N.current)})},[O]),q=React.useCallback(()=>{Transforms.delete(U,{at:{anchor:Editor.start(U,[]),focus:Editor.end(U,[])}})},[U]),K=React.useCallback(()=>{Transforms.select(U,Editor.end(U,[]))},[U]),W=React.useCallback((e=!0)=>{ReactEditor.isFocused(U)||(Transforms.select(U,e||!U.selection?Editor.end(U,[]):U.selection),ReactEditor.focus(U))},[U]),G=React.useCallback(()=>{ReactEditor.blur(U)},[U]),Y=React.useCallback(()=>{i||(W(),insertMentionCharacter(U))},[i,U,W]),J=React.useCallback(e=>{i||(W(!1),insertText(U,e))},[i,U,W]),X=React.useCallback(()=>{i||$.current&&$.current.click()},[i]),Z=React.useCallback(e=>{i||e.target.files&&(M(Array.from(e.target.files)),e.target.value="")},[M,i]),Q=React.useCallback(()=>{q(),G(),S(),m(!1)},[G,q,S]),ee=React.useCallback(e=>{if(i)return;if(isEmpty(U,U.children))return void e.preventDefault();if(t?.(e),!n||e.isDefaultPrevented())return void e.preventDefault();const o=composerBodyToCommentBody(U.children),r=w.filter(e=>"attachment"===e.type||"localAttachment"===e.type&&"uploaded"===e.status).map(e=>({id:e.id,type:"attachment",mimeType:e.mimeType,size:e.size,name:e.name})),a=n({body:o,attachments:r},e);e.preventDefault(),a?(m(!0),a.then(Q)):Q()},[i,U,w,n,t,Q]),te=React.useCallback(e=>{e.stopPropagation()},[]),ne=React.useCallback(e=>{toggleMark(U,e)},[U]);return useObservable(V,()=>{k(getMarks(U))}),jsxRuntime.exports.jsx(ComposerEditorContext.Provider,{value:{editor:U,validate:H,setFocused:g,onEditorChange:V,roomId:v},children:jsxRuntime.exports.jsx(ComposerAttachmentsContext.Provider,{value:{createAttachments:M,isUploadingAttachments:C,hasMaxAttachments:T,maxAttachments:y,maxAttachmentSize:E},children:jsxRuntime.exports.jsx(ComposerContext.Provider,{value:{isDisabled:A,isFocused:h,isEmpty:f,canSubmit:O,submit:z,clear:q,select:K,focus:W,blur:G,createMention:Y,insertText:J,attachments:w,attachFiles:X,removeAttachment:R,toggleMark:ne,marks:I},children:jsxRuntime.exports.jsxs(u,{...c,onSubmit:ee,ref:j,children:[jsxRuntime.exports.jsx("input",{type:"file",multiple:!0,ref:$,onChange:Z,onClick:te,tabIndex:-1,style:{display:"none"}}),jsxRuntime.exports.jsx(Slottable$1,{children:e})]})})})})}),ComposerSubmit=React.forwardRef(({children:e,disabled:t,asChild:n,...o},r)=>{const a=n?Slot$2:"button",{canSubmit:i,isDisabled:s}=useComposer(),l=s||t||!i;return jsxRuntime.exports.jsx(a,{type:"submit",...o,ref:r,disabled:l,children:e})}),ComposerAttachFiles=React.forwardRef(({children:e,onClick:t,disabled:n,asChild:o,...r},a)=>{const i=o?Slot$2:"button",{hasMaxAttachments:s}=useComposerAttachmentsContext(),{isDisabled:l,attachFiles:c}=useComposer(),d=l||s||n,u=React.useCallback(e=>{t?.(e),e.isDefaultPrevented()||c()},[c,t]);return jsxRuntime.exports.jsx(i,{type:"button",...r,onClick:u,ref:a,disabled:d,children:e})});React.forwardRef(({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:o,disabled:r,asChild:a,...i},s)=>{const l=a?Slot$2:"div",{isDisabled:c}=useComposer(),d=c||r,[,u]=useComposerAttachmentsDropArea({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:o,disabled:d});return jsxRuntime.exports.jsx(l,{...u,"data-disabled":d?"":void 0,...i,ref:s})});const ComposerMarkToggle=React.forwardRef(({children:e,mark:t,onValueChange:n,onClick:o,asChild:r,...a},i)=>{const s=r?Slot$2:"button",{marks:l,toggleMark:c}=useComposer(),d=React.useCallback(e=>{o?.(e),e.isDefaultPrevented()||(c(t),n?.(t))},[t,o,n,c]);return jsxRuntime.exports.jsx(Root$3,{asChild:!0,pressed:l[t],onClick:d,...a,children:jsxRuntime.exports.jsx(s,{...a,ref:i,children:e})})});function capitalize$1(e){return e.charAt(0).toUpperCase()+e.slice(1)}function memoize(e){const t=new Map;return(...n)=>{const o=JSON.stringify(n.map(e=>stringify(e)));if(t.has(o))return t.get(o);const r=e(...n);return t.set(o,r),r}}const dateTimeFormat=memoize((...e)=>new Intl.DateTimeFormat(...e)),relativeTimeFormat=memoize((...e)=>new Intl.RelativeTimeFormat(...e)),listFormat=memoize((...e)=>new Intl.ListFormat(...e)),numberFormat=memoize((...e)=>new Intl.NumberFormat(...e));function useInterval(e,t){const n=React.useRef(e);React.useEffect(()=>{n.current=e},[e]),React.useEffect(()=>{if(!t&&0!==t)return;const e=setInterval(()=>{!1===n.current()&&clearInterval(e)},t);return()=>clearInterval(e)},[t])}function useRerender(){const[e,t]=React.useReducer(e=>e+1,0);return[t,e]}const DYNAMIC_DATE_THRESHOLD=2592e5,RENDER_INTERVAL=3e4,relativeUnits={seconds:60,minutes:60,hours:24,days:7,weeks:4.34524,months:12};function formatVerboseDate(e,t){return capitalize$1(dateTimeFormat(t,{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric"}).format(e))}function formatShortDate(e,t){return capitalize$1(dateTimeFormat(t,{month:"short",day:"numeric"}).format(e))}const localesWithBrokenNarrowRelativeFormatting=["br","fr","nb","nn","no","ro","sv"];function formatRelativeDate(e,t){let n;if(t)n=t;else{const e=relativeTimeFormat();n=e.resolvedOptions().locale}const o=localesWithBrokenNarrowRelativeFormatting.some(e=>n===e||n.startsWith(`${e}-`)),r=relativeTimeFormat(n,{style:o?"short":"narrow",numeric:"auto"});let a=(e.getTime()-Date.now())/1e3;if(a>-relativeUnits.seconds&&a<relativeUnits.seconds)return r.format(0,"seconds");for(const[e,t]of Object.entries(relativeUnits)){if(Math.abs(a)<t)return r.format(Math.round(a),e);a/=t}return capitalize$1(r.format(Math.round(a),"years"))}function formatDynamicDate(e,t){return e.getTime()>Date.now()-DYNAMIC_DATE_THRESHOLD?formatRelativeDate(e,t):formatShortDate(e,t)}const Timestamp=React.forwardRef(({date:e,locale:t,children:n=formatDynamicDate,title:o=formatVerboseDate,dateTime:r,interval:a=RENDER_INTERVAL,asChild:i,...s},l)=>{const c=i?Slot$2:"time",[d,u]=useRerender(),f=React.useMemo(()=>new Date(e),[e]),p=React.useMemo(()=>f.toISOString(),[f]),_=React.useMemo(()=>"function"==typeof o?o(f,t):o,[o,f,u]),m=React.useMemo(()=>"function"==typeof n?n(f,t):n,[n,f,u]);return useInterval(d,a),jsxRuntime.exports.jsx(c,{...s,ref:l,dateTime:r??p,title:_,children:m})});function useCurrentUserId(){return useSignal(useClient()[kInternal].currentUserId)??null}function download(e,t){const n=document.createElement("a");n.href=e,n.download=t,n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)}let intersectionObserver;const intersectionCallbacks=new WeakMap;function observe(e,t){intersectionObserver||(intersectionObserver=new IntersectionObserver(e=>{for(const t of e){const e=intersectionCallbacks.get(t.target);e?.(t)}})),intersectionCallbacks.set(e,t),intersectionObserver.observe(e)}function unobserve(e){intersectionCallbacks.delete(e),intersectionObserver?.unobserve(e)}function useVisibleCallback(e,t,n){const o=n?.enabled??!0,r=useLatest(t);React.useEffect(()=>{const t=e.current;if(t)return o?observe(t,e=>{e.isIntersecting&&r.current()}):unobserve(t),()=>{unobserve(t)}},[o])}function subscribe(e){return window.addEventListener("blur",e),window.addEventListener("focus",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("focus",e)}}function getSnapshot(){return document.hasFocus()}function getServerSnapshot(){return!0}function useWindowFocus(){return React.useSyncExternalStore(subscribe,getSnapshot,getServerSnapshot)}function AttachmentIcon(e){return jsxRuntime.exports.jsx(Icon,{...e,children:jsxRuntime.exports.jsx("path",{d:"m14.077 11.737-3.723 3.62c-1.55 1.507-4.128 1.507-5.678 0-1.543-1.5-1.543-4.02 0-5.52l5.731-5.573c1.034-1.006 2.754-1.007 3.789-.003 1.03 1 1.032 2.682.003 3.684l-5.744 5.572a1.377 1.377 0 0 1-1.893 0 1.283 1.283 0 0 1-.392-.92c0-.345.14-.676.392-.92L10.348 8"})})}function BoldIcon(e){return jsxRuntime.exports.jsx(Icon,{...e,children:jsxRuntime.exports.jsx("path",{d:"M5.5 10h6.63m0 5.75H5.5V4.25h5.63M11.125 10a2.875 2.875 0 0 0 0-5.75m1 11.5a2.875 2.875 0 0 0 0-5.75"})})}function CodeIcon(e){return jsxRuntime.exports.jsx(Icon,{...e,children:jsxRuntime.exports.jsx("path",{d:"m7.5 6-4 4 4 4m5-8 4 4-4 4"})})}function EmojiIcon(e){return jsxRuntime.exports.jsxs(Icon,{...e,children:[jsxRuntime.exports.jsx("path",{d:"M10 17a7 7 0 1 0 0-14 7 7 0 0 0 0 14Z"}),jsxRuntime.exports.jsx("path",{d:"M7.5 11.5S8.25 13 10 13s2.5-1.5 2.5-1.5M8 8h.007"}),jsxRuntime.exports.jsx("path",{d:"M12 8h.007"}),jsxRuntime.exports.jsx("circle",{cx:8,cy:8,r:.25}),jsxRuntime.exports.jsx("circle",{cx:12,cy:8,r:.25})]})}function ItalicIcon(e){return jsxRuntime.exports.jsx(Icon,{...e,children:jsxRuntime.exports.jsx("path",{d:"M15 4.25H8m4 11.5H5m6.75-11.5-3.5 11.5"})})}function MentionIcon(e){return jsxRuntime.exports.jsxs(Icon,{...e,children:[jsxRuntime.exports.jsx("path",{d:"M10 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"}),jsxRuntime.exports.jsx("path",{d:"M13 7v3.7c0 1.105.855 2.1 1.9 2.1a2.12 2.12 0 0 0 2.1-2.1V10a7 7 0 1 0-2.8 5.6"})]})}function SendIcon(e){return jsxRuntime.exports.jsx(Icon,{...e,children:jsxRuntime.exports.jsx("path",{d:"m5 16 12-6L5 4l2 6-2 6ZM7 10h10"})})}function StrikethroughIcon(e){return jsxRuntime.exports.jsx(Icon,{...e,children:jsxRuntime.exports.jsx("path",{d:"M15.5 10h-11m4.669 0C7.599 9.44 6.5 8.484 6.5 7.125 6.5 5.537 7.79 4.25 10 4.25c1.654 0 2.793.721 3.261 1.75M6.74 14c.468 1.029 1.607 1.75 3.261 1.75 2 0 3.5-1 3.5-2.5 0-.085-.004-.169-.013-.25"})})}function useControllableState(e,t,n){const[o,r]=React.useState(n),a=void 0!==e,i=React.useRef(a);React.useEffect(()=>{i.current=a},[a]);return[a?e:o,React.useCallback(e=>(a||r(e),t?.(e)),[a,t])]}function SpinnerIcon(e){return jsxRuntime.exports.jsx(Icon,{...e,children:jsxRuntime.exports.jsx("path",{d:"M3 10a7 7 0 0 1 7-7",className:"lb-icon-spinner"})})}function WarningIcon(e){return jsxRuntime.exports.jsxs(Icon,{...e,children:[jsxRuntime.exports.jsx("path",{d:"m3.794 13.526 5.326-9.89a1 1 0 0 1 1.76 0l5.326 9.89a1 1 0 0 1-.88 1.474H4.674a1 1 0 0 1-.88-1.474ZM10 7.5v2m0 2.5h.007"}),jsxRuntime.exports.jsx("circle",{cx:10,cy:12,r:.25})]})}const we=0,zt=1,qt=2,kn=4;function un(e){return()=>e}function fo(e){e()}function ne(e,t){return n=>e(t(n))}function an(e,t){return()=>e(t)}function mo(e,t){return n=>e(t,n)}function We(e){return void 0!==e}function po(...e){return()=>{e.map(fo)}}function Yt(){}function ve(e,t){return t(e),e}function ho(e,t){return t(e)}function X(...e){return e}function K(e,t){return e(zt,t)}function G(e,t){e(we,t)}function Ge(e){e(qt)}function ot(e){return e(kn)}function O(e,t){return K(e,mo(t,we))}function Tt(e,t){const n=e(zt,e=>{n(),t(e)});return n}function dn(e){let t,n;return o=>r=>{t=r,n&&clearTimeout(n),n=setTimeout(()=>{o(t)},e)}}function Fn(e,t){return e===t}function Z(e=Fn){let t;return n=>o=>{e(t,o)||(t=o,n(o))}}function A(e){return t=>n=>{e(n)&&t(n)}}function E(e){return t=>ne(t,e)}function Rt(e){return t=>()=>{t(e)}}function x(e,...t){const n=go(...t);return(t,o)=>{switch(t){case qt:return void Ge(e);case zt:return K(e,n(o))}}}function bt(e,t){return n=>o=>{n(t=e(t,o))}}function Dt(e){return t=>n=>{e>0?e--:t(n)}}function kt(e){let t,n=null;return o=>r=>{n=r,!t&&(t=setTimeout(()=>{t=void 0,o(n)},e))}}function N(...e){const t=new Array(e.length);let n=0,o=null;const r=Math.pow(2,e.length)-1;return e.forEach((e,a)=>{const i=Math.pow(2,a);K(e,e=>{const s=n;n|=i,t[a]=e,s!==r&&n===r&&o&&(o(),o=null)})}),e=>a=>{const i=()=>{e([a].concat(t))};n===r?i():o=i}}function go(...e){return t=>e.reduceRight(ho,t)}function Io(e){let t,n;const o=()=>null==t?void 0:t();return function(r,a){switch(r){case zt:return a?n===a?void 0:(o(),n=a,t=K(e,a),t):(o(),Yt);case qt:return o(),void(n=null)}}}function C(e){let t=e;const n=$();return(e,o)=>{switch(e){case we:t=o;break;case zt:o(t);break;case kn:return t}return n(e,o)}}function ct(e,t){return ve(C(t),t=>O(e,t))}function $(){const e=[];return(t,n)=>{switch(t){case we:return void e.slice().forEach(e=>{e(n)});case qt:return void e.splice(0,e.length);case zt:return e.push(n),()=>{const t=e.indexOf(n);t>-1&&e.splice(t,1)}}}}function ht(e){return ve($(),t=>O(e,t))}function U(e,t=[],{singleton:n}={singleton:!0}){return{constructor:e,dependencies:t,id:So(),singleton:n}}const So=()=>Symbol();function xo(e){const t=new Map,n=({constructor:e,dependencies:o,id:r,singleton:a})=>{if(a&&t.has(r))return t.get(r);const i=e(o.map(e=>n(e)));return a&&t.set(r,i),i};return n(e)}function rt(...e){const t=$(),n=new Array(e.length);let o=0;const r=Math.pow(2,e.length)-1;return e.forEach((e,a)=>{const i=Math.pow(2,a);K(e,e=>{n[a]=e,o|=i,o===r&&G(t,n)})}),function(e,a){switch(e){case qt:return void Ge(t);case zt:return o===r&&a(n),K(t,a)}}}function V(e,t=Fn){return x(e,Z(t))}function Le(...e){return function(t,n){switch(t){case qt:return;case zt:return po(...e.map(e=>K(e,n)))}}}var mt=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(mt||{});const To={0:"debug",3:"error",1:"log",2:"warn"},Co=()=>typeof globalThis>"u"?window:globalThis,Vt=U(()=>{const e=C(3);return{log:C((t,n,o=1)=>{var r;o>=(null!=(r=Co().VIRTUOSO_LOG_LEVEL)?r:ot(e))&&console[To[o]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)}),logLevel:e}},[],{singleton:!0});function Ht(e,t,n){return _e(e,t,n).callbackRef}function _e(e,t,n){const o=React__default.default.useRef(null);let r=e=>{};const a=React__default.default.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(t=>{const o=()=>{const n=t[0].target;null!==n.offsetParent&&e(n)};n?o():requestAnimationFrame(o)}):null,[e,n]);return r=e=>{e&&t?(null==a||a.observe(e),o.current=e):(o.current&&(null==a||a.unobserve(o.current)),o.current=null)},{callbackRef:r,ref:o}}function On(e,t,n,o,r,a,i,s,l){const c=React__default.default.useCallback(n=>{const l=wo(n.children,t,s?"offsetWidth":"offsetHeight",r);let c=n.parentElement;for(;!c.dataset.virtuosoScroller;)c=c.parentElement;const d="window"===c.lastElementChild.dataset.viewportType;let u;d&&(u=c.ownerDocument.defaultView);const f=i?s?i.scrollLeft:i.scrollTop:d?s?u.scrollX||u.document.documentElement.scrollLeft:u.scrollY||u.document.documentElement.scrollTop:s?c.scrollLeft:c.scrollTop,p=i?s?i.scrollWidth:i.scrollHeight:d?s?u.document.documentElement.scrollWidth:u.document.documentElement.scrollHeight:s?c.scrollWidth:c.scrollHeight,_=i?s?i.offsetWidth:i.offsetHeight:d?s?u.innerWidth:u.innerHeight:s?c.offsetWidth:c.offsetHeight;o({scrollHeight:p,scrollTop:Math.max(f,0),viewportHeight:_}),null==a||a(s?fn("column-gap",getComputedStyle(n).columnGap,r):fn("row-gap",getComputedStyle(n).rowGap,r)),null!==l&&e(l)},[e,t,r,a,i,o,s]);return _e(c,n,l)}function wo(e,t,n,o){const r=e.length;if(0===r)return null;const a=[];for(let i=0;i<r;i++){const r=e.item(i);if(void 0===r.dataset.index)continue;const s=parseInt(r.dataset.index),l=parseFloat(r.dataset.knownSize),c=t(r,n);if(0===c&&o("Zero-sized element, this should not happen",{child:r},mt.ERROR),c===l)continue;const d=a[a.length-1];0===a.length||d.size!==c||d.endIndex!==s-1?a.push({endIndex:s,size:c,startIndex:s}):a[a.length-1].endIndex++}return a}function fn(e,t,n){return"normal"!==t&&!(null!=t&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,mt.WARN),"normal"===t?0:parseInt(null!=t?t:"0",10)}function Ne(e,t,n){const o=React__default.default.useRef(null),r=React__default.default.useCallback(n=>{if(null==n||!n.offsetParent)return;const r=n.getBoundingClientRect(),a=r.width;let s,l;if(t){const e=t.getBoundingClientRect(),n=r.top-e.top;l=e.height-Math.max(0,n),s=n+t.scrollTop}else{const e=i.current.ownerDocument.defaultView;l=e.innerHeight-Math.max(0,r.top),s=r.top+e.scrollY}o.current={offsetTop:s,visibleHeight:l,visibleWidth:a},e(o.current)},[e,t]),{callbackRef:a,ref:i}=_e(r,!0,n),s=React__default.default.useCallback(()=>{r(i.current)},[r,i]);return React__default.default.useEffect(()=>{var e;if(t){t.addEventListener("scroll",s);const e=new ResizeObserver(()=>{requestAnimationFrame(s)});return e.observe(t),()=>{t.removeEventListener("scroll",s),e.unobserve(t)}}{const t=null==(e=i.current)?void 0:e.ownerDocument.defaultView;return null==t||t.addEventListener("scroll",s),null==t||t.addEventListener("resize",s),()=>{null==t||t.removeEventListener("scroll",s),null==t||t.removeEventListener("resize",s)}}},[s,t,i]),a}const at=U(()=>{const e=$(),t=$(),n=C(0),o=$(),r=C(0),a=$(),i=$(),s=C(0),l=C(0),c=C(0),d=C(0),u=$(),f=$(),p=C(!1),_=C(!1),m=C(!1);return O(x(e,E(({scrollTop:e})=>e)),t),O(x(e,E(({scrollHeight:e})=>e)),i),O(t,r),{deviation:n,fixedFooterHeight:c,fixedHeaderHeight:l,footerHeight:d,headerHeight:s,horizontalDirection:_,scrollBy:f,scrollContainerState:e,scrollHeight:i,scrollingInProgress:p,scrollTo:u,scrollTop:t,skipAnimationFrameInResizeObserver:m,smoothScrollTargetReached:o,statefulScrollTop:r,viewportHeight:a}},[],{singleton:!0}),oe={lvl:0};function Ln(e,t){const n=e.length;if(0===n)return[];let{index:o,value:r}=t(e[0]);const a=[];for(let i=1;i<n;i++){const{index:n,value:s}=t(e[i]);a.push({end:n-1,start:o,value:r}),o=n,r=s}return a.push({end:1/0,start:o,value:r}),a}function j(e){return e===oe}function re(e,t){if(!j(e))return t===e.k?e.v:t<e.k?re(e.l,t):re(e.r,t)}function wt(e,t,n="k"){if(j(e))return[-1/0,void 0];if(Number(e[n])===t)return[e.k,e.v];if(Number(e[n])<t){const o=wt(e.r,t,n);return o[0]===-1/0?[e.k,e.v]:o}return wt(e.l,t,n)}function pt(e,t,n){return j(e)?Pn(t,n,1):t===e.k?st(e,{k:t,v:n}):t<e.k?mn(st(e,{l:pt(e.l,t,n)})):mn(st(e,{r:pt(e.r,t,n)}))}function jt(){return oe}function ye(e,t,n){if(j(e))return[];return vo(Ve(e,wt(e,t)[0],n))}function ze(e,t){if(j(e))return oe;const{k:n,l:o,r:r}=e;if(t===n){if(j(o))return r;if(j(r))return o;{const[t,n]=Vn(o);return ge(st(e,{k:t,l:zn(o),v:n}))}}return ge(st(e,t<n?{l:ze(o,t)}:{r:ze(r,t)}))}function Gt(e){return j(e)?[]:[...Gt(e.l),{k:e.k,v:e.v},...Gt(e.r)]}function Ve(e,t,n){if(j(e))return[];const{k:o,l:r,r:a,v:i}=e;let s=[];return o>t&&(s=s.concat(Ve(r,t,n))),o>=t&&o<=n&&s.push({k:o,v:i}),o<=n&&(s=s.concat(Ve(a,t,n))),s}function ge(e){const{l:t,lvl:n,r:o}=e;if(o.lvl>=n-1&&t.lvl>=n-1)return e;if(n>o.lvl+1){if(Ee(t))return An(st(e,{lvl:n-1}));if(!j(t)&&!j(t.r))return st(t.r,{l:st(t,{r:t.r.l}),lvl:n,r:st(e,{l:t.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}if(Ee(e))return Pe(st(e,{lvl:n-1}));if(j(o)||j(o.l))throw new Error("Unexpected empty nodes");{const t=o.l,r=Ee(t)?o.lvl-1:o.lvl;return st(t,{l:st(e,{lvl:n-1,r:t.l}),lvl:t.lvl+1,r:Pe(st(o,{l:t.r,lvl:r}))})}}function st(e,t){return Pn(void 0!==t.k?t.k:e.k,void 0!==t.v?t.v:e.v,void 0!==t.lvl?t.lvl:e.lvl,void 0!==t.l?t.l:e.l,void 0!==t.r?t.r:e.r)}function zn(e){return j(e.r)?e.l:ge(st(e,{r:zn(e.r)}))}function Ee(e){return j(e)||e.lvl>e.r.lvl}function Vn(e){return j(e.r)?[e.k,e.v]:Vn(e.r)}function Pn(e,t,n,o=oe,r=oe){return{k:e,l:o,lvl:n,r:r,v:t}}function mn(e){return Pe(An(e))}function An(e){const{l:t}=e;return j(t)||t.lvl!==e.lvl?e:st(t,{r:st(e,{l:t.r})})}function Pe(e){const{lvl:t,r:n}=e;return j(n)||j(n.r)||n.lvl!==t||n.r.lvl!==t?e:st(n,{l:st(e,{r:n.l}),lvl:t+1})}function vo(e){return Ln(e,({k:e,v:t})=>({index:e,value:t}))}function Mn(e,t){return!(!e||e.startIndex!==t.startIndex||e.endIndex!==t.endIndex)}function se(e,t){return!(!e||e[0]!==t[0]||e[1]!==t[1])}const De=U(()=>({recalcInProgress:C(!1)}),[],{singleton:!0});function Wn(e,t,n){return e[Se(e,t,n)]}function Se(e,t,n,o=0){let r=e.length-1;for(;o<=r;){const a=Math.floor((o+r)/2),i=n(e[a],t);if(0===i)return a;if(-1===i){if(r-o<2)return a-1;r=a-1}else{if(r===o)return a;o=a+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function yo(e,t,n,o){const r=Se(e,t,o),a=Se(e,n,o,r);return e.slice(r,a+1)}function vt(e,t){return Math.round(e.getBoundingClientRect()[t])}function Re(e){return!j(e.groupOffsetTree)}function $e({index:e},t){return t===e?0:t<e?-1:1}function Ro(){return{groupIndices:[],groupOffsetTree:jt(),lastIndex:0,lastOffset:0,lastSize:0,offsetTree:[],sizeTree:jt()}}function bo(e,t){let n=j(e)?0:1/0;for(const o of t){const{endIndex:t,size:r,startIndex:a}=o;if(n=Math.min(n,a),j(e)){e=pt(e,0,r);continue}const i=ye(e,a-1,t+1);if(i.some(Lo(o)))continue;let s=!1,l=!1;for(const{end:n,start:o,value:a}of i)s?(t>=o||r===a)&&(e=ze(e,o)):(l=a!==r,s=!0),n>t&&t>=o&&a!==r&&(e=pt(e,t+1,a));l&&(e=pt(e,a,r))}return[e,n]}function Ho(e){return typeof e.groupIndex<"u"}function Eo({offset:e},t){return t===e?0:t<e?-1:1}function ie(e,t,n){if(0===t.length)return 0;const{index:o,offset:r,size:a}=Wn(t,e,$e),i=e-o,s=a*i+(i-1)*n+r;return s>0?s+n:s}function Gn(e,t){if(!Re(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function _n(e,t,n){if(Ho(e))return t.groupIndices[e.groupIndex]+1;{let o=Gn("LAST"===e.index?n:e.index,t);return o=Math.max(0,o,Math.min(n,o)),o}}function Bo(e,t,n,o=0){return o>0&&(t=Math.max(t,Wn(e,o,$e).offset)),Ln(yo(e,t,n,Eo),Oo)}function ko(e,[t,n,o,r]){t.length>0&&o("received item sizes",t,mt.DEBUG);const a=e.sizeTree;let i=a,s=0;if(n.length>0&&j(a)&&2===t.length){const e=t[0].size,o=t[1].size;i=n.reduce((t,n)=>pt(pt(t,n,e),n+1,o),i)}else[i,s]=bo(i,t);if(i===a)return e;const{lastIndex:l,lastOffset:c,lastSize:d,offsetTree:u}=Ae(e.offsetTree,s,i,r);return{groupIndices:n,groupOffsetTree:n.reduce((e,t)=>pt(e,t,ie(t,u,r)),jt()),lastIndex:l,lastOffset:c,lastSize:d,offsetTree:u,sizeTree:i}}function Fo(e){return Gt(e).map(({k:e,v:t},n,o)=>{const r=o[n+1];return{endIndex:r?r.k-1:1/0,size:t,startIndex:e}})}function pn(e,t){let n=0,o=0;for(;n<e;)n+=t[o+1]-t[o]-1,o++;return o-(n===e?0:1)}function Ae(e,t,n,o){let r=e,a=0,i=0,s=0,l=0;if(0!==t){l=Se(r,t-1,$e),s=r[l].offset;const e=wt(n,t-1);a=e[0],i=e[1],r.length&&r[l].size===wt(n,t)[1]&&(l-=1),r=r.slice(0,l+1)}else r=[];for(const{start:e,value:l}of ye(n,t,1/0)){const t=e-a,n=t*i+s+t*o;r.push({index:e,offset:n,size:l}),a=e,s=n,i=l}return{lastIndex:a,lastOffset:s,lastSize:i,offsetTree:r}}function Oo(e){return{index:e.index,value:e}}function Lo(e){const{endIndex:t,size:n,startIndex:o}=e;return e=>e.start===o&&(e.end===t||e.end===1/0)&&e.value===n}const zo={offsetHeight:"height",offsetWidth:"width"},Et=U(([{log:e},{recalcInProgress:t}])=>{const n=$(),o=$(),r=ct(o,0),a=$(),i=$(),s=C(0),l=C([]),c=C(void 0),d=C(void 0),u=C((e,t)=>vt(e,zo[t])),f=C(void 0),p=C(0),_=Ro(),m=ct(x(n,N(l,e,p),bt(ko,_),Z()),_),h=ct(x(l,Z(),bt((e,t)=>({current:t,prev:e.current}),{current:[],prev:[]}),E(({prev:e})=>e)),[]);O(x(l,A(e=>e.length>0),N(m,p),E(([e,t,n])=>{const o=e.reduce((e,o,r)=>pt(e,o,ie(o,t.offsetTree,n)||r),jt());return{...t,groupIndices:e,groupOffsetTree:o}})),m),O(x(o,N(m),A(([e,{lastIndex:t}])=>e<t),E(([e,{lastIndex:t,lastSize:n}])=>[{endIndex:t,size:n,startIndex:e}])),n),O(c,d);const g=ct(x(c,E(e=>void 0===e)),!0);O(x(d,A(e=>void 0!==e&&j(ot(m).sizeTree)),E(e=>[{endIndex:0,size:e,startIndex:0}])),n);const b=ht(x(n,N(m),bt(({sizes:e},[t,n])=>({changed:n!==e,sizes:n}),{changed:!1,sizes:_}),E(e=>e.changed)));K(x(s,bt((e,t)=>({diff:e.prev-t,prev:t}),{diff:0,prev:0}),E(e=>e.diff)),e=>{const{groupIndices:n}=ot(m);if(e>0)G(t,!0),G(a,e+pn(e,n));else if(e<0){const t=ot(h);t.length>0&&(e-=pn(-e,t)),G(i,e)}}),K(x(s,N(e)),([e,t])=>{e<0&&t("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},mt.ERROR)});const v=ht(a);O(x(a,N(m),E(([e,t])=>{const n=t.groupIndices.length>0,o=[],r=t.lastSize;if(n){const n=re(t.sizeTree,0);let a=0,i=0;for(;a<e;){const e=t.groupIndices[i],s=t.groupIndices.length===i+1?1/0:t.groupIndices[i+1]-e-1;o.push({endIndex:e,size:n,startIndex:e}),o.push({endIndex:e+1+s-1,size:r,startIndex:e+1}),i++,a+=s+1}const s=Gt(t.sizeTree);return a!==e&&s.shift(),s.reduce((t,{k:n,v:o})=>{let r=t.ranges;return 0!==t.prevSize&&(r=[...t.ranges,{endIndex:n+e-1,size:t.prevSize,startIndex:t.prevIndex}]),{prevIndex:n+e,prevSize:o,ranges:r}},{prevIndex:e,prevSize:0,ranges:o}).ranges}return Gt(t.sizeTree).reduce((t,{k:n,v:o})=>({prevIndex:n+e,prevSize:o,ranges:[...t.ranges,{endIndex:n+e-1,size:t.prevSize,startIndex:t.prevIndex}]}),{prevIndex:0,prevSize:r,ranges:[]}).ranges})),n);const y=ht(x(i,N(m,p),E(([e,{offsetTree:t},n])=>ie(-e,t,n))));return O(x(i,N(m,p),E(([e,t,n])=>{if(t.groupIndices.length>0){if(j(t.sizeTree))return t;let o=jt();const r=ot(h);let a=0,i=0,s=0;for(;a<-e;){s=r[i];const e=r[i+1]-s-1;i++,a+=e+1}if(o=Gt(t.sizeTree).reduce((t,{k:n,v:o})=>pt(t,Math.max(0,n+e),o),o),a!==-e){o=pt(o,0,re(t.sizeTree,s));o=pt(o,1,wt(t.sizeTree,1-e)[1])}return{...t,sizeTree:o,...Ae(t.offsetTree,0,o,n)}}{const o=Gt(t.sizeTree).reduce((t,{k:n,v:o})=>pt(t,Math.max(0,n+e),o),jt());return{...t,sizeTree:o,...Ae(t.offsetTree,0,o,n)}}})),m),{beforeUnshiftWith:v,data:f,defaultItemSize:d,firstItemIndex:s,fixedItemSize:c,gap:p,groupIndices:l,itemSize:u,listRefresh:b,shiftWith:i,shiftWithOffset:y,sizeRanges:n,sizes:m,statefulTotalCount:r,totalCount:o,trackItemSizes:g,unshiftWith:a}},X(Vt,De),{singleton:!0});function Vo(e){return e.reduce((e,t)=>(e.groupIndices.push(e.totalCount),e.totalCount+=t+1,e),{groupIndices:[],totalCount:0})}const Nn=U(([{groupIndices:e,sizes:t,totalCount:n},{headerHeight:o,scrollTop:r}])=>{const a=$(),i=$(),s=ht(x(a,E(Vo)));return O(x(s,E(e=>e.totalCount)),n),O(x(s,E(e=>e.groupIndices)),e),O(x(rt(r,t,o),A(([e,t])=>Re(t)),E(([e,t,n])=>wt(t.groupOffsetTree,Math.max(e-n,0),"v")[0]),Z(),E(e=>[e])),i),{groupCounts:a,topItemsIndexes:i}},X(Et,at)),Pt=U(([{log:e}])=>{const t=C(!1),n=ht(x(t,A(e=>e),Z()));return K(t,t=>{t&&ot(e)("props updated",{},mt.DEBUG)}),{didMount:n,propsReady:t}},X(Vt),{singleton:!0}),Po=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function Dn(e){const t="number"==typeof e?{index:e}:e;return t.align||(t.align="start"),(!t.behavior||!Po)&&(t.behavior="auto"),t.offset||(t.offset=0),t}const ce=U(([{gap:e,listRefresh:t,sizes:n,totalCount:o},{fixedFooterHeight:r,fixedHeaderHeight:a,footerHeight:i,headerHeight:s,scrollingInProgress:l,scrollTo:c,smoothScrollTargetReached:d,viewportHeight:u},{log:f}])=>{const p=$(),_=$(),m=C(0);let h=null,g=null,b=null;function v(){h&&(h(),h=null),b&&(b(),b=null),g&&(clearTimeout(g),g=null),G(l,!1)}return O(x(p,N(n,u,o,m,s,i,f),N(e,a,r),E(([[e,n,o,r,a,i,s,c],u,f,m])=>{const y=Dn(e),{align:E,behavior:w,offset:C}=y,R=r-1,S=_n(y,n,R);let D=ie(S,n.offsetTree,u)+i;"end"===E?(D+=f+wt(n.sizeTree,S)[1]-o+m,S===R&&(D+=s)):"center"===E?D+=(f+wt(n.sizeTree,S)[1]-o+m)/2:D-=a,C&&(D+=C);const T=t=>{v(),t?(c("retrying to scroll to",{location:e},mt.DEBUG),G(p,e)):(G(_,!0),c("list did not change, scroll successful",{},mt.DEBUG))};if(v(),"smooth"===w){let e=!1;b=K(t,t=>{e=e||t}),h=Tt(d,()=>{T(e)})}else h=Tt(x(t,Ao(150)),T);return g=setTimeout(()=>{v()},1200),G(l,!0),c("scrolling from index to",{behavior:w,index:S,top:D},mt.DEBUG),{behavior:w,top:D}})),c),{scrollTargetReached:_,scrollToIndex:p,topListHeight:m}},X(Et,at,Vt),{singleton:!0});function Ao(e){return t=>{const n=setTimeout(()=>{t(!1)},e);return e=>{e&&(t(!0),clearTimeout(n))}}}function Ue(e,t){0==e?t():requestAnimationFrame(()=>{Ue(e-1,t)})}function Ke(e,t){const n=t-1;return"number"==typeof e?e:"LAST"===e.index?n:e.index}const ue=U(([{defaultItemSize:e,listRefresh:t,sizes:n},{scrollTop:o},{scrollTargetReached:r,scrollToIndex:a},{didMount:i}])=>{const s=C(!0),l=C(0),c=C(!0);return O(x(i,N(l),A(([e,t])=>!!t),Rt(!1)),s),O(x(i,N(l),A(([e,t])=>!!t),Rt(!1)),c),K(x(rt(t,i),N(s,n,e,c),A(([[,e],t,{sizeTree:n},o,r])=>e&&(!j(n)||We(o))&&!t&&!r),N(l)),([,e])=>{Tt(r,()=>{G(c,!0)}),Ue(4,()=>{Tt(o,()=>{G(s,!0)}),G(a,e)})}),{initialItemFinalLocationReached:c,initialTopMostItemIndex:l,scrolledToInitialItem:s}},X(Et,at,ce,Pt),{singleton:!0});function $n(e,t){return Math.abs(e-t)<1.01}const le="up",te="down",Mo="none",Wo={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},Go=0,ae=U(([{footerHeight:e,headerHeight:t,scrollBy:n,scrollContainerState:o,scrollTop:r,viewportHeight:a}])=>{const i=C(!1),s=C(!0),l=$(),c=$(),d=C(4),u=C(Go),f=ct(x(Le(x(V(r),Dt(1),Rt(!0)),x(V(r),Dt(1),Rt(!1),dn(100))),Z()),!1),p=ct(x(Le(x(n,Rt(!0)),x(n,Rt(!1),dn(200))),Z()),!1);O(x(rt(V(r),V(u)),E(([e,t])=>e<=t),Z()),s),O(x(s,kt(50)),c);const _=ht(x(rt(o,V(a),V(t),V(e),V(d)),bt((e,[{scrollHeight:t,scrollTop:n},o,r,a,i])=>{const s={scrollHeight:t,scrollTop:n,viewportHeight:o};if(n+o-t>-i){let t,o;return n>e.state.scrollTop?(t="SCROLLED_DOWN",o=e.state.scrollTop-n):(t="SIZE_DECREASED",o=e.state.scrollTop-n||e.scrollTopDelta),{atBottom:!0,atBottomBecause:t,scrollTopDelta:o,state:s}}let l;return l=s.scrollHeight>e.state.scrollHeight?"SIZE_INCREASED":o<e.state.viewportHeight?"VIEWPORT_HEIGHT_DECREASING":n<e.state.scrollTop?"SCROLLING_UPWARDS":"NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:l,state:s}},Wo),Z((e,t)=>e&&e.atBottom===t.atBottom))),m=ct(x(o,bt((e,{scrollHeight:t,scrollTop:n,viewportHeight:o})=>{if($n(e.scrollHeight,t))return{changed:!1,jump:0,scrollHeight:t,scrollTop:n};{const r=t-(n+o)<1;return e.scrollTop!==n&&r?{changed:!0,jump:e.scrollTop-n,scrollHeight:t,scrollTop:n}:{changed:!0,jump:0,scrollHeight:t,scrollTop:n}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),A(e=>e.changed),E(e=>e.jump)),0);O(x(_,E(e=>e.atBottom)),i),O(x(i,kt(50)),l);const h=C(te);O(x(o,E(({scrollTop:e})=>e),Z(),bt((e,t)=>ot(p)?{direction:e.direction,prevScrollTop:t}:{direction:t<e.prevScrollTop?le:te,prevScrollTop:t},{direction:te,prevScrollTop:0}),E(e=>e.direction)),h),O(x(o,kt(50),Rt(Mo)),h);const g=C(0);return O(x(f,A(e=>!e),Rt(0)),g),O(x(r,kt(100),N(f),A(([e,t])=>!!t),bt(([e,t],[n])=>[t,n],[0,0]),E(([e,t])=>t-e)),g),{atBottomState:_,atBottomStateChange:l,atBottomThreshold:d,atTopStateChange:c,atTopThreshold:u,isAtBottom:i,isAtTop:s,isScrolling:f,lastJumpDueToItemResize:m,scrollDirection:h,scrollVelocity:g}},X(at)),xe="top",Te="bottom",hn="none";function gn(e,t,n){return"number"==typeof e?n===le&&t===xe||n===te&&t===Te?e:0:n===le?t===xe?e.main:e.reverse:t===Te?e.main:e.reverse}function In(e,t){var n;return"number"==typeof e?e:null!=(n=e[t])?n:0}const je=U(([{deviation:e,fixedHeaderHeight:t,headerHeight:n,scrollTop:o,viewportHeight:r}])=>{const a=$(),i=C(0),s=C(0),l=C(0),c=ct(x(rt(V(o),V(r),V(n),V(a,se),V(l),V(i),V(t),V(e),V(s)),E(([e,t,n,[o,r],a,i,s,l,c])=>{const d=e-l,u=i+s,f=Math.max(n-d,0);let p=hn;const _=In(c,xe),m=In(c,Te);return o-=l,r+=n+s,(o+=n+s)>e+u-_&&(p=le),(r-=l)<e-f+t+m&&(p=te),p!==hn?[Math.max(d-n-gn(a,xe,p)-_,0),d-f-s+t+gn(a,Te,p)+m]:null}),A(e=>null!=e),Z(se)),[0,0]);return{increaseViewportBy:s,listBoundary:a,overscan:l,topListHeight:i,visibleRange:c}},X(at),{singleton:!0});function _o(e,t,n){if(Re(t)){const o=Gn(e,t);return[{index:wt(t.groupOffsetTree,o)[0],offset:0,size:0},{data:null==n?void 0:n[0],index:o,offset:0,size:0}]}return[{data:null==n?void 0:n[0],index:e,offset:0,size:0}]}const Be={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function Ie(e,t,n,o,r,a){const{lastIndex:i,lastOffset:s,lastSize:l}=r;let c=0,d=0;if(e.length>0){c=e[0].offset;const t=e[e.length-1];d=t.offset+t.size}const u=n-i,f=c,p=s+u*l+(u-1)*o-d;return{bottom:d,firstItemIndex:a,items:Sn(e,r,a),offsetBottom:p,offsetTop:c,top:f,topItems:Sn(t,r,a),topListHeight:t.reduce((e,t)=>t.size+e,0),totalCount:n}}function Un(e,t,n,o,r,a){let i=0;if(n.groupIndices.length>0)for(const t of n.groupIndices){if(t-i>=e)break;i++}const s=e+i,l=Ke(t,s);return Ie(Array.from({length:s}).map((e,t)=>({data:a[t+l],index:t+l,offset:0,size:0})),[],s,r,n,o)}function Sn(e,t,n){if(0===e.length)return[];if(!Re(t))return e.map(e=>({...e,index:e.index+n,originalIndex:e.index}));const o=e[0].index,r=e[e.length-1].index,a=[],i=ye(t.groupOffsetTree,o,r);let s,l=0;for(const o of e){let e;(!s||s.end<o.index)&&(s=i.shift(),l=t.groupIndices.indexOf(s.start)),e=o.index===s.start?{index:l,type:"group"}:{groupIndex:l,index:o.index-(l+1)+n},a.push({...e,data:o.data,offset:o.offset,originalIndex:o.index,size:o.size})}return a}const $t=U(([{data:e,firstItemIndex:t,gap:n,sizes:o,totalCount:r},a,{listBoundary:i,topListHeight:s,visibleRange:l},{initialTopMostItemIndex:c,scrolledToInitialItem:d},{topListHeight:u},f,{didMount:p},{recalcInProgress:_}])=>{const m=C([]),h=C(0),g=$();O(a.topItemsIndexes,m);const b=ct(x(rt(p,_,V(l,se),V(r),V(o),V(c),d,V(m),V(t),V(n),e),A(([e,t,,n,,,,,,,o])=>{const r=o&&o.length!==n;return e&&!t&&!r}),E(([,,[e,t],n,o,r,a,i,s,l,c])=>{const d=o,{offsetTree:u,sizeTree:f}=d,p=ot(h);if(0===n)return{...Be,totalCount:n};if(0===e&&0===t)return 0===p?{...Be,totalCount:n}:Un(p,r,o,s,l,c||[]);if(j(f))return p>0?null:Ie(_o(Ke(r,n),d,c),[],n,l,d,s);const _=[];if(i.length>0){const e=i[0],t=i[i.length-1];let n=0;for(const o of ye(f,e,t)){const r=o.value,a=Math.max(o.start,e),i=Math.min(o.end,t);for(let e=a;e<=i;e++)_.push({data:null==c?void 0:c[e],index:e,offset:n,size:r}),n+=r}}if(!a)return Ie([],_,n,l,d,s);const m=i.length>0?i[i.length-1]+1:0,g=Bo(u,e,t,m);if(0===g.length)return null;const b=n-1;return Ie(ve([],n=>{for(const o of g){const r=o.value;let a=r.offset,i=o.start;const s=r.size;if(r.offset<e){i+=Math.floor((e-r.offset+l)/(s+l));const t=i-o.start;a+=t*s+t*l}i<m&&(a+=(m-i)*s,i=m);const d=Math.min(o.end,b);for(let e=i;e<=d&&!(a>=t);e++)n.push({data:null==c?void 0:c[e],index:e,offset:a,size:s}),a+=s+l}}),_,n,l,d,s)}),A(e=>null!==e),Z()),Be);O(x(e,A(We),E(e=>null==e?void 0:e.length)),r),O(x(b,E(e=>e.topListHeight)),u),O(u,s),O(x(b,E(e=>[e.top,e.bottom])),i),O(x(b,E(e=>e.items)),g);const v=ht(x(b,A(({items:e})=>e.length>0),N(r,e),A(([{items:e},t])=>e[e.length-1].originalIndex===t-1),E(([,e,t])=>[e-1,t]),Z(se),E(([e])=>e))),y=ht(x(b,kt(200),A(({items:e,topItems:t})=>e.length>0&&e[0].originalIndex===t.length),E(({items:e})=>e[0].index),Z())),w=ht(x(b,A(({items:e})=>e.length>0),E(({items:e})=>{let t=0,n=e.length-1;for(;"group"===e[t].type&&t<n;)t++;for(;"group"===e[n].type&&n>t;)n--;return{endIndex:e[n].index,startIndex:e[t].index}}),Z(Mn)));return{endReached:v,initialItemCount:h,itemsRendered:g,listState:b,rangeChanged:w,startReached:y,topItemsIndexes:m,...f}},X(Et,Nn,je,ue,ce,ae,Pt,De),{singleton:!0}),Kn=U(([{fixedFooterHeight:e,fixedHeaderHeight:t,footerHeight:n,headerHeight:o},{listState:r}])=>{const a=$(),i=ct(x(rt(n,e,o,t,r),E(([e,t,n,o,r])=>e+t+n+o+r.offsetBottom+r.bottom)),0);return O(V(i),a),{totalListHeight:i,totalListHeightChanged:a}},X(at,$t),{singleton:!0}),No=U(([{viewportHeight:e},{totalListHeight:t}])=>{const n=C(!1),o=ct(x(rt(n,e,t),A(([e])=>e),E(([,e,t])=>Math.max(0,e-t)),kt(0),Z()),0);return{alignToBottom:n,paddingTopAddition:o}},X(at,Kn),{singleton:!0}),jn=U(()=>({context:C(null)})),Do=({itemBottom:e,itemTop:t,locationParams:{align:n,behavior:o,...r},viewportBottom:a,viewportTop:i})=>t<i?{...r,align:null!=n?n:"start",behavior:o}:e>a?{...r,align:null!=n?n:"end",behavior:o}:null,qn=U(([{gap:e,sizes:t,totalCount:n},{fixedFooterHeight:o,fixedHeaderHeight:r,headerHeight:a,scrollingInProgress:i,scrollTop:s,viewportHeight:l},{scrollToIndex:c}])=>{const d=$();return O(x(d,N(t,l,n,a,r,o,s),N(e),E(([[e,t,n,o,r,a,s,l],c])=>{const{align:d,behavior:u,calculateViewLocation:f=Do,done:p,..._}=e,m=_n(e,t,o-1),h=ie(m,t.offsetTree,c)+r+a,g=f({itemBottom:h+wt(t.sizeTree,m)[1],itemTop:h,locationParams:{align:d,behavior:u,..._},viewportBottom:l+n-s,viewportTop:l+a});return g?p&&Tt(x(i,A(e=>!e),Dt(ot(i)?1:2)),p):p&&p(),g}),A(e=>null!==e)),c),{scrollIntoView:d}},X(Et,at,ce,$t,Vt),{singleton:!0});function xn(e){return!!e&&("smooth"===e?"smooth":"auto")}const $o=(e,t)=>"function"==typeof e?xn(e(t)):t&&xn(e),Uo=U(([{listRefresh:e,totalCount:t,fixedItemSize:n,data:o},{atBottomState:r,isAtBottom:a},{scrollToIndex:i},{scrolledToInitialItem:s},{didMount:l,propsReady:c},{log:d},{scrollingInProgress:u},{context:f},{scrollIntoView:p}])=>{const _=C(!1),m=$();let h=null;function g(e){G(i,{align:"end",behavior:e,index:"LAST"})}function b(e){const t=Tt(r,t=>{e&&!t.atBottom&&"SIZE_INCREASED"===t.notAtBottomBecause&&!h&&(ot(d)("scrolling to bottom due to increased size",{},mt.DEBUG),g("auto"))});setTimeout(t,100)}K(x(rt(x(V(t),Dt(1)),l),N(V(_),a,s,u),E(([[e,t],n,o,r,a])=>{let i=t&&r,s="auto";return i&&(s=$o(n,o||a),i=i&&!!s),{followOutputBehavior:s,shouldFollow:i,totalCount:e}}),A(({shouldFollow:e})=>e)),({followOutputBehavior:t,totalCount:o})=>{h&&(h(),h=null),ot(n)?requestAnimationFrame(()=>{ot(d)("following output to ",{totalCount:o},mt.DEBUG),g(t)}):h=Tt(e,()=>{ot(d)("following output to ",{totalCount:o},mt.DEBUG),g(t),h=null})}),K(x(rt(V(_),t,c),A(([e,,t])=>e&&t),bt(({value:e},[,t])=>({refreshed:e===t,value:t}),{refreshed:!1,value:0}),A(({refreshed:e})=>e),N(_,t)),([,e])=>{ot(s)&&b(!1!==e)}),K(m,()=>{b(!1!==ot(_))}),K(rt(V(_),r),([e,t])=>{e&&!t.atBottom&&"VIEWPORT_HEIGHT_DECREASING"===t.notAtBottomBecause&&g("auto")});const v=C(null),y=$();return O(Le(x(V(o),E(e=>{var t;return null!=(t=null==e?void 0:e.length)?t:0})),x(V(t))),y),K(x(rt(x(y,Dt(1)),l),N(V(v),s,u,f),E(([[e,t],n,o,r,a])=>t&&o&&(null==n?void 0:n({context:a,totalCount:e,scrollingInProgress:r}))),A(e=>!!e),kt(0)),t=>{h&&(h(),h=null),ot(n)?requestAnimationFrame(()=>{ot(d)("scrolling into view",{}),G(p,t)}):h=Tt(e,()=>{ot(d)("scrolling into view",{}),G(p,t),h=null})}),{autoscrollToBottom:m,followOutput:_,scrollIntoViewOnChange:v}},X(Et,ae,ce,ue,Pt,Vt,at,jn,qn)),Ko=U(([{data:e,firstItemIndex:t,gap:n,sizes:o},{initialTopMostItemIndex:r},{initialItemCount:a,listState:i},{didMount:s}])=>(O(x(s,N(a),A(([,e])=>0!==e),N(r,o,t,n,e),E(([[,e],t,n,o,r,a=[]])=>Un(e,t,n,o,r,a))),i),{}),X(Et,ue,$t,Pt),{singleton:!0}),jo=U(([{didMount:e},{scrollTo:t},{listState:n}])=>{const o=C(0);return K(x(e,N(o),A(([,e])=>0!==e),E(([,e])=>({top:e}))),e=>{Tt(x(n,Dt(1),A(e=>e.items.length>1)),()=>{requestAnimationFrame(()=>{G(t,e)})})}),{initialScrollTop:o}},X(Pt,at,$t),{singleton:!0}),Yn=U(([{scrollVelocity:e}])=>{const t=C(!1),n=$(),o=C(!1);return O(x(e,N(o,t,n),A(([e,t])=>!!t),E(([e,t,n,o])=>{const{enter:r,exit:a}=t;if(n){if(a(e,o))return!1}else if(r(e,o))return!0;return n}),Z()),t),K(x(rt(t,e,n),N(o)),([[e,t,n],o])=>{e&&o&&o.change&&o.change(t,n)}),{isSeeking:t,scrollSeekConfiguration:o,scrollSeekRangeChanged:n,scrollVelocity:e}},X(ae),{singleton:!0}),qe=U(([{scrollContainerState:e,scrollTo:t}])=>{const n=$(),o=$(),r=$(),a=C(!1),i=C(void 0);return O(x(rt(n,o),E(([{scrollHeight:e,scrollTop:t,viewportHeight:n},{offsetTop:o}])=>({scrollHeight:e,scrollTop:Math.max(0,t-o),viewportHeight:n}))),e),O(x(t,N(o),E(([e,{offsetTop:t}])=>({...e,top:e.top+t}))),r),{customScrollParent:i,useWindowScroll:a,windowScrollContainerState:n,windowScrollTo:r,windowViewportRect:o}},X(at)),qo=U(([{sizeRanges:e,sizes:t},{headerHeight:n,scrollTop:o},{initialTopMostItemIndex:r},{didMount:a},{useWindowScroll:i,windowScrollContainerState:s,windowViewportRect:l}])=>{const c=$(),d=C(void 0),u=C(null),f=C(null);return O(s,u),O(l,f),K(x(c,N(t,o,i,u,f,n)),([e,t,n,o,r,a,i])=>{const s=Fo(t.sizeTree);o&&null!==r&&null!==a&&(n=r.scrollTop-a.offsetTop),e({ranges:s,scrollTop:n-=i})}),O(x(d,A(We),E(Yo)),r),O(x(a,N(d),A(([,e])=>void 0!==e),Z(),E(([,e])=>e.ranges)),e),{getState:c,restoreStateFrom:d}},X(Et,at,ue,Pt,qe));function Yo(e){return{align:"start",index:0,offset:e.scrollTop}}const Zo=U(([{topItemsIndexes:e}])=>{const t=C(0);return O(x(t,A(e=>e>=0),E(e=>Array.from({length:e}).map((e,t)=>t))),e),{topItemCount:t}},X($t));function Zn(e){let t,n=!1;return()=>(n||(n=!0,t=e()),t)}const Xo=Zn(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),Jo=U(([{deviation:e,scrollBy:t,scrollingInProgress:n,scrollTop:o},{isAtBottom:r,isScrolling:a,lastJumpDueToItemResize:i,scrollDirection:s},{listState:l},{beforeUnshiftWith:c,gap:d,shiftWithOffset:u,sizes:f},{log:p},{recalcInProgress:_}])=>{const m=ht(x(l,N(i),bt(([,e,t,n],[{bottom:o,items:r,offsetBottom:a,totalCount:i},s])=>{const l=o+a;let c=0;return t===i&&e.length>0&&r.length>0&&(0===r[0].originalIndex&&0===e[0].originalIndex||(c=l-n,0!==c&&(c+=s))),[c,r,i,l]},[0,[],0,0]),A(([e])=>0!==e),N(o,s,n,r,p,_),A(([,e,t,n,,,o])=>!o&&!n&&0!==e&&t===le),E(([[e],,,,,t])=>(t("Upward scrolling compensation",{amount:e},mt.DEBUG),e))));function h(n){n>0?(G(t,{behavior:"auto",top:-n}),G(e,0)):(G(e,0),G(t,{behavior:"auto",top:-n}))}return K(x(m,N(e,a)),([t,n,o])=>{o&&Xo()?G(e,n-t):h(-t)}),K(x(rt(ct(a,!1),e,_),A(([e,t,n])=>!e&&!n&&0!==t),E(([e,t])=>t),kt(1)),h),O(x(u,E(e=>({top:-e}))),t),K(x(c,N(f,d),E(([e,{groupIndices:t,lastSize:n,sizeTree:o},r])=>{function a(e){return e*(n+r)}if(0===t.length)return a(e);{let n=0;const r=re(o,0);let i=0,s=0;for(;i<e;){i++,n+=r;let o=t.length===s+1?1/0:t[s+1]-t[s]-1;i+o>e&&(n-=r,o=e-i+1),i+=o,n+=a(o),s++}return n}})),n=>{G(e,n),requestAnimationFrame(()=>{G(t,{top:n}),requestAnimationFrame(()=>{G(e,0),G(_,!1)})})}),{deviation:e}},X(at,ae,$t,Et,Vt,De)),Qo=U(([e,t,n,o,r,a,i,s,l,c,d])=>({...e,...t,...n,...o,...r,...a,...i,...s,...l,...c,...d}),X(je,Ko,Pt,Yn,Kn,jo,No,qe,qn,Vt,jn)),Xn=U(([{data:e,defaultItemSize:t,firstItemIndex:n,fixedItemSize:o,gap:r,groupIndices:a,itemSize:i,sizeRanges:s,sizes:l,statefulTotalCount:c,totalCount:d,trackItemSizes:u},{initialItemFinalLocationReached:f,initialTopMostItemIndex:p,scrolledToInitialItem:_},m,h,g,{listState:b,topItemsIndexes:v,...y},{scrollToIndex:w},C,{topItemCount:R},{groupCounts:S},D])=>(O(y.rangeChanged,D.scrollSeekRangeChanged),O(x(D.windowViewportRect,E(e=>e.visibleHeight)),m.viewportHeight),{data:e,defaultItemHeight:t,firstItemIndex:n,fixedItemHeight:o,gap:r,groupCounts:S,initialItemFinalLocationReached:f,initialTopMostItemIndex:p,scrolledToInitialItem:_,sizeRanges:s,topItemCount:R,topItemsIndexes:v,totalCount:d,...g,groupIndices:a,itemSize:i,listState:b,scrollToIndex:w,statefulTotalCount:c,trackItemSizes:u,...y,...D,...m,sizes:l,...h}),X(Et,ue,at,qo,Uo,$t,ce,Jo,Zo,Nn,Qo));function tr(e,t){const n={},o={};let r=0;const a=e.length;for(;r<a;)o[e[r]]=1,r+=1;for(const e in t)Object.hasOwn(o,e)||(n[e]=t[e]);return n}const pe=typeof document<"u"?React__default.default.useLayoutEffect:React__default.default.useEffect;function Ye(e,t,n){const o=Object.keys(t.required||{}),r=Object.keys(t.optional||{}),a=Object.keys(t.methods||{}),i=Object.keys(t.events||{}),s=React__default.default.createContext({});function l(e,n){e.propsReady&&G(e.propsReady,!1);for(const r of o){G(e[t.required[r]],n[r])}for(const o of r)if(o in n){G(e[t.optional[o]],n[o])}e.propsReady&&G(e.propsReady,!0)}function c(e){return i.reduce((n,o)=>(n[o]=Io(e[t.events[o]]),n),{})}const d=React__default.default.forwardRef((d,u)=>{const{children:f,...p}=d,[_]=React__default.default.useState(()=>ve(xo(e),e=>{l(e,p)})),[m]=React__default.default.useState(an(c,_));pe(()=>{for(const e of i)e in p&&K(m[e],p[e]);return()=>{Object.values(m).map(Ge)}},[p,m,_]),pe(()=>{l(_,p)}),React__default.default.useImperativeHandle(u,un(function(e){return a.reduce((n,o)=>(n[o]=n=>{G(e[t.methods[o]],n)},n),{})}(_)));const h=n;return jsxRuntime.exports.jsx(s.Provider,{value:_,children:n?jsxRuntime.exports.jsx(h,{...tr([...o,...r,...i],p),children:f}):f})}),u=React__default.default.version.startsWith("18")?e=>{const t=React__default.default.useContext(s)[e],n=React__default.default.useCallback(e=>K(t,e),[t]);return React__default.default.useSyncExternalStore(n,()=>ot(t),()=>ot(t))}:e=>{const t=React__default.default.useContext(s)[e],[n,o]=React__default.default.useState(an(ot,t));return pe(()=>K(t,e=>{e!==n&&o(un(e))}),[t,n]),n};return{Component:d,useEmitter:(e,t)=>{const n=React__default.default.useContext(s)[e];pe(()=>K(n,t),[t,n])},useEmitterValue:u,usePublisher:e=>{const t=React__default.default.useContext(s);return React__default.default.useCallback(n=>{G(t[e],n)},[t,e])}}}const be=React__default.default.createContext(void 0),Jn=React__default.default.createContext(void 0),Qn=typeof document<"u"?React__default.default.useLayoutEffect:React__default.default.useEffect;function ke(e){return"self"in e}function er(e){return"body"in e}function to(e,t,n,o=Yt,r,a){const i=React__default.default.useRef(null),s=React__default.default.useRef(null),l=React__default.default.useRef(null),c=React__default.default.useCallback(n=>{let o,r,i;const c=n.target;if(er(c)||ke(c)){const e=ke(c)?c:c.defaultView;i=a?e.scrollX:e.scrollY,o=a?e.document.documentElement.scrollWidth:e.document.documentElement.scrollHeight,r=a?e.innerWidth:e.innerHeight}else i=a?c.scrollLeft:c.scrollTop,o=a?c.scrollWidth:c.scrollHeight,r=a?c.offsetWidth:c.offsetHeight;const d=()=>{e({scrollHeight:o,scrollTop:Math.max(i,0),viewportHeight:r})};n.suppressFlushSync?d():ReactDOM__default.default.flushSync(d),null!==s.current&&(i===s.current||i<=0||i===o-r)&&(s.current=null,t(!0),l.current&&(clearTimeout(l.current),l.current=null))},[e,t,a]);return React__default.default.useEffect(()=>{const e=r||i.current;return o(r||i.current),c({suppressFlushSync:!0,target:e}),e.addEventListener("scroll",c,{passive:!0}),()=>{o(null),e.removeEventListener("scroll",c)}},[i,c,n,o,r]),{scrollByCallback:function(e){a&&(e={behavior:e.behavior,left:e.top}),i.current.scrollBy(e)},scrollerRef:i,scrollToCallback:function(n){const o=i.current;if(!o||(a?"offsetWidth"in o&&0===o.offsetWidth:"offsetHeight"in o&&0===o.offsetHeight))return;const r="smooth"===n.behavior;let c,d,u;ke(o)?(d=Math.max(vt(o.document.documentElement,a?"width":"height"),a?o.document.documentElement.scrollWidth:o.document.documentElement.scrollHeight),c=a?o.innerWidth:o.innerHeight,u=a?window.scrollX:window.scrollY):(d=o[a?"scrollWidth":"scrollHeight"],c=vt(o,a?"width":"height"),u=o[a?"scrollLeft":"scrollTop"]);const f=d-c;if(n.top=Math.ceil(Math.max(Math.min(f,n.top),0)),$n(c,d)||n.top===u)return e({scrollHeight:d,scrollTop:u,viewportHeight:c}),void(r&&t(!0));r?(s.current=n.top,l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{l.current=null,s.current=null,t(!0)},1e3)):s.current=null,a&&(n={behavior:n.behavior,left:n.top}),o.scrollTo(n)}}}const Fe="-webkit-sticky",Tn="sticky",Ze=Zn(()=>{if(typeof document>"u")return Tn;const e=document.createElement("div");return e.style.position=Fe,e.style.position===Fe?Fe:Tn});function Xe(e){return e}const nr=U(()=>{const e=C(e=>`Item ${e}`),t=C(e=>`Group ${e}`),n=C({}),o=C(Xe),r=C("div"),a=C(Yt),i=(e,t=null)=>ct(x(n,E(t=>t[e]),Z()),t);return{components:n,computeItemKey:o,EmptyPlaceholder:i("EmptyPlaceholder"),FooterComponent:i("Footer"),GroupComponent:i("Group","div"),groupContent:t,HeaderComponent:i("Header"),HeaderFooterTag:r,ItemComponent:i("Item","div"),itemContent:e,ListComponent:i("List","div"),ScrollerComponent:i("Scroller","div"),scrollerRef:a,ScrollSeekPlaceholder:i("ScrollSeekPlaceholder"),TopItemListComponent:i("TopItemList")}}),or=U(([e,t])=>({...e,...t}),X(Xn,nr)),rr=({height:e})=>jsxRuntime.exports.jsx("div",{style:{height:e}}),sr={overflowAnchor:"none",position:Ze(),zIndex:1},eo={overflowAnchor:"none"},ir={...eo,display:"inline-block",height:"100%"},Cn=React__default.default.memo(function({showTopList:e=!1}){const t=M("listState"),n=gt("sizeRanges"),o=M("useWindowScroll"),r=M("customScrollParent"),a=gt("windowScrollContainerState"),i=gt("scrollContainerState"),s=r||o?a:i,l=M("itemContent"),c=M("context"),d=M("groupContent"),u=M("trackItemSizes"),f=M("itemSize"),p=M("log"),_=gt("gap"),m=M("horizontalDirection"),{callbackRef:h}=On(n,f,u,e?Yt:s,p,_,r,m,M("skipAnimationFrameInResizeObserver")),[g,b]=React__default.default.useState(0);tn("deviation",e=>{g!==e&&b(e)});const v=M("EmptyPlaceholder"),y=M("ScrollSeekPlaceholder")||rr,E=M("ListComponent"),w=M("ItemComponent"),C=M("GroupComponent"),x=M("computeItemKey"),R=M("isSeeking"),S=M("groupIndices").length>0,D=M("alignToBottom"),T=M("initialItemFinalLocationReached"),A=e?{}:{boxSizing:"border-box",...m?{display:"inline-block",height:"100%",marginLeft:0!==g?g:D?"auto":0,paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,whiteSpace:"nowrap"}:{marginTop:0!==g?g:D?"auto":0,paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},...T?{}:{visibility:"hidden"}};return!e&&0===t.totalCount&&v?jsxRuntime.exports.jsx(v,{...q(v,c)}):jsxRuntime.exports.jsx(E,{...q(E,c),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:h,style:A,children:(e?t.topItems:t.items).map(e=>{const n=e.originalIndex,o=x(n+t.firstItemIndex,e.data,c);return R?React.createElement(y,{...q(y,c),height:e.size,index:e.index,key:o,type:e.type||"item",..."group"===e.type?{}:{groupIndex:e.groupIndex}}):"group"===e.type?React.createElement(C,{...q(C,c),"data-index":n,"data-item-index":e.index,"data-known-size":e.size,key:o,style:sr},d(e.index,c)):React.createElement(w,{...q(w,c),...no(w,e.data),"data-index":n,"data-item-group-index":e.groupIndex,"data-item-index":e.index,"data-known-size":e.size,key:o,style:m?ir:eo},S?l(e.index,e.groupIndex,e.data,c):l(e.index,e.data,c))})})}),lr={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},cr={outline:"none",overflowX:"auto",position:"relative"},Zt=e=>({height:"100%",position:"absolute",top:0,width:"100%",...e?{display:"flex",flexDirection:"column"}:{}}),ur={position:Ze(),top:0,width:"100%",zIndex:1};function q(e,t){if("string"!=typeof e)return{context:t}}function no(e,t){return{item:"string"==typeof e?void 0:t}}const ar=React__default.default.memo(function(){const e=M("HeaderComponent"),t=gt("headerHeight"),n=M("HeaderFooterTag"),o=Ht(React__default.default.useMemo(()=>e=>{t(vt(e,"height"))},[t]),!0,M("skipAnimationFrameInResizeObserver")),r=M("context");return e?jsxRuntime.exports.jsx(n,{ref:o,children:jsxRuntime.exports.jsx(e,{...q(e,r)})}):null}),dr=React__default.default.memo(function(){const e=M("FooterComponent"),t=gt("footerHeight"),n=M("HeaderFooterTag"),o=Ht(React__default.default.useMemo(()=>e=>{t(vt(e,"height"))},[t]),!0,M("skipAnimationFrameInResizeObserver")),r=M("context");return e?jsxRuntime.exports.jsx(n,{ref:o,children:jsxRuntime.exports.jsx(e,{...q(e,r)})}):null});function Je({useEmitter:e,useEmitterValue:t,usePublisher:n}){return React__default.default.memo(function({children:o,style:r,...a}){const i=n("scrollContainerState"),s=t("ScrollerComponent"),l=n("smoothScrollTargetReached"),c=t("scrollerRef"),d=t("context"),u=t("horizontalDirection")||!1,{scrollByCallback:f,scrollerRef:p,scrollToCallback:_}=to(i,l,s,c,void 0,u);return e("scrollTo",_),e("scrollBy",f),jsxRuntime.exports.jsx(s,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:p,style:{...u?cr:lr,...r},tabIndex:0,...a,...q(s,d),children:o})})}function Qe({useEmitter:e,useEmitterValue:t,usePublisher:n}){return React__default.default.memo(function({children:o,style:r,...a}){const i=n("windowScrollContainerState"),s=t("ScrollerComponent"),l=n("smoothScrollTargetReached"),c=t("totalListHeight"),d=t("deviation"),u=t("customScrollParent"),f=t("context"),p=React__default.default.useRef(null),_=t("scrollerRef"),{scrollByCallback:m,scrollerRef:h,scrollToCallback:g}=to(i,l,s,_,u);return Qn(()=>{var e;return h.current=u||(null==(e=p.current)?void 0:e.ownerDocument.defaultView),()=>{h.current=null}},[h,u]),e("windowScrollTo",g),e("scrollBy",m),jsxRuntime.exports.jsx(s,{ref:p,"data-virtuoso-scroller":!0,style:{position:"relative",...r,...0!==c?{height:c+d}:{}},...a,...q(s,f),children:o})})}const fr=({children:e})=>{const t=React__default.default.useContext(be),n=gt("viewportHeight"),o=gt("fixedItemHeight"),r=M("alignToBottom"),a=M("horizontalDirection"),i=Ht(React__default.default.useMemo(()=>ne(n,e=>vt(e,a?"width":"height")),[n,a]),!0,M("skipAnimationFrameInResizeObserver"));return React__default.default.useEffect(()=>{t&&(n(t.viewportHeight),o(t.itemHeight))},[t,n,o]),jsxRuntime.exports.jsx("div",{"data-viewport-type":"element",ref:i,style:Zt(r),children:e})},mr=({children:e})=>{const t=React__default.default.useContext(be),n=gt("windowViewportRect"),o=gt("fixedItemHeight"),r=M("customScrollParent"),a=Ne(n,r,M("skipAnimationFrameInResizeObserver")),i=M("alignToBottom");return React__default.default.useEffect(()=>{t&&(o(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,o]),jsxRuntime.exports.jsx("div",{"data-viewport-type":"window",ref:a,style:Zt(i),children:e})},pr=({children:e})=>{const t=M("TopItemListComponent")||"div",n=M("headerHeight"),o={...ur,marginTop:`${n}px`},r=M("context");return jsxRuntime.exports.jsx(t,{style:o,...q(t,r),children:e})},hr=React__default.default.memo(function(e){const t=M("useWindowScroll"),n=M("topItemsIndexes").length>0,o=M("customScrollParent"),r=M("context"),a=o||t?Ir:gr,i=o||t?mr:fr;return jsxRuntime.exports.jsxs(a,{...e,...q(a,r),children:[n&&jsxRuntime.exports.jsx(pr,{children:jsxRuntime.exports.jsx(Cn,{showTopList:!0})}),jsxRuntime.exports.jsxs(i,{children:[jsxRuntime.exports.jsx(ar,{}),jsxRuntime.exports.jsx(Cn,{}),jsxRuntime.exports.jsx(dr,{})]})]})}),{Component:oo,useEmitter:tn,useEmitterValue:M,usePublisher:gt}=Ye(or,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},hr),gr=Je({useEmitter:tn,useEmitterValue:M,usePublisher:gt}),Ir=Qe({useEmitter:tn,useEmitterValue:M,usePublisher:gt}),Yr=oo;Ze();const yn={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},Br={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:Rn,floor:Ce,max:ee,min:Oe,round:bn}=Math;function Hn(e,t,n){return Array.from({length:t-e+1}).map((t,o)=>({data:null===n?null:n[o+e],index:o+e}))}function kr(e){return{...Br,items:e}}function he(e,t){return e&&e.width===t.width&&e.height===t.height}function Fr(e,t){return e&&e.column===t.column&&e.row===t.row}const Or=U(([{increaseViewportBy:e,listBoundary:t,overscan:n,visibleRange:o},{footerHeight:r,headerHeight:a,scrollBy:i,scrollContainerState:s,scrollTo:l,scrollTop:c,smoothScrollTargetReached:d,viewportHeight:u},f,p,{didMount:_,propsReady:m},{customScrollParent:h,useWindowScroll:g,windowScrollContainerState:b,windowScrollTo:v,windowViewportRect:y},w])=>{const R=C(0),S=C(0),D=C(yn),T=C({height:0,width:0}),I=C({height:0,width:0}),k=$(),j=$(),F=C(0),P=C(null),M=C({column:0,row:0}),B=$(),L=$(),U=C(!1),H=C(0),z=C(!0),q=C(!1),W=C(!1);K(x(_,N(H),A(([e,t])=>!!t)),()=>{G(z,!1)}),K(x(rt(_,z,I,T,H,q),A(([e,t,n,o,,r])=>e&&!t&&0!==n.height&&0!==o.height&&!r)),([,,,,e])=>{G(q,!0),Ue(1,()=>{G(k,e)}),Tt(x(c),()=>{G(t,[0,0]),G(z,!0)})}),O(x(L,A(e=>null!=e&&e.scrollTop>0),Rt(0)),S),K(x(_,N(L),A(([,e])=>null!=e)),([,e])=>{e&&(G(T,e.viewport),G(I,e.item),G(M,e.gap),e.scrollTop>0&&(G(U,!0),Tt(x(c,Dt(1)),e=>{G(U,!1)}),G(l,{top:e.scrollTop})))}),O(x(T,E(({height:e})=>e)),u),O(x(rt(V(T,he),V(I,he),V(M,(e,t)=>e&&e.column===t.column&&e.row===t.row),V(c)),E(([e,t,n,o])=>({gap:n,item:t,scrollTop:o,viewport:e}))),B),O(x(rt(V(R),o,V(M,Fr),V(I,he),V(T,he),V(P),V(S),V(U),V(z),V(H)),A(([,,,,,,,e])=>!e),E(([e,[t,n],o,r,a,i,s,,l,c])=>{const{column:d,row:u}=o,{height:f,width:p}=r,{width:_}=a;if(0===s&&(0===e||0===_))return yn;if(0===p){const t=Ke(c,e);return kr(Hn(t,t+Math.max(s-1,0),i))}const m=so(_,p,d);let h,g;l?0===t&&0===n&&s>0?(h=0,g=s-1):(h=m*Ce((t+u)/(f+u)),g=m*Rn((n+u)/(f+u))-1,g=Oe(e-1,ee(g,m-1)),h=Oe(g,ee(0,h))):(h=0,g=-1);const b=Hn(h,g,i),{bottom:v,top:y}=En(a,o,r,b),E=Rn(e/m);return{bottom:v,itemHeight:f,items:b,itemWidth:p,offsetBottom:E*f+(E-1)*u-v,offsetTop:y,top:y}})),D),O(x(P,A(e=>null!==e),E(e=>e.length)),R),O(x(rt(T,I,D,M),A(([e,t,{items:n}])=>n.length>0&&0!==t.height&&0!==e.height),E(([e,t,{items:n},o])=>{const{bottom:r,top:a}=En(e,o,t,n);return[a,r]}),Z(se)),t);const Y=C(!1);O(x(c,N(Y),E(([e,t])=>t||0!==e)),Y);const J=ht(x(rt(D,R),A(([{items:e}])=>e.length>0),N(Y),A(([[e,t],n])=>{const o=e.items[e.items.length-1].index===t-1;return(n||e.bottom>0&&e.itemHeight>0&&0===e.offsetBottom&&e.items.length===t)&&o}),E(([[,e]])=>e-1),Z())),X=ht(x(V(D),A(({items:e})=>e.length>0&&0===e[0].index),Rt(0),Z())),Q=ht(x(V(D),N(U),A(([{items:e},t])=>e.length>0&&!t),E(([{items:e}])=>({endIndex:e[e.length-1].index,startIndex:e[0].index})),Z(Mn),kt(0)));O(Q,p.scrollSeekRangeChanged),O(x(k,N(T,I,R,M),E(([e,t,n,o,r])=>{const a=Dn(e),{align:i,behavior:s,offset:l}=a;let c=a.index;"LAST"===c&&(c=o-1),c=ee(0,c,Oe(o-1,c));let d=Me(t,r,n,c);return"end"===i?d=bn(d-t.height+n.height):"center"===i&&(d=bn(d-t.height/2+n.height/2)),l&&(d+=l),{behavior:s,top:d}})),l);const te=ct(x(D,E(e=>e.offsetBottom+e.bottom)),0);return O(x(y,E(e=>({height:e.visibleHeight,width:e.visibleWidth}))),T),{customScrollParent:h,data:P,deviation:F,footerHeight:r,gap:M,headerHeight:a,increaseViewportBy:e,initialItemCount:S,itemDimensions:I,overscan:n,restoreStateFrom:L,scrollBy:i,scrollContainerState:s,scrollHeight:j,scrollTo:l,scrollToIndex:k,scrollTop:c,smoothScrollTargetReached:d,totalCount:R,useWindowScroll:g,viewportDimensions:T,windowScrollContainerState:b,windowScrollTo:v,windowViewportRect:y,...p,gridState:D,horizontalDirection:W,initialTopMostItemIndex:H,totalListHeight:te,...f,endReached:J,propsReady:m,rangeChanged:Q,startReached:X,stateChanged:B,stateRestoreInProgress:U,...w}},X(je,at,ae,Yn,Pt,qe,Vt));function so(e,t,n){return ee(1,Ce((e+n)/(Ce(t)+n)))}function En(e,t,n,o){const{height:r}=n;if(void 0===r||0===o.length)return{bottom:0,top:0};const a=Me(e,t,n,o[0].index);return{bottom:Me(e,t,n,o[o.length-1].index)+r,top:a}}function Me(e,t,n,o){const r=so(e.width,n.width,t.column),a=Ce(o/r),i=a*n.height+ee(0,a-1)*t.row;return i>0?i+t.row:i}const Lr=U(()=>{const e=C(e=>`Item ${e}`),t=C({}),n=C(null),o=C("virtuoso-grid-item"),r=C("virtuoso-grid-list"),a=C(Xe),i=C("div"),s=C(Yt),l=(e,n=null)=>ct(x(t,E(t=>t[e]),Z()),n),c=C(!1),d=C(!1);return O(V(d),c),{components:t,computeItemKey:a,context:n,FooterComponent:l("Footer"),HeaderComponent:l("Header"),headerFooterTag:i,itemClassName:o,ItemComponent:l("Item","div"),itemContent:e,listClassName:r,ListComponent:l("List","div"),readyStateChanged:c,reportReadyState:d,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder","div")}}),zr=U(([e,t])=>({...e,...t}),X(Or,Lr)),Vr=React__default.default.memo(function(){const e=et("gridState"),t=et("listClassName"),n=et("itemClassName"),o=et("itemContent"),r=et("computeItemKey"),a=et("isSeeking"),i=It("scrollHeight"),s=et("ItemComponent"),l=et("ListComponent"),c=et("ScrollSeekPlaceholder"),d=et("context"),u=It("itemDimensions"),f=It("gap"),p=et("log"),_=et("stateRestoreInProgress"),m=It("reportReadyState"),h=Ht(React__default.default.useMemo(()=>e=>{const t=e.parentElement.parentElement.scrollHeight;i(t);const n=e.firstChild;if(n){const{height:e,width:t}=n.getBoundingClientRect();u({height:e,width:t})}f({column:Bn("column-gap",getComputedStyle(e).columnGap,p),row:Bn("row-gap",getComputedStyle(e).rowGap,p)})},[i,u,f,p]),!0,!1);return Qn(()=>{e.itemHeight>0&&e.itemWidth>0&&m(!0)},[e]),_?null:jsxRuntime.exports.jsx(l,{className:t,ref:h,...q(l,d),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(t=>{const i=r(t.index,t.data,d);return a?jsxRuntime.exports.jsx(c,{...q(c,d),height:e.itemHeight,index:t.index,width:e.itemWidth},i):React.createElement(s,{...q(s,d),className:n,"data-index":t.index,key:i},o(t.index,t.data,d))})})}),Pr=React__default.default.memo(function(){const e=et("HeaderComponent"),t=It("headerHeight"),n=et("headerFooterTag"),o=Ht(React__default.default.useMemo(()=>e=>{t(vt(e,"height"))},[t]),!0,!1),r=et("context");return e?jsxRuntime.exports.jsx(n,{ref:o,children:jsxRuntime.exports.jsx(e,{...q(e,r)})}):null}),Ar=React__default.default.memo(function(){const e=et("FooterComponent"),t=It("footerHeight"),n=et("headerFooterTag"),o=Ht(React__default.default.useMemo(()=>e=>{t(vt(e,"height"))},[t]),!0,!1),r=et("context");return e?jsxRuntime.exports.jsx(n,{ref:o,children:jsxRuntime.exports.jsx(e,{...q(e,r)})}):null}),Mr=({children:e})=>{const t=React__default.default.useContext(Jn),n=It("itemDimensions"),o=It("viewportDimensions"),r=Ht(React__default.default.useMemo(()=>e=>{o(e.getBoundingClientRect())},[o]),!0,!1);return React__default.default.useEffect(()=>{t&&(o({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))},[t,o,n]),jsxRuntime.exports.jsx("div",{ref:r,style:Zt(!1),children:e})},Wr=({children:e})=>{const t=React__default.default.useContext(Jn),n=It("windowViewportRect"),o=It("itemDimensions"),r=et("customScrollParent"),a=Ne(n,r,!1);return React__default.default.useEffect(()=>{t&&(o({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))},[t,n,o]),jsxRuntime.exports.jsx("div",{ref:a,style:Zt(!1),children:e})},Gr=React__default.default.memo(function({...e}){const t=et("useWindowScroll"),n=et("customScrollParent"),o=n||t?Dr:Nr,r=n||t?Wr:Mr,a=et("context");return jsxRuntime.exports.jsx(o,{...e,...q(o,a),children:jsxRuntime.exports.jsxs(r,{children:[jsxRuntime.exports.jsx(Pr,{}),jsxRuntime.exports.jsx(Vr,{}),jsxRuntime.exports.jsx(Ar,{})]})})}),{Component:_r,useEmitter:io,useEmitterValue:et,usePublisher:It}=Ye(zr,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},Gr),Nr=Je({useEmitter:io,useEmitterValue:et,usePublisher:It}),Dr=Qe({useEmitter:io,useEmitterValue:et,usePublisher:It});function Bn(e,t,n){return"normal"!==t&&!(null!=t&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,mt.WARN),"normal"===t?0:parseInt(null!=t?t:"0",10)}const IDLE_CALLBACK_FALLBACK_TIMEOUT=100;function requestIdleCallbackFallback(e,t){return setTimeout(e,Math.min(t?.timeout??1/0,IDLE_CALLBACK_FALLBACK_TIMEOUT))}const requestIdleCallback=("undefined"!=typeof window?window.requestIdleCallback:null)??requestIdleCallbackFallback,cancelIdleCallback=("undefined"!=typeof window?window.cancelIdleCallback:null)??clearTimeout,visuallyHidden={position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"},EmojiPickerContext=React.createContext(null);function useEmojiPicker(){return nn(React.useContext(EmojiPickerContext),"EmojiPicker.Root is missing from the React tree.")}const EMOJIBASE_VERSION="15.3.0",EMOJIBASE_CDN_URL=`${Builder&&Builder.settings&&Builder.settings.unpkgUrl?Builder.settings.unpkgUrl:"https://unpkg.com"}/emojibase-data@${EMOJIBASE_VERSION}`,EMOJIBASE_EMOJIS_URL=e=>`${EMOJIBASE_CDN_URL}/${e}/data.json`,EMOJIBASE_MESSAGES_URL=e=>`${EMOJIBASE_CDN_URL}/${e}/messages.json`,EMOJIBASE_LOCALES=["bn","da","de","en","en-gb","es","es-mx","et","fi","fr","hi","hu","it","ja","ko","lt","ms","nb","nl","pl","pt","ru","sv","th","uk","zh","zh-hant"],EMOJIBASE_DEFAULT_LOCALE="en",CACHE_EMOJI_DATA_KEY=e=>`lb-emoji-data-${e}`,CACHE_EMOJI_METADATA_KEY=e=>`lb-emoji-metadata-${e}`,CACHE_EMOJI_SESSION_METADATA_KEY="lb-emoji-metadata",EMOJI_DETECTION_CANVAS_WIDTH=20,EMOJI_DETECTION_CANVAS_HEIGHT=25,EMOJI_DETECTION_COUNTRY_FLAG="🇫🇷";function generateRangeIndices(e,t){const n=[];for(let o=e;o<=t;o++)n.push(o);return n}function getStorageItem(e,t){const n=e.getItem(t);return n?JSON.parse(n):null}function setStorageItem(e,t,n){e.setItem(t,JSON.stringify(n))}async function fetchEtag(e){try{return(await fetch(e,{method:"HEAD"})).headers.get("etag")}catch(e){return null}}function getEmojibaseSupportedLocale(e){return EMOJIBASE_LOCALES.includes(e)?e:EMOJIBASE_DEFAULT_LOCALE}async function fetchEmojibaseData(e){const[{emojis:t,emojisEtag:n},{messages:o,messagesEtag:r}]=await Promise.all([fetch(EMOJIBASE_EMOJIS_URL(e)).then(async e=>({emojis:await e.json(),emojisEtag:e.headers.get("etag")})),fetch(EMOJIBASE_MESSAGES_URL(e)).then(async e=>({messages:await e.json(),messagesEtag:e.headers.get("etag")}))]);return{emojis:t,messages:o,emojisEtag:n,messagesEtag:r}}async function fetchEmojibaseEtags(e){const[t,n]=await Promise.all([fetchEtag(EMOJIBASE_EMOJIS_URL(e)),fetchEtag(EMOJIBASE_MESSAGES_URL(e))]);return{emojisEtag:t,messagesEtag:n}}async function fetchEmojiData(e){const{emojis:t,emojisEtag:n,messages:o,messagesEtag:r}=await fetchEmojibaseData(e),a=o.subgroups.find(e=>"subdivision-flag"===e.key),i=o.groups.filter(e=>"component"!==e.key),s=t.filter(e=>"group"in e),l=i.map(e=>({key:e.order,name:capitalize$1(e.message)})),c=o.skinTones.map(e=>({key:e.key,name:capitalize$1(e.message)})),d={emojis:s.map(e=>{const t={emoji:e.emoji,category:e.group,version:e.version,name:capitalize$1(e.label),tags:e.tags};return a&&e.subgroup===a.order&&(t.countryFlag=!0),t}),categories:l,skinTones:c};return setStorageItem(localStorage,CACHE_EMOJI_DATA_KEY(e),d),setStorageItem(localStorage,CACHE_EMOJI_METADATA_KEY(e),{emojisEtag:n,messagesEtag:r}),d}function detectEmojiSupport(e,t){e.clearRect(0,0,2*EMOJI_DETECTION_CANVAS_WIDTH,EMOJI_DETECTION_CANVAS_HEIGHT),e.fillStyle="#f00",e.fillText(t,0,22),e.fillStyle="#00f",e.fillText(t,EMOJI_DETECTION_CANVAS_WIDTH,22);const n=e.getImageData(0,0,EMOJI_DETECTION_CANVAS_WIDTH,EMOJI_DETECTION_CANVAS_HEIGHT).data,o=n.length;let r=0;for(;r<o&&!n[r+3];r+=4);if(r>=o)return!1;const a=EMOJI_DETECTION_CANVAS_WIDTH+r/4%EMOJI_DETECTION_CANVAS_WIDTH,i=Math.floor(r/4/EMOJI_DETECTION_CANVAS_WIDTH),s=e.getImageData(a,i,1,1).data;return n[r]===s[0]&&n[r+2]===s[2]&&!(e.measureText(t).width>=EMOJI_DETECTION_CANVAS_WIDTH)}function getEmojiFontFamily(){try{const e=document.createElement("span");e.style.display="none",e.dataset.emoji="",document.body.appendChild(e);const t=window.getComputedStyle(e).fontFamily;return document.body.removeChild(e),t}catch{return EMOJI_FONT_FAMILY}}function getEmojiSessionMetadata(e){const t=new Map;for(const n of e)t.has(n.version)||t.set(n.version,n.emoji);const n=[...t.keys()].sort((e,t)=>t-e),o=n[0]??0,r=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});if(!r)return{emojiVersion:o,countryFlags:!0};r.font=`${Math.floor(EMOJI_DETECTION_CANVAS_HEIGHT/2)}px ${getEmojiFontFamily()}`,r.textBaseline="top",r.canvas.width=2*EMOJI_DETECTION_CANVAS_WIDTH,r.canvas.height=EMOJI_DETECTION_CANVAS_HEIGHT;const a=detectEmojiSupport(r,EMOJI_DETECTION_COUNTRY_FLAG);for(const e of n){if(detectEmojiSupport(r,t.get(e)))return{emojiVersion:e,countryFlags:a}}return{emojiVersion:o,countryFlags:a}}async function getEmojiData(e){const t=getEmojibaseSupportedLocale(e),n=getStorageItem(sessionStorage,CACHE_EMOJI_SESSION_METADATA_KEY),o=getStorageItem(localStorage,CACHE_EMOJI_DATA_KEY(t));let r;if(o)if(n)r=o;else{const{emojisEtag:e,messagesEtag:n}=await fetchEmojibaseEtags(t),a=getStorageItem(localStorage,CACHE_EMOJI_METADATA_KEY(t));r=a&&e===a.emojisEtag&&n===a.messagesEtag?o:await fetchEmojiData(t)}else r=await fetchEmojiData(t);const a=n??getEmojiSessionMetadata(r.emojis);setStorageItem(sessionStorage,CACHE_EMOJI_SESSION_METADATA_KEY,a);return{emojis:r.emojis.filter(e=>{const t=e.version<=a.emojiVersion;return e.countryFlag?t&&a.countryFlags:t}),categories:r.categories,skinTones:r.skinTones}}function filterEmojis(e,t){if(!t)return e;const n=t.toLowerCase().trim();return e.filter(e=>e.name.toLowerCase().includes(n)||e.tags?.some(e=>e.toLowerCase().includes(n)))}function generateEmojiPickerData(e,t,n){let o=0;const r=[],a=e.map((e,t)=>({...e,index:t})),i=[],s=[],l=[],c=t.map(e=>({...e,emojis:a.filter(t=>t.category===e.key)})).filter(e=>e.emojis.length>0);for(const e of c){const t=chunk(e.emojis,n),a=o+t.length;r.push(...t),l.push(e.name),i.push(t.length),s.push(generateRangeIndices(o,a-1)),o=a}return{count:e.length,rows:r,categories:l,categoriesRowCounts:i,categoriesRowIndices:s}}const DEFAULT_COLUMNS=10,DEFAULT_LOCALE="en",LOADING_MINIMUM_TIMEOUT=100;function EmojiPickerRoot({columns:e=DEFAULT_COLUMNS,locale:t=DEFAULT_LOCALE,onEmojiSelect:n,children:o}){const r=React.useRef(),a=React.useRef(""),[,i]=React.useTransition(),[s,l]=React.useState(),[c,d]=React.useState(),[u,f]=React.useState(0),[p,_]=React.useState(0),[m,h]=React.useState("none"),g=React.useCallback(()=>{if(n){const e=s?.rows[p]?.[u];e&&n(e.emoji)}},[s?.rows,n,u,p]),b=React.useCallback(()=>{f(0),_(0)},[]),v=React.useCallback((e,t)=>{h("pointer"),f(e),_(t)},[]),y=React.useCallback((e,t)=>{if(s)if(t.preventDefault(),"none"!==m)switch(h("keyboard"),e){case"left":if(0===u){const e=p-1,t=s.rows[e];t&&(_(e),f(t.length-1))}else f(u-1);break;case"right":{const e=s.rows[p];if(!e)return;if(u===e.length-1){const e=p+1;s.rows[e]&&(_(e),f(0))}else f(u+1);break}case"up":{const e=s.rows[p-1];e&&(_(p-1),e[u]||f(e.length-1));break}case"down":{const e=s.rows[p+1];e&&(_(p+1),e[u]||f(e.length-1));break}}else h("keyboard")},[s,m,u,p]),E=React.useCallback(()=>{r.current&&i(()=>{l(()=>{if(!r.current)return;return generateEmojiPickerData(filterEmojis(r.current.emojis,a.current),r.current.categories,e)}),b()})},[e,b]),w=React.useCallback(e=>{a.current=e,E()},[E]),C=React.useCallback(async e=>{try{r.current=await getEmojiData(e),E()}catch(e){d(e)}},[E]);return React.useEffect(()=>{let e;const n=setTimeout(()=>{e=requestIdleCallback(()=>{C(t)})},LOADING_MINIMUM_TIMEOUT);return()=>{clearTimeout(n),cancelIdleCallback(e)}},[t]),React.useEffect(()=>{"none"===m&&b()},[m]),jsxRuntime.exports.jsx(EmojiPickerContext.Provider,{value:{data:s,error:c,isLoading:!s&&!c,columns:e,onSearch:w,onEmojiSelect:n,selectCurrentEmoji:g,selectedRowIndex:p,selectedColumnIndex:u,moveSelection:y,setPointerSelection:v,interaction:m,setInteraction:h},children:o})}const EmojiPickerSearch=React.forwardRef(({asChild:e,value:t,defaultValue:n,onChange:o,...r},a)=>{const i=e?Slot$2:"input",{onSearch:s,selectCurrentEmoji:l,moveSelection:c,interaction:d,setInteraction:u}=useEmojiPicker(),f=React.useCallback(e=>{if(o?.(e),e.isDefaultPrevented())return;const t=e.target.value;u(t?"keyboard":"none"),s(t)},[o,s,u]),p=React.useCallback(e=>{e.isDefaultPrevented()||(isKey(e,"ArrowLeft")?c("left",e):isKey(e,"ArrowRight")?c("right",e):isKey(e,"ArrowUp")?c("up",e):isKey(e,"ArrowDown")?c("down",e):isKey(e,"Enter")&&"none"!==d&&(e.preventDefault(),l()))},[d,c,l]);return React.useEffect(()=>{s(t?String(t):n?String(n):"")},[]),jsxRuntime.exports.jsx(i,{type:"search",value:t,defaultValue:n,onChange:f,onKeyDown:p,...r,ref:a})}),defaultContentComponents={CategoryHeader:({category:e,...t})=>jsxRuntime.exports.jsx("div",{...t,children:e}),Row:({children:e,attributes:t,...n})=>jsxRuntime.exports.jsx("div",{...n,children:e}),Emoji:({emoji:e,...t})=>jsxRuntime.exports.jsx("button",{...t,children:jsxRuntime.exports.jsx(Emoji$1,{emoji:e})}),Loading:e=>jsxRuntime.exports.jsx("div",{...e}),Empty:e=>jsxRuntime.exports.jsx("div",{...e}),Grid:e=>jsxRuntime.exports.jsx("div",{...e}),Error:({error:e,...t})=>jsxRuntime.exports.jsx("div",{...t})},placeholderRowAttributes={rowIndex:-1,categoryRowIndex:-1,categoryRowsCount:0},VirtuosoScroller=React.forwardRef(({children:e,...t},n)=>jsxRuntime.exports.jsx("div",{...t,tabIndex:-1,"data-testid":void 0,ref:n,children:e})),VirtuosoTopList=React.forwardRef(({children:e,...t},n)=>jsxRuntime.exports.jsx("div",{...t,"data-testid":void 0,ref:n,children:e})),EmojiPickerContent=React.forwardRef(({components:e,asChild:t,...n},o)=>{const r=t?Slot$2:"div",a=React.useRef(null),i=React.useRef(null),s=React.useRef(0),l=React.useRef(0),c=React.useRef(0),{data:d,error:u,isLoading:f,columns:p,onEmojiSelect:_,selectedColumnIndex:m,selectedRowIndex:h,setPointerSelection:g,interaction:b,setInteraction:v}=useEmojiPicker(),y=React.useMemo(()=>d?.rows[h]?.[m],[d?.rows,m,h]),{Loading:E,Empty:w,Error:C,CategoryHeader:x,Grid:R,Row:S,Emoji:D}=React.useMemo(()=>({...defaultContentComponents,...e}),[e]),T=React.useMemo(()=>React.forwardRef(({children:e,...t},n)=>jsxRuntime.exports.jsx("div",{role:"grid","aria-colcount":p,...t,"data-testid":void 0,ref:n,children:e})),[p]),A=React.useMemo(()=>Array(p).fill("🌫️"),[p]),O=React.useCallback(e=>{e.preventDefault()},[]),I=React.useCallback(()=>{"pointer"===b&&v("none")},[b,v]);React.useLayoutEffect(()=>{if(!i.current)return;const e=i.current.childNodes[0],t=i.current.childNodes[1];if(e instanceof HTMLElement){const t=window.getComputedStyle(e);s.current=parseFloat(t.scrollMarginTop),l.current=parseFloat(t.scrollMarginBottom)}t instanceof HTMLElement&&(c.current=t.offsetHeight)},[]);const k=React.useCallback(({itemTop:e,itemBottom:t,viewportTop:n,viewportBottom:o,locationParams:{behavior:r,align:a,...i}})=>e-(c.current+s.current)<n?{...i,behavior:r,align:a??"start"}:t>o?{...i,behavior:r,align:a??"end",offset:l.current}:null,[]);return React.useEffect(()=>{"keyboard"===b&&a.current?.scrollIntoView({index:h,behavior:"auto",calculateViewLocation:k})},[b,h,k]),jsxRuntime.exports.jsxs(r,{...n,ref:o,children:[jsxRuntime.exports.jsxs("div",{style:{visibility:"hidden",height:0},ref:i,children:[jsxRuntime.exports.jsx(S,{attributes:placeholderRowAttributes,children:A.map((e,t)=>jsxRuntime.exports.jsx(D,{emoji:e},t))}),jsxRuntime.exports.jsx(x,{category:"Category"})]}),f?jsxRuntime.exports.jsx(E,{}):u?jsxRuntime.exports.jsx(C,{error:u}):0===d.count?jsxRuntime.exports.jsx(w,{}):jsxRuntime.exports.jsx(R,{children:jsxRuntime.exports.jsx(Yr,{ref:a,components:{Scroller:VirtuosoScroller,List:T,TopItemList:VirtuosoTopList},groupCounts:d.categoriesRowCounts,groupContent:e=>{const t=d.categories[e];return t?jsxRuntime.exports.jsx(x,{category:t}):null},itemContent:(e,t)=>{const n=d.rows[e],o=d.categoriesRowIndices[t]?.indexOf(e),r=d.categoriesRowCounts[t];return void 0===n||void 0===o||void 0===r?null:jsxRuntime.exports.jsx(S,{attributes:{rowIndex:e,categoryRowIndex:o,categoryRowsCount:r},children:n.map((t,n)=>{const o="none"!==b&&m===n&&h===e;return jsxRuntime.exports.jsx(D,{role:"gridcell","aria-colindex":n,"aria-selected":o||void 0,"data-selected":o||void 0,onMouseDown:O,tabIndex:-1,onPointerEnter:()=>{g(n,e)},onPointerLeave:I,onClick:e=>{_?.(t.emoji),e.stopPropagation()},emoji:t.emoji},t.emoji)})})}})}),y&&"none"!==b&&jsxRuntime.exports.jsx("div",{"aria-live":"polite",style:visuallyHidden,children:y.name})]})}),BASE=1e3,UNITS=["B","KB","MB","GB"];function formatFileSize(e,t){if(0===e)return`0 ${UNITS[1]}`;let n;n=0===e?1:Math.max(1,Math.min(Math.floor(Math.log(Math.abs(e))/Math.log(BASE)),UNITS.length-1));let o=e/BASE**n,r=1;1===n&&(o>=10&&(r=0),o<.1&&o>0&&(r=2),o<.01&&(o=.01));const a=UNITS[n];return`${numberFormat(t,{minimumFractionDigits:0,maximumFractionDigits:r}).format(o)} ${a}`}function createContextScope(e,t=[]){let n=[];const o=()=>{const t=n.map(e=>React__namespace.createContext(e));return function(n){const o=n?.[e]||t;return React__namespace.useMemo(()=>({[`__scope${e}`]:{...n,[e]:o}}),[n,o])}};return o.scopeName=e,[function(t,o){const r=React__namespace.createContext(o),a=n.length;n=[...n,o];const i=t=>{const{scope:n,children:o,...i}=t,s=n?.[e]?.[a]||r,l=React__namespace.useMemo(()=>i,Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:o})};return i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e]?.[a]||r,l=React__namespace.useContext(s);if(l)return l;if(void 0!==o)return o;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes(o,...t)]}function composeContextScopes(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){const o=n.reduce((t,{useScope:n,scopeName:o})=>({...t,...n(e)[`__scope${o}`]}),{});return React__namespace.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return n.scopeName=t.scopeName,n}function useCallbackRef$1(e){const t=React__namespace.useRef(e);return React__namespace.useEffect(()=>{t.current=e}),React__namespace.useMemo(()=>(...e)=>t.current?.(...e),[])}function useEscapeKeydown(e,t=globalThis?.document){const n=useCallbackRef$1(e);React__namespace.useEffect(()=>{const e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[n,t])}var DISMISSABLE_LAYER_NAME="DismissableLayer",CONTEXT_UPDATE="dismissableLayer.update",POINTER_DOWN_OUTSIDE="dismissableLayer.pointerDownOutside",FOCUS_OUTSIDE="dismissableLayer.focusOutside",originalBodyPointerEvents,DismissableLayerContext=React__namespace.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),DismissableLayer=React__namespace.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:a,onInteractOutside:i,onDismiss:s,...l}=e,c=React__namespace.useContext(DismissableLayerContext),[d,u]=React__namespace.useState(null),f=d?.ownerDocument??globalThis?.document,[,p]=React__namespace.useState({}),_=useComposedRefs(t,e=>u(e)),m=Array.from(c.layers),[h]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),g=m.indexOf(h),b=d?m.indexOf(d):-1,v=c.layersWithOutsidePointerEventsDisabled.size>0,y=b>=g,E=usePointerDownOutside(e=>{const t=e.target,n=[...c.branches].some(e=>e.contains(t));y&&!n&&(r?.(e),i?.(e),e.defaultPrevented||s?.())},f),w=useFocusOutside(e=>{const t=e.target;[...c.branches].some(e=>e.contains(t))||(a?.(e),i?.(e),e.defaultPrevented||s?.())},f);return useEscapeKeydown(e=>{b===c.layers.size-1&&(o?.(e),!e.defaultPrevented&&s&&(e.preventDefault(),s()))},f),React__namespace.useEffect(()=>{if(d)return n&&(0===c.layersWithOutsidePointerEventsDisabled.size&&(originalBodyPointerEvents=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(d)),c.layers.add(d),dispatchUpdate(),()=>{n&&1===c.layersWithOutsidePointerEventsDisabled.size&&(f.body.style.pointerEvents=originalBodyPointerEvents)}},[d,f,n,c]),React__namespace.useEffect(()=>()=>{d&&(c.layers.delete(d),c.layersWithOutsidePointerEventsDisabled.delete(d),dispatchUpdate())},[d,c]),React__namespace.useEffect(()=>{const e=()=>p({});return document.addEventListener(CONTEXT_UPDATE,e),()=>document.removeEventListener(CONTEXT_UPDATE,e)},[]),jsxRuntime.exports.jsx(Primitive.div,{...l,ref:_,style:{pointerEvents:v?y?"auto":"none":void 0,...e.style},onFocusCapture:composeEventHandlers(e.onFocusCapture,w.onFocusCapture),onBlurCapture:composeEventHandlers(e.onBlurCapture,w.onBlurCapture),onPointerDownCapture:composeEventHandlers(e.onPointerDownCapture,E.onPointerDownCapture)})});DismissableLayer.displayName=DISMISSABLE_LAYER_NAME;var BRANCH_NAME="DismissableLayerBranch",DismissableLayerBranch=React__namespace.forwardRef((e,t)=>{const n=React__namespace.useContext(DismissableLayerContext),o=React__namespace.useRef(null),r=useComposedRefs(t,o);return React__namespace.useEffect(()=>{const e=o.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),jsxRuntime.exports.jsx(Primitive.div,{...e,ref:r})});function usePointerDownOutside(e,t=globalThis?.document){const n=useCallbackRef$1(e),o=React__namespace.useRef(!1),r=React__namespace.useRef(()=>{});return React__namespace.useEffect(()=>{const e=e=>{if(e.target&&!o.current){let o=function(){handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE,n,a,{discrete:!0})};const a={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",r.current),r.current=o,t.addEventListener("click",r.current,{once:!0})):o()}else t.removeEventListener("click",r.current);o.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",e),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>o.current=!0}}function useFocusOutside(e,t=globalThis?.document){const n=useCallbackRef$1(e),o=React__namespace.useRef(!1);return React__namespace.useEffect(()=>{const e=e=>{if(e.target&&!o.current){handleAndDispatchCustomEvent(FOCUS_OUTSIDE,n,{originalEvent:e},{discrete:!1})}};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function dispatchUpdate(){const e=new CustomEvent(CONTEXT_UPDATE);document.dispatchEvent(e)}function handleAndDispatchCustomEvent(e,t,n,{discrete:o}){const r=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),o?dispatchDiscreteCustomEvent(r,a):r.dispatchEvent(a)}DismissableLayerBranch.displayName=BRANCH_NAME;var useReactId=React__namespace[" useId ".trim().toString()]||(()=>{}),count$1=0;function useId(e){const[t,n]=React__namespace.useState(useReactId());return useLayoutEffect2(()=>{e||n(e=>e??String(count$1++))},[e]),e||(t?`radix-${t}`:"")}var NAME$1="Arrow",Arrow$1=React__namespace.forwardRef((e,t)=>{const{children:n,width:o=10,height:r=5,...a}=e;return jsxRuntime.exports.jsx(Primitive.svg,{...a,ref:t,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:jsxRuntime.exports.jsx("polygon",{points:"0,0 30,0 15,10"})})});Arrow$1.displayName=NAME$1;var Root$2=Arrow$1;function useSize(e){const[t,n]=React__namespace.useState(void 0);return useLayoutEffect2(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const t=new ResizeObserver(t=>{if(!Array.isArray(t))return;if(!t.length)return;const o=t[0];let r,a;if("borderBoxSize"in o){const e=o.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,a=t.blockSize}else r=e.offsetWidth,a=e.offsetHeight;n({width:r,height:a})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}n(void 0)},[e]),t}var POPPER_NAME="Popper",[createPopperContext,createPopperScope]=createContextScope(POPPER_NAME),[PopperProvider,usePopperContext]=createPopperContext(POPPER_NAME),Popper=e=>{const{__scopePopper:t,children:n}=e,[o,r]=React__namespace.useState(null);return jsxRuntime.exports.jsx(PopperProvider,{scope:t,anchor:o,onAnchorChange:r,children:n})};Popper.displayName=POPPER_NAME;var ANCHOR_NAME$2="PopperAnchor",PopperAnchor=React__namespace.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:o,...r}=e,a=usePopperContext(ANCHOR_NAME$2,n),i=React__namespace.useRef(null),s=useComposedRefs(t,i),l=React__namespace.useRef(null);return React__namespace.useEffect(()=>{const e=l.current;l.current=o?.current||i.current,e!==l.current&&a.onAnchorChange(l.current)}),o?null:jsxRuntime.exports.jsx(Primitive.div,{...r,ref:s})});PopperAnchor.displayName=ANCHOR_NAME$2;var CONTENT_NAME$4="PopperContent",[PopperContentProvider,useContentContext]=createPopperContext(CONTENT_NAME$4),PopperContent=React__namespace.forwardRef((e,t)=>{const{__scopePopper:n,side:o="bottom",sideOffset:r=0,align:a="center",alignOffset:i=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:c=[],collisionPadding:d=0,sticky:u="partial",hideWhenDetached:f=!1,updatePositionStrategy:p="optimized",onPlaced:_,...m}=e,h=usePopperContext(CONTENT_NAME$4,n),[g,b]=React__namespace.useState(null),v=useComposedRefs(t,e=>b(e)),[y,E]=React__namespace.useState(null),w=useSize(y),C=w?.width??0,x=w?.height??0,R=o+("center"!==a?"-"+a:""),S="number"==typeof d?d:{top:0,right:0,bottom:0,left:0,...d},D=Array.isArray(c)?c:[c],T=D.length>0,A={padding:S,boundary:D.filter(isNotNull),altBoundary:T},{refs:O,floatingStyles:I,placement:k,isPositioned:N,middlewareData:j}=useFloating({strategy:"fixed",placement:R,whileElementsMounted:(...e)=>autoUpdate(...e,{animationFrame:"always"===p}),elements:{reference:h.anchor},middleware:[offset({mainAxis:r+x,alignmentAxis:i}),l&&shift({mainAxis:!0,crossAxis:!1,limiter:"partial"===u?limitShift():void 0,...A}),l&&flip({...A}),size({...A,apply:({elements:e,rects:t,availableWidth:n,availableHeight:o})=>{const{width:r,height:a}=t.reference,i=e.floating.style;i.setProperty("--radix-popper-available-width",`${n}px`),i.setProperty("--radix-popper-available-height",`${o}px`),i.setProperty("--radix-popper-anchor-width",`${r}px`),i.setProperty("--radix-popper-anchor-height",`${a}px`)}}),y&&arrow({element:y,padding:s}),transformOrigin({arrowWidth:C,arrowHeight:x}),f&&hide({strategy:"referenceHidden",...A})]}),[$,F]=getSideAndAlignFromPlacement(k),P=useCallbackRef$1(_);useLayoutEffect2(()=>{N&&P?.()},[N,P]);const M=j.arrow?.x,B=j.arrow?.y,L=0!==j.arrow?.centerOffset,[U,V]=React__namespace.useState();return useLayoutEffect2(()=>{g&&V(window.getComputedStyle(g).zIndex)},[g]),jsxRuntime.exports.jsx("div",{ref:O.setFloating,"data-radix-popper-content-wrapper":"",style:{...I,transform:N?I.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:U,"--radix-popper-transform-origin":[j.transformOrigin?.x,j.transformOrigin?.y].join(" "),...j.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:jsxRuntime.exports.jsx(PopperContentProvider,{scope:n,placedSide:$,onArrowChange:E,arrowX:M,arrowY:B,shouldHideArrow:L,children:jsxRuntime.exports.jsx(Primitive.div,{"data-side":$,"data-align":F,...m,ref:v,style:{...m.style,animation:N?void 0:"none"}})})})});PopperContent.displayName=CONTENT_NAME$4;var ARROW_NAME$4="PopperArrow",OPPOSITE_SIDE={top:"bottom",right:"left",bottom:"top",left:"right"},PopperArrow=React__namespace.forwardRef(function(e,t){const{__scopePopper:n,...o}=e,r=useContentContext(ARROW_NAME$4,n),a=OPPOSITE_SIDE[r.placedSide];return jsxRuntime.exports.jsx("span",{ref:r.onArrowChange,style:{position:"absolute",left:r.arrowX,top:r.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[r.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[r.placedSide],visibility:r.shouldHideArrow?"hidden":void 0},children:jsxRuntime.exports.jsx(Root$2,{...o,ref:t,style:{...o.style,display:"block"}})})});function isNotNull(e){return null!==e}PopperArrow.displayName=ARROW_NAME$4;var transformOrigin=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:o,middlewareData:r}=t,a=0!==r.arrow?.centerOffset,i=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[l,c]=getSideAndAlignFromPlacement(n),d={start:"0%",center:"50%",end:"100%"}[c],u=(r.arrow?.x??0)+i/2,f=(r.arrow?.y??0)+s/2;let p="",_="";return"bottom"===l?(p=a?d:`${u}px`,_=-s+"px"):"top"===l?(p=a?d:`${u}px`,_=`${o.floating.height+s}px`):"right"===l?(p=-s+"px",_=a?d:`${f}px`):"left"===l&&(p=`${o.floating.width+s}px`,_=a?d:`${f}px`),{data:{x:p,y:_}}}});function getSideAndAlignFromPlacement(e){const[t,n="center"]=e.split("-");return[t,n]}var Root2$2=Popper,Anchor=PopperAnchor,Content$1=PopperContent,Arrow=PopperArrow,PORTAL_NAME$4="Portal",Portal$3=React__namespace.forwardRef((e,t)=>{const{container:n,...o}=e,[r,a]=React__namespace.useState(!1);useLayoutEffect2(()=>a(!0),[]);const i=n||r&&globalThis?.document?.body;return i?ReactDOM__default.default.createPortal(jsxRuntime.exports.jsx(Primitive.div,{...o,ref:t}),i):null});function useStateMachine(e,t){return React__namespace.useReducer((e,n)=>t[e][n]??e,e)}Portal$3.displayName=PORTAL_NAME$4;var Presence=e=>{const{present:t,children:n}=e,o=usePresence(t),r="function"==typeof n?n({present:o.isPresent}):React__namespace.Children.only(n),a=useComposedRefs(o.ref,getElementRef(r));return"function"==typeof n||o.isPresent?React__namespace.cloneElement(r,{ref:a}):null};function usePresence(e){const[t,n]=React__namespace.useState(),o=React__namespace.useRef(null),r=React__namespace.useRef(e),a=React__namespace.useRef("none"),i=e?"mounted":"unmounted",[s,l]=useStateMachine(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return React__namespace.useEffect(()=>{const e=getAnimationName(o.current);a.current="mounted"===s?e:"none"},[s]),useLayoutEffect2(()=>{const t=o.current,n=r.current;if(n!==e){const o=a.current,i=getAnimationName(t);if(e)l("MOUNT");else if("none"===i||"none"===t?.display)l("UNMOUNT");else{l(n&&o!==i?"ANIMATION_OUT":"UNMOUNT")}r.current=e}},[e,l]),useLayoutEffect2(()=>{if(t){let e;const n=t.ownerDocument.defaultView??window,i=a=>{const i=getAnimationName(o.current).includes(CSS.escape(a.animationName));if(a.target===t&&i&&(l("ANIMATION_END"),!r.current)){const o=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout(()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=o)})}},s=e=>{e.target===t&&(a.current=getAnimationName(o.current))};return t.addEventListener("animationstart",s),t.addEventListener("animationcancel",i),t.addEventListener("animationend",i),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",s),t.removeEventListener("animationcancel",i),t.removeEventListener("animationend",i)}}l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:React__namespace.useCallback(e=>{o.current=e?getComputedStyle(e):null,n(e)},[])}}function getAnimationName(e){return e?.animationName||"none"}function getElementRef(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}Presence.displayName="Presence";var VISUALLY_HIDDEN_STYLES=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),NAME="VisuallyHidden",VisuallyHidden=React__namespace.forwardRef((e,t)=>jsxRuntime.exports.jsx(Primitive.span,{...e,ref:t,style:{...VISUALLY_HIDDEN_STYLES,...e.style}}));VisuallyHidden.displayName=NAME;var Root$1=VisuallyHidden,[createTooltipContext,createTooltipScope]=createContextScope("Tooltip",[createPopperScope]),usePopperScope$2=createPopperScope(),PROVIDER_NAME="TooltipProvider",DEFAULT_DELAY_DURATION=700,TOOLTIP_OPEN="tooltip.open",[TooltipProviderContextProvider,useTooltipProviderContext]=createTooltipContext(PROVIDER_NAME),TooltipProvider=e=>{const{__scopeTooltip:t,delayDuration:n=DEFAULT_DELAY_DURATION,skipDelayDuration:o=300,disableHoverableContent:r=!1,children:a}=e,i=React__namespace.useRef(!0),s=React__namespace.useRef(!1),l=React__namespace.useRef(0);return React__namespace.useEffect(()=>{const e=l.current;return()=>window.clearTimeout(e)},[]),jsxRuntime.exports.jsx(TooltipProviderContextProvider,{scope:t,isOpenDelayedRef:i,delayDuration:n,onOpen:React__namespace.useCallback(()=>{window.clearTimeout(l.current),i.current=!1},[]),onClose:React__namespace.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>i.current=!0,o)},[o]),isPointerInTransitRef:s,onPointerInTransitChange:React__namespace.useCallback(e=>{s.current=e},[]),disableHoverableContent:r,children:a})};TooltipProvider.displayName=PROVIDER_NAME;var TOOLTIP_NAME="Tooltip",[TooltipContextProvider,useTooltipContext]=createTooltipContext(TOOLTIP_NAME),Tooltip$1=e=>{const{__scopeTooltip:t,children:n,open:o,defaultOpen:r,onOpenChange:a,disableHoverableContent:i,delayDuration:s}=e,l=useTooltipProviderContext(TOOLTIP_NAME,e.__scopeTooltip),c=usePopperScope$2(t),[d,u]=React__namespace.useState(null),f=useId(),p=React__namespace.useRef(0),_=i??l.disableHoverableContent,m=s??l.delayDuration,h=React__namespace.useRef(!1),[g,b]=useControllableState$1({prop:o,defaultProp:r??!1,onChange:e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN))):l.onClose(),a?.(e)},caller:TOOLTIP_NAME}),v=React__namespace.useMemo(()=>g?h.current?"delayed-open":"instant-open":"closed",[g]),y=React__namespace.useCallback(()=>{window.clearTimeout(p.current),p.current=0,h.current=!1,b(!0)},[b]),E=React__namespace.useCallback(()=>{window.clearTimeout(p.current),p.current=0,b(!1)},[b]),w=React__namespace.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{h.current=!0,b(!0),p.current=0},m)},[m,b]);return React__namespace.useEffect(()=>()=>{p.current&&(window.clearTimeout(p.current),p.current=0)},[]),jsxRuntime.exports.jsx(Root2$2,{...c,children:jsxRuntime.exports.jsx(TooltipContextProvider,{scope:t,contentId:f,open:g,stateAttribute:v,trigger:d,onTriggerChange:u,onTriggerEnter:React__namespace.useCallback(()=>{l.isOpenDelayedRef.current?w():y()},[l.isOpenDelayedRef,w,y]),onTriggerLeave:React__namespace.useCallback(()=>{_?E():(window.clearTimeout(p.current),p.current=0)},[E,_]),onOpen:y,onClose:E,disableHoverableContent:_,children:n})})};Tooltip$1.displayName=TOOLTIP_NAME;var TRIGGER_NAME$2="TooltipTrigger",TooltipTrigger=React__namespace.forwardRef((e,t)=>{const{__scopeTooltip:n,...o}=e,r=useTooltipContext(TRIGGER_NAME$2,n),a=useTooltipProviderContext(TRIGGER_NAME$2,n),i=usePopperScope$2(n),s=useComposedRefs(t,React__namespace.useRef(null),r.onTriggerChange),l=React__namespace.useRef(!1),c=React__namespace.useRef(!1),d=React__namespace.useCallback(()=>l.current=!1,[]);return React__namespace.useEffect(()=>()=>document.removeEventListener("pointerup",d),[d]),jsxRuntime.exports.jsx(Anchor,{asChild:!0,...i,children:jsxRuntime.exports.jsx(Primitive.button,{"aria-describedby":r.open?r.contentId:void 0,"data-state":r.stateAttribute,...o,ref:s,onPointerMove:composeEventHandlers(e.onPointerMove,e=>{"touch"!==e.pointerType&&(c.current||a.isPointerInTransitRef.current||(r.onTriggerEnter(),c.current=!0))}),onPointerLeave:composeEventHandlers(e.onPointerLeave,()=>{r.onTriggerLeave(),c.current=!1}),onPointerDown:composeEventHandlers(e.onPointerDown,()=>{r.open&&r.onClose(),l.current=!0,document.addEventListener("pointerup",d,{once:!0})}),onFocus:composeEventHandlers(e.onFocus,()=>{l.current||r.onOpen()}),onBlur:composeEventHandlers(e.onBlur,r.onClose),onClick:composeEventHandlers(e.onClick,r.onClose)})})});TooltipTrigger.displayName=TRIGGER_NAME$2;var PORTAL_NAME$3="TooltipPortal",[PortalProvider$2,usePortalContext$2]=createTooltipContext(PORTAL_NAME$3,{forceMount:void 0}),TooltipPortal=e=>{const{__scopeTooltip:t,forceMount:n,children:o,container:r}=e,a=useTooltipContext(PORTAL_NAME$3,t);return jsxRuntime.exports.jsx(PortalProvider$2,{scope:t,forceMount:n,children:jsxRuntime.exports.jsx(Presence,{present:n||a.open,children:jsxRuntime.exports.jsx(Portal$3,{asChild:!0,container:r,children:o})})})};TooltipPortal.displayName=PORTAL_NAME$3;var CONTENT_NAME$3="TooltipContent",TooltipContent=React__namespace.forwardRef((e,t)=>{const n=usePortalContext$2(CONTENT_NAME$3,e.__scopeTooltip),{forceMount:o=n.forceMount,side:r="top",...a}=e,i=useTooltipContext(CONTENT_NAME$3,e.__scopeTooltip);return jsxRuntime.exports.jsx(Presence,{present:o||i.open,children:i.disableHoverableContent?jsxRuntime.exports.jsx(TooltipContentImpl,{side:r,...a,ref:t}):jsxRuntime.exports.jsx(TooltipContentHoverable,{side:r,...a,ref:t})})}),TooltipContentHoverable=React__namespace.forwardRef((e,t)=>{const n=useTooltipContext(CONTENT_NAME$3,e.__scopeTooltip),o=useTooltipProviderContext(CONTENT_NAME$3,e.__scopeTooltip),r=React__namespace.useRef(null),a=useComposedRefs(t,r),[i,s]=React__namespace.useState(null),{trigger:l,onClose:c}=n,d=r.current,{onPointerInTransitChange:u}=o,f=React__namespace.useCallback(()=>{s(null),u(!1)},[u]),p=React__namespace.useCallback((e,t)=>{const n=e.currentTarget,o={x:e.clientX,y:e.clientY},r=getHull([...getPaddedExitPoints(o,getExitSideFromRect(o,n.getBoundingClientRect())),...getPointsFromRect(t.getBoundingClientRect())]);s(r),u(!0)},[u]);return React__namespace.useEffect(()=>()=>f(),[f]),React__namespace.useEffect(()=>{if(l&&d){const e=e=>p(e,d),t=e=>p(e,l);return l.addEventListener("pointerleave",e),d.addEventListener("pointerleave",t),()=>{l.removeEventListener("pointerleave",e),d.removeEventListener("pointerleave",t)}}},[l,d,p,f]),React__namespace.useEffect(()=>{if(i){const e=e=>{const t=e.target,n={x:e.clientX,y:e.clientY},o=l?.contains(t)||d?.contains(t),r=!isPointInPolygon$1(n,i);o?f():r&&(f(),c())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[l,d,i,c,f]),jsxRuntime.exports.jsx(TooltipContentImpl,{...e,ref:a})}),[VisuallyHiddenContentContextProvider,useVisuallyHiddenContentContext]=createTooltipContext(TOOLTIP_NAME,{isInside:!1}),Slottable=createSlottable("TooltipContent"),TooltipContentImpl=React__namespace.forwardRef((e,t)=>{const{__scopeTooltip:n,children:o,"aria-label":r,onEscapeKeyDown:a,onPointerDownOutside:i,...s}=e,l=useTooltipContext(CONTENT_NAME$3,n),c=usePopperScope$2(n),{onClose:d}=l;return React__namespace.useEffect(()=>(document.addEventListener(TOOLTIP_OPEN,d),()=>document.removeEventListener(TOOLTIP_OPEN,d)),[d]),React__namespace.useEffect(()=>{if(l.trigger){const e=e=>{const t=e.target;t?.contains(l.trigger)&&d()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[l.trigger,d]),jsxRuntime.exports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:i,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:jsxRuntime.exports.jsxs(Content$1,{"data-state":l.stateAttribute,...c,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[jsxRuntime.exports.jsx(Slottable,{children:o}),jsxRuntime.exports.jsx(VisuallyHiddenContentContextProvider,{scope:n,isInside:!0,children:jsxRuntime.exports.jsx(Root$1,{id:l.contentId,role:"tooltip",children:r||o})})]})})});TooltipContent.displayName=CONTENT_NAME$3;var ARROW_NAME$3="TooltipArrow",TooltipArrow=React__namespace.forwardRef((e,t)=>{const{__scopeTooltip:n,...o}=e,r=usePopperScope$2(n);return useVisuallyHiddenContentContext(ARROW_NAME$3,n).isInside?null:jsxRuntime.exports.jsx(Arrow,{...r,...o,ref:t})});function getExitSideFromRect(e,t){const n=Math.abs(t.top-e.y),o=Math.abs(t.bottom-e.y),r=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,o,r,a)){case a:return"left";case r:return"right";case n:return"top";case o:return"bottom";default:throw new Error("unreachable")}}function getPaddedExitPoints(e,t,n=5){const o=[];switch(t){case"top":o.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":o.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":o.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":o.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return o}function getPointsFromRect(e){const{top:t,right:n,bottom:o,left:r}=e;return[{x:r,y:t},{x:n,y:t},{x:n,y:o},{x:r,y:o}]}function isPointInPolygon$1(e,t){const{x:n,y:o}=e;let r=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){const i=t[e],s=t[a],l=i.x,c=i.y,d=s.x,u=s.y;c>o!=u>o&&n<(d-l)*(o-c)/(u-c)+l&&(r=!r)}return r}function getHull(e){const t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0),getHullPresorted(t)}function getHullPresorted(e){if(e.length<=1)return e.slice();const t=[];for(let n=0;n<e.length;n++){const o=e[n];for(;t.length>=2;){const e=t[t.length-1],n=t[t.length-2];if(!((e.x-n.x)*(o.y-n.y)>=(e.y-n.y)*(o.x-n.x)))break;t.pop()}t.push(o)}t.pop();const n=[];for(let t=e.length-1;t>=0;t--){const o=e[t];for(;n.length>=2;){const e=n[n.length-1],t=n[n.length-2];if(!((e.x-t.x)*(o.y-t.y)>=(e.y-t.y)*(o.x-t.x)))break;n.pop()}n.push(o)}return n.pop(),1===t.length&&1===n.length&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}TooltipArrow.displayName=ARROW_NAME$3;var Root3$1=Tooltip$1,Trigger$1=TooltipTrigger,Portal$2=TooltipPortal,Content2$3=TooltipContent;const KEYS={alt:()=>({title:"Alt",key:"⌥"}),mod:()=>isApple()?{title:"Command",key:"⌘"}:{title:"Ctrl",key:"⌃"},shift:()=>({title:"Shift",key:"⇧"}),enter:()=>({title:"Enter",key:"⏎"})},Tooltip=React.forwardRef(({children:e,content:t,multiline:n,className:o,...r},a)=>{const{portalContainer:i}=useLiveblocksUIConfig();return jsxRuntime.exports.jsxs(Root3$1,{disableHoverableContent:!0,children:[jsxRuntime.exports.jsx(Trigger$1,{asChild:!0,ref:a,children:e}),jsxRuntime.exports.jsx(Portal$2,{container:i,children:jsxRuntime.exports.jsx(Content2$3,{className:classNames("lb-root lb-portal lb-tooltip",n&&"lb-tooltip:multiline",o),side:"top",align:"center",sideOffset:FLOATING_ELEMENT_SIDE_OFFSET,collisionPadding:FLOATING_ELEMENT_COLLISION_PADDING,...r,children:t})})]})}),ShortcutTooltip=React.forwardRef(({children:e,content:t,shortcut:n,...o},r)=>jsxRuntime.exports.jsx(Tooltip,{content:jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[t,n&&jsxRuntime.exports.jsx("kbd",{className:"lb-tooltip-shortcut",children:n})]}),...o,ref:r,children:e}));function ShortcutTooltipKey({name:e,...t}){const{title:n,key:o}=React.useMemo(()=>KEYS[e]?.(),[e]);return jsxRuntime.exports.jsx("abbr",{title:n,...t,children:o})}const MAX_DISPLAYED_MEDIA_SIZE=62914560,fileExtensionRegex=/^(.+?)(\.[^.]+)?$/;function splitFileName(e){const t=e.match(fileExtensionRegex);return{base:t?.[1]??e,extension:t?.[2]}}function getAttachmentIconGlyph(e){return"application/zip"===e||"application/gzip"===e||"application/vnd.rar"===e||"application/x-rar-compressed"===e||"application/x-7z-compressed"===e||"application/x-zip-compressed"===e||"application/x-tar"===e||"application/x-bzip"===e||"application/x-bzip2"===e?jsxRuntime.exports.jsx("path",{d:"M13 15h2v1h-1.5a.5.5 0 0 0 0 1H15v1h-1.5a.5.5 0 0 0 0 1H15v1h-1.5a.5.5 0 0 0 0 1h1a.5.5 0 0 0 .5-.5V20h1.5a.5.5 0 0 0 0-1H15v-1h1.5a.5.5 0 0 0 0-1H15v-1h1.5a.5.5 0 0 0 .5-.5V15a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2Z"}):e.startsWith("text/")||e.startsWith("font/")||e.startsWith("application/")?jsxRuntime.exports.jsx("path",{d:"M10 16a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h8a.5.5 0 0 1 0 1h-8a.5.5 0 0 1-.5-.5Z"}):e.startsWith("image/")?jsxRuntime.exports.jsx("path",{d:"M12 16h6a1 1 0 0 1 1 1v3l-1.293-1.293a1 1 0 0 0-1.414 0L14.09 20.91l-.464-.386a1 1 0 0 0-1.265-.013l-1.231.985A.995.995 0 0 1 11 21v-4a1 1 0 0 1 1-1Zm-2 1a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2v-4Zm3 2a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"}):e.startsWith("video/")?jsxRuntime.exports.jsx("path",{d:"M12 15.71a1 1 0 0 1 1.49-.872l4.96 2.79a1 1 0 0 1 0 1.744l-4.96 2.79A1 1 0 0 1 12 21.29v-5.58Z"}):e.startsWith("audio/")?jsxRuntime.exports.jsx("path",{d:"M15 15a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 1 0v-7a.5.5 0 0 0-.5-.5Zm-2.5 2.5a.5.5 0 0 1 1 0v3a.5.5 0 0 1-1 0v-3Zm-2 1a.5.5 0 0 1 1 0v1a.5.5 0 0 1-1 0v-1Zm6-1a.5.5 0 0 1 1 0v3a.5.5 0 0 1-1 0v-3ZM19 16a.5.5 0 0 0-.5.5v5a.5.5 0 0 0 1 0v-5a.5.5 0 0 0-.5-.5Z"}):null}const AttachmentFileIcon=React.memo(({mimeType:e})=>{const t=React.useMemo(()=>getAttachmentIconGlyph(e),[e]);return jsxRuntime.exports.jsxs("svg",{className:"lb-attachment-icon",width:30,height:30,viewBox:"0 0 30 30",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.exports.jsx("path",{d:"M6 5a2 2 0 0 1 2-2h5.843a4 4 0 0 1 2.829 1.172l6.156 6.156A4 4 0 0 1 24 13.157V25a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V5Z",className:"lb-attachment-icon-shadow"}),jsxRuntime.exports.jsx("path",{d:"M6 5a2 2 0 0 1 2-2h5.843a4 4 0 0 1 2.829 1.172l6.156 6.156A4 4 0 0 1 24 13.157V25a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V5Z",className:"lb-attachment-icon-background"}),jsxRuntime.exports.jsx("path",{d:"M14.382 3.037a4 4 0 0 1 2.29 1.135l6.156 6.157a4 4 0 0 1 1.136 2.289A2 2 0 0 0 22 11h-4a2 2 0 0 1-2-2V5a2 2 0 0 0-1.618-1.963Z",className:"lb-attachment-icon-fold"}),t&&jsxRuntime.exports.jsx("g",{className:"lb-attachment-icon-glyph",children:t})]})});function AttachmentImagePreview({attachment:e,markPreviewAsUnsupported:t,roomId:n}){const{url:o}=useRoomAttachmentUrl(e.id,n),[r,a]=React.useState(!1),i=React.useCallback(()=>{a(!0)},[]);return jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[r?null:jsxRuntime.exports.jsx(SpinnerIcon,{}),o?jsxRuntime.exports.jsx("div",{className:"lb-attachment-preview-media","data-hidden":r?void 0:"",children:jsxRuntime.exports.jsx("img",{src:o,loading:"lazy",onLoad:i,onError:t})}):null]})}function AttachmentVideoPreview({attachment:e,markPreviewAsUnsupported:t,roomId:n}){const{url:o}=useRoomAttachmentUrl(e.id,n),[r,a]=React.useState(!1),i=React.useCallback(()=>{a(!0)},[]);return jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[r?null:jsxRuntime.exports.jsx(SpinnerIcon,{}),o?jsxRuntime.exports.jsx("div",{className:"lb-attachment-preview-media","data-hidden":r?void 0:"",children:jsxRuntime.exports.jsx("video",{src:o,onLoadedData:i,onError:t})}):null]})}function AttachmentPreview({attachment:e,allowMediaPreview:t=!0,roomId:n}){const[o,r]=React.useState(!1),a="attachment"===e.type||"uploaded"===e.status;function i(){r(!0)}if(!o&&t&&a&&e.size<=MAX_DISPLAYED_MEDIA_SIZE){if(e.mimeType.startsWith("image/"))return jsxRuntime.exports.jsx(AttachmentImagePreview,{attachment:e,markPreviewAsUnsupported:i,roomId:n});if(e.mimeType.startsWith("video/"))return jsxRuntime.exports.jsx(AttachmentVideoPreview,{attachment:e,markPreviewAsUnsupported:i,roomId:n})}return jsxRuntime.exports.jsx(AttachmentFileIcon,{mimeType:e.mimeType})}function AttachmentName({attachment:e}){const{base:t,extension:n}=React.useMemo(()=>splitFileName(e.name),[e.name]);return jsxRuntime.exports.jsxs("span",{className:"lb-attachment-name",title:e.name,children:[jsxRuntime.exports.jsx("span",{className:"lb-attachment-name-base",children:t}),n&&jsxRuntime.exports.jsx("span",{className:"lb-attachment-name-extension",children:n})]})}function useClickOnKeyDown(e){return React.useCallback(t=>{if(e?.(t),!t.isDefaultPrevented()&&("Enter"===t.key||" "===t.key)){t.preventDefault();const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});t.target.dispatchEvent(e)}},[e])}function useAttachmentContent(e,t){const n=useOverrides(t),o=useComposerAttachmentsContextOrNull(),r=Boolean(o),a=o?.maxAttachmentSize,i="localAttachment"===e.type?e.status:void 0,s="uploading"===i,l="error"===i;let c;c="localAttachment"===e.type&&"error"===e.status?e.error instanceof AttachmentTooLargeError?"server"===e.error.origin?n.ATTACHMENT_TOO_LARGE():n.ATTACHMENT_TOO_LARGE(a?formatFileSize(a,n.locale):void 0):n.ATTACHMENT_ERROR(e.error):formatFileSize(e.size,n.locale);return{isUploading:s,isError:l,description:c,deleteLabel:r?n.COMPOSER_REMOVE_ATTACHMENT:n.COMMENT_DELETE_ATTACHMENT}}function MediaAttachment({attachment:e,overrides:t,onClick:n,onDeleteClick:o,preventFocusOnDelete:r,allowMediaPreview:a=!0,roomId:i,className:s,onKeyDown:l,...c}){const{isUploading:d,isError:u,description:f,deleteLabel:p}=useAttachmentContent(e,t),_=React.useCallback(e=>{r&&e.preventDefault()},[r]),m=useClickOnKeyDown(l);return jsxRuntime.exports.jsxs("div",{className:classNames("lb-attachment lb-media-attachment",s),"data-error":u?"":void 0,...c,role:n?"button":void 0,onClick:n,tabIndex:n?0:-1,onKeyDown:n?m:void 0,children:[jsxRuntime.exports.jsx("div",{className:"lb-attachment-preview",children:d?jsxRuntime.exports.jsx(SpinnerIcon,{}):u?jsxRuntime.exports.jsx(WarningIcon,{}):jsxRuntime.exports.jsx(AttachmentPreview,{attachment:e,allowMediaPreview:a,roomId:i})}),jsxRuntime.exports.jsxs("div",{className:"lb-attachment-details",children:[jsxRuntime.exports.jsx(AttachmentName,{attachment:e}),jsxRuntime.exports.jsx("span",{className:"lb-attachment-description",title:f,children:f})]}),o&&jsxRuntime.exports.jsx(Tooltip,{content:p,children:jsxRuntime.exports.jsx("button",{type:"button",className:"lb-attachment-delete",onClick:o,onPointerDown:_,"aria-label":p,children:jsxRuntime.exports.jsx(CrossIcon,{})})})]})}function FileAttachment({attachment:e,overrides:t,onClick:n,onDeleteClick:o,preventFocusOnDelete:r,allowMediaPreview:a=!0,roomId:i,className:s,onKeyDown:l,...c}){const{isUploading:d,isError:u,description:f,deleteLabel:p}=useAttachmentContent(e,t),_=React.useCallback(e=>{r&&e.preventDefault()},[r]),m=useClickOnKeyDown(l);return jsxRuntime.exports.jsxs("div",{className:classNames("lb-attachment lb-file-attachment",s),"data-error":u?"":void 0,...c,role:n?"button":void 0,onClick:n,tabIndex:n?0:-1,onKeyDown:n?m:void 0,children:[jsxRuntime.exports.jsx("div",{className:"lb-attachment-preview",children:d?jsxRuntime.exports.jsx(SpinnerIcon,{}):u?jsxRuntime.exports.jsx(WarningIcon,{}):jsxRuntime.exports.jsx(AttachmentPreview,{attachment:e,allowMediaPreview:a,roomId:i})}),jsxRuntime.exports.jsxs("div",{className:"lb-attachment-details",children:[jsxRuntime.exports.jsx(AttachmentName,{attachment:e}),jsxRuntime.exports.jsx("span",{className:"lb-attachment-description",title:f,children:f})]}),o&&jsxRuntime.exports.jsx(Tooltip,{content:p,children:jsxRuntime.exports.jsx("button",{type:"button",className:"lb-attachment-delete",onClick:o,onPointerDown:_,"aria-label":p,children:jsxRuntime.exports.jsx(CrossIcon,{})})})]})}function separateMediaAttachments(e){const t=[],n=[];for(const o of e)(o.mimeType.startsWith("image/")||o.mimeType.startsWith("video/"))&&o.size<=MAX_DISPLAYED_MEDIA_SIZE?t.push(o):n.push(o);return{mediaAttachments:t,fileAttachments:n}}function Attribution({className:e,...t}){return jsxRuntime.exports.jsx("a",{href:"https://liveblocks.io",target:"_blank",rel:"noopener noreferrer",className:classNames("lb-composer-attribution",e),...t,children:jsxRuntime.exports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 72","aria-label":"Made with Liveblocks",children:jsxRuntime.exports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M86 10h-8v50h8V10Zm16 14h-8v36h8V24Zm0-15h-8v9h8V9Zm13 15h-9l12 36h10l13-36h-9l-9 28-8-28Zm44-1c-11 0-18 8-18 19s7 19 18 19c8 0 15-4 17-13h-8c-1 4-5 6-9 6-6 0-9-3-9-10h27c0-10-6-21-18-21Zm0 7c5 0 9 3 9 8h-18c0-5 4-8 9-8Zm42-7c-4 0-8 2-11 6V10h-8v50h8v-5c3 4 7 6 11 6 11 0 16-9 16-19s-5-19-16-19Zm-2 32c-7 0-9-7-9-13s2-13 9-13 9 7 9 13-2 13-9 13Zm32-45h-8v50h8V10Zm24 51c11 0 18-8 18-19s-8-19-18-19c-11 0-19 8-19 19s7 19 19 19Zm0-6c-8 0-10-7-10-13s2-13 10-13c7 0 9 7 9 13s-2 13-9 13Zm39 6c8 0 15-4 17-12l-8-1c-2 4-4 6-9 6-7 0-9-6-9-12s2-12 9-12c5 0 8 3 8 7l9-1c-2-8-9-13-17-13-11 0-18 9-18 19 0 11 7 19 18 19Zm30-14 4-4 10 17h10l-15-23 15-13h-11l-13 13V10h-9v50h9V47Zm39 14c8 0 16-3 16-12 0-8-8-10-15-11-2-1-7-1-7-5 0-3 3-4 6-4 4 0 7 3 7 7l8-1c-1-9-8-12-15-12s-15 3-15 11 9 10 15 11c3 1 8 2 8 5 0 4-4 5-7 5-5 0-8-3-9-7l-8 1c1 8 9 12 16 12ZM41 27H0l12 12v17l29-29ZM20 60h40L48 48V32L20 60Z",fill:"currentColor"})})})}function getInitials(e){return e.trim().split(" ").reduce((e,t,n,o)=>(0!==n&&n!==o.length-1||(e+=t.charAt(0).toLocaleUpperCase()),e),"")}function Avatar({userId:e,className:t,...n}){const{user:o,isLoading:r}=_useUser(e),a=React.useMemo(()=>o?.name,[o]),i=React.useMemo(()=>o?.avatar,[o]),s=React.useMemo(()=>a?getInitials(a):void 0,[a]),l=React.useMemo(()=>r||o?void 0:getInitials(e),[r,o,e]);return jsxRuntime.exports.jsxs("div",{className:classNames("lb-avatar",t),"data-loading":r?"":void 0,...n,children:[i&&jsxRuntime.exports.jsx("img",{className:"lb-avatar-image",src:i,alt:a}),s?jsxRuntime.exports.jsx("span",{className:"lb-avatar-fallback","aria-hidden":!0,children:s}):l?jsxRuntime.exports.jsx("span",{className:"lb-avatar-fallback","aria-label":e,title:e,children:l}):null]})}const Button=React.forwardRef(({variant:e="default",size:t="default",disableable:n=!0,className:o,...r},a)=>jsxRuntime.exports.jsx("button",{type:"button",className:classNames("lb-button",!n&&"lb-button:non-disableable",o),"data-variant":e,"data-size":t,...r,ref:a}));var count=0;function useFocusGuards(){React__namespace.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??createFocusGuard()),document.body.insertAdjacentElement("beforeend",e[1]??createFocusGuard()),count++,()=>{1===count&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),count--}},[])}function createFocusGuard(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var AUTOFOCUS_ON_MOUNT="focusScope.autoFocusOnMount",AUTOFOCUS_ON_UNMOUNT="focusScope.autoFocusOnUnmount",EVENT_OPTIONS$1={bubbles:!1,cancelable:!0},FOCUS_SCOPE_NAME="FocusScope",FocusScope=React__namespace.forwardRef((e,t)=>{const{loop:n=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:a,...i}=e,[s,l]=React__namespace.useState(null),c=useCallbackRef$1(r),d=useCallbackRef$1(a),u=React__namespace.useRef(null),f=useComposedRefs(t,e=>l(e)),p=React__namespace.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;React__namespace.useEffect(()=>{if(o){let e=function(e){if(p.paused||!s)return;const t=e.target;s.contains(t)?u.current=t:focus(u.current,{select:!0})},t=function(e){if(p.paused||!s)return;const t=e.relatedTarget;null!==t&&(s.contains(t)||focus(u.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(const t of e)t.removedNodes.length>0&&focus(s)};document.addEventListener("focusin",e),document.addEventListener("focusout",t);const o=new MutationObserver(n);return s&&o.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),o.disconnect()}}},[o,s,p.paused]),React__namespace.useEffect(()=>{if(s){focusScopesStack.add(p);const e=document.activeElement;if(!s.contains(e)){const t=new CustomEvent(AUTOFOCUS_ON_MOUNT,EVENT_OPTIONS$1);s.addEventListener(AUTOFOCUS_ON_MOUNT,c),s.dispatchEvent(t),t.defaultPrevented||(focusFirst$2(removeLinks(getTabbableCandidates(s)),{select:!0}),document.activeElement===e&&focus(s))}return()=>{s.removeEventListener(AUTOFOCUS_ON_MOUNT,c),setTimeout(()=>{const t=new CustomEvent(AUTOFOCUS_ON_UNMOUNT,EVENT_OPTIONS$1);s.addEventListener(AUTOFOCUS_ON_UNMOUNT,d),s.dispatchEvent(t),t.defaultPrevented||focus(e??document.body,{select:!0}),s.removeEventListener(AUTOFOCUS_ON_UNMOUNT,d),focusScopesStack.remove(p)},0)}}},[s,c,d,p]);const _=React__namespace.useCallback(e=>{if(!n&&!o)return;if(p.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,r=document.activeElement;if(t&&r){const t=e.currentTarget,[o,a]=getTabbableEdges(t);o&&a?e.shiftKey||r!==a?e.shiftKey&&r===o&&(e.preventDefault(),n&&focus(a,{select:!0})):(e.preventDefault(),n&&focus(o,{select:!0})):r===t&&e.preventDefault()}},[n,o,p.paused]);return jsxRuntime.exports.jsx(Primitive.div,{tabIndex:-1,...i,ref:f,onKeyDown:_})});function focusFirst$2(e,{select:t=!1}={}){const n=document.activeElement;for(const o of e)if(focus(o,{select:t}),document.activeElement!==n)return}function getTabbableEdges(e){const t=getTabbableCandidates(e);return[findVisible(t,e),findVisible(t.reverse(),e)]}function getTabbableCandidates(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function findVisible(e,t){for(const n of e)if(!isHidden(n,{upTo:t}))return n}function isHidden(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(void 0!==t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function isSelectableInput(e){return e instanceof HTMLInputElement&&"select"in e}function focus(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&isSelectableInput(e)&&t&&e.select()}}FocusScope.displayName=FOCUS_SCOPE_NAME;var focusScopesStack=createFocusScopesStack();function createFocusScopesStack(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=arrayRemove(e,t),e.unshift(t)},remove(t){e=arrayRemove(e,t),e[0]?.resume()}}}function arrayRemove(e,t){const n=[...e],o=n.indexOf(t);return-1!==o&&n.splice(o,1),n}function removeLinks(e){return e.filter(e=>"A"!==e.tagName)}var getDefaultParent=function(e){return"undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={},lockCount=0,unwrapHost=function(e){return e&&(e.host||unwrapHost(e.parentNode))},correctTargets=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=unwrapHost(t);return n&&e.contains(n)?n:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)}).filter(function(e){return Boolean(e)})},applyAttributeToOthers=function(e,t,n,o){var r=correctTargets(t,Array.isArray(e)?e:[e]);markerMap[n]||(markerMap[n]=new WeakMap);var a=markerMap[n],i=[],s=new Set,l=new Set(r),c=function(e){e&&!s.has(e)&&(s.add(e),c(e.parentNode))};r.forEach(c);var d=function(e){e&&!l.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))d(e);else try{var t=e.getAttribute(o),r=null!==t&&"false"!==t,l=(counterMap.get(e)||0)+1,c=(a.get(e)||0)+1;counterMap.set(e,l),a.set(e,c),i.push(e),1===l&&r&&uncontrolledNodes.set(e,!0),1===c&&e.setAttribute(n,"true"),r||e.setAttribute(o,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return d(t),s.clear(),lockCount++,function(){i.forEach(function(e){var t=counterMap.get(e)-1,r=a.get(e)-1;counterMap.set(e,t),a.set(e,r),t||(uncontrolledNodes.has(e)||e.removeAttribute(o),uncontrolledNodes.delete(e)),r||e.removeAttribute(n)}),--lockCount||(counterMap=new WeakMap,counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={})}},hideOthers=function(e,t,n){void 0===n&&(n="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),r=t||getDefaultParent(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live], script"))),applyAttributeToOthers(o,r,n,"aria-hidden")):function(){return null}},__assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},__assign.apply(this,arguments)};function __rest(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}function __awaiter(e,t,n,o){return new(n||(n=Promise))(function(r,a){function i(e){try{l(o.next(e))}catch(e){a(e)}}function s(e){try{l(o.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,s)}l((o=o.apply(e,t||[])).next())})}function __generator(e,t){var n,o,r,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=s(0),i.throw=s(1),i.return=s(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,o&&(r=2&s[0]?o.return:s[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,s[1])).done)return r;switch(o=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,o=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(r=a.trys,(r=r.length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){a.label=s[1];break}if(6===s[0]&&a.label<r[1]){a.label=r[1],r=s;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(s);break}r[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],o=0}finally{n=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}function __read(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,r,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(o=a.next()).done;)i.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return i}function __spreadArray(e,t,n){if(n||2===arguments.length)for(var o,r=0,a=t.length;r<a;r++)!o&&r in t||(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var zeroRightClassName="right-scroll-bar-position",fullWidthClassName="width-before-scroll-bar",noScrollbarsClassName="with-scroll-bars-hidden",removedBarSizeVariable="--removed-body-scroll-bar-size";function assignRef(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}function useCallbackRef(e,t){var n=React.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var useIsomorphicLayoutEffect="undefined"!=typeof window?React__namespace.useLayoutEffect:React__namespace.useEffect,currentValues=new WeakMap;function useMergeRefs(e,t){var n=useCallbackRef(t||null,function(t){return e.forEach(function(e){return assignRef(e,t)})});return useIsomorphicLayoutEffect(function(){var t=currentValues.get(n);if(t){var o=new Set(t),r=new Set(e),a=n.current;o.forEach(function(e){r.has(e)||assignRef(e,null)}),r.forEach(function(e){o.has(e)||assignRef(e,a)})}currentValues.set(n,e)},[e]),n}function ItoI(e){return e}function innerCreateMedium(e,t){void 0===t&&(t=ItoI);var n=[],o=!1,r={read:function(){if(o)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var r=t(e,o);return n.push(r),function(){n=n.filter(function(e){return e!==r})}},assignSyncMedium:function(e){for(o=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){o=!0;var t=[];if(n.length){var r=n;n=[],r.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),n={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),n}}}};return r}function createSidecarMedium(e){void 0===e&&(e={});var t=innerCreateMedium(null);return t.options=__assign({async:!0,ssr:!1},e),t}Object.prototype.toString.call("undefined"!=typeof process?process:0);var SideCar$1=function(e){var t=e.sideCar,n=__rest(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var o=t.read();if(!o)throw new Error("Sidecar medium not found");return React__namespace.createElement(o,__assign({},n))};function exportSidecar(e,t){return e.useMedium(t),SideCar$1}SideCar$1.isSideCarExport=!0;var effectCar=createSidecarMedium(),nothing=function(){},RemoveScroll=React__namespace.forwardRef(function(e,t){var n=React__namespace.useRef(null),o=React__namespace.useState({onScrollCapture:nothing,onWheelCapture:nothing,onTouchMoveCapture:nothing}),r=o[0],a=o[1],i=e.forwardProps,s=e.children,l=e.className,c=e.removeScrollBar,d=e.enabled,u=e.shards,f=e.sideCar,p=e.noRelative,_=e.noIsolation,m=e.inert,h=e.allowPinchZoom,g=e.as,b=void 0===g?"div":g,v=e.gapMode,y=__rest(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),E=f,w=useMergeRefs([n,t]),C=__assign(__assign({},y),r);return React__namespace.createElement(React__namespace.Fragment,null,d&&React__namespace.createElement(E,{sideCar:effectCar,removeScrollBar:c,shards:u,noRelative:p,noIsolation:_,inert:m,setCallbacks:a,allowPinchZoom:!!h,lockRef:n,gapMode:v}),i?React__namespace.cloneElement(React__namespace.Children.only(s),__assign(__assign({},C),{ref:w})):React__namespace.createElement(b,__assign({},C,{className:l,ref:w}),s))});RemoveScroll.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},RemoveScroll.classNames={fullWidth:fullWidthClassName,zeroRight:zeroRightClassName};var getNonce=function(){if("undefined"!=typeof __webpack_nonce__)return __webpack_nonce__};function makeStyleTag(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=getNonce();return t&&e.setAttribute("nonce",t),e}function injectStyles(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function insertStyleTag(e){(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}var stylesheetSingleton=function(){var e=0,t=null;return{add:function(n){0==e&&(t=makeStyleTag())&&(injectStyles(t,n),insertStyleTag(t)),e++},remove:function(){! --e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},styleHookSingleton=function(){var e=stylesheetSingleton();return function(t,n){React__namespace.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},styleSingleton=function(){var e=styleHookSingleton();return function(t){var n=t.styles,o=t.dynamic;return e(n,o),null}},zeroGap={left:0,top:0,right:0,gap:0},parse=function(e){return parseInt(e||"",10)||0},getOffset=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],o=t["padding"===e?"paddingTop":"marginTop"],r=t["padding"===e?"paddingRight":"marginRight"];return[parse(n),parse(o),parse(r)]},getGapWidth=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return zeroGap;var t=getOffset(e),n=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-n+t[2]-t[0])}},Style=styleSingleton(),lockAttribute="data-scroll-locked",getStyles=function(e,t,n,o){var r=e.left,a=e.top,i=e.right,s=e.gap;return void 0===n&&(n="margin"),"\n .".concat(noScrollbarsClassName," {\n overflow: hidden ").concat(o,";\n padding-right: ").concat(s,"px ").concat(o,";\n }\n body[").concat(lockAttribute,"] {\n overflow: hidden ").concat(o,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(o,";"),"margin"===n&&"\n padding-left: ".concat(r,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(s,"px ").concat(o,";\n "),"padding"===n&&"padding-right: ".concat(s,"px ").concat(o,";")].filter(Boolean).join(""),"\n }\n \n .").concat(zeroRightClassName," {\n right: ").concat(s,"px ").concat(o,";\n }\n \n .").concat(fullWidthClassName," {\n margin-right: ").concat(s,"px ").concat(o,";\n }\n \n .").concat(zeroRightClassName," .").concat(zeroRightClassName," {\n right: 0 ").concat(o,";\n }\n \n .").concat(fullWidthClassName," .").concat(fullWidthClassName," {\n margin-right: 0 ").concat(o,";\n }\n \n body[").concat(lockAttribute,"] {\n ").concat(removedBarSizeVariable,": ").concat(s,"px;\n }\n")},getCurrentUseCounter=function(){var e=parseInt(document.body.getAttribute(lockAttribute)||"0",10);return isFinite(e)?e:0},useLockAttribute=function(){React__namespace.useEffect(function(){return document.body.setAttribute(lockAttribute,(getCurrentUseCounter()+1).toString()),function(){var e=getCurrentUseCounter()-1;e<=0?document.body.removeAttribute(lockAttribute):document.body.setAttribute(lockAttribute,e.toString())}},[])},RemoveScrollBar=function(e){var t=e.noRelative,n=e.noImportant,o=e.gapMode,r=void 0===o?"margin":o;useLockAttribute();var a=React__namespace.useMemo(function(){return getGapWidth(r)},[r]);return React__namespace.createElement(Style,{styles:getStyles(a,!t,r,n?"":"!important")})},passiveSupported=!1;if("undefined"!=typeof window)try{var options=Object.defineProperty({},"passive",{get:function(){return passiveSupported=!0,!0}});window.addEventListener("test",options,options),window.removeEventListener("test",options,options)}catch(e){passiveSupported=!1}var nonPassive=!!passiveSupported&&{passive:!1},alwaysContainsScroll=function(e){return"TEXTAREA"===e.tagName},elementCanBeScrolled=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&!alwaysContainsScroll(e)&&"visible"===n[t])},elementCouldBeVScrolled=function(e){return elementCanBeScrolled(e,"overflowY")},elementCouldBeHScrolled=function(e){return elementCanBeScrolled(e,"overflowX")},locationCouldBeScrolled=function(e,t){var n=t.ownerDocument,o=t;do{if("undefined"!=typeof ShadowRoot&&o instanceof ShadowRoot&&(o=o.host),elementCouldBeScrolled(e,o)){var r=getScrollVariables(e,o);if(r[1]>r[2])return!0}o=o.parentNode}while(o&&o!==n.body);return!1},getVScrollVariables=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},getHScrollVariables=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},elementCouldBeScrolled=function(e,t){return"v"===e?elementCouldBeVScrolled(t):elementCouldBeHScrolled(t)},getScrollVariables=function(e,t){return"v"===e?getVScrollVariables(t):getHScrollVariables(t)},getDirectionFactor=function(e,t){return"h"===e&&"rtl"===t?-1:1},handleScroll=function(e,t,n,o,r){var a=getDirectionFactor(e,window.getComputedStyle(t).direction),i=a*o,s=n.target,l=t.contains(s),c=!1,d=i>0,u=0,f=0;do{if(!s)break;var p=getScrollVariables(e,s),_=p[0],m=p[1]-p[2]-a*_;(_||m)&&elementCouldBeScrolled(e,s)&&(u+=m,f+=_);var h=s.parentNode;s=h&&h.nodeType===Node.DOCUMENT_FRAGMENT_NODE?h.host:h}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(d&&(r&&Math.abs(u)<1||!r&&i>u)||!d&&(r&&Math.abs(f)<1||!r&&-i>f))&&(c=!0),c},getTouchXY=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},getDeltaXY=function(e){return[e.deltaX,e.deltaY]},extractRef=function(e){return e&&"current"in e?e.current:e},deltaCompare=function(e,t){return e[0]===t[0]&&e[1]===t[1]},generateStyle=function(e){return"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")},idCounter=0,lockStack=[];function RemoveScrollSideCar(e){var t=React__namespace.useRef([]),n=React__namespace.useRef([0,0]),o=React__namespace.useRef(),r=React__namespace.useState(idCounter++)[0],a=React__namespace.useState(styleSingleton)[0],i=React__namespace.useRef(e);React__namespace.useEffect(function(){i.current=e},[e]),React__namespace.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(r));var t=__spreadArray([e.lockRef.current],(e.shards||[]).map(extractRef),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(r))}),function(){document.body.classList.remove("block-interactivity-".concat(r)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(r))})}}},[e.inert,e.lockRef.current,e.shards]);var s=React__namespace.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var r,a=getTouchXY(e),s=n.current,l="deltaX"in e?e.deltaX:s[0]-a[0],c="deltaY"in e?e.deltaY:s[1]-a[1],d=e.target,u=Math.abs(l)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===u&&"range"===d.type)return!1;var f=locationCouldBeScrolled(u,d);if(!f)return!0;if(f?r=u:(r="v"===u?"h":"v",f=locationCouldBeScrolled(u,d)),!f)return!1;if(!o.current&&"changedTouches"in e&&(l||c)&&(o.current=r),!r)return!0;var p=o.current||r;return handleScroll(p,t,e,"h"===p?l:c,!0)},[]),l=React__namespace.useCallback(function(e){var n=e;if(lockStack.length&&lockStack[lockStack.length-1]===a){var o="deltaY"in n?getDeltaXY(n):getTouchXY(n),r=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&deltaCompare(e.delta,o)})[0];if(r&&r.should)n.cancelable&&n.preventDefault();else if(!r){var l=(i.current.shards||[]).map(extractRef).filter(Boolean).filter(function(e){return e.contains(n.target)});(l.length>0?s(n,l[0]):!i.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),c=React__namespace.useCallback(function(e,n,o,r){var a={name:e,delta:n,target:o,should:r,shadowParent:getOutermostShadowParent(o)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),d=React__namespace.useCallback(function(e){n.current=getTouchXY(e),o.current=void 0},[]),u=React__namespace.useCallback(function(t){c(t.type,getDeltaXY(t),t.target,s(t,e.lockRef.current))},[]),f=React__namespace.useCallback(function(t){c(t.type,getTouchXY(t),t.target,s(t,e.lockRef.current))},[]);React__namespace.useEffect(function(){return lockStack.push(a),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:f}),document.addEventListener("wheel",l,nonPassive),document.addEventListener("touchmove",l,nonPassive),document.addEventListener("touchstart",d,nonPassive),function(){lockStack=lockStack.filter(function(e){return e!==a}),document.removeEventListener("wheel",l,nonPassive),document.removeEventListener("touchmove",l,nonPassive),document.removeEventListener("touchstart",d,nonPassive)}},[]);var p=e.removeScrollBar,_=e.inert;return React__namespace.createElement(React__namespace.Fragment,null,_?React__namespace.createElement(a,{styles:generateStyle(r)}):null,p?React__namespace.createElement(RemoveScrollBar,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function getOutermostShadowParent(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var SideCar=exportSidecar(effectCar,RemoveScrollSideCar),ReactRemoveScroll=React__namespace.forwardRef(function(e,t){return React__namespace.createElement(RemoveScroll,__assign({},e,{ref:t,sideCar:SideCar}))});ReactRemoveScroll.classNames=RemoveScroll.classNames;var POPOVER_NAME="Popover",[createPopoverContext,createPopoverScope]=createContextScope(POPOVER_NAME,[createPopperScope]),usePopperScope$1=createPopperScope(),[PopoverProvider,usePopoverContext]=createPopoverContext(POPOVER_NAME),Popover=e=>{const{__scopePopover:t,children:n,open:o,defaultOpen:r,onOpenChange:a,modal:i=!1}=e,s=usePopperScope$1(t),l=React__namespace.useRef(null),[c,d]=React__namespace.useState(!1),[u,f]=useControllableState$1({prop:o,defaultProp:r??!1,onChange:a,caller:POPOVER_NAME});return jsxRuntime.exports.jsx(Root2$2,{...s,children:jsxRuntime.exports.jsx(PopoverProvider,{scope:t,contentId:useId(),triggerRef:l,open:u,onOpenChange:f,onOpenToggle:React__namespace.useCallback(()=>f(e=>!e),[f]),hasCustomAnchor:c,onCustomAnchorAdd:React__namespace.useCallback(()=>d(!0),[]),onCustomAnchorRemove:React__namespace.useCallback(()=>d(!1),[]),modal:i,children:n})})};Popover.displayName=POPOVER_NAME;var ANCHOR_NAME$1="PopoverAnchor",PopoverAnchor=React__namespace.forwardRef((e,t)=>{const{__scopePopover:n,...o}=e,r=usePopoverContext(ANCHOR_NAME$1,n),a=usePopperScope$1(n),{onCustomAnchorAdd:i,onCustomAnchorRemove:s}=r;return React__namespace.useEffect(()=>(i(),()=>s()),[i,s]),jsxRuntime.exports.jsx(Anchor,{...a,...o,ref:t})});PopoverAnchor.displayName=ANCHOR_NAME$1;var TRIGGER_NAME$1="PopoverTrigger",PopoverTrigger=React__namespace.forwardRef((e,t)=>{const{__scopePopover:n,...o}=e,r=usePopoverContext(TRIGGER_NAME$1,n),a=usePopperScope$1(n),i=useComposedRefs(t,r.triggerRef),s=jsxRuntime.exports.jsx(Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":getState(r.open),...o,ref:i,onClick:composeEventHandlers(e.onClick,r.onOpenToggle)});return r.hasCustomAnchor?s:jsxRuntime.exports.jsx(Anchor,{asChild:!0,...a,children:s})});PopoverTrigger.displayName=TRIGGER_NAME$1;var PORTAL_NAME$2="PopoverPortal",[PortalProvider$1,usePortalContext$1]=createPopoverContext(PORTAL_NAME$2,{forceMount:void 0}),PopoverPortal=e=>{const{__scopePopover:t,forceMount:n,children:o,container:r}=e,a=usePopoverContext(PORTAL_NAME$2,t);return jsxRuntime.exports.jsx(PortalProvider$1,{scope:t,forceMount:n,children:jsxRuntime.exports.jsx(Presence,{present:n||a.open,children:jsxRuntime.exports.jsx(Portal$3,{asChild:!0,container:r,children:o})})})};PopoverPortal.displayName=PORTAL_NAME$2;var CONTENT_NAME$2="PopoverContent",PopoverContent=React__namespace.forwardRef((e,t)=>{const n=usePortalContext$1(CONTENT_NAME$2,e.__scopePopover),{forceMount:o=n.forceMount,...r}=e,a=usePopoverContext(CONTENT_NAME$2,e.__scopePopover);return jsxRuntime.exports.jsx(Presence,{present:o||a.open,children:a.modal?jsxRuntime.exports.jsx(PopoverContentModal,{...r,ref:t}):jsxRuntime.exports.jsx(PopoverContentNonModal,{...r,ref:t})})});PopoverContent.displayName=CONTENT_NAME$2;var Slot$1=createSlot("PopoverContent.RemoveScroll"),PopoverContentModal=React__namespace.forwardRef((e,t)=>{const n=usePopoverContext(CONTENT_NAME$2,e.__scopePopover),o=React__namespace.useRef(null),r=useComposedRefs(t,o),a=React__namespace.useRef(!1);return React__namespace.useEffect(()=>{const e=o.current;if(e)return hideOthers(e)},[]),jsxRuntime.exports.jsx(ReactRemoveScroll,{as:Slot$1,allowPinchZoom:!0,children:jsxRuntime.exports.jsx(PopoverContentImpl,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()}),onPointerDownOutside:composeEventHandlers(e.onPointerDownOutside,e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,o=2===t.button||n;a.current=o},{checkForDefaultPrevented:!1}),onFocusOutside:composeEventHandlers(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),PopoverContentNonModal=React__namespace.forwardRef((e,t)=>{const n=usePopoverContext(CONTENT_NAME$2,e.__scopePopover),o=React__namespace.useRef(!1),r=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(PopoverContentImpl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||n.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(r.current=!0));const a=t.target,i=n.triggerRef.current?.contains(a);i&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&r.current&&t.preventDefault()}})}),PopoverContentImpl=React__namespace.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:a,disableOutsidePointerEvents:i,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onInteractOutside:d,...u}=e,f=usePopoverContext(CONTENT_NAME$2,n),p=usePopperScope$1(n);return useFocusGuards(),jsxRuntime.exports.jsx(FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:a,children:jsxRuntime.exports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:d,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onDismiss:()=>f.onOpenChange(!1),children:jsxRuntime.exports.jsx(Content$1,{"data-state":getState(f.open),role:"dialog",id:f.contentId,...p,...u,ref:t,style:{...u.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),CLOSE_NAME="PopoverClose",PopoverClose=React__namespace.forwardRef((e,t)=>{const{__scopePopover:n,...o}=e,r=usePopoverContext(CLOSE_NAME,n);return jsxRuntime.exports.jsx(Primitive.button,{type:"button",...o,ref:t,onClick:composeEventHandlers(e.onClick,()=>r.onOpenChange(!1))})});PopoverClose.displayName=CLOSE_NAME;var ARROW_NAME$2="PopoverArrow",PopoverArrow=React__namespace.forwardRef((e,t)=>{const{__scopePopover:n,...o}=e,r=usePopperScope$1(n);return jsxRuntime.exports.jsx(Arrow,{...r,...o,ref:t})});function getState(e){return e?"open":"closed"}PopoverArrow.displayName=ARROW_NAME$2;var Root2$1=Popover,Trigger=PopoverTrigger,Portal$1=PopoverPortal,Content2$2=PopoverContent;function SearchIcon(e){return jsxRuntime.exports.jsx(Icon,{...e,children:jsxRuntime.exports.jsx("path",{d:"M9 15A6 6 0 1 0 9 3a6 6 0 0 0 0 12Zm7.5 1.5-3.25-3.25"})})}function EmojiPickerLoading({className:e,...t}){return jsxRuntime.exports.jsx("div",{className:classNames("lb-loading lb-emoji-picker-loading",e),...t,children:jsxRuntime.exports.jsx(SpinnerIcon,{})})}function EmojiPickerEmpty({className:e,...t}){const n=useOverrides();return jsxRuntime.exports.jsx("div",{className:classNames("lb-empty lb-emoji-picker-empty",e),...t,children:n.EMOJI_PICKER_EMPTY})}function EmojiPickerError({error:e,className:t,...n}){const o=useOverrides();return jsxRuntime.exports.jsx("div",{className:classNames("lb-error lb-emoji-picker-error",t),...n,children:o.EMOJI_PICKER_ERROR(e)})}function EmojiPickerCategoryHeader({category:e,className:t,...n}){return jsxRuntime.exports.jsx("div",{className:classNames("lb-emoji-picker-category-header",t),...n,children:jsxRuntime.exports.jsx("span",{className:"lb-emoji-picker-category-header-title",children:e})})}function EmojiPickerGrid({children:e,className:t,...n}){return jsxRuntime.exports.jsx("div",{className:classNames("lb-emoji-picker-grid",t),...n,children:e})}function EmojiPickerRow({attributes:e,children:t,className:n,...o}){const r=React.useMemo(()=>0===e.categoryRowIndex,[e.categoryRowIndex]),a=React.useMemo(()=>e.categoryRowIndex===e.categoryRowsCount-1,[e.categoryRowIndex,e.categoryRowsCount]);return jsxRuntime.exports.jsx("div",{className:classNames("lb-emoji-picker-row",n),"data-first":r?"":void 0,"data-last":a?"":void 0,...o,children:t})}function EmojiPickerEmoji({emoji:e,className:t,...n}){return jsxRuntime.exports.jsx("button",{className:classNames("lb-emoji-picker-emoji",t),...n,children:jsxRuntime.exports.jsx(Emoji,{emoji:e})})}const EmojiPicker=React.forwardRef(({onEmojiSelect:e,onOpenChange:t,children:n,className:o,...r},a)=>{const[i,s]=React.useState(!1),{portalContainer:l}=useLiveblocksUIConfig(),c=useOverrides(),d=React.useCallback(e=>{s(e),t?.(e)},[t]),u=React.useCallback(t=>{s(!1),e?.(t)},[e]);return jsxRuntime.exports.jsxs(Root2$1,{open:i,onOpenChange:d,children:[n,jsxRuntime.exports.jsx(Portal$1,{container:l,children:jsxRuntime.exports.jsx(Content2$2,{side:"top",align:"center",sideOffset:FLOATING_ELEMENT_SIDE_OFFSET,collisionPadding:FLOATING_ELEMENT_COLLISION_PADDING,className:classNames("lb-root lb-portal lb-elevation lb-emoji-picker",o),...r,ref:a,children:jsxRuntime.exports.jsxs(EmojiPickerRoot,{onEmojiSelect:u,locale:c.locale,children:[jsxRuntime.exports.jsx("div",{className:"lb-emoji-picker-header",children:jsxRuntime.exports.jsxs("div",{className:"lb-emoji-picker-search-container",children:[jsxRuntime.exports.jsx(EmojiPickerSearch,{className:"lb-emoji-picker-search",placeholder:c.EMOJI_PICKER_SEARCH_PLACEHOLDER,autoFocus:!0}),jsxRuntime.exports.jsx(SearchIcon,{className:"lb-emoji-picker-search-icon"})]})}),jsxRuntime.exports.jsx(EmojiPickerContent,{className:"lb-emoji-picker-content",components:{Loading:EmojiPickerLoading,Empty:EmojiPickerEmpty,Error:EmojiPickerError,CategoryHeader:EmojiPickerCategoryHeader,Grid:EmojiPickerGrid,Row:EmojiPickerRow,Emoji:EmojiPickerEmoji}})]})})})]})});function User({userId:e,replaceSelf:t,className:n,...o}){const r=useCurrentUserId(),{user:a,isLoading:i}=_useUser(e),s=useOverrides(),l=React.useMemo(()=>t&&r===e?s.USER_SELF:a?.name??s.USER_UNKNOWN,[t,r,e,s.USER_SELF,s.USER_UNKNOWN,a?.name]);return jsxRuntime.exports.jsx("span",{className:classNames("lb-name lb-user",n),"data-loading":i?"":void 0,...o,children:i?null:l})}function ComposerInsertMentionEditorAction({label:e,tooltipLabel:t,className:n,onClick:o,...r}){const{createMention:a}=useComposer(),i=React.useCallback(e=>{e.preventDefault()},[]),s=React.useCallback(e=>{o?.(e),e.isDefaultPrevented()||(e.stopPropagation(),a())},[a,o]);return jsxRuntime.exports.jsx(Tooltip,{content:t??e,children:jsxRuntime.exports.jsx(Button,{className:classNames("lb-composer-editor-action",n),onPointerDown:i,onClick:s,"aria-label":e,...r,children:jsxRuntime.exports.jsx(MentionIcon,{className:"lb-button-icon"})})})}function ComposerInsertEmojiEditorAction({label:e,tooltipLabel:t,onPickerOpenChange:n,className:o,...r}){const{insertText:a}=useComposer(),i=React.useCallback(e=>{e.preventDefault()},[]),s=React.useCallback(e=>{e.stopPropagation()},[]);return jsxRuntime.exports.jsx(EmojiPicker,{onEmojiSelect:a,onOpenChange:n,children:jsxRuntime.exports.jsx(Tooltip,{content:t??e,children:jsxRuntime.exports.jsx(PopoverTrigger,{asChild:!0,children:jsxRuntime.exports.jsx(Button,{className:classNames("lb-composer-editor-action",o),onPointerDown:i,onClick:s,"aria-label":e,...r,children:jsxRuntime.exports.jsx(EmojiIcon,{className:"lb-button-icon"})})})})})}function ComposerAttachFilesEditorAction({label:e,tooltipLabel:t,className:n,...o}){const r=React.useCallback(e=>{e.preventDefault()},[]),a=React.useCallback(e=>{e.stopPropagation()},[]);return jsxRuntime.exports.jsx(Tooltip,{content:t??e,children:jsxRuntime.exports.jsx(ComposerAttachFiles,{asChild:!0,children:jsxRuntime.exports.jsx(Button,{className:classNames("lb-composer-editor-action",n),onPointerDown:r,onClick:a,"aria-label":e,...o,children:jsxRuntime.exports.jsx(AttachmentIcon,{className:"lb-button-icon"})})})})}function ComposerMention({userId:e}){return jsxRuntime.exports.jsxs(ComposerMention$1,{className:"lb-composer-mention",children:[MENTION_CHARACTER,jsxRuntime.exports.jsx(User,{userId:e})]})}function ComposerMentionSuggestions({userIds:e}){return e.length>0?jsxRuntime.exports.jsx(ComposerSuggestions,{className:"lb-root lb-portal lb-elevation lb-composer-suggestions lb-composer-mention-suggestions",children:jsxRuntime.exports.jsx(ComposerSuggestionsList,{className:"lb-composer-suggestions-list lb-composer-mention-suggestions-list",children:e.map(e=>jsxRuntime.exports.jsxs(ComposerSuggestionsListItem,{className:"lb-composer-suggestions-list-item lb-composer-mention-suggestion",value:e,children:[jsxRuntime.exports.jsx(Avatar,{userId:e,className:"lb-composer-mention-suggestion-avatar"}),jsxRuntime.exports.jsx(User,{userId:e,className:"lb-composer-mention-suggestion-user"})]},e))})}):null}function MarkToggle({mark:e,shortcut:t,children:n,...o}){const r=useOverrides(),a=React.useMemo(()=>r.COMPOSER_TOGGLE_MARK(e),[r,e]);return jsxRuntime.exports.jsx(ShortcutTooltip,{content:a,shortcut:t,sideOffset:FLOATING_ELEMENT_SIDE_OFFSET+2,children:jsxRuntime.exports.jsx(ComposerMarkToggle,{mark:e,asChild:!0,...o,children:jsxRuntime.exports.jsx(Button,{"aria-label":a,variant:"toggle",children:n})})})}const markToggles={bold:()=>jsxRuntime.exports.jsx(MarkToggle,{mark:"bold",shortcut:jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(ShortcutTooltipKey,{name:"mod"}),jsxRuntime.exports.jsx("span",{children:"B"})]}),children:jsxRuntime.exports.jsx(BoldIcon,{})}),italic:()=>jsxRuntime.exports.jsx(MarkToggle,{mark:"italic",shortcut:jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(ShortcutTooltipKey,{name:"mod"}),jsxRuntime.exports.jsx("span",{children:"I"})]}),children:jsxRuntime.exports.jsx(ItalicIcon,{})}),strikethrough:()=>jsxRuntime.exports.jsx(MarkToggle,{mark:"strikethrough",shortcut:jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(ShortcutTooltipKey,{name:"mod"}),jsxRuntime.exports.jsx(ShortcutTooltipKey,{name:"shift"}),jsxRuntime.exports.jsx("span",{children:"S"})]}),children:jsxRuntime.exports.jsx(StrikethroughIcon,{})}),code:()=>jsxRuntime.exports.jsx(MarkToggle,{mark:"code",shortcut:jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(ShortcutTooltipKey,{name:"mod"}),jsxRuntime.exports.jsx("span",{children:"E"})]}),children:jsxRuntime.exports.jsx(CodeIcon,{})})},markTogglesList=Object.entries(markToggles).map(([e,t])=>jsxRuntime.exports.jsx(t,{},e));function ComposerFloatingToolbar(){return jsxRuntime.exports.jsx(ComposerFloatingToolbar$1,{className:"lb-root lb-portal lb-elevation lb-composer-floating-toolbar",children:markTogglesList})}function ComposerLink({href:e,children:t}){return jsxRuntime.exports.jsx(ComposerLink$1,{href:e,className:"lb-composer-link",children:t})}function ComposerFileAttachment({attachment:e,className:t,overrides:n,...o}){const{removeAttachment:r}=useComposer(),{roomId:a}=useComposerEditorContext(),i=React.useCallback(()=>{r(e.id)},[e.id,r]);return jsxRuntime.exports.jsx(FileAttachment,{className:classNames("lb-composer-attachment",t),...o,attachment:e,onDeleteClick:i,preventFocusOnDelete:!0,overrides:n,roomId:a})}function ComposerAttachments({overrides:e,className:t,...n}){const{attachments:o}=useComposer();return 0===o.length?null:jsxRuntime.exports.jsx("div",{className:classNames("lb-composer-attachments",t),...n,children:jsxRuntime.exports.jsx("div",{className:"lb-attachments",children:o.map(t=>jsxRuntime.exports.jsx(ComposerFileAttachment,{attachment:t,overrides:e},t.id))})})}const editorRequiredComponents={Mention:ComposerMention,MentionSuggestions:ComposerMentionSuggestions,Link:ComposerLink};function ComposerEditorContainer({showAttachments:e=!0,showFormattingControls:t=!0,showAttribution:n,defaultValue:o,isCollapsed:r,overrides:a,actions:i,autoFocus:s,disabled:l,hasResolveMentionSuggestions:c,onEmojiPickerOpenChange:d,onEmptyChange:u,onEditorClick:f}){const{isEmpty:p}=useComposer(),{hasMaxAttachments:_}=useComposerAttachmentsContext(),m=useOverrides(a),h=React.useMemo(()=>({...editorRequiredComponents,FloatingToolbar:t?ComposerFloatingToolbar:void 0}),[t]),[g,b]=useComposerAttachmentsDropArea({disabled:l||_});React.useLayoutEffect(()=>{u(p)},[p,u]);const v=React.useCallback(e=>{e.preventDefault()},[]),y=React.useCallback(e=>{e.stopPropagation()},[]);return jsxRuntime.exports.jsxs("div",{className:"lb-composer-editor-container",...b,children:[jsxRuntime.exports.jsx(ComposerEditor,{className:"lb-composer-editor",onClick:f,placeholder:m.COMPOSER_PLACEHOLDER,defaultValue:o,autoFocus:s,components:h,disabled:l,dir:m.dir}),e&&jsxRuntime.exports.jsx(ComposerAttachments,{overrides:a}),(!r||g)&&jsxRuntime.exports.jsxs("div",{className:"lb-composer-footer",children:[jsxRuntime.exports.jsxs("div",{className:"lb-composer-editor-actions",children:[c&&jsxRuntime.exports.jsx(ComposerInsertMentionEditorAction,{label:m.COMPOSER_INSERT_MENTION,disabled:l}),jsxRuntime.exports.jsx(ComposerInsertEmojiEditorAction,{label:m.COMPOSER_INSERT_EMOJI,onPickerOpenChange:d,disabled:l}),e&&jsxRuntime.exports.jsx(ComposerAttachFilesEditorAction,{label:m.COMPOSER_ATTACH_FILES,disabled:l})]}),n&&jsxRuntime.exports.jsx(Attribution,{}),jsxRuntime.exports.jsx("div",{className:"lb-composer-actions",children:i??jsxRuntime.exports.jsx(jsxRuntime.exports.Fragment,{children:jsxRuntime.exports.jsx(ShortcutTooltip,{content:m.COMPOSER_SEND,shortcut:jsxRuntime.exports.jsx(ShortcutTooltipKey,{name:"enter"}),children:jsxRuntime.exports.jsx(ComposerSubmit,{asChild:!0,children:jsxRuntime.exports.jsx(Button,{onPointerDown:v,onClick:y,className:"lb-composer-action",variant:"primary","aria-label":m.COMPOSER_SEND,children:jsxRuntime.exports.jsx(SendIcon,{})})})})})})]}),e&&g&&jsxRuntime.exports.jsx("div",{className:"lb-composer-attachments-drop-area",children:jsxRuntime.exports.jsxs("div",{className:"lb-composer-attachments-drop-area-label",children:[jsxRuntime.exports.jsx(AttachmentIcon,{}),m.COMPOSER_ATTACH_FILES]})})]})}React.createContext(null);const Composer=React.forwardRef(({threadId:e,commentId:t,metadata:n,defaultValue:o,defaultAttachments:r,onComposerSubmit:a,collapsed:i,defaultCollapsed:s,onCollapsedChange:l,overrides:c,actions:d,onBlur:u,className:f,onFocus:p,autoFocus:_,disabled:m,showAttachments:h=!0,showFormattingControls:g=!0,showAttribution:b,roomId:v,...y},E)=>{const w=useRoomOrNull(),C=void 0!==v?v:w?.id;if(void 0===C)throw new Error("Composer must be a descendant of RoomProvider component");const x=useCreateRoomThread(C),R=useCreateRoomComment(C),S=useEditRoomComment(C),{preventUnsavedComposerChanges:D}=useLiveblocksUIConfig(),T=void 0!==useResolveMentionSuggestions(),A=React.useRef(!0),O=React.useRef(!1),I=useOverrides(c),[k,N]=useControllableState((void 0!==i||void 0!==s)&&i,l,s),j=React.useSyncExternalStore(React.useCallback(e=>null===w?()=>{}:w.events.self.subscribeOnce(e),[w]),React.useCallback(()=>w?.getSelf()?.canComment??!0,[w]),React.useCallback(()=>!0,[])),$=useRoomPermissions(C),F=$.size>0?$.has(Permission.CommentsWrite)||$.has(Permission.Write):j,P=React.useCallback(e=>{A.current=e},[]),M=React.useCallback(e=>{O.current=e},[]),B=React.useCallback(e=>{p?.(e),e.isDefaultPrevented()||A.current&&F&&N?.(!1)},[N,p,F]),L=React.useCallback(e=>{if(u?.(e),e.isDefaultPrevented())return;!e.currentTarget.contains(e.relatedTarget??document.activeElement)&&A.current&&!O.current&&N?.(!0)},[u,N]),U=React.useCallback(e=>{e.stopPropagation(),A.current&&F&&N?.(!1)},[N,F]),V=React.useCallback((o,r)=>{a?.(o,r),r.isDefaultPrevented()||(t&&e?S({commentId:t,threadId:e,body:o.body,attachments:o.attachments}):e?R({threadId:e,body:o.body,attachments:o.attachments}):x({body:o.body,metadata:n??{},attachments:o.attachments}))},[t,R,x,S,n,a,e]);return jsxRuntime.exports.jsx(TooltipProvider,{children:jsxRuntime.exports.jsx(ComposerForm,{onComposerSubmit:V,className:classNames("lb-root lb-composer lb-composer-form",f),dir:I.dir,...y,ref:E,"data-collapsed":k?"":void 0,onFocus:B,onBlur:L,disabled:m||!F,defaultAttachments:r,pasteFilesAsAttachments:h,preventUnsavedChanges:D,roomId:C,children:jsxRuntime.exports.jsx(ComposerEditorContainer,{defaultValue:o,actions:d,overrides:c,isCollapsed:k,showAttachments:h,showAttribution:b,showFormattingControls:g,hasResolveMentionSuggestions:T,onEmptyChange:P,onEmojiPickerOpenChange:M,onEditorClick:U,autoFocus:_,disabled:m})})})});function createCollection(e){const t=e+"CollectionProvider",[n,o]=createContextScope(t),[r,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{const{scope:t,children:n}=e,o=React__default.default.useRef(null),a=React__default.default.useRef(new Map).current;return jsxRuntime.exports.jsx(r,{scope:t,itemMap:a,collectionRef:o,children:n})};i.displayName=t;const s=e+"CollectionSlot",l=createSlot(s),c=React__default.default.forwardRef((e,t)=>{const{scope:n,children:o}=e,r=useComposedRefs(t,a(s,n).collectionRef);return jsxRuntime.exports.jsx(l,{ref:r,children:o})});c.displayName=s;const d=e+"CollectionItemSlot",u="data-radix-collection-item",f=createSlot(d),p=React__default.default.forwardRef((e,t)=>{const{scope:n,children:o,...r}=e,i=React__default.default.useRef(null),s=useComposedRefs(t,i),l=a(d,n);return React__default.default.useEffect(()=>(l.itemMap.set(i,{ref:i,...r}),()=>{l.itemMap.delete(i)})),jsxRuntime.exports.jsx(f,{[u]:"",ref:s,children:o})});return p.displayName=d,[{Provider:i,Slot:c,ItemSlot:p},function(t){const n=a(e+"CollectionConsumer",t);return React__default.default.useCallback(()=>{const e=n.collectionRef.current;if(!e)return[];const t=Array.from(e.querySelectorAll(`[${u}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])},o]}var DirectionContext=React__namespace.createContext(void 0);function useDirection(e){const t=React__namespace.useContext(DirectionContext);return e||t||"ltr"}var ENTRY_FOCUS="rovingFocusGroup.onEntryFocus",EVENT_OPTIONS={bubbles:!1,cancelable:!0},GROUP_NAME$2="RovingFocusGroup",[Collection$1,useCollection$1,createCollectionScope$1]=createCollection(GROUP_NAME$2),[createRovingFocusGroupContext,createRovingFocusGroupScope]=createContextScope(GROUP_NAME$2,[createCollectionScope$1]),[RovingFocusProvider,useRovingFocusContext]=createRovingFocusGroupContext(GROUP_NAME$2),RovingFocusGroup=React__namespace.forwardRef((e,t)=>jsxRuntime.exports.jsx(Collection$1.Provider,{scope:e.__scopeRovingFocusGroup,children:jsxRuntime.exports.jsx(Collection$1.Slot,{scope:e.__scopeRovingFocusGroup,children:jsxRuntime.exports.jsx(RovingFocusGroupImpl,{...e,ref:t})})}));RovingFocusGroup.displayName=GROUP_NAME$2;var RovingFocusGroupImpl=React__namespace.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:o,loop:r=!1,dir:a,currentTabStopId:i,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:c,preventScrollOnEntryFocus:d=!1,...u}=e,f=React__namespace.useRef(null),p=useComposedRefs(t,f),_=useDirection(a),[m,h]=useControllableState$1({prop:i,defaultProp:s??null,onChange:l,caller:GROUP_NAME$2}),[g,b]=React__namespace.useState(!1),v=useCallbackRef$1(c),y=useCollection$1(n),E=React__namespace.useRef(!1),[w,C]=React__namespace.useState(0);return React__namespace.useEffect(()=>{const e=f.current;if(e)return e.addEventListener(ENTRY_FOCUS,v),()=>e.removeEventListener(ENTRY_FOCUS,v)},[v]),jsxRuntime.exports.jsx(RovingFocusProvider,{scope:n,orientation:o,dir:_,loop:r,currentTabStopId:m,onItemFocus:React__namespace.useCallback(e=>h(e),[h]),onItemShiftTab:React__namespace.useCallback(()=>b(!0),[]),onFocusableItemAdd:React__namespace.useCallback(()=>C(e=>e+1),[]),onFocusableItemRemove:React__namespace.useCallback(()=>C(e=>e-1),[]),children:jsxRuntime.exports.jsx(Primitive.div,{tabIndex:g||0===w?-1:0,"data-orientation":o,...u,ref:p,style:{outline:"none",...e.style},onMouseDown:composeEventHandlers(e.onMouseDown,()=>{E.current=!0}),onFocus:composeEventHandlers(e.onFocus,e=>{const t=!E.current;if(e.target===e.currentTarget&&t&&!g){const t=new CustomEvent(ENTRY_FOCUS,EVENT_OPTIONS);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){const e=y().filter(e=>e.focusable);focusFirst$1([e.find(e=>e.active),e.find(e=>e.id===m),...e].filter(Boolean).map(e=>e.ref.current),d)}}E.current=!1}),onBlur:composeEventHandlers(e.onBlur,()=>b(!1))})})}),ITEM_NAME$2="RovingFocusGroupItem",RovingFocusGroupItem=React__namespace.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:o=!0,active:r=!1,tabStopId:a,children:i,...s}=e,l=useId(),c=a||l,d=useRovingFocusContext(ITEM_NAME$2,n),u=d.currentTabStopId===c,f=useCollection$1(n),{onFocusableItemAdd:p,onFocusableItemRemove:_,currentTabStopId:m}=d;return React__namespace.useEffect(()=>{if(o)return p(),()=>_()},[o,p,_]),jsxRuntime.exports.jsx(Collection$1.ItemSlot,{scope:n,id:c,focusable:o,active:r,children:jsxRuntime.exports.jsx(Primitive.span,{tabIndex:u?0:-1,"data-orientation":d.orientation,...s,ref:t,onMouseDown:composeEventHandlers(e.onMouseDown,e=>{o?d.onItemFocus(c):e.preventDefault()}),onFocus:composeEventHandlers(e.onFocus,()=>d.onItemFocus(c)),onKeyDown:composeEventHandlers(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void d.onItemShiftTab();if(e.target!==e.currentTarget)return;const t=getFocusIntent(e,d.orientation,d.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=f().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)n.reverse();else if("prev"===t||"next"===t){"prev"===t&&n.reverse();const o=n.indexOf(e.currentTarget);n=d.loop?wrapArray$1(n,o+1):n.slice(o+1)}setTimeout(()=>focusFirst$1(n))}}),children:"function"==typeof i?i({isCurrentTabStop:u,hasTabStop:null!=m}):i})})});RovingFocusGroupItem.displayName=ITEM_NAME$2;var MAP_KEY_TO_FOCUS_INTENT={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function getDirectionAwareKey(e,t){return"rtl"!==t?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}function getFocusIntent(e,t,n){const o=getDirectionAwareKey(e.key,n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return MAP_KEY_TO_FOCUS_INTENT[o]}function focusFirst$1(e,t=!1){const n=document.activeElement;for(const o of e){if(o===n)return;if(o.focus({preventScroll:t}),document.activeElement!==n)return}}function wrapArray$1(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var Root=RovingFocusGroup,Item=RovingFocusGroupItem,SELECTION_KEYS=["Enter"," "],FIRST_KEYS=["ArrowDown","PageUp","Home"],LAST_KEYS=["ArrowUp","PageDown","End"],FIRST_LAST_KEYS=[...FIRST_KEYS,...LAST_KEYS],SUB_OPEN_KEYS={ltr:[...SELECTION_KEYS,"ArrowRight"],rtl:[...SELECTION_KEYS,"ArrowLeft"]},SUB_CLOSE_KEYS={ltr:["ArrowLeft"],rtl:["ArrowRight"]},MENU_NAME="Menu",[Collection,useCollection,createCollectionScope]=createCollection(MENU_NAME),[createMenuContext,createMenuScope]=createContextScope(MENU_NAME,[createCollectionScope,createPopperScope,createRovingFocusGroupScope]),usePopperScope=createPopperScope(),useRovingFocusGroupScope=createRovingFocusGroupScope(),[MenuProvider,useMenuContext]=createMenuContext(MENU_NAME),[MenuRootProvider,useMenuRootContext]=createMenuContext(MENU_NAME),Menu=e=>{const{__scopeMenu:t,open:n=!1,children:o,dir:r,onOpenChange:a,modal:i=!0}=e,s=usePopperScope(t),[l,c]=React__namespace.useState(null),d=React__namespace.useRef(!1),u=useCallbackRef$1(a),f=useDirection(r);return React__namespace.useEffect(()=>{const e=()=>{d.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>d.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}},[]),jsxRuntime.exports.jsx(Root2$2,{...s,children:jsxRuntime.exports.jsx(MenuProvider,{scope:t,open:n,onOpenChange:u,content:l,onContentChange:c,children:jsxRuntime.exports.jsx(MenuRootProvider,{scope:t,onClose:React__namespace.useCallback(()=>u(!1),[u]),isUsingKeyboardRef:d,dir:f,modal:i,children:o})})})};Menu.displayName=MENU_NAME;var ANCHOR_NAME="MenuAnchor",MenuAnchor=React__namespace.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e,r=usePopperScope(n);return jsxRuntime.exports.jsx(Anchor,{...r,...o,ref:t})});MenuAnchor.displayName=ANCHOR_NAME;var PORTAL_NAME$1="MenuPortal",[PortalProvider,usePortalContext]=createMenuContext(PORTAL_NAME$1,{forceMount:void 0}),MenuPortal=e=>{const{__scopeMenu:t,forceMount:n,children:o,container:r}=e,a=useMenuContext(PORTAL_NAME$1,t);return jsxRuntime.exports.jsx(PortalProvider,{scope:t,forceMount:n,children:jsxRuntime.exports.jsx(Presence,{present:n||a.open,children:jsxRuntime.exports.jsx(Portal$3,{asChild:!0,container:r,children:o})})})};MenuPortal.displayName=PORTAL_NAME$1;var CONTENT_NAME$1="MenuContent",[MenuContentProvider,useMenuContentContext]=createMenuContext(CONTENT_NAME$1),MenuContent=React__namespace.forwardRef((e,t)=>{const n=usePortalContext(CONTENT_NAME$1,e.__scopeMenu),{forceMount:o=n.forceMount,...r}=e,a=useMenuContext(CONTENT_NAME$1,e.__scopeMenu),i=useMenuRootContext(CONTENT_NAME$1,e.__scopeMenu);return jsxRuntime.exports.jsx(Collection.Provider,{scope:e.__scopeMenu,children:jsxRuntime.exports.jsx(Presence,{present:o||a.open,children:jsxRuntime.exports.jsx(Collection.Slot,{scope:e.__scopeMenu,children:i.modal?jsxRuntime.exports.jsx(MenuRootContentModal,{...r,ref:t}):jsxRuntime.exports.jsx(MenuRootContentNonModal,{...r,ref:t})})})})}),MenuRootContentModal=React__namespace.forwardRef((e,t)=>{const n=useMenuContext(CONTENT_NAME$1,e.__scopeMenu),o=React__namespace.useRef(null),r=useComposedRefs(t,o);return React__namespace.useEffect(()=>{const e=o.current;if(e)return hideOthers(e)},[]),jsxRuntime.exports.jsx(MenuContentImpl,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:composeEventHandlers(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),MenuRootContentNonModal=React__namespace.forwardRef((e,t)=>{const n=useMenuContext(CONTENT_NAME$1,e.__scopeMenu);return jsxRuntime.exports.jsx(MenuContentImpl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),Slot=createSlot("MenuContent.ScrollLock"),MenuContentImpl=React__namespace.forwardRef((e,t)=>{const{__scopeMenu:n,loop:o=!1,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:i,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:u,onInteractOutside:f,onDismiss:p,disableOutsideScroll:_,...m}=e,h=useMenuContext(CONTENT_NAME$1,n),g=useMenuRootContext(CONTENT_NAME$1,n),b=usePopperScope(n),v=useRovingFocusGroupScope(n),y=useCollection(n),[E,w]=React__namespace.useState(null),C=React__namespace.useRef(null),x=useComposedRefs(t,C,h.onContentChange),R=React__namespace.useRef(0),S=React__namespace.useRef(""),D=React__namespace.useRef(0),T=React__namespace.useRef(null),A=React__namespace.useRef("right"),O=React__namespace.useRef(0),I=_?ReactRemoveScroll:React__namespace.Fragment,k=_?{as:Slot,allowPinchZoom:!0}:void 0;React__namespace.useEffect(()=>()=>window.clearTimeout(R.current),[]),useFocusGuards();const N=React__namespace.useCallback(e=>A.current===T.current?.side&&isPointerInGraceArea(e,T.current?.area),[]);return jsxRuntime.exports.jsx(MenuContentProvider,{scope:n,searchRef:S,onItemEnter:React__namespace.useCallback(e=>{N(e)&&e.preventDefault()},[N]),onItemLeave:React__namespace.useCallback(e=>{N(e)||(C.current?.focus(),w(null))},[N]),onTriggerLeave:React__namespace.useCallback(e=>{N(e)&&e.preventDefault()},[N]),pointerGraceTimerRef:D,onPointerGraceIntentChange:React__namespace.useCallback(e=>{T.current=e},[]),children:jsxRuntime.exports.jsx(I,{...k,children:jsxRuntime.exports.jsx(FocusScope,{asChild:!0,trapped:r,onMountAutoFocus:composeEventHandlers(a,e=>{e.preventDefault(),C.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:jsxRuntime.exports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:u,onInteractOutside:f,onDismiss:p,children:jsxRuntime.exports.jsx(Root,{asChild:!0,...v,dir:g.dir,orientation:"vertical",loop:o,currentTabStopId:E,onCurrentTabStopIdChange:w,onEntryFocus:composeEventHandlers(l,e=>{g.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:jsxRuntime.exports.jsx(Content$1,{role:"menu","aria-orientation":"vertical","data-state":getOpenState(h.open),"data-radix-menu-content":"",dir:g.dir,...b,...m,ref:x,style:{outline:"none",...m.style},onKeyDown:composeEventHandlers(m.onKeyDown,e=>{const t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,o=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!n&&o&&(e=>{const t=S.current+e,n=y().filter(e=>!e.disabled),o=document.activeElement,r=n.find(e=>e.ref.current===o)?.textValue,a=getNextMatch(n.map(e=>e.textValue),t,r),i=n.find(e=>e.textValue===a)?.ref.current;!function e(t){S.current=t,window.clearTimeout(R.current),""!==t&&(R.current=window.setTimeout(()=>e(""),1e3))}(t),i&&setTimeout(()=>i.focus())})(e.key));const r=C.current;if(e.target!==r)return;if(!FIRST_LAST_KEYS.includes(e.key))return;e.preventDefault();const a=y().filter(e=>!e.disabled).map(e=>e.ref.current);LAST_KEYS.includes(e.key)&&a.reverse(),focusFirst(a)}),onBlur:composeEventHandlers(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(R.current),S.current="")}),onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse(e=>{const t=e.target,n=O.current!==e.clientX;if(e.currentTarget.contains(t)&&n){const t=e.clientX>O.current?"right":"left";A.current=t,O.current=e.clientX}}))})})})})})})});MenuContent.displayName=CONTENT_NAME$1;var GROUP_NAME$1="MenuGroup",MenuGroup=React__namespace.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return jsxRuntime.exports.jsx(Primitive.div,{role:"group",...o,ref:t})});MenuGroup.displayName=GROUP_NAME$1;var LABEL_NAME$1="MenuLabel",MenuLabel=React__namespace.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return jsxRuntime.exports.jsx(Primitive.div,{...o,ref:t})});MenuLabel.displayName=LABEL_NAME$1;var ITEM_NAME$1="MenuItem",ITEM_SELECT="menu.itemSelect",MenuItem=React__namespace.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:o,...r}=e,a=React__namespace.useRef(null),i=useMenuRootContext(ITEM_NAME$1,e.__scopeMenu),s=useMenuContentContext(ITEM_NAME$1,e.__scopeMenu),l=useComposedRefs(t,a),c=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(MenuItemImpl,{...r,ref:l,disabled:n,onClick:composeEventHandlers(e.onClick,()=>{const e=a.current;if(!n&&e){const t=new CustomEvent(ITEM_SELECT,{bubbles:!0,cancelable:!0});e.addEventListener(ITEM_SELECT,e=>o?.(e),{once:!0}),dispatchDiscreteCustomEvent(e,t),t.defaultPrevented?c.current=!1:i.onClose()}}),onPointerDown:t=>{e.onPointerDown?.(t),c.current=!0},onPointerUp:composeEventHandlers(e.onPointerUp,e=>{c.current||e.currentTarget?.click()}),onKeyDown:composeEventHandlers(e.onKeyDown,e=>{const t=""!==s.searchRef.current;n||t&&" "===e.key||SELECTION_KEYS.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});MenuItem.displayName=ITEM_NAME$1;var MenuItemImpl=React__namespace.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:o=!1,textValue:r,...a}=e,i=useMenuContentContext(ITEM_NAME$1,n),s=useRovingFocusGroupScope(n),l=React__namespace.useRef(null),c=useComposedRefs(t,l),[d,u]=React__namespace.useState(!1),[f,p]=React__namespace.useState("");return React__namespace.useEffect(()=>{const e=l.current;e&&p((e.textContent??"").trim())},[a.children]),jsxRuntime.exports.jsx(Collection.ItemSlot,{scope:n,disabled:o,textValue:r??f,children:jsxRuntime.exports.jsx(Item,{asChild:!0,...s,focusable:!o,children:jsxRuntime.exports.jsx(Primitive.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...a,ref:c,onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse(e=>{if(o)i.onItemLeave(e);else if(i.onItemEnter(e),!e.defaultPrevented){e.currentTarget.focus({preventScroll:!0})}})),onPointerLeave:composeEventHandlers(e.onPointerLeave,whenMouse(e=>i.onItemLeave(e))),onFocus:composeEventHandlers(e.onFocus,()=>u(!0)),onBlur:composeEventHandlers(e.onBlur,()=>u(!1))})})})}),CHECKBOX_ITEM_NAME$1="MenuCheckboxItem",MenuCheckboxItem=React__namespace.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:o,...r}=e;return jsxRuntime.exports.jsx(ItemIndicatorProvider,{scope:e.__scopeMenu,checked:n,children:jsxRuntime.exports.jsx(MenuItem,{role:"menuitemcheckbox","aria-checked":isIndeterminate(n)?"mixed":n,...r,ref:t,"data-state":getCheckedState(n),onSelect:composeEventHandlers(r.onSelect,()=>o?.(!!isIndeterminate(n)||!n),{checkForDefaultPrevented:!1})})})});MenuCheckboxItem.displayName=CHECKBOX_ITEM_NAME$1;var RADIO_GROUP_NAME$1="MenuRadioGroup",[RadioGroupProvider,useRadioGroupContext]=createMenuContext(RADIO_GROUP_NAME$1,{value:void 0,onValueChange:()=>{}}),MenuRadioGroup=React__namespace.forwardRef((e,t)=>{const{value:n,onValueChange:o,...r}=e,a=useCallbackRef$1(o);return jsxRuntime.exports.jsx(RadioGroupProvider,{scope:e.__scopeMenu,value:n,onValueChange:a,children:jsxRuntime.exports.jsx(MenuGroup,{...r,ref:t})})});MenuRadioGroup.displayName=RADIO_GROUP_NAME$1;var RADIO_ITEM_NAME$1="MenuRadioItem",MenuRadioItem=React__namespace.forwardRef((e,t)=>{const{value:n,...o}=e,r=useRadioGroupContext(RADIO_ITEM_NAME$1,e.__scopeMenu),a=n===r.value;return jsxRuntime.exports.jsx(ItemIndicatorProvider,{scope:e.__scopeMenu,checked:a,children:jsxRuntime.exports.jsx(MenuItem,{role:"menuitemradio","aria-checked":a,...o,ref:t,"data-state":getCheckedState(a),onSelect:composeEventHandlers(o.onSelect,()=>r.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});MenuRadioItem.displayName=RADIO_ITEM_NAME$1;var ITEM_INDICATOR_NAME="MenuItemIndicator",[ItemIndicatorProvider,useItemIndicatorContext]=createMenuContext(ITEM_INDICATOR_NAME,{checked:!1}),MenuItemIndicator=React__namespace.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:o,...r}=e,a=useItemIndicatorContext(ITEM_INDICATOR_NAME,n);return jsxRuntime.exports.jsx(Presence,{present:o||isIndeterminate(a.checked)||!0===a.checked,children:jsxRuntime.exports.jsx(Primitive.span,{...r,ref:t,"data-state":getCheckedState(a.checked)})})});MenuItemIndicator.displayName=ITEM_INDICATOR_NAME;var SEPARATOR_NAME$1="MenuSeparator",MenuSeparator=React__namespace.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return jsxRuntime.exports.jsx(Primitive.div,{role:"separator","aria-orientation":"horizontal",...o,ref:t})});MenuSeparator.displayName=SEPARATOR_NAME$1;var ARROW_NAME$1="MenuArrow",MenuArrow=React__namespace.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e,r=usePopperScope(n);return jsxRuntime.exports.jsx(Arrow,{...r,...o,ref:t})});MenuArrow.displayName=ARROW_NAME$1;var SUB_NAME="MenuSub",[MenuSubProvider,useMenuSubContext]=createMenuContext(SUB_NAME),SUB_TRIGGER_NAME$1="MenuSubTrigger",MenuSubTrigger=React__namespace.forwardRef((e,t)=>{const n=useMenuContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),o=useMenuRootContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),r=useMenuSubContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),a=useMenuContentContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),i=React__namespace.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:l}=a,c={__scopeMenu:e.__scopeMenu},d=React__namespace.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return React__namespace.useEffect(()=>d,[d]),React__namespace.useEffect(()=>{const e=s.current;return()=>{window.clearTimeout(e),l(null)}},[s,l]),jsxRuntime.exports.jsx(MenuAnchor,{asChild:!0,...c,children:jsxRuntime.exports.jsx(MenuItemImpl,{id:r.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":r.contentId,"data-state":getOpenState(n.open),...e,ref:composeRefs(t,r.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse(t=>{a.onItemEnter(t),t.defaultPrevented||e.disabled||n.open||i.current||(a.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:composeEventHandlers(e.onPointerLeave,whenMouse(e=>{d();const t=n.content?.getBoundingClientRect();if(t){const o=n.content?.dataset.side,r="right"===o,i=r?-5:5,l=t[r?"left":"right"],c=t[r?"right":"left"];a.onPointerGraceIntentChange({area:[{x:e.clientX+i,y:e.clientY},{x:l,y:t.top},{x:c,y:t.top},{x:c,y:t.bottom},{x:l,y:t.bottom}],side:o}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(e),e.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:composeEventHandlers(e.onKeyDown,t=>{const r=""!==a.searchRef.current;e.disabled||r&&" "===t.key||SUB_OPEN_KEYS[o.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())})})})});MenuSubTrigger.displayName=SUB_TRIGGER_NAME$1;var SUB_CONTENT_NAME$1="MenuSubContent",MenuSubContent=React__namespace.forwardRef((e,t)=>{const n=usePortalContext(CONTENT_NAME$1,e.__scopeMenu),{forceMount:o=n.forceMount,...r}=e,a=useMenuContext(CONTENT_NAME$1,e.__scopeMenu),i=useMenuRootContext(CONTENT_NAME$1,e.__scopeMenu),s=useMenuSubContext(SUB_CONTENT_NAME$1,e.__scopeMenu),l=React__namespace.useRef(null),c=useComposedRefs(t,l);return jsxRuntime.exports.jsx(Collection.Provider,{scope:e.__scopeMenu,children:jsxRuntime.exports.jsx(Presence,{present:o||a.open,children:jsxRuntime.exports.jsx(Collection.Slot,{scope:e.__scopeMenu,children:jsxRuntime.exports.jsx(MenuContentImpl,{id:s.contentId,"aria-labelledby":s.triggerId,...r,ref:c,align:"start",side:"rtl"===i.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{i.isUsingKeyboardRef.current&&l.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:composeEventHandlers(e.onFocusOutside,e=>{e.target!==s.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:composeEventHandlers(e.onEscapeKeyDown,e=>{i.onClose(),e.preventDefault()}),onKeyDown:composeEventHandlers(e.onKeyDown,e=>{const t=e.currentTarget.contains(e.target),n=SUB_CLOSE_KEYS[i.dir].includes(e.key);t&&n&&(a.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())})})})})})});function getOpenState(e){return e?"open":"closed"}function isIndeterminate(e){return"indeterminate"===e}function getCheckedState(e){return isIndeterminate(e)?"indeterminate":e?"checked":"unchecked"}function focusFirst(e){const t=document.activeElement;for(const n of e){if(n===t)return;if(n.focus(),document.activeElement!==t)return}}function wrapArray(e,t){return e.map((n,o)=>e[(t+o)%e.length])}function getNextMatch(e,t,n){const o=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,r=n?e.indexOf(n):-1;let a=wrapArray(e,Math.max(r,0));1===o.length&&(a=a.filter(e=>e!==n));const i=a.find(e=>e.toLowerCase().startsWith(o.toLowerCase()));return i!==n?i:void 0}function isPointInPolygon(e,t){const{x:n,y:o}=e;let r=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){const i=t[e],s=t[a],l=i.x,c=i.y,d=s.x,u=s.y;c>o!=u>o&&n<(d-l)*(o-c)/(u-c)+l&&(r=!r)}return r}function isPointerInGraceArea(e,t){if(!t)return!1;return isPointInPolygon({x:e.clientX,y:e.clientY},t)}function whenMouse(e){return t=>"mouse"===t.pointerType?e(t):void 0}MenuSubContent.displayName=SUB_CONTENT_NAME$1;var Root3=Menu,Anchor2=MenuAnchor,Portal=MenuPortal,Content2$1=MenuContent,Group=MenuGroup,Label=MenuLabel,Item2=MenuItem,CheckboxItem=MenuCheckboxItem,RadioGroup=MenuRadioGroup,RadioItem=MenuRadioItem,ItemIndicator=MenuItemIndicator,Separator=MenuSeparator,Arrow2=MenuArrow,SubTrigger=MenuSubTrigger,SubContent=MenuSubContent,DROPDOWN_MENU_NAME="DropdownMenu",[createDropdownMenuContext,createDropdownMenuScope]=createContextScope(DROPDOWN_MENU_NAME,[createMenuScope]),useMenuScope=createMenuScope(),[DropdownMenuProvider,useDropdownMenuContext]=createDropdownMenuContext(DROPDOWN_MENU_NAME),DropdownMenu=e=>{const{__scopeDropdownMenu:t,children:n,dir:o,open:r,defaultOpen:a,onOpenChange:i,modal:s=!0}=e,l=useMenuScope(t),c=React__namespace.useRef(null),[d,u]=useControllableState$1({prop:r,defaultProp:a??!1,onChange:i,caller:DROPDOWN_MENU_NAME});return jsxRuntime.exports.jsx(DropdownMenuProvider,{scope:t,triggerId:useId(),triggerRef:c,contentId:useId(),open:d,onOpenChange:u,onOpenToggle:React__namespace.useCallback(()=>u(e=>!e),[u]),modal:s,children:jsxRuntime.exports.jsx(Root3,{...l,open:d,onOpenChange:u,dir:o,modal:s,children:n})})};DropdownMenu.displayName=DROPDOWN_MENU_NAME;var TRIGGER_NAME="DropdownMenuTrigger",DropdownMenuTrigger=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:o=!1,...r}=e,a=useDropdownMenuContext(TRIGGER_NAME,n),i=useMenuScope(n);return jsxRuntime.exports.jsx(Anchor2,{asChild:!0,...i,children:jsxRuntime.exports.jsx(Primitive.button,{type:"button",id:a.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?"open":"closed","data-disabled":o?"":void 0,disabled:o,...r,ref:composeRefs(t,a.triggerRef),onPointerDown:composeEventHandlers(e.onPointerDown,e=>{o||0!==e.button||!1!==e.ctrlKey||(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:composeEventHandlers(e.onKeyDown,e=>{o||(["Enter"," "].includes(e.key)&&a.onOpenToggle(),"ArrowDown"===e.key&&a.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})})});DropdownMenuTrigger.displayName=TRIGGER_NAME;var PORTAL_NAME="DropdownMenuPortal",DropdownMenuPortal=e=>{const{__scopeDropdownMenu:t,...n}=e,o=useMenuScope(t);return jsxRuntime.exports.jsx(Portal,{...o,...n})};DropdownMenuPortal.displayName=PORTAL_NAME;var CONTENT_NAME="DropdownMenuContent",DropdownMenuContent=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useDropdownMenuContext(CONTENT_NAME,n),a=useMenuScope(n),i=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(Content2$1,{id:r.contentId,"aria-labelledby":r.triggerId,...a,...o,ref:t,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,e=>{i.current||r.triggerRef.current?.focus(),i.current=!1,e.preventDefault()}),onInteractOutside:composeEventHandlers(e.onInteractOutside,e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,o=2===t.button||n;r.modal&&!o||(i.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});DropdownMenuContent.displayName=CONTENT_NAME;var GROUP_NAME="DropdownMenuGroup",DropdownMenuGroup=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Group,{...r,...o,ref:t})});DropdownMenuGroup.displayName=GROUP_NAME;var LABEL_NAME="DropdownMenuLabel",DropdownMenuLabel=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Label,{...r,...o,ref:t})});DropdownMenuLabel.displayName=LABEL_NAME;var ITEM_NAME="DropdownMenuItem",DropdownMenuItem=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Item2,{...r,...o,ref:t})});DropdownMenuItem.displayName=ITEM_NAME;var CHECKBOX_ITEM_NAME="DropdownMenuCheckboxItem",DropdownMenuCheckboxItem=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(CheckboxItem,{...r,...o,ref:t})});DropdownMenuCheckboxItem.displayName=CHECKBOX_ITEM_NAME;var RADIO_GROUP_NAME="DropdownMenuRadioGroup",DropdownMenuRadioGroup=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(RadioGroup,{...r,...o,ref:t})});DropdownMenuRadioGroup.displayName=RADIO_GROUP_NAME;var RADIO_ITEM_NAME="DropdownMenuRadioItem",DropdownMenuRadioItem=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(RadioItem,{...r,...o,ref:t})});DropdownMenuRadioItem.displayName=RADIO_ITEM_NAME;var INDICATOR_NAME="DropdownMenuItemIndicator",DropdownMenuItemIndicator=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(ItemIndicator,{...r,...o,ref:t})});DropdownMenuItemIndicator.displayName=INDICATOR_NAME;var SEPARATOR_NAME="DropdownMenuSeparator",DropdownMenuSeparator=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Separator,{...r,...o,ref:t})});DropdownMenuSeparator.displayName=SEPARATOR_NAME;var ARROW_NAME="DropdownMenuArrow",DropdownMenuArrow=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Arrow2,{...r,...o,ref:t})});DropdownMenuArrow.displayName=ARROW_NAME;var SUB_TRIGGER_NAME="DropdownMenuSubTrigger",DropdownMenuSubTrigger=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(SubTrigger,{...r,...o,ref:t})});DropdownMenuSubTrigger.displayName=SUB_TRIGGER_NAME;var SUB_CONTENT_NAME="DropdownMenuSubContent",DropdownMenuSubContent=React__namespace.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(SubContent,{...r,...o,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});DropdownMenuSubContent.displayName=SUB_CONTENT_NAME;var Root2=DropdownMenu,Portal2=DropdownMenuPortal,Content2=DropdownMenuContent;function Dropdown({children:e,content:t,defaultOpen:n,open:o,onOpenChange:r,className:a,...i}){const s=useOverrides(),{portalContainer:l}=useLiveblocksUIConfig();return jsxRuntime.exports.jsxs(Root2,{defaultOpen:n,open:o,onOpenChange:r,dir:s.dir,children:[e,jsxRuntime.exports.jsx(Portal2,{container:l,children:jsxRuntime.exports.jsx(Content2,{className:classNames("lb-root lb-portal lb-elevation lb-dropdown",a),sideOffset:FLOATING_ELEMENT_SIDE_OFFSET,collisionPadding:FLOATING_ELEMENT_COLLISION_PADDING,...i,children:t})})]})}const DropdownItem=React.forwardRef(({children:e,className:t,...n},o)=>jsxRuntime.exports.jsx(DropdownMenuItem,{className:classNames("lb-dropdown-item",t),...n,ref:o,children:e})),List=React.forwardRef(({values:e,formatRemaining:t,truncate:n,locale:o,className:r,asChild:a,...i},s)=>{const l=a?Slot$2:"span",c=useOverrides(),d=t??c.LIST_REMAINING,u=React.useMemo(()=>{const t=n&&n<e.length-1?[...e.slice(0,n),d(e.length-n)]:[...e],r=Array(t.length).fill(".");return listFormat(o).formatToParts(r).map(e=>"element"===e.type?t.shift():e.value)},[d,o,n,e]);return jsxRuntime.exports.jsx(l,{className:classNames("lb-list",r),...i,ref:s,children:u})}),REACTIONS_TRUNCATE=5;function CommentMention({userId:e,className:t,...n}){const o=useCurrentUserId();return jsxRuntime.exports.jsxs(CommentMention$1,{className:classNames("lb-comment-mention",t),"data-self":e===o?"":void 0,...n,children:[MENTION_CHARACTER,jsxRuntime.exports.jsx(User,{userId:e})]})}function CommentLink({href:e,children:t,className:n,...o}){return jsxRuntime.exports.jsx(CommentLink$1,{className:classNames("lb-comment-link",n),href:e,...o,children:t})}function CommentNonInteractiveLink({href:e,children:t,className:n,...o}){return jsxRuntime.exports.jsx("span",{className:classNames("lb-comment-link",n),...o,children:t})}const CommentReactionButton=React.forwardRef(({reaction:e,overrides:t,className:n,...o},r)=>{const a=useOverrides(t);return jsxRuntime.exports.jsxs(Button,{className:classNames("lb-comment-reaction",n),variant:"outline","aria-label":a.COMMENT_REACTION_DESCRIPTION(e.emoji,e.users.length),...o,ref:r,children:[jsxRuntime.exports.jsx(Emoji,{className:"lb-comment-reaction-emoji",emoji:e.emoji}),jsxRuntime.exports.jsx("span",{className:"lb-comment-reaction-count",children:e.users.length})]})}),CommentReaction=React.forwardRef(({comment:e,reaction:t,overrides:n,disabled:o,...r},a)=>{const i=useAddRoomCommentReaction(e.roomId),s=useRemoveRoomCommentReaction(e.roomId),l=useCurrentUserId(),c=React.useMemo(()=>t.users.some(e=>e.id===l),[l,t]),d=useOverrides(n),u=React.useMemo(()=>jsxRuntime.exports.jsx("span",{children:d.COMMENT_REACTION_LIST(jsxRuntime.exports.jsx(List,{values:t.users.map(e=>jsxRuntime.exports.jsx(User,{userId:e.id,replaceSelf:!0},e.id)),formatRemaining:d.LIST_REMAINING_USERS,truncate:REACTIONS_TRUNCATE,locale:d.locale}),t.emoji,t.users.length)}),[d,t]),f=React.useCallback(e=>{e.stopPropagation()},[]),p=React.useCallback(n=>{n?i({threadId:e.threadId,commentId:e.id,emoji:t.emoji}):s({threadId:e.threadId,commentId:e.id,emoji:t.emoji})},[i,e.threadId,e.id,t.emoji,s]);return jsxRuntime.exports.jsx(Tooltip,{content:u,multiline:!0,className:"lb-comment-reaction-tooltip",children:jsxRuntime.exports.jsx(Root$3,{asChild:!0,pressed:c,onPressedChange:p,onClick:f,disabled:o,ref:a,children:jsxRuntime.exports.jsx(CommentReactionButton,{"data-self":c?"":void 0,reaction:t,overrides:n,...r})})})}),CommentNonInteractiveReaction=React.forwardRef(({reaction:e,overrides:t,...n},o)=>{const r=useCurrentUserId(),a=React.useMemo(()=>e.users.some(e=>e.id===r),[r,e]);return jsxRuntime.exports.jsx(CommentReactionButton,{disableable:!1,"data-self":a?"":void 0,reaction:e,overrides:t,...n,ref:o})});function openAttachment({attachment:e,url:t}){"application/pdf"===e.mimeType||e.mimeType.startsWith("image/")||e.mimeType.startsWith("video/")||e.mimeType.startsWith("audio/")?window.open(t,"_blank"):download(t,e.name)}function CommentMediaAttachment({attachment:e,onAttachmentClick:t,roomId:n,className:o,overrides:r,...a}){const{url:i}=useRoomAttachmentUrl(e.id,n),s=React.useCallback(n=>{if(!i)return;const o={attachment:e,url:i};t?.(o,n),n.isDefaultPrevented()||openAttachment(o)},[e,t,i]);return jsxRuntime.exports.jsx(MediaAttachment,{className:classNames("lb-comment-attachment",o),...a,attachment:e,overrides:r,onClick:i?s:void 0,roomId:n})}function CommentFileAttachment({attachment:e,onAttachmentClick:t,roomId:n,className:o,overrides:r,...a}){const{url:i}=useRoomAttachmentUrl(e.id,n),s=React.useCallback(n=>{if(!i)return;const o={attachment:e,url:i};t?.(o,n),n.isDefaultPrevented()||openAttachment(o)},[e,t,i]);return jsxRuntime.exports.jsx(FileAttachment,{className:classNames("lb-comment-attachment",o),...a,attachment:e,overrides:r,onClick:i?s:void 0,roomId:n})}function CommentNonInteractiveFileAttachment({className:e,...t}){return jsxRuntime.exports.jsx(FileAttachment,{className:classNames("lb-comment-attachment",e),allowMediaPreview:!1,...t})}function AutoMarkReadThreadIdHandler({threadId:e,roomId:t,commentRef:n}){const o=useMarkRoomThreadAsRead(t);return useVisibleCallback(n,()=>{o(e)},{enabled:useWindowFocus()}),null}const Comment=React.forwardRef(({comment:e,indentContent:t=!0,showDeleted:n,showActions:o="hover",showReactions:r=!0,showAttachments:a=!0,showComposerFormattingControls:i=!0,onAuthorClick:s,onMentionClick:l,onAttachmentClick:c,onCommentEdit:d,onCommentDelete:u,overrides:f,className:p,additionalActions:_,additionalActionsClassName:m,autoMarkReadThreadId:h,...g},b)=>{const v=React.useRef(null),y=useRefs(b,v),E=useCurrentUserId(),w=useDeleteRoomComment(e.roomId),C=useEditRoomComment(e.roomId),x=useAddRoomCommentReaction(e.roomId),R=useRemoveRoomCommentReaction(e.roomId),S=useOverrides(f),[D,T]=React.useState(!1),[A,O]=React.useState(!1),[I,k]=React.useState(!1),[N,j]=React.useState(!1),{mediaAttachments:$,fileAttachments:F}=React.useMemo(()=>separateMediaAttachments(e.attachments),[e.attachments]),P=React.useCallback(e=>{e.stopPropagation()},[]),M=React.useCallback(()=>{T(!0)},[]),B=React.useCallback(e=>{e.stopPropagation(),T(!1)},[]),L=React.useCallback(({body:t,attachments:n},o)=>{d?.(e),o.preventDefault(),T(!1),C({commentId:e.id,threadId:e.threadId,body:t,attachments:n})},[e,C,d]),U=React.useCallback(()=>{u?.(e),w({commentId:e.id,threadId:e.threadId})},[e,w,u]),V=React.useCallback(t=>{s?.(e.userId,t)},[e.userId,s]),H=React.useCallback(t=>{const n=e.reactions.findIndex(e=>e.emoji===t);n>=0&&E&&e.reactions[n]?.users.some(e=>e.id===E)?R({threadId:e.threadId,commentId:e.id,emoji:t}):x({threadId:e.threadId,commentId:e.id,emoji:t})},[x,e.id,e.reactions,e.threadId,R,E]);return React.useEffect(()=>{if(!("undefined"!=typeof window))return;window.location.hash.slice(1)===e.id&&O(!0)},[]),n||e.body?jsxRuntime.exports.jsxs(TooltipProvider,{children:[h&&jsxRuntime.exports.jsx(AutoMarkReadThreadIdHandler,{commentRef:v,threadId:h,roomId:e.roomId}),jsxRuntime.exports.jsxs("div",{id:e.id,className:classNames("lb-root lb-comment",t&&"lb-comment:indent-content","hover"===o&&"lb-comment:show-actions-hover",(I||N)&&"lb-comment:action-open",p),"data-deleted":e.body?void 0:"","data-editing":D?"":void 0,"data-target":A?"":void 0,dir:S.dir,...g,ref:y,children:[jsxRuntime.exports.jsxs("div",{className:"lb-comment-header",children:[jsxRuntime.exports.jsxs("div",{className:"lb-comment-details",children:[jsxRuntime.exports.jsx(Avatar,{className:"lb-comment-avatar",userId:e.userId,onClick:V}),jsxRuntime.exports.jsxs("span",{className:"lb-comment-details-labels",children:[jsxRuntime.exports.jsx(User,{className:"lb-comment-author",userId:e.userId,onClick:V}),jsxRuntime.exports.jsxs("span",{className:"lb-comment-date",children:[jsxRuntime.exports.jsx(Timestamp,{locale:S.locale,date:e.createdAt,className:"lb-date lb-comment-date-created"}),e.editedAt&&e.body&&jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[" ",jsxRuntime.exports.jsx("span",{className:"lb-comment-date-edited",children:S.COMMENT_EDITED})]})]})]})]}),o&&!D&&jsxRuntime.exports.jsxs("div",{className:classNames("lb-comment-actions",m),children:[_??null,r&&jsxRuntime.exports.jsx(EmojiPicker,{onEmojiSelect:H,onOpenChange:j,children:jsxRuntime.exports.jsx(Tooltip,{content:S.COMMENT_ADD_REACTION,children:jsxRuntime.exports.jsx(PopoverTrigger,{asChild:!0,children:jsxRuntime.exports.jsx(Button,{className:"lb-comment-action",onClick:P,"aria-label":S.COMMENT_ADD_REACTION,children:jsxRuntime.exports.jsx(EmojiAddIcon,{className:"lb-button-icon"})})})})}),e.userId===E&&jsxRuntime.exports.jsx(Dropdown,{open:I,onOpenChange:k,align:"end",content:jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsxs(DropdownItem,{onSelect:M,onClick:P,children:[jsxRuntime.exports.jsx(EditIcon,{className:"lb-dropdown-item-icon"}),S.COMMENT_EDIT]}),jsxRuntime.exports.jsxs(DropdownItem,{onSelect:U,onClick:P,children:[jsxRuntime.exports.jsx(DeleteIcon,{className:"lb-dropdown-item-icon"}),S.COMMENT_DELETE]})]}),children:jsxRuntime.exports.jsx(Tooltip,{content:S.COMMENT_MORE,children:jsxRuntime.exports.jsx(DropdownMenuTrigger,{asChild:!0,children:jsxRuntime.exports.jsx(Button,{className:"lb-comment-action",disabled:!e.body,onClick:P,"aria-label":S.COMMENT_MORE,children:jsxRuntime.exports.jsx(EllipsisIcon,{className:"lb-button-icon"})})})})})]})]}),jsxRuntime.exports.jsx("div",{className:"lb-comment-content",children:D?jsxRuntime.exports.jsx(Composer,{className:"lb-comment-composer",onComposerSubmit:L,defaultValue:e.body,defaultAttachments:e.attachments,autoFocus:!0,showAttribution:!1,showAttachments:a,showFormattingControls:i,actions:jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(Tooltip,{content:S.COMMENT_EDIT_COMPOSER_CANCEL,"aria-label":S.COMMENT_EDIT_COMPOSER_CANCEL,children:jsxRuntime.exports.jsx(Button,{className:"lb-composer-action",onClick:B,children:jsxRuntime.exports.jsx(CrossIcon,{className:"lb-button-icon"})})}),jsxRuntime.exports.jsx(ShortcutTooltip,{content:S.COMMENT_EDIT_COMPOSER_SAVE,shortcut:jsxRuntime.exports.jsx(ShortcutTooltipKey,{name:"enter"}),children:jsxRuntime.exports.jsx(ComposerSubmit,{asChild:!0,children:jsxRuntime.exports.jsx(Button,{variant:"primary",className:"lb-composer-action",onClick:P,"aria-label":S.COMMENT_EDIT_COMPOSER_SAVE,children:jsxRuntime.exports.jsx(CheckIcon,{className:"lb-button-icon"})})})})]}),overrides:{COMPOSER_PLACEHOLDER:S.COMMENT_EDIT_COMPOSER_PLACEHOLDER},roomId:e.roomId}):e.body?jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(CommentBody,{className:"lb-comment-body",body:e.body,components:{Mention:({userId:e})=>jsxRuntime.exports.jsx(CommentMention,{userId:e,onClick:t=>l?.(e,t)}),Link:CommentLink}}),a&&($.length>0||F.length>0)?jsxRuntime.exports.jsxs("div",{className:"lb-comment-attachments",children:[$.length>0?jsxRuntime.exports.jsx("div",{className:"lb-attachments",children:$.map(t=>jsxRuntime.exports.jsx(CommentMediaAttachment,{attachment:t,overrides:f,onAttachmentClick:c,roomId:e.roomId},t.id))}):null,F.length>0?jsxRuntime.exports.jsx("div",{className:"lb-attachments",children:F.map(t=>jsxRuntime.exports.jsx(CommentFileAttachment,{attachment:t,overrides:f,onAttachmentClick:c,roomId:e.roomId},t.id))}):null]}):null,r&&e.reactions.length>0&&jsxRuntime.exports.jsxs("div",{className:"lb-comment-reactions",children:[e.reactions.map(t=>jsxRuntime.exports.jsx(CommentReaction,{comment:e,reaction:t,overrides:f},t.emoji)),jsxRuntime.exports.jsx(EmojiPicker,{onEmojiSelect:H,children:jsxRuntime.exports.jsx(Tooltip,{content:S.COMMENT_ADD_REACTION,children:jsxRuntime.exports.jsx(PopoverTrigger,{asChild:!0,children:jsxRuntime.exports.jsx(Button,{className:"lb-comment-reaction lb-comment-reaction-add",variant:"outline",onClick:P,"aria-label":S.COMMENT_ADD_REACTION,children:jsxRuntime.exports.jsx(EmojiAddIcon,{className:"lb-button-icon"})})})})})]})]}):jsxRuntime.exports.jsx("div",{className:"lb-comment-body",children:jsxRuntime.exports.jsx("p",{className:"lb-comment-deleted",children:S.COMMENT_DELETED})})})]})]}):null}),PLACEHOLDER_BASE_URL="https://localhost:9999",ABSOLUTE_URL_REGEX=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/;function generateURL(e,t,n){const o=ABSOLUTE_URL_REGEX.test(e),r=new URL(e,o?void 0:PLACEHOLDER_BASE_URL);if(void 0!==t)for(const[e,n]of Object.entries(t))n&&r.searchParams.set(e,String(n));return r.hash||void 0===n||(r.hash=`#${n}`),o?r.href:r.href.replace(PLACEHOLDER_BASE_URL,"")}const INBOX_NOTIFICATION_THREAD_MAX_COMMENTS=3;function InboxNotificationComment({comment:e,showHeader:t=!0,showAttachments:n=!0,showReactions:o=!0,overrides:r,className:a,...i}){const s=useOverrides(r);return jsxRuntime.exports.jsxs("div",{className:classNames("lb-root lb-inbox-notification-comment lb-comment",a),...i,children:[t&&jsxRuntime.exports.jsx("div",{className:"lb-comment-header",children:jsxRuntime.exports.jsx(User,{className:"lb-comment-author",userId:e.userId})}),jsxRuntime.exports.jsx("div",{className:"lb-comment-content",children:e.body?jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[jsxRuntime.exports.jsx(CommentBody,{className:"lb-comment-body",body:e.body,components:{Mention:CommentMention,Link:CommentNonInteractiveLink}}),o&&e.reactions.length>0&&jsxRuntime.exports.jsx("div",{className:"lb-comment-reactions",children:e.reactions.map(e=>jsxRuntime.exports.jsx(CommentNonInteractiveReaction,{reaction:e,overrides:r,disabled:!0},e.emoji))}),n&&e.attachments.length>0?jsxRuntime.exports.jsx("div",{className:"lb-comment-attachments",children:jsxRuntime.exports.jsx("div",{className:"lb-attachments",children:e.attachments.map(t=>jsxRuntime.exports.jsx(CommentNonInteractiveFileAttachment,{attachment:t,overrides:r,roomId:e.roomId},t.id))})}):null]}):jsxRuntime.exports.jsx("div",{className:"lb-comment-body",children:jsxRuntime.exports.jsx("p",{className:"lb-comment-deleted",children:s.COMMENT_DELETED})})})]})}function findLastCommentWithMentionedId(e,t){if(e.length)for(let n=e.length-1;n>=0;n--){const o=e[n];if(o.userId!==t&&o.body){if(getMentionedIdsFromCommentBody(o.body).includes(t))return o}}}function getUserIdsFromComments(e){return Array.from(new Set(e.map(e=>e.userId)))}function generateInboxNotificationThreadContents(e,t,n){const o=t.comments.filter(t=>!!t.body&&(e.readAt?t.createdAt>e.readAt&&t.createdAt<=e.notifiedAt:t.createdAt<=e.notifiedAt));if(0===o.length){const n=t.comments.filter(e=>e.body).slice(-INBOX_NOTIFICATION_THREAD_MAX_COMMENTS);return{type:"comments",unread:!1,comments:n,userIds:getUserIdsFromComments(n),date:e.notifiedAt}}const r=findLastCommentWithMentionedId(o,n);if(r)return{type:"mention",unread:!0,comments:[r],userIds:[r.userId],date:r.createdAt};return{type:"comments",unread:!0,comments:o.slice(-INBOX_NOTIFICATION_THREAD_MAX_COMMENTS),userIds:getUserIdsFromComments(o),date:e.notifiedAt}}function Room({roomId:e,className:t,...n}){const{info:o,isLoading:r}=useRoomInfo(e),a=React.useMemo(()=>o?.name??e,[o?.name,e]);return jsxRuntime.exports.jsx("span",{className:classNames("lb-name lb-room",t),"data-loading":r?"":void 0,...n,children:r?null:a})}const InboxNotificationLayout=React.forwardRef(({inboxNotification:e,children:t,aside:n,title:o,date:r,unread:a,markAsReadOnClick:i,onClick:s,href:l,showActions:c,overrides:d,components:u,className:f,asChild:p,..._},m)=>{const h=useOverrides(d),{Anchor:g}=useComponents(u),b=p?Slot$2:g,[v,y]=React.useState(!1),E=useMarkInboxNotificationAsRead(),w=useDeleteInboxNotification(),C=React.useCallback(t=>{s?.(t);const n=i??Boolean(l);a&&n&&E(e.id)},[l,e.id,i,E,s,a]),x=React.useCallback(e=>{e.stopPropagation()},[]),R=React.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),S=React.useCallback(e=>{e.preventDefault(),e.stopPropagation(),y(e=>!e)},[]),D=React.useCallback(()=>{E(e.id)},[e.id,E]),T=React.useCallback(()=>{w(e.id)},[e.id,w]);return jsxRuntime.exports.jsx(TooltipProvider,{children:jsxRuntime.exports.jsxs(b,{className:classNames("lb-root lb-inbox-notification","hover"===c&&"lb-inbox-notification:show-actions-hover",v&&"lb-inbox-notification:action-open",f),dir:h.dir,"data-unread":a?"":void 0,"data-kind":e.kind,onClick:C,href:l,..._,ref:m,children:[n&&jsxRuntime.exports.jsx("div",{className:"lb-inbox-notification-aside",children:n}),jsxRuntime.exports.jsxs("div",{className:"lb-inbox-notification-content",children:[jsxRuntime.exports.jsxs("div",{className:"lb-inbox-notification-header",children:[jsxRuntime.exports.jsx("span",{className:"lb-inbox-notification-title",children:o}),jsxRuntime.exports.jsx("div",{className:"lb-inbox-notification-details",children:jsxRuntime.exports.jsxs("span",{className:"lb-inbox-notification-details-labels",children:[jsxRuntime.exports.jsx(Timestamp,{locale:h.locale,date:r,className:"lb-date lb-inbox-notification-date"}),a&&jsxRuntime.exports.jsx("span",{className:"lb-inbox-notification-unread-indicator",role:"presentation"})]})}),c&&jsxRuntime.exports.jsx("div",{className:"lb-inbox-notification-actions",children:jsxRuntime.exports.jsx(Dropdown,{open:v,onOpenChange:y,align:"end",content:jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:[a?jsxRuntime.exports.jsxs(DropdownItem,{onSelect:D,onClick:x,children:[jsxRuntime.exports.jsx(CheckIcon,{className:"lb-dropdown-item-icon"}),h.INBOX_NOTIFICATION_MARK_AS_READ]}):null,jsxRuntime.exports.jsxs(DropdownItem,{onSelect:T,onClick:x,children:[jsxRuntime.exports.jsx(DeleteIcon,{className:"lb-dropdown-item-icon"}),h.INBOX_NOTIFICATION_DELETE]})]}),children:jsxRuntime.exports.jsx(Tooltip,{content:h.INBOX_NOTIFICATION_MORE,children:jsxRuntime.exports.jsx(DropdownMenuTrigger,{asChild:!0,children:jsxRuntime.exports.jsx(Button,{className:"lb-inbox-notification-action",onClick:S,onPointerDown:R,onPointerUp:R,"aria-label":h.INBOX_NOTIFICATION_MORE,children:jsxRuntime.exports.jsx(EllipsisIcon,{className:"lb-button-icon"})})})})})})]}),jsxRuntime.exports.jsx("div",{className:"lb-inbox-notification-body",children:t})]})]})})});function InboxNotificationIcon({className:e,...t}){return jsxRuntime.exports.jsx("div",{className:classNames("lb-inbox-notification-icon",e),...t})}function InboxNotificationAvatar({className:e,...t}){return jsxRuntime.exports.jsx(Avatar,{className:classNames("lb-inbox-notification-avatar",e),...t})}const InboxNotificationThread=React.forwardRef(({inboxNotification:e,href:t,showRoomName:n=!0,showReactions:o=!0,showAttachments:r=!0,showActions:a="hover",overrides:i,...s},l)=>{const c=useOverrides(i),d=_useInboxNotificationThread(e.id),u=useCurrentUserId(),{info:f}=useRoomInfo(e.roomId),p=React.useMemo(()=>{const t=generateInboxNotificationThreadContents(e,d,u??"");if(0===t.comments.length||0===t.userIds.length)return null;switch(t.type){case"comments":{const e=[...t.userIds].reverse(),a=e[0],s=jsxRuntime.exports.jsx(InboxNotificationAvatar,{userId:a}),l=c.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST(jsxRuntime.exports.jsx(List,{values:e.map(e=>jsxRuntime.exports.jsx(User,{userId:e,replaceSelf:!0},e)),formatRemaining:c.LIST_REMAINING_USERS,truncate:INBOX_NOTIFICATION_THREAD_MAX_COMMENTS-1,locale:c.locale}),n?jsxRuntime.exports.jsx(Room,{roomId:d.roomId}):void 0,e.length),u=jsxRuntime.exports.jsx("div",{className:"lb-inbox-notification-comments",children:t.comments.map(e=>jsxRuntime.exports.jsx(InboxNotificationComment,{comment:e,showHeader:t.comments.length>1,showAttachments:r,showReactions:o,overrides:i},e.id))});return{unread:t.unread,date:t.date,aside:s,title:l,content:u,threadId:d.id,commentId:t.comments[t.comments.length-1].id}}case"mention":{const e=t.userIds[0],a=t.comments[0],s=jsxRuntime.exports.jsx(InboxNotificationAvatar,{userId:e}),l=c.INBOX_NOTIFICATION_THREAD_MENTION(jsxRuntime.exports.jsx(User,{userId:e},e),n?jsxRuntime.exports.jsx(Room,{roomId:d.roomId}):void 0),u=jsxRuntime.exports.jsx("div",{className:"lb-inbox-notification-comments",children:jsxRuntime.exports.jsx(InboxNotificationComment,{comment:a,showHeader:!1,showAttachments:r,showReactions:o,overrides:i},a.id)});return{unread:t.unread,date:t.date,aside:s,title:l,content:u,threadId:d.id,commentId:a.id}}default:return assertNever(t,"Unexpected thread inbox notification type")}},[c,u,e,i,n,r,o,d]),_=React.useMemo(()=>{const e=t??f?.url;return e?generateURL(e,void 0,p?.commentId):void 0},[p?.commentId,t,f?.url]);if(!p)return null;const{aside:m,title:h,content:g,date:b,unread:v}=p;return jsxRuntime.exports.jsx(InboxNotificationLayout,{inboxNotification:e,aside:m,title:h,date:b,unread:v,overrides:i,href:_,showActions:a,markAsReadOnClick:!1,...s,ref:l,children:g})}),InboxNotificationTextMention=React.forwardRef(({inboxNotification:e,showActions:t="hover",showRoomName:n=!0,overrides:o,...r},a)=>{const i=useOverrides(o),s=React.useMemo(()=>!e.readAt||e.notifiedAt>e.readAt,[e.notifiedAt,e.readAt]);return jsxRuntime.exports.jsx(InboxNotificationLayout,{inboxNotification:e,aside:jsxRuntime.exports.jsx(InboxNotificationAvatar,{userId:e.createdBy}),title:i.INBOX_NOTIFICATION_TEXT_MENTION(jsxRuntime.exports.jsx(User,{userId:e.createdBy},e.createdBy),n?jsxRuntime.exports.jsx(Room,{roomId:e.roomId}):void 0),date:e.notifiedAt,unread:s,overrides:o,showActions:t,...r,ref:a})}),InboxNotificationCustom=React.forwardRef(({inboxNotification:e,showActions:t="hover",title:n,aside:o,children:r,overrides:a,...i},s)=>{const l=React.useMemo(()=>!e.readAt||e.notifiedAt>e.readAt,[e.notifiedAt,e.readAt]);return jsxRuntime.exports.jsx(InboxNotificationLayout,{inboxNotification:e,aside:o,title:n,date:e.notifiedAt,unread:l,overrides:a,showActions:t,...i,ref:s,children:r})});React.forwardRef(({inboxNotification:e,...t},n)=>jsxRuntime.exports.jsxs(InboxNotificationCustom,{inboxNotification:e,...t,title:jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment,{children:["Custom notification kind ",jsxRuntime.exports.jsx("code",{children:e.kind})," is not handled"]}),aside:jsxRuntime.exports.jsx(InboxNotificationIcon,{children:jsxRuntime.exports.jsx(WarningIcon,{})}),ref:n,"data-missing":"",children:["Notifications of this kind won’t be displayed in production. Use the"," ",jsxRuntime.exports.jsx("code",{children:"kinds"})," prop to define how they should be rendered."]}));const InboxNotification=Object.assign(React.forwardRef(({inboxNotification:e,kinds:t,...n},o)=>{switch(e.kind){case"thread":{const r=t?.thread??InboxNotificationThread;return jsxRuntime.exports.jsx(r,{inboxNotification:e,...n,ref:o})}case"textMention":{const r=t?.textMention??InboxNotificationTextMention;return jsxRuntime.exports.jsx(r,{inboxNotification:e,...n,ref:o})}default:{const r=t?.[e.kind];return r?jsxRuntime.exports.jsx(r,{inboxNotification:e,...n,ref:o}):null}}}),{Thread:InboxNotificationThread,TextMention:InboxNotificationTextMention,Custom:InboxNotificationCustom,Icon:InboxNotificationIcon,Avatar:InboxNotificationAvatar});function ReachEndMarker({enabled:e,onReachEnd:t}){const n=React.useRef(null);return useVisibleCallback(n,t,{enabled:e}),jsxRuntime.exports.jsx("div",{ref:n,style:{height:0}})}const InboxNotificationList=React.forwardRef(({onReachEnd:e,children:t,className:n,...o},r)=>jsxRuntime.exports.jsxs("ol",{className:classNames("lb-root lb-inbox-notification-list",n),...o,ref:r,children:[React.Children.map(t,(e,t)=>jsxRuntime.exports.jsx("li",{className:"lb-inbox-notification-list-item",children:e},t)),e&&jsxRuntime.exports.jsx(ReachEndMarker,{onReachEnd:e,enabled:React.Children.count(t)>0})]}));function ArrowDownIcon(e){return jsxRuntime.exports.jsx(Icon,{...e,children:jsxRuntime.exports.jsx("path",{d:"M10 4v12m6-6-6 6-6-6"})})}function ResolveIcon(e){return jsxRuntime.exports.jsxs(Icon,{...e,children:[jsxRuntime.exports.jsx("circle",{cx:10,cy:10,r:7}),jsxRuntime.exports.jsx("path",{d:"m13 8-4 4-2-2"})]})}function ResolvedIcon(e){return jsxRuntime.exports.jsxs(Icon,{...e,children:[jsxRuntime.exports.jsx("circle",{cx:10,cy:10,r:7,fill:"currentColor"}),jsxRuntime.exports.jsx("path",{d:"m13 8-4 4-2-2",stroke:"var(--lb-icon-background)"})]})}function findLastIndex(e,t){let n=e.length-1;for(;n>=0;){const o=e[n];if(o&&t(o))return n;n--}return-1}const Thread=React.forwardRef(({thread:e,indentCommentContent:t=!0,showActions:n="hover",showDeletedComments:o,showResolveAction:r=!0,showReactions:a=!0,showComposer:i="collapsed",showAttachments:s=!0,showComposerFormattingControls:l=!0,onResolvedChange:c,onCommentEdit:d,onCommentDelete:u,onThreadDelete:f,onAuthorClick:p,onMentionClick:_,onAttachmentClick:m,onComposerSubmit:h,overrides:g,className:b,...v},y)=>{const E=useMarkRoomThreadAsResolved(e.roomId),w=useMarkRoomThreadAsUnresolved(e.roomId),C=useOverrides(g),x=React.useMemo(()=>o?0:e.comments.findIndex(e=>e.body),[o,e.comments]),R=React.useMemo(()=>o?e.comments.length-1:findLastIndex(e.comments,e=>e.body),[o,e.comments]),{status:S,unreadSince:D}=useThreadSubscription(e.id),T=React.useMemo(()=>{if("subscribed"!==S)return;if(null===D)return x;const t=e.comments.findIndex(e=>(!!o||e.body)&&e.createdAt>D);return t>=0&&t<e.comments.length?t:void 0},[x,o,S,e.comments,D]),[A,O]=React.useState(),I=void 0===A?T:A;React.useEffect(()=>{T&&O(e=>Math.min(e??1/0,T))},[T]);const k=React.useCallback(e=>{e.stopPropagation()},[]),N=React.useCallback(t=>{c?.(t),t?E(e.id):w(e.id)},[E,w,c,e.id]),j=React.useCallback(t=>{u?.(t);e.comments.filter(e=>e.body).length<=1&&f?.(e)},[u,f,e]);return jsxRuntime.exports.jsx(TooltipProvider,{children:jsxRuntime.exports.jsxs("div",{className:classNames("lb-root lb-thread","hover"===n&&"lb-thread:show-actions-hover",b),"data-resolved":e.resolved?"":void 0,"data-unread":void 0!==T?"":void 0,dir:C.dir,...v,ref:y,children:[jsxRuntime.exports.jsx("div",{className:"lb-thread-comments",children:e.comments.map((i,c)=>{const u=c===x,f=void 0!==T&&c>=T,h=jsxRuntime.exports.jsx(Comment,{className:"lb-thread-comment","data-unread":f?"":void 0,comment:i,indentContent:t,showDeleted:o,showActions:n,showReactions:a,showAttachments:s,showComposerFormattingControls:l,onCommentEdit:d,onCommentDelete:j,onAuthorClick:p,onMentionClick:_,onAttachmentClick:m,autoMarkReadThreadId:c===R&&f?e.id:void 0,additionalActionsClassName:u?"lb-thread-actions":void 0,additionalActions:u&&r?jsxRuntime.exports.jsx(Tooltip,{content:e.resolved?C.THREAD_UNRESOLVE:C.THREAD_RESOLVE,children:jsxRuntime.exports.jsx(Root$3,{pressed:e.resolved,onPressedChange:N,asChild:!0,children:jsxRuntime.exports.jsx(Button,{className:"lb-comment-action",onClick:k,"aria-label":e.resolved?C.THREAD_UNRESOLVE:C.THREAD_RESOLVE,children:e.resolved?jsxRuntime.exports.jsx(ResolvedIcon,{className:"lb-button-icon"}):jsxRuntime.exports.jsx(ResolveIcon,{className:"lb-button-icon"})})})}):null},i.id);return c===I&&I!==x&&I<=R?jsxRuntime.exports.jsxs(React.Fragment,{children:[jsxRuntime.exports.jsx("div",{className:"lb-thread-new-indicator","aria-label":C.THREAD_NEW_INDICATOR_DESCRIPTION,children:jsxRuntime.exports.jsxs("span",{className:"lb-thread-new-indicator-label",children:[jsxRuntime.exports.jsx(ArrowDownIcon,{className:"lb-thread-new-indicator-label-icon"}),C.THREAD_NEW_INDICATOR]})}),h]},i.id):h})}),i&&jsxRuntime.exports.jsx(Composer,{className:"lb-thread-composer",threadId:e.id,defaultCollapsed:"collapsed"===i||void 0,showAttachments:s,showFormattingControls:l,onComposerSubmit:h,overrides:{COMPOSER_PLACEHOLDER:C.THREAD_COMPOSER_PLACEHOLDER,COMPOSER_SEND:C.THREAD_COMPOSER_SEND},roomId:e.roomId})]})})});detectDupes(PKG_NAME,PKG_VERSION,PKG_FORMAT);const ErrorBoundaryContext=React.createContext(null),initialState={didCatch:!1,error:null};class ErrorBoundary extends React.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=initialState}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(null!==e){for(var t,n,o=arguments.length,r=new Array(o),a=0;a<o;a++)r[a]=arguments[a];null===(t=(n=this.props).onReset)||void 0===t||t.call(n,{args:r,reason:"imperative-api"}),this.setState(initialState)}}componentDidCatch(e,t){var n,o;null===(n=(o=this.props).onError)||void 0===n||n.call(o,e,t)}componentDidUpdate(e,t){const{didCatch:n}=this.state,{resetKeys:o}=this.props;var r,a;n&&null!==t.error&&hasArrayChanged(e.resetKeys,o)&&(null===(r=(a=this.props).onReset)||void 0===r||r.call(a,{next:o,prev:e.resetKeys,reason:"keys"}),this.setState(initialState))}render(){const{children:e,fallbackRender:t,FallbackComponent:n,fallback:o}=this.props,{didCatch:r,error:a}=this.state;let i=e;if(r){const e={error:a,resetErrorBoundary:this.resetErrorBoundary};if("function"==typeof t)i=t(e);else if(n)i=React.createElement(n,e);else{if(void 0===o)throw a;i=o}}return React.createElement(ErrorBoundaryContext.Provider,{value:{didCatch:r,error:a,resetErrorBoundary:this.resetErrorBoundary}},i)}}function hasArrayChanged(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.length!==t.length||e.some((e,n)=>!Object.is(e,t[n]))}function Loading(){return React__default.default.createElement("svg",{className:"animate-spin h-5 w-5 mr-3 ...",viewBox:"0 0 24 24"})}var Threads=function(e){var t=e.indentCommentContent,n=e.showActions,o=e.showDeletedComments,r=e.showResolveAction,a=e.showReactions,i=e.showComposer,s=e.showAttachments,l=e.showComposerFormattingControls,c=_useThreadsSuspense().threads;return React__default.default.createElement(React__default.default.Fragment,null,c.map(function(e){return React__default.default.createElement(Thread,{key:e.id,thread:e,className:"thread",indentCommentContent:t,showActions:n,showDeletedComments:o,showResolveAction:r,showReactions:a,showComposer:i,showAttachments:s,showComposerFormattingControls:l})}),i&&React__default.default.createElement(Composer,{className:"composer"}))},AmisComments=function(e){var t=e.className,n=void 0===t?"m-2 flex flex-col gap-y-2":t,o=e.roomId,r=e.readonly,a=void 0!==r&&r,i=e.indentCommentContent,s=void 0===i||i,l=e.showActions,c=void 0===l?"hover":l,d=e.showDeletedComments,u=e.showResolveAction,f=void 0===u||u,p=e.showReactions,_=void 0===p||p,m=e.showComposer,h=void 0===m?"collapsed":m,g=e.showAttachments,b=void 0===g||g,v=e.showComposerFormattingControls,y=void 0===v||v;return a&&(h=!1,c=!1),React__default.default.createElement(_RoomProvider,{id:o},React__default.default.createElement(ErrorBoundary,{fallback:React__default.default.createElement("div",{className:"error"},"There was an error while getting threads.")},React__default.default.createElement(React.Suspense,{fallback:React__default.default.createElement(Loading,null)},React__default.default.createElement("main",{className:n},React__default.default.createElement(Threads,{indentCommentContent:s,showActions:c,showDeletedComments:d,showResolveAction:f,showReactions:_,showComposer:h,showAttachments:b,showComposerFormattingControls:y})))))};function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}function clsx(){for(var e,t,n=0,o="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}var frontend_inbox_empty$1="There aren’t any notifications yet.",frontend_comment_inbox$1="Comment Inbox",frontend_mark_all_read$1="Mark all as read",frontend_delete_all$1="Delete all",frontend_fallback_error$1="There was an error while getting notifications.",frontend_fetch_mention_suggestions_error$1="Problem resolving mention suggestions",frontend_fetch_rooms_info_error$1="Problem resolving rooms info",frontend_fetch_users_error$1="Problem resolving users",en_us$2={frontend_inbox_empty:frontend_inbox_empty$1,frontend_comment_inbox:frontend_comment_inbox$1,frontend_mark_all_read:frontend_mark_all_read$1,frontend_delete_all:frontend_delete_all$1,frontend_fallback_error:frontend_fallback_error$1,frontend_fetch_mention_suggestions_error:frontend_fetch_mention_suggestions_error$1,frontend_fetch_rooms_info_error:frontend_fetch_rooms_info_error$1,frontend_fetch_users_error:frontend_fetch_users_error$1},frontend_inbox_empty="没有通知。",frontend_comment_inbox="评论收件箱",frontend_mark_all_read="全部标记为已读",frontend_delete_all="全部删除",frontend_fallback_error="收到通知时出现错误。",frontend_fetch_mention_suggestions_error="请求提及建议时出现错误。",frontend_fetch_rooms_info_error="请求Rooms信息时出现错误。",frontend_fetch_users_error="请求用户清单时出现错误。",COMPOSER_PLACEHOLDER="写评论...",THREAD_COMPOSER_PLACEHOLDER="回复...",THREAD_COMPOSER_SEND="回复",THREAD_RESOLVE="标记为已解决",THREAD_UNRESOLVE="重新开启讨论",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented="评论",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in="于",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread="于评论栏",INBOX_NOTIFICATION_DELETE="删除通知",INBOX_NOTIFICATION_MORE="更多",COMMENT_EDIT="编辑讨论",COMMENT_EDIT_COMPOSER_PLACEHOLDER="编辑讨论...",COMMENT_DELETE="删除讨论",COMMENT_EDIT_COMPOSER_CANCEL="取消",COMMENT_EDIT_COMPOSER_SAVE="保存",COMMENT_MORE="更多",COMPOSER_INSERT_MENTION="提及某个人",COMPOSER_INSERT_EMOJI="添加表情",COMPOSER_ATTACH_FILES="上传附件",COMMENT_ADD_REACTION="添加表情",COMPOSER_SEND="发送",zh_cn$2={frontend_inbox_empty:frontend_inbox_empty,frontend_comment_inbox:frontend_comment_inbox,frontend_mark_all_read:frontend_mark_all_read,frontend_delete_all:frontend_delete_all,frontend_fallback_error:frontend_fallback_error,frontend_fetch_mention_suggestions_error:frontend_fetch_mention_suggestions_error,frontend_fetch_rooms_info_error:frontend_fetch_rooms_info_error,frontend_fetch_users_error:frontend_fetch_users_error,COMPOSER_PLACEHOLDER:COMPOSER_PLACEHOLDER,THREAD_COMPOSER_PLACEHOLDER:THREAD_COMPOSER_PLACEHOLDER,THREAD_COMPOSER_SEND:THREAD_COMPOSER_SEND,THREAD_RESOLVE:THREAD_RESOLVE,THREAD_UNRESOLVE:THREAD_UNRESOLVE,INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented:INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented,INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in:INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in,INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread:INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread,INBOX_NOTIFICATION_DELETE:INBOX_NOTIFICATION_DELETE,INBOX_NOTIFICATION_MORE:INBOX_NOTIFICATION_MORE,COMMENT_EDIT:COMMENT_EDIT,COMMENT_EDIT_COMPOSER_PLACEHOLDER:COMMENT_EDIT_COMPOSER_PLACEHOLDER,COMMENT_DELETE:COMMENT_DELETE,COMMENT_EDIT_COMPOSER_CANCEL:COMMENT_EDIT_COMPOSER_CANCEL,COMMENT_EDIT_COMPOSER_SAVE:COMMENT_EDIT_COMPOSER_SAVE,COMMENT_MORE:COMMENT_MORE,COMPOSER_INSERT_MENTION:COMPOSER_INSERT_MENTION,COMPOSER_INSERT_EMOJI:COMPOSER_INSERT_EMOJI,COMPOSER_ATTACH_FILES:COMPOSER_ATTACH_FILES,COMMENT_ADD_REACTION:COMMENT_ADD_REACTION,COMPOSER_SEND:COMPOSER_SEND};function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=_typeof(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function toPropertyKey(e){var t=toPrimitive(e,"string");return"symbol"==_typeof(t)?t:t+""}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,toPropertyKey(o.key),o)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _possibleConstructorReturn(e,t){if(t&&("object"==_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _getPrototypeOf(e){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_getPrototypeOf(e)}function _defineProperty(e,t,n){return(t=toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _toArray(e){return _arrayWithHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableRest()}function ownKeys$6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$6(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$6(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$6(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var consoleLogger={type:"logger",log:function(e){this.output("log",e)},warn:function(e){this.output("warn",e)},error:function(e){this.output("error",e)},output:function(e,t){console&&console[e]&&console[e].apply(console,t)}},Logger=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,e),this.init(t,n)}return _createClass(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||consoleLogger,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}},{key:"deprecate",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}},{key:"forward",value:function(e,t,n,o){return o&&!this.debug?null:("string"==typeof e[0]&&(e[0]="".concat(n).concat(this.prefix," ").concat(e[0])),this.logger[t](e))}},{key:"create",value:function(t){return new e(this.logger,_objectSpread$6(_objectSpread$6({},{prefix:"".concat(this.prefix,":").concat(t,":")}),this.options))}},{key:"clone",value:function(t){return(t=t||this.options).prefix=t.prefix||this.prefix,new e(this.logger,t)}}]),e}(),baseLogger=new Logger,EventEmitter=function(){function e(){_classCallCheck(this,e),this.observers={}}return _createClass(e,[{key:"on",value:function(e,t){var n=this;return e.split(" ").forEach(function(e){n.observers[e]=n.observers[e]||[],n.observers[e].push(t)}),this}},{key:"off",value:function(e,t){this.observers[e]&&(t?this.observers[e]=this.observers[e].filter(function(e){return e!==t}):delete this.observers[e])}},{key:"emit",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];this.observers[e]&&[].concat(this.observers[e]).forEach(function(e){e.apply(void 0,n)});this.observers["*"]&&[].concat(this.observers["*"]).forEach(function(t){t.apply(t,[e].concat(n))})}}]),e}();function defer(){var e,t,n=new Promise(function(n,o){e=n,t=o});return n.resolve=e,n.reject=t,n}function makeString(e){return null==e?"":""+e}function copy(e,t,n){e.forEach(function(e){t[e]&&(n[e]=t[e])})}function getLastOfPath(e,t,n){function o(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function r(){return!e||"string"==typeof e}for(var a="string"!=typeof t?[].concat(t):t.split(".");a.length>1;){if(r())return{};var i=o(a.shift());!e[i]&&n&&(e[i]=new n),e=Object.prototype.hasOwnProperty.call(e,i)?e[i]:{}}return r()?{}:{obj:e,k:o(a.shift())}}function setPath(e,t,n){var o=getLastOfPath(e,t,Object);o.obj[o.k]=n}function pushPath(e,t,n,o){var r=getLastOfPath(e,t,Object),a=r.obj,i=r.k;a[i]=a[i]||[],o&&(a[i]=a[i].concat(n)),o||a[i].push(n)}function getPath(e,t){var n=getLastOfPath(e,t),o=n.obj,r=n.k;if(o)return o[r]}function getPathWithDefaults(e,t,n){var o=getPath(e,n);return void 0!==o?o:getPath(t,n)}function deepExtend(e,t,n){for(var o in t)"__proto__"!==o&&"constructor"!==o&&(o in e?"string"==typeof e[o]||e[o]instanceof String||"string"==typeof t[o]||t[o]instanceof String?n&&(e[o]=t[o]):deepExtend(e[o],t[o],n):e[o]=t[o]);return e}function regexEscape(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var _entityMap={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};function escape(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,function(e){return _entityMap[e]}):e}var isIE10="undefined"!=typeof window&&window.navigator&&void 0===window.navigator.userAgentData&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,chars=[" ",",","?","!",";"];function looksLikeObjectPath(e,t,n){t=t||"",n=n||"";var o=chars.filter(function(e){return t.indexOf(e)<0&&n.indexOf(e)<0});if(0===o.length)return!0;var r=new RegExp("(".concat(o.map(function(e){return"?"===e?"\\?":e}).join("|"),")")),a=!r.test(e);if(!a){var i=e.indexOf(n);i>0&&!r.test(e.substring(0,i))&&(a=!0)}return a}function deepFind(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(e){if(e[t])return e[t];for(var o=t.split(n),r=e,a=0;a<o.length;++a){if(!r)return;if("string"==typeof r[o[a]]&&a+1<o.length)return;if(void 0===r[o[a]]){for(var i=2,s=o.slice(a,a+i).join(n),l=r[s];void 0===l&&o.length>a+i;)i++,l=r[s=o.slice(a,a+i).join(n)];if(void 0===l)return;if(null===l)return null;if(t.endsWith(s)){if("string"==typeof l)return l;if(s&&"string"==typeof l[s])return l[s]}var c=o.slice(a+i).join(n);return c?deepFind(l,c,n):void 0}r=r[o[a]]}return r}}function ownKeys$5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$5(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$5(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _createSuper$3(e){var t=_isNativeReflectConstruct$3();return function(){var n,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$3(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}var ResourceStore=function(e){_inherits(n,e);var t=_createSuper$3(n);function n(e){var o,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return _classCallCheck(this,n),o=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(o)),o.data=e||{},o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),void 0===o.options.ignoreJSONStructure&&(o.options.ignoreJSONStructure=!0),o}return _createClass(n,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,a=void 0!==o.ignoreJSONStructure?o.ignoreJSONStructure:this.options.ignoreJSONStructure,i=[e,t];n&&"string"!=typeof n&&(i=i.concat(n)),n&&"string"==typeof n&&(i=i.concat(r?n.split(r):n)),e.indexOf(".")>-1&&(i=e.split("."));var s=getPath(this.data,i);return s||!a||"string"!=typeof n?s:deepFind(this.data&&this.data[e]&&this.data[e][t],n,r)}},{key:"addResource",value:function(e,t,n,o){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,i=[e,t];n&&(i=i.concat(a?n.split(a):n)),e.indexOf(".")>-1&&(o=t,t=(i=e.split("."))[1]),this.addNamespaces(t),setPath(this.data,i,o),r.silent||this.emit("added",e,t,n,o)}},{key:"addResources",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var r in n)"string"!=typeof n[r]&&"[object Array]"!==Object.prototype.toString.apply(n[r])||this.addResource(e,t,r,n[r],{silent:!0});o.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,o,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},i=[e,t];e.indexOf(".")>-1&&(o=n,n=t,t=(i=e.split("."))[1]),this.addNamespaces(t);var s=getPath(this.data,i)||{};o?deepExtend(s,n,r):s=_objectSpread$5(_objectSpread$5({},s),n),setPath(this.data,i,s),a.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?_objectSpread$5(_objectSpread$5({},{}),this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"hasLanguageSomeTranslations",value:function(e){var t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(function(e){return t[e]&&Object.keys(t[e]).length>0})}},{key:"toJSON",value:function(){return this.data}}]),n}(EventEmitter),postProcessor={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,o,r){var a=this;return e.forEach(function(e){a.processors[e]&&(t=a.processors[e].process(t,n,o,r))}),t}};function ownKeys$4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$4(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _createSuper$2(e){var t=_isNativeReflectConstruct$2();return function(){var n,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$2(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}var checkedLoadedFor={},Translator=function(e){_inherits(n,e);var t=_createSuper$2(n);function n(e){var o,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _classCallCheck(this,n),o=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(o)),copy(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,_assertThisInitialized(o)),o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),o.logger=baseLogger.create("translator"),o}return _createClass(n,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;var n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var o=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,r=t.ns||this.options.defaultNS||[],a=n&&e.indexOf(n)>-1,i=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||looksLikeObjectPath(e,n,o));if(a&&!i){var s=e.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:e,namespaces:r};var l=e.split(n);(n!==o||n===o&&this.options.ns.indexOf(l[0])>-1)&&(r=l.shift()),e=l.join(o)}return"string"==typeof r&&(r=[r]),{key:e,namespaces:r}}},{key:"translate",value:function(e,t,o){var r=this;if("object"!==_typeof(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),"object"===_typeof(t)&&(t=_objectSpread$4({},t)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var a=void 0!==t.returnDetails?t.returnDetails:this.options.returnDetails,i=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,s=this.extractFromKey(e[e.length-1],t),l=s.key,c=s.namespaces,d=c[c.length-1],u=t.lng||this.language,f=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&"cimode"===u.toLowerCase()){if(f){var p=t.nsSeparator||this.options.nsSeparator;return a?{res:"".concat(d).concat(p).concat(l),usedKey:l,exactUsedKey:l,usedLng:u,usedNS:d}:"".concat(d).concat(p).concat(l)}return a?{res:l,usedKey:l,exactUsedKey:l,usedLng:u,usedNS:d}:l}var _=this.resolve(e,t),m=_&&_.res,h=_&&_.usedKey||l,g=_&&_.exactUsedKey||l,b=Object.prototype.toString.apply(m),v=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,y=!this.i18nFormat||this.i18nFormat.handleAsObject;if(y&&m&&("string"!=typeof m&&"boolean"!=typeof m&&"number"!=typeof m)&&["[object Number]","[object Function]","[object RegExp]"].indexOf(b)<0&&("string"!=typeof v||"[object Array]"!==b)){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var E=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,m,_objectSpread$4(_objectSpread$4({},t),{},{ns:c})):"key '".concat(l," (").concat(this.language,")' returned an object instead of string.");return a?(_.res=E,_):E}if(i){var w="[object Array]"===b,C=w?[]:{},x=w?g:h;for(var R in m)if(Object.prototype.hasOwnProperty.call(m,R)){var S="".concat(x).concat(i).concat(R);C[R]=this.translate(S,_objectSpread$4(_objectSpread$4({},t),{joinArrays:!1,ns:c})),C[R]===S&&(C[R]=m[R])}m=C}}else if(y&&"string"==typeof v&&"[object Array]"===b)(m=m.join(v))&&(m=this.extendTranslation(m,e,t,o));else{var D=!1,T=!1,A=void 0!==t.count&&"string"!=typeof t.count,O=n.hasDefaultValue(t),I=A?this.pluralResolver.getSuffix(u,t.count,t):"",k=t["defaultValue".concat(I)]||t.defaultValue;!this.isValidLookup(m)&&O&&(D=!0,m=k),this.isValidLookup(m)||(T=!0,m=l);var N=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&T?void 0:m,j=O&&k!==m&&this.options.updateMissing;if(T||D||j){if(this.logger.log(j?"updateKey":"missingKey",u,d,l,j?k:m),i){var $=this.resolve(l,_objectSpread$4(_objectSpread$4({},t),{},{keySeparator:!1}));$&&$.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var F=[],P=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&P&&P[0])for(var M=0;M<P.length;M++)F.push(P[M]);else"all"===this.options.saveMissingTo?F=this.languageUtils.toResolveHierarchy(t.lng||this.language):F.push(t.lng||this.language);var B=function(e,n,o){var a=O&&o!==m?o:N;r.options.missingKeyHandler?r.options.missingKeyHandler(e,d,n,a,j,t):r.backendConnector&&r.backendConnector.saveMissing&&r.backendConnector.saveMissing(e,d,n,a,j,t),r.emit("missingKey",e,d,n,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&A?F.forEach(function(e){r.pluralResolver.getSuffixes(e,t).forEach(function(n){B([e],l+n,t["defaultValue".concat(n)]||k)})}):B(F,l,k))}m=this.extendTranslation(m,e,t,_,o),T&&m===l&&this.options.appendNamespaceToMissingKey&&(m="".concat(d,":").concat(l)),(T||D)&&this.options.parseMissingKeyHandler&&(m="v1"!==this.options.compatibilityAPI?this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?"".concat(d,":").concat(l):l,D?m:void 0):this.options.parseMissingKeyHandler(m))}return a?(_.res=m,_):m}},{key:"extendTranslation",value:function(e,t,n,o,r){var a=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,_objectSpread$4(_objectSpread$4({},this.options.interpolation.defaultVariables),n),o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init(_objectSpread$4(_objectSpread$4({},n),{interpolation:_objectSpread$4(_objectSpread$4({},this.options.interpolation),n.interpolation)}));var i,s="string"==typeof e&&(n&&n.interpolation&&void 0!==n.interpolation.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);if(s){var l=e.match(this.interpolator.nestingRegexp);i=l&&l.length}var c=n.replace&&"string"!=typeof n.replace?n.replace:n;if(this.options.interpolation.defaultVariables&&(c=_objectSpread$4(_objectSpread$4({},this.options.interpolation.defaultVariables),c)),e=this.interpolator.interpolate(e,c,n.lng||this.language,n),s){var d=e.match(this.interpolator.nestingRegexp);i<(d&&d.length)&&(n.nest=!1)}!n.lng&&"v1"!==this.options.compatibilityAPI&&o&&o.res&&(n.lng=o.usedLng),!1!==n.nest&&(e=this.interpolator.nest(e,function(){for(var e=arguments.length,o=new Array(e),i=0;i<e;i++)o[i]=arguments[i];return r&&r[0]===o[0]&&!n.context?(a.logger.warn("It seems you are nesting recursively key: ".concat(o[0]," in key: ").concat(t[0])),null):a.translate.apply(a,o.concat([t]))},n)),n.interpolation&&this.interpolator.reset()}var u=n.postProcess||this.options.postProcess,f="string"==typeof u?[u]:u;return null!=e&&f&&f.length&&!1!==n.applyPostProcessor&&(e=postProcessor.handle(f,e,t,this.options&&this.options.postProcessPassResolved?_objectSpread$4({i18nResolved:o},n):n,this)),e}},{key:"resolve",value:function(e){var t,n,o,r,a,i=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach(function(e){if(!i.isValidLookup(t)){var l=i.extractFromKey(e,s),c=l.key;n=c;var d=l.namespaces;i.options.fallbackNS&&(d=d.concat(i.options.fallbackNS));var u=void 0!==s.count&&"string"!=typeof s.count,f=u&&!s.ordinal&&0===s.count&&i.pluralResolver.shouldUseIntlApi(),p=void 0!==s.context&&("string"==typeof s.context||"number"==typeof s.context)&&""!==s.context,_=s.lngs?s.lngs:i.languageUtils.toResolveHierarchy(s.lng||i.language,s.fallbackLng);d.forEach(function(e){i.isValidLookup(t)||(a=e,!checkedLoadedFor["".concat(_[0],"-").concat(e)]&&i.utils&&i.utils.hasLoadedNamespace&&!i.utils.hasLoadedNamespace(a)&&(checkedLoadedFor["".concat(_[0],"-").concat(e)]=!0,i.logger.warn('key "'.concat(n,'" for languages "').concat(_.join(", "),'" won\'t get resolved as namespace "').concat(a,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),_.forEach(function(n){if(!i.isValidLookup(t)){r=n;var a,l=[c];if(i.i18nFormat&&i.i18nFormat.addLookupKeys)i.i18nFormat.addLookupKeys(l,c,n,e,s);else{var d;u&&(d=i.pluralResolver.getSuffix(n,s.count,s));var _="".concat(i.options.pluralSeparator,"zero");if(u&&(l.push(c+d),f&&l.push(c+_)),p){var m="".concat(c).concat(i.options.contextSeparator).concat(s.context);l.push(m),u&&(l.push(m+d),f&&l.push(m+_))}}for(;a=l.pop();)i.isValidLookup(t)||(o=a,t=i.getResource(n,e,a,s))}}))})}}),{res:t,usedKey:n,exactUsedKey:o,usedLng:r,usedNS:a}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,o):this.resourceStore.getResource(e,t,n,o)}}],[{key:"hasDefaultValue",value:function(e){var t="defaultValue";for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,12)&&void 0!==e[n])return!0;return!1}}]),n}(EventEmitter);function capitalize(e){return e.charAt(0).toUpperCase()+e.slice(1)}var LanguageUtil=function(){function e(t){_classCallCheck(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=baseLogger.create("languageUtils")}return _createClass(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map(function(e){return e.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=capitalize(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=capitalize(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=capitalize(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,n=this;return e?(e.forEach(function(e){if(!t){var o=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(o)||(t=o)}}),!t&&this.options.supportedLngs&&e.forEach(function(e){if(!t){var o=n.getLanguagePartFromCode(e);if(n.isSupportedCode(o))return t=o;t=n.options.supportedLngs.find(function(e){return e===o?e:e.indexOf("-")<0&&o.indexOf("-")<0?void 0:0===e.indexOf(o)?e:void 0})}}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),"string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,o=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],a=function(e){e&&(n.isSupportedCode(e)?r.push(e):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&a(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&a(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&a(this.getLanguagePartFromCode(e))):"string"==typeof e&&a(this.formatLanguageCode(e)),o.forEach(function(e){r.indexOf(e)<0&&a(n.formatLanguageCode(e))}),r}}]),e}(),sets=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],_rulesPluralsTypes={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}},deprecatedJsonVersions=["v1","v2","v3"],suffixesOrder={zero:0,one:1,two:2,few:3,many:4,other:5};function createRules(){var e={};return sets.forEach(function(t){t.lngs.forEach(function(n){e[n]={numbers:t.nr,plurals:_rulesPluralsTypes[t.fc]}})}),e}var PluralResolver=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,e),this.languageUtils=t,this.options=n,this.logger=baseLogger.create("pluralResolver"),this.options.compatibilityJSON&&"v4"!==this.options.compatibilityJSON||"undefined"!=typeof Intl&&Intl.PluralRules||(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=createRules()}return _createClass(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(e,{type:t.ordinal?"ordinal":"cardinal"})}catch(e){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,t);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,n).map(function(e){return"".concat(t).concat(e)})}},{key:"getSuffixes",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=this.getRule(e,n);return o?this.shouldUseIntlApi()?o.resolvedOptions().pluralCategories.sort(function(e,t){return suffixesOrder[e]-suffixesOrder[t]}).map(function(e){return"".concat(t.options.prepend).concat(e)}):o.numbers.map(function(o){return t.getSuffix(e,o,n)}):[]}},{key:"getSuffix",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=this.getRule(e,n);return o?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(o.select(t)):this.getSuffixRetroCompatible(o,t):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,t){var n=this,o=e.noAbs?e.plurals(t):e.plurals(Math.abs(t)),r=e.numbers[o];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var a=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===this.options.compatibilityJSON?1===r?"":"number"==typeof r?"_plural_".concat(r.toString()):a():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?a():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}},{key:"shouldUseIntlApi",value:function(){return!deprecatedJsonVersions.includes(this.options.compatibilityJSON)}}]),e}();function ownKeys$3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function deepFindWithDefaults(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=getPathWithDefaults(e,t,n);return!a&&r&&"string"==typeof n&&void 0===(a=deepFind(e,n,o))&&(a=deepFind(t,n,o)),a}var Interpolator=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck(this,e),this.logger=baseLogger.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return _createClass(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:escape,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?regexEscape(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?regexEscape(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?regexEscape(t.nestingPrefix):t.nestingPrefixEscaped||regexEscape("$t("),this.nestingSuffix=t.nestingSuffix?regexEscape(t.nestingSuffix):t.nestingSuffixEscaped||regexEscape(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,o){var r,a,i,s=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var d=function(e){if(e.indexOf(s.formatSeparator)<0){var r=deepFindWithDefaults(t,l,e,s.options.keySeparator,s.options.ignoreJSONStructure);return s.alwaysFormat?s.format(r,void 0,n,_objectSpread$3(_objectSpread$3(_objectSpread$3({},o),t),{},{interpolationkey:e})):r}var a=e.split(s.formatSeparator),i=a.shift().trim(),c=a.join(s.formatSeparator).trim();return s.format(deepFindWithDefaults(t,l,i,s.options.keySeparator,s.options.ignoreJSONStructure),c,n,_objectSpread$3(_objectSpread$3(_objectSpread$3({},o),t),{},{interpolationkey:i}))};this.resetRegExp();var u=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,f=o&&o.interpolation&&void 0!==o.interpolation.skipOnVariables?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return c(e)}},{regex:this.regexp,safeValue:function(e){return s.escapeValue?c(s.escape(e)):c(e)}}].forEach(function(t){for(i=0;r=t.regex.exec(e);){var n=r[1].trim();if(void 0===(a=d(n)))if("function"==typeof u){var l=u(e,r,o);a="string"==typeof l?l:""}else if(o&&Object.prototype.hasOwnProperty.call(o,n))a="";else{if(f){a=r[0];continue}s.logger.warn("missed to pass in variable ".concat(n," for interpolating ").concat(e)),a=""}else"string"==typeof a||s.useRawValueToEscape||(a=makeString(a));var c=t.safeValue(a);if(e=e.replace(r[0],c),f?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=r[0].length):t.regex.lastIndex=0,++i>=s.maxReplaces)break}}),e}},{key:"nest",value:function(e,t){var n,o,r,a=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};function s(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var o=e.split(new RegExp("".concat(n,"[ ]*{"))),a="{".concat(o[1]);e=o[0];var i=(a=this.interpolate(a,r)).match(/'/g),s=a.match(/"/g);(i&&i.length%2==0&&!s||s.length%2!=0)&&(a=a.replace(/'/g,'"'));try{r=JSON.parse(a),t&&(r=_objectSpread$3(_objectSpread$3({},t),r))}catch(t){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),t),"".concat(e).concat(n).concat(a)}return delete r.defaultValue,e}for(;n=this.nestingRegexp.exec(e);){var l=[];(r=(r=_objectSpread$3({},i)).replace&&"string"!=typeof r.replace?r.replace:r).applyPostProcessor=!1,delete r.defaultValue;var c=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){var d=n[1].split(this.formatSeparator).map(function(e){return e.trim()});n[1]=d.shift(),l=d,c=!0}if((o=t(s.call(this,n[1].trim(),r),r))&&n[0]===e&&"string"!=typeof o)return o;"string"!=typeof o&&(o=makeString(o)),o||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),o=""),c&&(o=l.reduce(function(e,t){return a.format(e,t,i.lng,_objectSpread$3(_objectSpread$3({},i),{},{interpolationkey:n[1].trim()}))},o.trim())),e=e.replace(n[0],o),this.regexp.lastIndex=0}return e}}]),e}();function ownKeys$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function parseFormatStr(e){var t=e.toLowerCase().trim(),n={};if(e.indexOf("(")>-1){var o=e.split("(");t=o[0].toLowerCase().trim();var r=o[1].substring(0,o[1].length-1);if("currency"===t&&r.indexOf(":")<0)n.currency||(n.currency=r.trim());else if("relativetime"===t&&r.indexOf(":")<0)n.range||(n.range=r.trim());else{r.split(";").forEach(function(e){if(e){var t=_toArray(e.split(":")),o=t[0],r=t.slice(1).join(":").trim().replace(/^'+|'+$/g,"");n[o.trim()]||(n[o.trim()]=r),"false"===r&&(n[o.trim()]=!1),"true"===r&&(n[o.trim()]=!0),isNaN(r)||(n[o.trim()]=parseInt(r,10))}})}}return{formatName:t,formatOptions:n}}function createCachedFormatter(e){var t={};return function(n,o,r){var a=o+JSON.stringify(r),i=t[a];return i||(i=e(o,r),t[a]=i),i(n)}}var Formatter=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck(this,e),this.logger=baseLogger.create("formatter"),this.options=t,this.formats={number:createCachedFormatter(function(e,t){var n=new Intl.NumberFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}}),currency:createCachedFormatter(function(e,t){var n=new Intl.NumberFormat(e,_objectSpread$2(_objectSpread$2({},t),{},{style:"currency"}));return function(e){return n.format(e)}}),datetime:createCachedFormatter(function(e,t){var n=new Intl.DateTimeFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}}),relativetime:createCachedFormatter(function(e,t){var n=new Intl.RelativeTimeFormat(e,_objectSpread$2({},t));return function(e){return n.format(e,t.range||"day")}}),list:createCachedFormatter(function(e,t){var n=new Intl.ListFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}})},this.init(t)}return _createClass(e,[{key:"init",value:function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||","}},{key:"add",value:function(e,t){this.formats[e.toLowerCase().trim()]=t}},{key:"addCached",value:function(e,t){this.formats[e.toLowerCase().trim()]=createCachedFormatter(t)}},{key:"format",value:function(e,t,n){var o=this,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=t.split(this.formatSeparator).reduce(function(e,t){var a=parseFormatStr(t),i=a.formatName,s=a.formatOptions;if(o.formats[i]){var l=e;try{var c=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},d=c.locale||c.lng||r.locale||r.lng||n;l=o.formats[i](e,d,_objectSpread$2(_objectSpread$2(_objectSpread$2({},s),r),c))}catch(e){o.logger.warn(e)}return l}return o.logger.warn("there was no format function for ".concat(i)),e},e);return a}}]),e}();function ownKeys$1$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$1$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1$1(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1$1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _createSuper$1(e){var t=_isNativeReflectConstruct$1();return function(){var n,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$1(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}function removePending(e,t){void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)}var Connector=function(e){_inherits(n,e);var t=_createSuper$1(n);function n(e,o,r){var a,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return _classCallCheck(this,n),a=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(a)),a.backend=e,a.store=o,a.services=r,a.languageUtils=r.languageUtils,a.options=i,a.logger=baseLogger.create("backendConnector"),a.waitingReads=[],a.maxParallelReads=i.maxParallelReads||10,a.readingCalls=0,a.maxRetries=i.maxRetries>=0?i.maxRetries:5,a.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(r,i.backend,i),a}return _createClass(n,[{key:"queueLoad",value:function(e,t,n,o){var r=this,a={},i={},s={},l={};return e.forEach(function(e){var o=!0;t.forEach(function(t){var s="".concat(e,"|").concat(t);!n.reload&&r.store.hasResourceBundle(e,t)?r.state[s]=2:r.state[s]<0||(1===r.state[s]?void 0===i[s]&&(i[s]=!0):(r.state[s]=1,o=!1,void 0===i[s]&&(i[s]=!0),void 0===a[s]&&(a[s]=!0),void 0===l[t]&&(l[t]=!0)))}),o||(s[e]=!0)}),(Object.keys(a).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(a),pending:Object.keys(i),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}},{key:"loaded",value:function(e,t,n){var o=e.split("|"),r=o[0],a=o[1];t&&this.emit("failedLoading",r,a,t),n&&this.store.addResourceBundle(r,a,n),this.state[e]=t?-1:2;var i={};this.queue.forEach(function(n){pushPath(n.loaded,[r],a),removePending(n,e),t&&n.errors.push(t),0!==n.pendingCount||n.done||(Object.keys(n.loaded).forEach(function(e){i[e]||(i[e]={});var t=n.loaded[e];t.length&&t.forEach(function(t){void 0===i[e][t]&&(i[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit("loaded",i),this.queue=this.queue.filter(function(e){return!e.done})}},{key:"read",value:function(e,t,n){var o=this,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!e.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads)this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:a,callback:i});else{this.readingCalls++;var s=function(s,l){if(o.readingCalls--,o.waitingReads.length>0){var c=o.waitingReads.shift();o.read(c.lng,c.ns,c.fcName,c.tried,c.wait,c.callback)}s&&l&&r<o.maxRetries?setTimeout(function(){o.read.call(o,e,t,n,r+1,2*a,i)},a):i(s,l)},l=this.backend[n].bind(this.backend);if(2!==l.length)return l(e,t,s);try{var c=l(e,t);c&&"function"==typeof c.then?c.then(function(e){return s(null,e)}).catch(s):s(null,c)}catch(e){s(e)}}}},{key:"prepareLoading",value:function(e,t){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var a=this.queueLoad(e,t,o,r);if(!a.toLoad.length)return a.pending.length||r(),null;a.toLoad.forEach(function(e){n.loadOne(e)})}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=e.split("|"),r=o[0],a=o[1];this.read(r,a,"read",void 0,void 0,function(o,i){o&&t.logger.warn("".concat(n,"loading namespace ").concat(a," for language ").concat(r," failed"),o),!o&&i&&t.logger.log("".concat(n,"loaded namespace ").concat(a," for language ").concat(r),i),t.loaded(e,o,i)})}},{key:"saveMissing",value:function(e,t,n,o,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:function(){};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t))this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");else if(null!=n&&""!==n){if(this.backend&&this.backend.create){var s=_objectSpread$1$1(_objectSpread$1$1({},a),{},{isUpdate:r}),l=this.backend.create.bind(this.backend);if(l.length<6)try{var c;(c=5===l.length?l(e,t,n,o,s):l(e,t,n,o))&&"function"==typeof c.then?c.then(function(e){return i(null,e)}).catch(i):i(null,c)}catch(e){i(e)}else l(e,t,n,o,i,s)}e&&e[0]&&this.store.addResource(e[0],t,n,o)}}}]),n}(EventEmitter);function get(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===_typeof(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===_typeof(e[2])||"object"===_typeof(e[3])){var n=e[3]||e[2];Object.keys(n).forEach(function(e){t[e]=n[e]})}return t},interpolation:{escapeValue:!0,format:function(e,t,n,o){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function transformOptions(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function ownKeys$7(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$7(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$7(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$7(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var n,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}function noop(){}function bindMemberFunctions(e){Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(function(t){"function"==typeof e[t]&&(e[t]=e[t].bind(e))})}var I18n=function(e){_inherits(n,e);var t=_createSuper(n);function n(){var e,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(_classCallCheck(this,n),e=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(e)),e.options=transformOptions(o),e.services={},e.logger=baseLogger,e.modules={external:[]},bindMemberFunctions(_assertThisInitialized(e)),r&&!e.isInitialized&&!o.isClone){if(!e.options.initImmediate)return e.init(o,r),_possibleConstructorReturn(e,_assertThisInitialized(e));setTimeout(function(){e.init(o,r)},0)}return e}return _createClass(n,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;"function"==typeof t&&(n=t,t={}),!t.defaultNS&&!1!==t.defaultNS&&t.ns&&("string"==typeof t.ns?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));var o=get();function r(e){return e?"function"==typeof e?new e:e:null}if(this.options=_objectSpread$7(_objectSpread$7(_objectSpread$7({},o),this.options),transformOptions(t)),"v1"!==this.options.compatibilityAPI&&(this.options.interpolation=_objectSpread$7(_objectSpread$7({},o.interpolation),this.options.interpolation)),void 0!==t.keySeparator&&(this.options.userDefinedKeySeparator=t.keySeparator),void 0!==t.nsSeparator&&(this.options.userDefinedNsSeparator=t.nsSeparator),!this.options.isClone){var a;this.modules.logger?baseLogger.init(r(this.modules.logger),this.options):baseLogger.init(null,this.options),this.modules.formatter?a=this.modules.formatter:"undefined"!=typeof Intl&&(a=Formatter);var i=new LanguageUtil(this.options);this.store=new ResourceStore(this.options.resources,this.options);var s=this.services;s.logger=baseLogger,s.resourceStore=this.store,s.languageUtils=i,s.pluralResolver=new PluralResolver(i,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!a||this.options.interpolation.format&&this.options.interpolation.format!==o.interpolation.format||(s.formatter=r(a),s.formatter.init(s,this.options),this.options.interpolation.format=s.formatter.format.bind(s.formatter)),s.interpolator=new Interpolator(this.options),s.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},s.backendConnector=new Connector(r(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];e.emit.apply(e,[t].concat(o))}),this.modules.languageDetector&&(s.languageDetector=r(this.modules.languageDetector),s.languageDetector.init&&s.languageDetector.init(s,this.options.detection,this.options)),this.modules.i18nFormat&&(s.i18nFormat=r(this.modules.i18nFormat),s.i18nFormat.init&&s.i18nFormat.init(this)),this.translator=new Translator(this.services,this.options),this.translator.on("*",function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];e.emit.apply(e,[t].concat(o))}),this.modules.external.forEach(function(t){t.init&&t.init(e)})}if(this.format=this.options.interpolation.format,n||(n=noop),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){var l=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);l.length>0&&"dev"!==l[0]&&(this.options.lng=l[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}});["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments),e}});var c=defer(),d=function(){var t=function(t,o){e.isInitialized&&!e.initializedStoreOnce&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),c.resolve(o),n(t,o)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?d():setTimeout(d,0),c}},{key:"loadResources",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,o="string"==typeof e?e:this.language;if("function"==typeof e&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return n();var r=[],a=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach(function(e){r.indexOf(e)<0&&r.push(e)})};if(o)a(o);else this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(function(e){return a(e)});this.options.preload&&this.options.preload.forEach(function(e){return a(e)}),this.services.backendConnector.load(r,this.options.ns,function(e){e||t.resolvedLanguage||!t.language||t.setResolvedLanguage(t.language),n(e)})}else n(null)}},{key:"reloadResources",value:function(e,t,n){var o=defer();return e||(e=this.languages),t||(t=this.options.ns),n||(n=noop),this.services.backendConnector.reload(e,t,function(e){o.resolve(),n(e)}),o}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&postProcessor.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"setResolvedLanguage",value:function(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(var t=0;t<this.languages.length;t++){var n=this.languages[t];if(!(["cimode","dev"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}},{key:"changeLanguage",value:function(e,t){var n=this;this.isLanguageChangingTo=e;var o=defer();this.emit("languageChanging",e);var r=function(e){n.language=e,n.languages=n.services.languageUtils.toResolveHierarchy(e),n.resolvedLanguage=void 0,n.setResolvedLanguage(e)},a=function(a){e||a||!n.services.languageDetector||(a=[]);var i="string"==typeof a?a:n.services.languageUtils.getBestMatchFromCodes(a);i&&(n.language||r(i),n.translator.language||n.translator.changeLanguage(i),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage&&n.services.languageDetector.cacheUserLanguage(i)),n.loadResources(i,function(e){!function(e,a){a?(r(a),n.translator.changeLanguage(a),n.isLanguageChangingTo=void 0,n.emit("languageChanged",a),n.logger.log("languageChanged",a)):n.isLanguageChangingTo=void 0,o.resolve(function(){return n.t.apply(n,arguments)}),t&&t(e,function(){return n.t.apply(n,arguments)})}(e,i)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e):a(this.services.languageDetector.detect()),o}},{key:"getFixedT",value:function(e,t,n){var o=this,r=function e(t,r){var a;if("object"!==_typeof(r)){for(var i=arguments.length,s=new Array(i>2?i-2:0),l=2;l<i;l++)s[l-2]=arguments[l];a=o.options.overloadTranslationOptionHandler([t,r].concat(s))}else a=_objectSpread$7({},r);a.lng=a.lng||e.lng,a.lngs=a.lngs||e.lngs,a.ns=a.ns||e.ns,a.keyPrefix=a.keyPrefix||n||e.keyPrefix;var c,d=o.options.keySeparator||".";return c=a.keyPrefix&&Array.isArray(t)?t.map(function(e){return"".concat(a.keyPrefix).concat(d).concat(e)}):a.keyPrefix?"".concat(a.keyPrefix).concat(d).concat(t):t,o.t(c,a)};return"string"==typeof e?r.lng=e:r.lngs=e,r.ns=t,r.keyPrefix=n,r}},{key:"t",value:function(){var e;return this.translator&&(e=this.translator).translate.apply(e,arguments)}},{key:"exists",value:function(){var e;return this.translator&&(e=this.translator).exists.apply(e,arguments)}},{key:"setDefaultNamespace",value:function(e){this.options.defaultNS=e}},{key:"hasLoadedNamespace",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var o=n.lng||this.resolvedLanguage||this.languages[0],r=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===o.toLowerCase())return!0;var i=function(e,n){var o=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===o||2===o};if(n.precheck){var s=n.precheck(this,i);if(void 0!==s)return s}return!!this.hasResourceBundle(o,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!i(o,e)||r&&!i(a,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,o=defer();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach(function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)}),this.loadResources(function(e){o.resolve(),t&&t(e)}),o):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=defer();"string"==typeof e&&(e=[e]);var o=this.options.preload||[],r=e.filter(function(e){return o.indexOf(e)<0});return r.length?(this.options.preload=o.concat(r),this.loadResources(function(e){n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";var t=this.services&&this.services.languageUtils||new LanguageUtil(get());return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(t.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,r=_objectSpread$7(_objectSpread$7(_objectSpread$7({},this.options),t),{isClone:!0}),a=new n(r);void 0===t.debug&&void 0===t.prefix||(a.logger=a.logger.clone(t));return["store","services","language"].forEach(function(t){a[t]=e[t]}),a.services=_objectSpread$7({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new Translator(a.services,a.options),a.translator.on("*",function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];a.emit.apply(a,[e].concat(n))}),a.init(r,o),a.translator.options=a.options,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}},{key:"toJSON",value:function(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}]),n}(EventEmitter);_defineProperty(I18n,"createInstance",function(){return new I18n(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)});var instance=I18n.createInstance();function warn(){if(console&&console.warn){for(var e,t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];"string"==typeof n[0]&&(n[0]="react-i18next:: ".concat(n[0])),(e=console).warn.apply(e,n)}}instance.createInstance=I18n.createInstance,instance.createInstance,instance.dir,instance.init,instance.loadResources,instance.reloadResources,instance.use,instance.changeLanguage,instance.getFixedT,instance.t,instance.exists,instance.setDefaultNamespace,instance.hasLoadedNamespace,instance.loadNamespaces,instance.loadLanguages;var alreadyWarned={};function warnOnce(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];"string"==typeof t[0]&&alreadyWarned[t[0]]||("string"==typeof t[0]&&(alreadyWarned[t[0]]=new Date),warn.apply(void 0,t))}var loadedClb=function(e,t){return function(){if(e.isInitialized)t();else{e.on("initialized",function n(){setTimeout(function(){e.off("initialized",n)},0),t()})}}};function loadNamespaces(e,t,n){e.loadNamespaces(t,loadedClb(e,n))}function loadLanguages(e,t,n,o){"string"==typeof n&&(n=[n]),n.forEach(function(t){e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,loadedClb(e,o))}function oldI18nextHasLoadedNamespace(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=t.languages[0],r=!!t.options&&t.options.fallbackLng,a=t.languages[t.languages.length-1];if("cimode"===o.toLowerCase())return!0;var i=function(e,n){var o=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===o||2===o};return!(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!i(t.isLanguageChangingTo,e))&&(!!t.hasResourceBundle(o,e)||(!(t.services.backendConnector.backend&&(!t.options.resources||t.options.partialBundledLanguages))||!(!i(o,e)||r&&!i(a,e))))}function hasLoadedNamespace(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.languages&&t.languages.length?void 0!==t.options.ignoreJSONStructure?t.hasLoadedNamespace(e,{lng:n.lng,precheck:function(t,o){if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!o(t.isLanguageChangingTo,e))return!1}}):oldI18nextHasLoadedNamespace(e,t,n):(warnOnce("i18n.languages were undefined or empty",t.languages),!0)}var matchHtmlEntity=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,htmlEntities={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},unescapeHtmlEntity=function(e){return htmlEntities[e]},unescape=function(e){return e.replace(matchHtmlEntity,unescapeHtmlEntity)};function ownKeys$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var defaultOptions={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:unescape},i18nInstance;function setDefaults(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};defaultOptions=_objectSpread$1(_objectSpread$1({},defaultOptions),e)}function getDefaults(){return defaultOptions}function setI18n(e){i18nInstance=e}function getI18n(){return i18nInstance}var initReactI18next={type:"3rdParty",init:function(e){setDefaults(e.options.react),setI18n(e)}},I18nContext=React.createContext(),ReportNamespaces=function(){function e(){_classCallCheck(this,e),this.usedNamespaces={}}return _createClass(e,[{key:"addUsedNamespaces",value:function(e){var t=this;e.forEach(function(e){t.usedNamespaces[e]||(t.usedNamespaces[e]=!0)})}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]),e}();function _iterableToArrayLimit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,r,a,i,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(o=a.call(n)).done)&&(s.push(o.value),s.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw r}}return s}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var usePrevious=function(e,t){var n=React.useRef();return React.useEffect(function(){n.current=t?n.current:e},[e,t]),n.current};function useTranslation(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.i18n,o=React.useContext(I18nContext)||{},r=o.i18n,a=o.defaultNS,i=n||r||getI18n();if(i&&!i.reportNamespaces&&(i.reportNamespaces=new ReportNamespaces),!i){warnOnce("You will need to pass in an i18next instance by using initReactI18next");var s=function(e,t){return"string"==typeof t?t:t&&"object"===_typeof(t)&&"string"==typeof t.defaultValue?t.defaultValue:Array.isArray(e)?e[e.length-1]:e},l=[s,{},!1];return l.t=s,l.i18n={},l.ready=!1,l}i.options.react&&void 0!==i.options.react.wait&&warnOnce("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var c=_objectSpread(_objectSpread(_objectSpread({},getDefaults()),i.options.react),t),d=c.useSuspense,u=c.keyPrefix,f=e||a||i.options&&i.options.defaultNS;f="string"==typeof f?[f]:f||["translation"],i.reportNamespaces.addUsedNamespaces&&i.reportNamespaces.addUsedNamespaces(f);var p=(i.isInitialized||i.initializedStoreOnce)&&f.every(function(e){return hasLoadedNamespace(e,i,c)});function _(){return i.getFixedT(t.lng||null,"fallback"===c.nsMode?f:f[0],u)}var m=_slicedToArray(React.useState(_),2),h=m[0],g=m[1],b=f.join();t.lng&&(b="".concat(t.lng).concat(b));var v=usePrevious(b),y=React.useRef(!0);React.useEffect(function(){var e=c.bindI18n,n=c.bindI18nStore;function o(){y.current&&g(_)}return y.current=!0,p||d||(t.lng?loadLanguages(i,t.lng,f,function(){y.current&&g(_)}):loadNamespaces(i,f,function(){y.current&&g(_)})),p&&v&&v!==b&&y.current&&g(_),e&&i&&i.on(e,o),n&&i&&i.store.on(n,o),function(){y.current=!1,e&&i&&e.split(" ").forEach(function(e){return i.off(e,o)}),n&&i&&n.split(" ").forEach(function(e){return i.store.off(e,o)})}},[i,b]);var E=React.useRef(!0);React.useEffect(function(){y.current&&!E.current&&g(_),E.current=!1},[i,u]);var w=[h,i,p];if(w.t=h,w.i18n=i,w.ready=p,p)return w;if(!p&&!d)return w;throw new Promise(function(e){t.lng?loadLanguages(i,t.lng,f,function(){return e()}):loadNamespaces(i,f,function(){return e()})})}var funcProto=Function.prototype,funcToString=funcProto.toString;funcToString.call(Object);const getBuilderContext=()=>"undefined"==typeof window?{}:Builder.settings.context?Builder.settings.context:Builder.settings;async function fetchAPI(e,t={credentials:"include"}){const n={"Content-Type":"application/json"},o=getAuthorization();o&&(n.Authorization=o),t.headers=Object.assign({},n,t.headers),t.credentials="include";const r=await fetch(`${getRootUrl()}${e}`,t);if(401===r.status)throw new Error(401);const a=await r.json();if(a.errors)throw console.error(a.errors),new Error("Failed to fetch API");return a}function getAuthorization(){try{const e=getBuilderContext();let t=e.tenantId,n=e.authToken;return t&&n?`Bearer ${t},${n}`:null}catch(e){console.error(e)}}function getUserId(){try{let e=getBuilderContext().userId;return e||null}catch(e){console.error(e)}}function getRootUrl(e){const t=getBuilderContext();if(t.rootUrl)return t.rootUrl;const n="undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"";return n||(e||"")}const Router={getTabDisplayAs(e,t){var n=new URLSearchParams(document.location.search);if(n.has("display"))return n.get("display");const o=`tab_${e}_display`,r=sessionStorage.getItem(o);let a="grid";return!0===t&&(a="split"),window.innerWidth<=768?"grid":r||a},setTabDisplayAs(e,t){const n=`tab_${e}_display`;sessionStorage.setItem(n,t)},getAppPath:({formFactor:e,appId:t})=>`/app/${t}`,getPagePath(){},getObjectListViewPath:({formFactor:e,appId:t,objectName:n,listViewName:o})=>`/app/${t}/${n}/grid/${o}`,getObjectDetailPath(e){const{formFactor:t,appId:n,objectName:o,recordId:r,listViewName:a,_templateType:i}=e;return"JavaScript"===i?`/app/${n}/${o}/view/${r}?side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`:`/app/${n}/${o}/view/${r}?side_object=\${objectName}&side_listview_id=\${listName}`},getObjectRelatedViewPath:({formFactor:e,appId:t,masterObjectName:n,masterRecordId:o,objectName:r,foreignKey:a})=>`/app/${t}/${n}/${o}/${r}/grid?related_field_name=${a}`};function getImageFieldUrl(e,t){if(window.Meteor){if(1!=window.Meteor.isCordova){const t=e.indexOf("//"),n=e.indexOf("/",t+2);return e.substring(n)}if(t||e.startsWith("http"))return`${e}?token=${window.btoa(JSON.stringify({authToken:Builder.settings.context.authToken}))}`}return e}function toGrayscale(e,t,n){return.2126*e+.7152*t+.0722*n}function isLight(e,t,n){return toGrayscale(e,t,n)>200}function getContrastColor(e){var t="#"===e.charAt(0)?e.substring(1,7):e;return isLight(parseInt(t.substr(0,2),16),parseInt(t.substr(2,2),16),parseInt(t.substr(4,2),16))?"#000000":"#ffffff"}function getLookupListView(e){if(!e)return null;let t,n;return _.each(e.list_views,(e,o)=>{"all"===o?(t=e,t.name||(t.name=o)):"lookup"===o&&(n=e,n.name||(n.name=o))}),n||t}function getComparableAmisVersion(){let e=window.amisRequire&&window.amisRequire("amis")||window.Amis,t=e&&e.version;if(t){let e=t.split(".");return parseFloat(e[0].toString()+"."+e[1].toString())}}function getBowserType(){const e=navigator.userAgent;return-1!==e.indexOf("Chrome")&&-1!==e.indexOf("Safari")&&-1===e.indexOf("Edg")?"Chrome":-1!==e.indexOf("Firefox")?"Firefox":-1!==e.indexOf("Safari")&&-1===e.indexOf("Chrome")&&-1===e.indexOf("Edge")?"Safari":-1!==e.indexOf("Edg")?"Edge":"Unknown browser"}function getNumberTpl(e){return`<span>\${_display.${e.name}}</span>`}function getTimeTpl(e){return`<span>\${_display.${e.name}}</span>`}function getDateTpl(e){return`<span>\${_display.${e.name}}</span>`}function getDateTimeTpl(e){return`<span>\${_display.${e.name}}</span>`}function getUiFieldTpl(e){return`<span>\${_display.${e.name}}</span>`}function getUiFileSizeTpl(e){return`<span>\${_display.${e.name}}</span>`}async function getRefObjectNameFieldName(e){return(await getUISchema(e.reference_to)).NAME_FIELD_KEY||"name"}function getSelectTpl(e){return`<span>\${_display.${e.name}}</span>`}function getSelectMap(e){let t={};return _$1.forEach(e,e=>{const n=e.value+"",o=e.color+"";if(o&&"undefined"!=o){const r="#"===o.charAt(0)?o:"#"+o,a="background:"+r+";color:"+getContrastColor(r)+";line-height:1.5rem;font-size:14px";t[n]=`<span class="rounded-xl px-2 py-1 whitespace-nowrap" style='${a}'>${e.label}</span>`}else t[n]=e.label}),t}function getNameTplUrl(e,t){return Router.getObjectDetailPath({...t,formFactor:t.formFactor,appId:"${appId}",objectName:t.objectName||"${objectName}",recordId:`\${${t.idFieldName}}`})}function getNameTpl(e,t){const n=getNameTplUrl(e,t);let o="";t&&t.isLookup&&(o="target='_blank'");let r=e.name;return"lookup"==e.type||"master_detail"==e.type?!e.reference_to&&(e.optionsFunction||e._optionsFunction||e.options)?e.isTableField||(r=`\${${e.name}__label}`):r=`\${_display.${e.name}.label}`:r=`\${_display.${e.name} || ${e.name}}`,t.isRelated&&window.innerWidth>=768?`<a href="${n}" ${o} onclick="return false;">\${${r} | raw}</a>`:`<a href="${n}" ${o}>\${${r} | raw}</a>`}function getRelatedFieldTpl(e,t){let n="";if(!e.reference_to&&(e.optionsFunction||e._optionsFunction||e.options))return e.isTableField?`\${${e.name}}`:`\${${e.name}__label}`;let o="";t&&t.isLookup&&(o="target='_blank'");const r=t.onlyDisplayLookLabel;let a=`data._display.${e.name}`;if(e.isTableField&&(a=`data.${e.name}`),_.isString(e.reference_to)||!e.reference_to)if(e.multiple){let e="<%=item.label%>";if(t.isRelated&&(o="target='_blank'"),!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${o}><%=item.label%></a>`}n=`\n <% if (${a} && ${a}.length) { %><% ${a}.forEach(function(item,index) { %> <% if(index>0 && index<${a}.length){ %> , <% } %> ${e} <% }); %><% } %>\n `}else{let a=`\${_display.${e.name}.label}`,i=`\${_display.${e.name}.objectName}`,s=`\${_display.${e.name}.value}`;if(e.isTableField&&(a=`\${${e.name}.label}`,i=`\${${e.name}.objectName}`,s=`\${${e.name}.value}`),!r){const e=Router.getObjectDetailPath({formFactor:t.formFactor,appId:"${appId}",objectName:`${i}`,recordId:`${s}`});a=window.innerWidth>=768?`<a href="${e}" ${o} onclick="return false;">${a}</a>`:`<a href="${e}" ${o}>${a}</a>`}n=a}else{let e="<%=item.label%>";if(!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${o}><%=item.label%></a>`}n=`\n <% if (${a} && ${a}.length) { %><% ${a}.forEach(function(item) { %> ${e} <% }); %><% } %>\n `}return n}async function getLookupTpl(e,t){if(!e.reference_to)return getSelectTpl(e);const n=await getRefObjectNameFieldName(e);if(e.multiple){const o=Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>",_templateType:"JavaScript"});return`\n <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${o}"><%=item.${n}%></a> <% }); %><% } %>\n `}return`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${n}}</a>`}function getSwitchTpl(e){let t=`data._display.${e.name}`;return e.isTableField&&(t=`data.${e.name}`),`<% if (data.${e.name}) { %>\n <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=${t}%>">\n <span ><%= ${t} === "√" ? "<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>" : ${t} %></span>\n </span>\n <% } %>`}function getPasswordTpl(e){return`<% if (data.${e.name}) { %>\n <span>******</span>\n <% } %>`}function getLocationTpl(e){return`\${${e.name} ? ${e.name}.address : ''}`}async function getFieldTpl(e,t){if((e.is_name||e.name===t.labelFieldName)&&!t.onlyDisplayLookLabel&&!0!==e.multiple)return getNameTpl(e,t);switch(e.type){case"password":return getPasswordTpl(e);case"boolean":case"toggle":return getSwitchTpl(e);case"select":return getSelectTpl(e);case"time":return getTimeTpl(e);case"date":return getDateTpl(e);case"datetime":return getDateTimeTpl(e);case"lookup":case"master_detail":return await getRelatedFieldTpl(e,t);case"location":return await getLocationTpl(e);case"number":case"currency":return await getNumberTpl(e);case"percent":case"formula":case"summary":return getUiFieldTpl(e);case"filesize":return getUiFileSizeTpl(e)}}async function getFieldsTemplate(e,t,n){let o=[];0!=n&&(n=!0);let r=["_id"];e.datasource&&"default"!==e.datasource&&"meteor"!==e.datasource||r.push("space");let a=[],i=[];i=_$1__namespace.isArray(t)?t:_$1__namespace.values(t);for(const e of i)e.name&&(e.expand?o.push(e):e.name.indexOf(".")<0?(!n||"lookup"!=e.type&&"master_detail"!=e.type?r.push(e.alias?`${e.alias}:${e.name}`:e.name):(r.push(`${e.name}`),a.push(`${e.name}`)),_$1.includes(["time","date","datetime","boolean","number","currency"],e.type)&&r.push(`${e.name}`),_$1.includes(["percent","time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary","object","grid"],e.type)&&a.push(`${e.name}`)):(objectFieldName=e.name.split(".")[0],r.push(objectFieldName),a.push(objectFieldName)));a=_$1__namespace.uniq(a),r=_$1__namespace.uniq(r);let s="";return o.length>0&&_$1__namespace.each(o,function(e){s+=`${e.expandInfo.fieldName}__expand{${e.expandInfo.displayName}}`}),a.length>0?`${r.join(",")},${s},_display:_ui{${a.join(",")}}`:_$1.trimEnd(`${r.join(" ")},${s}`,",")}async function getFindQuery(e,t,n,o){let r=o.limit||10,a=`(top: ${r})`;t&&(a=`(filters:["_id", "=", "${t}"], top: ${r})`);let i="data";o&&(o.alias&&(i=o.alias),o.filters&&(a=`(filters:${o.filters})`),o.queryOptions&&(a=`(${o.queryOptions})`));var s="";e.enable_tree&&_$1__namespace.includes(_$1__namespace.keys(e.fields),"parent")&&_$1__namespace.includes(_$1__namespace.keys(e.fields),"children")&&(s=",parent,children");var l="";"cms_files"===e.name&&(l=",versions");const c=!1===o.count?"":`,count:${e.name}__count(filters:{__filters})`,d=`${await getFieldsTemplate(e,n,o.expand)}${s}${l}`;return{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",queryFields:d,query:`{${i}:${e.name}${a}{${d}}${c}}`}}function getApi$2(e){if(!e)return"${context.rootUrl}/graphql?reload=${additionalFilters|join}"}"undefined"!=typeof window&&(window.getImageFieldUrl=getImageFieldUrl);var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};const AmisFormInputs=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","color","email"];function getAmisStaticFieldType(e,t,n){return t?_$1__namespace.includes(["text","image","color"],e)?"text"===e&&n&&n.amis&&n.amis.tpl?"static":"image"===e&&n&&n.multiple?"static-images":`static-${e}`:"url"===e?"input-url":"static":_$1__namespace.includes(AmisFormInputs,e)?`input-${e}`:"location"===e?"location-picker":e}let pageCache={};async function getPage({type:e,pageId:t="",appId:n,objectName:o="",recordId:r="",formFactor:a="LARGE"}){const i=`/api/pageSchema/${e}?app=${n}&objectApiName=${o}&recordId=${r}&pageId=${t}&formFactor=${a}`;if(_$1.has(pageCache,i))return pageCache[i];const s=await fetchAPI(i);if(s&&s.schema)return s.schema=JSON.parse(s.schema),s.schema.data&&(delete s.schema.data.recordId,delete s.schema.data.objectName,delete s.schema.data.context,delete s.schema.data.global),pageCache[i]=s,JSON.parse(JSON.stringify(s));pageCache[i]=null}const getFileTableName=e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}},getAmisFieldType$1=(e,t)=>getAmisStaticFieldType("avatar"===e.type?"image":e.type,t,{multiple:e.multiple});async function getLookupLinkOnClick(e,t){const n=await getPage({type:"record",appId:t.appId,objectName:t.objectName,formFactor:t.formFactor}),o=n?Object.assign({},n.schema,{recordId:"file"==e.type?"${value}":`\${${e.name}}`,data:{...n.schema.data,_inDrawer:!0,recordLoaded:!1,objectName:t.objectName}}):{type:"steedos-record-detail",objectApiName:t.objectName,recordId:"file"==e.type?"${value}":`\${${e.name}}`,showBackButton:!1,showButtons:!0,data:{_inDrawer:!0,recordLoaded:!1}};return{click:{actions:[{actionType:"drawer",drawer:{type:"drawer",title:"&nbsp;",headerClassName:"hidden",size:"lg",width:window.drawerWidth||"70%",bodyClassName:"p-0 m-0 bg-gray-100",closeOnEsc:!0,closeOnOutside:!0,resizable:!0,actions:[],body:[o],className:"steedos-record-detail-drawer app-popover"},preventDefault:!0}]}}}const getAmisFileReadonlySchema=async(e,t={})=>{const n=e.type,{appId:o,formFactor:r}=t.amisData||{},a=getAmisFieldType$1(e,!0);let i='onclick="return false;"';return window.innerWidth<768&&(i=""),_.includes(["avatar","image"],n)?{type:a,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===n?window.Meteor?.isCordova?{type:"control",body:e.multiple?{type:"each",name:"_display."+e.name,items:{type:"tpl",tpl:"${name}",className:"antd-Button--link inline-block mr-2",onEvent:{click:{actions:[{script:"\n Steedos.cordovaDownload(encodeURI(event.data.url), event.data.name);\n ",actionType:"custom"}],weight:0}}}}:{type:"tpl",tpl:"${_display."+e.name+".name}",className:"antd-Button--link inline-block",onEvent:{click:{actions:[{script:`\n const data = event.data._display.${e.name};\n Steedos.cordovaDownload(encodeURI(data.url), data.name);\n `,actionType:"custom"}],weight:0}}}}:{type:"control",name:"",body:{type:"each",placeholder:"",className:e.multiple?"flex flex-col":"",source:`\${${e.name}|asArray}`,items:{type:"static",labelClassName:"hidden",label:!1,className:"m-0",tpl:`<a href="/app/-/cfs_files_filerecord/view/\${value}" ${i}>\${name}</a>`,onEvent:window.innerWidth<768?null:await getLookupLinkOnClick(e,{appId:o,objectName:"cfs_files_filerecord",formFactor:r})}}}:void 0},getAmisFileEditSchema=e=>{const t=getFileTableName(e);let n={type:getAmisFieldType$1(e,!1),useChunk:!1,receiver:{method:"post",dataType:"form-data",url:`\${context.rootUrl}/api/v6/files/cfs.${t}.filerecord`,requestAdaptor:"\n const superData = (typeof context != 'undefined') ? context : api.body; \n const { _master, global } = superData;\n // const { recordId, objectName } = _master;\n const { spaceId, userId, user } = global;\n /*\n record_id: recordId,\n parent: recordId,\n object_name: objectName,\n owner_name: user.name,\n space: spaceId,\n owner: userId\n */\n // 参考platform 2.2版本,附件字段保存时cfs.files.filerecord、cfs.images.filerecord表中的metadata下只保存space、owner两个属性值。\n api.data.append('space', spaceId);\n api.data.append('owner', userId);\n\n return api;\n ",adaptor:`\n const superData = (typeof context != 'undefined') ? context : api.body; \n const { context:pageContext } = superData; \n var rootUrl = pageContext.rootUrl + "/api/v6/files/download/cfs.${t}.filerecord/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id + "/" + payload.original.name,\n }\n }\n return payload;\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(n.multiple=!0,n.joinValues=!1,n.extractValue=!0,"image"===e.type&&Steedos.isCordova()&&Steedos.isCordova()&&(n.accept="")),n},getAmisFileSchema=async(e,t,n)=>t?await getAmisFileReadonlySchema(e,n):getAmisFileEditSchema(e);var frontend_field_group_generalization$1="General",frontend_download$1="Download",frontend_form_save$1="Save",frontend_form_save_and_new$1="Save and New",frontend_form_cancel$1="Cancel",frontend_form_reset$1="Reset",frontend_form_new$1="New",frontend_form_edit$1="Edit",frontend_form_preview$1="Preview",frontend_form_select$1="Select",frontend_form_please_select$1="Please select",frontend_form_confirm$1="Confirm",frontend_form_delete$1="Delete",frontend_form_view$1="view",frontend_form_details$1="Details",frontend_form_validation_failed_url$1="The URL format is incorrect",frontend_delete_confirm_text$1="Are you sure you want to delete this item?",frontend_delete_many_selected_required$1="Please select the item to be deleted",frontend_delete_many_confirm_text$1="Are you sure you want to delete?",frontend_display_type_is_table$1="Table",frontend_display_type_is_split$1="Split View",frontend_display_as$1="Displayed as",frontend_record_sum$1="items",frontend_button_reload_tooltip$1="Refresh",frontend_button_search_tooltip$1="Filter",frontend_fields_filter_button_search$1="Search",frontend_fields_filter_button_settings$1="Set search options",frontend_button_listview_control_tooltip$1="List View Controls",frontend_button_listview_control_label$1="LIST VIEW CONTROLS",frontend_listview_control_columns$1="Show List",frontend_listview_control_columns_mobile_group$1="Mobile side",frontend_listview_control_clone_label$1="Clone",frontend_listview_control_clone_title$1="Clone List View",frontend_listview_control_clone_defaultData_label_start$1="Copy of",frontend_listview_control_clone_defaultData_label_end$1="",frontend_listview_control_delete_label$1="Delete",frontend_listview_control_delete_confirm_text$1="If you delete this list view it will be permanently removed for all users with access. Are you sure you want to delete?",frontend_listview_control_delete_message_success$1="Deletion successful",frontend_listview_control_filters$1="Filter settings",frontend_listview_control_filters_fields_extend$1="Conditional component 1",frontend_listview_control_new_label$1="New",frontend_listview_control_new_title$1="New List View",frontend_listview_control_new_message_success$1="Success",frontend_listview_control_new_message_failed$1="Failure",frontend_listview_control_rename_label$1="Rename",frontend_listview_control_rename_title$1="Rename List View",frontend_listview_control_share$1="Sharing Settings",frontend_listview_control_sort$1="Default sorting rule",frontend_export_excel$1="Export Excel",frontend_export_excel_toast$1="Exporting, please wait",frontend_operation$1="Operation",frontend_import_data$1="Import data",frontend_import_data_object_name$1="Import object",frontend_import_data_queue_import$1="Data import",frontend_import_data_queue_import_description$1="Import description",frontend_import_data_queue_import_encoding$1="Character code",frontend_import_data_queue_import_template_url$1="Import template",frontend_import_data_file$1="Excel file",frontend_import_data_message_success$1="Importing has started...",frontend_import_data_message_failed$1="Import failed",frontend_record_detail_tab_detailed$1="Details",frontend_record_detail_tab_related$1="Related",frontend_all_apps$1="All apps",frontend_all_projects$1="All projects",frontend_open_app_launcher$1="Open App Launcher",frontend_application_launcher$1="Application launcher",frontend_menu$1="Menu",frontend_help$1="Help",frontend_setup$1="Setup",frontend_notifications$1="Notifications",frontend_notifications_allread$1="Mark all as read",frontend_notifications_allread_message$1="All marked as read",frontend_notifications_close_dialog$1="Close",frontend_profile$1="Profile",switch_space$1="Switch Space",frontend_about$1="About",frontend_log_out$1="Log out",frontend_listview_warning_start$1="The current ",frontend_listview_warning_end$1=" view does not exist!",frontend_record_detail_related_list_warning$1="Missing parent object, parent record, or related list object property!",frontend_record_detail_related_lists_warning$1="Missing parent object, or parent record property!",frontend_record_detail_related_lists_info$1="No related child tables found",frontend_calendar_listWeek$1="List",frontend_message_no_permission_to_edit$1="You don't have permission to edit this record!",frontend_message_modification_successful$1="Modification successful!",frontend_message_modification_failed$1="Modification failed!",frontend_objects_related_alert_start$1="No related table fields associated with the related list object",frontend_objects_related_alert_end$1="were found.",frontend_no_records_found$1="No records found.",frontend_records_no_allowedit$1="You do not have edit permission for this record",frontend_app_menu_save_order_group_nesting_error$1="Group nesting is not supported",frontend_menu_setup$1="Edit App",frontend_menu_new_object$1="New Object",frontend_menu_view_object$1="View Object",frontend_menu_new_micro_page$1="New Micro Page",frontend_menu_edit_micro_page$1="Edit Micro Page",frontend_menu_new_url$1="New URL link",frontend_menu_edit_url$1="Edit URL link",frontend_menu_add_existing_tabs$1="Add existing Tabs",frontend_menu_edit_tab$1="Edit Tab",frontend_menu_delete_tab$1="Delete Tab",frontend_menu_new_group$1="New Group",frontend_menu_edit_group$1="Edit Group",frontend_menu_delete_group$1="Delete Group",frontend_menu_move_group$1="Move Group",frontend_menu_dialog_move_group$1="Move to another Group",frontend_menu_group_none_children$1="none menu",frontend_menu_edit_app$1="Edit App",frontend_menu_dialog_name_placeholder$1="Unique identifier",frontend_menu_tabs_group_name_label$1="Name",frontend_menu_tabs_group_name_placeholder$1="Group Name",frontend_menu_tabs_group_default_open_label$1="Whether to expand by default",frontend_button_delete_confirm_text$1="Are you sure you want to delete it?",frontend_app_launcher_button_more$1="More",frontend_app_launcher_button_new_app$1="+ New App",frontend_app_launcher_dialog_new_app_title$1="New App",frontend_app_launcher_dialog_new_app_code_label$1="App ID",frontend_app_launcher_dialog_new_app_name_label$1="Label",frontend_app_launcher_dialog_new_app_icon_label$1="Icon",frontend_crud_toolbar_quick_search_placeholder$1="Quick Search",frontend_crud_toolbar_quick_search_tooltip_prefix$1="Searchable fields:",frontend_lookup_left_tree_search_organizations$1="Search for organizations",frontend_input_table_button_new$1="New",frontend_input_table_button_new_tooltip$1="Save and add a new line, that is, save the current line data and add a new blank line",frontend_input_table_button_copy$1="Copy",frontend_input_table_button_copy_tooltip$1="Copy and add a new row, that is, save the current row data and copy the current row data to the new row",frontend_input_table_button_delete$1="Delete",frontend_input_table_button_confirm$1="Done",frontend_input_table_dialog_title_suffix$1="Details",frontend_workflow_instances_applicant_name_prefix$1="Applicant name:",frontend_workflow_instance_submit_date_prefix$1="Submission date:",frontend_workflow_approval_judge_returned$1="Returned",frontend_workflow_approval_judge_terminated$1="Cancelled",frontend_workflow_approval_judge_pending$1="In Progress",frontend_workflow_approval_judge_approved$1="Approved",frontend_workflow_approval_judge_rejected$1="Rejected",frontend_workflow_approval_judge_finished$1="Completed",frontend_workflow_approval_judge_reassigned$1="Reassigned",frontend_workflow_approval_judge_inhand$1="In Progress",frontend_workflow_approval_judge_relocated$1="Relocate",frontend_workflow_approval_judge_readed$1="Read",frontend_workflow_approval_suggestion_readed$1="Read",frontend_workflow_approval_suggestion_completed$1="Done",frontend_workflow_approval_suggestion_agree$1="Agree",frontend_workflow_approval_suggestion_other$1="Select opinions",frontend_workflow_suggestion_placeholder$1="Please fill in your comments.",frontend_workflow_instance_button_sign$1="Sign",frontend_workflow_approval_history$1="Approval History",frontend_workflow_approval_history_read$1="Read",frontend_workflow_approval_history_unprocessed$1="Unprocessed",frontend_workflow_attachment$1="Attachment",frontend_workflow_attachment_upload$1="Upload",frontend_workflow_attachment_upload_success$1="Uploaded successfully",frontend_workflow_related_file$1="Related File",frontend_workflow_judge_option_approved$1="Approved",frontend_workflow_judge_option_rejected$1="Rejected",frontend_workflow_judge_option_readed$1="Readed",frontend_workflow_next_step$1="Next Step",frontend_workflow_next_users$1="To",frontend_workflow_submit_validate_error_title$1="Submission failed",frontend_workflow_submit_validate_error_msg$1="Please fill in the required fields",frontend_workflow_related_records_link_title$1="Related Records",frontend_formula_variables_tab_form_fields$1="Form Fields",frontend_formula_variables_tab_form_global$1="Global Variables",frontend_formula_variables_global_userId$1="User ID",frontend_formula_variables_global_spaceId$1="Space ID",frontend_formula_variables_global_user_roles$1="Permission Set",frontend_formula_variables_global_user_spaceUserId$1="Space User ID",frontend_formula_variables_global_user_is_space_admin$1="Is Space Admin",en_us$1={frontend_field_group_generalization:frontend_field_group_generalization$1,frontend_download:frontend_download$1,frontend_form_save:frontend_form_save$1,frontend_form_save_and_new:frontend_form_save_and_new$1,frontend_form_cancel:frontend_form_cancel$1,frontend_form_reset:frontend_form_reset$1,frontend_form_new:frontend_form_new$1,frontend_form_edit:frontend_form_edit$1,frontend_form_preview:frontend_form_preview$1,frontend_form_select:frontend_form_select$1,frontend_form_please_select:frontend_form_please_select$1,frontend_form_confirm:frontend_form_confirm$1,frontend_form_delete:frontend_form_delete$1,frontend_form_view:frontend_form_view$1,frontend_form_details:frontend_form_details$1,frontend_form_validation_failed_url:frontend_form_validation_failed_url$1,frontend_delete_confirm_text:frontend_delete_confirm_text$1,frontend_delete_many_selected_required:frontend_delete_many_selected_required$1,frontend_delete_many_confirm_text:frontend_delete_many_confirm_text$1,frontend_display_type_is_table:frontend_display_type_is_table$1,frontend_display_type_is_split:frontend_display_type_is_split$1,frontend_display_as:frontend_display_as$1,frontend_record_sum:frontend_record_sum$1,frontend_button_reload_tooltip:frontend_button_reload_tooltip$1,frontend_button_search_tooltip:frontend_button_search_tooltip$1,frontend_fields_filter_button_search:frontend_fields_filter_button_search$1,frontend_fields_filter_button_settings:frontend_fields_filter_button_settings$1,frontend_button_listview_control_tooltip:frontend_button_listview_control_tooltip$1,frontend_button_listview_control_label:frontend_button_listview_control_label$1,frontend_listview_control_columns:frontend_listview_control_columns$1,frontend_listview_control_columns_mobile_group:frontend_listview_control_columns_mobile_group$1,frontend_listview_control_clone_label:frontend_listview_control_clone_label$1,frontend_listview_control_clone_title:frontend_listview_control_clone_title$1,frontend_listview_control_clone_defaultData_label_start:frontend_listview_control_clone_defaultData_label_start$1,frontend_listview_control_clone_defaultData_label_end:frontend_listview_control_clone_defaultData_label_end$1,frontend_listview_control_delete_label:frontend_listview_control_delete_label$1,frontend_listview_control_delete_confirm_text:frontend_listview_control_delete_confirm_text$1,frontend_listview_control_delete_message_success:frontend_listview_control_delete_message_success$1,frontend_listview_control_filters:frontend_listview_control_filters$1,frontend_listview_control_filters_fields_extend:frontend_listview_control_filters_fields_extend$1,frontend_listview_control_new_label:frontend_listview_control_new_label$1,frontend_listview_control_new_title:frontend_listview_control_new_title$1,frontend_listview_control_new_message_success:frontend_listview_control_new_message_success$1,frontend_listview_control_new_message_failed:frontend_listview_control_new_message_failed$1,frontend_listview_control_rename_label:frontend_listview_control_rename_label$1,frontend_listview_control_rename_title:frontend_listview_control_rename_title$1,frontend_listview_control_share:frontend_listview_control_share$1,frontend_listview_control_sort:frontend_listview_control_sort$1,frontend_export_excel:frontend_export_excel$1,frontend_export_excel_toast:frontend_export_excel_toast$1,frontend_operation:frontend_operation$1,frontend_import_data:frontend_import_data$1,frontend_import_data_object_name:frontend_import_data_object_name$1,frontend_import_data_queue_import:frontend_import_data_queue_import$1,frontend_import_data_queue_import_description:frontend_import_data_queue_import_description$1,frontend_import_data_queue_import_encoding:frontend_import_data_queue_import_encoding$1,frontend_import_data_queue_import_template_url:frontend_import_data_queue_import_template_url$1,frontend_import_data_file:frontend_import_data_file$1,frontend_import_data_message_success:frontend_import_data_message_success$1,frontend_import_data_message_failed:frontend_import_data_message_failed$1,frontend_record_detail_tab_detailed:frontend_record_detail_tab_detailed$1,frontend_record_detail_tab_related:frontend_record_detail_tab_related$1,frontend_all_apps:frontend_all_apps$1,frontend_all_projects:frontend_all_projects$1,frontend_open_app_launcher:frontend_open_app_launcher$1,frontend_application_launcher:frontend_application_launcher$1,frontend_menu:frontend_menu$1,frontend_help:frontend_help$1,frontend_setup:frontend_setup$1,frontend_notifications:frontend_notifications$1,frontend_notifications_allread:frontend_notifications_allread$1,frontend_notifications_allread_message:frontend_notifications_allread_message$1,frontend_notifications_close_dialog:frontend_notifications_close_dialog$1,frontend_profile:frontend_profile$1,switch_space:switch_space$1,frontend_about:frontend_about$1,frontend_log_out:frontend_log_out$1,frontend_listview_warning_start:frontend_listview_warning_start$1,frontend_listview_warning_end:frontend_listview_warning_end$1,frontend_record_detail_related_list_warning:frontend_record_detail_related_list_warning$1,frontend_record_detail_related_lists_warning:frontend_record_detail_related_lists_warning$1,frontend_record_detail_related_lists_info:frontend_record_detail_related_lists_info$1,frontend_calendar_listWeek:frontend_calendar_listWeek$1,frontend_message_no_permission_to_edit:frontend_message_no_permission_to_edit$1,frontend_message_modification_successful:frontend_message_modification_successful$1,frontend_message_modification_failed:frontend_message_modification_failed$1,frontend_objects_related_alert_start:frontend_objects_related_alert_start$1,frontend_objects_related_alert_end:frontend_objects_related_alert_end$1,frontend_no_records_found:frontend_no_records_found$1,frontend_records_no_allowedit:frontend_records_no_allowedit$1,frontend_app_menu_save_order_group_nesting_error:frontend_app_menu_save_order_group_nesting_error$1,frontend_menu_setup:frontend_menu_setup$1,frontend_menu_new_object:frontend_menu_new_object$1,frontend_menu_view_object:frontend_menu_view_object$1,frontend_menu_new_micro_page:frontend_menu_new_micro_page$1,frontend_menu_edit_micro_page:frontend_menu_edit_micro_page$1,frontend_menu_new_url:frontend_menu_new_url$1,frontend_menu_edit_url:frontend_menu_edit_url$1,frontend_menu_add_existing_tabs:frontend_menu_add_existing_tabs$1,frontend_menu_edit_tab:frontend_menu_edit_tab$1,frontend_menu_delete_tab:frontend_menu_delete_tab$1,frontend_menu_new_group:frontend_menu_new_group$1,frontend_menu_edit_group:frontend_menu_edit_group$1,frontend_menu_delete_group:frontend_menu_delete_group$1,frontend_menu_move_group:frontend_menu_move_group$1,frontend_menu_dialog_move_group:frontend_menu_dialog_move_group$1,frontend_menu_group_none_children:frontend_menu_group_none_children$1,frontend_menu_edit_app:frontend_menu_edit_app$1,frontend_menu_dialog_name_placeholder:frontend_menu_dialog_name_placeholder$1,frontend_menu_tabs_group_name_label:frontend_menu_tabs_group_name_label$1,frontend_menu_tabs_group_name_placeholder:frontend_menu_tabs_group_name_placeholder$1,frontend_menu_tabs_group_default_open_label:frontend_menu_tabs_group_default_open_label$1,frontend_button_delete_confirm_text:frontend_button_delete_confirm_text$1,frontend_app_launcher_button_more:frontend_app_launcher_button_more$1,frontend_app_launcher_button_new_app:frontend_app_launcher_button_new_app$1,frontend_app_launcher_dialog_new_app_title:frontend_app_launcher_dialog_new_app_title$1,frontend_app_launcher_dialog_new_app_code_label:frontend_app_launcher_dialog_new_app_code_label$1,frontend_app_launcher_dialog_new_app_name_label:frontend_app_launcher_dialog_new_app_name_label$1,frontend_app_launcher_dialog_new_app_icon_label:frontend_app_launcher_dialog_new_app_icon_label$1,frontend_crud_toolbar_quick_search_placeholder:frontend_crud_toolbar_quick_search_placeholder$1,frontend_crud_toolbar_quick_search_tooltip_prefix:frontend_crud_toolbar_quick_search_tooltip_prefix$1,frontend_lookup_left_tree_search_organizations:frontend_lookup_left_tree_search_organizations$1,frontend_input_table_button_new:frontend_input_table_button_new$1,frontend_input_table_button_new_tooltip:frontend_input_table_button_new_tooltip$1,frontend_input_table_button_copy:frontend_input_table_button_copy$1,frontend_input_table_button_copy_tooltip:frontend_input_table_button_copy_tooltip$1,frontend_input_table_button_delete:frontend_input_table_button_delete$1,frontend_input_table_button_confirm:frontend_input_table_button_confirm$1,frontend_input_table_dialog_title_suffix:frontend_input_table_dialog_title_suffix$1,frontend_workflow_instances_applicant_name_prefix:frontend_workflow_instances_applicant_name_prefix$1,frontend_workflow_instance_submit_date_prefix:frontend_workflow_instance_submit_date_prefix$1,frontend_workflow_approval_judge_returned:frontend_workflow_approval_judge_returned$1,frontend_workflow_approval_judge_terminated:frontend_workflow_approval_judge_terminated$1,frontend_workflow_approval_judge_pending:frontend_workflow_approval_judge_pending$1,frontend_workflow_approval_judge_approved:frontend_workflow_approval_judge_approved$1,frontend_workflow_approval_judge_rejected:frontend_workflow_approval_judge_rejected$1,frontend_workflow_approval_judge_finished:frontend_workflow_approval_judge_finished$1,frontend_workflow_approval_judge_reassigned:frontend_workflow_approval_judge_reassigned$1,frontend_workflow_approval_judge_inhand:frontend_workflow_approval_judge_inhand$1,frontend_workflow_approval_judge_relocated:frontend_workflow_approval_judge_relocated$1,frontend_workflow_approval_judge_readed:frontend_workflow_approval_judge_readed$1,frontend_workflow_approval_suggestion_readed:frontend_workflow_approval_suggestion_readed$1,frontend_workflow_approval_suggestion_completed:frontend_workflow_approval_suggestion_completed$1,frontend_workflow_approval_suggestion_agree:frontend_workflow_approval_suggestion_agree$1,frontend_workflow_approval_suggestion_other:frontend_workflow_approval_suggestion_other$1,frontend_workflow_suggestion_placeholder:frontend_workflow_suggestion_placeholder$1,frontend_workflow_instance_button_sign:frontend_workflow_instance_button_sign$1,frontend_workflow_approval_history:frontend_workflow_approval_history$1,frontend_workflow_approval_history_read:frontend_workflow_approval_history_read$1,frontend_workflow_approval_history_unprocessed:frontend_workflow_approval_history_unprocessed$1,frontend_workflow_attachment:frontend_workflow_attachment$1,frontend_workflow_attachment_upload:frontend_workflow_attachment_upload$1,frontend_workflow_attachment_upload_success:frontend_workflow_attachment_upload_success$1,frontend_workflow_related_file:frontend_workflow_related_file$1,frontend_workflow_judge_option_approved:frontend_workflow_judge_option_approved$1,frontend_workflow_judge_option_rejected:frontend_workflow_judge_option_rejected$1,frontend_workflow_judge_option_readed:frontend_workflow_judge_option_readed$1,frontend_workflow_next_step:frontend_workflow_next_step$1,frontend_workflow_next_users:frontend_workflow_next_users$1,frontend_workflow_submit_validate_error_title:frontend_workflow_submit_validate_error_title$1,frontend_workflow_submit_validate_error_msg:frontend_workflow_submit_validate_error_msg$1,frontend_workflow_related_records_link_title:frontend_workflow_related_records_link_title$1,frontend_formula_variables_tab_form_fields:frontend_formula_variables_tab_form_fields$1,frontend_formula_variables_tab_form_global:frontend_formula_variables_tab_form_global$1,frontend_formula_variables_global_userId:frontend_formula_variables_global_userId$1,frontend_formula_variables_global_spaceId:frontend_formula_variables_global_spaceId$1,frontend_formula_variables_global_user_roles:frontend_formula_variables_global_user_roles$1,frontend_formula_variables_global_user_spaceUserId:frontend_formula_variables_global_user_spaceUserId$1,frontend_formula_variables_global_user_is_space_admin:frontend_formula_variables_global_user_is_space_admin$1},frontend_field_group_generalization="通用",frontend_download="下载",frontend_form_save="保存",frontend_form_save_and_new="保存并新建",frontend_form_cancel="取消",frontend_form_reset="重置",frontend_form_new="新建",frontend_form_edit="编辑",frontend_form_preview="预览",frontend_form_select="选择",frontend_form_please_select="请选择",frontend_form_confirm="确认",frontend_form_delete="删除",frontend_form_view="查看",frontend_form_details="详情",frontend_form_validation_failed_url="URL 格式不正确",frontend_delete_confirm_text="确定要删除此项目?",frontend_delete_many_selected_required="请选择要删除的项",frontend_delete_many_confirm_text="确定要删除吗?",frontend_display_type_is_table="表格",frontend_display_type_is_split="分栏视图",frontend_display_as="显示为",frontend_record_sum="个项目",frontend_button_reload_tooltip="刷新",frontend_button_search_tooltip="筛选",frontend_fields_filter_button_search="搜索",frontend_fields_filter_button_settings="选择搜索项",frontend_button_listview_control_tooltip="列表视图控制",frontend_button_listview_control_label="列表视图控制",frontend_listview_control_columns="显示的列",frontend_listview_control_columns_mobile_group="手机端",frontend_listview_control_clone="复制",frontend_listview_control_clone_label="复制",frontend_listview_control_clone_title="复制 列表视图",frontend_listview_control_clone_defaultData_label_start="",frontend_listview_control_clone_defaultData_label_end="的副本",frontend_listview_control_delete_label="删除",frontend_listview_control_delete_confirm_text="如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?",frontend_listview_control_delete_message_success="删除成功",frontend_listview_control_filters="过滤设置",frontend_listview_control_filters_fields_extend="条件组件",frontend_listview_control_new_label="新建",frontend_listview_control_new_title="新建 列表视图",frontend_listview_control_new_message_success="成功",frontend_listview_control_new_message_failed="失败",frontend_listview_control_rename_label="重命名",frontend_listview_control_rename_title="重命名 列表视图",frontend_listview_control_share="共享设置",frontend_listview_control_sort="默认排序规则",frontend_export_excel="导出",frontend_export_excel_toast="正在导出,请稍后...",frontend_operation="操作",frontend_import_data="导入数据",frontend_import_data_object_name="导入对象",frontend_import_data_queue_import="数据导入",frontend_import_data_queue_import_description="导入描述",frontend_import_data_queue_import_encoding="字符代码",frontend_import_data_queue_import_template_url="导入模板",frontend_import_data_file="Excel文件",frontend_import_data_message_success="已开始导入...",frontend_import_data_message_failed="导入失败",frontend_record_detail_tab_detailed="详细",frontend_record_detail_tab_related="相关",frontend_all_apps="所有应用",frontend_all_projects="所有项目",frontend_open_app_launcher="打开应用程序启动器",frontend_application_launcher="应用程序启动器",frontend_menu="菜单",frontend_help="帮助",frontend_setup="设置",frontend_notifications="通知",frontend_notifications_allread="全部标记为已读",frontend_notifications_allread_message="已全部标记为已读",frontend_notifications_close_dialog="关闭",frontend_profile="个人资料",switch_space="切换工作区",frontend_about="关于",frontend_log_out="注销",frontend_listview_warning_start="当前",frontend_listview_warning_end="视图不存在!",frontend_record_detail_related_list_warning="缺少父级对象、父级记录或相关列表对象属性!",frontend_record_detail_related_lists_warning="缺少父级对象或父级记录属性!",frontend_record_detail_related_lists_info="没有相关子表",frontend_calendar_listWeek="列表",frontend_message_no_permission_to_edit="您没有编辑该记录的权限!",frontend_message_modification_successful="修改成功!",frontend_message_modification_failed="修改失败!",frontend_objects_related_alert_start="未找到与相关列表对象",frontend_objects_related_alert_end="关联的相关表字段",frontend_no_records_found="无法找到记录",frontend_records_no_allowedit="您对这条记录没有编辑权限",frontend_app_menu_save_order_group_nesting_error="不支持分组嵌套",frontend_menu_setup="设置",frontend_menu_new_object="新建对象",frontend_menu_view_object="查看对象",frontend_menu_new_micro_page="新建微页面",frontend_menu_edit_micro_page="编辑微页面",frontend_menu_new_url="新建外部链接",frontend_menu_edit_url="编辑外部链接",frontend_menu_add_existing_tabs="添加现有选项卡",frontend_menu_edit_tab="编辑选项卡",frontend_menu_delete_tab="删除选项卡",frontend_menu_new_group="新建分组",frontend_menu_edit_group="编辑分组",frontend_menu_delete_group="删除分组",frontend_menu_move_group="移动分组",frontend_menu_dialog_move_group="移动到指定分组",frontend_menu_group_none_children="无菜单",frontend_menu_edit_app="查看应用",frontend_menu_dialog_name_placeholder="唯一标识",frontend_menu_tabs_group_name_label="名称",frontend_menu_tabs_group_name_placeholder="分组名称",frontend_menu_tabs_group_default_open_label="是否默认展开",frontend_button_delete_confirm_text="确定要删除吗?",frontend_app_launcher_button_more="更多",frontend_app_launcher_button_new_app="+ 新建应用",frontend_app_launcher_dialog_new_app_title="新建应用",frontend_app_launcher_dialog_new_app_code_label="应用唯一标识",frontend_app_launcher_dialog_new_app_name_label="显示名称",frontend_app_launcher_dialog_new_app_icon_label="图标",frontend_crud_toolbar_quick_search_placeholder="快捷搜索",frontend_crud_toolbar_quick_search_tooltip_prefix="可搜索字段:",frontend_lookup_left_tree_search_organizations="查找部门",frontend_input_table_button_new="新增",frontend_input_table_button_new_tooltip="保存并新增一行,即保存当前行数据并新增一条空白行",frontend_input_table_button_copy="复制",frontend_input_table_button_copy_tooltip="复制并新增一行,即保存当前行数据并复制当前行数据到新增行",frontend_input_table_button_delete="删除",frontend_input_table_button_confirm="完成",frontend_input_table_dialog_title_suffix="明细",frontend_workflow_instances_applicant_name_prefix="提交人:",frontend_workflow_instance_submit_date_prefix="提交日期:",frontend_workflow_approval_judge_returned="已退回",frontend_workflow_approval_judge_terminated="被取回",frontend_workflow_approval_judge_pending="审核中",frontend_workflow_approval_judge_approved="已核准",frontend_workflow_approval_judge_rejected="已驳回",frontend_workflow_approval_judge_finished="已完成",frontend_workflow_approval_judge_reassigned="转签核",frontend_workflow_approval_judge_inhand="处理中",frontend_workflow_approval_judge_relocated="重定位",frontend_workflow_approval_judge_readed="已阅",frontend_workflow_approval_suggestion_readed="已阅",frontend_workflow_approval_suggestion_completed="已办",frontend_workflow_approval_suggestion_agree="同意",frontend_workflow_approval_suggestion_other="其他常用意见",frontend_workflow_suggestion_placeholder="请填写意见",frontend_workflow_instance_button_sign="签批",frontend_workflow_approval_history="签批历程",frontend_workflow_approval_history_read="已读",frontend_workflow_approval_history_unprocessed="未处理",frontend_workflow_attachment="附件",frontend_workflow_attachment_upload="上传",frontend_workflow_attachment_upload_success="上传成功",frontend_workflow_related_file="相关文件",frontend_workflow_judge_option_approved="核准",frontend_workflow_judge_option_rejected="驳回",frontend_workflow_judge_option_readed="已阅",frontend_workflow_next_step="下一步",frontend_workflow_next_users="处理人",frontend_workflow_submit_validate_error_title="提交失败",frontend_workflow_submit_validate_error_msg="请填写必填字段",frontend_workflow_related_records_link_title="相关台账信息",frontend_formula_variables_tab_form_fields="表单字段",frontend_formula_variables_tab_form_global="全局变量",frontend_formula_variables_global_userId="用户ID",frontend_formula_variables_global_spaceId="工作区ID",frontend_formula_variables_global_user_roles="权限集",frontend_formula_variables_global_user_spaceUserId="人员ID",frontend_formula_variables_global_user_is_space_admin="是否工作区管理员",zh_cn$1={frontend_field_group_generalization:frontend_field_group_generalization,frontend_download:frontend_download,frontend_form_save:frontend_form_save,frontend_form_save_and_new:frontend_form_save_and_new,frontend_form_cancel:frontend_form_cancel,frontend_form_reset:frontend_form_reset,frontend_form_new:frontend_form_new,frontend_form_edit:frontend_form_edit,frontend_form_preview:frontend_form_preview,frontend_form_select:frontend_form_select,frontend_form_please_select:frontend_form_please_select,frontend_form_confirm:frontend_form_confirm,frontend_form_delete:frontend_form_delete,frontend_form_view:frontend_form_view,frontend_form_details:frontend_form_details,frontend_form_validation_failed_url:frontend_form_validation_failed_url,frontend_delete_confirm_text:frontend_delete_confirm_text,frontend_delete_many_selected_required:frontend_delete_many_selected_required,frontend_delete_many_confirm_text:frontend_delete_many_confirm_text,frontend_display_type_is_table:frontend_display_type_is_table,frontend_display_type_is_split:frontend_display_type_is_split,frontend_display_as:frontend_display_as,frontend_record_sum:frontend_record_sum,frontend_button_reload_tooltip:frontend_button_reload_tooltip,frontend_button_search_tooltip:frontend_button_search_tooltip,frontend_fields_filter_button_search:frontend_fields_filter_button_search,frontend_fields_filter_button_settings:frontend_fields_filter_button_settings,frontend_button_listview_control_tooltip:frontend_button_listview_control_tooltip,frontend_button_listview_control_label:frontend_button_listview_control_label,frontend_listview_control_columns:frontend_listview_control_columns,frontend_listview_control_columns_mobile_group:frontend_listview_control_columns_mobile_group,frontend_listview_control_clone:frontend_listview_control_clone,frontend_listview_control_clone_label:frontend_listview_control_clone_label,frontend_listview_control_clone_title:frontend_listview_control_clone_title,frontend_listview_control_clone_defaultData_label_start:frontend_listview_control_clone_defaultData_label_start,frontend_listview_control_clone_defaultData_label_end:frontend_listview_control_clone_defaultData_label_end,frontend_listview_control_delete_label:frontend_listview_control_delete_label,frontend_listview_control_delete_confirm_text:frontend_listview_control_delete_confirm_text,frontend_listview_control_delete_message_success:frontend_listview_control_delete_message_success,frontend_listview_control_filters:frontend_listview_control_filters,frontend_listview_control_filters_fields_extend:frontend_listview_control_filters_fields_extend,frontend_listview_control_new_label:frontend_listview_control_new_label,frontend_listview_control_new_title:frontend_listview_control_new_title,frontend_listview_control_new_message_success:frontend_listview_control_new_message_success,frontend_listview_control_new_message_failed:frontend_listview_control_new_message_failed,frontend_listview_control_rename_label:frontend_listview_control_rename_label,frontend_listview_control_rename_title:frontend_listview_control_rename_title,frontend_listview_control_share:frontend_listview_control_share,frontend_listview_control_sort:frontend_listview_control_sort,frontend_export_excel:frontend_export_excel,frontend_export_excel_toast:frontend_export_excel_toast,frontend_operation:frontend_operation,frontend_import_data:frontend_import_data,frontend_import_data_object_name:frontend_import_data_object_name,frontend_import_data_queue_import:frontend_import_data_queue_import,frontend_import_data_queue_import_description:frontend_import_data_queue_import_description,frontend_import_data_queue_import_encoding:frontend_import_data_queue_import_encoding,frontend_import_data_queue_import_template_url:frontend_import_data_queue_import_template_url,frontend_import_data_file:frontend_import_data_file,frontend_import_data_message_success:frontend_import_data_message_success,frontend_import_data_message_failed:frontend_import_data_message_failed,frontend_record_detail_tab_detailed:frontend_record_detail_tab_detailed,frontend_record_detail_tab_related:frontend_record_detail_tab_related,frontend_all_apps:frontend_all_apps,frontend_all_projects:frontend_all_projects,frontend_open_app_launcher:frontend_open_app_launcher,frontend_application_launcher:frontend_application_launcher,frontend_menu:frontend_menu,frontend_help:frontend_help,frontend_setup:frontend_setup,frontend_notifications:frontend_notifications,frontend_notifications_allread:frontend_notifications_allread,frontend_notifications_allread_message:frontend_notifications_allread_message,frontend_notifications_close_dialog:frontend_notifications_close_dialog,frontend_profile:frontend_profile,switch_space:switch_space,frontend_about:frontend_about,frontend_log_out:frontend_log_out,frontend_listview_warning_start:frontend_listview_warning_start,frontend_listview_warning_end:frontend_listview_warning_end,frontend_record_detail_related_list_warning:frontend_record_detail_related_list_warning,frontend_record_detail_related_lists_warning:frontend_record_detail_related_lists_warning,frontend_record_detail_related_lists_info:frontend_record_detail_related_lists_info,frontend_calendar_listWeek:frontend_calendar_listWeek,frontend_message_no_permission_to_edit:frontend_message_no_permission_to_edit,frontend_message_modification_successful:frontend_message_modification_successful,frontend_message_modification_failed:frontend_message_modification_failed,frontend_objects_related_alert_start:frontend_objects_related_alert_start,frontend_objects_related_alert_end:frontend_objects_related_alert_end,frontend_no_records_found:frontend_no_records_found,frontend_records_no_allowedit:frontend_records_no_allowedit,frontend_app_menu_save_order_group_nesting_error:frontend_app_menu_save_order_group_nesting_error,frontend_menu_setup:frontend_menu_setup,frontend_menu_new_object:frontend_menu_new_object,frontend_menu_view_object:frontend_menu_view_object,frontend_menu_new_micro_page:frontend_menu_new_micro_page,frontend_menu_edit_micro_page:frontend_menu_edit_micro_page,frontend_menu_new_url:frontend_menu_new_url,frontend_menu_edit_url:frontend_menu_edit_url,frontend_menu_add_existing_tabs:frontend_menu_add_existing_tabs,frontend_menu_edit_tab:frontend_menu_edit_tab,frontend_menu_delete_tab:frontend_menu_delete_tab,frontend_menu_new_group:frontend_menu_new_group,frontend_menu_edit_group:frontend_menu_edit_group,frontend_menu_delete_group:frontend_menu_delete_group,frontend_menu_move_group:frontend_menu_move_group,frontend_menu_dialog_move_group:frontend_menu_dialog_move_group,frontend_menu_group_none_children:frontend_menu_group_none_children,frontend_menu_edit_app:frontend_menu_edit_app,frontend_menu_dialog_name_placeholder:frontend_menu_dialog_name_placeholder,frontend_menu_tabs_group_name_label:frontend_menu_tabs_group_name_label,frontend_menu_tabs_group_name_placeholder:frontend_menu_tabs_group_name_placeholder,frontend_menu_tabs_group_default_open_label:frontend_menu_tabs_group_default_open_label,frontend_button_delete_confirm_text:frontend_button_delete_confirm_text,frontend_app_launcher_button_more:frontend_app_launcher_button_more,frontend_app_launcher_button_new_app:frontend_app_launcher_button_new_app,frontend_app_launcher_dialog_new_app_title:frontend_app_launcher_dialog_new_app_title,frontend_app_launcher_dialog_new_app_code_label:frontend_app_launcher_dialog_new_app_code_label,frontend_app_launcher_dialog_new_app_name_label:frontend_app_launcher_dialog_new_app_name_label,frontend_app_launcher_dialog_new_app_icon_label:frontend_app_launcher_dialog_new_app_icon_label,frontend_crud_toolbar_quick_search_placeholder:frontend_crud_toolbar_quick_search_placeholder,frontend_crud_toolbar_quick_search_tooltip_prefix:frontend_crud_toolbar_quick_search_tooltip_prefix,frontend_lookup_left_tree_search_organizations:frontend_lookup_left_tree_search_organizations,frontend_input_table_button_new:frontend_input_table_button_new,frontend_input_table_button_new_tooltip:frontend_input_table_button_new_tooltip,frontend_input_table_button_copy:frontend_input_table_button_copy,frontend_input_table_button_copy_tooltip:frontend_input_table_button_copy_tooltip,frontend_input_table_button_delete:frontend_input_table_button_delete,frontend_input_table_button_confirm:frontend_input_table_button_confirm,frontend_input_table_dialog_title_suffix:frontend_input_table_dialog_title_suffix,frontend_workflow_instances_applicant_name_prefix:frontend_workflow_instances_applicant_name_prefix,frontend_workflow_instance_submit_date_prefix:frontend_workflow_instance_submit_date_prefix,frontend_workflow_approval_judge_returned:frontend_workflow_approval_judge_returned,frontend_workflow_approval_judge_terminated:frontend_workflow_approval_judge_terminated,frontend_workflow_approval_judge_pending:frontend_workflow_approval_judge_pending,frontend_workflow_approval_judge_approved:frontend_workflow_approval_judge_approved,frontend_workflow_approval_judge_rejected:frontend_workflow_approval_judge_rejected,frontend_workflow_approval_judge_finished:frontend_workflow_approval_judge_finished,frontend_workflow_approval_judge_reassigned:frontend_workflow_approval_judge_reassigned,frontend_workflow_approval_judge_inhand:frontend_workflow_approval_judge_inhand,frontend_workflow_approval_judge_relocated:frontend_workflow_approval_judge_relocated,frontend_workflow_approval_judge_readed:frontend_workflow_approval_judge_readed,frontend_workflow_approval_suggestion_readed:frontend_workflow_approval_suggestion_readed,frontend_workflow_approval_suggestion_completed:frontend_workflow_approval_suggestion_completed,frontend_workflow_approval_suggestion_agree:frontend_workflow_approval_suggestion_agree,frontend_workflow_approval_suggestion_other:frontend_workflow_approval_suggestion_other,frontend_workflow_suggestion_placeholder:frontend_workflow_suggestion_placeholder,frontend_workflow_instance_button_sign:frontend_workflow_instance_button_sign,frontend_workflow_approval_history:frontend_workflow_approval_history,frontend_workflow_approval_history_read:frontend_workflow_approval_history_read,frontend_workflow_approval_history_unprocessed:frontend_workflow_approval_history_unprocessed,frontend_workflow_attachment:frontend_workflow_attachment,frontend_workflow_attachment_upload:frontend_workflow_attachment_upload,frontend_workflow_attachment_upload_success:frontend_workflow_attachment_upload_success,frontend_workflow_related_file:frontend_workflow_related_file,frontend_workflow_judge_option_approved:frontend_workflow_judge_option_approved,frontend_workflow_judge_option_rejected:frontend_workflow_judge_option_rejected,frontend_workflow_judge_option_readed:frontend_workflow_judge_option_readed,frontend_workflow_next_step:frontend_workflow_next_step,frontend_workflow_next_users:frontend_workflow_next_users,frontend_workflow_submit_validate_error_title:frontend_workflow_submit_validate_error_title,frontend_workflow_submit_validate_error_msg:frontend_workflow_submit_validate_error_msg,frontend_workflow_related_records_link_title:frontend_workflow_related_records_link_title,frontend_formula_variables_tab_form_fields:frontend_formula_variables_tab_form_fields,frontend_formula_variables_tab_form_global:frontend_formula_variables_tab_form_global,frontend_formula_variables_global_userId:frontend_formula_variables_global_userId,frontend_formula_variables_global_spaceId:frontend_formula_variables_global_spaceId,frontend_formula_variables_global_user_roles:frontend_formula_variables_global_user_roles,frontend_formula_variables_global_user_spaceUserId:frontend_formula_variables_global_user_spaceUserId,frontend_formula_variables_global_user_is_space_admin:frontend_formula_variables_global_user_is_space_admin},hidden$1="hidden",formula_hidden$1="New or edit invisible",sfield_group$1="Steedos Cube",sfield_tab_group$1="Fields",sfield_text$1="Text",sfield_textarea$1="Textarea",sfield_html$1="HTML",sfield_code$1="Code",sfield_markdown$1="Markdown",sfield_select$1="Select",sfield_color$1="Color",sfield_boolean$1="Checkbox",sfield_toggle$1="Toggle",sfield_date$1="Date",sfield_datetime$1="Datetime",sfield_time$1="Time",sfield_number$1="Number",sfield_currency$1="Currency",sfield_percent$1="Percent",sfield_password$1="Password",sfield_lookup$1="Lookup",sfield_master_detail$1="Master/Detail",sfield_autonumber$1="Autonumber",sfield_url$1="URL",sfield_email$1="Email",sfield_location$1="Geolocation",sfield_image$1="Image",sfield_file$1="File",sfield_formula$1="Formula",sfield_summary$1="Rollup Summary",sfield_table$1="Table",sfield_settings_panel_title$1="Settings",sfield_control_advanced$1="Advanced",sfield_control_general$1="General",sfield_control_field_type$1="Field Type",sfield_control_display_name$1="Display Name",sfield_control_api_name$1="API Name",sfield_control_api_name_description$1="API names can only contain lowercase letters, numbers, must start with a letter, and cannot end with an underscore or have two consecutive underscore characters.",sfield_control_required$1="Required",sfield_control_wide_field$1="Wide Field",sfield_control_allow_modify_number$1="Allow Modify Number",sfield_control_textarea_rows$1="Textarea Rows",sfield_control_language$1="Language",sfield_control_multiple_select$1="Multiple Select",sfield_control_multiple_select_remark$1="Switch between single and multiple select; please resubmit existing records or uniformly modify this field's storage format in the database.",sfield_control_data_type$1="Data Type",sfield_control_data_type_remark$1="Data type must be filled when the field type is formula.",sfield_control_select_options$1="Options",sfield_control_select_options_remark$1="Each option's display name and value cannot be empty; set background color in hex format like ffffff.",sfield_control_option_label$1="Label",sfield_control_option_value$1="Value",sfield_control_option_color$1="Color",sfield_control_option_description$1="Description",sfield_control_option_operation$1="Operation",sfield_control_precision$1="Precision",sfield_control_precision_remark$1="Number of digits to the left of the decimal point.",sfield_control_scale$1="Scale",sfield_control_scale_remark$1="For percentage fields, represents the number of decimal places displayed, e.g., two decimal places will show as 10.20%.",sfield_control_formula$1="Formula (formula)",sfield_control_formula_remark$1="Must be filled when the field type is autonumber or formula.",sfield_control_show_as_qr$1="Show as QR Code",sfield_control_coordinates_type$1="Coordinates Type",sfield_control_formula_blank_value$1="Treat Blank Fields",sfield_control_formula_blank_value_remark$1="Specify how to process formula output when referenced number and currency fields are blank.",sfield_control_zero_as_blank$1="Treat blank fields as zeros",sfield_control_blanks_as_blank$1="Treat blank fields as blank",sfield_control_reference_object$1="Reference Object",sfield_control_summary_object$1="Summary Object",sfield_control_summary_object_remark$1="Must be filled when the field type is rollup summary.",sfield_control_summary_type$1="Summary Type",sfield_control_summary_type_remark$1="Must be filled when the field type is rollup summary.",sfield_control_summary_field$1="Summary Field",sfield_control_summary_field_remark$1="Must be filled for rollup summary fields when the summary type is not COUNT; supports aggregating number, currency, date, datetime fields only.",sfield_control_description$1="Description",sfield_control_deleted_lookup_record_behavior$1="What happens if related record is deleted?",sfield_control_clear_value$1="Clear the value of this field. If you have made this field required, you cannot choose this option.",sfield_control_retain_related_record$1="Do not allow deletion of 'related records that are part of a relationship chart'.",sfield_control_write_requires_master_read$1="Allows editing of child records when the user has read access to the master record",sfield_control_write_requires_master_read_remark$1="Specifies the minimum access level required to create, edit, or delete child records from a master record. This is applicable to Master/Detail types only. Checking this allows users with 'Read' access to create, edit, or delete child records. Otherwise, 'Read/Write' access is required.",sfield_control_form$1="Form",sfield_control_input_type$1="Input Type",sfield_control_input_array$1="Input Array (input-array)",sfield_control_button_toolbar$1="Button Toolbar (button-toolbar)",sfield_control_button_group_select$1="Button Group Select (button-group-select)",sfield_control_chained_select$1="Chained Select (chained-select)",sfield_control_checkbox$1="Checkbox (checkbox)",sfield_control_checkboxes$1="Checkboxes (checkboxes)",sfield_control_input_city$1="Input City (input-city)",sfield_control_input_color$1="Input Color (input-color)",sfield_control_combo$1="Combo (combo)",sfield_control_condition_builder$1="Condition Builder (condition-builder)",sfield_control_input_date$1="Input Date (input-date)",sfield_control_input_datetime$1="Input Datetime (input-datetime)",sfield_control_input_month$1="Input Month (input-month)",sfield_control_input_date_range$1="Input Date Range (input-date-range)",sfield_control_input_datetime_range$1="Input Datetime Range (input-datetime-range)",sfield_control_input_month_range$1="Input Month Range (input-month-range)",sfield_control_input_kv$1="Input KV (input-kv)",sfield_control_input_kvs$1="Input KVS (input-kvs)",sfield_control_input_formula$1="Input Formula (input-formula)",sfield_control_diff_editor$1="Diff Editor (diff-editor)",sfield_control_editor$1="Editor (editor)",sfield_control_input_excel$1="Input Excel (input-excel)",sfield_control_input_file$1="Input File (input-file)",sfield_control_group$1="Group (group)",sfield_control_hidden$1="Hidden (hidden)",sfield_control_input_image$1="Input Image (input-image)",sfield_control_input_group$1="Input Group (input-group)",sfield_control_list_select$1="List Select (list-select)",sfield_control_location_picker$1="Location Picker (location-picker)",sfield_control_uuid$1="UUID",sfield_control_matrix_checkboxes$1="Matrix Checkboxes (matrix-checkboxes)",sfield_control_nested_select$1="Nested Select (nested-select)",sfield_control_input_number$1="Input Number (input-number)",sfield_control_input_password$1="Input Password (input-password)",sfield_control_picker$1="Picker (picker)",sfield_control_input_quarter$1="Input Quarter (input-quarter)",sfield_control_input_quarter_range$1="Input Quarter Range (input-quarter-range)",sfield_control_radio$1="Radio (radio)",sfield_control_radios$1="Radios (radios)",sfield_control_chart_radios$1="Chart Radios (chart-radios)",sfield_control_input_rating$1="Input Rating (input-rating)",sfield_control_input_range$1="Input Range (input-range)",sfield_control_input_repeat$1="Input Repeat (input-repeat)",sfield_control_input_rich_text$1="Input Rich Text (input-rich-text)",sfield_control_select$1="Select (select)",sfield_control_input_sub_form$1="Input Sub Form (input-sub-form)",sfield_control_switch$1="Switch (switch)",sfield_control_static$1="Static Display (static)",sfield_control_input_table$1="Input Table (input-table)",sfield_control_input_tag$1="Input Tag (input-tag)",sfield_control_input_text$1="Input Text (input-text)",sfield_control_textarea$1="Textarea (textarea)",sfield_control_input_time$1="Input Time (input-time)",sfield_control_input_time_range$1="Input Time Range (input-time-range)",sfield_control_transfer$1="Transfer (transfer)",sfield_control_transfer_picker$1="Transfer Picker (transfer-picker)",sfield_control_tabs_transfer$1="Tabs Transfer (tabs-transfer)",sfield_control_tabs_transfer_picker$1="Tabs Transfer Picker (tabs-transfer-picker)",sfield_control_input_tree$1="Input Tree (input-tree)",sfield_control_tree_select$1="Tree Select (tree-select)",sfield_control_input_year$1="Input Year (input-year)",sfield_control_input_year_range$1="Input Year Range (input-year-range)",sfield_control_json_schema$1="JSON Schema (json-schema)",sfield_control_json_schema_editor$1="JSON Schema Editor (json-schema-editor)",sfield_control_input_signature$1="Input Signature (input-signature)",sfield_control_input_verification_code$1="Input Verification Code (input-verification-code)",sfield_control_visible_on$1="Visibility Formula",sfield_control_readonly$1="Read-Only",sfield_control_readonly_remark$1="Read-only fields are not displayed in the form; data will not be submitted to the server.",sfield_control_static_remark$1="Static fields are displayed in the form, users cannot edit them, but values can be dynamically assigned.",sfield_control_inline_help_text$1="Help Text",sfield_control_enable_enhanced_lookup$1="Enhanced Lookup",sfield_control_enable_enhanced_lookup_remark$1="Use a popup to select records when referenced by other fields.",sfield_control_create_allowance$1="Allow Creation in Popup",sfield_control_depend_on$1="Dependency Fields",sfield_control_depend_on_remark$1="Changes in dependent fields trigger recalculation of the current field",sfield_control_enable_thousands$1="Show Thousands Separator",sfield_control_filters$1="Lookup Relationship Filters Condition",sfield_control_filters_remark$1="When the field type is Lookup Relationship or Master Detail Relationship, filtering conditions can be configured for the field, filtering option list; The field values can be configured as formulas, and the fields referenced in the formulas need to be configured in Dependent Fields at the same time",sfield_control_create_unique_index$1="Create Unique Index",sfield_control_create_unique_index_remark$1="Performed once every day at midnight; existing indexes are not recreated.",sfield_control_filterable$1="Enable quick search on the list page",sfield_control_default_filter_field$1="Default Filter Field",sfield_control_sortable$1="Sortable",sfield_control_create_index$1="Create Index",sfield_control_create_index_remark$1="Performed once every day at midnight; existing indexes are not recreated.",sfield_control_name_field$1="Name Field",sfield_control_foreign_key_field$1="Foreign Key Field",sfield_control_foreign_key_field_remark$1="Associated object's data stored in the current object's field. For instance, if object A relates to object B, and A1 relates to B1, then by default, B1's _id is stored in A1's field. Changing the foreign key field uses its value instead of _id.",sfield_control_foreign_key_field_default$1="Default to primary key, _id by default",widget_ed={hidden:hidden$1,formula_hidden:formula_hidden$1,sfield_group:sfield_group$1,sfield_tab_group:sfield_tab_group$1,sfield_text:sfield_text$1,sfield_textarea:sfield_textarea$1,sfield_html:sfield_html$1,sfield_code:sfield_code$1,sfield_markdown:sfield_markdown$1,sfield_select:sfield_select$1,sfield_color:sfield_color$1,sfield_boolean:sfield_boolean$1,sfield_toggle:sfield_toggle$1,sfield_date:sfield_date$1,sfield_datetime:sfield_datetime$1,sfield_time:sfield_time$1,sfield_number:sfield_number$1,sfield_currency:sfield_currency$1,sfield_percent:sfield_percent$1,sfield_password:sfield_password$1,sfield_lookup:sfield_lookup$1,sfield_master_detail:sfield_master_detail$1,sfield_autonumber:sfield_autonumber$1,sfield_url:sfield_url$1,sfield_email:sfield_email$1,sfield_location:sfield_location$1,sfield_image:sfield_image$1,sfield_file:sfield_file$1,sfield_formula:sfield_formula$1,sfield_summary:sfield_summary$1,sfield_table:sfield_table$1,sfield_settings_panel_title:sfield_settings_panel_title$1,sfield_control_advanced:sfield_control_advanced$1,sfield_control_general:sfield_control_general$1,sfield_control_field_type:sfield_control_field_type$1,sfield_control_display_name:sfield_control_display_name$1,sfield_control_api_name:sfield_control_api_name$1,sfield_control_api_name_description:sfield_control_api_name_description$1,sfield_control_required:sfield_control_required$1,sfield_control_wide_field:sfield_control_wide_field$1,sfield_control_allow_modify_number:sfield_control_allow_modify_number$1,sfield_control_textarea_rows:sfield_control_textarea_rows$1,sfield_control_language:sfield_control_language$1,sfield_control_multiple_select:sfield_control_multiple_select$1,sfield_control_multiple_select_remark:sfield_control_multiple_select_remark$1,sfield_control_data_type:sfield_control_data_type$1,sfield_control_data_type_remark:sfield_control_data_type_remark$1,sfield_control_select_options:sfield_control_select_options$1,sfield_control_select_options_remark:sfield_control_select_options_remark$1,sfield_control_option_label:sfield_control_option_label$1,sfield_control_option_value:sfield_control_option_value$1,sfield_control_option_color:sfield_control_option_color$1,sfield_control_option_description:sfield_control_option_description$1,sfield_control_option_operation:sfield_control_option_operation$1,sfield_control_precision:sfield_control_precision$1,sfield_control_precision_remark:sfield_control_precision_remark$1,sfield_control_scale:sfield_control_scale$1,sfield_control_scale_remark:sfield_control_scale_remark$1,sfield_control_formula:sfield_control_formula$1,sfield_control_formula_remark:sfield_control_formula_remark$1,sfield_control_show_as_qr:sfield_control_show_as_qr$1,sfield_control_coordinates_type:sfield_control_coordinates_type$1,sfield_control_formula_blank_value:sfield_control_formula_blank_value$1,sfield_control_formula_blank_value_remark:sfield_control_formula_blank_value_remark$1,sfield_control_zero_as_blank:sfield_control_zero_as_blank$1,sfield_control_blanks_as_blank:sfield_control_blanks_as_blank$1,sfield_control_reference_object:sfield_control_reference_object$1,sfield_control_summary_object:sfield_control_summary_object$1,sfield_control_summary_object_remark:sfield_control_summary_object_remark$1,sfield_control_summary_type:sfield_control_summary_type$1,sfield_control_summary_type_remark:sfield_control_summary_type_remark$1,sfield_control_summary_field:sfield_control_summary_field$1,sfield_control_summary_field_remark:sfield_control_summary_field_remark$1,sfield_control_description:sfield_control_description$1,sfield_control_deleted_lookup_record_behavior:sfield_control_deleted_lookup_record_behavior$1,sfield_control_clear_value:sfield_control_clear_value$1,sfield_control_retain_related_record:sfield_control_retain_related_record$1,sfield_control_write_requires_master_read:sfield_control_write_requires_master_read$1,sfield_control_write_requires_master_read_remark:sfield_control_write_requires_master_read_remark$1,sfield_control_form:sfield_control_form$1,sfield_control_input_type:sfield_control_input_type$1,sfield_control_input_array:sfield_control_input_array$1,sfield_control_button_toolbar:sfield_control_button_toolbar$1,sfield_control_button_group_select:sfield_control_button_group_select$1,sfield_control_chained_select:sfield_control_chained_select$1,sfield_control_checkbox:sfield_control_checkbox$1,sfield_control_checkboxes:sfield_control_checkboxes$1,sfield_control_input_city:sfield_control_input_city$1,sfield_control_input_color:sfield_control_input_color$1,sfield_control_combo:sfield_control_combo$1,sfield_control_condition_builder:sfield_control_condition_builder$1,sfield_control_input_date:sfield_control_input_date$1,sfield_control_input_datetime:sfield_control_input_datetime$1,sfield_control_input_month:sfield_control_input_month$1,sfield_control_input_date_range:sfield_control_input_date_range$1,sfield_control_input_datetime_range:sfield_control_input_datetime_range$1,sfield_control_input_month_range:sfield_control_input_month_range$1,sfield_control_input_kv:sfield_control_input_kv$1,sfield_control_input_kvs:sfield_control_input_kvs$1,sfield_control_input_formula:sfield_control_input_formula$1,sfield_control_diff_editor:sfield_control_diff_editor$1,sfield_control_editor:sfield_control_editor$1,sfield_control_input_excel:sfield_control_input_excel$1,sfield_control_input_file:sfield_control_input_file$1,sfield_control_group:sfield_control_group$1,sfield_control_hidden:sfield_control_hidden$1,sfield_control_input_image:sfield_control_input_image$1,sfield_control_input_group:sfield_control_input_group$1,sfield_control_list_select:sfield_control_list_select$1,sfield_control_location_picker:sfield_control_location_picker$1,sfield_control_uuid:sfield_control_uuid$1,sfield_control_matrix_checkboxes:sfield_control_matrix_checkboxes$1,sfield_control_nested_select:sfield_control_nested_select$1,sfield_control_input_number:sfield_control_input_number$1,sfield_control_input_password:sfield_control_input_password$1,sfield_control_picker:sfield_control_picker$1,sfield_control_input_quarter:sfield_control_input_quarter$1,sfield_control_input_quarter_range:sfield_control_input_quarter_range$1,sfield_control_radio:sfield_control_radio$1,sfield_control_radios:sfield_control_radios$1,sfield_control_chart_radios:sfield_control_chart_radios$1,sfield_control_input_rating:sfield_control_input_rating$1,sfield_control_input_range:sfield_control_input_range$1,sfield_control_input_repeat:sfield_control_input_repeat$1,sfield_control_input_rich_text:sfield_control_input_rich_text$1,sfield_control_select:sfield_control_select$1,sfield_control_input_sub_form:sfield_control_input_sub_form$1,sfield_control_switch:sfield_control_switch$1,sfield_control_static:sfield_control_static$1,sfield_control_input_table:sfield_control_input_table$1,sfield_control_input_tag:sfield_control_input_tag$1,sfield_control_input_text:sfield_control_input_text$1,sfield_control_textarea:sfield_control_textarea$1,sfield_control_input_time:sfield_control_input_time$1,sfield_control_input_time_range:sfield_control_input_time_range$1,sfield_control_transfer:sfield_control_transfer$1,sfield_control_transfer_picker:sfield_control_transfer_picker$1,sfield_control_tabs_transfer:sfield_control_tabs_transfer$1,sfield_control_tabs_transfer_picker:sfield_control_tabs_transfer_picker$1,sfield_control_input_tree:sfield_control_input_tree$1,sfield_control_tree_select:sfield_control_tree_select$1,sfield_control_input_year:sfield_control_input_year$1,sfield_control_input_year_range:sfield_control_input_year_range$1,sfield_control_json_schema:sfield_control_json_schema$1,sfield_control_json_schema_editor:sfield_control_json_schema_editor$1,sfield_control_input_signature:sfield_control_input_signature$1,sfield_control_input_verification_code:sfield_control_input_verification_code$1,sfield_control_visible_on:sfield_control_visible_on$1,sfield_control_readonly:sfield_control_readonly$1,sfield_control_readonly_remark:sfield_control_readonly_remark$1,sfield_control_static_remark:sfield_control_static_remark$1,sfield_control_inline_help_text:sfield_control_inline_help_text$1,sfield_control_enable_enhanced_lookup:sfield_control_enable_enhanced_lookup$1,sfield_control_enable_enhanced_lookup_remark:sfield_control_enable_enhanced_lookup_remark$1,sfield_control_create_allowance:sfield_control_create_allowance$1,sfield_control_depend_on:sfield_control_depend_on$1,sfield_control_depend_on_remark:sfield_control_depend_on_remark$1,sfield_control_enable_thousands:sfield_control_enable_thousands$1,sfield_control_filters:sfield_control_filters$1,sfield_control_filters_remark:sfield_control_filters_remark$1,sfield_control_create_unique_index:sfield_control_create_unique_index$1,sfield_control_create_unique_index_remark:sfield_control_create_unique_index_remark$1,sfield_control_filterable:sfield_control_filterable$1,sfield_control_default_filter_field:sfield_control_default_filter_field$1,sfield_control_sortable:sfield_control_sortable$1,sfield_control_create_index:sfield_control_create_index$1,sfield_control_create_index_remark:sfield_control_create_index_remark$1,sfield_control_name_field:sfield_control_name_field$1,sfield_control_foreign_key_field:sfield_control_foreign_key_field$1,sfield_control_foreign_key_field_remark:sfield_control_foreign_key_field_remark$1,sfield_control_foreign_key_field_default:sfield_control_foreign_key_field_default$1,"steedos-field-group_sfield_tab_group":"Fields","steedos-field-group_title":"Group","steedos-field-group_scaffold_title":"Group","steedos-field-group_regions_body_label":"Field Items","steedos-field-group_panel_title":"Settings","steedos-field-group_panel_controls_title_label":"Title","steedos-field-group_panel_controls_collapsed_label":"Default Collapsed","steedos-field-group_panel_controls_visible_on_label":"Visibility Condition","steedos-object_title":"Object","steedos-object_description":"Object","steedos-object_regions_body_label":"Content Area","steedos-object_panelTitle":"Settings","steedos-object_panelControls_name_label":"Object Name","steedos-object_panelControls_label_label":"Display Name","steedos-object_panelControls_description_label":"Description","steedos-object_group":"Steedos","steedos-object_usage":"renderer","steedos-object_body_label":"Content Area","steedos-object_panel_title":"Settings","steedos-object_name_label":"Object Name","steedos-object_label_label":"Display Name","steedos-object_description_label":"Description","steedos-board_group":"Steedos","steedos-board_title":"Kanban","steedos-board_boardSource_A_label":"Board A","steedos-board_boardSource_B_label":"Board B","steedos-board_boardHeader_tpl":"Board ${label}","steedos-board_boardFooter_tpl":"Board ${label} Footer","steedos-board_cardSchema_toolbar_buttons_edit_label":"Edit","steedos-board_cardSchema_toolbar_buttons_edit_dialog_title":"Edit","steedos-board_cardSchema_toolbar_buttons_edit_dialog_body":"You are editing this card","steedos-board_cardSchema_toolbar_buttons_delete_label":"Delete","steedos-board_cardSchema_toolbar_buttons_delete_dialog_title":"Notice","steedos-board_cardSchema_toolbar_buttons_delete_dialog_body":"You deleted this card","steedos-board_cardSource_A1_label":"Item A1","steedos-board_cardSource_A2_label":"Item A2","steedos-board_cardSource_B1_label":"Item B1","steedos-board_cardSource_B2_label":"Item B2","steedos-board_panelTitle":"Settings","steedos-board_panelControls_columns_label":"Columns","steedos-board_panelControls_vertical_label":"Layout","steedos-board_panelControls_vertical_option":"Vertical","steedos-record-detail-header_group":"Steedos","steedos-record-detail-header_title":"Title Panel","steedos-record-detail-header_description":"The title panel displayed on the record detail page, including record buttons.","steedos-record-detail-header_props_objectApiName_description":"Object Name","steedos-record-detail-header_props_recordId_description":"Record ID","steedos-record-detail-header_panelTitle":"Settings","steedos-record-detail-header_panelControls_object_label":"Object","steedos-record-detail-header_panelControls_object_source_adaptor_current_object":"Current Object","steedos-record-detail-header_panelControls_recordId_label":"Record ID","steedos-record-detail-header_panelControls_className_label":"CSS Class Name","steedos-object-form_group":"Steedos","steedos-object-form_title":"Object Form","steedos-object-form_props_objectApiName":"Object Name","steedos-object-form_props_recordId":"Record ID","steedos-object-form_props_mode":"Display Mode","steedos-object-form_props_enableInitApi":"Init API","steedos-object-form_props_layout":"Form Layout","steedos-object-form_props_initApiRequestAdaptor":"Init API Request Adaptor","steedos-object-form_props_initApiAdaptor":"Init API Response Adaptor","steedos-object-form_props_apiRequestAdaptor":"Save API Request Adaptor","steedos-object-form_props_apiAdaptor":"Save API Response Adaptor","steedos-object-form_panelTitle":"Settings","steedos-object-form_tab_props":"Properties","steedos-object-form_section_basic":"Basic","steedos-object-form_field_objectApiName":"Object","steedos-object-form_field_currentObject":"Current Object","steedos-object-form_field_recordId":"Record ID","steedos-object-form_field_mode":"Display Mode","steedos-object-form_field_mode_read":"Read","steedos-object-form_field_mode_edit":"Edit","steedos-object-form_field_enableInitApi":"Init API","steedos-object-form_field_enable":"Enable","steedos-object-form_field_disable":"Disable","steedos-object-form_field_layout":"Form Item Layout","steedos-object-form_field_layout_vertical":"Vertical","steedos-object-form_field_layout_horizontal":"Horizontal","steedos-object-form_field_enableTabs":"Enable Tabs Mode","steedos-object-form_field_tabsMode":"Tabs Mode","steedos-object-form_tabsMode_default":"Default","steedos-object-form_tabsMode_line":"Line","steedos-object-form_tabsMode_card":"Card","steedos-object-form_tabsMode_radio":"Radio","steedos-object-form_tabsMode_vertical":"Vertical","steedos-object-form_tabsMode_chrome":"Chrome","steedos-object-form_tabsMode_simple":"Simple","steedos-object-form_tabsMode_strong":"Strong","steedos-object-form_tabsMode_tiled":"Tiled","steedos-object-form_tabsMode_sidebar":"Sidebar","steedos-object-form_section_fields":"Fields","steedos-object-form_field_fields":"Displayed Fields","steedos-object-form_field_excludedFields":"Excluded Fields","steedos-object-form_field_fieldsExtend":"Override Field Config","steedos-object-form_tip_fieldsExtend":'Override field config. Example:\n```\n{\n "name": {\n "is_wide": true, // wide field\n "required": true, // required\n "amis": { // renderer props\n "type": "input-color" // override to color picker\n ...\n } \n }, \n "title": {\n "group": "Group 1" // set group\n ...\n }\n}\n```',"steedos-object-form_section_advanced":"Advanced","steedos-object-form_field_defaultData":"Init Static Data","steedos-object-form_field_formDataFilter":"FORM","steedos-object-form_tip_formDataFilter":"If you need to process the original form returned by the component, you can write a function script.\n\nSignature: (form, env, data) => form\n\nParameters:\n\nform - original form schema\n\nenv - amis env, can call env.fetcher for async requests\n\ndata - data in scope\n\nReturn:\n\nProcessed form schema\n\nExample:\n\n```\nconsole.log('data===>', data);\nconst api = ...;\nreturn env.fetcher(api, {}).then((result) => {\n console.log(result);\n form.body[0].tabs[0].title='Basic Info';\n return form;\n});\n\n```\n","steedos-object-form_tab_appearance":"Appearance","steedos-object-form_section_css":"CSS Class","steedos-object-form_field_className":"Form","steedos-object-form_tab_api":"API","steedos-object-form_section_initApi":"Init Data API","steedos-object-form_field_initApiRequestAdaptor":"Request Adaptor","steedos-object-form_tip_initApiRequestAdaptor":"Signature: (api) => api, data in api.data, return api after modification.","steedos-object-form_field_initApiAdaptor":"Response Adaptor","steedos-object-form_tip_initApiAdaptor":"Signature: (payload, response, api) => payload","steedos-object-form_section_saveApi":"Save Data API","steedos-object-form_field_apiRequestAdaptor":"Request Adaptor","steedos-object-form_tip_apiRequestAdaptor":"Signature: (api) => api, data in api.data, return api after modification.","steedos-object-form_field_apiAdaptor":"Response Adaptor","steedos-object-form_tip_apiAdaptor":"Signature: (payload, response, api) => payload","steedos-object-listview_group":"Steedos","steedos-object-listview_title":"List View","steedos-object-listview_description":"Display the list view of the specified object.","steedos-object-listview_objectApiName":"Object Name","steedos-object-listview_listName":"View Name","steedos-object-listview_requestAdaptor":"Request Adaptor","steedos-object-listview_adaptor":"Response Adaptor","steedos-object-listview_panelTitle":"Settings","steedos-object-listview_object":"Object","steedos-object-listview_current_object":"Current Object","steedos-object-listview_view":"View","steedos-object-listview_perPage":"Records per page","steedos-object-listview_showHeader":"Show Header","steedos-object-listview_crudMode":"Display Mode","steedos-object-listview_table":"Table","steedos-object-listview_cards":"Cards","steedos-object-listview_className":"CSS Class","steedos-object-listview_data_api":"Data API","steedos-object-listview_requestAdaptor_desc":"Function signature: (api) => api. Data is in api.data, return api after modification.","steedos-object-listview_adaptor_desc":"Function signature: (payload, response, api) => payload","steedos-object-listview_advanced":"Advanced","steedos-object-listview_crud":"CRUD","steedos-object-listview_crud_doc":"If you need to customize the CRUD schema returned by the component, you can write a function script.\n\nFunction signature: (crud, env, data) => crud\n\nParameters:\n\ncrud Original CRUD schema\n\nenv amis env, you can use env.fetcher for async requests\n\ndata Data in data scope\n\nReturn value:\n\nYou need to return the processed CRUD schema\n\nExample:\n\n```\nconsole.log('data===>', data);\nconst api = ...;\nreturn env.fetcher(api, {}).then((result) => {\n console.log(result);\n crud.columns.push({'label': 'xxx', name: 'xxx'});\n return crud;\n});\n\n```","steedos-object-table_group":"Steedos","steedos-object-table_title":"Object Table","steedos-object-table_props_objectApiName":"Object Name","steedos-object-table_props_columns":"Columns","steedos-object-table_props_amisCondition":"Filter Conditions","steedos-object-table_props_sortField":"Sort Field","steedos-object-table_props_sortOrder":"Sort Order","steedos-object-table_props_top":"Number of Records","steedos-object-table_props_requestAdaptor":"Request Adaptor","steedos-object-table_props_adaptor":"Response Adaptor","steedos-object-table_panelTitle":"Settings","steedos-object-table_tabs_props":"Properties","steedos-object-table_collapse_basic":"Basic","steedos-object-table_object":"Object","steedos-object-table_currentObject":"Current Object","steedos-object-table_fields":"Displayed Fields","steedos-object-table_fieldsExtend":"Override Field Config","steedos-object-table_crudMode":"Display Mode","steedos-object-table_crudMode_table":"Table","steedos-object-table_crudMode_cards":"Cards","steedos-object-table_collapse_api":"API","steedos-object-table_requestAdaptor":"Request Adaptor","steedos-object-table_requestAdaptor_desc":"Function signature: (api) => api, data in api.data, return modified api.","steedos-object-table_adaptor":"Response Adaptor","steedos-object-table_adaptor_desc":"Function signature: (payload, response, api) => payload","steedos-object-table_collapse_advanced":"Advanced","steedos-object-table_markdown_crud":"If you need to process the original crud schema returned by the component, you can write your own function.\n\nFunction signature: (crud, env, data) => crud\n\nParameters:\n\ncrud original crud schema\n\nenv amis env, can use env.fetcher for async request\n\ndata data in data scope\n\nReturn:\n\nProcessed crud schema\n\nExample:\n\n```\nconsole.log('data===>', data);\nconst api = ...;\nreturn env.fetcher(api, {}).then((result) => {\n console.log(result);\n crud.columns.push({'label': 'xxx', name: 'xxx'});\n return crud;\n});\n```","steedos-object-table_tabs_appearance":"Appearance","steedos-object-table_collapse_css":"CSS Class","steedos-object-table_css_table":"Table","steedos-object-table_tabs_filter":"Filter","steedos-object-table_filter_condition":"Filter Conditions","steedos-object-table_tabs_other":"Other","steedos-object-table_sortField":"Sort Field","steedos-object-table_sortOrder":"Sort Order","steedos-object-table_sortOrder_asc":"Ascending","steedos-object-table_sortOrder_desc":"Descending","steedos-object-table_top":"Number of Records","steedos-object-table_top_remark":"TOP: disables pagination, always shows the specified number of records","steedos-object-related-listview_group":"Steedos","steedos-object-related-listview_title":"Related List","steedos-object-related-listview_description":"Display a specified related list of an object.","steedos-object-related-listview_props_objectApiName":"Parent Object","steedos-object-related-listview_props_recordId":"Parent Record","steedos-object-related-listview_props_relatedObjectApiName":"Related List Object","steedos-object-related-listview_props_requestAdaptor":"Request Adaptor","steedos-object-related-listview_props_adaptor":"Response Adaptor","steedos-object-related-listview_panelTitle":"Settings","steedos-object-related-listview_tabs_props":"Properties","steedos-object-related-listview_collapse_basic":"Basic Properties","steedos-object-related-listview_currentObject":"Current Object","steedos-object-related-listview_recordId":"Parent Record","steedos-object-related-listview_relatedObjectApiName":"Related List Object","steedos-object-related-listview_enableHeaderToolbar":"Show Header Toolbar","steedos-object-related-listview_top":"Number of Records","steedos-object-related-listview_top_remark":"If set, paging will be disabled and only the configured number of records will be displayed.","steedos-object-related-listview_perPage":"Records Per Page","steedos-object-related-listview_visibleOn":"Visible When","steedos-object-related-listview_visibleOn_remark":"Format: Static/Expression","steedos-object-related-listview_className":"CSS Class","steedos-object-related-listview_collapse_api":"Data API","steedos-object-related-listview_requestAdaptor":"Request Adaptor","steedos-object-related-listview_requestAdaptor_desc":"Function signature: (api) => api, data is in api.data, return modified api object.","steedos-object-related-listview_adaptor":"Response Adaptor","steedos-object-related-listview_adaptor_desc":"Function signature: (payload, response, api) => payload","steedos-object-related-listview_collapse_advanced":"Advanced","steedos-object-related-listview_crudDataFilter":"CRUD","steedos-object-related-listview_markdown_crud":"If you need to process the original crud returned by the component, you can write a script function to implement it.\n\nFunction signature: (crud, env, data) => crud\n\nParameters:\n\ncrud Original crud schema returned by the component\nenv amis env, can call env.fetcher to perform async requests\ndata Data in the data domain\n\nReturn value:\n\nFinally return the processed crud schema\n\nExample:\n\n```\nconsole.log('data===>', data);\nconst api = ...;\nreturn env.fetcher(api, {}).then((result) => {\n console.log(result);\n crud.columns.push({'label': 'xxx', name: 'xxx'});\n return crud;\n});\n```","steedos-object-related-lists_group":"Steedos","steedos-object-related-lists_title":"All Related Lists","steedos-object-related-lists_description":"Displays related lists of the specified object, configurable based on the page layout.","steedos-object-related-lists_props_objectApiName":"Parent Object","steedos-object-related-lists_props_recordId":"Parent Record","steedos-object-related-lists_panelTitle":"Settings","steedos-object-related-lists_panelControls_objectApiName":"Parent Object","steedos-object-related-lists_panelControls_recordId":"Parent Record","steedos-object-related-lists_currentObject":"Current Object","steedos-record-service_group":"Steedos","steedos-record-service_title":"Record Service","steedos-record-service_props_objectApiName":"Object Name","steedos-record-service_props_objectApiName_currentObject":"Current Object","steedos-record-service_props_recordId":"Record Id","steedos-record-service_props_initApiRequestAdaptor":"Init Data Api Request Adaptor","steedos-record-service_props_tip_initApiRequestAdaptor":"Signature: (api) => api, data in api.data, return api after modification.","steedos-record-service_props_initApiAdaptor":"Init Data Api Response Adaptor","steedos-record-service_props_tip_initApiAdaptor":"Signature: (payload, response, api) => payload","steedos-record-service_panelTitle":"Settings","steedos-record-service_regions_body":"Content Area","steedos-object-calendar_group":"Steedos","steedos-object-calendar_title":"Object Calendar","steedos-object-calendar_props_objectApiName":"Object Name","steedos-object-calendar_props_startDateExpr":"Start Date Field","steedos-object-calendar_props_endDateExpr":"End Date Field","steedos-object-calendar_props_allDayExpr":"All Day Field","steedos-object-calendar_props_textExpr":"Title Field","steedos-object-calendar_props_currentView":"Default View","steedos-object-calendar_panelTitle":"Settings","steedos-object-calendar_panelControls_objectApiName":"Object","steedos-object-calendar_panelControls_currentObject":"Current Object","steedos-object-calendar_panelControls_startDateExpr":"Start Date Field","steedos-object-calendar_panelControls_endDateExpr":"End Date Field","steedos-object-calendar_panelControls_allDayExpr":"All Day Field","steedos-object-calendar_panelControls_textExpr":"Title Field","steedos-object-calendar_panelControls_currentView":"Default View","steedos-object-calendar_options_month":"Month","steedos-object-calendar_options_week":"Week","steedos-object-calendar_options_day":"Day","steedos-object-calendar_options_list":"List","steedos-input-table_group":"Steedos","steedos-input-table_title":"Input Table","steedos-input-table_description":"Table input component, further encapsulation of amis input-table component.","steedos-input-table_props_name":"Field Name","steedos-input-table_props_fields":"Field Configuration","steedos-input-table_props_addable":"Addable","steedos-input-table_props_editable":"Editable","steedos-input-table_props_removable":"Removable","steedos-input-table_props_draggable":"Draggable","steedos-input-table_props_inlineEditMode":"Inline Edit Mode","steedos-input-table_props_strictMode":"Strict Mode","steedos-input-table_props_perPage":"Rows per Page","steedos-input-table_props_enableDialog":"Enable Dialog Mode","steedos-input-table_scaffold_fields_a":"A","steedos-input-table_scaffold_fields_b":"B","steedos-input-table_scaffold_fields_b_options_op1":"Option 1","steedos-input-table_scaffold_fields_b_options_op2":"Option 2","steedos-input-table_preview_fields_a":"A","steedos-input-table_preview_fields_b":"B","steedos-input-table_preview_fields_b_options_op1":"Option 1","steedos-input-table_preview_fields_b_options_op2":"Option 2","steedos-input-table_panelTitle":"Settings","steedos-input-table_panelControls_name":"Field Name","steedos-input-table_panelControls_fields":"Field Configuration","steedos-input-table_panelControls_columns":"Displayed Columns","steedos-input-table_panelControls_addable":"Addable","steedos-input-table_panelControls_editable":"Editable","steedos-input-table_panelControls_removable":"Removable","steedos-input-table_panelControls_draggable":"Draggable","steedos-input-table_panelControls_inlineEditMode":"Inline Edit Mode","steedos-input-table_panelControls_inlineEditMode_remark":"When editable, show inline mode to edit field values directly in cells.","steedos-input-table_panelControls_strictMode":"Strict Mode","steedos-input-table_panelControls_strictMode_remark":"For performance, by default changes in other form items will not refresh the table. To sync with other main form field values, disable strict mode. Lookup child fields with depend_on will force strict mode off automatically.","steedos-input-table_panelControls_perPage":"Rows per Page","steedos-input-table_panelControls_perPage_remark":"If empty, pagination is disabled","steedos-input-table_panelControls_enableDialog":"Enable Dialog Mode","steedos-input-table_panelControls_enableDialog_remark":"Disabling dialog mode will automatically enable inline mode.","steedos-icon_group":"Steedos Atomic Components","steedos-icon_title":"Icon","steedos-icon_panelTitle":"Settings","steedos-icon_category":"Category","steedos-icon_name":"Name","steedos-icon_className":"ClassName","steedos-icon_containerClassName":"Container ClassName","steedos-icon_colorVariant":"Icon color variants","steedos-icon_size":"Icon size","steedos-icon_basePath":"Base Path","steedos-badge_group":"Steedos Atomic Components","steedos-badge_title":"Badge","steedos-badge_panelTitle":"Settings","steedos-badge_body":"Content Area","steedos-badge_color":"Dot color","steedos-badge_count":"Displayed number","steedos-badge_dot":"Hide number, only a small red dot","steedos-badge_overflowCount":"Maximum display number","steedos-badge_showZero":"Show Badge when value is 0","steedos-badge_size":"Effective when count is set, size of the dot","steedos-badge_status":"Badge status","steedos-badge_text":"Effective when status is set, text of the dot","steedos-badge_titleLabel":"Tooltip text when hovering over the status dot","steedos-badge-ribbon_group":"Steedos Atomic Components","steedos-badge-ribbon_title":"Ribbon","steedos-badge-ribbon_panelTitle":"Settings","steedos-badge-ribbon_body":"Content Area","steedos-badge-ribbon_color":"Ribbon color","steedos-badge-ribbon_placement":"Ribbon placement","steedos-badge-ribbon_text":"Content inside the ribbon","steedos-field_group":"Steedos","steedos-field_title":"Field","steedos-field_scaffold_label":"Field 1","steedos-field_preview_label":"Field 1","steedos-field_panelTitle":"Settings","steedos-field_tab_general":"General","steedos-field_tab_form":"Form","steedos-field_tab_advanced":"Advanced","steedos-field_object":"Object","steedos-field_type":"Field Type","steedos-field_type_text":"Text","steedos-field_type_textarea":"Textarea","steedos-field_type_html":"Rich Text","steedos-field_type_code":"Code","steedos-field_type_markdown":"Markdown","steedos-field_type_select":"Select","steedos-field_type_color":"Color","steedos-field_type_boolean":"Checkbox","steedos-field_type_toggle":"Switch","steedos-field_type_date":"Date","steedos-field_type_datetime":"Datetime","steedos-field_type_time":"Time","steedos-field_type_number":"Number","steedos-field_type_currency":"Currency","steedos-field_type_percent":"Percent","steedos-field_type_password":"Password","steedos-field_type_lookup":"Lookup","steedos-field_type_master_detail":"Master/Detail","steedos-field_type_autonumber":"Autonumber","steedos-field_type_url":"URL","steedos-field_type_email":"Email","steedos-field_type_location":"Location","steedos-field_type_image":"Image","steedos-field_type_file":"Attachment","steedos-field_type_formula":"Formula","steedos-field_type_summary":"Rollup Summary","steedos-field_type_approval_comments":"Approval Comments","steedos-field_label":"Display Name","steedos-field_api_name":"API Name","steedos-field_api_name_remark":"The API name can only contain lowercase letters and numbers, must start with a letter, cannot end with an underscore or contain two consecutive underscores.","steedos-field_autonumber_enable_modify":"Allow editing autonumber","steedos-field_rows":"Textarea Rows","steedos-field_language":"Language","steedos-field_multiple":"Multiple","steedos-field_multiple_remark":"When switching between single and multiple, please resubmit records or update the field value format in the database.","steedos-field_data_type":"Data Type","steedos-field_data_type_remark":"Required when the field type is Formula.","steedos-field_option_boolean":"Boolean","steedos-field_option_number":"Number","steedos-field_option_text":"Text","steedos-field_option_currency":"Currency","steedos-field_option_percent":"Percent","steedos-field_option_date":"Date","steedos-field_option_datetime":"Datetime","steedos-field_options":"Options","steedos-field_options_remark":"Each option's display name and value cannot be empty. Set background color as a hexadecimal like ffffff.","steedos-field_options_column_label":"Label","steedos-field_options_column_value":"Value","steedos-field_options_column_color":"Background Color","steedos-field_options_column_description":"Description","steedos-field_options_column_operation":"Actions","steedos-field_precision":"Integer Digits","steedos-field_precision_remark":"Digits left to decimal point","steedos-field_scale":"Decimal Digits","steedos-field_scale_remark":"If the field type is a Percent, this indicates the number of decimal places. For example, two decimal places will display as 10.20%.","steedos-field_formula":"Formula","steedos-field_formula_remark":"Required if the field type is Autonumber or Formula","steedos-field_show_as_qr":"Show as QR Code","steedos-field_coordinatesType":"Coordinate Type","steedos-field_formula_blank_value":"Blank Field Handling","steedos-field_formula_blank_value_remark":"If your formula references number or currency fields, please specify how to handle blank fields.","steedos-field_option_formulazeroes":"Treat blanks as zeroes","steedos-field_option_formulablanks":"Treat blanks as blanks","steedos-field_reference_to":"Referenced Object","steedos-field_summary_object":"Summary Object","steedos-field_summary_object_remark":"Required when the field type is Rollup Summary.","steedos-field_summary_type":"Summary Type","steedos-field_summary_type_remark":"Required when the field type is Rollup Summary.","steedos-field_summary_type_count":"COUNT","steedos-field_summary_type_sum":"SUM","steedos-field_summary_type_min":"MIN","steedos-field_summary_type_max":"MAX","steedos-field_summary_type_avg":"AVG","steedos-field_summary_field":"Summary Field","steedos-field_summary_field_remark":"When summary type is not COUNT, only number, currency, date, datetime fields are supported.","steedos-field_description":"Description","steedos-field_deleted_lookup_record_behavior":"If the referenced record is deleted?","steedos-field_deleted_lookup_record_behavior_clear":"Clear the value of this field. If this field is required, you cannot select this option.","steedos-field_deleted_lookup_record_behavior_retain":"Do not allow deleting 'records that are part of a lookup relationship'.","steedos-field_write_requires_master_read":"Can add/edit/delete detail when reading master record","steedos-field_write_requires_master_read_remark":"Set the minimum access level required to create, edit, or delete child records on the master record. Only for Master/Detail fields. Checked means read-only access can add/edit/delete child. Unchecked means need read/write access.","steedos-field_required":"Required","steedos-field_is_wide":"Wide Field","steedos-field_readonly":"Readonly","steedos-field_readonly_remark":"Readonly fields are not displayed on the form and will not be submitted.","steedos-field_static":"Static","steedos-field_static_remark":"Static fields are displayed but not editable in the form, can be assigned dynamically.","steedos-field_inlineHelpText":"Help Text","steedos-field_enable_enhanced_lookup":"Popup Selection","steedos-field_enable_enhanced_lookup_remark":"When referenced by other fields, use popup for selecting record.","steedos-field_create":"Allow create in popup selection","steedos-field_depend_on":"Dependant Field","steedos-field_depend_on_remark":"Changes to the dependant field will recalculate the current field","steedos-field_enable_thousands":"Show Thousand Separator","steedos-field_unique":"Create Unique Index","steedos-field_unique_remark":"Created each day at midnight, will not repeat for existing indexes.","steedos-field_filterable":"List Filter Default Field","steedos-field_index":"Create Index","steedos-field_index_remark":"Created each day at midnight, will not repeat for existing indexes.","steedos-field_is_name":"Name Field","steedos-field_reference_to_field":"Foreign Key Field","steedos-field_reference_to_field_remark":"The associated object's value is saved to this field. E.g., after associating object A to B, when A1 record refers to B1, B1's _id is saved by default to A1's record. If changed, the foreign field will be saved instead of _id.","steedos-field_reference_to_field_description":"Default is primary key, _id","steedos-flow-form_title":"Flow Form","steedos-flow-form_group":"Steedos-Approval King","steedos-flow-form_region_body":"Content Area","steedos-flow-form_panelTitle":"Settings","steedos-flow-form_name":"Form Name","steedos-flow-form_style":"Style","steedos-flow-form_style_table":"Table","steedos-flow-form_style_wizard":"Wizard","steedos-flow-form_mode":"Form Mode","steedos-flow-form_mode_normal":"Default","steedos-flow-form_mode_horizontal":"Horizontal Mode","steedos-flow-form_mode_inline":"Inline Mode","steedos-flow-form_wizard_mode":"Wizard Mode","steedos-flow-form_wizard_mode_vertical":"Vertical","steedos-flow-form_wizard_mode_horizontal":"Horizontal","steedos-flow-form_description":"Description"},hidden="隐藏",formula_hidden="新建、编辑时不可见",sfield_group="华炎魔方",sfield_tab_group="字段",sfield_text="文本",sfield_textarea="长文本",sfield_html="富文本",sfield_code="代码",sfield_markdown="Markdown",sfield_select="选择框",sfield_color="颜色",sfield_boolean="复选框",sfield_toggle="开关",sfield_date="日期",sfield_datetime="日期时间",sfield_time="时间",sfield_number="数值",sfield_currency="金额",sfield_percent="百分比",sfield_password="密码",sfield_lookup="相关表关系",sfield_master_detail="主/子表关系",sfield_autonumber="自动编号",sfield_url="网址",sfield_email="邮件地址",sfield_location="地理位置",sfield_image="图片",sfield_file="附件",sfield_formula="公式",sfield_summary="累计汇总",sfield_table="表格",sfield_approval_comments="审批意见",sfield_settings_panel_title="设置",sfield_control_advanced="高级",sfield_control_general="通用",sfield_control_field_type="字段类型",sfield_control_display_name="显示名称",sfield_control_api_name="API 名称",sfield_control_api_name_description="API 名称只能包含小写字母、数字,必须以字母开头,不能以下划线字符结尾或包含两个连续的下划线字符",sfield_control_required="必填",sfield_control_wide_field="宽字段",sfield_control_allow_modify_number="允许修改编号",sfield_control_textarea_rows="多行文本行数",sfield_control_language="语言",sfield_control_multiple_select="多选",sfield_control_multiple_select_remark="单选<==>多选 相互切换,请自行重新提交已有记录或在数据库中统一修改此字段的保存格式。",sfield_control_data_type="数据类型",sfield_control_data_type_remark="字段类型为公式时,必须填写此字段。",sfield_control_select_options="选择项",sfield_control_select_options_remark="选择项的每个选项显示名及选项值不能为空,背景颜色请设置为ffffff这种格式的16进制数值。",sfield_control_option_label="显示名",sfield_control_option_value="选项值",sfield_control_option_color="背景颜色",sfield_control_option_description="描述",sfield_control_option_operation="操作",sfield_control_precision="数字位数",sfield_control_precision_remark="小数点左边的数字位数",sfield_control_scale="小数位数",sfield_control_scale_remark="如果字段类型是百分比,则表示字段将显示的小数位数,例如,显示两位小数将显示为10.20%。",sfield_control_formula="公式 (formula)",sfield_control_formula_remark="字段类型为自动编号或公式时,必须填写此字段。",sfield_control_show_as_qr="显示为二维码",sfield_control_coordinates_type="坐标类型",sfield_control_formula_blank_value="空白字段处理",sfield_control_formula_blank_value_remark="如果您的公式引用了任何数字和货币字段,请指定当这些字段值为空时如何处理公式输出。",sfield_control_zero_as_blank="将空白字段视为零",sfield_control_blanks_as_blank="将空白字段视为空白",sfield_control_reference_object="引用对象",sfield_control_summary_object="要汇总的对象",sfield_control_summary_object_remark="字段类型为累计汇总时,必须填写此字段。",sfield_control_summary_type="汇总类型",sfield_control_summary_type_remark="字段类型为累计汇总时,必须填写此字段。",sfield_control_summary_field="汇总字段",sfield_control_summary_field_remark="字段类型为累计汇总且汇总类型不是COUNT时,必须填写此字段,只支持聚合数值、金额、日期、日期时间类型的字段。",sfield_control_description="描述",sfield_control_deleted_lookup_record_behavior="如果相关表记录被删除怎么办?",sfield_control_clear_value="清除此字段的值。 如果您将此字段设为必填,您不能选择此选项。",sfield_control_retain_related_record="不允许删除"作为相关表关系的一部分的相关表记录"。",sfield_control_write_requires_master_read="当用户对主表记录有读取权限时对子表记录可以增删改",sfield_control_write_requires_master_read_remark="设置主记录上创建、编辑或删除子记录所需的最低访问级别。此字段仅适用于·主表/子表·字段类型。勾选表示允许具有'读取'访问权限的用户创建、编辑或删除子记录。反之表示允许具有'读取/写入'访问权限的用户创建、编辑或删除子记录的权限。",sfield_control_form="表单",sfield_control_input_type="输入类型",sfield_control_input_array="数组输入框 (input-array)",sfield_control_button_toolbar="按钮工具栏 (button-toolbar)",sfield_control_button_group_select="按钮点选 (button-group-select)",sfield_control_chained_select="链式下拉框 (chained-select)",sfield_control_checkbox="勾选框 (checkbox)",sfield_control_checkboxes="复选框 (checkboxes)",sfield_control_input_city="城市选择器 (input-city)",sfield_control_input_color="颜色选择器 (input-color)",sfield_control_combo="组合 (combo)",sfield_control_condition_builder="组合条件 (condition-builder)",sfield_control_input_date="日期 (input-date)",sfield_control_input_datetime="日期时间 (input-datetime)",sfield_control_input_month="月份 (input-month)",sfield_control_input_date_range="日期范围 (input-date-range)",sfield_control_input_datetime_range="日期时间范围 (input-datetime-range)",sfield_control_input_month_range="月份范围 (input-month-range)",sfield_control_input_kv="键值对 (input-kv)",sfield_control_input_kvs="键值对象 (input-kvs)",sfield_control_input_formula="公式编辑器 (input-formula)",sfield_control_diff_editor="对比编辑器 (diff-editor)",sfield_control_editor="编辑器 (editor)",sfield_control_input_excel="解析 Excel (input-excel)",sfield_control_input_file="文件上传 (input-file)",sfield_control_group="表单项组 (group)",sfield_control_hidden="隐藏字段 (hidden)",sfield_control_input_image="图片 (input-image)",sfield_control_input_group="输入框组合 (input-group)",sfield_control_list_select="列表选择 (list-select)",sfield_control_location_picker="地理位置 (location-picker)",sfield_control_uuid="UUID",sfield_control_matrix_checkboxes="矩阵选择 (matrix-checkboxes)",sfield_control_nested_select="级联选择器 (nested-select)",sfield_control_input_number="数字输入框 (input-number)",sfield_control_input_password="密码输入框 (input-password)",sfield_control_picker="列表选择器 (picker)",sfield_control_input_quarter="季度 (input-quarter)",sfield_control_input_quarter_range="季度范围 (input-quarter-range)",sfield_control_radio="单选框 (radio)",sfield_control_radios="单选框 (radios)",sfield_control_chart_radios="图表单选框 (chart-radios)",sfield_control_input_rating="评分 (input-rating)",sfield_control_input_range="滑块 (input-range)",sfield_control_input_repeat="重复频率选择器 (input-repeat)",sfield_control_input_rich_text="富文本编辑器 (input-rich-text)",sfield_control_select="选择器 (select)",sfield_control_input_sub_form="子表单 (input-sub-form)",sfield_control_switch="开关 (switch)",sfield_control_static="静态展示 (static)",sfield_control_input_table="表格 (input-table)",sfield_control_input_tag="标签选择器 (input-tag)",sfield_control_input_text="输入框 (input-text)",sfield_control_textarea="多行文本输入框 (textarea)",sfield_control_input_time="时间 (input-time)",sfield_control_input_time_range="时间范围 (input-time-range)",sfield_control_transfer="穿梭器 (transfer)",sfield_control_transfer_picker="穿梭选择器 (transfer-picker)",sfield_control_tabs_transfer="组合穿梭器 (tabs-transfer)",sfield_control_tabs_transfer_picker="组合穿梭选择器 (tabs-transfer-picker)",sfield_control_input_tree="树形选择框 (input-tree)",sfield_control_tree_select="树形选择器 (tree-select)",sfield_control_input_year="年份选择 (input-year)",sfield_control_input_year_range="年份范围 (input-year-range)",sfield_control_json_schema="JSON Schema (json-schema)",sfield_control_json_schema_editor="JSON Schema Editor (json-schema-editor)",sfield_control_input_signature="签名面板 (input-signature)",sfield_control_input_verification_code="验证码输入 (input-verification-code)",sfield_control_visible_on="显示公式",sfield_control_readonly="只读",sfield_control_readonly_remark="只读字段不显示在表单上,数据不会提交到服务端。",sfield_control_static_remark="静态字段在表单上显示,用户不可编辑,可动态赋值。",sfield_control_inline_help_text="提示文本",sfield_control_enable_enhanced_lookup="弹出选择",sfield_control_enable_enhanced_lookup_remark="被其他字段引用时,使用弹出框选择记录。",sfield_control_create_allowance="弹出选择时允许新建",sfield_control_depend_on="依赖字段",sfield_control_depend_on_remark="依赖字段的变化会触发当前字段重算",sfield_control_enable_thousands="显示千分符",sfield_control_filters="相关表过滤条件",sfield_control_filters_remark="当字段类型为相关表关系或主/子表关系时,可以为该字段配置过滤条件,过滤选项列表;其中字段值可以配置为公式,公式中引用的字段需要同时配置在依赖的字段中",sfield_control_create_unique_index="创建唯一索引",sfield_control_create_unique_index_remark="默认每天凌晨执行一次创建,已有的索引不重复创建。",sfield_control_filterable="启用列表页快速搜索",sfield_control_default_filter_field="列表页过滤器默认字段",sfield_control_sortable="可排序",sfield_control_create_index="创建索引",sfield_control_create_index_remark="默认每天凌晨执行一次创建,已有的索引不重复创建。",sfield_control_name_field="名称字段",sfield_control_foreign_key_field="外键字段",sfield_control_foreign_key_field_remark="关联的对象保存到当前对象字段的值;例如:A对象关联B对象后,当A1记录关联了B1记录,默认会存B1记录的_id存到A1记录中。如果修改了外键字段后,会将“外键字段”替换_id存储到A1记录中。",sfield_control_foreign_key_field_default="默认为主键,默认值是_id",widget_zh={hidden:hidden,formula_hidden:formula_hidden,sfield_group:sfield_group,sfield_tab_group:sfield_tab_group,sfield_text:sfield_text,sfield_textarea:sfield_textarea,sfield_html:sfield_html,sfield_code:sfield_code,sfield_markdown:sfield_markdown,sfield_select:sfield_select,sfield_color:sfield_color,sfield_boolean:sfield_boolean,sfield_toggle:sfield_toggle,sfield_date:sfield_date,sfield_datetime:sfield_datetime,sfield_time:sfield_time,sfield_number:sfield_number,sfield_currency:sfield_currency,sfield_percent:sfield_percent,sfield_password:sfield_password,sfield_lookup:sfield_lookup,sfield_master_detail:sfield_master_detail,sfield_autonumber:sfield_autonumber,sfield_url:sfield_url,sfield_email:sfield_email,sfield_location:sfield_location,sfield_image:sfield_image,sfield_file:sfield_file,sfield_formula:sfield_formula,sfield_summary:sfield_summary,sfield_table:sfield_table,sfield_approval_comments:sfield_approval_comments,sfield_settings_panel_title:sfield_settings_panel_title,sfield_control_advanced:sfield_control_advanced,sfield_control_general:sfield_control_general,sfield_control_field_type:sfield_control_field_type,sfield_control_display_name:sfield_control_display_name,sfield_control_api_name:sfield_control_api_name,sfield_control_api_name_description:sfield_control_api_name_description,sfield_control_required:sfield_control_required,sfield_control_wide_field:sfield_control_wide_field,sfield_control_allow_modify_number:sfield_control_allow_modify_number,sfield_control_textarea_rows:sfield_control_textarea_rows,sfield_control_language:sfield_control_language,sfield_control_multiple_select:sfield_control_multiple_select,sfield_control_multiple_select_remark:sfield_control_multiple_select_remark,sfield_control_data_type:sfield_control_data_type,sfield_control_data_type_remark:sfield_control_data_type_remark,sfield_control_select_options:sfield_control_select_options,sfield_control_select_options_remark:sfield_control_select_options_remark,sfield_control_option_label:sfield_control_option_label,sfield_control_option_value:sfield_control_option_value,sfield_control_option_color:sfield_control_option_color,sfield_control_option_description:sfield_control_option_description,sfield_control_option_operation:sfield_control_option_operation,sfield_control_precision:sfield_control_precision,sfield_control_precision_remark:sfield_control_precision_remark,sfield_control_scale:sfield_control_scale,sfield_control_scale_remark:sfield_control_scale_remark,sfield_control_formula:sfield_control_formula,sfield_control_formula_remark:sfield_control_formula_remark,sfield_control_show_as_qr:sfield_control_show_as_qr,sfield_control_coordinates_type:sfield_control_coordinates_type,sfield_control_formula_blank_value:sfield_control_formula_blank_value,sfield_control_formula_blank_value_remark:sfield_control_formula_blank_value_remark,sfield_control_zero_as_blank:sfield_control_zero_as_blank,sfield_control_blanks_as_blank:sfield_control_blanks_as_blank,sfield_control_reference_object:sfield_control_reference_object,sfield_control_summary_object:sfield_control_summary_object,sfield_control_summary_object_remark:sfield_control_summary_object_remark,sfield_control_summary_type:sfield_control_summary_type,sfield_control_summary_type_remark:sfield_control_summary_type_remark,sfield_control_summary_field:sfield_control_summary_field,sfield_control_summary_field_remark:sfield_control_summary_field_remark,sfield_control_description:sfield_control_description,sfield_control_deleted_lookup_record_behavior:sfield_control_deleted_lookup_record_behavior,sfield_control_clear_value:sfield_control_clear_value,sfield_control_retain_related_record:sfield_control_retain_related_record,sfield_control_write_requires_master_read:sfield_control_write_requires_master_read,sfield_control_write_requires_master_read_remark:sfield_control_write_requires_master_read_remark,sfield_control_form:sfield_control_form,sfield_control_input_type:sfield_control_input_type,sfield_control_input_array:sfield_control_input_array,sfield_control_button_toolbar:sfield_control_button_toolbar,sfield_control_button_group_select:sfield_control_button_group_select,sfield_control_chained_select:sfield_control_chained_select,sfield_control_checkbox:sfield_control_checkbox,sfield_control_checkboxes:sfield_control_checkboxes,sfield_control_input_city:sfield_control_input_city,sfield_control_input_color:sfield_control_input_color,sfield_control_combo:sfield_control_combo,sfield_control_condition_builder:sfield_control_condition_builder,sfield_control_input_date:sfield_control_input_date,sfield_control_input_datetime:sfield_control_input_datetime,sfield_control_input_month:sfield_control_input_month,sfield_control_input_date_range:sfield_control_input_date_range,sfield_control_input_datetime_range:sfield_control_input_datetime_range,sfield_control_input_month_range:sfield_control_input_month_range,sfield_control_input_kv:sfield_control_input_kv,sfield_control_input_kvs:sfield_control_input_kvs,sfield_control_input_formula:sfield_control_input_formula,sfield_control_diff_editor:sfield_control_diff_editor,sfield_control_editor:sfield_control_editor,sfield_control_input_excel:sfield_control_input_excel,sfield_control_input_file:sfield_control_input_file,sfield_control_group:sfield_control_group,sfield_control_hidden:sfield_control_hidden,sfield_control_input_image:sfield_control_input_image,sfield_control_input_group:sfield_control_input_group,sfield_control_list_select:sfield_control_list_select,sfield_control_location_picker:sfield_control_location_picker,sfield_control_uuid:sfield_control_uuid,sfield_control_matrix_checkboxes:sfield_control_matrix_checkboxes,sfield_control_nested_select:sfield_control_nested_select,sfield_control_input_number:sfield_control_input_number,sfield_control_input_password:sfield_control_input_password,sfield_control_picker:sfield_control_picker,sfield_control_input_quarter:sfield_control_input_quarter,sfield_control_input_quarter_range:sfield_control_input_quarter_range,sfield_control_radio:sfield_control_radio,sfield_control_radios:sfield_control_radios,sfield_control_chart_radios:sfield_control_chart_radios,sfield_control_input_rating:sfield_control_input_rating,sfield_control_input_range:sfield_control_input_range,sfield_control_input_repeat:sfield_control_input_repeat,sfield_control_input_rich_text:sfield_control_input_rich_text,sfield_control_select:sfield_control_select,sfield_control_input_sub_form:sfield_control_input_sub_form,sfield_control_switch:sfield_control_switch,sfield_control_static:sfield_control_static,sfield_control_input_table:sfield_control_input_table,sfield_control_input_tag:sfield_control_input_tag,sfield_control_input_text:sfield_control_input_text,sfield_control_textarea:sfield_control_textarea,sfield_control_input_time:sfield_control_input_time,sfield_control_input_time_range:sfield_control_input_time_range,sfield_control_transfer:sfield_control_transfer,sfield_control_transfer_picker:sfield_control_transfer_picker,sfield_control_tabs_transfer:sfield_control_tabs_transfer,sfield_control_tabs_transfer_picker:sfield_control_tabs_transfer_picker,sfield_control_input_tree:sfield_control_input_tree,sfield_control_tree_select:sfield_control_tree_select,sfield_control_input_year:sfield_control_input_year,sfield_control_input_year_range:sfield_control_input_year_range,sfield_control_json_schema:sfield_control_json_schema,sfield_control_json_schema_editor:sfield_control_json_schema_editor,sfield_control_input_signature:sfield_control_input_signature,sfield_control_input_verification_code:sfield_control_input_verification_code,sfield_control_visible_on:sfield_control_visible_on,sfield_control_readonly:sfield_control_readonly,sfield_control_readonly_remark:sfield_control_readonly_remark,sfield_control_static_remark:sfield_control_static_remark,sfield_control_inline_help_text:sfield_control_inline_help_text,sfield_control_enable_enhanced_lookup:sfield_control_enable_enhanced_lookup,sfield_control_enable_enhanced_lookup_remark:sfield_control_enable_enhanced_lookup_remark,sfield_control_create_allowance:sfield_control_create_allowance,sfield_control_depend_on:sfield_control_depend_on,sfield_control_depend_on_remark:sfield_control_depend_on_remark,sfield_control_enable_thousands:sfield_control_enable_thousands,sfield_control_filters:sfield_control_filters,sfield_control_filters_remark:sfield_control_filters_remark,sfield_control_create_unique_index:sfield_control_create_unique_index,sfield_control_create_unique_index_remark:sfield_control_create_unique_index_remark,sfield_control_filterable:sfield_control_filterable,sfield_control_default_filter_field:sfield_control_default_filter_field,sfield_control_sortable:sfield_control_sortable,sfield_control_create_index:sfield_control_create_index,sfield_control_create_index_remark:sfield_control_create_index_remark,sfield_control_name_field:sfield_control_name_field,sfield_control_foreign_key_field:sfield_control_foreign_key_field,sfield_control_foreign_key_field_remark:sfield_control_foreign_key_field_remark,sfield_control_foreign_key_field_default:sfield_control_foreign_key_field_default,"steedos-field-group_sfield_tab_group":"字段","steedos-field-group_title":"分组","steedos-field-group_scaffold_title":"分组","steedos-field-group_regions_body_label":"字段项","steedos-field-group_panel_title":"设置","steedos-field-group_panel_controls_title_label":"标题","steedos-field-group_panel_controls_collapsed_label":"默认是否折叠","steedos-field-group_panel_controls_visible_on_label":"显示条件","steedos-object_title":"对象","steedos-object_description":"对象","steedos-object_regions_body_label":"内容区","steedos-object_panelTitle":"设置","steedos-object_panelControls_name_label":"对象名","steedos-object_panelControls_label_label":"显示名称","steedos-object_panelControls_description_label":"描述","steedos-object_group":"华炎魔方-对象","steedos-object_usage":"渲染器","steedos-object_body_label":"内容区","steedos-object_panel_title":"设置","steedos-object_name_label":"对象名","steedos-object_label_label":"显示名称","steedos-object_description_label":"描述","steedos-board_group":"华炎魔方-原子组件","steedos-board_title":"看板","steedos-board_boardSource_A_label":"Board A","steedos-board_boardSource_B_label":"Board B","steedos-board_boardHeader_tpl":"Board ${label}","steedos-board_boardFooter_tpl":"Board ${label} Footer","steedos-board_cardSchema_toolbar_buttons_edit_label":"编辑","steedos-board_cardSchema_toolbar_buttons_edit_dialog_title":"编辑","steedos-board_cardSchema_toolbar_buttons_edit_dialog_body":"你正在编辑该卡片","steedos-board_cardSchema_toolbar_buttons_delete_label":"删除","steedos-board_cardSchema_toolbar_buttons_delete_dialog_title":"提示","steedos-board_cardSchema_toolbar_buttons_delete_dialog_body":"你删掉了该卡片","steedos-board_cardSource_A1_label":"Item A1","steedos-board_cardSource_A2_label":"Item A2","steedos-board_cardSource_B1_label":"Item B1","steedos-board_cardSource_B2_label":"Item B2","steedos-board_panelTitle":"设置","steedos-board_panelControls_columns_label":"列数","steedos-board_panelControls_vertical_label":"布局","steedos-board_panelControls_vertical_option":"纵向","steedos-record-detail-header_group":"华炎魔方","steedos-record-detail-header_title":"标题面板","steedos-record-detail-header_description":"显示在记录详情页的标题面板,包括记录按钮。","steedos-record-detail-header_props_objectApiName_description":"对象名称","steedos-record-detail-header_props_recordId_description":"记录Id","steedos-record-detail-header_panelTitle":"设置","steedos-record-detail-header_panelControls_object_label":"对象","steedos-record-detail-header_panelControls_object_source_adaptor_current_object":"当前对象","steedos-record-detail-header_panelControls_recordId_label":"记录Id","steedos-record-detail-header_panelControls_className_label":"CSS类名","steedos-object-form_group":"华炎魔方","steedos-object-form_title":"对象表单","steedos-object-form_props_objectApiName":"对象名","steedos-object-form_props_recordId":"记录ID","steedos-object-form_props_mode":"显示状态","steedos-object-form_props_enableInitApi":"初始化接口","steedos-object-form_props_layout":"表单布局","steedos-object-form_props_initApiRequestAdaptor":"初始化接口发送适配器","steedos-object-form_props_initApiAdaptor":"初始化接口接收适配器","steedos-object-form_props_apiRequestAdaptor":"保存接口发送适配器","steedos-object-form_props_apiAdaptor":"保存接口接收适配器","steedos-object-form_panelTitle":"设置","steedos-object-form_tab_props":"属性","steedos-object-form_section_basic":"基本","steedos-object-form_field_objectApiName":"对象","steedos-object-form_field_currentObject":"当前对象","steedos-object-form_field_recordId":"记录ID","steedos-object-form_field_mode":"显示状态","steedos-object-form_field_mode_read":"只读","steedos-object-form_field_mode_edit":"编辑","steedos-object-form_field_enableInitApi":"初始化接口","steedos-object-form_field_enable":"启用","steedos-object-form_field_disable":"禁用","steedos-object-form_field_layout":"表单项布局","steedos-object-form_field_layout_vertical":"纵向","steedos-object-form_field_layout_horizontal":"横向","steedos-object-form_field_enableTabs":"是否启用选项卡模式","steedos-object-form_field_tabsMode":"展示模式","steedos-object-form_tabsMode_default":"默认","steedos-object-form_tabsMode_line":"线型","steedos-object-form_tabsMode_card":"卡片","steedos-object-form_tabsMode_radio":"选择器","steedos-object-form_tabsMode_vertical":"垂直","steedos-object-form_tabsMode_chrome":"仿 Chrome","steedos-object-form_tabsMode_simple":"简约","steedos-object-form_tabsMode_strong":"加强","steedos-object-form_tabsMode_tiled":"水平铺满","steedos-object-form_tabsMode_sidebar":"侧边栏","steedos-object-form_section_fields":"字段","steedos-object-form_field_fields":"显示的字段","steedos-object-form_field_excludedFields":"排除的字段","steedos-object-form_field_fieldsExtend":"重写字段配置","steedos-object-form_tip_fieldsExtend":'重写字段配置. 例如\n```\n{\n "name": {\n "is_wide": true, //设置为宽字段\n "required": true, //设置为必填\n "amis": { // 设置渲染属性\n "type": "input-color" //将字段重写为 颜色选择器\n ...\n } \n }, \n "title": {\n "group": "分组1" // 设置分组\n ...\n }\n}\n```',"steedos-object-form_section_advanced":"高级","steedos-object-form_field_defaultData":"初始化静态数据","steedos-object-form_field_formDataFilter":"FORM","steedos-object-form_tip_formDataFilter":"如果需要对组件原始返回的form进行加工,可以自己写一段函数脚本来实现。\n\n函数签名:(form, env, data) => form\n\n参数说明:\n\nform 组件原始返回的form schema\n\nenv amis env,可以调用env.fetcher函数实现异步请求\n\ndata 数据域中的data\n\n返回值:\n\n最后需要返回加工后的form schema\n\n示例:\n\n```\nconsole.log('data===>', data);\nconst api = ...;\nreturn env.fetcher(api, {}).then((result) => {\n console.log(result);\n form.body[0].tabs[0].title='基础信息';\n return form;\n});\n\n```\n","steedos-object-form_tab_appearance":"外观","steedos-object-form_section_css":"CSS 类名","steedos-object-form_field_className":"表单","steedos-object-form_tab_api":"接口","steedos-object-form_section_initApi":"初始化数据接口","steedos-object-form_field_initApiRequestAdaptor":"发送适配器","steedos-object-form_tip_initApiRequestAdaptor":"函数签名:(api) => api, 数据在 api.data 中,修改后返回 api 对象。","steedos-object-form_field_initApiAdaptor":"接收适配器","steedos-object-form_tip_initApiAdaptor":"函数签名: (payload, response, api) => payload","steedos-object-form_section_saveApi":"保存数据接口","steedos-object-form_field_apiRequestAdaptor":"发送适配器","steedos-object-form_tip_apiRequestAdaptor":"函数签名:(api) => api, 数据在 api.data 中,修改后返回 api 对象。","steedos-object-form_field_apiAdaptor":"接收适配器","steedos-object-form_tip_apiAdaptor":"函数签名: (payload, response, api) => payload","steedos-object-listview_group":"华炎魔方","steedos-object-listview_title":"列表视图","steedos-object-listview_description":"显示指定对象的列表视图。","steedos-object-listview_objectApiName":"对象名称","steedos-object-listview_listName":"视图名称","steedos-object-listview_requestAdaptor":"发送适配器","steedos-object-listview_adaptor":"接收适配器","steedos-object-listview_panelTitle":"设置","steedos-object-listview_object":"对象","steedos-object-listview_current_object":"当前对象","steedos-object-listview_view":"视图","steedos-object-listview_perPage":"每页显示记录数量","steedos-object-listview_showHeader":"显示表头","steedos-object-listview_crudMode":"显示模式","steedos-object-listview_table":"表格","steedos-object-listview_cards":"卡片","steedos-object-listview_className":"CSS类名","steedos-object-listview_data_api":"数据接口","steedos-object-listview_requestAdaptor_desc":"函数签名:(api) => api, 数据在 api.data 中,修改后返回 api 对象。","steedos-object-listview_adaptor_desc":"函数签名: (payload, response, api) => payload","steedos-object-listview_advanced":"高级","steedos-object-listview_crud":"CRUD","steedos-object-listview_crud_doc":"如果需要对组件原始返回的crud进行加工,可以自己写一段函数脚本来实现。\n\n函数签名:(crud, env, data) => crud\n\n参数说明:\n\ncrud 组件原始返回的crud schema\n\nenv amis env,可以调用env.fetcher函数实现异步请求\n\ndata 数据域中的data\n\n返回值:\n\n最后需要返回加工后的crud schema\n\n示例:\n\n```\nconsole.log('data===>', data);\nconst api = ...;\nreturn env.fetcher(api, {}).then((result) => {\n console.log(result);\n crud.columns.push({'label': 'xxx', name: 'xxx'});\n return crud;\n});\n\n```","steedos-object-table_group":"华炎魔方","steedos-object-table_title":"对象表格","steedos-object-table_props_objectApiName":"对象名称","steedos-object-table_props_columns":"显示列","steedos-object-table_props_amisCondition":"过滤条件","steedos-object-table_props_sortField":"排序字段","steedos-object-table_props_sortOrder":"排序顺序","steedos-object-table_props_top":"显示的记录数量","steedos-object-table_props_requestAdaptor":"发送适配器","steedos-object-table_props_adaptor":"接收适配器","steedos-object-table_panelTitle":"设置","steedos-object-table_tabs_props":"属性","steedos-object-table_collapse_basic":"基本","steedos-object-table_object":"对象","steedos-object-table_currentObject":"当前对象","steedos-object-table_fields":"显示的字段","steedos-object-table_fieldsExtend":"重写字段配置","steedos-object-table_crudMode":"显示模式","steedos-object-table_crudMode_table":"表格","steedos-object-table_crudMode_cards":"卡片","steedos-object-table_collapse_api":"数据接口","steedos-object-table_requestAdaptor":"发送适配器","steedos-object-table_requestAdaptor_desc":"函数签名:(api) => api, 数据在 api.data 中,修改后返回 api 对象。","steedos-object-table_adaptor":"接收适配器","steedos-object-table_adaptor_desc":"函数签名: (payload, response, api) => payload","steedos-object-table_collapse_advanced":"高级","steedos-object-table_markdown_crud":"如果需要对组件原始返回的crud进行加工,可以自己写一段函数脚本来实现。\n\n函数签名:(crud, env, data) => crud\n\n参数说明:\n\ncrud 组件原始返回的crud schema\n\nenv amis env,可以调用env.fetcher函数实现异步请求\n\ndata 数据域中的data\n\n返回值:\n\n最后需要返回加工后的crud schema\n\n示例:\n\n```\nconsole.log('data===>', data);\nconst api = ...;\nreturn env.fetcher(api, {}).then((result) => {\n console.log(result);\n crud.columns.push({'label': 'xxx', name: 'xxx'});\n return crud;\n});\n```","steedos-object-table_tabs_appearance":"外观","steedos-object-table_collapse_css":"CSS 类名","steedos-object-table_css_table":"表格","steedos-object-table_tabs_filter":"过滤","steedos-object-table_filter_condition":"过滤条件","steedos-object-table_tabs_other":"其他","steedos-object-table_sortField":"排序字段","steedos-object-table_sortOrder":"排序顺序","steedos-object-table_sortOrder_asc":"升序","steedos-object-table_sortOrder_desc":"倒序","steedos-object-table_top":"显示的记录数量","steedos-object-table_top_remark":"即TOP,配置该属性后不再支持翻页,始终显示该属性值配置的记录数","steedos-object-related-listview_group":"华炎魔方","steedos-object-related-listview_title":"相关表","steedos-object-related-listview_description":"显示指定对象的相关某一个相关表。","steedos-object-related-listview_props_objectApiName":"父级对象","steedos-object-related-listview_props_recordId":"父级记录","steedos-object-related-listview_props_relatedObjectApiName":"相关列表对象","steedos-object-related-listview_props_requestAdaptor":"发送适配器","steedos-object-related-listview_props_adaptor":"接收适配器","steedos-object-related-listview_panelTitle":"设置","steedos-object-related-listview_tabs_props":"属性","steedos-object-related-listview_collapse_basic":"基本属性","steedos-object-related-listview_currentObject":"当前对象","steedos-object-related-listview_recordId":"父级记录","steedos-object-related-listview_relatedObjectApiName":"相关列表对象","steedos-object-related-listview_enableHeaderToolbar":"显示表头工具栏","steedos-object-related-listview_top":"显示的记录数量","steedos-object-related-listview_top_remark":"即TOP,配置该属性后不再支持翻页,始终显示该属性值配置的记录数","steedos-object-related-listview_perPage":"每页显示记录数量","steedos-object-related-listview_visibleOn":"显示条件","steedos-object-related-listview_visibleOn_remark":"格式:静态/表达式","steedos-object-related-listview_className":"CSS类名","steedos-object-related-listview_collapse_api":"数据接口","steedos-object-related-listview_requestAdaptor":"发送适配器","steedos-object-related-listview_requestAdaptor_desc":"函数签名:(api) => api, 数据在 api.data 中,修改后返回 api 对象。","steedos-object-related-listview_adaptor":"接收适配器","steedos-object-related-listview_adaptor_desc":"函数签名: (payload, response, api) => payload","steedos-object-related-listview_collapse_advanced":"高级","steedos-object-related-listview_crudDataFilter":"CRUD","steedos-object-related-listview_markdown_crud":"如果需要对组件原始返回的crud进行加工,可以自己写一段函数脚本来实现。\n\n函数签名:(crud, env, data) => crud\n\n参数说明:\n\ncrud 组件原始返回的crud schema\n\nenv amis env,可以调用env.fetcher函数实现异步请求\n\ndata 数据域中的data\n\n返回值:\n\n最后需要返回加工后的crud schema\n\n示例:\n\n```\nconsole.log('data===>', data);\nconst api = ...;\nreturn env.fetcher(api, {}).then((result) => {\n console.log(result);\n crud.columns.push({'label': 'xxx', name: 'xxx'});\n return crud;\n});\n```","steedos-object-related-lists_group":"华炎魔方","steedos-object-related-lists_title":"所有相关表","steedos-object-related-lists_description":"显示指定对象的相关表,可基于页面布局配置相关表清单。","steedos-object-related-lists_props_objectApiName":"父级对象","steedos-object-related-lists_props_recordId":"父级记录","steedos-object-related-lists_panelTitle":"设置","steedos-object-related-lists_panelControls_objectApiName":"父级对象","steedos-object-related-lists_panelControls_recordId":"父级记录","steedos-object-related-lists_currentObject":"当前对象","steedos-record-service_group":"华炎魔方","steedos-record-service_title":"记录服务","steedos-record-service_props_objectApiName":"对象","steedos-record-service_props_objectApiName_currentObject":"当前对象","steedos-record-service_props_recordId":"记录ID","steedos-record-service_props_initApiRequestAdaptor":"初始化接口发送适配器","steedos-record-service_props_tip_initApiRequestAdaptor":"函数签名:(api) => api, 数据在 api.data 中,修改后返回 api 对象。","steedos-record-service_props_initApiAdaptor":"初始化接口接收适配器","steedos-record-service_props_tip_initApiAdaptor":"函数签名: (payload, response, api) => payload","steedos-record-service_panelTitle":"设置","steedos-record-service_regions_body":"内容区","steedos-object-calendar_group":"华炎魔方","steedos-object-calendar_title":"对象日历","steedos-object-calendar_props_objectApiName":"对象名称","steedos-object-calendar_props_startDateExpr":"开始时间字段","steedos-object-calendar_props_endDateExpr":"结束时间字段","steedos-object-calendar_props_allDayExpr":"全天字段","steedos-object-calendar_props_textExpr":"标题字段","steedos-object-calendar_props_currentView":"默认视图","steedos-object-calendar_panelTitle":"设置","steedos-object-calendar_panelControls_objectApiName":"对象","steedos-object-calendar_panelControls_currentObject":"当前对象","steedos-object-calendar_panelControls_startDateExpr":"开始时间字段","steedos-object-calendar_panelControls_endDateExpr":"结束时间字段","steedos-object-calendar_panelControls_allDayExpr":"全天字段","steedos-object-calendar_panelControls_textExpr":"标题字段","steedos-object-calendar_panelControls_currentView":"默认视图","steedos-object-calendar_options_month":"月","steedos-object-calendar_options_week":"周","steedos-object-calendar_options_day":"日","steedos-object-calendar_options_list":"列表","steedos-input-table_group":"华炎魔方","steedos-input-table_title":"表格编辑框","steedos-input-table_description":"表格编辑组件,对amis input-table组件的进一步封装。","steedos-input-table_props_name":"字段名","steedos-input-table_props_fields":"字段配置","steedos-input-table_props_addable":"可新增","steedos-input-table_props_editable":"可编辑","steedos-input-table_props_removable":"可删除","steedos-input-table_props_draggable":"可拖拽","steedos-input-table_props_inlineEditMode":"内联模式","steedos-input-table_props_strictMode":"静态模式","steedos-input-table_props_perPage":"每页展示条数","steedos-input-table_props_enableDialog":"启用弹框模式","steedos-input-table_scaffold_fields_a":"A","steedos-input-table_scaffold_fields_b":"B","steedos-input-table_scaffold_fields_b_options_op1":"选项1","steedos-input-table_scaffold_fields_b_options_op2":"选项2","steedos-input-table_preview_fields_a":"A","steedos-input-table_preview_fields_b":"B","steedos-input-table_preview_fields_b_options_op1":"选项1","steedos-input-table_preview_fields_b_options_op2":"选项2","steedos-input-table_panelTitle":"设置","steedos-input-table_panelControls_name":"字段名","steedos-input-table_panelControls_fields":"字段配置","steedos-input-table_panelControls_columns":"显示的列","steedos-input-table_panelControls_addable":"可新增","steedos-input-table_panelControls_editable":"可编辑","steedos-input-table_panelControls_removable":"可删除","steedos-input-table_panelControls_draggable":"可拖拽","steedos-input-table_panelControls_inlineEditMode":"内联模式","steedos-input-table_panelControls_inlineEditMode_remark":"可编辑时显示为内联模式直接在单元格中编辑字段值。","steedos-input-table_panelControls_strictMode":"静态模式","steedos-input-table_panelControls_strictMode_remark":"为了性能,默认其他表单项项值变化不会让当前表格更新,有时候为了同步获取其它主表单项字段值,需要关闭静态模式,当有类型为lookup且配置了depend_on属性的子字段时,会自动强制关闭静态模式。","steedos-input-table_panelControls_perPage":"每页展示条数","steedos-input-table_panelControls_perPage_remark":"如果为空则不进行分页","steedos-input-table_panelControls_enableDialog":"启用弹框模式","steedos-input-table_panelControls_enableDialog_remark":"禁用弹框模式时,自动开启內联模式","steedos-icon_group":"华炎魔方-原子组件","steedos-icon_title":"图标","steedos-icon_panelTitle":"设置","steedos-icon_category":"分类","steedos-icon_name":"名称","steedos-icon_className":"ClassName","steedos-icon_containerClassName":"容器 ClassName","steedos-icon_colorVariant":"图标颜色","steedos-icon_size":"图标大小","steedos-icon_basePath":"基础路径","steedos-badge_group":"华炎魔方-原子组件","steedos-badge_title":"徽标数","steedos-badge_panelTitle":"设置","steedos-badge_body":"内容区","steedos-badge_color":"小圆点的颜色","steedos-badge_count":"展示的数字","steedos-badge_dot":"不展示数字,只有一个小红点","steedos-badge_overflowCount":"展示封顶的数字值","steedos-badge_showZero":"当数值为 0 时,是否展示 Badge","steedos-badge_size":"在设置了 count 的前提下有效,设置小圆点的大小","steedos-badge_status":"Badge 为状态点","steedos-badge_text":"在设置了 status 的前提下有效,设置状态点的文本","steedos-badge_titleLabel":"设置鼠标放在状态点上时显示的文字","steedos-badge-ribbon_group":"华炎魔方-原子组件","steedos-badge-ribbon_title":"缎带","steedos-badge-ribbon_panelTitle":"设置","steedos-badge-ribbon_body":"内容区","steedos-badge-ribbon_color":"缎带的颜色","steedos-badge-ribbon_placement":"缎带的位置","steedos-badge-ribbon_text":"缎带中填入的内容","steedos-field_group":"华炎魔方-原子组件","steedos-field_title":"字段","steedos-field_scaffold_label":"字段1","steedos-field_preview_label":"字段1","steedos-field_panelTitle":"设置","steedos-field_tab_general":"通用","steedos-field_tab_form":"表单","steedos-field_tab_advanced":"高级","steedos-field_object":"对象","steedos-field_type":"字段类型","steedos-field_type_text":"文本","steedos-field_type_textarea":"长文本","steedos-field_type_html":"富文本","steedos-field_type_code":"代码","steedos-field_type_markdown":"Markdown","steedos-field_type_select":"选择框","steedos-field_type_color":"颜色","steedos-field_type_boolean":"复选框","steedos-field_type_toggle":"开关","steedos-field_type_date":"日期","steedos-field_type_datetime":"日期时间","steedos-field_type_time":"时间","steedos-field_type_number":"数值","steedos-field_type_currency":"金额","steedos-field_type_percent":"百分比","steedos-field_type_password":"密码","steedos-field_type_lookup":"相关表关系","steedos-field_type_master_detail":"主/子表关系","steedos-field_type_autonumber":"自动编号","steedos-field_type_url":"网址","steedos-field_type_email":"邮件地址","steedos-field_type_location":"地理位置","steedos-field_type_image":"图片","steedos-field_type_file":"附件","steedos-field_type_formula":"公式","steedos-field_type_summary":"累计汇总","steedos-field_type_approval_comments":"审批意见","steedos-field_label":"显示名称","steedos-field_api_name":"API 名称","steedos-field_api_name_remark":"API 名称只能包含小写字母、数字,必须以字母开头,不能以下划线字符结尾或包含两个连续的下划线字符","steedos-field_autonumber_enable_modify":"允许修改编号","steedos-field_rows":"多行文本行数","steedos-field_language":"语言","steedos-field_multiple":"多选","steedos-field_multiple_remark":"单选<==>多选 相互切换,请自行重新提交已有记录或在数据库中统一修改此字段的保存格式。","steedos-field_data_type":"数据类型","steedos-field_data_type_remark":"字段类型为公式时,必须填写此字段。","steedos-field_option_boolean":"布尔","steedos-field_option_number":"数值","steedos-field_option_text":"文本","steedos-field_option_currency":"金额","steedos-field_option_percent":"百分比","steedos-field_option_date":"日期","steedos-field_option_datetime":"日期时间","steedos-field_options":"选择项","steedos-field_options_remark":"选择项的每个选项显示名及选项值不能为空,背景颜色请设置为ffffff这种格式的16进制数值。","steedos-field_options_column_label":"显示名","steedos-field_options_column_value":"选项值","steedos-field_options_column_color":"背景颜色","steedos-field_options_column_description":"描述","steedos-field_options_column_operation":"操作","steedos-field_precision":"数字位数","steedos-field_precision_remark":"小数点左边的数字位数","steedos-field_scale":"小数位数","steedos-field_scale_remark":"如果字段类型为百分比,此项表示小数位数。例如,两位小数会显示为10.20%。","steedos-field_formula":"公式","steedos-field_formula_remark":"字段类型为自动编号或公式时,必须填写此字段。","steedos-field_show_as_qr":"显示为二维码","steedos-field_coordinatesType":"坐标类型","steedos-field_formula_blank_value":"空白字段处理","steedos-field_formula_blank_value_remark":"如果您的公式引用了任何数字和货币字段,请指定当这些字段值为空时如何处理公式输出。","steedos-field_option_formulazeroes":"将空白字段视为零","steedos-field_option_formulablanks":"将空白字段视为空白","steedos-field_reference_to":"引用对象","steedos-field_summary_object":"要汇总的对象","steedos-field_summary_object_remark":"字段类型为累计汇总时,必须填写此字段。","steedos-field_summary_type":"汇总类型","steedos-field_summary_type_remark":"字段类型为累计汇总时,必须填写此字段。","steedos-field_summary_type_count":"COUNT","steedos-field_summary_type_sum":"SUM","steedos-field_summary_type_min":"MIN","steedos-field_summary_type_max":"MAX","steedos-field_summary_type_avg":"AVG","steedos-field_summary_field":"汇总字段","steedos-field_summary_field_remark":"字段类型为累计汇总且汇总类型不是COUNT时,必须填写此字段,只支持聚合数值、金额、日期、日期时间类型的字段。","steedos-field_description":"描述","steedos-field_deleted_lookup_record_behavior":"如果相关表记录被删除怎么办?","steedos-field_deleted_lookup_record_behavior_clear":"清除此字段的值。 如果您将此字段设为必填,您不能选择此选项。","steedos-field_deleted_lookup_record_behavior_retain":"不允许删除"作为相关表关系的一部分的相关表记录"。","steedos-field_write_requires_master_read":"当用户对主表记录有读取权限时对子表记录可以增删改","steedos-field_write_requires_master_read_remark":"设置主记录上创建、编辑或删除子记录所需的最低访问级别。此字段仅适用于·主表/子表·字段类型。勾选表示允许具有'读取'访问权限的用户创建、编辑或删除子记录。反之表示允许具有'读取/写入'访问权限的用户创建、编辑或删除子记录的权限。","steedos-field_required":"必填","steedos-field_is_wide":"宽字段","steedos-field_readonly":"只读","steedos-field_readonly_remark":"只读字段不显示在表单上,数据不会提交到服务端。","steedos-field_static":"静态","steedos-field_static_remark":"静态字段在表单上显示,用户不可编辑,可动态赋值。","steedos-field_inlineHelpText":"提示文本","steedos-field_enable_enhanced_lookup":"弹出选择","steedos-field_enable_enhanced_lookup_remark":"被其他字段引用时,使用弹出框选择记录。","steedos-field_create":"弹出选择时允许新建","steedos-field_depend_on":"依赖字段","steedos-field_depend_on_remark":"依赖字段的变化会触发当前字段重算","steedos-field_enable_thousands":"显示千分符","steedos-field_unique":"创建唯一索引","steedos-field_unique_remark":"默认每天凌晨执行一次创建,已有的索引不重复创建。","steedos-field_filterable":"列表页过滤器默认字段","steedos-field_index":"创建索引","steedos-field_index_remark":"默认每天凌晨执行一次创建,已有的索引不重复创建。","steedos-field_is_name":"名称字段","steedos-field_reference_to_field":"外键字段","steedos-field_reference_to_field_remark":"关联的对象保存到当前对象字段的值;例如:A对象关联B对象后,当A1记录关联了B1记录,默认会存B1记录的_id存到A1记录中。如果修改了外键字段后,会将“外键字段”替换_id存储到A1记录中。","steedos-field_reference_to_field_description":"默认为主键,默认值是_id","steedos-flow-form_title":"流程表单","steedos-flow-form_group":"华炎魔方-审批王","steedos-flow-form_region_body":"内容区","steedos-flow-form_panelTitle":"设置","steedos-flow-form_name":"表单名","steedos-flow-form_style":"样式","steedos-flow-form_style_table":"表格","steedos-flow-form_style_wizard":"向导","steedos-flow-form_mode":"表单模式","steedos-flow-form_mode_normal":"默认","steedos-flow-form_mode_horizontal":"水平模式","steedos-flow-form_mode_inline":"内联模式","steedos-flow-form_wizard_mode":"向导模式","steedos-flow-form_wizard_mode_vertical":"纵向","steedos-flow-form_wizard_mode_horizontal":"横向","steedos-flow-form_description":"描述"};const resources={en:{translation:en_us$1,"widgets-meta":widget_ed},"zh-CN":{translation:zh_cn$1,"widgets-meta":widget_zh}},getUserLanguage$1=()=>{var e=Builder.settings.context?.user?.language||Builder.settings.locale||window.navigator.language;return("en"===e||e.startsWith("en-"))&&(e="en"),e};var locale$1="zh-CN";async function getQuickEditSchema(e,t,n){let o=e.fields[t.name],r=!1;window.amisRequire&&window.amisRequire("amis")?r=window.amisRequire("amis").version[0]>=3&&window.amisRequire("amis").version[2]>=2:window.Amis&&(r=window.Amis.version[0]>=3&&window.Amis.version[2]>=2);const a=n.objectName+"_"+o.name+"_quickEdit";var i={body:[],id:a,className:"steedos-table-quickEdit"};if("avatar"!=o.type&&"image"!=o.type&&"file"!=o.type&&r){const e={submit:{actions:[{actionType:"validate",componentId:a,outputVar:"form_validate_result"},{actionType:"custom",script:`\n let items = _.cloneDeep(event.data.items);\n let selectedItems = _.cloneDeep(event.data.selectedItems);\n if(event.data.isBatchEdit){\n selectedItems.forEach(function(selectedItem){\n selectedItem._display.${o.name} = event.data._display.${o.name};\n doAction({actionType: 'setValue', "args": {"value": selectedItem._display},componentId: "${n.objectName}" + "_display_" + selectedItem._index});\n doAction({actionType: 'setValue', "args": {"value": event.data.${o.name}},componentId: "${n.objectName+"_"+o.name+"_"}" + selectedItem._index});\n })\n }else{\n doAction({actionType: 'setValue', "args": {"value": event.data._display},componentId: "${n.objectName}" + "_display_" + event.data._index});\n doAction({actionType: 'setValue', "args": {"value": event.data.${o.name}},componentId: "${n.objectName+"_"+o.name+"_"}" + event.data._index});\n }\n `,expression:"${!form_validate_result.error}"},{actionType:"closeDialog",expression:"${!form_validate_result.error}"}]}};i.onEvent=e}if(o.disabled)i=!1;else{var s=Object.assign({},_$1__namespace.omit(n,"buttons"),{defaults:Object.assign({},n.defaults,{formSchema:i})}),l=await convertSFieldToAmisField(o,!1,s);if(l){i.body.push(l);var c="";i.body[0].onEvent={};const e=function(e){return{actions:[{actionType:"custom",script:`\n var _display = _.cloneDeep(event.data._display);\n ${e}\n doAction({actionType: 'setValue', "args": {"value": {_display}},componentId: "${a}"});\n `}]}};switch(o.type){case"lookup":case"master_detail":let t=i.body[0].labelField||"label",n=i.body[0].valueField||"value";c=o.multiple?`\n const preData = _.cloneDeep(event.data.__super.${o.name});\n if(preData && event.data.${o.name}.length < preData.length){\n let deletedIndex;\n preData.forEach(function(item,index){\n if(_.indexOf(event.data.${o.name}, item) == -1) _display["${o.name}"].splice(index, 1);\n })\n }else{\n _display["${o.name}"] = [];\n event.data.value.forEach(function(val,index){\n const item = _.find(event.data.selectedItems, { ${n}: val });\n _display["${o.name}"].push(\n {\n "label": item.${t},\n "value": item[event.data.uiSchema.idFieldName],\n "objectName": "${o.reference_to}"\n }\n )\n })\n }\n \n `:`\n if(event.data.value){\n _display["${o.name}"] = {\n "label": event.data.selectedItems.${t},\n "value": event.data.selectedItems[event.data.uiSchema.idFieldName],\n "objectName": "${o.reference_to}"\n }\n }else{\n _display["${o.name}"] = {}\n }\n `,i.body[0].onEvent.change=e(c);break;case"select":c=`\n _display["${o.name}"] = event.data.selectedItems.label;\n `,i.body[0].onEvent.change=e(c);break;case"percent":c=`\n if(event.data.value){\n _display["${o.name}"] = event.data.value.toFixed(${o.scale}) + '%';\n } else {\n _display["${o.name}"] = event.data.value;\n }\n \n `,i.body[0].onEvent.change=e(c);break;case"time":c=`\n _display["${o.name}"] = moment(event.data.value).utc().format('HH:mm');\n `,i.body[0].onEvent.change=e(c);break;case"date":c=`\n _display["${o.name}"] = moment(event.data.value).utc().format('YYYY-MM-DD');\n `,i.body[0].onEvent.change=e(c);break;case"datetime":c=`\n _display["${o.name}"] = moment(event.data.value).format('YYYY-MM-DD HH:mm');\n `,i.body[0].onEvent.change=e(c);break;case"boolean":c=`\n _display["${o.name}"] = event.data.value?"√":"";\n `,i.body[0].onEvent.change=e(c);break;case"number":case"currency":c=`\n _display["${o.name}"] = event.data.value && event.data.value.toFixed(${o.scale});\n `,i.body[0].onEvent.change=e(c);break;case"file":var d="";o.multiple?(c=`\n _display["${o.name}"].push({\n "name": event.data.result.name,\n "url": event.data.result.url,\n "value": event.data.result.value,\n "_id": event.data.result.value,\n "type": event.data.item.type,\n "size": event.data.item.size\n });\n `,d=`\n _.remove(_display["${o.name}"], function(file){return file.url == event.data.item.url});\n `):(c=` \n _display["${o.name}"] = {\n "name": event.data.result.name,\n "url": event.data.result.url,\n "value": event.data.result.value,\n "_id": event.data.result.value,\n "type": event.data.item.type,\n "size": event.data.item.size\n };\n `,d=`\n if(_display["${o.name}"].url == event.data.item.url){\n _display["${o.name}"] = {};\n }\n `),i.body[0].onEvent.success=e(c),i.body[0].onEvent.remove=e(d);break;case"avatar":case"image":i.body[0].receiver.adaptor=`\n const superData = (typeof context != 'undefined') ? context : api.body; \n const { context:pageContext } = superData; \n var rootUrl = pageContext.rootUrl + "/api/files/${o.type}s/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: rootUrl + payload._id,//为了实现图片crud的回显,需要将value从id改为url,当保存数据数据时,再在发送适配器内重新将id提取出来\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `}i.body[0].visibleOn="${quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}",i.body.push({type:"service",body:[{type:"tpl",tpl:instance.t("frontend_records_no_allowedit"),visibleOn:"${!quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}"},{type:"spinner",showOn:"${quickedit_record_permissions_loading}"}],onEvent:{init:{actions:[{actionType:"custom",script:`\n crudScoped = event.context.scoped.getComponentById('${n.crudId}');\n const selectedItems = crudScoped && crudScoped.control.getSelected();\n doAction({\n "componentId": "${a}",\n "actionType": "setValue",\n "args": {\n "value": {\n selectedItems\n }\n }\n });\n `},{actionType:"setValue",componentId:a,args:{value:{quickedit_record_permissions_loading:!0}}},{actionType:"ajax",args:{api:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},cache:3e4,messages:{failed:"失败了呢。。"}}},expression:"${!recordPermissions.modifyAllRecords}"},{actionType:"setValue",componentId:a,args:{value:{quickedit_record_permissions_loading:!1}}},{actionType:"setValue",componentId:a,args:{value:{quickedit_record_permissions:"${recordPermissions.modifyAllRecords ? {'allowEdit': true} : event.data}"}}}]}}}),"avatar"!=o.type&&"image"!=o.type&&"file"!=o.type&&r&&i.body.push({name:"isBatchEdit",type:"checkbox",option:[{type:"tpl",tpl:"更新${COUNT(selectedItems)}个选定记录"},{type:"spinner",showOn:"${batchPermissionLoading}",size:"sm",className:"mr-4"}],visibleOn:"${ARRAYSOME(selectedItems, item => item._id === _id) && COUNT(selectedItems)>1 && quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}",disabledOn:"${batchPermissionLoading}",onEvent:{change:{actions:[{actionType:"setValue",componentId:a,args:{value:{batchPermissionLoading:!0}},expression:"${event.data.value}"},{actionType:"ajax",args:{api:{url:"${context.rootUrl}/graphql",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{query:'{rows:${objectName}(filters:["_id","in",${selectedItems | pick:_id | split | json}]){_id,_permissions{allowEdit}}}'},adaptor:"\n const noPermission = [];\n payload.data.rows.forEach(function (row) {\n if(!row._permissions.allowEdit){\n noPermission.push(row._id);\n }\n })\n payload.data.noPermission = noPermission;\n return payload;\n "}},expression:"${event.data.value && !recordPermissions.modifyAllRecords}"},{actionType:"setValue",componentId:a,args:{value:{batchPermissionLoading:!1}},expression:"${event.data.value}"},{actionType:"dialog",dialog:{title:"记录权限",showCloseButton:!1,body:[{type:"tpl",tpl:"当前选中记录中,有${COUNT(noPermission)}条记录无编辑权限,是否需要批量编辑其他记录?"}],onEvent:{confirm:{actions:[{actionType:"custom",script:`\n const noPermission = event.data.noPermission;\n const crudComponent = event.context.scoped.getComponentById("${n.crudId}");\n let selectedItems = crudComponent && crudComponent.props.store.selectedItems.concat();\n noPermission.forEach(function (item) {\n crudComponent && crudComponent.unSelectItem(_.find(selectedItems,{_id:item}));\n _.remove(selectedItems, (selected) => selected._id === item);\n })\n doAction({\n "componentId": "${a}",\n "actionType": "setValue",\n "args": {\n "value": {\n selectedItems\n }\n }\n });\n `},{actionType:"setValue",componentId:a,args:{value:{isBatchEdit:!0}}}]},cancel:{actions:[{actionType:"setValue",componentId:a,args:{value:{isBatchEdit:!1}}}]}}},expression:"${COUNT(event.data.noPermission)>0}"}]}}})}else i=!1;"lookup"!=o.type||r||(i=!1),"file"==o.type&&o.multiple&&(i=!1),"location"==o.type&&(i=!1),"color"==o.type&&(i={type:"input-color"})}return i}function getFieldWidth(e){const t=null;return"string"==typeof e?isNaN(e)?e||t:Number(e)||t:"number"==typeof e?e:t}async function getColumnItemOnClick(e,t){let n=t.objectName;e.is_name||e.name===t.labelFieldName||(n=e.reference_to);const o=await getPage({type:"record",appId:t.appId,objectName:n,formFactor:t.formFactor}),r=o?Object.assign({},o.schema,{recordId:`\${${t.idFieldName}}`,data:{...o.schema.data,_inDrawer:!0,recordLoaded:!1,recordId:`\${${t.idFieldName}}`,_lookupObjectName:t.objectName}}):{type:"steedos-record-detail",objectApiName:"${objectName}",recordId:`\${${t.idFieldName}}`,showBackButton:!1,showButtons:!0,data:{_inDrawer:!0,recordLoaded:!1,_lookupObjectName:t.objectName}};return e.is_name||e.name===t.labelFieldName||(r.objectApiName=e.reference_to,r.recordId=`\${_display.${e.name}.value}`),{click:{actions:[{actionType:"drawer",drawer:{type:"drawer",title:"&nbsp;",headerClassName:"hidden",size:"lg",width:window.drawerWidth||"70%",bodyClassName:"p-0 m-0 bg-gray-100",closeOnEsc:!0,closeOnOutside:!0,resizable:!0,actions:[],body:[r],className:"steedos-record-detail-drawer app-popover",id:"u:fc5f055afa8c"},preventDefault:!0}]}}}async function getTableColumns(e,t,n){const o=[];n.isLookup||n.isInputTable||n.enable_tree||o.push({name:"_index",type:"text",width:32,placeholder:""});const r=n.permissions?.allowEdit&&!n.isLookup&&0!=n.enable_inline_edit;for(const a of t){if(a.hidden||a.extra)continue;const t=r?await getQuickEditSchema(e,a,n):r;let i=`steedos-table-${a.type}-field`;"Safari"===getBowserType()||!1===a.wrap?i+=" whitespace-nowrap ":i+=" break-words ","object"==typeof a.amis?.className?i={[i]:"true",...a.amis.className}:"string"==typeof a.amis?.className&&(i=`${i} ${a.amis.className} `);let s,l=_$1__namespace.clone(a.amis);delete l?.className;let c=!!(window&&window.nw&&window.nw.require);if((a.is_name||a.name===n.labelFieldName)&&"cms_files"===n.objectName&&c){const e=`\n var data = event.data;\n var file_name = data.versions ? data.name : "${a.label}";\n var file_id = data.versions && data.versions[0] && data.versions[0]._id;\n window.previewFile && window.previewFile({file_name, file_id});\n `;s=Object.assign({},{type:"button",label:`<%=data.versions ? data.name : "${a.label}"%>`,className:i,level:"link",onEvent:{click:{actions:[{args:{},actionType:"custom",script:e,expression:"!!(window && window.nw && window.nw.require)"}]}}},l)}else if("toggle"===a.type)s=Object.assign({},{type:"switch",name:a.name,label:a.label,width:getFieldWidth(a.width),toggled:a.toggled,static:!0,className:i},l,{name:a.name});else if("avatar"===a.type||"image"===a.type||"file"===a.type)s=Object.assign({},{type:"switch",name:a.name,label:a.label,width:getFieldWidth(a.width),toggled:a.toggled,static:!0,className:i,...await getAmisFileReadonlySchema(a)},l);else if("select"===a.type){const e=getSelectMap(a.options);s=Object.assign({},{type:"static-mapping",name:a.name,label:a.label,map:e,sortable:a.sortable,width:getFieldWidth(a.width),toggled:a.toggled,className:i,inputClassName:"inline",static:!0},l,{name:a.name})}else if("lookup"===a.type||"master_detail"===a.type)s=Object.assign({},{type:"static-wrapper",name:a.name,label:a.label,sortable:a.sortable,width:getFieldWidth(a.width),toggled:a.toggled,className:i,size:"none",inputClassName:"inline",body:{type:"steedos-field",static:!0,isLookupInTable:!0,config:{type:"lookup",reference_to:a.reference_to,name:a.name,is_name:a.is_name,label:null,multiple:a.multiple,amis:Object.assign({},l,{label:null})}}},l,{name:a.name});else{const e=await getFieldTpl(a,n);let t="static-text";if(e?t="static":"html"===a.type?t="static-markdown":"url"===a.type&&(t=a.show_as_qr?"static-qr-code":"input-url"),"textarea"===a.type&&(i+="min-w-56"),!a.hidden&&!a.extra){s=Object.assign({},{name:a.name,label:a.label,sortable:a.sortable,width:getFieldWidth(a.width),type:t,tpl:e,toggled:a.toggled,className:i,inputClassName:"inline",static:!0,options:"html"===a.type?{html:!0}:null},l,{name:a.name}),"color"===a.type&&(s.type="color",s.defaultColor=null);let o=!1;o=n.isRelated&&(a.is_name||a.name===n.labelFieldName),window.innerWidth>=768&&o&&(s.onEvent=await getColumnItemOnClick(a,n))}}s&&(t&&(s.quickEdit=t,s.quickEditEnabledOn="${is_system !== true}"),s.id=`${n.objectName}_${a.name}_\${_index}`,o.push(s))}if(!n.isLookup&&!n.isInputTable&&!_$1__namespace.some(o,{name:n.labelFieldName})){const e=Router.getObjectDetailPath({...n,formFactor:n.formFactor,appId:"${appId}",objectName:n.objectName||"${objectName}",recordId:`\${${n.idFieldName}}`});o[0].type="tpl",o[0].tpl=`<a href="${e}">\${${o[0].name}}</a>`}return o}function getMobileLines(e){let t=[],n=[],o=!1,r=!0,a="",i="flex items-center justify-between mb-1";return e.forEach(function(e){var s;o&&t.length<3&&(t.push({type:"wrapper",body:n,size:"none",className:i}),n=[]),r?(a="steedos-listview-item-left truncate",e.field.is_wide&&(a="steedos-listview-item-wide"),0===t.length&&(a+=" font-bold text-gray-800")):a="steedos-listview-item-right truncate ml-2 flex flex-shrink-0",s="object"==typeof e.field.amis?.className?{[a]:"true",...e.field.amis.className}:"string"==typeof e.field.amis?.className?`${a} ${e.field.amis.className} `:a,n.push({type:"tpl",tpl:e.tpl,className:s}),e.field.is_wide?(r=!0,o=!0):(r=!r,o=r)}),n.length&&t.length<3&&t.push({type:"wrapper",body:n,size:"none",className:i}),t}async function getMobileTableColumns(e,t){const n=[];let o={},r=[];for(const n of e){let e="";n.is_name||n.name===t.labelFieldName?(o=n,t=Object.assign({},t,{onlyDisplayLookLabel:!0}),e=await getFieldTpl(n,t)):"avatar"===n.type||"image"===n.type||"file"===n.type?e=`\${_display.${n.name}.name}`:("lookup"!==n.type&&"master_detail"!==n.type||(t=Object.assign({},t,{onlyDisplayLookLabel:!0})),e=await getFieldTpl(n,t)),e||(e=`\${${n.name}}`),n.hidden||n.extra||r.push({field:n,tpl:e})}const a=function(e=window.location.search){const t={},n=e.startsWith("?")?e.slice(1):e;return n?(n.split("&").forEach(e=>{const[n,o]=e.split("=");if(n){const e=decodeURIComponent(n),r=o?decodeURIComponent(o.replace(/\+/g," ")):"";t.hasOwnProperty(e)?Array.isArray(t[e])?t[e].push(r):t[e]=[t[e],r]:t[e]=r}}),t):t}();let i=getNameTplUrl(o,t);if("split"===t.displayAs){const e=a.additionalFilters||"";i+=`&additionalFilters=${encodeURIComponent(e)}`}const s=getMobileLines(r);let l={name:o.name,label:"split"==t.displayAs?"":o.label,sortable:o.sortable,type:"button",level:"link",actionType:"link",link:i,innerClassName:{"steedos-listview-item block text-gray-500":"true","max-w-[360px]":"${display == 'split'}"},body:{type:"wrapper",body:s,size:"none",className:"p-1"}};return"cms_files"===t.objectName&&(l=window.Meteor?.isCordova?{...l,actionType:"",link:"",onEvent:{click:{actions:[{script:'\n let cms_url = \'\';\n let value = event.data.versions[0];\n if(value){\n if(value.url){\n cms_url = value.url;\n }else{\n cms_url = Steedos.absoluteUrl("/api/files/files/"+value+"?download=true");\n }\n }\n Steedos.cordovaDownload(encodeURI(cms_url), event.data.name);\n ',actionType:"custom"}],weight:0}}}:{...l,actionType:"",link:"",onEvent:{click:{actions:[{actionType:"link",args:{link:i}}],weight:0}}}),n.push(l),n}function getDefaultParams$1(e){return{perPage:e.top||e.perPage||config.listView.perPage}}function getButtonVisibleOn$1(e){let t=e.visible;if(e._visible&&(t=e._visible),_$1.isBoolean(t)&&(t=t.toString()),t){if(t.trim().startsWith("function")){t=t.replace("function","function __visible");return`(function _visible(){try{return (${t})(objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data)}catch(e){console.error(e)}})()`}return t}if("amis_button"===e.type){const t=e.amis_schema;if(t&&t.body&&t.body.length>0){return t.body[0].visibleOn}}}async function getTableOperation(e){const t=e.buttons,n=[];if(_$1.each(t,e=>{_$1.isBoolean(e.visible)&&(e.visible=e.visible.toString()),n.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOnAlias:getButtonVisibleOn$1(e),className:"antd-Button--default"})}),!(n.length<1))return{type:"operation",label:"&nbsp;",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation w-10 is-sticky is-sticky-right is-sticky-first-right",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:n,placement:"bottomRight",overlayClassName:"border rounded !min-w-[160px]",trigger:["click"],id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",requestAdaptor:"api.data={}; return api;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n payload = {\n record: {\n recordPermissions: payload\n }\n };\n return payload;\n "}}]}}async function getDefaultCrudCard(e,t){let n,o=t?.labelFieldName||"name",r=[];e.forEach(function(e){delete e.quickEdit,delete e.width,e.name===o?n=e:"_index"!==e.name&&r.push(e)});let a={header:{title:n.tpl},body:r,toolbar:[]};if(!("SMALL"===t.formFactor||["split"].indexOf(t.displayAs)>-1)){let e=await getTableOperation(t);e&&(e.className+=" inline-block w-auto"),a.toolbar.push(e)}return a}async function getTableSchema$1(e,t,n){n||(n={});let{isLookup:o,hiddenColumnOperation:r}=n;const a=n.defaults,i=a&&a.listSchema||{};let s=[],l="SMALL"===n.formFactor||["split"].indexOf(n.displayAs)>-1;if(o&&(l=!1),i.mode&&"table"!==i.mode&&(l=!1),l)s=await getMobileTableColumns(t,n);else{if(s=await getTableColumns(e,t,n),"cards"===i.mode){let e=i.card;return e||(e=await getDefaultCrudCard(s,n)),{mode:"cards",perPageAvailable:[20,50,100,500],name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 border-solid border-b",className:"",draggable:!1,card:e,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!!o,labelTpl:`\${${n.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1,...getDefaultParams$1(n)}}if(!o&&!r){const e=await getTableOperation(n);s.push(e)}}const c={};return n.enable_tree&&(c.expandConfig={expand:"first"}),{mode:"table",perPageAvailable:[20,50,100,500],name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 border-solid border-b",className:"",draggable:!1,columns:s,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!!o,labelTpl:`\${${n.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1,...c,...getDefaultParams$1(n)}}function getScriptForAddUrlPrefixForImgFields(e,t){let n=[],o={};return e.forEach(e=>{_$1__namespace.includes(["image","avatar"],e.type)&&(n.push(e.name),o[e.name]={name:e.name,type:e.type,multiple:e.multiple})}),n.length?`\n // image字段值添加URL前缀\n let imgFieldsKeys = ${JSON.stringify(n)};\n let imgFields = ${JSON.stringify(o)};\n imgFieldsKeys.forEach((item)=>{\n let imgFieldValue = data[item];\n let imgFieldDisplayValue = data._display && data._display[item];\n if(imgFieldValue && imgFieldValue.length){\n let fieldProps = imgFields[item];\n if(fieldProps.multiple){\n if(imgFieldDisplayValue instanceof Array){\n data[item] = imgFieldDisplayValue.map((i)=>{ \n const url = window.getImageFieldUrl(i.url, ${t});\n return url;\n });\n }\n }else{\n const url = imgFieldDisplayValue && window.getImageFieldUrl(imgFieldDisplayValue.url, ${t});\n data[item] = url;\n }\n }\n })\n `:""}async function getListBody(e,t){const n=[];for(const o of e){const e=await getFieldTpl(o,t);let r="text";e&&(r="tpl"),o.hidden||o.extra||n.push({name:o.name,label:o.label,sortable:o.sortable,width:o.width,type:r,tpl:e,toggled:o.toggled})}return{type:"hbox",columns:n}}function getDefaultParams(e){return{perPage:e.top||e.perPage||20}}async function getListSchema$1(e,t){return{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...(await getListBody(e,t)).columns],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:instance.t("frontend_form_view"),type:"button",actionType:"link",link:Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]},...getDefaultParams(t)}}"undefined"!=typeof window&&(window.steedosI18next=instance,locale$1=getUserLanguage$1()),instance.use(initReactI18next).init({resources:resources,lng:locale$1,interpolation:{escapeValue:!1}}),"function"==typeof SuppressedError&&SuppressedError;const getSchema$5=async(e,t)=>{const n=`\n let formSchema = {\n "type": "steedos-object-form",\n "label": "对象表单",\n "objectApiName": "\${objectName}",\n "recordId": "",\n "mode": "edit",\n };\n\n if (payload && payload.schema) {\n formSchema = _.isString(payload.schema) ? JSON.parse(payload.schema) : payload.schema;\n }\n\n const fields = ${JSON.stringify(e.fields)};\n const selectedRowResponseResult = api.body.selectedRowResponseResult;\n let defaultData = {}; \n\n if(!_.isEmpty(selectedRowResponseResult)){\n const fieldsKeys = _.keys(fields);\n // 如果新建记录时复制的数据中有omit或其他不相关字段数据时不应该一起保存到数据库,\n // 原规则见:https://github.com/steedos/steedos-frontend/issues/297\n _.forEach(selectedRowResponseResult, (val, key) => {\n if (fieldsKeys.indexOf(key) > -1 && fields[key].omit !== true && key != 'owner') {\n defaultData[key] = val;\n }\n })\n }\n\n const _master = api.body._master;\n if(_master && _master._isRelated){\n const relatedKey = _master.relatedKey;\n const masterObjectName = _master.objectName;\n const recordId = _master.recordId || _master.record._id;\n let relatedKeySaveValue = recordId;\n const relatedField = fields[relatedKey];\n if(relatedField && relatedField.reference_to_field && relatedField.reference_to_field !== '_id'){\n relatedKeySaveValue = _master.record[relatedField.reference_to_field];\n }\n let relatedKeyValue; \n if(relatedField && !_.isString(relatedField.reference_to)){\n relatedKeyValue = { o: masterObjectName, ids: [relatedKeySaveValue] };\n }else if (relatedField && relatedField.multiple) {\n relatedKeyValue = [relatedKeySaveValue];\n } else {\n relatedKeyValue = relatedKeySaveValue;\n }\n defaultData[relatedKey]=relatedKeyValue;\n }\n\n if(!_.isEmpty(defaultData)){\n if(payload.schema){\n // 表单微页面第一层要求是page\n formSchema.data.defaultData = defaultData;\n }else{\n formSchema.defaultData = defaultData;\n }\n }\n return {\n data: formSchema\n };\n `;return{type:"service",body:[{type:"button",level:"primary",label:instance.t("frontend_form_new"),id:"u:standard_new",onEvent:{click:{weight:0,actions:[{actionType:"custom",script:"\n const isLookup = event.data.isLookup;\n if(isLookup){\n // lookup弹出窗口的新建功能不需要支持复制新建\n return;\n }\n const uiSchema = event.data.uiSchema;\n const objectName = event.data.objectName;\n const crudId = event.data.crudId || \"listview_\" + objectName;\n const listViewRef = event.context.scoped.getComponentById(crudId);\n const selectedItems = listViewRef && listViewRef.props.store.toJSON().selectedItems || [];\n event.data.selectedIds = _.map(selectedItems, uiSchema.idFieldName || '_id');\n "},{actionType:"ajax",outputVar:"selectedRowResponseResult",args:{api:{url:"${context.rootUrl}/api/v1/${uiSchema.name}/${selectedIds|first}",method:"get"}},expression:"${selectedIds.length > 0}"},{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$",_master:"${_master}","_master._isRelated":"${_isRelated}","_master.relatedKey":"${relatedKey}",appId:"${appId}",objectName:"${objectName}",context:"${context}",global:"${global}",listViewId:"${listViewId}",displayAs:"${displayAs}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",listName:"${listName}",selectedRowResponseResult:"${selectedRowResponseResult}",_lookupObjectName:"${_lookupObjectName}"},title:instance.t("frontend_form_new")+" ${uiSchema.label | raw}",body:[{type:"service",id:"u:1678e148c4d2",messages:{},schemaApi:{data:{isLookup:"${isLookup}",_master:"${_master}",url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",selectedRowResponseResult:"${selectedRowResponseResult}"},url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",method:"get",messages:{},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"return { ...api, url: api.body.url }",adaptor:n}}],showCloseButton:!0,id:"u:standard_new_dialog",closeOnEsc:!1,closeOnOutside:!1,size:"lg",actions:[{type:"button",actionType:"cancel",label:instance.t("frontend_form_cancel"),className:"form-btn-cancel"},{type:"button",label:instance.t("frontend_form_save_and_new"),actionType:"confirm",close:!1,id:"confirmAndNew",className:"form-btn-save_and_new",onEvent:{click:{actions:[{actionType:"setValue",componentId:"u:standard_new_dialog",args:{value:{__saveAndNewRecord:!0}}}]}}},{type:"button",actionType:"confirm",label:instance.t("frontend_form_save"),primary:!0,className:"form-btn-save"}]}}]}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"}};async function getObjectFieldsFilterFormSchema(e){e||(e={});return{type:"service",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"SMALL"===e.formFactor?"slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden":"slds-filters__body p-0 sm:grid sm:gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 p-1",style:{"max-height":"SMALL"===e.formFactor?"30vh":"unset"},schemaApi:{method:"post",data:{$self:"$$",query:""},url:"/api/amis/health_check?reload=${filterFormSearchableFields|join}",adaptor:`\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const filterFormSearchableFields = (selfData.filterFormSearchableFields || []).filter(function(item){\n return !!fields[item]\n });\n const resolveAll = function(values){\n payload.data = {\n "body": values\n };\n return payload;\n }\n\n const rejectAll = function(){\n console.warn("run function getFieldSearchable failed.");\n }\n\n return Promise.all(filterFormSearchableFields.map(function (item) {\n const field = _.clone(fields[item]);\n if (\n field && window.isFieldTypeSearchable(field.type)\n ) {\n var ctx = ${JSON.stringify(e)};\n const amisField = window.getFieldSearchable(field, fields, ctx);\n return amisField;\n }\n })).then(resolveAll, rejectAll);\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}async function getObjectFieldsFilterBarSchema(e,t){t||(t={});const n=t.searchable_fields,o=!!t.auto_open_filter,r="btn_filter_form_search_"+(new Date).getTime(),a=await getObjectFieldsFilterFormSchema(t),i=t.keywordsSearchBoxName||"__keywords",s=`\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取,因为本地存储中的过滤条件自动填充到表单上时filterForm.getValues()拿不到。\n let filterFormValues = event.data;\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n // 同步__changedFilterFormValues中的值\n // crud && crud.setData({__changedFilterFormValues: {}});\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n filterForm.handleFormSubmit(event);\n // var filterFormValues = filterForm.getValues();\n // var listView = scope.parent.parent.parent.getComponents().find(function(n){\n // return n.props.type === "crud";\n // });\n // const removedValues = {};\n // // 设置搜索项中移除搜索项后,filterFormValues未把其字段的空值保存为own property,即hasOwnProperty属性中\n // // 这会造成handleFilterSubmit时把移除掉的搜索项字段之前的值加到过滤条件中\n // for(var k in filterFormValues){\n // if(filterFormValues[k] === "" && !filterFormValues.hasOwnProperty(k)){\n // removedValues[k] = null;\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n // 点击搜索的时候自动收起搜索栏\n //触发amis crud 高度重算\n doAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed.${e.name}"\n },\n "data": {\n "timeOut": 500\n }\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n let showFieldsFilter = true;\n // const isMobile = window.innerWidth < 768;\n // if(event.data.__from_fields_filter_settings_confirm){\n // // 如果是从设置搜索项点击确认按钮触发的搜索事件不应该自动关闭搜索栏\n // showFieldsFilter = true;\n // }\n // else if(isMobile){\n // // 如果是手机端,点击搜索后自动关闭搜索栏\n // showFieldsFilter = false;\n // }\n // else if(event.data.displayAs === "split") {\n // // PC上分栏模式下的列表,始终按手机上效果处理,即自动关闭搜索栏\n // showFieldsFilter = false;\n // }\n // else if(window.innerHeight >= 1200){\n // // 高分辨率屏幕(2k+),列表高度比较高,没必要自动关闭搜索栏\n // showFieldsFilter = true;\n // }\n filterService.setData({showFieldsFilter});\n // resizeWindow();//已迁移到搜索栏表单提交事件中执行,因为表单项change后也会触发表单提交了\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});\n `,l=`\n // console.log("===onCancelScript=form==");\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n var filterFormValues = filterForm.getValues();\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n const removedValues = {};\n for(var k in filterFormValues){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n if(!event.data.isLookup){\n // 刷新浏览器后,filterFormValues值是空的,只能从本地存储中取出并重置为空值\n const listName = event.data.listName;\n const listViewPropsStoreKey = location.pathname + "/crud";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n for(var k in localListViewProps){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n }\n }\n else{\n const keywordsSearchBoxName = "${i}";\n //lookup字段保留快速搜索条件\n removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];\n }\n filterForm.setValues(removedValues);//会把表单提交到toolbar的快速搜索区域,造成在快速搜索框中触发搜索时再次把搜索表单中的字段值清除掉的bug,已单独在快速搜索框那边添加搜索事件代码处理过了\n // 以下方法都无法实现清除表单值\n // filterForm.setValues({}, true)\n // filterForm.reset();\n // filterForm.handleAction({},{\n // "actionType": "setValue",\n // "args": {\n // "value": removedValues\n // }\n // });\n // 下面触发clear动作可以清除表单值,且不会把表单提交到toolbar的快速搜索区域,但是会把金额等范围字段清空成非范围字段\n // filterForm.handleAction({},{\n // "actionType": "clear"\n // });\n\n // 清除__changedFilterFormValues中的值\n // crud && crud.setData({__changedFilterFormValues: {}});\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = {};\n crud.setData(crudData);\n }\n filterForm.handleFormSubmit(event);\n // crud.handleFilterSubmit(removedValues);\n\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");\n filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});\n //触发amis crud 高度重算\n doAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed.${e.name}"\n },\n "data": {\n "timeOut": 100\n }\n });\n \n // 移除搜索按钮上的红点\n // let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});\n `,c=t.filter_form_data,d=`\n const searchableFields = ${JSON.stringify(n)};\n const autoOpenFilter = ${o};\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listName = data.listName;\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields";\n if(isLookup){\n searchableFieldsStoreKey += "/lookup/" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + "/" + (data.context && data.context.userId);\n let defaultSearchableFields = localStorage.getItem(searchableFieldsStoreKey);\n if(defaultSearchableFields){\n defaultSearchableFields = defaultSearchableFields.split(",");\n }\n if(_.isEmpty(defaultSearchableFields) && searchableFields){\n if(searchableFields.length){\n defaultSearchableFields = _.map(searchableFields, 'field');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n const sFields = listView && listView.searchable_fields;\n if(sFields && sFields.length){\n defaultSearchableFields = _.map(sFields, 'field');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {\n return field.filterable;\n }), "sort_no"),\n "name"\n );\n }\n setData({ filterFormSearchableFields: defaultSearchableFields });\n if(isLookup){\n let filterFormValues = ${_.isObject(c)?JSON.stringify(c):'"'+c+'"'} || {};\n const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;\n if (isAmisFormula){\n filterFormValues = AmisCore.evaluate(filterFormValues, data) || {};\n }\n if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){\n let fields = data.uiSchema && data.uiSchema.fields;\n filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);\n setData({ ...filterFormValues });\n }\n // looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器\n setData({ showFieldsFilter: autoOpenFilter });\n }\n else{\n const listViewPropsStoreKey = location.pathname + "/crud";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let filterFormValues = _.pickBy(localListViewProps, function(n,k){\n return /^__searchable__/g.test(k);\n });\n if(!_.isEmpty(filterFormValues)){\n setData({ ...filterFormValues });\n const omitedEmptyFormValue = _.omitBy(filterFormValues, function(n){\n return _.isNil(n) \n || (_.isObject(n) && _.isEmpty(n)) \n || (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))\n || (_.isString(n) && n.length === 0);\n });\n // 有过滤条件时只显示搜索按钮上的红点,不自动展开搜索栏\n if(!_.isEmpty(omitedEmptyFormValue)){\n let scopeRef = SteedosUI.getRef(data.$scopeId);\n let crudService = scopeRef && scopeRef.parent.getComponentById("service_listview_" + data.objectName)\n crudService && crudService.setData({isFieldsFilterEmpty: false});\n // setData({ showFieldsFilter: true });//自动展开搜索栏\n }\n }\n }\n }\n `,u=`\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const value = data.fields;\n const scope = event.context.scoped;\n // 这里的filterForm不是name为"listview-filter-form"的内部form,而是crud自带的filter form\n const filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({ filterFormSearchableFields: value });\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields";\n if(isLookup){\n searchableFieldsStoreKey += "/lookup/" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + "/" + (data.context && data.context.userId);\n localStorage.setItem(searchableFieldsStoreKey, value);\n\n // ===START===:当变更可搜索字段时,如果被移除的可搜索字段在本地存储中已经存入过滤条件中则应该清除本地存储中相关字段的过滤条件。\n const searchableFields = data.fields;\n let preSearchableFields = data.__super.fields;\n if(typeof preSearchableFields === "string"){\n preSearchableFields = preSearchableFields.split(",");\n }\n const removedFields = _.difference(preSearchableFields, searchableFields);\n\n // const getClosestAmisComponentByType = function (scope, type, name) {\n // // 递归children找到listview-filter-form\n // let re = scope.getComponents().find(function (n) {\n // return n.props.type === type && n.props.name === name;\n // });\n // if (re) {\n // return re;\n // }\n // else {\n // if (scope.children && scope.children.length) {\n // for (let i = 0; i < scope.children.length; i++) {\n // re = getClosestAmisComponentByType(scope.children[i], type, name);\n // if (re) {\n // break;\n // }\n // }\n // return re;\n // }\n \n // }\n // }\n // // 这里第二层form才是真正要提交到crud过滤条件的form\n // filterInnerForm = getClosestAmisComponentByType(filterForm.context, "form", "listview-filter-form");\n\n const filterFormValues = filterForm.getValues();\n let removedKeys = [];\n _.each(filterFormValues, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n removedValues[key] = null;\n });\n filterForm.setValues(removedValues);//这里使用filterInnerForm也可以\n\n if(isLookup){\n return;\n }\n \n // 列表视图crud支持本地缓存,所以需要进一步清除浏览器本地缓存里面用户在可搜索项中移除的字段值\n const listViewPropsStoreKey = location.pathname + "/crud";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n _.each(localListViewProps, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n delete localListViewProps[k];\n }\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n //触发amis crud 高度重算\n doAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed.${e.name}"\n },\n "data": {\n "timeOut": 100\n }\n });\n // ===END===\n `;return{type:"service",name:"service_listview_filter_form",data:{},dataProvider:{inited:d},body:{type:"wrapper",body:{type:"wrapper",body:[a,{type:"wrapper",body:{type:"wrapper",body:[{type:"button",level:"primary",id:r,label:instance.t("frontend_fields_filter_button_search"),icon:"fa fa-search",onEvent:{click:{actions:[{actionType:"custom",script:s}]}}},{type:"button",label:instance.t("frontend_form_reset"),name:"btn_filter_form_cancel",onEvent:{click:{actions:[{actionType:"custom",script:l}]}}},{type:"button",label:instance.t("frontend_fields_filter_button_settings"),onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",size:"md",title:instance.t("frontend_fields_filter_button_settings"),body:[{type:"form",title:"",body:[{label:"",type:"transfer",name:"fields",id:"u:92c0b3cccca0",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{$self:"$$"},requestAdaptor:"",adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const options = ((payload.data && payload.data.options) || []).filter(function(item){\n let field = fields[item.value];\n // TODO: 暂时禁用location类型字段的列表搜索\n return !!field && window.isFieldTypeSearchable(field.type) && field.type !== 'location'\n });\n payload.data = {\n \"options\": options\n };\n return payload;\n "},options:[],required:!0,placeholder:"-",className:"col-span-2 m-0",checkAll:!1,searchable:!0,sortable:!0,joinValues:!1,extractValue:!0,multiple:!0}],id:"u:e5ac506d5683",mode:"normal",persistData:!1,promptPageLeave:!0,name:"form",debug:!1,actions:[],panelClassName:"m-0",bodyClassName:"p-4",className:"steedos-amis-form"}],actions:[{type:"button",label:instance.t("frontend_form_cancel"),onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:4e447b5ca72a"},{type:"button",label:instance.t("frontend_form_confirm"),onEvent:{click:{actions:[{actionType:"custom",script:u},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",context:"${context}",fields:"${filterFormSearchableFields}"}}}]}},level:"link"}],size:"xs",className:"space-x-2"},size:"xs",className:"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"}],size:"xs",className:"slds-filters px-0"},size:"xs",className:"p-0",visibleOn:"this.showFieldsFilter"},className:"bg-white"}}const getNewListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_new_label"),className:"steedos-listview-new-button",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_new_title"),data:{all:"${uiSchema.list_views.all}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",targetObjectName:"${objectName}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",layout:"normal",defaultData:{"&":"${list_view}",name:"",label:"",filters:"",shared:!1,object_name:"${targetObjectName}",_id:"",shared_to:null,shared_to_organizations:null,locked:!1,owner:null,company_id:null,company_ids:null,is_system:!1},fieldsExtend:fieldsExtend$5(),fields:fields$1(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"},{actionType:"custom",script:"window.location.reload();"}]}},messages:{success:instance.t("frontend_listview_control_new_message_success"),failed:instance.t("frontend_listview_control_new_message_failed")}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields$1(){return["label","name","object_name","filter_scope","show_count","columns","sort","filters","mobile_columns","searchable_fields","is_system","shared","shared_to","shared_to_organizations"]}function fieldsExtend$5(){return{group:"",label:{group:"",is_wide:!0},name:{group:"",amis:{hidden:!0,required:!1}},object_name:{group:"",amis:{hidden:!0}},filter_scope:{group:"",amis:{hidden:!0,required:!1}},columns:{group:"",amis:{hidden:!0,required:!1}},mobile_columns:{group:"",amis:{hidden:!0,required:!1}},searchable_fields:{group:"",amis:{hidden:!0,required:!1}},filter_fields:{group:"",amis:{hidden:!0,required:!1}},scrolling_mode:{group:"",amis:{hidden:!0,required:!1}},sort:{group:"",amis:{hidden:!0,required:!1}},show_count:{group:"",amis:{hidden:!0,required:!1}},type:{group:"",amis:{hidden:!0,required:!1}},shared:{group:"",amis:{visibleOn:"${false}"}},shared_to:{group:"",amis:{type:"radios",inline:!1}},shared_to_organizations:{group:""},filters:{group:"",amis:{hidden:!0}}}}async function getObjectListHeaderFieldsFilterBar(e,t,n){return await getObjectFieldsFilterBarSchema(e,n)}const getCopyListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_clone_label"),onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_clone_title"),data:{listName:"${listName}",targetObjectName:"${objectName}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",layout:"normal",defaultData:{"&":"${list_view}",name:"",label:instance.t("frontend_listview_control_clone_defaultData_label_start")+" ${list_view.label} "+instance.t("frontend_listview_control_clone_defaultData_label_end"),shared:!1,object_name:"${targetObjectName}",_id:"",shared_to:null,shared_to_organizations:null,locked:!1,owner:null,company_id:null,company_ids:null,is_system:!1},fieldsExtend:fieldsExtend$4(),fields:fields(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"},{actionType:"custom",script:"window.location.reload();"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields(){return["label","name","object_name","filter_scope","show_count","columns.$.field","columns.$.width","sort.$.field_name","sort.$.order","filters","mobile_columns.$.field","searchable_fields.$.field","is_system","shared","shared_to","shared_to_organizations"]}function fieldsExtend$4(){return{label:{group:"",is_wide:!0},name:{is_wide:!0,amis:{hidden:!0}},object_name:{amis:{hidden:!0}},filter_scope:{amis:{hidden:!0}},columns:{amis:{hidden:!0}},filter_fields:{amis:{hidden:!0}},scrolling_mode:{amis:{hidden:!0}},sort:{amis:{hidden:!0}},show_count:{amis:{hidden:!0}},type:{amis:{hidden:!0}},shared:{group:"",amis:{visibleOn:"${false}"}},shared_to:{group:"",amis:{type:"radios",inline:!1}},shared_to_organizations:{group:""},filters:{group:"",amis:{hidden:!0}}}}const getRenameListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_rename_label"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_rename_title"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",layout:"normal",mode:"edit",fields:["label"],fieldsExtend:'{\n "label":{\n "is_wide": true\n }\n}',onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${name}",blank:!1},actionType:"url"},{actionType:"custom",script:"window.location.reload();"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}}),getSetListviewShareButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_share"),disabledOn:"!(global.user.is_space_admin && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_share"),data:{recordId:"${uiSchema.list_views[listName]._id}",appId:"${appId}",global:"${global}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",layout:"normal",fields:["shared_to","shared_to_organizations"],fieldsExtend:fieldsExtend$3()}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"md"},actionType:"dialog"}]}}});function fieldsExtend$3(){return{shared_to:{group:"",amis:{type:"radios",inline:!1}},shared_to_organizations:{group:""}}}const getSetListviewFiltersButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_filters"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_filters"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["filters"],initApiAdaptor:initApiAdaptor$2(),apiRequestAdaptor:apiRequestAdaptor$2(),fieldsExtend:fieldsExtend$2(),onEvent:{submitSucc:{weight:0,actions:[{actionType:"custom",script:"window.location.reload(); //doAction({'actionType': 'rebuild', 'componentId': `service_listview_${event.data.targetObjectName}`})"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function initApiAdaptor$2(){return"\n const recordId_tmp = api.body.recordId;\n let data_tmp;\n if (recordId_tmp) {\n data_tmp = payload.data;\n // 数据格式转换\n if (data_tmp) {\n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n try {\n data_tmp.filters = JSON.parse(data_tmp.filters);\n } catch (e) { }\n }\n \n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n data_tmp._filters_type_controller = 'function';\n } else {\n data_tmp._filters_type_controller = 'conditions'\n }\n \n if (data_tmp._filters_type_controller === 'conditions') {\n data_tmp._filters_conditions = window.amisConvert.filtersToConditions(data_tmp.filters || []);\n data_tmp.filters = data_tmp._filters_conditions;\n } else {\n data_tmp._filters_function = data_tmp.filters;\n }\n }\n }\n for (key in data_tmp) {\n if (data_tmp[key] === null) {\n delete data_tmp[key];\n }\n }\n payload.data = Object.assign(payload.data, data_tmp);\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$2(){return"\n const recordId = api.body.recordId;\n if (formData._filters_type_controller === 'conditions' && formData._filters_conditions) {\n formData.filters = window.amisConvert.conditionsToFilters(formData.filters);\n } else {\n formData.filters = formData._filters_function || null;\n }\n \n delete formData._filters_type_controller;\n delete formData._filters_conditions;\n delete formData._filters_function;\n \n query = 'mutation{record: ' + objectName + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n };\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}function fieldsExtend$2(){return{filters:{label:"",group:"",visible_on:"true",amis:{type:"condition-builder",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-listviews/getFilterFields?objectName=${targetObjectName}",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}const getSetListviewColumnsButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_columns"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{args:{},dialog:{type:"dialog",title:instance.t("frontend_listview_control_columns"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",layout:"normal",fieldsExtend:fieldsExtend$1(),initApiAdaptor:initApiAdaptor$1(),apiRequestAdaptor:apiRequestAdaptor$1(),fields:["columns","mobile_columns"],onEvent:{submitSucc:{weight:0,actions:[{actionType:"custom",script:"window.location.reload(); //doAction({'actionType': 'rebuild', 'componentId': `service_listview_${event.data.targetObjectName}`})"}]}}}],searchable:!0,showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}});function fieldsExtend$1(){return{columns:{amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}},mobile_columns:{amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor$1(){return"\n const recordId_tmp = api.body.recordId;\n let columns_tmp = {}, mobile_columns_tmp = {};\n if (recordId_tmp) {\n columns_tmp = payload.data.columns;\n mobile_columns_tmp = payload.data.mobile_columns;\n if (columns_tmp) {\n columns_tmp = lodash.map(columns_tmp, 'field');\n }\n if (mobile_columns_tmp) {\n mobile_columns_tmp = lodash.map(mobile_columns_tmp, 'field');\n }\n }\n payload.data.columns = columns_tmp;\n payload.data.mobile_columns = mobile_columns_tmp;\n \n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$1(){return"\n const formData_tmp = api.body.$;\n const objectName_tmp = api.body.objectName;\n const recordId_tmp = api.body.recordId;\n \n if (typeof formData_tmp.columns == 'string') {\n formData_tmp.columns = formData_tmp.columns && formData_tmp.columns.split(',');\n }\n if (typeof formData_tmp.mobile_columns == 'string') {\n formData_tmp.mobile_columns = formData_tmp.mobile_columns && formData_tmp.mobile_columns.split(',');\n }\n \n // 数据格式转换\n formData_tmp.columns = lodash.map(formData_tmp.columns, (item) => {\n return { field: item };\n });\n formData.mobile_columns = lodash.map(formData.mobile_columns, (item) => {\n return { field: item };\n });\n \n let query_tmp = 'mutation{record: ' + objectName_tmp + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query_tmp = 'mutation{record: ' + objectName_tmp + '__update(id: \"' + recordId_tmp +'\", doc: {__saveData}){_id}}';\n };\n delete formData_tmp._id;\n let __saveData_tmp = JSON.stringify(JSON.stringify(formData_tmp));\n api.data = { query: query_tmp.replace('{__saveData}', __saveData_tmp) };\n \n return api;\n "}const getSetListviewSortButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_sort"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_sort"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",className:"",id:"u:061f158b4c5a",mode:"edit",fields:["sort","sort.$.field_name","sort.$.order"],onEvent:{submitSucc:{weight:0,actions:[{actionType:"custom",script:"window.location.reload(); //doAction({'actionType': 'rebuild', 'componentId': `service_listview_${event.data.targetObjectName}`})"}]}},fieldsExtend:fieldsExtend(),initApiAdaptor:initApiAdaptor(),apiRequestAdaptor:apiRequestAdaptor()}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,id:"u:d3f6947b6acf",size:"lg"},actionType:"dialog"}]}}});function fieldsExtend(){return{sort:{label:"",group:"",amis:{type:"tabs-transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/sortFields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor(){return"\n let sort;\n if (recordId) {\n sort = payload.data.sort;\n //数据格式转换\n if (sort instanceof Array) {\n sort = lodash.map(sort, (item) => {\n return item.field_name + ':' + (item.order || 'asc')\n });\n }\n }\n payload.data.sort = sort;\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor(){return"\n const recordId = api.body.recordId;\n //数据格式转换\n if (typeof formData.sort == 'string') {\n formData.sort = formData.sort && formData.sort.split(',');\n }\n formData.sort = lodash.map(formData.sort, (item) => {\n const arr = item.split(':');\n return { field_name: arr[0], order: arr[1] };\n });\n if (recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n }\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}const getDeleteListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_delete_label"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",confirmText:instance.t("frontend_listview_control_delete_confirm_text"),onEvent:{click:{actions:[{actionType:"ajax",args:{api:{url:"${context.rootUrl}/graphql",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{"&":"$$",uiSchema:"${uiSchema}",recordId:"${uiSchema.list_views[listName]._id}"},messages:{success:instance.t("frontend_listview_control_delete_message_success")},requestAdaptor:requestAdaptor(),adaptor:adaptor()}}},{actionType:"url",args:{url:"${context.rootUrl}/app/${appId}/${objectName}/grid/all",blank:!1},expression:"data.delete == 1"},{actionType:"custom",script:"window.location.reload();"}]}}});function requestAdaptor(){return"\n const { recordId } = api.body;\n var deleteArray = [];\n if (recordId) { deleteArray.push(`delete:object_listviews__delete(id: \"${recordId}\")`); }\n api.data = { query: `mutation{${deleteArray.join(',')}}` };\n return api;\n "}function adaptor(){return"\n if (payload.errors) {\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n "}const getSettingListviewToolbarButtonSchema=()=>({type:"dropdown-button",trigger:"click",icon:"fa fa-cog",btnClassName:"antd-Button--iconOnly bg-white !p-2 rounded text-gray-500",align:"right",visibleOn:"${!isLookup && !!isObjectListview}",buttons:[{label:instance.t("frontend_button_listview_control_label"),children:[getNewListviewButtonSchema(),getCopyListviewButtonSchema(),getRenameListviewButtonSchema(),getSetListviewShareButtonSchema(),getSetListviewFiltersButtonSchema(),getSetListviewColumnsButtonSchema(),getSetListviewSortButtonSchema(),getDeleteListviewButtonSchema()]}]}),getDisplayAsButton=function(e,t){let n=Router.getTabDisplayAs(e,t),o=[{type:"button",label:instance.t("frontend_display_type_is_table"),onClick:"const key = 'tab_"+e+'_display\';sessionStorage.setItem(key, \'grid\');let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get("side_object") && urlSearch.get("side_listview_id")){url=`/app/${props.data.appId}/${urlSearch.get("side_object")}/grid/${urlSearch.get("side_listview_id")}`;}; props.env.jumpTo(url + \'?display=grid\');',rightIcon:"split"!=n?"fa fa-check":null,rightIconClassName:"m-l-sm"},{type:"button",label:instance.t("frontend_display_type_is_split"),onClick:"const key = 'tab_"+e+"_display';sessionStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",rightIcon:"split"===n?"fa fa-check":null,rightIconClassName:"m-l-sm"}];return"split"===n?instance.t("frontend_display_type_is_split"):instance.t("frontend_display_type_is_table"),{type:"dropdown-button",icon:"fa fa-table-columns",btnClassName:"antd-Button--iconOnly bg-white !p-2 rounded text-gray-500",align:"right",visibleOn:"${window:innerWidth > 768 && !!!isLookup && !!isObjectListview}",buttons:[{label:instance.t("frontend_display_as"),children:o}]}},onFieldsFilterToggleScript='\nconst scope = event.context.scoped;\nconst filterForm = scope.getComponents().find(function(n){\n return n.props.type === "form";\n});\nconst filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n});\nlet toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;\nfilterService.setData({showFieldsFilter: toShowFieldsFilter});\n//触发amis crud 高度重算\ndoAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed." + event.data.objectName\n },\n "data": {\n "timeOut": 1000\n }\n});\n// 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\nlet crudService = scope.getComponentById("service_listview_" + event.data.objectName);\ncrudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});\n// if(filterService.props.data.showFieldsFilter){\n// if(isMobile){\n// // 手机上只能通过取消按钮来关闭搜索栏\n// return;\n// }\n// let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", { \n// direction: "down", \n// name: "btn_filter_form_cancel" \n// });\n// buttonCancel.props.dispatchEvent(\'click\', {}).then(function(){\n// resizeWindow();\n// });\n// }\n// else{\n// if(isMobile){\n// // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\n// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n// crudService && crudService.setData({showFieldsFilter: true});\n// }\n// }\n';function getObjectHeaderQuickSearchBox(e,t,n,{isLookup:o=!1,keywordsSearchBoxName:r="__keywords"}={}){const a=[];_.each(e.fields,function(t){isFieldQuickSearchable(t,e.NAME_FIELD_KEY)&&a.push(t.label)});const i=location.pathname+"/crud";let s=sessionStorage.getItem(i),l="";s&&!o&&(s=JSON.parse(s),l=s&&s.__keywords||"");const c=`\n const scope = event.context.scoped;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n let __changedSearchBoxValues = {};\n __changedSearchBoxValues["${r}"] = event.data["${r}"];\n // crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});\n // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中\n // crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});\n if(crud){\n let crudData = crud.getData();\n crudData.__changedSearchBoxValues = __changedSearchBoxValues;\n crud.setData(crudData);\n }\n `,d=`\n ${c}\n\n // 下面的脚本只为解决点击搜索表单取消按钮,再重新在其中输入过滤条件但是不点击搜索按钮或回车按键触发搜索,此时在快速搜索框输入过滤条件按回车按键会把搜索表单中的过滤条件清空的问题\n // const scope = event.context.scoped;\n // 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null\n // 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空\n let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");\n if(!filterForm){\n return;\n }\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n setTimeout(function(){\n filterForm && filterForm.setValues(event.data[__changedFilterFormValuesKey]);\n }, 500);\n `;return{type:"tooltip-wrapper",id:"steedos_crud_toolbar_quick_search",align:"right",title:"",content:instance.t("frontend_crud_toolbar_quick_search_tooltip_prefix")+a.join(","),placement:"bottom",tooltipTheme:"dark",trigger:"click",className:"SMALL"!==n?"mr-1":"",visible:!!a.length,body:[{type:"search-box",name:r,placeholder:instance.t("frontend_crud_toolbar_quick_search_placeholder"),value:l,mini:!1,clearable:!0,clearAndSubmit:!0,searchImediately:!1,onEvent:{search:{actions:[{actionType:"custom",script:d}]},change:{actions:[{actionType:"custom",script:c}]}}}]}}function getObjectHeaderToolbar(e,t,n,{showDisplayAs:o=!1,hiddenCount:r=!1,headerToolbarItems:a,filterVisible:i=!0,isLookup:s=!1,keywordsSearchBoxName:l}={}){let c,d;window.innerWidth,r||(c={type:"tpl",align:"left",className:"text-gray-500 mr-2",tpl:"${count} "+instance.t("frontend_record_sum")});let u;d={type:"button",align:"right",tooltipPlacement:"top",className:"bg-white p-2 rounded text-gray-500 list-view-btn-reload "+("SMALL"===n?"hidden":""),label:"",icon:"fa fa-sync",onEvent:{click:{actions:[{actionType:"custom",script:'\n // 触发搜索,而不是reload,因为使用search-box可以在amissdk是3.6.3-patch.8+实现在非第一页的情况下,快速搜索输入框中过滤条件变更时再点刷新可以自动跳转翻页到第一页\n const scope = event.context.scoped;\n const sb = SteedosUI.getClosestAmisComponentByType(scope, "search-box");\n if (sb) {\n const sbValue = sb.state.value;\n sb.handleSearch(sbValue);\n }else{\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n listView.handleChangePage(1);\n }\n \n '}]}}},i&&(u={label:instance.t("frontend_button_search_tooltip"),icon:"fa fa-filter",type:"button",badge:{offset:[-5,1],size:8,animation:!0,visibleOn:"${isFieldsFilterEmpty == false && isLookup != true}"},align:"right",className:"bg-white p-2 rounded text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}},id:"steedos_crud_toolbar_filter"});let f=getDisplayAsButton(e?.name,e?.enable_split),p=getObjectHeaderQuickSearchBox(e,t,n,{isLookup:s,keywordsSearchBoxName:l}),_=[];return"SMALL"===n?(_.push(d),_.push(p),u&&_.push(u),_.push(f),[...a||[],..._]):(u&&_.push(u),_.push(d),_.push(f),e?.permissions?.allowCreateListViews&&_.push(getSettingListviewToolbarButtonSchema()),_.push(p),c&&_.push(c),[...a||[],"bulkActions",..._])}function getObjectFooterToolbar(e,t,n){if("SMALL"===t)return"split"===n.displayAs?[{type:"switch-per-page",visibleOn:"${count >= 20}"},{type:"pagination",maxButtons:5,showPageInput:!1}]:[{type:"pagination",maxButtons:5,showPageInput:!0,layout:"total,pager,go"}];if(n&&n.isRelated)return[{type:"pagination",maxButtons:10,showPageInput:!1}];{const t=e.paging&&!1===e.paging.enabled,o=n.isLookup,r=[{type:"pagination",maxButtons:10,showPageInput:!1}];return t&&o?r:[{type:"switch-per-page",visibleOn:"${count >= 20}"},...r]}}async function getObjectFilter(e,t,n){return{title:"",submitText:"",className:"",debug:!1,mode:"normal",wrapWithPanel:!1,body:[await getObjectListHeaderFieldsFilterBar(e,null,n)],onEvent:{submitSucc:{actions:[{actionType:"custom",script:`\n let isLookup = event.data.isLookup;\n if(isLookup){\n return;\n }\n // 列表搜索栏字段值变更后立刻触发提交表单执行crud搜索,所以这里需要额外重算crud高度及筛选按钮红色星号图标显示隐藏\n //触发amis crud 高度重算\n doAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed.${e.name}"\n },\n "data": {\n "timeOut": 1000\n }\n });\n const scope = event.context.scoped;\n // let filterFormValues = event.data;\n let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");\n // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。\n let filterFormValues = filterFormService.getData();\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中\n // crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n crudService && crudService.setData({isFieldsFilterEmpty});\n `}]},change:{actions:[{actionType:"custom",script:'\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n // let filterFormValues = event.data;\n let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");\n // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。\n let filterFormValues = filterFormService.getData();\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;\n // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n // crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});\n // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中\n // crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n '}]}}}}let UI_SCHEMA_CACHE={},UISchemaFunction;"undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE),UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE);const setUISchemaCache=(e,t)=>{UI_SCHEMA_CACHE[e]=t},getUISchemaCache=e=>_$1.cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>_$1.has(UI_SCHEMA_CACHE,e);function getListViewColumns(e,t){let n=[];return n="SMALL"===t?_$1.isEmpty(e.mobile_columns)?_$1.slice(e.columns,0,4):e.mobile_columns:e.columns,n}function getListViewSort(e){let t="";return e&&e.sort&&e.sort.length&&_$1.each(e.sort,function(e,n){if(_$1.isArray(e)){let o=e[0]+" "+(e[1]||"");o=n>0?","+o:o,t+=o}else{let o=e.field_name+" "+e.order;o=n>0?","+o:o,t+=o}}),t}function getListViewFilter(e){if(e)try{const t=getUserId();let n=e.filters;if("mine"===e.filter_scope)if(_$1__default.default.isEmpty(n))n=[["owner","=",t]];else{if(_$1__default.default.isString(n)&&_$1__default.default.startsWith(_$1__default.default.trim(n),"function")&&(n=new Function(`return ${n}`),n=n()),!_$1__default.default.isArray(n))throw console.debug("listView filters is not array",e),new Error("filters is not array");n.push(["owner","=",t])}return n}catch(e){console.error(e)}}function formatUISchemaCache(objectName,uiSchema){setUISchemaCache(objectName,uiSchema),_$1.each(uiSchema.fields,field=>{try{"lookup"===field.type&&field._reference_to&&_$1__default.default.isString(field._reference_to)&&(field.reference_to=eval(`(${field._reference_to})`)())}catch(e){field.reference_to=void 0,console.error(e)}}),_$1.each(uiSchema.list_views,(e,t)=>{e.name=t,_$1.has(e,"columns")||(e.columns=uiSchema.list_views.all.columns)})}async function getUISchema(e,t,n=!0){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let o=null;try{if(UISchemaFunction);else{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;o=await fetchAPI(t,{method:"get"})}if(!o&&n)return await new Promise(e=>setTimeout(e,3e3)),getUISchema(e,t,!1);if(!o&&0==n)return;formatUISchemaCache(e,o)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}function wait(e){const t=(new Date).getTime();let n=t;for(;n-t<e;)n=(new Date).getTime()}function getUISchemaSync$1(e,t,n=!0){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let o=null;try{const r=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;if(o=Steedos.authRequest(r,{type:"GET",async:!1}),!o&&n)return wait(2e3),getUISchemaSync$1(e,t,!1);if(!o&&0==n)return;formatUISchemaCache(e,o)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}async function getListSchema(e,t,n,o={}){const r=await getUISchema(t);if(!r)return{};const a=_$1.find(r.list_views,(e,t)=>(n||(n=t),t===n||e._id===n));if(!a)return{uiSchema:r};if(a.enable_amis_schema&&a.amis_schema){return{uiSchema:r,isCustomAmisSchema:!0,amisSchema:_$1.isString(a.amis_schema)?JSON.parse(a.amis_schema):a.amis_schema}}let i=getListViewColumns(a,o.formFactor),s=getListViewSort(a),l=getListViewFilter(a),c=a&&a._filters;if("calendar"===a.type){return{uiSchema:r,isCalendar:!0,amisSchema:{type:"steedos-object-calendar",objectApiName:t,filters:l,filtersFunction:c,sort:s,...a.options}}}const d=o.defaults||{};d.headerSchema=null;try{const e=location.pathname+"/crud";let t=sessionStorage.getItem(e);if(t){t=JSON.parse(t);let e={};t.orderBy&&(e.orderBy=t.orderBy),t.orderDir&&(e.orderDir=t.orderDir),t.perPage&&(e.perPage=t.perPage),d.listSchema=_$1.defaultsDeep({},e,d.listSchema||{})}}catch(e){console.error("本地存储中crud参数解析异常:",e)}window.innerWidth>768&&(d.listSchema=_$1.defaultsDeep({},d.listSchema||{},{autoFillHeight:!0})),o.defaults=d,"recent"==n&&(c='\n function(filters, data) {\n var result = Steedos.authRequest(\'/graphql\', {\n type: \'POST\',\n async: false,\n data: JSON.stringify({\n query: \'{object_recent_viewed(filters: [["record.o","=","\' + data.objectName + \'"],["space","=","\' + data.context.tenantId + \'"],["owner","=","\' + data.context.userId + \'"]],sort:"modified desc",top:50){ _id,record} }\'\n }),\n });\n var _ids = []\n result.data.object_recent_viewed.forEach(function (item) {\n _ids = _ids.concat(item.record.ids)\n })\n return ["_id", "=", _ids];\n }\n ');return{uiSchema:r,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:i,extraColumns:a.extra_columns,filters:l,filtersFunction:c,sort:s,ctx:o,requestAdaptor:o.requestAdaptor||a.requestAdaptor,adaptor:o.adaptor||a.adaptor,headerToolbarItems:o.headerToolbarItems,filterVisible:o.filterVisible,rowClassNameExpr:o.rowClassNameExpr,crud:o.crud||a.crud,crudDataFilter:o.crudDataFilter||a.crudDataFilter,onCrudDataFilter:o.onCrudDataFilter}}}async function getSource(e,t){const n=t.objectName;let o=[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],r=o.filter(function(e){return"children"!==e.name}),a=!e.multiple&&e.auto_fill_mapping;a&&a.length&&a.forEach(function(e){"children"!==e.from&&o.push({name:e.from}),r.push({name:e.from})});const i=await getFindQuery({name:n},null,o,{expand:!1,alias:"options",filters:"{__filters}"});i.query=i.query.replace(/,count\:.+/,"}");const s=await getFindQuery({name:n},null,r,{expand:!1,alias:"defaultValueOptions",filters:"{__options_filters}"});s.query=s.query.replace(/,count\:.+/,"}"),i.query=i.query.replace(/}$/,","+s.query.replace(/{(.+)}/,"$1}"));let l=`${e.name}`;e._prefix&&(l=`${e._prefix}${e.name}`),t.fieldNamePrefix&&(l=`${t.fieldNamePrefix}${l}`),i.$value=`$${l}`,i.$="$$";const c=`\n var filters = [['parent', '=', null]];\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${t.valueField}", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [["${t.valueField}", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `;return{method:"post",url:getApi$2(),requestAdaptor:c,adaptor:'\n const data = payload.data;\n data.options = data.options.map(function (optionItem) {\n optionItem.defer = !!(optionItem.children && optionItem.children.length);\n delete optionItem.children;\n return optionItem;\n });\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(data.options, defaultValueOptions, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data = data;\n return payload;\n ',data:i,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getDeferApi(e,t){const n=t.objectName;let o=[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],r=!e.multiple&&e.auto_fill_mapping;r&&r.length&&r.forEach(function(e){"children"!==e.from&&o.push({name:e.from})});const a=await getFindQuery({name:"{__object_name}"},null,o,{expand:!1,alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});let i=e.filters;"string"==typeof i&&(i=new Function(`return ${i}`),i=i()),"function"==typeof i&&(i=i(e)),a.query=a.query.replace(/,count\:.+/,"}");const s=`\n var dep = api.query.dep;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n var sort = "";\n if (dep) {\n objectName = "${n}";\n filters = [['parent', '=', dep]];\n sort = "${t.sort}";\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;return{method:"post",url:getApi$2()+"&dep=${value}",requestAdaptor:s,adaptor:"\n if (api.query.dep) {\n // 展开组织时才需要根据children值设置defer属性\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n ",data:a,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRefListViewSort(e){let t=getLookupListView(e),n="";return t&&(n=getListViewSort(t)),n}async function lookupToAmisTreeSelect(e,t,n){if(!e)return{};n||(n={});const o={type:getAmisStaticFieldType("tree-select",t)};if(t)o.tpl=await getLookupTpl(e,n);else{const t=await getUISchema(n.objectName);n.sort=getRefListViewSort(t),Object.assign(o,{multiple:e.multiple,searchable:e.searchable,extractValue:!0,hideNodePathLabel:!0,clearable:!0,source:await getSource(e,n),deferApi:await getDeferApi(e,n)}),e.multiple&&Object.assign(o,{joinValues:!1}),"boolean"!=typeof o.searchable&&(o.searchable=!0);const r=e.onEvent;r&&(o.onEvent=r)}return o}"undefined"!=typeof window&&(window.getUISchema=getUISchema,window.getUISchemaSync=getUISchemaSync$1,window.getListSchema=getListSchema);const getReferenceToFieldSchema=(e,t)=>{let n=e.reference_to;if(!n)return;if(!t)return null;let o=null,r=e.reference_to_field;return r||(r=t.idFieldName||"_id"),o="_id"===r?{name:"_id",label:"ID",type:"text",toggled:!1}:t.fields[r]||{name:r},{objectName:n,valueField:o,labelField:t.fields[t.NAME_FIELD_KEY||"name"],NAME_FIELD_KEY:t.NAME_FIELD_KEY||"name"}},getReferenceTo=async e=>{"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user");const t=await getUISchema(e.reference_to);return getReferenceToFieldSchema(e,t)};function getReferenceToSync(e){"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user");const t=getUISchemaSync(e.reference_to);return getReferenceToFieldSchema(e,t)}function getLookupSapceUserTreeSchema(e){const t={type:"input-tree",className:"steedos-select-user-tree",inputClassName:"p-0",source:{method:"post",url:"${context.rootUrl}/graphql",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:'\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (currentRecord, records, childrenIds) => {\n if (currentRecord.children && typeof currentRecord.children[0] === "object") {\n // 考虑api配置了cache缓存的话,不会请求接口但是会重新进这个接收适配器脚本且payload.data.options返回的会是上一次计算结果,这里直接返回计算过的children\n return currentRecord.children;\n }\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(item, records, item.children)\n }else{\n item.children = [];\n }\n })\n return children;\n }\n \n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++) {\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++) {\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n \n _.each(records, (record) => {\n if (record.noParent == 1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(record, records, record.children) }));\n }\n });\n console.log(treeRecords)\n \n payload.data.options = treeRecords;\n return payload;\n ',data:{query:'{options:organizations(filters:["hidden", "!=", true],sort:"sort_no desc"){value:_id label:name,parent,children}}'},messages:{},cache:3e5},onEvent:{change:{actions:[{actionType:"custom",script:'\n console.log("lookup-tree-event.data:",event.data);\n console.log("lookup-tree-event.data.value.label:",event.data.value.label);\n console.log("lookup-tree-event.data.value.value:",event.data.value.value);\n const scope = event.context.scoped;\n var treeFilterFormValues={\n "__searchable__organizations_parents":event.data.value.value\n }\n // var listView = scope.parent.getComponents().find(function(n){\n // return n.props.type === "crud";\n // });\n // listView.handleFilterSubmit(Object.assign({}, filterFormValues));\n let __lookupField = event.data.__lookupField;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n var filterForm = scope.getComponents().find(function(n){\n return n.props.type === "form";\n });\n let filterFormValues = filterForm.getData();\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n Object.assign(changedFilterFormValues, treeFilterFormValues);\n // 同步__changedFilterFormValues中的值\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(__lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n filterForm.setData(treeFilterFormValues);\n filterForm.handleFormSubmit(event);\n '},{actionType:"custom",script:" if(window.innerWidth < 768){ document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open'); }"}]}},label:"",mode:"normal",name:"organizations",multiple:!1,joinValues:!1,clearValueOnHidden:!1,fieldName:"organizations",hideRoot:!0,initiallyOpen:!1,extractValue:!0,onlyChildren:!0,treeContainerClassName:"no-border",showIcon:!1,enableNodePath:!1,autoCheckChildren:!1,searchable:!0,searchConfig:{sticky:!0,placeholder:instance.t("frontend_lookup_left_tree_search_organizations")},unfoldedLevel:2,originPosition:"left-top"},n=[];return e?(n.push({type:"action",body:[{type:"action",body:[t],className:"h-full w-[240px]"}],className:"absolute inset-0 steedos-select-user-sidebar",onEvent:{click:{actions:[{actionType:"custom",script:"document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open')"}]}},id:"steedos_crud_toolbar_select_user_tree"}),n.push({type:"button",label:"组织",icon:"fa fa-sitemap",className:"bg-white p-2 rounded border-gray-300 text-gray-500",align:"left",onEvent:{click:{actions:[{actionType:"custom",script:"document.querySelector('.steedos-select-user-sidebar').classList.toggle('steedos-select-user-sidebar-open')"}]}},id:"steedos_crud_toolbar_organization_button"})):n.push(t),n}async function lookupToAmisPicker(e,t,n){let o=await getReferenceTo(e);if(!o)return;const r=await getUISchema(o.objectName);n.idFieldName=r.idFieldName,n.objectName=r.name;const a=!1!==e.show_left_filter;let i=[];const s=[];let l=[];const c=window.innerWidth<768;let d=getLookupListView(r),u=d&&d.name;d&&d.columns?(_$1__namespace.each(d.columns,function(e){_$1__namespace.isString(e)&&r.fields[e]?l.push(r.fields[e]):_$1__namespace.isObject(e)&&r.fields[e.field]&&l.push(Object.assign({},r.fields[e.field],{width:e.width,wrap:e.wrap,amis:e.amis}))}),_$1__namespace.each(d.extra_columns||[],function(e){_$1__namespace.isString(e)?l.push({extra:!0,name:e}):_$1__namespace.isObject(e)&&l.push({extra:!0,name:e.field})})):(_$1__namespace.each(r.fields,(e,t)=>{"_id"==t||e.hidden||(_$1__namespace.has(e,"name")||(e.name=t),l.push(e))}),l=_$1__namespace.sortBy(l,"sort_no").slice(0,5)),_$1__namespace.each(l,function(e){_$1__namespace.find(i,function(t){return t.name===e.name})||i.push(e)});let f=e.auto_fill_mapping;f&&f.length&&f.forEach(function(e){_$1__namespace.find(i,function(t){return t.name===e.from})||i.push(r.fields[e.from])}),_$1__namespace.each(r.fields,function(e){isFieldQuickSearchable(e,r.NAME_FIELD_KEY)&&s.push(e.name)});const p={[o.labelField.name]:o.labelField,[o.valueField.name]:o.valueField};_$1__namespace.each(i,e=>{e.hidden||(p[e.name]=e)});let _=getListViewFilter(d),m=d&&d._filters,h="";d&&(h=getListViewSort(d));const g=await getApi(r,null,p,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});if(g.url&&!n.inFilterForm){const t=[],n=[];_$1__namespace.each(e.depend_on,e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)}),t.length>0&&(g.url=`${g.url}?${t.join("&")}`,g.sendOn=`${n.join(" && ")}`)}g.trackExpression=`\${${e.name}}`,g.data.$term="$term",g.data.$self="$$";let b=`__keywords_lookup__${e.name.replace(/\./g,"_")}__to__${r.name}`;const v=e.filter_form_data;g.requestAdaptor=`\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n let __lookupField = api.data.$self.__lookupField;\n if(__lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n let __changedFilterFormValues = api.data.$self[__changedFilterFormValuesKey] || {};\n let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};\n // 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:\n // 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索\n // 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。\n // 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。\n if(api.data.$self.op !== 'loadOptions'){\n Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);\n }\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n ${_&&!n.inFilterForm?`var filters = ${JSON.stringify(_)};`:"var filters = [];"}\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : "${h}";\n var allowSearchFields = ${JSON.stringify(s)};\n let fieldValue;\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n fieldValue = selfData.value.split(',');\n filters = [["${o.valueField.name}", "=", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [["${o.valueField.name}", "=", fieldValue]];\n }\n }\n\n let filterFormValues = {};\n if (selfData.op !== 'loadOptions'){\n filterFormValues = ${_$1__namespace.isObject(v)?JSON.stringify(v):'"'+v+'"'} || {};\n const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;\n if (isAmisFormula){\n filterFormValues = AmisCore.evaluate(filterFormValues, context) || {};\n }\n if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){\n let fields = api.data.$self.uiSchema && api.data.$self.uiSchema.fields;\n filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(Object.assign({}, { ...filterFormValues }, selfData)) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(${"space_users"===o?.objectName} && ${"user"===e.reference_to_field}){\n if(filters.length > 0){\n filters = [ ["user_accepted", "=", true], "and", filters ]\n }else{\n filters = [["user_accepted", "=", true]];\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n filters.push([key, "contains", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n filters.push([key, "=", keyValue]);\n }\n })\n }\n\n var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.${b}, allowSearchFields);\n if(keywordsFilters && keywordsFilters.length > 0){\n filters.push(keywordsFilters);\n }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n var currentAmis = (window.amisRequire && window.amisRequire('amis')) || Amis;\n //递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析\n function traverseNestedArray(arr) {\n for (let i = 0; i < arr.length; i++) {\n if (Array.isArray(arr[i])) {\n // 如果当前元素是数组,则递归调用自身继续遍历\n traverseNestedArray(arr[i]);\n } else {\n // 如果当前元素不是数组,则处理该元素\n // 下面正则用于匹配amis公式\${}\n if(/\\$\\{([^}]*)\\}/.test(arr[i])) {\n try{\n arr[i] = currentAmis.evaluate(arr[i], api.context);\n }catch(ex){\n console.error("运行lookup过滤公式时出现错误:",ex);\n }\n }\n }\n }\n }\n if(fieldFilters && fieldFilters.length){\n traverseNestedArray(fieldFilters);\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ${n.inFilterForm};\n\n const listviewFiltersFunction = ${m};\n\n if(listviewFiltersFunction && !inFilterForm){\n const _filters0 = listviewFiltersFunction(filters, api.data.$self.__super);\n if(_filters0 && _filters0.length){\n filters.push(_filters0);\n }\n }\n \n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n const enable_tree = ${r.enable_tree};\n if(enable_tree){\n pageSize = 10000;\n }\n if(fieldValue && _.isArray(fieldValue) && fieldValue.length > pageSize){\n pageSize = fieldValue.length;\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `,g.adaptor=`\n const enable_tree = ${r.enable_tree};\n const op = api.data.$self.op;\n if(!_.isEmpty(op)){\n // op不为空,表示处于字段初始编辑状态,不是点击后出现弹窗状态。\n // 这里不可以用_.pick函数让payload只返回labelField和valueField,因为字段上配置的amis autoFill功能可能依赖了其他字段\n /*\n const rows = _.map(payload.data.rows, (item)=>{\n return _.pick(item, ["${o.labelField.name}", "${o.valueField.name}"]);\n })\n payload.data.rows = rows;\n */\n if(enable_tree){\n const rows = _.map(payload.data.rows, (item)=>{\n if (!item.children) {\n return { ...item, children: [] };\n } else {\n return item;\n }\n })\n payload.data.rows = rows;\n }\n return payload;\n }\n if(!payload.data.rows){\n payload.data.rows = [];\n }\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n\n const getParentIds = (records)=>{\n const ids = _.map(records, (item)=>{\n return item._id;\n });\n const parents = _.filter(records,(record)=>{\n return !record.parent || !_.includes(ids,record.parent);\n })\n const parentsIds = _.map(parents,(item)=>{\n return item._id;\n })\n return parentsIds;\n }\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }else{\n item.children = [];\n }\n })\n return children;\n }\n\n const parentIds = getParentIds(records);\n _.each(records, (record)=>{\n if(!record.parent || _.includes(parentIds, record._id)){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n const result = payload.data.rows;\n if(result && result.length){\n const updatedResult = _.map(result, (element) => {\n const data = { ...element };\n // image字段值添加URL前缀\n ${getScriptForAddUrlPrefixForImgFields(_$1__namespace.values(r.fields))}\n return data;\n });\n payload.data.rows = updatedResult;\n }\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n let __lookupField = api.data.$self.__lookupField;\n if(__lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n let __changedFilterFormValues = api.context[__changedFilterFormValuesKey] || {};\n let __changedSearchBoxValues = api.context.__changedSearchBoxValues || {};\n // 列表搜索和快速搜索,有时在某些操作情况下还是会造成crud接口请求使用的过滤条件是上次的,这里强制把正确的过滤条件返回到crud,详细规则见:https://github.com/steedos/steedos-platform/issues/7112\n payload.data[__changedFilterFormValuesKey] = __changedFilterFormValues;\n payload.data.__changedSearchBoxValues = __changedSearchBoxValues;\n return payload;\n `,(e.optionsFunction||e._optionsFunction)&&(g.adaptor=`\n payload.data.rows = eval(${e.optionsFunction||e._optionsFunction})(api.data.$self);\n return payload;\n `);let y=500;r.paging&&!1===r.paging.enabled&&(y=1e3);let E=null;{let t=r.NAME_FIELD_KEY||"name";"organizations"===r.name&&(t="name"),E=await getTableSchema$1(r,i,{labelFieldName:t,top:y,isLookup:!0,enable_tree:r.enable_tree,...n}),E.affixHeader=!1,E.headerToolbar=getObjectHeaderToolbar(r,l,n.formFactor,{isLookup:!0,keywordsSearchBoxName:b}),"space_users"===o.objectName&&"user"===e.reference_to_field&&a&&(E.headerToolbar.push(getLookupSapceUserTreeSchema(c)),E.className=E.className||" steedos-select-user");const s=r.permissions.allowCreate,d=!_$1__namespace.isBoolean(e.create)||e.create;let f=!_$1__namespace.isEmpty(e.filters)||!!e.filtersFunction||!!e._filtersFunction;if(s&&d&&!f){const e=await getSchema$5(r,{appId:n.appId,objectName:r.name,formFactor:n.formFactor});e.align="right",E.headerToolbar.splice(E.headerToolbar.length-1,0,e)}E.footerToolbar=r.enable_tree?[]:getObjectFooterToolbar(r,n.formFactor,{isLookup:!0}),!1!==n.filterVisible&&(E.filter=await getObjectFilter(r,p,{...n,isLookup:!0,keywordsSearchBoxName:b,searchable_fields:e.searchable_fields,auto_open_filter:e.auto_open_filter,show_left_filter:e.show_left_filter,filter_form_data:e.filter_form_data})),E.data=Object.assign({},E.data,{"&":"$$",objectName:r.name,uiSchema:r,listName:u,isLookup:!0,__lookupField:{name:e.name,reference_to:r.name,reference_to_field:e.reference_to_field,filters:e.filters,filtersFunction:e.filtersFunction,_filtersFunction:e._filtersFunction,inFilterForm:n.inFilterForm,listviewFilter:_,listviewFiltersFunction:m}}),E.onEvent||(E.onEvent={}),E.onEvent[`@data.changed.${r.name}`]={actions:[{actionType:"reload"},{actionType:"custom",script:`\n // lookup字段弹出列表,点击新建按钮,新建记录成功后,触发@data.changed.xxx,\n // 此时context.props.data值是lookup字段所在表单数据,经测试多层lookup弹出列表新建记录成功后context.props.data始终取的是最近一层的lookup字段所在表单数据,符合预期\n const masterRecord = context.props.data;//event.data._master && event.data._master.record;\n const fieldConfig = ${JSON.stringify(e)};\n let reference_to = fieldConfig.reference_to;\n let saveValue;\n const newRecord = {\n _id: event.data.result.data.recordId,\n ...event.data.__super.__super\n }\n const saveField = fieldConfig.reference_to_field || '_id';\n const saveFieldValue = newRecord[saveField];\n if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){\n \n const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};\n const baseSaveValue = {\n o: reference_to,\n ids: [saveFieldValue]\n };\n if(fieldValue && fieldValue.o){\n if(fieldValue.o === reference_to){\n saveValue = fieldConfig.multiple ? { o: reference_to, ids: fieldValue.ids.concat(saveFieldValue)} : baseSaveValue;\n }else{\n saveValue = baseSaveValue;\n }\n }else{\n saveValue = baseSaveValue;\n }\n\n }else{\n if(fieldConfig.multiple){\n // const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];\n // 连续新建多个记录时,因为masterRecord获取的主记录不是实时的,所以只会勾选最后一个新建的记录\n // 而下面context.context.component指向的是lookup picker组件,可以直接取到用户实时勾选的记录。\n const fieldValue = context.context.component.props.store.toJSON().selectedItems\n saveValue = fieldValue.concat(saveFieldValue);\n }else{\n saveValue = saveFieldValue;\n }\n }\n \n const ctx = ${JSON.stringify(n)};\n const componentId = ctx.defaults && ctx.defaults.formSchema && ctx.defaults.formSchema.id;\n doAction({\n actionType: 'setValue',\n componentId: componentId, \n args: {\n value: { [fieldConfig.name]: saveValue }\n }\n });\n `}]}}e.pickerSchema&&(E=Object.assign({},E,e.pickerSchema)),"space_users"===o.objectName&&"user"===e.reference_to_field&&c&&(E.headerToolbar=E.headerToolbar&&E.headerToolbar.filter(function(e){return["steedos_crud_toolbar_quick_search","steedos_crud_toolbar_filter","steedos_crud_toolbar_select_user_tree","steedos_crud_toolbar_organization_button"].indexOf(e.id)>-1}),E.footerToolbar=["pagination"]),e.inlineHelpText&&(E.toolbarClassName="hasHelpText",E.headerToolbar=[{type:"tpl",tpl:e.inlineHelpText,className:"text-secondary"},...E.headerToolbar]),E.className=(E.className||"")+" steedos-lookup-crud";const w={type:getAmisStaticFieldType("picker",t),className:n.className||"",modalTitle:instance.t("frontend_form_please_select")+" "+r.label,labelField:o.labelField.name,valueField:o.valueField.name,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || ((this.relatedKey ==='${e.name}') && (${e.multiple} != true)) )`,modalMode:"dialog",source:g,size:"lg",pickerSchema:E,joinValues:!1,extractValue:!0};return e.multiple&&(w.multiple=!0,w.extractValue=!0),t&&(w.tpl=await getLookupTpl(e,n)),w}async function lookupToAmisSelect(e,t,n){let o=await getReferenceTo(e);const r=window.innerWidth<=768,a=o&&o.valueField?.name||"_id";let i,s;const l=o&&await getUISchema(o.objectName);if(o){let t=[Object.assign({},o.labelField,{alias:"label"}),Object.assign({},o.valueField,{alias:"value"})],n=e.auto_fill_mapping;n&&n.length&&n.forEach(function(e){t.push(l.fields[e.from])}),s=await getFindQuery({name:o.objectName},null,t,{expand:!1,alias:"defaultValueOptions",filters:"{__options_filters}",count:!1}),i=await getApi({name:o.objectName},null,t,{expand:!1,alias:"options",queryOptions:'filters: {__filters}, top: {__top}, sort: "{__sort}"'}),i.adaptor='\n const data = payload.data;\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(defaultValueOptions, data.options, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data.options = data.options;\n return payload;\n '}else i={method:"post",data:{$:"$$",query:""},url:"/api/amis/health_check?reload=${additionalFilters|join}&listName=${listName}"};let c=getLookupListView(l),d=getListViewFilter(c),u=c&&c._filters,f="";if(c&&(f=getListViewSort(c)),i.url&&!n.inFilterForm){const t=[],n=[];_$1__namespace.each(e.depend_on,e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)}),t.length>0&&(i.url=`${i.url}&${t.join("&")}`,i.sendOn=`${n.join(" && ")}`)}i.data.$term="$term",i.data.$value=n.isRefToMutiple?`$${e.name}.ids`:`$${e.name}`,_$1__namespace.each(e.depend_on,function(e){i.data[e]=`$${e}`}),i.data.$="$$",i.data.rfield="${object_name}",i.requestAdaptor=`\n ${d&&!n.inFilterForm?`var filters = ${JSON.stringify(d)};`:"var filters = [];"}\n var top = 200;\n if(api.data.$term){\n filters = [["${o?.NAME_FIELD_KEY||"name"}", "contains", api.data.$term]];\n }\n // else if(api.data.$value){\n // filters = [["_id", "=", api.data.$value]];\n // }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n var currentAmis = (window.amisRequire && window.amisRequire('amis')) || Amis;\n //递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析\n function traverseNestedArray(arr) {\n for (let i = 0; i < arr.length; i++) {\n if (Array.isArray(arr[i])) {\n // 如果当前元素是数组,则递归调用自身继续遍历\n traverseNestedArray(arr[i]);\n } else {\n // 如果当前元素不是数组,则处理该元素\n // 下面正则用于匹配amis公式\${}\n if(/\\$\\{([^}]*)\\}/.test(arr[i])) {\n try{\n arr[i] = currentAmis.evaluate(arr[i], api.context);\n }catch(ex){\n console.error("运行lookup过滤公式时出现错误:",ex);\n }\n }\n }\n }\n }\n if(fieldFilters && fieldFilters.length){\n traverseNestedArray(fieldFilters);\n filters.push(fieldFilters);\n }\n\n if(${"space_users"===o?.objectName} && ${"user"===e.reference_to_field}){\n if(filters.length > 0){\n filters = [ ["user_accepted", "=", true], "and", filters ]\n }else{\n filters = [["user_accepted", "=", true]];\n }\n }\n\n const inFilterForm = ${n.inFilterForm};\n\n const listviewFiltersFunction = ${u};\n\n if(listviewFiltersFunction && !inFilterForm){\n const _filters0 = listviewFiltersFunction(filters, api.data.$);\n if(_filters0 && _filters0.length){\n filters.push(_filters0);\n }\n }\n \n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n var sort = "${f}";\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', top).replace('{__sort}', sort.trim());\n\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${a}", optionsFiltersOp, []]];\n if (defaultValue && !api.data.$term) { \n const defaultValueOptionsQueryData = ${JSON.stringify(s)};\n const defaultValueOptionsQuery = defaultValueOptionsQueryData && defaultValueOptionsQueryData.query && defaultValueOptionsQueryData.query.replace(/^{/,"").replace(/}$/,"");\n // 字段值单独请求,没值的时候在请求中返回空\n optionsFilters = [["${a}", optionsFiltersOp, defaultValue]];\n if(filters.length > 0){\n optionsFilters = [filters, optionsFilters];\n }\n if(defaultValueOptionsQuery){\n api.data.query = "{"+api.data.query.replace(/^{/,"").replace(/}$/,"")+","+defaultValueOptionsQuery+"}";\n } \n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `,o&&o.labelField.name,o&&o.valueField.name,e.optionsFunction||e._optionsFunction?i.adaptor=`\n var options = eval(${e.optionsFunction||e._optionsFunction})(api.data.$);\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `:e.options&&(i.adaptor=`\n var options = ${JSON.stringify(e.options)}\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `);const p={type:getAmisStaticFieldType("select",t),joinValues:!1,extractValue:!0,clearable:!0,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || ((this.relatedKey ==='${e.name}') && (${e.multiple} != true)) )`,autoComplete:i,searchable:!0};getComparableAmisVersion()>=3.6&&(p.source=i,delete p.autoComplete);return r&&e.multiple||(p.menuTpl="${icon ? `<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>${label}</span>\n </span>` : label}"),e.multiple&&(p.multiple=!0,p.extractValue=!0),t&&(p.tpl=await getLookupTpl(e,n)),p}async function getApi(e,t,n,o){const r=await getFindQuery(e,t,n,o);return{method:"post",url:getApi$2(),data:r,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getAutoFill(e,t){let n=e.auto_fill_mapping;if(n&&n.length){let o={};return e.multiple?n.forEach(function(e){_$1__namespace.includes(["lookup","master_detail","select"],t.fields[e.from].type)?o[e.to]=`\${items | pick:${e.from}}`:o[e.to]=`\${items | pick:${e.from} | join}`}):n.forEach(function(e){o[e.to]=`\${${e.from}}`}),o}}async function lookupToAmis(e,t,n){if(n||(n={}),t)return e.reference_to&&!e.isTableField?{type:"steedos-field",config:e,static:!0}:{type:getAmisStaticFieldType("picker",t),tpl:getRelatedFieldTpl(e,n)};if(e.reference_to&&!_$1__namespace.isString(e.reference_to)&&!t)return{type:"steedos-field-lookup",field:e,readonly:t,ctx:n};let o=await getReferenceTo(e);if(!o)return await lookupToAmisSelect(e,t,n);if("space_users"===o.objectName&&"user"===e.reference_to_field&&(n=Object.assign({},n,{onlyDisplayLookLabel:!0})).idsDependOn)return await lookupToAmisIdsPicker(e,t,n);const r=await getUISchema(o.objectName);let a,i=_$1__namespace.isBoolean(e.enable_enhanced_lookup)?e.enable_enhanced_lookup:r.enable_enhanced_lookup;getComparableAmisVersion()>=3.6&&!i&&r.enable_tree&&e.multiple&&(i=!0),1==i&&e.amis&&e.amis.type&&"picker"!==e.amis.type&&(i=!1),a=1==i?await lookupToAmisPicker(e,t,n):r.enable_tree?await lookupToAmisTreeSelect(e,t,Object.assign({},n,{labelField:o.labelField?.name||"name",valueField:o.valueField?.name||"_id",objectName:o.objectName})):await lookupToAmisSelect(e,t,n);let s=r.pages&&r.pages.lookup;if(s&&s.is_enable){let e=s.amis_schema;"string"==typeof e&&(e=JSON.parse(e)),a=_$1__namespace.defaultsDeep({},e,a)}const l=await getAutoFill(e,r);return l&&(a.autoFill=l),a}async function lookupToAmisIdsPicker(e,t,n){return getIdsPickerSchema(e,t,n)}async function getIdsPickerSchema(e,t,n){n||(n={});let o=await getReferenceTo(e);if(!o)return;const r=await getUISchema(o.objectName),{idsDependOn:a}=n,i={[o.labelField.name]:o.labelField,[o.valueField.name]:o.valueField},s=[o.labelField],l=await getApi(r,null,i,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});l.data.$term="$term",l.data.$self="$$",a&&l.url&&!n.inFilterForm&&(l.sendOn=`\${${a} && ${a}.length}`,l.url=`${l.url}&depend_on_${a}=\${${a}|join}`);let c=getLookupListView(r),d="";c&&(d=getListViewSort(c)),l.requestAdaptor=`\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 1000;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : "${d}";\n if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n filters = [["${o.valueField.name}", "=", selfData.value.split(',')]];\n }else{\n filters = [["${o.valueField.name}", "=", selfData.value]];\n }\n }\n\n var ids;\n var idsDependOn = "${a}";\n if(idsDependOn){\n ids = api.data.$self[idsDependOn];\n }\n if(ids && ids.length){\n filters.push(["${o.valueField.name}", "=", ids]);\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `;let u=null;"SMALL"===n.formFactor?u=await getListSchema$1(s,{top:1e3,...n,actions:!1}):(u=await getTableSchema$1(r,s,{labelFieldName:r.NAME_FIELD_KEY,top:1e3,isLookup:!0,...n}),u.affixHeader=!1);const f={type:getAmisStaticFieldType("picker",t),labelField:o.labelField.name,valueField:o.valueField.name,modalMode:"dialog",source:l,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || ((this.relatedKey ==='${e.name}') && (${e.multiple} != true)) )`,size:"lg",pickerSchema:u,joinValues:!1,extractValue:!0};return e.multiple&&(f.multiple=!0,f.extractValue=!0),n.value&&(f.value=n.value),null!=n.selectFirst&&(f.selectFirst=n.selectFirst),t&&(f.tpl=await getLookupTpl(e,n)),f}"undefined"!=typeof window&&(window.getReferenceTo=getReferenceTo,window.getReferenceToSync=getReferenceToSync);const getMarkdownFieldSchema=(e,t,n)=>t?{type:"control",label:e.label,body:{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}}:{type:"control",label:e.label,body:[{type:"tabs",tabsMode:"strong",className:"steedos-markdown",tabs:[{title:instance.t("frontend_form_edit"),tab:[{type:"editor",name:e.name,labelClassName:"none",language:"markdown",options:e.amis?e.amis.editorOptions:null}]},{title:instance.t("frontend_form_preview"),tab:[{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}]}]}]},getHtmlFieldSchema=(e,t,n)=>t?{type:"input-rich-text",receiver:"${context.rootUrl}/s3/images",name:e.name,options:{plugins:["autoresize"],statusbar:!1,readonly:!0,toolbar:!1,menubar:!1}}:{type:"input-rich-text",receiver:"${context.rootUrl}/s3/images",options:{statusbar:!1,menubar:!1},name:e.name};function approvalCommentsToAmis(e,t,n){let o={type:"wrapper",className:"instance-sign",body:[{type:"tpl",tpl:`\n \${JOIN(ARRAYMAP(record.approvalCommentsFields["${e.name}"].comments, item => \n '<div class="instance-sign-item' + (item.is_finished ? ' mt-1' : ' text-gray-500 border-l-2 px-1 border-blue-500 ' + (item.isMyApprove ? 'my-approve' : '') + ' not-finished') + '">' + \n '<p class="m-0 p-0">' + (item.isMyApprove ? (instance_my_approve_description || item.description || '') : (item.description || '')) + '</p>' + \n ((item.isMyApprove ? !!(instance_my_approve_description || item.description) : true) ? (item.showApproveSignImage ? item.userSignImage : ('&emsp;&emsp;' + item.handler_name + '&emsp;')) : '') +\n (item.finishDateFormated || '') + \n '</div>'), '') || '&emsp;&emsp;'}\n `,className:"instance-sign-content block m-2.5"}],size:"none"};return{type:"control",label:e.label,body:[o]}}const QUICK_SEARCHABLE_FIELD_TYPES=["text","textarea","autonumber","url","email"],OMIT_FIELDS=["created","created_by","modified","modified_by"];function getObjectFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),o=_$1__namespace.filter(t,function(t){let n=t.name.startsWith(`${e.name}.`)&&_$1__namespace.split(t.name,".").length<3;return n&&(t._prefix=`${e.name}.`),n});return n.subFields=o,n}function getGridFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),o=_$1__namespace.filter(t,function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n});return n.subFields=o,n}function getTabledFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),o=_$1__namespace.filter(t,function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n});return n.subFields=o,n}function getSelectFieldOptions(e){const t=e.data_type||"text",n=[];return _$1__namespace.each(e.options,e=>{switch(t){case"number":n.push({label:e.label,value:Number(e.value),icon:e.icon});break;case"text":n.push({label:e.label,value:String(e.value),icon:e.icon});break;case"boolean":n.push({label:e.label,value:"false"!==e.value,icon:e.icon})}}),n}async function convertSFieldToAmisField(e,t,n){const o=window.innerWidth<=768;if(_$1__namespace.includes(OMIT_FIELDS,e.name)&&1!=n.showSystemFields)return;const r={name:n.fieldNamePrefix?`${n.fieldNamePrefix}${e.name}`:e.name,label:e.label,labelRemark:e.inlineHelpText,description:e.description,required:_$1__namespace.has(n,"required")?n.required:e.required};let a={};switch(e.type){case"text":a.type=getAmisStaticFieldType("text",t,e);break;case"textarea":a.type=getAmisStaticFieldType("textarea",t),a.tpl=`<%=(data.${e.name} || "").split("\\n").join('<br>')%>`;break;case"html":a=getHtmlFieldSchema(e,t);break;case"markdown":a=getMarkdownFieldSchema(e,t);break;case"select":if(t){const t=getSelectMap(e.options);a={type:"static-mapping",name:e.name,label:e.label,options:e.options,map:t}}else{a={type:getAmisStaticFieldType("select",t),joinValues:!1,options:getSelectFieldOptions(e),extractValue:!0,clearable:!0,labelField:"label",valueField:"value"},e.isAmis&&(delete e.mode,a={...a,...e});const n="${icon ? `"+"<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>${label}</span>\n </span>"+"` : label}";o&&e.multiple||(a.menuTpl=n),e.multiple&&(a.multiple=!0,a.extractValue=!0)}break;case"color":a={type:getAmisStaticFieldType("color",t),name:e.name,label:e.label},t?a.defaultColor=null:a.pipeIn=(e,t)=>e&&e.indexOf("#")<0?"#"+e:e;break;case"boolean":a={type:getAmisStaticFieldType("checkbox",t),tpl:t?getSwitchTpl(e):null};break;case"input-date-range":a={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null,joinValues:!1,shortcuts:["thismonth","2monthsago","3monthslater","prevquarter","thisquarter","thisyear","lastYear"]};break;case"date":a={type:getAmisStaticFieldType("date",t),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null};break;case"input-datetime-range":a={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0,joinValues:!1,shortcuts:["thismonth","2monthsago","3monthslater","prevquarter","thisquarter","thisyear","lastYear"]};break;case"datetime":a={type:getAmisStaticFieldType("datetime",t),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:00.000Z",tpl:t?getDateTimeTpl(e):null,utc:!0,closeOnSelect:!1};break;case"input-time-range":a={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null,joinValues:!1};break;case"time":a={type:getAmisStaticFieldType("time",t),inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null};break;case"currency":case"number":a=t?{type:"static-tpl",tpl:getNumberTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"input-array":a=Object.assign({},e,r);break;case"input-range":a={type:"input-range",min:e.min,max:e.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":a=t?{type:"static-progress",name:"progress",pipeIn:(t,n)=>{if(t){return Number((100*t).toFixed(e.scale))}return t}}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale,suffix:"%",pipeIn:(t,n)=>{if(t){return Number((100*t).toFixed(e.scale))}return t},pipeOut:(t,n,o)=>{if(t){return Number((t/100).toFixed(e.scale+2))}return t}};break;case"password":a={type:getAmisStaticFieldType("password",t),tpl:t?getPasswordTpl(e):null};break;case"lookup":case"master_detail":a=await lookupToAmis(e,t,n);break;case"autonumber":t?a={type:"static-text"}:e.autonumber_enable_modify&&(a={type:"input-group",body:[{type:"input-text",name:e.name},{type:"button",label:"自动获取",actionType:"ajax",api:{url:`\${context.rootUrl}/api/autonumber/generator/\${objectName}/${e.name}`,method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:`\n var tempValue = payload.data && payload.data.autonumber;\n delete payload.data.autonumber;\n payload.data["${e.name}"] = tempValue;\n return payload;\n `},messages:{success:"获取成功"}}]});break;case"url":if(a={type:getAmisStaticFieldType("url",t,e),static:!!t},!t){let t=e.amis?.validations;void 0===t&&Object.assign(a,{validations:{matchRegexp:"^((http:\\/\\/|https:\\/\\/|ftp:\\/\\/|sftp:\\/\\/)+([^\\s\\/\\.]+(\\.[^\\s\\/\\.]+)+))*(\\/[^\\s\\.\\/]+)*$"},validationErrors:{matchRegexp:instance.t("frontend_form_validation_failed_url")}})}t&&e.show_as_qr&&(a={type:"control",label:e.label,body:{type:"qr-code",codeSize:128,name:e.name}});break;case"email":a={type:getAmisStaticFieldType("email",t)};break;case"location":let i="LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7",s="baidu";if(window.Meteor){const e=Meteor.settings?.public?.amis?.map_ak;e&&(i=e);const t=Meteor.settings?.public?.amis?.map_vendor;t&&(s=t)}const l=e.coordinatesType||"bd09";a={type:getAmisStaticFieldType("location",t),tpl:t?getLocationTpl(e):null,ak:i,vendor:s,clearable:!0,coordinatesType:l,label:e.label,pipeOut:(e,t,n)=>{if(e){const t=e.lng,n=e.lat;let o=[t,n];if(window.coordtransform)if("bd09"===l.toLowerCase()){const e=window.coordtransform.bd09togcj02(t,n);o=window.coordtransform.gcj02towgs84(e[0],e[1])}else"gcj02"===l.toLowerCase()&&(o=window.coordtransform.gcj02towgs84(t,n));return e.wgs84={type:"Point",coordinates:o},e}}};break;case"avatar":case"image":case"file":a=await getAmisFileSchema(e,t,n);break;case"formula":case"summary":t&&(a={type:"static-tpl",tpl:getUiFieldTpl(e)});break;case"code":a={type:"editor",disabled:!!t,language:e.language,editorDidMount:new Function("editor","monaco",e.editorDidMount)};break;case"toggle":a={type:"switch",name:e.name,label:e.label,width:e.width,toggled:e.toggled,disabled:t};break;case"grid":if(e.subFields){a={type:"input-table",showIndex:!0,columnsTogglable:!1,strictMode:!1,affixHeader:!1,needConfirm:!1,editable:!t,addable:!t,removable:!t,draggable:!t,columns:[]};for(const o of e.subFields){const r=o.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(`${e.name}.`,""),i=await convertSFieldToAmisField(Object.assign({},o,{name:r,isTableField:!0}),t,n);if(i){delete i.name,delete i.label;const e={name:r,label:o.label,quickEdit:!t&&i};["lookup","boolean","toggle"].indexOf(o.type)>-1&&(e.type=i.type,e.tpl=i.tpl),a.columns.push(Object.assign({},e,o.amis,{name:r}))}}}break;case"table":if(e.subFields){a={type:"steedos-input-table",editable:!t,addable:!t,removable:!t,fields:[],amis:{columnsTogglable:!1}};for(const t of e.subFields)if(!t.name.endsWith(".$")){const n=t.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(`${e.name}.`,"");a.fields.push(Object.assign({},t,{name:n}))}}break;case"object":if(e.subFields){a={type:"combo",items:[]};for(let o of e.subFields){let r=o.name.replace(`${e.name}.$.`,"").replace(`${e.name}.`,"");"grid"===o.type?o=await getGridFieldSubFields(o,n.__formFields):"table"===o.type?o=await getTabledFieldSubFields(o,n.__formFields):t&&(r=`${e.name}.${r}`);const i=await convertSFieldToAmisField(Object.assign({},o,{name:r}),t,n);i&&(delete i.name,delete i.label,i.className=i.className.replace("border-b",""),a.items.push(Object.assign({},i,{label:o.label},o.amis,{name:r})))}}break;case"approval_comments":a=approvalCommentsToAmis(e)}if(!_$1__namespace.isEmpty(a)){const o=a.className;e.is_wide||"group"===a.type?a.className=o?"col-span-2 m-0 "+o:"col-span-2 m-0":a.className=o?"m-0 "+o:"m-0",t&&"edit"!==n.mode&&(a.className=`${a.className} border-b`),t&&(a.quickEdit=!1,a.static=!0);let i,s=" steedos-"+a.type+(t?"-readonly":"-edit");return a.className=a.className+s,e.visible_on&&!n.inFilterForm&&(e.visible_on.startsWith("{{")?a.visibleOn=`${e.visible_on.substring(2,e.visible_on.length-2).replace(/formData./g,"data.")}`:a.visibleOn=`${e.visible_on.replace(/formData./g,"data.")}`),n.amisData&&n.amisData._master&&n.amisData._master.relatedKey===e.name&&(a.className=`${a.className||""} hidden`),_$1__namespace.isString(r.required)&&r.required.startsWith("{{")&&(r.requiredOn=`${r.required.substring(2,r.required.length-2).replace(/formData./g,"data.")}`,delete r.required),"group"===a.type?(a.body[0]=Object.assign({},r,a.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name}),a):(i="steedos-field"==a.type?Object.assign({},r,a,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},{name:r.name}):Object.assign({},r,a,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},e.amis,{name:r.name}),t&&"file"==e.type&&(i.name=""),i)}}async function getFieldSearchable(e,t,n){n||(n={});let o=e;"grid"===o.type?o=await getGridFieldSubFields(e,t):"object"===e.type&&(o=await getObjectFieldSubFields(e,t));let r="__searchable__";if(o.name.indexOf(".")<0){let e=_$1.cloneDeep(o);_$1.includes(["textarea","html","code","autonumber"],o.type)&&(e.type="text"),_$1.includes(["formula","summary"],o.type)&&(e.type=o.data_type,e.precision=o.precision,e.scale=o.scale),"number"!==e.type&&"currency"!==e.type||(e.type="input-array",e.inline=!0,e.addable=!1,e.removable=!1,e.value=[null,null],e.items={type:"input-number",clearValueOnEmpty:!0},e.is_wide=!0,r=`${r}between__`),"date"===e.type&&(e.type="input-date-range",e.is_wide=!0,r=`${r}between__`),"datetime"===e.type&&(e.type="input-datetime-range",e.is_wide=!0,r=`${r}between__`),"time"===e.type&&(e.type="input-time-range",e.is_wide=!0,r=`${r}between__`),"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user"),e.readonly=!1,e.disabled=!1,e.multiple=!0,e.is_wide=!1,e.defaultValue=void 0,e.required=!1,e.hidden=!1,e.omit=!1,e.amis&&(delete e.amis.static,delete e.amis.staticOn,delete e.amis.disabled,delete e.amis.disabledOn,delete e.amis.required,delete e.amis.requiredOn,delete e.amis.visible,delete e.amis.visibleOn,delete e.amis.hidden,delete e.amis.hiddenOn,delete e.amis.autoFill,(e.type.indexOf("-range")>-1||"input-array"===e.type)&&delete e.amis.type);const t=await convertSFieldToAmisField(e,!1,Object.assign({},n,{fieldNamePrefix:r,required:!1,showSystemFields:!0,inFilterForm:!0}));if(t)return t}}function isFieldTypeSearchable(e){return!_$1__namespace.includes(["grid","table","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],e)}function isFieldQuickSearchable(e,t){let n=e.searchable;return!1!==n&&e.name===t&&(n=!0),!!(n&&QUICK_SEARCHABLE_FIELD_TYPES.indexOf(e.type)>-1)}"undefined"!=typeof window&&(window.getFieldSearchable=getFieldSearchable),"undefined"!=typeof window&&(window.isFieldTypeSearchable=isFieldTypeSearchable);var asc$1="Asc",cancel$1="Cancel",clear$1="Clear",add$1="New",confirm$1="Confirm",deleteConfirm$1="Are your sure to delete?",deleteFailed$1="Delete failed",desc$1="Desc",fetchFailed$1="Fetch api failed",link$1="Link",loading$1="Loading",networkError$1="Network error or missing CORS configuration",noResult$1="No Result",reset$1="Reset",saveFailed$1="Save failed",saveSuccess$1="Saved successfully",search$1="Search",searchHistory$1="Search History",searchResult$1="Search result",sort$1="Sort",stop$1="Stop",validateFailed$1="Validate failed",reload$1="Reload",rotate$1="Rotate",TimeNow$1="Now",en_us={"Action.countDown":"Wait for ${timeLeft}s","Alert.info":"System Info","App.home":"Home","App.navigation":"Navigation",asc:asc$1,"Calendar.datepicker":"Date Picker","Calendar.yearmonth":"YYYY MM","Calendar.year":"YYYY","Calendar.begin":"begin","Calendar.end":"end","Calendar.beginAndEnd":"b/e","Calendar.toast":"Out of date range","Calendar.startPick":"Select start time","Calendar.endPick":"Select end time",cancel:cancel$1,"Card.dragTip":"Drag top button to sort","Card.toggleDrag":"Toggle drag to sort","City.street":"Enter street info",clear:clear$1,"ColorPicker.placeholder":"Select color","SubForm.add":"New",add:add$1,"Combo.dragDropSort":"Drag to sort","Combo.invalidData":"invalid data, please remove","Combo.maxLength":"Maximum item ia {{MaxLength}}}. Please delete some","Combo.minLength":"A least {{minLength}} item. Please add more","Combo.type":"Type",confirm:confirm$1,"Copyable.tip":"Copy","CRUD.exportCSV":"Export CSV","CRUD.exportExcel":"Export Excel","CRUD.fetchFailed":"Fetch failed","CRUD.filter":"Filter","CRUD.selected":"selected {{total}} items","CRUD.invalidArray":"data.items must be an array","CRUD.invalidData":"data is empty","CRUD.loadMore":"Load more","CRUD.perPage":"Per page","CRUD.stat":"{{page}} of {{lastPage}} total: {{total}}.","CRUD.paginationGoText":"Go to","CRUD.paginationPageText":"page","PaginationWrapper.placeholder":"please config body","Pagination.select":"{{count}} items/page","Pagination.goto":"goto","Pagination.go":"GO","Pagination.totalPage":"total {{lastPage}} pages","Pagination.totalCount":"total {{total}} items","Date.titleYear":"select year","Date.titleMonth":"select month and year","Date.titleDate":"select month, year and day","Date.titleTime":"select time","Date.daysago":"{{days}} day(s) ago","Date.dayslater":"{{days}} day(s) later","Date.endOfMonth":"last day of the month","Date.endOfLastMonth":"last day of last month","Date.endOfWeek":"Saturday","Date.hoursago":"{{hours}} hour(s) ago","Date.hourslater":"{{hours}} hour(s) later","Date.invalid":"Invalid date","Date.monday":"Monday","Date.monthsago":"{{months}} month(s) ago","Date.monthslater":"{{months}} month(s) later","Date.now":"Now","Date.placeholder":"Select Date","Date.quartersago":"{{quarters}} quarter(s) ago","Date.quarterslater":"{{quarters}} quarter(s) later","Date.startOfLastMonth":"First day of the last month","Date.startOfLastQuarter":"First day of the last quarter","Date.startOfMonth":"First day of the month","Date.startOfQuarter":"First day of the quarter","Date.today":"Today","Date.tomorrow":"Tomorrow","Date.weeksago":"{{weeks}} week(s) ago","Date.weekslater":"{{weeks}} week(s) later","Date.yesterday":"Yesterday","dateformat.year":"YYYY","DateRange.daysago":"Last {{days}} day(s)","DateRange.dayslater":"Within {{days}} day(s)","DateRange.weeksago":"Last {{weeks}} week(s)","DateRange.weekslater":"Within {{weeks}} week(s)","DateRange.monthsago":"Last {{months}} month(s)","DateRange.monthslater":"Within {{months}} month(s)","DateRange.quartersago":"Last {{quarters}} quarter(s)","DateRange.quarterslater":"Within {{quarters}} quarter(s)","DateRange.yearsago":"Last {{years}} year(s)","DateRange.yearslater":"Within {{years}} year(s)","DateRange.hoursago":"Last {{hours}} hour(s)","DateRange.hourslater":"Within {{hours}} hour(s)","DateRange.1dayago":"1 day ago","DateRange.1daysago":"1 day ago","DateRange.7daysago":"7 days ago","DateRange.30daysago":"30 days ago","DateRange.90daysago":"90 days ago","DateRange.lastMonth":"Last month","DateRange.lastWeek":"Last week","DateRange.lastQuarter":"Last quarter","DateRange.placeholder":"Select a Date range","YearRange.placeholder":"Select a Year range","DateRange.thisWeek":"This Week","DateRange.thisMonth":"This month","DateRange.thisQuarter":"This quarter","DateRange.thisYear":"This year","DateRange.lastYear":"Last year","DateRange.valueConcat":" to ","DateTime.placeholder":"Select Datetime",delete:"Delete",deleteConfirm:deleteConfirm$1,deleteFailed:deleteFailed$1,desc:desc$1,"Dialog.close":"Close","Dialog.title":"Title","Embed.invalidRoot":"Invalid root selector","Embed.downloading":"Start downloading","Excel.placeholder":"Drag 'n' drop excel here, or click to select","Excel.parsed":"{{filename}} Parsed",fetchFailed:fetchFailed$1,"File.continueAdd":"Continue add","File.downloadTpl":"Download template","File.dragDrop":"Drag 'n' drop some files here or","File.clickUpload":"click here to upload","File.helpText":"Help documentation","File.errorRetry":"File upload failed, please try again","File.failed":"Failed files.","File.invalidType":"{{files}} does not match type `{{accept}}`","File.maxLength":"The maximum limit is {{maxLength}}","File.maxSize":"{{filename}} you selected exceeds the maximum limit of {{maxsize}} (in bytes)","File.pause":"Pause uplaod","File.repick":"Repick","File.result":"Successfully uploaded {{uploaded}} files, failed to upload {{failed}} files","File.retry":"Retry","File.sizeLimit":"The maximum file size is {{maxSize}}","File.start":"Start upload","File.upload":"Upload","Image.upload":"Upload image","File.uploadFailed":"return data of udpload api is empty","File.uploading":"Uploading","FormItem.autoFillLoadFailed":"return data of autoUpdate api is error","FormItem.autoFillSuggest":"Reference data entry","Form.loadOptionsFailed":"Failed to load options because: {{reason}}","Form.submit":"Submit","Form.title":"Form","Form.unique":"Current value is not unique","Form.validateFailed":"Form input validation failed","Form.nestedError":"Form cannot appear as a descendant of form","Image.configError":"Can only set one of crop or multiple","Image.crop":"Crop image","Image.dragDrop":"Drag 'n' drop some photos here","Image.height":"height: {{height}}px","Image.limitMax":"Minimum image size is {{info}}","Image.limitMin":"Maximum image size is {{info}}","Image.limitRatio":"Please upload image with the size ratio of {{ration}}","Image.pasteTip":"You can paste image from the clipboard","Image.placeholder":"Click to select image or drag into this area","Image.size":"size: ({{width}}px x {{height}}px)","Image.sizeNotEqual":"The image you selected does not meet the size requirements {{info}}","Image.width":"width: {{width}}px","Image.zoomIn":"Zoom In","Log.mustHaveSource":"Must have source in config","Log.showLineNumber":"Display line number","Log.notShowLineNumber":"Hide line number","Log.expand":"Expand Operation","Log.collapse":"Collapse Operation",link:link$1,loading:loading$1,"LocationPicker.placeholder":"Pick location","Month.placeholder":"Select a month","Nav.sourceError":"Fetch link error",networkError:networkError$1,noResult:noResult$1,"NumberInput.placeholder":"Please enter a number","Options.addPlaceholder":"Please enter a name","Options.deleteAPI":"Must have deleteAPI","Options.editLabel":"Edit {{label}}","Options.label":"option","Options.createFailed":"create failed, please check","placeholder.empty":"<Empty>","placeholder.enter":"Enter","placeholder.noData":"No data","placeholder.noOption":"No option","placeholder.selectData":"Select data","Quarter.placeholder":"Select a quarter","Repeat.pre":"Per",reset:reset$1,saveFailed:saveFailed$1,saveSuccess:saveSuccess$1,search:search$1,searchHistory:searchHistory$1,searchResult:searchResult$1,"Checkboxes.selectAll":"Select/Deselect All","Select.checkAll":"Check all","Select.clear":"Clear","Select.upload":"Re upload","Select.clearAll":"Clear all","Select.createLabel":"New option","Select.placeholder":"Select","Select.searchPromptText":"Input to search",sort:sort$1,stop:stop$1,"SubForm.button":"Config","SubForm.editDetail":"Edit Detail","System.error":"System error","System.notify":"System notify","System.copy":"Content copied","System.requestError":"Request error: ","System.requestErrorStatus":"Request error, status code: ","Table.addRow":"Add row","Table.copyRow":"Copy row","Table.columnsVisibility":"Click to control columns visibility","Table.deleteRow":"Delete current row","Table.discard":"Discard","Table.dragTip":"Drag the button on the left to sort","Table.editing":"You should finished editing","Table.editRow":"Edit current row","Table.modified":"There are {{modified}} records have been modified, you can:","Table.moved":"There are {{moved}} records changed the order, you can:","Table.operation":"Operation","Table.playload":"Must have playload","Table.startSort":"Click to start sorting","Table.valueField":"Must have valueField","Table.index":"Index","Table.toggleColumn":"Display columns","Table.searchFields":"Set query fields","Tag.placeholder":"No tag yet","Tag.tip":"Recently used tag","Text.add":"New {{label}}","Time.placeholder":"Select Time","Transfer.configError":"Config error","Transfer.refreshIcon":"Click to refresh","Transfer.searchKeyword":"Enter keywords","Transfer.available":"Available","Transfer.selectd":"Selected","Transfer.selectFromLeft":"Select from the left","Tree.addChild":"Add child","Tree.addRoot":"Add root node","Tree.editNode":"Edit this node","Tree.removeNode":"Remove this node","Tree.root":"Root","validate.equals":"value must be $1","validate.equalsField":"value must be $1","validate.gt":"Please enter a value greater than $1","validate.isAlpha":"Please enter letters","validate.isAlphanumeric":"Please enter letters or numbers","validate.isEmail":"Email format is incorrect","validate.isFloat":"Please enter a floating point value","validate.isId":"invalid ID Card number","validate.isInt":"Please enter an integer number","validate.isJson":"invalid JSON format.","validate.isLength":"Please make sure the length of contents is $1","validate.isNumeric":"Please enter a number","validate.isPhoneNumber":"invalid phone number","validate.isRequired":"This is required","validate.isTelNumber":"invalid telephone number","validate.isUrl":"Incorrect URL format","validate.isUrlPath":"You can only enter letters, numbers, `-` and`_` .","validate.isWords":"Please enter word","validate.isZipcode":"invalid postal address","validate.lt":"Please enter a value less than $1","validate.matchRegexp":"The format is not correct. Please enter the content with the rule `${1| raw}`.","validate.maximum":"The input value exceeds the maximum value of $1","validate.maxLength":"Please control the content length, do not enter more than $1 letters","validate.minimum":"The input value is lower than the minimum value of $1","validate.minLength":"Please enter more, at least $1 characters.","validate.notEmptyString":"Please do not enter all blank characters",validateFailed:validateFailed$1,"Wizard.configError":"Config error","Wizard.finish":"Finish","Wizard.next":"Next","Wizard.prev":"Prev","Wizard.saveAndNext":"Save & Next","year-to-year":"{{from}} - {{to}}","Year.placeholder":"Select a Year",reload:reload$1,rotate:rotate$1,"Editor.fullscreen":"full screen","Editor.exitFullscreen":"exit fullscreen mode","Condition.not":"not","Condition.and":"and","Condition.or":"or","Condition.add_cond":"add condition","Condition.add_cond_group":"add condition group","Condition.delete_cond_group":"delete condition group","Condition.equal":"equal","Condition.not_equal":"not equal","Condition.less":"less","Condition.less_or_equal":"less or equal","Condition.greater":"greater","Condition.greater_or_equal":"greater or equal","Condition.between":"between","Condition.not_between":"not between","Condition.is_empty":"empty","Condition.is_not_empty":"not empty","Condition.like":"contains","Condition.not_like":"not contains","Condition.starts_with":"starts with","Condition.ends_with":"ends with","Condition.select_equals":"equals","Condition.select_not_equals":"not equal","Condition.select_any_in":"contains","Condition.select_not_any_in":"not contains","Condition.placeholder":"Please enter text","Condition.cond_placeholder":"select condition","Condition.field_placeholder":"select field","Condition.blank":"blank","Condition.expression":"expression","Condition.formula_placeholder":"Please enter a formula","Condition.fun_error":"Function is undefined","InputTable.uniqueError":"Column `{{label}}` unique validate failed","Timeline.collapseText":"Unfold","Timeline.expandText":"Fold","FormulaEditor.btnLabel":"Formula Edit","FormulaEditor.title":"Formula Editor","FormulaEditor.variable":"Variable","FormulaEditor.function":"Function","FormulaEditor.invalidData":"invalid data, position or reason is {{err}}","pullRefresh.pullingText":"Pull down to refresh...","pullRefresh.loosingText":"Release to refresh...","pullRefresh.loadingText":"Loading...","pullRefresh.successText":"Loading success","Picker.placeholder":"Click icon on the right","UserSelect.edit":"edit","UserSelect.save":"preservation","UserSelect.resultSort":"Select result sort","UserSelect.selected":"Selected","UserSelect.clear":"empty","SchemaType.string":"String","SchemaType.number":"Number","SchemaType.integer":"integer","SchemaType.object":"Object","SchemaType.array":"Array","SchemaType.boolean":"Boolean","SchemaType.any":"Any","SchemaType.null":"Null","JSONSchema.title":"Title","JSONSchema.default":"Default","JSONSchema.description":"Description","JSONSchema.key":"Key","JSONSchema.array_items":"Items",TimeNow:TimeNow$1},asc="正序",Schedule="日程",Time="时间",Content="内容",cancel="取消",clear="清空",add="新增",confirm="确认",deleteConfirm="确认要删除?",deleteFailed="删除失败",desc="降序",fetchFailed="初始化失败",link="链接",loading="加载中",networkError="网络错误,可能是未配置跨域 CORS",noResult="未找到任何结果",reset="重置",saveFailed="保存失败",saveSuccess="保存成功",search="搜索",searchHistory="搜索历史",searchResult="搜索结果",stop="停止",sort="排序",validateFailed="表单验证失败",reload="刷新",rotate="旋转",collapse="展开",expand="折叠",Required="必填",TimeNow="此刻",zh_cn={"Action.countDown":"请等待 ${timeLeft} 秒","Alert.info":"系统消息","App.home":"首页","App.navigation":"导航",asc:asc,"Calendar.datepicker":"日期选择","Calendar.yearmonth":"YYYY年MM月","Calendar.year":"YYYY年","Calendar.begin":"开始","Calendar.end":"结束","Calendar.beginAndEnd":"始/终","Calendar.toast":"超出日期范围","Calendar.startPick":"开始时间","Calendar.endPick":"结束时间",Schedule:Schedule,Time:Time,Content:Content,cancel:cancel,"Card.dragTip":"请拖动顶部的按钮进行排序","Card.toggleDrag":"对卡片进行排序操作","City.street":"请输入街道信息",clear:clear,"ColorPicker.placeholder":"请选择颜色","SubForm.add":"新增一项",add:add,"Combo.dragDropSort":"拖拽排序","Combo.invalidData":"数值格式不正确","Combo.maxLength":"组合表单超出{{maxLength}}个,请删除","Combo.minLength":"组合表单数量不足{{minLength}}个,请添加更多","Combo.type":"类型",confirm:confirm,"Copyable.tip":"点击复制","CRUD.exportCSV":"导出 CSV","CRUD.exportExcel":"导出 Excel","CRUD.fetchFailed":"获取失败","CRUD.filter":"筛选","CRUD.selected":"已选{{total}}条:","CRUD.invalidArray":"data.items 必须是数组","CRUD.invalidData":"返回数据格式不正确,data 没有数据","CRUD.loadMore":"加载更多","CRUD.perPage":"每页显示","CRUD.stat":"{{page}}/{{lastPage}} 总共:{{total}} 项","CRUD.paginationGoText":"前往","CRUD.paginationPageText":"页","PaginationWrapper.placeholder":"请配置内容","Pagination.select":"{{count}} 条/页","Pagination.goto":"跳转至","Pagination.go":"跳转","Pagination.totalPage":"共 {{lastPage}} 页","Pagination.totalCount":"共 {{total}} 条","Date.titleYear":"选择年","Date.titleMonth":"选择年月","Date.titleDate":"选择年月日","Date.titleTime":"选择时间","Date.daysago":"{{days}}天前","Date.dayslater":"{{days}}天后","Date.endOfMonth":"本月最后一天","Date.endOfWeek":"周日","Date.endOfLastMonth":"上月最后一天","Date.hoursago":"{{hours}}小时前","Date.hourslater":"{{hours}}小时后","Date.invalid":"日期无效","Date.monday":"本周一","Date.monthsago":"{{months}}月前","Date.monthslater":"{{months}}月后","Date.now":"现在","Date.placeholder":"请选择日期","Date.quartersago":"{{quarters}}季度前","Date.quarterslater":"{{quarters}}季度后","Date.startOfLastMonth":"上个月第一天","Date.startOfLastQuarter":"上个季度第一天","Date.startOfMonth":"本月第一天","Date.startOfQuarter":"本季度第一天","Date.today":"今天","Date.tomorrow":"明天","Date.weeksago":"{{weeks}}周前","Date.weekslater":"{{weeks}}周后","Date.yesterday":"昨天","dateformat.year":"YYYY年","DateRange.daysago":"最近{{days}}天","DateRange.dayslater":"{{days}}天以内","DateRange.weeksago":"最近{{weeks}}周","DateRange.weekslater":"{{weeks}}周以内","DateRange.monthsago":"最近{{months}}月","DateRange.monthslater":"{{months}}月以内","DateRange.quartersago":"最近{{quarters}}季度","DateRange.quarterslater":"{{quarters}}季度以内","DateRange.yearsago":"最近{{years}}年","DateRange.yearslater":"{{years}}年以内","DateRange.hoursago":"最近{{hours}}小时","DateRange.hourslater":"{{hours}}小时以内","DateRange.1daysago":"最近1天","DateRange.1dayago":"最近1天","DateRange.7daysago":"最近7天","DateRange.30daysago":"最近30天","DateRange.90daysago":"最近90天","DateRange.lastWeek":"上周","DateRange.lastMonth":"上个月","DateRange.lastQuarter":"上个季度","DateRange.placeholder":"请选择日期范围","DateRange.thisWeek":"这个周","DateRange.thisMonth":"这个月","DateRange.thisQuarter":"这个季度","DateRange.valueConcat":" 至 ","DateTime.placeholder":"请选择日期以及时间","MonthRange.placeholder":"请选择月份范围","QuarterRange.placeholder":"请选择季度范围","YearRange.placeholder":"请选择年份范围","DateRange.thisYear":"今年","DateRange.lastYear":"去年",delete:"删除",deleteConfirm:deleteConfirm,deleteFailed:deleteFailed,desc:desc,"Dialog.close":"关闭","Dialog.title":"弹框","Embed.invalidRoot":"选择器不对,页面上没有此元素","Embed.downloading":"文件即将开始下载","Excel.placeholder":"拖拽 Excel 到这,或点击上传","Excel.parsed":"已解析 {{filename}}",fetchFailed:fetchFailed,"File.continueAdd":"继续添加","File.downloadTpl":"下载模板","File.dragDrop":"将文件拖到此处,或","File.clickUpload":"点击上传","File.helpText":"帮助文档","File.errorRetry":"文件上传失败请重试","File.failed":"失败文件","File.invalidType":"{{files}} 不符合类型的 {{accept}} 的设定,请仔细检查","File.maxLength":"最多上传 {{maxLength}} 个文件","File.maxSize":"{{filename}} 大小为 {{actualSize}} 超出了最大为 {{maxSize}} (字节)的限制","File.pause":"暂停上传","File.repick":"重新选择","File.result":"已成功上传 {{uploaded}} 个文件,{{failed}} 个文件上传失败,","File.retry":"重试上传","File.sizeLimit":"文件大小不超过 {{maxSize}}","File.start":"开始上传","File.upload":"文件上传","Image.upload":"图片上传","File.uploadFailed":"接口返回错误,请仔细检查","File.uploading":"上传中...","FormItem.autoFillLoadFailed":"接口返回错误,请仔细检查","FormItem.autoFillSuggest":"参照录入数据","Form.loadOptionsFailed":"加载选项失败,原因:{{reason}}","Form.submit":"提交","Form.title":"表单","Form.unique":"当前值不唯一","Form.validateFailed":"依赖的部分字段没有通过验证","Form.nestedError":"表单不要直接嵌套在表单下面","Image.configError":"图片多选配置和裁剪配置只能设置一个","Image.crop":"裁剪图片","Image.dragDrop":"将图片拖拽到此处","Image.height":"高度 {{height}}px","Image.limitRatio":"请上传尺寸比率为 {{ratio}} 的图片","Image.pasteTip":"可以粘贴剪切板中的图片","Image.placeholder":"点击选择图片或拖拽图片到这里","Image.size":"尺寸({{width}} x {{height}})","Image.sizeMax":"请上传不要大于{{info}}的图片","Image.sizeMin":"请上传不要小于{{info}}的图片","Image.sizeNotEqual":"请上传{{info}}的图片","Image.width":"宽度 {{width}}px","Image.zoomIn":"查看大图","Image.limitMax":"上传图片大于{{info}},请检查图片尺寸","Image.limitMin":"上传图片小于{{info}},请检查图片尺寸","Log.mustHaveSource":"需要配置 Source","Log.showLineNumber":"显示行数","Log.notShowLineNumber":"不现实行数","Log.expand":"展开工具栏","Log.collapse":"收起工具栏",link:link,loading:loading,"LocationPicker.placeholder":"请选择位置","Month.placeholder":"请选择月份","Nav.sourceError":"获取链接错误",networkError:networkError,noResult:noResult,"NumberInput.placeholder":"请输入数字","Options.addPlaceholder":"请输入名称","Options.deleteAPI":"必须设置 deleteAPI","Options.editLabel":"编辑{{label}}","Options.label":"选项","Options.createFailed":"新增失败,请仔细检查","placeholder.empty":"<空>","placeholder.enter":"请输入","placeholder.noData":"暂无数据","placeholder.noOption":"暂无选项","placeholder.selectData":"请先选择数据","Quarter.placeholder":"请选择季度","Repeat.pre":"每",reset:reset,saveFailed:saveFailed,saveSuccess:saveSuccess,search:search,searchHistory:searchHistory,searchResult:searchResult,stop:stop,"Checkboxes.selectAll":"全选/不选","Select.checkAll":"全选","Select.clear":"移除","Select.upload":"重新上传","Select.clearAll":"移除所有","Select.createLabel":"新增选项","Select.placeholder":"请选择","Select.searchPromptText":"搜索",sort:sort,"SubForm.button":"设置","SubForm.editDetail":"编辑详情","System.error":"系统错误","System.notify":"系统消息","System.copy":"内容已复制到粘贴板","System.requestError":"接口报错:","System.requestErrorStatus":"接口出错,状态码是:","Table.addRow":"新增一行","Table.copyRow":"复制一行","Table.columnsVisibility":"点击选择显示列","Table.deleteRow":"删除当前行","Table.discard":"放弃","Table.dragTip":"请拖动左边的按钮进行排序","Table.editing":"请先处理表格编辑项","Table.editRow":"编辑当前行","Table.modified":"当前有 {{modified}} 条记录修改但没有提交,你可以:","Table.moved":"当前有 {{moved}} 条记录修改了顺序但没有提交,你可以:","Table.operation":"操作","Table.playload":"action 上请配置 payload, 否则不清楚要删除哪个","Table.startSort":"点击开始排序","Table.valueField":"请配置 valueField","Table.index":"序号","Table.toggleColumn":"显示列","Table.searchFields":"设置查询字段","Tag.placeholder":"请输入/选择标签","Tag.tip":"最近使用的标签","Text.add":"新增:{{label}}","Time.placeholder":"请选择时间","Transfer.configError":"配置错误,选项无法与左侧选项对应","Transfer.refreshIcon":"点击刷新重新加载","Transfer.searchKeyword":"请输入关键字","Transfer.available":"可选项","Transfer.selectd":"已选项","Transfer.selectFromLeft":"请选择左侧数据","Tree.addChild":"添加子节点","Tree.addRoot":"添加一级节点","Tree.editNode":"编辑该节点","Tree.removeNode":"移除该节点","Tree.root":"顶级","validate.equals":"输入的数据与 $1 不一致","validate.equalsField":"输入的数据与 $1 值不一致","validate.gt":"请输入大于 $1 的值","validate.isAlpha":"请输入字母","validate.isAlphanumeric":"请输入字母或者数字","validate.isEmail":"Email 格式不正确","validate.isFloat":"请输入浮点型数值","validate.isId":"请输入合法的身份证号","validate.isInt":"请输入整型数字","validate.isJson":"JSON 格式不正确","validate.isLength":"请输入长度为 $1 的内容","validate.isNumeric":"请输入数字","validate.isPhoneNumber":"请输入合法的手机号码","validate.isRequired":"这是必填项","validate.isTelNumber":"请输入合法的电话号码","validate.isUrl":"URL 格式不正确","validate.isUrlPath":"只能输入字母、数字、`-` 和 `_`.","validate.isWords":"请输入单词","validate.isZipcode":"请输入合法的邮编地址","validate.lt":"请输入小于 $1 的值","validate.matchRegexp":"格式不正确, 请输入符合规则为 `${1|raw}` 的内容。","validate.maximum":"当前输入值超出最大值 $1","validate.maxLength":"请控制内容长度, 不要输入 $1 个以上字符","validate.minimum":"当前输入值低于最小值 $1","validate.minLength":"请输入更多的内容,至少输入 $1 个字符。","validate.notEmptyString":"请不要全输入空白字符",validateFailed:validateFailed,"Wizard.configError":"配置错误","Wizard.finish":"完成","Wizard.next":"下一步","Wizard.prev":"上一步","Wizard.saveAndNext":"保存并下一步","year-to-year":"{{from}} 年 - {{to}} 年","Year.placeholder":"请选择年",reload:reload,rotate:rotate,"Editor.fullscreen":"全屏","Editor.exitFullscreen":"退出全屏","Condition.not":"非","Condition.and":"并","Condition.or":"或","Condition.add_cond":"添加条件","Condition.add_cond_group":"添加条件组","Condition.delete_cond_group":"删除组","Condition.equal":"等于","Condition.not_equal":"不等于","Condition.less":"小于","Condition.less_or_equal":"小于或等于","Condition.greater":"大于","Condition.greater_or_equal":"大于或等于","Condition.between":"属于范围","Condition.not_between":"不属于范围","Condition.is_empty":"为空","Condition.is_not_empty":"不为空","Condition.like":"模糊匹配","Condition.not_like":"不匹配","Condition.starts_with":"匹配开头","Condition.ends_with":"匹配结尾","Condition.select_equals":"等于","Condition.select_not_equals":"不等于","Condition.select_any_in":"包含","Condition.select_not_any_in":"不包含","Condition.placeholder":"请输入文本","Condition.cond_placeholder":"请选择操作","Condition.field_placeholder":"请选择字段","Condition.blank":"空","Condition.expression":"表达式","Condition.formula_placeholder":"请输入公式","Condition.fun_error":"方法未定义","InputTable.uniqueError":"列`{{label}}`没有通过唯一验证","Timeline.collapseText":"展开","Timeline.expandText":"折叠",collapse:collapse,expand:expand,"FormulaEditor.btnLabel":"公式编辑","FormulaEditor.title":"公式编辑器","FormulaEditor.variable":"变量","FormulaEditor.function":"函数","FormulaEditor.invalidData":"公式值校验错误,错误的位置/原因是 {{err}}","pullRefresh.pullingText":"下拉即可刷新...","pullRefresh.loosingText":"释放即可刷新...","pullRefresh.loadingText":"加载中...","pullRefresh.successText":"加载成功","Picker.placeholder":"请点击右侧的图标","UserSelect.edit":"编辑","UserSelect.save":"保存","UserSelect.resultSort":"选择结果排序","UserSelect.selected":"已选","UserSelect.clear":"清空","SchemaType.string":"文本","SchemaType.number":"数字","SchemaType.integer":"整数","SchemaType.object":"对象","SchemaType.array":"数组","SchemaType.boolean":"布尔","SchemaType.null":"Null","SchemaType.any":"任意","JSONSchema.title":"名称","JSONSchema.default":"默认值","JSONSchema.key":"字段名","JSONSchema.description":"描述","JSONSchema.add_prop":"添加属性","JSONSchema.array_items":"成员类型",Required:Required,TimeNow:TimeNow};const resourcesMap={"en-US":en_us,"zh-CN":zh_cn},getUserLanguage=()=>{var e=Builder.settings.context?.user?.language||window.navigator.language;return"en"===e&&(e="en-US"),e};var locale="zh-CN";function getAmisLocaleResource(){var e=resourcesMap[locale];return e||resourcesMap["zh-CN"]}if("undefined"!=typeof window&&(locale=getUserLanguage()),"undefined"!=typeof window){var currentAmis=window.amisRequire&&window.amisRequire("amis")||Amis;currentAmis&&currentAmis.registerLocale(locale,getAmisLocaleResource())}function Inbox(e){var t=e.className,n=e.onClick,o=__rest(e,["className","onClick"]),r=useInboxNotificationsSuspense().inboxNotifications;return 0===r.length?React__default.default.createElement("div",{className:clsx(t,"empty")},instance.t("liveblocks:frontend_inbox_empty")):React__default.default.createElement("div",__assign({className:t},o),React__default.default.createElement(InboxNotificationList,{className:"inbox-list"},r.map(function(e){return React__default.default.createElement(InboxNotification,{key:e.id,inboxNotification:e,onClick:n})})))}function InboxPopoverUnreadCount(){var e=useUnreadInboxNotificationsCountSuspense().count;return e?React__default.default.createElement("div",{className:"inbox-unread-count"},e):null}function AmisInboxPopover(e){var t=e.className,n=__rest(e,["className"]),o=__read(React.useState(!1),2),r=o[0],a=o[1],i=useMarkAllInboxNotificationsAsRead(),s=useDeleteAllInboxNotifications();return React__default.default.createElement(Root2$1,{open:r,onOpenChange:a},React__default.default.createElement(Trigger,{className:clsx(t,"inbox-button square")},React__default.default.createElement(ErrorBoundary,{fallback:null},React__default.default.createElement(ClientSideSuspense,{fallback:null},React__default.default.createElement(InboxPopoverUnreadCount,null))),React__default.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",width:"20",height:"20"},React__default.default.createElement("path",{"fill-rule":"evenodd",d:"M12 2.25c-2.429 0-4.817.178-7.152.521C2.87 3.061 1.5 4.795 1.5 6.741v6.018c0 1.946 1.37 3.68 3.348 3.97.877.129 1.761.234 2.652.316V21a.75.75 0 0 0 1.28.53l4.184-4.183a.39.39 0 0 1 .266-.112c2.006-.05 3.982-.22 5.922-.506 1.978-.29 3.348-2.023 3.348-3.97V6.741c0-1.947-1.37-3.68-3.348-3.97A49.145 49.145 0 0 0 12 2.25ZM8.25 8.625a1.125 1.125 0 1 0 0 2.25 1.125 1.125 0 0 0 0-2.25Zm2.625 1.125a1.125 1.125 0 1 1 2.25 0 1.125 1.125 0 0 1-2.25 0Zm4.875-1.125a1.125 1.125 0 1 0 0 2.25 1.125 1.125 0 0 0 0-2.25Z","clip-rule":"evenodd"}))),React__default.default.createElement(Portal$1,null,React__default.default.createElement(Content2$2,__assign({className:"inbox",collisionPadding:16,sideOffset:8},n),React__default.default.createElement("div",{className:"inbox-header"},React__default.default.createElement("span",{className:"inbox-title"},instance.t("liveblocks:frontend_comment_inbox")),React__default.default.createElement("div",{className:"inbox-buttons"},React__default.default.createElement("button",{className:"inbox-button",onClick:i},instance.t("liveblocks:frontend_mark_all_read")),React__default.default.createElement("button",{className:"inbox-button destructive",onClick:s},instance.t("liveblocks:frontend_delete_all")))),React__default.default.createElement(ErrorBoundary,{fallback:React__default.default.createElement("div",{className:"error"},instance.t("liveblocks:frontend_fallback_error"))},React__default.default.createElement(ClientSideSuspense,{fallback:React__default.default.createElement(Loading,null)},React__default.default.createElement(Inbox,{onClick:function(e){console.log("clicked"),a(!1)}}))))))}instance.addResources("en","liveblocks",en_us$2),instance.addResources("zh-CN","liveblocks",zh_cn$2);var AmisRoomsProvider=function(e){var t,n=e.data,o=e.baseUrl,r=e.children,a=e.body,i=e.render,s=e.readonly,l=void 0!==s&&s,c=__read(React.useState(null),2),d=c[0],u=c[1],f=o||(null===(t=n.context)||void 0===t?void 0:t.rootUrl)||"".concat(window.location.protocol,"//").concat(window.location.host);console.log("liveblocks baseUrl:",f);var p=useTranslation(),_=p.i18n;p.t;var m=_.language,h=instance.getResourceBundle(m,"liveblocks")||{},g=__assign({locale:m},h),b=g.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented||"commented",v=g.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in||"in",y=g.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread||"in a thread";return g.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST=function(e,t){return React__default.default.createElement(React__default.default.Fragment,null,e," ",b,t?React__default.default.createElement(React__default.default.Fragment,null," ",v," ",t):React__default.default.createElement(React__default.default.Fragment,null," ",y))},React__default.default.createElement(LiveblocksUIConfig,{overrides:g},React__default.default.createElement(LiveblocksProvider,{baseUrl:f,authEndpoint:function(e){return __awaiter(void 0,void 0,void 0,function(){var t,n,o,r,a,i;return __generator(this,function(s){switch(s.label){case 0:return t="".concat(f,"/v2/c/auth"),n={"Content-Type":"application/json"},o=localStorage.getItem("steedos:authToken"),(r=localStorage.getItem("steedos:spaceId"))&&o&&(n.Authorization="Bearer ".concat(r,",").concat(o)),a=JSON.stringify({room:e,readonly:l}),[4,fetch(t,{method:"POST",headers:n,body:a,credentials:"include"})];case 1:return[4,s.sent().json()];case 2:return i=s.sent(),u(i.token),[2,i]}})})},resolveRoomsInfo:function(e){return __awaiter(void 0,[e],void 0,function(e){var t,n,o=e.roomIds;return __generator(this,function(e){switch(e.label){case 0:return t=new URLSearchParams(o.map(function(e){return["roomIds",e]})),[4,fetch("".concat(f,"/v2/c/rooms?").concat(t),{headers:{Authorization:"Bearer ".concat(d)}})];case 1:if(!(n=e.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_rooms_info_error"));return[4,n.json()];case 2:return[2,e.sent()]}})})},resolveUsers:function(e){return __awaiter(void 0,[e],void 0,function(e){var t,n,o=e.userIds;return __generator(this,function(e){switch(e.label){case 0:return t=new URLSearchParams(o.map(function(e){return["userIds",e]})),[4,fetch("".concat(f,"/v2/c/users?").concat(t),{headers:{Authorization:"Bearer ".concat(d)}})];case 1:if(!(n=e.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_users_error"));return[4,n.json()];case 2:return[2,e.sent()]}})})},resolveMentionSuggestions:function(e){return __awaiter(void 0,[e],void 0,function(e){var t,n=e.text,o=void 0===n?"":n;return __generator(this,function(e){switch(e.label){case 0:return[4,fetch("".concat(f,"/v2/c/users/search?keyword=").concat(encodeURIComponent(o)),{headers:{Authorization:"Bearer ".concat(d)}})];case 1:if(!(t=e.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_mention_suggestions_error"));return[4,t.json()];case 2:return[2,e.sent()]}})})}},a&&i("body",a,{}),r))};exports.AmisComments=AmisComments,exports.AmisInboxPopover=AmisInboxPopover,exports.AmisRoomsProvider=AmisRoomsProvider,exports.Threads=Threads,Object.defineProperty(exports,"__esModule",{value:!0})});
3
+ * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
4
+ *
5
+ * Copyright (c) 2014-2017, Jon Schlinkert.
6
+ * Released under the MIT License.
7
+ */function ko(e){return"[object Object]"===Object.prototype.toString.call(e)}function _o(e){var t,n;return!1!==ko(e)&&(void 0===(t=e.constructor)||!1!==ko(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf"))}var Fo=Symbol.for("immer-nothing"),Ro=Symbol.for("immer-draftable"),jo=Symbol.for("immer-state");function No(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Po=Object.getPrototypeOf;function Mo(e){return!!e&&!!e[jo]}function Lo(e){return!!e&&(zo(e)||Array.isArray(e)||!!e[Ro]||!!e.constructor?.[Ro]||qo(e)||Ko(e))}var Ho=Object.prototype.constructor.toString();function zo(e){if(!e||"object"!=typeof e)return!1;const t=Po(e);if(null===t)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return n===Object||"function"==typeof n&&Function.toString.call(n)===Ho}function Uo(e,t){0===Wo(e)?Reflect.ownKeys(e).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function Wo(e){const t=e[jo];return t?t.type_:Array.isArray(e)?1:qo(e)?2:Ko(e)?3:0}function Vo(e,t){return 2===Wo(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function $o(e,t,n){const r=Wo(e);2===r?e.set(t,n):3===r?e.add(n):e[t]=n}function qo(e){return e instanceof Map}function Ko(e){return e instanceof Set}function Go(e){return e.copy_||e.base_}function Xo(e,t){if(qo(e))return new Map(e);if(Ko(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=zo(e);if(!0===t||"class_only"===t&&!n){const t=Object.getOwnPropertyDescriptors(e);delete t[jo];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){const o=n[r],i=t[o];!1===i.writable&&(i.writable=!0,i.configurable=!0),(i.get||i.set)&&(t[o]={configurable:!0,writable:!0,enumerable:i.enumerable,value:e[o]})}return Object.create(Po(e),t)}{const t=Po(e);if(null!==t&&n)return{...e};const r=Object.create(t);return Object.assign(r,e)}}function Zo(e,t=!1){return Jo(e)||Mo(e)||!Lo(e)||(Wo(e)>1&&Object.defineProperties(e,{set:{value:Yo},add:{value:Yo},clear:{value:Yo},delete:{value:Yo}}),Object.freeze(e),t&&Object.values(e).forEach(e=>Zo(e,!0))),e}function Yo(){No(2)}function Jo(e){return Object.isFrozen(e)}var Qo,ei={};function ti(e){const t=ei[e];return t||No(0),t}function ni(){return Qo}function ri(e,t){t&&(ti("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function oi(e){ii(e),e.drafts_.forEach(si),e.drafts_=null}function ii(e){e===Qo&&(Qo=e.parent_)}function ai(e){return Qo={drafts_:[],parent_:Qo,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function si(e){const t=e[jo];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function ui(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return void 0!==e&&e!==n?(n[jo].modified_&&(oi(t),No(4)),Lo(e)&&(e=ci(t,e),t.parent_||di(t,e)),t.patches_&&ti("Patches").generateReplacementPatches_(n[jo].base_,e,t.patches_,t.inversePatches_)):e=ci(t,n,[]),oi(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==Fo?e:void 0}function ci(e,t,n){if(Jo(t))return t;const r=t[jo];if(!r)return Uo(t,(o,i)=>li(e,r,t,o,i,n)),t;if(r.scope_!==e)return t;if(!r.modified_)return di(e,r.base_,!0),r.base_;if(!r.finalized_){r.finalized_=!0,r.scope_.unfinalizedDrafts_--;const t=r.copy_;let o=t,i=!1;3===r.type_&&(o=new Set(t),t.clear(),i=!0),Uo(o,(o,a)=>li(e,r,t,o,a,n,i)),di(e,t,!1),n&&e.patches_&&ti("Patches").generatePatches_(r,n,e.patches_,e.inversePatches_)}return r.copy_}function li(e,t,n,r,o,i,a){if(Mo(o)){const a=ci(e,o,i&&t&&3!==t.type_&&!Vo(t.assigned_,r)?i.concat(r):void 0);if($o(n,r,a),!Mo(a))return;e.canAutoFreeze_=!1}else a&&n.add(o);if(Lo(o)&&!Jo(o)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;ci(e,o),t&&t.scope_.parent_||"symbol"==typeof r||!(qo(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))||di(e,o)}}function di(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Zo(t,n)}var fi={get(e,t){if(t===jo)return e;const n=Go(e);if(!Vo(n,t))return function(e,t,n){const r=mi(t,n);return r?"value"in r?r.value:r.get?.call(e.draft_):void 0}(e,n,t);const r=n[t];return e.finalized_||!Lo(r)?r:r===pi(e.base_,t)?(vi(e),e.copy_[t]=yi(r,e)):r},has:(e,t)=>t in Go(e),ownKeys:e=>Reflect.ownKeys(Go(e)),set(e,t,n){const r=mi(Go(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const r=pi(Go(e),t),o=r?.[jo];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}(n,r)&&(void 0!==n||Vo(e.base_,t)))return!0;vi(e),gi(e)}return e.copy_[t]===n&&(void 0!==n||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty:(e,t)=>(void 0!==pi(e.base_,t)||t in e.base_?(e.assigned_[t]=!1,vi(e),gi(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const n=Go(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r?{writable:!0,configurable:1!==e.type_||"length"!==t,enumerable:r.enumerable,value:n[t]}:r},defineProperty(){No(11)},getPrototypeOf:e=>Po(e.base_),setPrototypeOf(){No(12)}},hi={};function pi(e,t){const n=e[jo];return(n?Go(n):e)[t]}function mi(e,t){if(!(t in e))return;let n=Po(e);for(;n;){const e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=Po(n)}}function gi(e){e.modified_||(e.modified_=!0,e.parent_&&gi(e.parent_))}function vi(e){e.copy_||(e.copy_=Xo(e.base_,e.scope_.immer_.useStrictShallowCopy_))}Uo(fi,(e,t)=>{hi[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),hi.deleteProperty=function(e,t){return hi.set.call(this,e,t,void 0)},hi.set=function(e,t,n){return fi.set.call(this,e[0],t,n,e[0])};function yi(e,t){const n=qo(e)?ti("MapSet").proxyMap_(e,t):Ko(e)?ti("MapSet").proxySet_(e,t):function(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:ni(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let o=r,i=fi;n&&(o=[r],i=hi);const{revoke:a,proxy:s}=Proxy.revocable(o,i);return r.draft_=s,r.revoke_=a,s}(e,t);return(t?t.scope_:ni()).drafts_.push(n),n}function bi(e){if(!Lo(e)||Jo(e))return e;const t=e[jo];let n;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Xo(e,t.scope_.immer_.useStrictShallowCopy_)}else n=Xo(e,!0);return Uo(n,(e,t)=>{$o(n,e,bi(t))}),t&&(t.finalized_=!1),n}var wi=new class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(e,t,n)=>{if("function"==typeof e&&"function"!=typeof t){const n=t;t=e;const r=this;return function(e=n,...o){return r.produce(e,e=>t.call(this,e,...o))}}let r;if("function"!=typeof t&&No(6),void 0!==n&&"function"!=typeof n&&No(7),Lo(e)){const o=ai(this),i=yi(e,void 0);let a=!0;try{r=t(i),a=!1}finally{a?oi(o):ii(o)}return ri(o,n),ui(r,o)}if(!e||"object"!=typeof e){if(r=t(e),void 0===r&&(r=e),r===Fo&&(r=void 0),this.autoFreeze_&&Zo(r,!0),n){const t=[],o=[];ti("Patches").generateReplacementPatches_(e,r,t,o),n(t,o)}return r}No(1)},this.produceWithPatches=(e,t)=>{if("function"==typeof e)return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},"boolean"==typeof e?.autoFreeze&&this.setAutoFreeze(e.autoFreeze),"boolean"==typeof e?.useStrictShallowCopy&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){Lo(e)||No(8),Mo(e)&&(e=function(e){Mo(e)||No(10);return bi(e)}(e));const t=ai(this),n=yi(e,void 0);return n[jo].isManual_=!0,ii(t),n}finishDraft(e,t){const n=e&&e[jo];n&&n.isManual_||No(9);const{scope_:r}=n;return ri(r,t),ui(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}n>-1&&(t=t.slice(n+1));const r=ti("Patches").applyPatches_;return Mo(e)?r(e,t):this.produce(e,e=>r(e,t))}},Ci=wi.produce,Di=wi.createDraft.bind(wi),Ei=wi.finishDraft.bind(wi),xi={transform(e,t){var{current:n,affinity:r}=e;if(null!=n){var o=Ri.transform(n,t,{affinity:r});e.current=o,null==o&&e.unref()}}},Ai={transform(e,t){var{current:n,affinity:r}=e;if(null!=n){var o=ua.transform(n,t,{affinity:r});e.current=o,null==o&&e.unref()}}},Ii={transform(e,t){var{current:n,affinity:r}=e;if(null!=n){var o=Ki.transform(n,t,{affinity:r});e.current=o,null==o&&e.unref()}}},Si=new WeakMap,Oi=new WeakMap,Ti=new WeakMap,Bi=new WeakMap,ki=new WeakMap,_i=new WeakMap,Fi=new WeakMap,Ri={ancestors(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,r=Ri.levels(e,t);return r=n?r.slice(1):r.slice(0,-1)},common(e,t){for(var n=[],r=0;r<e.length&&r<t.length;r++){var o=e[r];if(o!==t[r])break;n.push(o)}return n},compare(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++){if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return 0},endsAfter(e,t){var n=e.length-1,r=e.slice(0,n),o=t.slice(0,n),i=e[n],a=t[n];return Ri.equals(r,o)&&i>a},endsAt(e,t){var n=e.length,r=e.slice(0,n),o=t.slice(0,n);return Ri.equals(r,o)},endsBefore(e,t){var n=e.length-1,r=e.slice(0,n),o=t.slice(0,n),i=e[n],a=t[n];return Ri.equals(r,o)&&i<a},equals:(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),hasPrevious:e=>e[e.length-1]>0,isAfter:(e,t)=>1===Ri.compare(e,t),isAncestor:(e,t)=>e.length<t.length&&0===Ri.compare(e,t),isBefore:(e,t)=>-1===Ri.compare(e,t),isChild:(e,t)=>e.length===t.length+1&&0===Ri.compare(e,t),isCommon:(e,t)=>e.length<=t.length&&0===Ri.compare(e,t),isDescendant:(e,t)=>e.length>t.length&&0===Ri.compare(e,t),isParent:(e,t)=>e.length+1===t.length&&0===Ri.compare(e,t),isPath:e=>Array.isArray(e)&&(0===e.length||"number"==typeof e[0]),isSibling(e,t){if(e.length!==t.length)return!1;var n=e.slice(0,-1),r=t.slice(0,-1);return e[e.length-1]!==t[t.length-1]&&Ri.equals(n,r)},levels(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,r=[],o=0;o<=e.length;o++)r.push(e.slice(0,o));return n&&r.reverse(),r},next(e){if(0===e.length)throw new Error("Cannot get the next path of a root path [".concat(e,"], because it has no next index."));var t=e[e.length-1];return e.slice(0,-1).concat(t+1)},operationCanTransformPath(e){switch(e.type){case"insert_node":case"remove_node":case"merge_node":case"split_node":case"move_node":return!0;default:return!1}},parent(e){if(0===e.length)throw new Error("Cannot get the parent path of the root path [".concat(e,"]."));return e.slice(0,-1)},previous(e){if(0===e.length)throw new Error("Cannot get the previous path of a root path [".concat(e,"], because it has no previous index."));var t=e[e.length-1];if(t<=0)throw new Error("Cannot get the previous path of a first child path [".concat(e,"] because it would result in a negative index."));return e.slice(0,-1).concat(t-1)},relative(e,t){if(!Ri.isAncestor(t,e)&&!Ri.equals(e,t))throw new Error("Cannot get the relative path of [".concat(e,"] inside ancestor [").concat(t,"], because it is not above or equal to the path."));return e.slice(t.length)},transform(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e)return null;var r=[...e],{affinity:o="forward"}=n;if(0===e.length)return r;switch(t.type){case"insert_node":var{path:i}=t;(Ri.equals(i,r)||Ri.endsBefore(i,r)||Ri.isAncestor(i,r))&&(r[i.length-1]+=1);break;case"remove_node":var{path:a}=t;if(Ri.equals(a,r)||Ri.isAncestor(a,r))return null;Ri.endsBefore(a,r)&&(r[a.length-1]-=1);break;case"merge_node":var{path:s,position:u}=t;Ri.equals(s,r)||Ri.endsBefore(s,r)?r[s.length-1]-=1:Ri.isAncestor(s,r)&&(r[s.length-1]-=1,r[s.length]+=u);break;case"split_node":var{path:c,position:l}=t;if(Ri.equals(c,r)){if("forward"===o)r[r.length-1]+=1;else if("backward"!==o)return null}else Ri.endsBefore(c,r)?r[c.length-1]+=1:Ri.isAncestor(c,r)&&e[c.length]>=l&&(r[c.length-1]+=1,r[c.length]-=l);break;case"move_node":var{path:d,newPath:f}=t;if(Ri.equals(d,f))return r;if(Ri.isAncestor(d,r)||Ri.equals(d,r)){var h=f.slice();return Ri.endsBefore(d,f)&&d.length<f.length&&(h[d.length-1]-=1),h.concat(r.slice(d.length))}Ri.isSibling(d,f)&&(Ri.isAncestor(f,r)||Ri.equals(f,r))?Ri.endsBefore(d,r)?r[d.length-1]-=1:r[d.length-1]+=1:Ri.endsBefore(f,r)||Ri.equals(f,r)||Ri.isAncestor(f,r)?(Ri.endsBefore(d,r)&&(r[d.length-1]-=1),r[f.length-1]+=1):Ri.endsBefore(d,r)&&(Ri.equals(f,r)&&(r[f.length-1]+=1),r[d.length-1]-=1)}return r}};function ji(e){return ji="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ji(e)}function Ni(e){var t=function(e,t){if("object"!==ji(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==ji(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ji(t)?t:String(t)}function Pi(e,t,n){return(t=Ni(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Mi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Li(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Mi(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Mi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Hi={transform(e,t){e.children=Di(e.children);var n=e.selection&&Di(e.selection);try{n=((e,t,n)=>{switch(n.type){case"insert_node":var{path:r,node:o}=n,i=Qi.parent(e,r),a=r[r.length-1];if(a>i.children.length)throw new Error('Cannot apply an "insert_node" operation at path ['.concat(r,"] because the destination is past the end of the node."));if(i.children.splice(a,0,o),t)for(var[s,u]of Ki.points(t))t[u]=ua.transform(s,n);break;case"insert_text":var{path:c,offset:l,text:d}=n;if(0===d.length)break;var f=Qi.leaf(e,c),h=f.text.slice(0,l),p=f.text.slice(l);if(f.text=h+d+p,t)for(var[m,g]of Ki.points(t))t[g]=ua.transform(m,n);break;case"merge_node":var{path:v}=n,y=Qi.get(e,v),b=Ri.previous(v),w=Qi.get(e,b),C=Qi.parent(e,v),D=v[v.length-1];if(ga.isText(y)&&ga.isText(w))w.text+=y.text;else{if(ga.isText(y)||ga.isText(w))throw new Error('Cannot apply a "merge_node" operation at path ['.concat(v,"] to nodes of different interfaces: ").concat(la.stringify(y)," ").concat(la.stringify(w)));w.children.push(...y.children)}if(C.children.splice(D,1),t)for(var[E,x]of Ki.points(t))t[x]=ua.transform(E,n);break;case"move_node":var{path:A,newPath:I}=n;if(Ri.isAncestor(A,I))throw new Error("Cannot move a path [".concat(A,"] to new path [").concat(I,"] because the destination is inside itself."));var S=Qi.get(e,A),O=Qi.parent(e,A),T=A[A.length-1];O.children.splice(T,1);var B=Ri.transform(A,n),k=Qi.get(e,Ri.parent(B)),_=B[B.length-1];if(k.children.splice(_,0,S),t)for(var[F,R]of Ki.points(t))t[R]=ua.transform(F,n);break;case"remove_node":var{path:j}=n,N=j[j.length-1];if(Qi.parent(e,j).children.splice(N,1),t)for(var[P,M]of Ki.points(t)){var L=ua.transform(P,n);if(null!=t&&null!=L)t[M]=L;else{var H=void 0,z=void 0;for(var[U,W]of Qi.texts(e)){if(-1!==Ri.compare(W,j)){z=[U,W];break}H=[U,W]}var V=!1;H&&z&&(V=Ri.equals(z[1],j)?!Ri.hasPrevious(z[1]):Ri.common(H[1],j).length<Ri.common(z[1],j).length),H&&!V?(P.path=H[1],P.offset=H[0].text.length):z?(P.path=z[1],P.offset=0):t=null}}break;case"remove_text":var{path:$,offset:q,text:K}=n;if(0===K.length)break;var G=Qi.leaf(e,$),X=G.text.slice(0,q),Z=G.text.slice(q+K.length);if(G.text=X+Z,t)for(var[Y,J]of Ki.points(t))t[J]=ua.transform(Y,n);break;case"set_node":var{path:Q,properties:ee,newProperties:te}=n;if(0===Q.length)throw new Error("Cannot set properties on the root node!");var ne=Qi.get(e,Q);for(var re in te){if("children"===re||"text"===re)throw new Error('Cannot set the "'.concat(re,'" property of nodes!'));var oe=te[re];null==oe?delete ne[re]:ne[re]=oe}for(var ie in ee)te.hasOwnProperty(ie)||delete ne[ie];break;case"set_selection":var{newProperties:ae}=n;if(null==ae)t=ae;else{if(null==t){if(!Ki.isRange(ae))throw new Error('Cannot apply an incomplete "set_selection" operation properties '.concat(la.stringify(ae)," when there is no current selection."));t=Li({},ae)}for(var se in ae){var ue=ae[se];if(null==ue){if("anchor"===se||"focus"===se)throw new Error('Cannot remove the "'.concat(se,'" selection property'));delete t[se]}else t[se]=ue}}break;case"split_node":var{path:ce,position:le,properties:de}=n;if(0===ce.length)throw new Error('Cannot apply a "split_node" operation at path ['.concat(ce,"] because the root node cannot be split."));var fe,he=Qi.get(e,ce),pe=Qi.parent(e,ce),me=ce[ce.length-1];if(ga.isText(he)){var ge=he.text.slice(0,le),ve=he.text.slice(le);he.text=ge,fe=Li(Li({},de),{},{text:ve})}else{var ye=he.children.slice(0,le),be=he.children.slice(le);he.children=ye,fe=Li(Li({},de),{},{children:be})}if(pe.children.splice(me+1,0,fe),t)for(var[we,Ce]of Ki.points(t))t[Ce]=ua.transform(we,n)}return t})(e,n,t)}finally{e.children=Ei(e.children),e.selection=n?Mo(n)?Ei(n):n:null}}},zi={insertNodes(e,t,n){e.insertNodes(t,n)},liftNodes(e,t){e.liftNodes(t)},mergeNodes(e,t){e.mergeNodes(t)},moveNodes(e,t){e.moveNodes(t)},removeNodes(e,t){e.removeNodes(t)},setNodes(e,t,n){e.setNodes(t,n)},splitNodes(e,t){e.splitNodes(t)},unsetNodes(e,t,n){e.unsetNodes(t,n)},unwrapNodes(e,t){e.unwrapNodes(t)},wrapNodes(e,t,n){e.wrapNodes(t,n)}},Ui={collapse(e,t){e.collapse(t)},deselect(e){e.deselect()},move(e,t){e.move(t)},select(e,t){e.select(t)},setPoint(e,t,n){e.setPoint(t,n)},setSelection(e,t){e.setSelection(t)}},Wi=(e,t)=>{for(var n in e){var r=e[n],o=t[n];if(_o(r)&&_o(o)){if(!Wi(r,o))return!1}else if(Array.isArray(r)&&Array.isArray(o)){if(r.length!==o.length)return!1;for(var i=0;i<r.length;i++)if(r[i]!==o[i])return!1}else if(r!==o)return!1}for(var a in t)if(void 0===e[a]&&void 0!==t[a])return!1;return!0};function Vi(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var $i=["anchor","focus"];function qi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var Ki={edges(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,{anchor:r,focus:o}=e;return Ki.isBackward(e)===n?[r,o]:[o,r]},end(e){var[,t]=Ki.edges(e);return t},equals:(e,t)=>ua.equals(e.anchor,t.anchor)&&ua.equals(e.focus,t.focus),surrounds(e,t){var n=Ki.intersection(e,t);return!!n&&Ki.equals(n,t)},includes(e,t){if(Ki.isRange(t)){if(Ki.includes(e,t.anchor)||Ki.includes(e,t.focus))return!0;var[n,r]=Ki.edges(e),[o,i]=Ki.edges(t);return ua.isBefore(n,o)&&ua.isAfter(r,i)}var[a,s]=Ki.edges(e),u=!1,c=!1;return ua.isPoint(t)?(u=ua.compare(t,a)>=0,c=ua.compare(t,s)<=0):(u=Ri.compare(t,a.path)>=0,c=Ri.compare(t,s.path)<=0),u&&c},intersection(e,t){var n=Vi(e,$i),[r,o]=Ki.edges(e),[i,a]=Ki.edges(t),s=ua.isBefore(r,i)?i:r,u=ua.isBefore(o,a)?o:a;return ua.isBefore(u,s)?null:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qi(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({anchor:s,focus:u},n)},isBackward(e){var{anchor:t,focus:n}=e;return ua.isAfter(t,n)},isCollapsed(e){var{anchor:t,focus:n}=e;return ua.equals(t,n)},isExpanded:e=>!Ki.isCollapsed(e),isForward:e=>!Ki.isBackward(e),isRange:e=>_o(e)&&ua.isPoint(e.anchor)&&ua.isPoint(e.focus),*points(e){yield[e.anchor,"anchor"],yield[e.focus,"focus"]},start(e){var[t]=Ki.edges(e);return t},transform(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Ci(e,e=>{if(null===e)return null;var r,o,{affinity:i="inward"}=n;if("inward"===i){var a=Ki.isCollapsed(e);Ki.isForward(e)?(r="forward",o=a?r:"backward"):(r="backward",o=a?r:"forward")}else"outward"===i?Ki.isForward(e)?(r="backward",o="forward"):(r="forward",o="backward"):(r=i,o=i);var s=ua.transform(e.anchor,t,{affinity:r}),u=ua.transform(e.focus,t,{affinity:o});if(!s||!u)return null;e.anchor=s,e.focus=u})}},Gi=e=>_o(e)&&Qi.isNodeList(e.children)&&!oa.isEditor(e),Xi={isAncestor:e=>_o(e)&&Qi.isNodeList(e.children),isElement:Gi,isElementList:e=>Array.isArray(e)&&e.every(e=>Xi.isElement(e)),isElementProps:e=>void 0!==e.children,isElementType:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"type";return Gi(e)&&e[n]===t},matches(e,t){for(var n in t)if("children"!==n&&e[n]!==t[n])return!1;return!0}},Zi=["children"],Yi=["text"],Ji=new WeakMap,Qi={ancestor(e,t){var n=Qi.get(e,t);if(ga.isText(n))throw new Error("Cannot get the ancestor node at path [".concat(t,"] because it refers to a text node instead: ").concat(la.stringify(n)));return n},ancestors(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var r of Ri.ancestors(t,n)){var o=[Qi.ancestor(e,r),r];yield o}}()},child(e,t){if(ga.isText(e))throw new Error("Cannot get the child of a text node: ".concat(la.stringify(e)));var n=e.children[t];if(null==n)throw new Error("Cannot get child at index `".concat(t,"` in node: ").concat(la.stringify(e)));return n},children(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var{reverse:r=!1}=n,o=Qi.ancestor(e,t),{children:i}=o,a=r?i.length-1:0;r?a>=0:a<i.length;){var s=Qi.child(o,a),u=t.concat(a);yield[s,u],a=r?a-1:a+1}}()},common(e,t,n){var r=Ri.common(t,n);return[Qi.get(e,r),r]},descendant(e,t){var n=Qi.get(e,t);if(oa.isEditor(n))throw new Error("Cannot get the descendant node at path [".concat(t,"] because it refers to the root editor node instead: ").concat(la.stringify(n)));return n},descendants(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,r]of Qi.nodes(e,t))0!==r.length&&(yield[n,r])}()},elements(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,r]of Qi.nodes(e,t))Xi.isElement(n)&&(yield[n,r])}()},extractProps:e=>Xi.isAncestor(e)?Vi(e,Zi):Vi(e,Yi),first(e,t){for(var n=t.slice(),r=Qi.get(e,n);r&&!ga.isText(r)&&0!==r.children.length;)r=r.children[0],n.push(0);return[r,n]},fragment(e,t){if(ga.isText(e))throw new Error("Cannot get a fragment starting from a root text node: ".concat(la.stringify(e)));var n=Ci({children:e.children},e=>{var[n,r]=Ki.edges(t),o=Qi.nodes(e,{reverse:!0,pass:e=>{var[,n]=e;return!Ki.includes(t,n)}});for(var[,i]of o){if(!Ki.includes(t,i)){var a=Qi.parent(e,i),s=i[i.length-1];a.children.splice(s,1)}if(Ri.equals(i,r.path)){var u=Qi.leaf(e,i);u.text=u.text.slice(0,r.offset)}if(Ri.equals(i,n.path)){var c=Qi.leaf(e,i);c.text=c.text.slice(n.offset)}}oa.isEditor(e)&&(e.selection=null)});return n.children},get(e,t){var n=Qi.getIf(e,t);if(void 0===n)throw new Error("Cannot find a descendant at path [".concat(t,"] in node: ").concat(la.stringify(e)));return n},getIf(e,t){for(var n=e,r=0;r<t.length;r++){var o=t[r];if(ga.isText(n)||!n.children[o])return;n=n.children[o]}return n},has(e,t){for(var n=e,r=0;r<t.length;r++){var o=t[r];if(ga.isText(n)||!n.children[o])return!1;n=n.children[o]}return!0},isNode:e=>ga.isText(e)||Xi.isElement(e)||oa.isEditor(e),isNodeList(e){if(!Array.isArray(e))return!1;var t=Ji.get(e);if(void 0!==t)return t;var n=e.every(e=>Qi.isNode(e));return Ji.set(e,n),n},last(e,t){for(var n=t.slice(),r=Qi.get(e,n);r&&!ga.isText(r)&&0!==r.children.length;){var o=r.children.length-1;r=r.children[o],n.push(o)}return[r,n]},leaf(e,t){var n=Qi.get(e,t);if(!ga.isText(n))throw new Error("Cannot get the leaf node at path [".concat(t,"] because it refers to a non-leaf node: ").concat(la.stringify(n)));return n},levels(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var r of Ri.levels(t,n)){var o=Qi.get(e,r);yield[o,r]}}()},matches:(e,t)=>Xi.isElement(e)&&Xi.isElementProps(t)&&Xi.matches(e,t)||ga.isText(e)&&ga.isTextProps(t)&&ga.matches(e,t),nodes(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var{pass:n,reverse:r=!1}=t,{from:o=[],to:i}=t,a=new Set,s=[],u=e;!i||!(r?Ri.isBefore(s,i):Ri.isAfter(s,i));)if(a.has(u)||(yield[u,s]),a.has(u)||ga.isText(u)||0===u.children.length||null!=n&&!1!==n([u,s])){if(0===s.length)break;if(!r){var c=Ri.next(s);if(Qi.has(e,c)){s=c,u=Qi.get(e,s);continue}}if(r&&0!==s[s.length-1])s=Ri.previous(s),u=Qi.get(e,s);else s=Ri.parent(s),u=Qi.get(e,s),a.add(u)}else{a.add(u);var l=r?u.children.length-1:0;Ri.isAncestor(s,o)&&(l=o[s.length]),s=s.concat(l),u=Qi.get(e,s)}}()},parent(e,t){var n=Ri.parent(t),r=Qi.get(e,n);if(ga.isText(r))throw new Error("Cannot get the parent of path [".concat(t,"] because it does not exist in the root."));return r},string:e=>ga.isText(e)?e.text:e.children.map(Qi.string).join(""),texts(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,r]of Qi.nodes(e,t))ga.isText(n)&&(yield[n,r])}()}};function ea(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ta(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ea(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ea(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var na={isNodeOperation:e=>na.isOperation(e)&&e.type.endsWith("_node"),isOperation(e){if(!_o(e))return!1;switch(e.type){case"insert_node":case"remove_node":return Ri.isPath(e.path)&&Qi.isNode(e.node);case"insert_text":case"remove_text":return"number"==typeof e.offset&&"string"==typeof e.text&&Ri.isPath(e.path);case"merge_node":return"number"==typeof e.position&&Ri.isPath(e.path)&&_o(e.properties);case"move_node":return Ri.isPath(e.path)&&Ri.isPath(e.newPath);case"set_node":return Ri.isPath(e.path)&&_o(e.properties)&&_o(e.newProperties);case"set_selection":return null===e.properties&&Ki.isRange(e.newProperties)||null===e.newProperties&&Ki.isRange(e.properties)||_o(e.properties)&&_o(e.newProperties);case"split_node":return Ri.isPath(e.path)&&"number"==typeof e.position&&_o(e.properties);default:return!1}},isOperationList:e=>Array.isArray(e)&&e.every(e=>na.isOperation(e)),isSelectionOperation:e=>na.isOperation(e)&&e.type.endsWith("_selection"),isTextOperation:e=>na.isOperation(e)&&e.type.endsWith("_text"),inverse(e){switch(e.type){case"insert_node":return ta(ta({},e),{},{type:"remove_node"});case"insert_text":return ta(ta({},e),{},{type:"remove_text"});case"merge_node":return ta(ta({},e),{},{type:"split_node",path:Ri.previous(e.path)});case"move_node":var{newPath:t,path:n}=e;if(Ri.equals(t,n))return e;if(Ri.isSibling(n,t))return ta(ta({},e),{},{path:t,newPath:n});var r=Ri.transform(n,e),o=Ri.transform(Ri.next(n),e);return ta(ta({},e),{},{path:r,newPath:o});case"remove_node":return ta(ta({},e),{},{type:"insert_node"});case"remove_text":return ta(ta({},e),{},{type:"insert_text"});case"set_node":var{properties:i,newProperties:a}=e;return ta(ta({},e),{},{properties:a,newProperties:i});case"set_selection":var{properties:s,newProperties:u}=e;return ta(ta({},e),{},null==s?{properties:u,newProperties:null}:null==u?{properties:null,newProperties:s}:{properties:u,newProperties:s});case"split_node":return ta(ta({},e),{},{type:"merge_node",path:Ri.next(e.path)})}}},ra=new WeakMap,oa={above:(e,t)=>e.above(t),addMark(e,t,n){e.addMark(t,n)},after:(e,t,n)=>e.after(t,n),before:(e,t,n)=>e.before(t,n),deleteBackward(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{unit:n="character"}=t;e.deleteBackward(n)},deleteForward(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{unit:n="character"}=t;e.deleteForward(n)},deleteFragment(e,t){e.deleteFragment(t)},edges:(e,t)=>e.edges(t),elementReadOnly(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.elementReadOnly(t)},end:(e,t)=>e.end(t),first:(e,t)=>e.first(t),fragment:(e,t)=>e.fragment(t),hasBlocks:(e,t)=>e.hasBlocks(t),hasInlines:(e,t)=>e.hasInlines(t),hasPath:(e,t)=>e.hasPath(t),hasTexts:(e,t)=>e.hasTexts(t),insertBreak(e){e.insertBreak()},insertFragment(e,t,n){e.insertFragment(t,n)},insertNode(e,t){e.insertNode(t)},insertSoftBreak(e){e.insertSoftBreak()},insertText(e,t){e.insertText(t)},isBlock:(e,t)=>e.isBlock(t),isEdge:(e,t,n)=>e.isEdge(t,n),isEditor:e=>(e=>{var t=ra.get(e);if(void 0!==t)return t;if(!_o(e))return!1;var n="function"==typeof e.addMark&&"function"==typeof e.apply&&"function"==typeof e.deleteFragment&&"function"==typeof e.insertBreak&&"function"==typeof e.insertSoftBreak&&"function"==typeof e.insertFragment&&"function"==typeof e.insertNode&&"function"==typeof e.insertText&&"function"==typeof e.isElementReadOnly&&"function"==typeof e.isInline&&"function"==typeof e.isSelectable&&"function"==typeof e.isVoid&&"function"==typeof e.normalizeNode&&"function"==typeof e.onChange&&"function"==typeof e.removeMark&&"function"==typeof e.getDirtyPaths&&(null===e.marks||_o(e.marks))&&(null===e.selection||Ki.isRange(e.selection))&&Qi.isNodeList(e.children)&&na.isOperationList(e.operations);return ra.set(e,n),n})(e),isElementReadOnly:(e,t)=>e.isElementReadOnly(t),isEmpty:(e,t)=>e.isEmpty(t),isEnd:(e,t,n)=>e.isEnd(t,n),isInline:(e,t)=>e.isInline(t),isNormalizing:e=>e.isNormalizing(),isSelectable:(e,t)=>e.isSelectable(t),isStart:(e,t,n)=>e.isStart(t,n),isVoid:(e,t)=>e.isVoid(t),last:(e,t)=>e.last(t),leaf:(e,t,n)=>e.leaf(t,n),levels:(e,t)=>e.levels(t),marks:e=>e.getMarks(),next:(e,t)=>e.next(t),node:(e,t,n)=>e.node(t,n),nodes:(e,t)=>e.nodes(t),normalize(e,t){e.normalize(t)},parent:(e,t,n)=>e.parent(t,n),path:(e,t,n)=>e.path(t,n),pathRef:(e,t,n)=>e.pathRef(t,n),pathRefs:e=>e.pathRefs(),point:(e,t,n)=>e.point(t,n),pointRef:(e,t,n)=>e.pointRef(t,n),pointRefs:e=>e.pointRefs(),positions:(e,t)=>e.positions(t),previous:(e,t)=>e.previous(t),range:(e,t,n)=>e.range(t,n),rangeRef:(e,t,n)=>e.rangeRef(t,n),rangeRefs:e=>e.rangeRefs(),removeMark(e,t){e.removeMark(t)},setNormalizing(e,t){e.setNormalizing(t)},start:(e,t)=>e.start(t),string:(e,t,n)=>e.string(t,n),unhangRange:(e,t,n)=>e.unhangRange(t,n),void:(e,t)=>e.void(t),withoutNormalizing(e,t){e.withoutNormalizing(t)},shouldMergeNodesRemovePrevNode:(e,t,n)=>e.shouldMergeNodesRemovePrevNode(t,n)},ia={isSpan:e=>Array.isArray(e)&&2===e.length&&e.every(Ri.isPath)};function aa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?aa(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):aa(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var ua={compare(e,t){var n=Ri.compare(e.path,t.path);return 0===n?e.offset<t.offset?-1:e.offset>t.offset?1:0:n},isAfter:(e,t)=>1===ua.compare(e,t),isBefore:(e,t)=>-1===ua.compare(e,t),equals:(e,t)=>e.offset===t.offset&&Ri.equals(e.path,t.path),isPoint:e=>_o(e)&&"number"==typeof e.offset&&Ri.isPath(e.path),transform(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Ci(e,e=>{if(null===e)return null;var{affinity:r="forward"}=n,{path:o,offset:i}=e;switch(t.type){case"insert_node":case"move_node":e.path=Ri.transform(o,t,n);break;case"insert_text":Ri.equals(t.path,o)&&(t.offset<i||t.offset===i&&"forward"===r)&&(e.offset+=t.text.length);break;case"merge_node":Ri.equals(t.path,o)&&(e.offset+=t.position),e.path=Ri.transform(o,t,n);break;case"remove_text":Ri.equals(t.path,o)&&t.offset<=i&&(e.offset-=Math.min(i-t.offset,t.text.length));break;case"remove_node":if(Ri.equals(t.path,o)||Ri.isAncestor(t.path,o))return null;e.path=Ri.transform(o,t,n);break;case"split_node":if(Ri.equals(t.path,o)){if(t.position===i&&null==r)return null;(t.position<i||t.position===i&&"forward"===r)&&(e.offset-=t.position,e.path=Ri.transform(o,t,sa(sa({},n),{},{affinity:"forward"})))}else e.path=Ri.transform(o,t,n)}})}},ca=void 0,la={setScrubber(e){ca=e},stringify:e=>JSON.stringify(e,ca)},da=["text"],fa=["anchor","focus"];function ha(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function pa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ha(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ha(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var ma,ga={equals(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{loose:r=!1}=n;function o(e){return Vi(e,da)}return Wi(r?o(e):e,r?o(t):t)},isText:e=>_o(e)&&"string"==typeof e.text,isTextList:e=>Array.isArray(e)&&e.every(e=>ga.isText(e)),isTextProps:e=>void 0!==e.text,matches(e,t){for(var n in t)if("text"!==n&&(!e.hasOwnProperty(n)||e[n]!==t[n]))return!1;return!0},decorations(e,t){var n=[pa({},e)];for(var r of t){var o=Vi(r,fa),[i,a]=Ki.edges(r),s=[],u=0,c=i.offset,l=a.offset;for(var d of n){var{length:f}=d.text,h=u;if(u+=f,c<=h&&u<=l)Object.assign(d,o),s.push(d);else if(c!==l&&(c===u||l===h)||c>u||l<h||l===h&&0!==h)s.push(d);else{var p=d,m=void 0,g=void 0;if(l<u){var v=l-h;g=pa(pa({},p),{},{text:p.text.slice(v)}),p=pa(pa({},p),{},{text:p.text.slice(0,v)})}if(c>h){var y=c-h;m=pa(pa({},p),{},{text:p.text.slice(0,y)}),p=pa(pa({},p),{},{text:p.text.slice(y)})}Object.assign(p,o),m&&s.push(m),s.push(p),g&&s.push(g)}}n=s}return n}},va=e=>e.selection?e.selection:e.children.length>0?oa.end(e,[]):[0],ya=(e,t)=>{var[n]=oa.node(e,t);return e=>e===n},ba=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!t,r=t?Aa(e):e,o=ma.None,i=ma.None,a=0,s=null;for(var u of r){var c=u.codePointAt(0);if(!c)break;var l=Pa(u,c);if([o,i]=n?[i,l]:[l,o],Ma(o,ma.ZWJ)&&Ma(i,ma.ExtPict)&&!Ua(n?e.substring(0,a):e.substring(0,e.length-a)))break;if(Ma(o,ma.RI)&&Ma(i,ma.RI)&&!(s=null!==s?!s:!!n||Va(e.substring(0,e.length-a))))break;if(o!==ma.None&&i!==ma.None&&Ha(o,i))break;a+=u.length}return a||1},wa=/\s/,Ca=/[\u002B\u0021-\u0023\u0025-\u002A\u002C-\u002F\u003A\u003B\u003F\u0040\u005B-\u005D\u005F\u007B\u007D\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E3B\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/,Da=/['\u2018\u2019]/,Ea=(e,t,n)=>{if(n){var r=e.length-t;return[e.slice(r,e.length),e.slice(0,r)]}return[e.slice(0,t),e.slice(t)]},xa=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(wa.test(t))return!1;if(Da.test(t)){var o=ba(n,r),[i,a]=Ea(n,o,r);if(e(i,a,r))return!0}return!Ca.test(t)},Aa=function*(e){for(var t=e.length-1,n=0;n<e.length;n++){var r=e.charAt(t-n);if(Sa(r.charCodeAt(0))){var o=e.charAt(t-n-1);if(Ia(o.charCodeAt(0))){yield o+r,n++;continue}}yield r}},Ia=e=>e>=55296&&e<=56319,Sa=e=>e>=56320&&e<=57343;!function(e){e[e.None=0]="None",e[e.Extend=1]="Extend",e[e.ZWJ=2]="ZWJ",e[e.RI=4]="RI",e[e.Prepend=8]="Prepend",e[e.SpacingMark=16]="SpacingMark",e[e.L=32]="L",e[e.V=64]="V",e[e.T=128]="T",e[e.LV=256]="LV",e[e.LVT=512]="LVT",e[e.ExtPict=1024]="ExtPict",e[e.Any=2048]="Any"}(ma||(ma={}));var Oa=/^(?:[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09BE\u09C1-\u09C4\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3E\u0B3F\u0B41-\u0B44\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE\u0BC0\u0BCD\u0BD7\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC2\u0CC6\u0CCC\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D3E\u0D41-\u0D44\u0D4D\u0D57\u0D62\u0D63\u0D81\u0DCA\u0DCF\u0DD2-\u0DD4\u0DD6\u0DDF\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200C\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDEFD-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC01\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDE41\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF3E\uDF40\uDF57\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB0\uDCB3-\uDCB8\uDCBA\uDCBD\uDCBF\uDCC0\uDCC2\uDCC3\uDDAF\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD30\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4\uDF00\uDF01\uDF36-\uDF3A\uDF40\uDF42]|\uD80D[\uDC40\uDC47-\uDC55]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65\uDD67-\uDD69\uDD6E-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF])$/,Ta=/^(?:[\u0600-\u0605\u06DD\u070F\u0890\u0891\u08E2\u0D4E]|\uD804[\uDCBD\uDCCD\uDDC2\uDDC3]|\uD806[\uDD3F\uDD41\uDE3A\uDE84-\uDE89]|\uD807\uDD46)$/,Ba=/^(?:[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E\u094F\u0982\u0983\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0C01-\u0C03\u0C41-\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0D02\u0D03\u0D3F\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D82\u0D83\u0DD0\u0DD1\u0DD8-\u0DDE\u0DF2\u0DF3\u0E33\u0EB3\u0F3E\u0F3F\u0F7F\u1031\u103B\u103C\u1056\u1057\u1084\u1715\u1734\u17B6\u17BE-\u17C5\u17C7\u17C8\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1A19\u1A1A\u1A55\u1A57\u1A6D-\u1A72\u1B04\u1B3B\u1B3D-\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1C24-\u1C2B\u1C34\u1C35\u1CE1\u1CF7\uA823\uA824\uA827\uA880\uA881\uA8B4-\uA8C3\uA952\uA953\uA983\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9C0\uAA2F\uAA30\uAA33\uAA34\uAA4D\uAAEB\uAAEE\uAAEF\uAAF5\uABE3\uABE4\uABE6\uABE7\uABE9\uABEA\uABEC]|\uD804[\uDC00\uDC02\uDC82\uDCB0-\uDCB2\uDCB7\uDCB8\uDD2C\uDD45\uDD46\uDD82\uDDB3-\uDDB5\uDDBF\uDDC0\uDDCE\uDE2C-\uDE2E\uDE32\uDE33\uDE35\uDEE0-\uDEE2\uDF02\uDF03\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF62\uDF63]|\uD805[\uDC35-\uDC37\uDC40\uDC41\uDC45\uDCB1\uDCB2\uDCB9\uDCBB\uDCBC\uDCBE\uDCC1\uDDB0\uDDB1\uDDB8-\uDDBB\uDDBE\uDE30-\uDE32\uDE3B\uDE3C\uDE3E\uDEAC\uDEAE\uDEAF\uDEB6\uDF26]|\uD806[\uDC2C-\uDC2E\uDC38\uDD31-\uDD35\uDD37\uDD38\uDD3D\uDD40\uDD42\uDDD1-\uDDD3\uDDDC-\uDDDF\uDDE4\uDE39\uDE57\uDE58\uDE97]|\uD807[\uDC2F\uDC3E\uDCA9\uDCB1\uDCB4\uDD8A-\uDD8E\uDD93\uDD94\uDD96\uDEF5\uDEF6]|\uD81B[\uDF51-\uDF87\uDFF0\uDFF1]|\uD834[\uDD66\uDD6D])$/,ka=/^[\u1100-\u115F\uA960-\uA97C]$/,_a=/^[\u1160-\u11A7\uD7B0-\uD7C6]$/,Fa=/^[\u11A8-\u11FF\uD7CB-\uD7FB]$/,Ra=/^[\uAC00\uAC1C\uAC38\uAC54\uAC70\uAC8C\uACA8\uACC4\uACE0\uACFC\uAD18\uAD34\uAD50\uAD6C\uAD88\uADA4\uADC0\uADDC\uADF8\uAE14\uAE30\uAE4C\uAE68\uAE84\uAEA0\uAEBC\uAED8\uAEF4\uAF10\uAF2C\uAF48\uAF64\uAF80\uAF9C\uAFB8\uAFD4\uAFF0\uB00C\uB028\uB044\uB060\uB07C\uB098\uB0B4\uB0D0\uB0EC\uB108\uB124\uB140\uB15C\uB178\uB194\uB1B0\uB1CC\uB1E8\uB204\uB220\uB23C\uB258\uB274\uB290\uB2AC\uB2C8\uB2E4\uB300\uB31C\uB338\uB354\uB370\uB38C\uB3A8\uB3C4\uB3E0\uB3FC\uB418\uB434\uB450\uB46C\uB488\uB4A4\uB4C0\uB4DC\uB4F8\uB514\uB530\uB54C\uB568\uB584\uB5A0\uB5BC\uB5D8\uB5F4\uB610\uB62C\uB648\uB664\uB680\uB69C\uB6B8\uB6D4\uB6F0\uB70C\uB728\uB744\uB760\uB77C\uB798\uB7B4\uB7D0\uB7EC\uB808\uB824\uB840\uB85C\uB878\uB894\uB8B0\uB8CC\uB8E8\uB904\uB920\uB93C\uB958\uB974\uB990\uB9AC\uB9C8\uB9E4\uBA00\uBA1C\uBA38\uBA54\uBA70\uBA8C\uBAA8\uBAC4\uBAE0\uBAFC\uBB18\uBB34\uBB50\uBB6C\uBB88\uBBA4\uBBC0\uBBDC\uBBF8\uBC14\uBC30\uBC4C\uBC68\uBC84\uBCA0\uBCBC\uBCD8\uBCF4\uBD10\uBD2C\uBD48\uBD64\uBD80\uBD9C\uBDB8\uBDD4\uBDF0\uBE0C\uBE28\uBE44\uBE60\uBE7C\uBE98\uBEB4\uBED0\uBEEC\uBF08\uBF24\uBF40\uBF5C\uBF78\uBF94\uBFB0\uBFCC\uBFE8\uC004\uC020\uC03C\uC058\uC074\uC090\uC0AC\uC0C8\uC0E4\uC100\uC11C\uC138\uC154\uC170\uC18C\uC1A8\uC1C4\uC1E0\uC1FC\uC218\uC234\uC250\uC26C\uC288\uC2A4\uC2C0\uC2DC\uC2F8\uC314\uC330\uC34C\uC368\uC384\uC3A0\uC3BC\uC3D8\uC3F4\uC410\uC42C\uC448\uC464\uC480\uC49C\uC4B8\uC4D4\uC4F0\uC50C\uC528\uC544\uC560\uC57C\uC598\uC5B4\uC5D0\uC5EC\uC608\uC624\uC640\uC65C\uC678\uC694\uC6B0\uC6CC\uC6E8\uC704\uC720\uC73C\uC758\uC774\uC790\uC7AC\uC7C8\uC7E4\uC800\uC81C\uC838\uC854\uC870\uC88C\uC8A8\uC8C4\uC8E0\uC8FC\uC918\uC934\uC950\uC96C\uC988\uC9A4\uC9C0\uC9DC\uC9F8\uCA14\uCA30\uCA4C\uCA68\uCA84\uCAA0\uCABC\uCAD8\uCAF4\uCB10\uCB2C\uCB48\uCB64\uCB80\uCB9C\uCBB8\uCBD4\uCBF0\uCC0C\uCC28\uCC44\uCC60\uCC7C\uCC98\uCCB4\uCCD0\uCCEC\uCD08\uCD24\uCD40\uCD5C\uCD78\uCD94\uCDB0\uCDCC\uCDE8\uCE04\uCE20\uCE3C\uCE58\uCE74\uCE90\uCEAC\uCEC8\uCEE4\uCF00\uCF1C\uCF38\uCF54\uCF70\uCF8C\uCFA8\uCFC4\uCFE0\uCFFC\uD018\uD034\uD050\uD06C\uD088\uD0A4\uD0C0\uD0DC\uD0F8\uD114\uD130\uD14C\uD168\uD184\uD1A0\uD1BC\uD1D8\uD1F4\uD210\uD22C\uD248\uD264\uD280\uD29C\uD2B8\uD2D4\uD2F0\uD30C\uD328\uD344\uD360\uD37C\uD398\uD3B4\uD3D0\uD3EC\uD408\uD424\uD440\uD45C\uD478\uD494\uD4B0\uD4CC\uD4E8\uD504\uD520\uD53C\uD558\uD574\uD590\uD5AC\uD5C8\uD5E4\uD600\uD61C\uD638\uD654\uD670\uD68C\uD6A8\uD6C4\uD6E0\uD6FC\uD718\uD734\uD750\uD76C\uD788]$/,ja=/^[\uAC01-\uAC1B\uAC1D-\uAC37\uAC39-\uAC53\uAC55-\uAC6F\uAC71-\uAC8B\uAC8D-\uACA7\uACA9-\uACC3\uACC5-\uACDF\uACE1-\uACFB\uACFD-\uAD17\uAD19-\uAD33\uAD35-\uAD4F\uAD51-\uAD6B\uAD6D-\uAD87\uAD89-\uADA3\uADA5-\uADBF\uADC1-\uADDB\uADDD-\uADF7\uADF9-\uAE13\uAE15-\uAE2F\uAE31-\uAE4B\uAE4D-\uAE67\uAE69-\uAE83\uAE85-\uAE9F\uAEA1-\uAEBB\uAEBD-\uAED7\uAED9-\uAEF3\uAEF5-\uAF0F\uAF11-\uAF2B\uAF2D-\uAF47\uAF49-\uAF63\uAF65-\uAF7F\uAF81-\uAF9B\uAF9D-\uAFB7\uAFB9-\uAFD3\uAFD5-\uAFEF\uAFF1-\uB00B\uB00D-\uB027\uB029-\uB043\uB045-\uB05F\uB061-\uB07B\uB07D-\uB097\uB099-\uB0B3\uB0B5-\uB0CF\uB0D1-\uB0EB\uB0ED-\uB107\uB109-\uB123\uB125-\uB13F\uB141-\uB15B\uB15D-\uB177\uB179-\uB193\uB195-\uB1AF\uB1B1-\uB1CB\uB1CD-\uB1E7\uB1E9-\uB203\uB205-\uB21F\uB221-\uB23B\uB23D-\uB257\uB259-\uB273\uB275-\uB28F\uB291-\uB2AB\uB2AD-\uB2C7\uB2C9-\uB2E3\uB2E5-\uB2FF\uB301-\uB31B\uB31D-\uB337\uB339-\uB353\uB355-\uB36F\uB371-\uB38B\uB38D-\uB3A7\uB3A9-\uB3C3\uB3C5-\uB3DF\uB3E1-\uB3FB\uB3FD-\uB417\uB419-\uB433\uB435-\uB44F\uB451-\uB46B\uB46D-\uB487\uB489-\uB4A3\uB4A5-\uB4BF\uB4C1-\uB4DB\uB4DD-\uB4F7\uB4F9-\uB513\uB515-\uB52F\uB531-\uB54B\uB54D-\uB567\uB569-\uB583\uB585-\uB59F\uB5A1-\uB5BB\uB5BD-\uB5D7\uB5D9-\uB5F3\uB5F5-\uB60F\uB611-\uB62B\uB62D-\uB647\uB649-\uB663\uB665-\uB67F\uB681-\uB69B\uB69D-\uB6B7\uB6B9-\uB6D3\uB6D5-\uB6EF\uB6F1-\uB70B\uB70D-\uB727\uB729-\uB743\uB745-\uB75F\uB761-\uB77B\uB77D-\uB797\uB799-\uB7B3\uB7B5-\uB7CF\uB7D1-\uB7EB\uB7ED-\uB807\uB809-\uB823\uB825-\uB83F\uB841-\uB85B\uB85D-\uB877\uB879-\uB893\uB895-\uB8AF\uB8B1-\uB8CB\uB8CD-\uB8E7\uB8E9-\uB903\uB905-\uB91F\uB921-\uB93B\uB93D-\uB957\uB959-\uB973\uB975-\uB98F\uB991-\uB9AB\uB9AD-\uB9C7\uB9C9-\uB9E3\uB9E5-\uB9FF\uBA01-\uBA1B\uBA1D-\uBA37\uBA39-\uBA53\uBA55-\uBA6F\uBA71-\uBA8B\uBA8D-\uBAA7\uBAA9-\uBAC3\uBAC5-\uBADF\uBAE1-\uBAFB\uBAFD-\uBB17\uBB19-\uBB33\uBB35-\uBB4F\uBB51-\uBB6B\uBB6D-\uBB87\uBB89-\uBBA3\uBBA5-\uBBBF\uBBC1-\uBBDB\uBBDD-\uBBF7\uBBF9-\uBC13\uBC15-\uBC2F\uBC31-\uBC4B\uBC4D-\uBC67\uBC69-\uBC83\uBC85-\uBC9F\uBCA1-\uBCBB\uBCBD-\uBCD7\uBCD9-\uBCF3\uBCF5-\uBD0F\uBD11-\uBD2B\uBD2D-\uBD47\uBD49-\uBD63\uBD65-\uBD7F\uBD81-\uBD9B\uBD9D-\uBDB7\uBDB9-\uBDD3\uBDD5-\uBDEF\uBDF1-\uBE0B\uBE0D-\uBE27\uBE29-\uBE43\uBE45-\uBE5F\uBE61-\uBE7B\uBE7D-\uBE97\uBE99-\uBEB3\uBEB5-\uBECF\uBED1-\uBEEB\uBEED-\uBF07\uBF09-\uBF23\uBF25-\uBF3F\uBF41-\uBF5B\uBF5D-\uBF77\uBF79-\uBF93\uBF95-\uBFAF\uBFB1-\uBFCB\uBFCD-\uBFE7\uBFE9-\uC003\uC005-\uC01F\uC021-\uC03B\uC03D-\uC057\uC059-\uC073\uC075-\uC08F\uC091-\uC0AB\uC0AD-\uC0C7\uC0C9-\uC0E3\uC0E5-\uC0FF\uC101-\uC11B\uC11D-\uC137\uC139-\uC153\uC155-\uC16F\uC171-\uC18B\uC18D-\uC1A7\uC1A9-\uC1C3\uC1C5-\uC1DF\uC1E1-\uC1FB\uC1FD-\uC217\uC219-\uC233\uC235-\uC24F\uC251-\uC26B\uC26D-\uC287\uC289-\uC2A3\uC2A5-\uC2BF\uC2C1-\uC2DB\uC2DD-\uC2F7\uC2F9-\uC313\uC315-\uC32F\uC331-\uC34B\uC34D-\uC367\uC369-\uC383\uC385-\uC39F\uC3A1-\uC3BB\uC3BD-\uC3D7\uC3D9-\uC3F3\uC3F5-\uC40F\uC411-\uC42B\uC42D-\uC447\uC449-\uC463\uC465-\uC47F\uC481-\uC49B\uC49D-\uC4B7\uC4B9-\uC4D3\uC4D5-\uC4EF\uC4F1-\uC50B\uC50D-\uC527\uC529-\uC543\uC545-\uC55F\uC561-\uC57B\uC57D-\uC597\uC599-\uC5B3\uC5B5-\uC5CF\uC5D1-\uC5EB\uC5ED-\uC607\uC609-\uC623\uC625-\uC63F\uC641-\uC65B\uC65D-\uC677\uC679-\uC693\uC695-\uC6AF\uC6B1-\uC6CB\uC6CD-\uC6E7\uC6E9-\uC703\uC705-\uC71F\uC721-\uC73B\uC73D-\uC757\uC759-\uC773\uC775-\uC78F\uC791-\uC7AB\uC7AD-\uC7C7\uC7C9-\uC7E3\uC7E5-\uC7FF\uC801-\uC81B\uC81D-\uC837\uC839-\uC853\uC855-\uC86F\uC871-\uC88B\uC88D-\uC8A7\uC8A9-\uC8C3\uC8C5-\uC8DF\uC8E1-\uC8FB\uC8FD-\uC917\uC919-\uC933\uC935-\uC94F\uC951-\uC96B\uC96D-\uC987\uC989-\uC9A3\uC9A5-\uC9BF\uC9C1-\uC9DB\uC9DD-\uC9F7\uC9F9-\uCA13\uCA15-\uCA2F\uCA31-\uCA4B\uCA4D-\uCA67\uCA69-\uCA83\uCA85-\uCA9F\uCAA1-\uCABB\uCABD-\uCAD7\uCAD9-\uCAF3\uCAF5-\uCB0F\uCB11-\uCB2B\uCB2D-\uCB47\uCB49-\uCB63\uCB65-\uCB7F\uCB81-\uCB9B\uCB9D-\uCBB7\uCBB9-\uCBD3\uCBD5-\uCBEF\uCBF1-\uCC0B\uCC0D-\uCC27\uCC29-\uCC43\uCC45-\uCC5F\uCC61-\uCC7B\uCC7D-\uCC97\uCC99-\uCCB3\uCCB5-\uCCCF\uCCD1-\uCCEB\uCCED-\uCD07\uCD09-\uCD23\uCD25-\uCD3F\uCD41-\uCD5B\uCD5D-\uCD77\uCD79-\uCD93\uCD95-\uCDAF\uCDB1-\uCDCB\uCDCD-\uCDE7\uCDE9-\uCE03\uCE05-\uCE1F\uCE21-\uCE3B\uCE3D-\uCE57\uCE59-\uCE73\uCE75-\uCE8F\uCE91-\uCEAB\uCEAD-\uCEC7\uCEC9-\uCEE3\uCEE5-\uCEFF\uCF01-\uCF1B\uCF1D-\uCF37\uCF39-\uCF53\uCF55-\uCF6F\uCF71-\uCF8B\uCF8D-\uCFA7\uCFA9-\uCFC3\uCFC5-\uCFDF\uCFE1-\uCFFB\uCFFD-\uD017\uD019-\uD033\uD035-\uD04F\uD051-\uD06B\uD06D-\uD087\uD089-\uD0A3\uD0A5-\uD0BF\uD0C1-\uD0DB\uD0DD-\uD0F7\uD0F9-\uD113\uD115-\uD12F\uD131-\uD14B\uD14D-\uD167\uD169-\uD183\uD185-\uD19F\uD1A1-\uD1BB\uD1BD-\uD1D7\uD1D9-\uD1F3\uD1F5-\uD20F\uD211-\uD22B\uD22D-\uD247\uD249-\uD263\uD265-\uD27F\uD281-\uD29B\uD29D-\uD2B7\uD2B9-\uD2D3\uD2D5-\uD2EF\uD2F1-\uD30B\uD30D-\uD327\uD329-\uD343\uD345-\uD35F\uD361-\uD37B\uD37D-\uD397\uD399-\uD3B3\uD3B5-\uD3CF\uD3D1-\uD3EB\uD3ED-\uD407\uD409-\uD423\uD425-\uD43F\uD441-\uD45B\uD45D-\uD477\uD479-\uD493\uD495-\uD4AF\uD4B1-\uD4CB\uD4CD-\uD4E7\uD4E9-\uD503\uD505-\uD51F\uD521-\uD53B\uD53D-\uD557\uD559-\uD573\uD575-\uD58F\uD591-\uD5AB\uD5AD-\uD5C7\uD5C9-\uD5E3\uD5E5-\uD5FF\uD601-\uD61B\uD61D-\uD637\uD639-\uD653\uD655-\uD66F\uD671-\uD68B\uD68D-\uD6A7\uD6A9-\uD6C3\uD6C5-\uD6DF\uD6E1-\uD6FB\uD6FD-\uD717\uD719-\uD733\uD735-\uD74F\uD751-\uD76B\uD76D-\uD787\uD789-\uD7A3]$/,Na=/^(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2605\u2607-\u2612\u2614-\u2685\u2690-\u2705\u2708-\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763-\u2767\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDAD-\uDDE5\uDE01-\uDE0F\uDE1A\uDE2F\uDE32-\uDE3A\uDE3C-\uDE3F\uDE49-\uDFFA]|\uD83D[\uDC00-\uDD3D\uDD46-\uDE4F\uDE80-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDEFF]|\uD83F[\uDC00-\uDFFD])$/,Pa=(e,t)=>{var n=ma.Any;return-1!==e.search(Oa)&&(n|=ma.Extend),8205===t&&(n|=ma.ZWJ),t>=127462&&t<=127487&&(n|=ma.RI),-1!==e.search(Ta)&&(n|=ma.Prepend),-1!==e.search(Ba)&&(n|=ma.SpacingMark),-1!==e.search(ka)&&(n|=ma.L),-1!==e.search(_a)&&(n|=ma.V),-1!==e.search(Fa)&&(n|=ma.T),-1!==e.search(Ra)&&(n|=ma.LV),-1!==e.search(ja)&&(n|=ma.LVT),-1!==e.search(Na)&&(n|=ma.ExtPict),n};function Ma(e,t){return 0!==(e&t)}var La=[[ma.L,ma.L|ma.V|ma.LV|ma.LVT],[ma.LV|ma.V,ma.V|ma.T],[ma.LVT|ma.T,ma.T],[ma.Any,ma.Extend|ma.ZWJ],[ma.Any,ma.SpacingMark],[ma.Prepend,ma.Any],[ma.ZWJ,ma.ExtPict],[ma.RI,ma.RI]];function Ha(e,t){return-1===La.findIndex(n=>Ma(e,n[0])&&Ma(t,n[1]))}var za=/(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2605\u2607-\u2612\u2614-\u2685\u2690-\u2705\u2708-\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763-\u2767\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDAD-\uDDE5\uDE01-\uDE0F\uDE1A\uDE2F\uDE32-\uDE3A\uDE3C-\uDE3F\uDE49-\uDFFA]|\uD83D[\uDC00-\uDD3D\uDD46-\uDE4F\uDE80-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDEFF]|\uD83F[\uDC00-\uDFFD])(?:[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09BE\u09C1-\u09C4\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3E\u0B3F\u0B41-\u0B44\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE\u0BC0\u0BCD\u0BD7\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC2\u0CC6\u0CCC\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D3E\u0D41-\u0D44\u0D4D\u0D57\u0D62\u0D63\u0D81\u0DCA\u0DCF\u0DD2-\u0DD4\u0DD6\u0DDF\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200C\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDEFD-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC01\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDE41\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF3E\uDF40\uDF57\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB0\uDCB3-\uDCB8\uDCBA\uDCBD\uDCBF\uDCC0\uDCC2\uDCC3\uDDAF\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD30\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4\uDF00\uDF01\uDF36-\uDF3A\uDF40\uDF42]|\uD80D[\uDC40\uDC47-\uDC55]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65\uDD67-\uDD69\uDD6E-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF])*\u200D$/,Ua=e=>-1!==e.search(za),Wa=/(?:\uD83C[\uDDE6-\uDDFF])+$/g,Va=e=>{var t=e.match(Wa);return null!==t&&t[0].length/2%2==1},$a={delete(e,t){e.delete(t)},insertFragment(e,t,n){e.insertFragment(t,n)},insertText(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};oa.withoutNormalizing(e,()=>{var{voids:r=!1}=n,{at:o=va(e)}=n;if(Ri.isPath(o)&&(o=oa.range(e,o)),Ki.isRange(o))if(Ki.isCollapsed(o))o=o.anchor;else{var i=Ki.end(o);if(!r&&oa.void(e,{at:i}))return;var a=Ki.start(o),s=oa.pointRef(e,a),u=oa.pointRef(e,i);Ga.delete(e,{at:o,voids:r});var c=s.unref(),l=u.unref();o=c||l,Ga.setSelection(e,{anchor:o,focus:o})}if(!(!r&&oa.void(e,{at:o})||oa.elementReadOnly(e,{at:o}))){var{path:d,offset:f}=o;t.length>0&&e.apply({type:"insert_text",path:d,offset:f,text:t})}})}};function qa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ka(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qa(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qa(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Ga=Ka(Ka(Ka(Ka({},Hi),zi),Ui),$a),Xa=new WeakMap;function Za(e,t,n){var r,o,i=Si.get(e)||[],a=Oi.get(e)||new Set,s=e=>{if(e){var t=e.join(",");o.has(t)||(o.add(t),r.push(e))}};if(n)for(var u of(r=[],o=new Set,i)){s(n(u))}else r=i,o=a;for(var c of t)s(c);Si.set(e,r),Oi.set(e,o)}var Ya=(e,t)=>{for(var n of oa.pathRefs(e))xi.transform(n,t);for(var r of oa.pointRefs(e))Ai.transform(r,t);for(var o of oa.rangeRefs(e))Ii.transform(o,t);if(!(e=>Xa.get(e)||!1)(e)){var i=Ri.operationCanTransformPath(t)?e=>Ri.transform(e,t):void 0;Za(e,e.getDirtyPaths(t),i)}Ga.transform(e,t),e.operations.push(t),oa.normalize(e,{operation:t}),"set_selection"===t.type&&(e.marks=null),Ti.get(e)||(Ti.set(e,!0),Promise.resolve().then(()=>{Ti.set(e,!1),e.onChange({operation:t}),e.operations=[]}))};function Ja(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Qa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ja(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ja(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function es(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ts(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?es(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):es(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ns(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ns(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ns(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function os(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function is(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?os(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):os(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function as(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ss(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?as(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):as(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function us(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var cs=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{selection:r,marks:o}=e;if(r){if(o){var i=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?us(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):us(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({text:t},o);Ga.insertNodes(e,i,{at:n.at,voids:n.voids})}else Ga.insertText(e,t,n);e.marks=null}};var ls=["text"],ds=["text"];var fs=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{force:n=!1,operation:r}=t,o=e=>Si.get(e)||[],i=e=>{var t=o(e).pop(),n=t.join(",");return(e=>Oi.get(e)||new Set)(e).delete(n),t};if(oa.isNormalizing(e)){if(n){var a=Array.from(Qi.nodes(e),e=>{var[,t]=e;return t}),s=new Set(a.map(e=>e.join(",")));Si.set(e,a),Oi.set(e,s)}0!==o(e).length&&oa.withoutNormalizing(e,()=>{for(var t of o(e))if(Qi.has(e,t)){var n=oa.node(e,t),[a,s]=n;Xi.isElement(a)&&0===a.children.length&&e.normalizeNode(n,{operation:r})}for(var u=o(e),c=u.length,l=0;0!==u.length;){if(!e.shouldNormalize({dirtyPaths:u,iteration:l,initialDirtyPathsLength:c,operation:r}))return;var d=i(e);if(Qi.has(e,d)){var f=oa.node(e,d);e.normalizeNode(f,{operation:r})}l++,u=o(e)}})}};function hs(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,unit:r="offset",reverse:o=!1,voids:i=!1,ignoreNonSelectable:a=!1}=t;if(n){var s=oa.range(e,n),[u,c]=Ki.edges(s),l=o?c:u,d=!1,f="",h=0,p=0,m=0;for(var[g,v]of oa.nodes(e,{at:n,reverse:o,voids:i,ignoreNonSelectable:a})){if(Xi.isElement(g)){if(!i&&(e.isVoid(g)||e.isElementReadOnly(g))){yield oa.start(e,v);continue}if(e.isInline(g))continue;if(oa.hasInlines(e,g)){var y=Ri.isAncestor(v,c.path)?c:oa.end(e,v),b=Ri.isAncestor(v,u.path)?u:oa.start(e,v);f=oa.string(e,{anchor:b,focus:y},{voids:i}),d=!0}}if(ga.isText(g)){var w=Ri.equals(v,l.path);for(w?(p=o?l.offset:g.text.length-l.offset,m=l.offset):(p=g.text.length,m=o?p:0),(w||d||"offset"===r)&&(yield{path:v,offset:m},d=!1);;){if(0===h){if(""===f)break;h=C(f,r,o),f=Ea(f,h,o)[1]}if(m=o?m-h:m+h,(p-=h)<0){h=-p;break}h=0,yield{path:v,offset:m}}}}}function C(e,t,n){return"character"===t?ba(e,n):"word"===t?function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=0,r=!1;e.length>0;){var o=ba(e,t),[i,a]=Ea(e,o,t);if(xa(i,a,t))r=!0,n+=o;else{if(r)break;n+=o}e=a}return n}(e,n):"line"===t||"block"===t?e.length:1}}()}function ps(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var ms=(e,t)=>{var{selection:n}=e;if(n){var r=(t,n)=>{if(!ga.isText(t))return!1;var[r,o]=oa.parent(e,n);return!e.isVoid(r)||e.markableVoid(r)},o=Ki.isExpanded(n),i=!1;if(!o){var[a,s]=oa.node(e,n);if(a&&r(a,s)){var[u]=oa.parent(e,s);i=u&&e.markableVoid(u)}}if(o||i)Ga.unsetNodes(e,t,{match:r,split:!0,voids:!0});else{var c=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ps(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ps(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},oa.marks(e)||{});delete c[t],e.marks=c,Ti.get(e)||e.onChange()}}};function gs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?gs(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gs(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var ys=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};oa.withoutNormalizing(e,()=>{var{hanging:r=!1,voids:o=!1,mode:i="lowest",batchDirty:a=!0}=n,{at:s,match:u,select:c}=n;if(Qi.isNode(t)&&(t=[t]),0!==t.length){var[l]=t;if(s||(s=va(e),!1!==c&&(c=!0)),null==c&&(c=!1),Ki.isRange(s))if(r||(s=oa.unhangRange(e,s,{voids:o})),Ki.isCollapsed(s))s=s.anchor;else{var[,d]=Ki.edges(s),f=oa.pointRef(e,d);Ga.delete(e,{at:s}),s=f.unref()}if(ua.isPoint(s)){null==u&&(u=ga.isText(l)?e=>ga.isText(e):e.isInline(l)?t=>ga.isText(t)||oa.isInline(e,t):t=>Xi.isElement(t)&&oa.isBlock(e,t));var[h]=oa.nodes(e,{at:s.path,match:u,mode:i,voids:o});if(!h)return;var[,p]=h,m=oa.pathRef(e,p),g=oa.isEnd(e,s,p);Ga.splitNodes(e,{at:s,match:u,mode:i,voids:o});var v=m.unref();s=g?Ri.next(v):v}var y=Ri.parent(s),b=s[s.length-1];if(o||!oa.void(e,{at:y})){if(a){var w=[],C=Ri.levels(y);((e,t,n)=>{var r=Xa.get(e)||!1;Xa.set(e,!0);try{t(),n()}finally{Xa.set(e,r)}})(e,()=>{var n=function(){var t=y.concat(b);b++;var n={type:"insert_node",path:t,node:r};e.apply(n),s=Ri.next(s),w.push(n),ga.isText?C.push(...Array.from(Qi.nodes(r),e=>{var[,n]=e;return t.concat(n)})):C.push(t)};for(var r of t)n()},()=>{Za(e,C,e=>{var t=e;for(var n of w)if(Ri.operationCanTransformPath(n)&&!(t=Ri.transform(t,n)))return null;return t})})}else for(var D of t){var E=y.concat(b);b++,e.apply({type:"insert_node",path:E,node:D}),s=Ri.next(s)}if(s=Ri.previous(s),c){var x=oa.end(e,s);x&&Ga.select(e,x)}}}})},bs=["text"],ws=["children"],Cs=(e,t)=>{if(Xi.isElement(t)){var n=t;return!!oa.isVoid(e,t)||1===n.children.length&&Cs(e,n.children[0])}return!oa.isEditor(t)},Ds=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};oa.withoutNormalizing(e,()=>{var{mode:n="lowest",voids:r=!1}=t,{match:o,at:i=e.selection,height:a=0,always:s=!1}=t;if(null==o&&(o=t=>Xi.isElement(t)&&oa.isBlock(e,t)),Ki.isRange(i)&&(i=((e,t)=>{if(Ki.isCollapsed(t))return t.anchor;var[,n]=Ki.edges(t),r=oa.pointRef(e,n);return Ga.delete(e,{at:t}),r.unref()})(e,i)),Ri.isPath(i)){var u=i,c=oa.point(e,u),[l]=oa.parent(e,u);o=e=>e===l,a=c.path.length-u.length+1,i=c,s=!0}if(i){var d,f=oa.pointRef(e,i,{affinity:"backward"});try{var[h]=oa.nodes(e,{at:i,match:o,mode:n,voids:r});if(!h)return;var p=oa.void(e,{at:i,mode:"highest"});if(!r&&p){var[m,g]=p;if(Xi.isElement(m)&&e.isInline(m)){var v=oa.after(e,g);if(!v){var y=Ri.next(g);Ga.insertNodes(e,{text:""},{at:y,voids:r}),v=oa.point(e,y)}i=v,s=!0}a=i.path.length-g.length+1,s=!0}d=oa.pointRef(e,i);var b=i.path.length-a,[,w]=h,C=i.path.slice(0,b),D=0===a?i.offset:i.path[b]+0;for(var[E,x]of oa.levels(e,{at:C,reverse:!0,voids:r})){var A=!1;if(x.length<w.length||0===x.length||!r&&Xi.isElement(E)&&oa.isVoid(e,E))break;var I=f.current,S=oa.isEnd(e,I,x);if(s||!f||!oa.isEdge(e,I,x)){A=!0;var O=Qi.extractProps(E);e.apply({type:"split_node",path:x,position:D,properties:O})}D=x[x.length-1]+(A||S?1:0)}if(null==t.at){var T=d.current||oa.end(e,[]);Ga.select(e,T)}}finally{var B;f.unref(),null===(B=d)||void 0===B||B.unref()}}})};function Es(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Es(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Es(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var As=()=>{var e={children:[],operations:[],selection:null,marks:null,isElementReadOnly:()=>!1,isInline:()=>!1,isSelectable:()=>!0,isVoid:()=>!1,markableVoid:()=>!1,onChange:()=>{},apply:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return Ya(e,...n)},addMark:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t,n)=>{var{selection:r}=e;if(r){var o=(t,n)=>{if(!ga.isText(t))return!1;var[r,o]=oa.parent(e,n);return!e.isVoid(r)||e.markableVoid(r)},i=Ki.isExpanded(r),a=!1;if(!i){var[s,u]=oa.node(e,r);if(s&&o(s,u)){var[c]=oa.parent(e,u);a=c&&e.markableVoid(c)}}if(i||a)Ga.setNodes(e,{[t]:n},{match:o,split:!0,voids:!0});else{var l=Qa(Qa({},oa.marks(e)||{}),{},{[t]:n});e.marks=l,Ti.get(e)||e.onChange()}}})(e,...n)},deleteBackward:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{var{selection:n}=e;n&&Ki.isCollapsed(n)&&Ga.delete(e,{unit:t,reverse:!0})})(e,...n)},deleteForward:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{var{selection:n}=e;n&&Ki.isCollapsed(n)&&Ga.delete(e,{unit:t})})(e,...n)},deleteFragment:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var{direction:t="forward"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{selection:n}=e;n&&Ki.isExpanded(n)&&Ga.delete(e,{reverse:"backward"===t})}(e,...n)},getFragment:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=>{var{selection:t}=e;return t?Qi.fragment(e,t):[]})(e,...n)},insertBreak:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=>{Ga.splitNodes(e,{always:!0})})(e,...n)},insertSoftBreak:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=>{Ga.splitNodes(e,{always:!0})})(e,...n)},insertFragment:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};oa.withoutNormalizing(e,()=>{var{hanging:r=!1,voids:o=!1}=n,{at:i=va(e),batchDirty:a=!0}=n;if(t.length){if(Ki.isRange(i))if(r||(i=oa.unhangRange(e,i,{voids:o})),Ki.isCollapsed(i))i=i.anchor;else{var[,s]=Ki.edges(i);if(!o&&oa.void(e,{at:s}))return;var u=oa.pointRef(e,s);Ga.delete(e,{at:i}),i=u.unref()}else Ri.isPath(i)&&(i=oa.start(e,i));if(o||!oa.void(e,{at:i})){var c=oa.above(e,{at:i,match:t=>Xi.isElement(t)&&oa.isInline(e,t),mode:"highest",voids:o});if(c){var[,l]=c;oa.isEnd(e,i,l)?i=oa.after(e,l):oa.isStart(e,i,l)&&(i=oa.before(e,l))}var d=oa.above(e,{match:t=>Xi.isElement(t)&&oa.isBlock(e,t),at:i,voids:o}),[,f]=d,h=oa.isStart(e,i,f),p=oa.isEnd(e,i,f),m=h&&p,g=!h||h&&p,v=!p,[,y]=Qi.first({children:t},[]),[,b]=Qi.last({children:t},[]),w=[],C=t=>{var[n,r]=t;return!(0===r.length||!m&&(g&&Ri.isAncestor(r,y)&&Xi.isElement(n)&&!e.isVoid(n)&&!e.isInline(n)||v&&Ri.isAncestor(r,b)&&Xi.isElement(n)&&!e.isVoid(n)&&!e.isInline(n)))};for(var D of Qi.nodes({children:t},{pass:C}))C(D)&&w.push(D);var E=[],x=[],A=[],I=!0,S=!1;for(var[O]of w)Xi.isElement(O)&&!e.isInline(O)?(I=!1,S=!0,x.push(O)):I?E.push(O):A.push(O);var[T]=oa.nodes(e,{at:i,match:t=>ga.isText(t)||oa.isInline(e,t),mode:"highest",voids:o}),[,B]=T,k=oa.isStart(e,i,B),_=oa.isEnd(e,i,B),F=oa.pathRef(e,p&&!A.length?Ri.next(f):f),R=oa.pathRef(e,_?Ri.next(B):B);Ga.splitNodes(e,{at:i,match:t=>S?Xi.isElement(t)&&oa.isBlock(e,t):ga.isText(t)||oa.isInline(e,t),mode:S?"lowest":"highest",always:S&&(!h||E.length>0)&&(!p||A.length>0),voids:o});var j,N=oa.pathRef(e,!k||k&&_?Ri.next(B):B);if(Ga.insertNodes(e,E,{at:N.current,match:t=>ga.isText(t)||oa.isInline(e,t),mode:"highest",voids:o,batchDirty:a}),m&&!E.length&&x.length&&!A.length&&Ga.delete(e,{at:f,voids:o}),Ga.insertNodes(e,x,{at:F.current,match:t=>Xi.isElement(t)&&oa.isBlock(e,t),mode:"lowest",voids:o,batchDirty:a}),Ga.insertNodes(e,A,{at:R.current,match:t=>ga.isText(t)||oa.isInline(e,t),mode:"highest",voids:o,batchDirty:a}),!n.at&&(A.length>0&&R.current?j=Ri.previous(R.current):x.length>0&&F.current?j=Ri.previous(F.current):N.current&&(j=Ri.previous(N.current)),j)){var P=oa.end(e,j);Ga.select(e,P)}N.unref(),F.unref(),R.unref()}}})}(e,...n)},insertNode:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t,n)=>{Ga.insertNodes(e,t,n)})(e,...n)},insertText:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return cs(e,...n)},normalizeNode:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{var[n,r]=t;if(!ga.isText(n))if(Xi.isElement(n)&&0===n.children.length)Ga.insertNodes(e,{text:""},{at:r.concat(0),voids:!0});else for(var o=!oa.isEditor(n)&&Xi.isElement(n)&&(e.isInline(n)||0===n.children.length||ga.isText(n.children[0])||e.isInline(n.children[0])),i=0,a=0;a<n.children.length;a++,i++){var s=Qi.get(e,r);if(!ga.isText(s)){var u=s.children[i],c=s.children[i-1],l=a===n.children.length-1;(ga.isText(u)||Xi.isElement(u)&&e.isInline(u))!==o?(Ga.removeNodes(e,{at:r.concat(i),voids:!0}),i--):Xi.isElement(u)?e.isInline(u)&&(null!=c&&ga.isText(c)?l&&(Ga.insertNodes(e,{text:""},{at:r.concat(i+1),voids:!0}),i++):(Ga.insertNodes(e,{text:""},{at:r.concat(i),voids:!0}),i++)):(ga.isText(u)||"children"in u||(u.children=[]),null!=c&&ga.isText(c)&&(ga.equals(u,c,{loose:!0})?(Ga.mergeNodes(e,{at:r.concat(i),voids:!0}),i--):""===c.text?(Ga.removeNodes(e,{at:r.concat(i-1),voids:!0}),i--):""===u.text&&(Ga.removeNodes(e,{at:r.concat(i),voids:!0}),i--)))}}})(e,...n)},removeMark:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return ms(e,...n)},getDirtyPaths:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{switch(t.type){case"insert_text":case"remove_text":case"set_node":var{path:n}=t;return Ri.levels(n);case"insert_node":var{node:r,path:o}=t,i=Ri.levels(o),a=ga.isText(r)?[]:Array.from(Qi.nodes(r),e=>{var[,t]=e;return o.concat(t)});return[...i,...a];case"merge_node":var{path:s}=t;return[...Ri.ancestors(s),Ri.previous(s)];case"move_node":var{path:u,newPath:c}=t;if(Ri.equals(u,c))return[];var l=[],d=[];for(var f of Ri.ancestors(u)){var h=Ri.transform(f,t);l.push(h)}for(var p of Ri.ancestors(c)){var m=Ri.transform(p,t);d.push(m)}var g=d[d.length-1],v=c[c.length-1],y=g.concat(v);return[...l,...d,y];case"remove_node":var{path:b}=t;return[...Ri.ancestors(b)];case"split_node":var{path:w}=t;return[...Ri.levels(w),Ri.next(w)];default:return[]}})(e,...n)},shouldNormalize:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{var{iteration:n,initialDirtyPathsLength:r}=t,o=42*r;if(n>o)throw new Error("Could not completely normalize the editor after ".concat(o," iterations! This is usually due to incorrect normalization logic that leaves a node in an invalid state."));return!0})(e,...n)},above:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{voids:n=!1,mode:r="lowest",at:o=e.selection,match:i}=t;if(o){var a=oa.path(e,o),s="lowest"===r;for(var[u,c]of oa.levels(e,{at:a,voids:n,match:i,reverse:s}))if(!ga.isText(u))if(Ki.isRange(o)){if(Ri.isAncestor(c,o.anchor.path)&&Ri.isAncestor(c,o.focus.path))return[u,c]}else if(!Ri.equals(a,c))return[u,c]}}(e,...n)},after:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o={anchor:oa.point(e,t,{edge:"end"}),focus:oa.end(e,[])},{distance:i=1}=r,a=0;for(var s of oa.positions(e,ts(ts({},r),{},{at:o}))){if(a>i)break;0!==a&&(n=s),a++}return n}(e,...n)},before:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o={anchor:oa.start(e,[]),focus:oa.point(e,t,{edge:"start"})},{distance:i=1}=r,a=0;for(var s of oa.positions(e,rs(rs({},r),{},{at:o,reverse:!0}))){if(a>i)break;0!==a&&(n=s),a++}return n}(e,...n)},collapse:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{edge:n="anchor"}=t,{selection:r}=e;if(r)if("anchor"===n)Ga.select(e,r.anchor);else if("focus"===n)Ga.select(e,r.focus);else if("start"===n){var[o]=Ki.edges(r);Ga.select(e,o)}else if("end"===n){var[,i]=Ki.edges(r);Ga.select(e,i)}}(e,...n)},delete:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};oa.withoutNormalizing(e,()=>{var n,r,{reverse:o=!1,unit:i="character",distance:a=1,voids:s=!1}=t,{at:u=e.selection,hanging:c=!1}=t;if(u){var l=!1;if(Ki.isRange(u)&&Ki.isCollapsed(u)&&(l=!0,u=u.anchor),ua.isPoint(u)){var d=oa.void(e,{at:u,mode:"highest"});if(!s&&d){var[,f]=d;u=f}else{var h={unit:i,distance:a};u={anchor:u,focus:o?oa.before(e,u,h)||oa.start(e,[]):oa.after(e,u,h)||oa.end(e,[])},c=!0}}if(Ri.isPath(u))Ga.removeNodes(e,{at:u,voids:s});else if(!Ki.isCollapsed(u)){if(!c){var[,p]=Ki.edges(u),m=oa.end(e,[]);ua.equals(p,m)||(u=oa.unhangRange(e,u,{voids:s}))}var[g,v]=Ki.edges(u),y=oa.above(e,{match:t=>Xi.isElement(t)&&oa.isBlock(e,t),at:g,voids:s}),b=oa.above(e,{match:t=>Xi.isElement(t)&&oa.isBlock(e,t),at:v,voids:s}),w=y&&b&&!Ri.equals(y[1],b[1]),C=Ri.equals(g.path,v.path),D=s?null:null!==(n=oa.void(e,{at:g,mode:"highest"}))&&void 0!==n?n:oa.elementReadOnly(e,{at:g,mode:"highest"}),E=s?null:null!==(r=oa.void(e,{at:v,mode:"highest"}))&&void 0!==r?r:oa.elementReadOnly(e,{at:v,mode:"highest"});if(D){var x=oa.before(e,g);x&&y&&Ri.isAncestor(y[1],x.path)&&(g=x)}if(E){var A=oa.after(e,v);A&&b&&Ri.isAncestor(b[1],A.path)&&(v=A)}var I,S=[];for(var O of oa.nodes(e,{at:u,voids:s})){var[T,B]=O;I&&0===Ri.compare(B,I)||(!s&&Xi.isElement(T)&&(oa.isVoid(e,T)||oa.isElementReadOnly(e,T))||!Ri.isCommon(B,g.path)&&!Ri.isCommon(B,v.path))&&(S.push(O),I=B)}var k=Array.from(S,t=>{var[,n]=t;return oa.pathRef(e,n)}),_=oa.pointRef(e,g),F=oa.pointRef(e,v),R="";if(!C&&!D){var j=_.current,[N]=oa.leaf(e,j),{path:P}=j,{offset:M}=g,L=N.text.slice(M);L.length>0&&(e.apply({type:"remove_text",path:P,offset:M,text:L}),R=L)}if(k.reverse().map(e=>e.unref()).filter(e=>null!==e).forEach(t=>Ga.removeNodes(e,{at:t,voids:s})),!E){var H=F.current,[z]=oa.leaf(e,H),{path:U}=H,W=C?g.offset:0,V=z.text.slice(W,v.offset);V.length>0&&(e.apply({type:"remove_text",path:U,offset:W,text:V}),R=V)}!C&&w&&F.current&&_.current&&Ga.mergeNodes(e,{at:F.current,hanging:!0,voids:s}),l&&o&&"character"===i&&R.length>1&&R.match(/[\u0E00-\u0E7F]+/)&&Ga.insertText(e,R.slice(0,R.length-a));var $=_.unref(),q=F.unref(),K=o?$||q:q||$;null==t.at&&K&&Ga.select(e,K)}}})}(e,...n)},deselect:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=>{var{selection:t}=e;t&&e.apply({type:"set_selection",properties:t,newProperties:null})})(e,...n)},edges:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>[oa.start(e,t),oa.end(e,t)])(e,...n)},elementReadOnly:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return oa.above(e,is(is({},t),{},{match:t=>Xi.isElement(t)&&oa.isElementReadOnly(e,t)}))}(e,...n)},end:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>oa.point(e,t,{edge:"end"}))(e,...n)},first:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{var n=oa.path(e,t,{edge:"start"});return oa.node(e,n)})(e,...n)},fragment:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{var n=oa.range(e,t);return Qi.fragment(e,n)})(e,...n)},getMarks:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var{marks:t,selection:n}=e;if(!n)return null;var{anchor:r,focus:o}=n;if(t)return t;if(Ki.isExpanded(n)){if(Ki.isBackward(n)&&([o,r]=[r,o]),oa.isEnd(e,r,r.path)){var i=oa.after(e,r);i&&(r=i)}var[a]=oa.nodes(e,{match:ga.isText,at:{anchor:r,focus:o}});if(a){var[s]=a;return Vi(s,ls)}return{}}var{path:u}=r,[c]=oa.leaf(e,u);if(0===r.offset){var l=oa.previous(e,{at:u,match:ga.isText}),d=oa.above(e,{match:t=>Xi.isElement(t)&&oa.isVoid(e,t)&&e.markableVoid(t)});if(!d){var f=oa.above(e,{match:t=>Xi.isElement(t)&&oa.isBlock(e,t)});if(l&&f){var[h,p]=l,[,m]=f;Ri.isAncestor(m,p)&&(c=h)}}}return Vi(c,ds)}(e,...n)},hasBlocks:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>t.children.some(t=>Xi.isElement(t)&&oa.isBlock(e,t)))(e,...n)},hasInlines:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>t.children.some(t=>ga.isText(t)||oa.isInline(e,t)))(e,...n)},hasPath:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>Qi.has(e,t))(e,...n)},hasTexts:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>t.children.every(e=>ga.isText(e)))(e,...n)},insertNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return ys(e,...n)},isBlock:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>!e.isInline(t))(e,...n)},isEdge:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t,n)=>oa.isStart(e,t,n)||oa.isEnd(e,t,n))(e,...n)},isEmpty:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{var{children:n}=t,[r]=n;return 0===n.length||1===n.length&&ga.isText(r)&&""===r.text&&!e.isVoid(t)})(e,...n)},isEnd:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t,n)=>{var r=oa.end(e,n);return ua.equals(t,r)})(e,...n)},isNormalizing:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=>{var t=Bi.get(e);return void 0===t||t})(e,...n)},isStart:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t,n)=>{if(0!==t.offset)return!1;var r=oa.start(e,n);return ua.equals(t,r)})(e,...n)},last:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{var n=oa.path(e,t,{edge:"end"});return oa.node(e,n)})(e,...n)},leaf:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=oa.path(e,t,n);return[Qi.leaf(e,r),r]}(e,...n)},levels:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,reverse:r=!1,voids:o=!1}=t,{match:i}=t;if(null==i&&(i=()=>!0),n){var a=[],s=oa.path(e,n);for(var[u,c]of Qi.levels(e,s))if(i(u,c)&&(a.push([u,c]),!o&&Xi.isElement(u)&&oa.isVoid(e,u)))break;r&&a.reverse(),yield*a}}()}(e,...n)},liftNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};oa.withoutNormalizing(e,()=>{var{at:n=e.selection,mode:r="lowest",voids:o=!1}=t,{match:i}=t;if(null==i&&(i=Ri.isPath(n)?ya(e,n):t=>Xi.isElement(t)&&oa.isBlock(e,t)),n){var a=oa.nodes(e,{at:n,match:i,mode:r,voids:o}),s=Array.from(a,t=>{var[,n]=t;return oa.pathRef(e,n)});for(var u of s){var c=u.unref();if(c.length<2)throw new Error("Cannot lift node at a path [".concat(c,"] because it has a depth of less than `2`."));var l=oa.node(e,Ri.parent(c)),[d,f]=l,h=c[c.length-1],{length:p}=d.children;if(1===p){var m=Ri.next(f);Ga.moveNodes(e,{at:c,to:m,voids:o}),Ga.removeNodes(e,{at:f,voids:o})}else if(0===h)Ga.moveNodes(e,{at:c,to:f,voids:o});else if(h===p-1){var g=Ri.next(f);Ga.moveNodes(e,{at:c,to:g,voids:o})}else{var v=Ri.next(c),y=Ri.next(f);Ga.splitNodes(e,{at:v,voids:o}),Ga.moveNodes(e,{at:c,to:y,voids:o})}}}})}(e,...n)},mergeNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};oa.withoutNormalizing(e,()=>{var{match:n,at:r=e.selection}=t,{hanging:o=!1,voids:i=!1,mode:a="lowest"}=t;if(r){if(null==n)if(Ri.isPath(r)){var[s]=oa.parent(e,r);n=e=>s.children.includes(e)}else n=t=>Xi.isElement(t)&&oa.isBlock(e,t);if(!o&&Ki.isRange(r)&&(r=oa.unhangRange(e,r,{voids:i})),Ki.isRange(r))if(Ki.isCollapsed(r))r=r.anchor;else{var[,u]=Ki.edges(r),c=oa.pointRef(e,u);Ga.delete(e,{at:r}),r=c.unref(),null==t.at&&Ga.select(e,r)}var[l]=oa.nodes(e,{at:r,match:n,voids:i,mode:a}),d=oa.previous(e,{at:r,match:n,voids:i,mode:a});if(l&&d){var[f,h]=l,[p,m]=d;if(0!==h.length&&0!==m.length){var g,v,y=Ri.next(m),b=Ri.common(h,m),w=Ri.isSibling(h,m),C=Array.from(oa.levels(e,{at:h}),e=>{var[t]=e;return t}).slice(b.length).slice(0,-1),D=oa.above(e,{at:h,mode:"highest",match:t=>C.includes(t)&&Cs(e,t)}),E=D&&oa.pathRef(e,D[1]);if(ga.isText(f)&&ga.isText(p)){var x=Vi(f,bs);v=p.text.length,g=x}else{if(!Xi.isElement(f)||!Xi.isElement(p))throw new Error("Cannot merge the node at path [".concat(h,"] with the previous sibling because it is not the same kind: ").concat(la.stringify(f)," ").concat(la.stringify(p)));x=Vi(f,ws),v=p.children.length,g=x}w||Ga.moveNodes(e,{at:h,to:y,voids:i}),E&&Ga.removeNodes(e,{at:E.current,voids:i}),oa.shouldMergeNodesRemovePrevNode(e,d,l)?Ga.removeNodes(e,{at:m,voids:i}):e.apply({type:"merge_node",path:y,position:v,properties:g}),E&&E.unref()}}}})}(e,...n)},move:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{selection:n}=e,{distance:r=1,unit:o="character",reverse:i=!1}=t,{edge:a=null}=t;if(n){"start"===a&&(a=Ki.isBackward(n)?"focus":"anchor"),"end"===a&&(a=Ki.isBackward(n)?"anchor":"focus");var{anchor:s,focus:u}=n,c={distance:r,unit:o,ignoreNonSelectable:!0},l={};if(null==a||"anchor"===a){var d=i?oa.before(e,s,c):oa.after(e,s,c);d&&(l.anchor=d)}if(null==a||"focus"===a){var f=i?oa.before(e,u,c):oa.after(e,u,c);f&&(l.focus=f)}Ga.setSelection(e,l)}}(e,...n)},moveNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{oa.withoutNormalizing(e,()=>{var{to:n,at:r=e.selection,mode:o="lowest",voids:i=!1}=t,{match:a}=t;if(r){null==a&&(a=Ri.isPath(r)?ya(e,r):t=>Xi.isElement(t)&&oa.isBlock(e,t));var s=oa.pathRef(e,n),u=oa.nodes(e,{at:r,match:a,mode:o,voids:i}),c=Array.from(u,t=>{var[,n]=t;return oa.pathRef(e,n)});for(var l of c){var d=l.unref(),f=s.current;0!==d.length&&e.apply({type:"move_node",path:d,newPath:f}),s.current&&Ri.isSibling(f,d)&&Ri.isAfter(f,d)&&(s.current=Ri.next(s.current))}s.unref()}})})(e,...n)},next:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{mode:n="lowest",voids:r=!1}=t,{match:o,at:i=e.selection}=t;if(i){var a=oa.after(e,i,{voids:r});if(a){var[,s]=oa.last(e,[]),u=[a.path,s];if(Ri.isPath(i)&&0===i.length)throw new Error("Cannot get the next node from the root node!");if(null==o)if(Ri.isPath(i)){var[c]=oa.parent(e,i);o=e=>c.children.includes(e)}else o=()=>!0;var[l]=oa.nodes(e,{at:u,match:o,mode:n,voids:r});return l}}}(e,...n)},node:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=oa.path(e,t,n),o=Qi.get(e,r);return[o,r]}(e,...n)},nodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,mode:r="all",universal:o=!1,reverse:i=!1,voids:a=!1,ignoreNonSelectable:s=!1}=t,{match:u}=t;if(u||(u=()=>!0),n){var c,l;if(ia.isSpan(n))c=n[0],l=n[1];else{var d=oa.path(e,n,{edge:"start"}),f=oa.path(e,n,{edge:"end"});c=i?f:d,l=i?d:f}var h,p=Qi.nodes(e,{reverse:i,from:c,to:l,pass:t=>{var[n]=t;return!(!Xi.isElement(n)||(a||!oa.isVoid(e,n)&&!oa.isElementReadOnly(e,n))&&(!s||oa.isSelectable(e,n)))}}),m=[];for(var[g,v]of p)if(!s||!Xi.isElement(g)||oa.isSelectable(e,g)){var y=h&&0===Ri.compare(v,h[1]);if("highest"!==r||!y)if(u(g,v))if("lowest"===r&&y)h=[g,v];else{var b="lowest"===r?h:[g,v];b&&(o?m.push(b):yield b),h=[g,v]}else if(o&&!y&&ga.isText(g))return}"lowest"===r&&h&&(o?m.push(h):yield h),o&&(yield*m)}}()}(e,...n)},normalize:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return fs(e,...n)},parent:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=oa.path(e,t,n),o=Ri.parent(r);return oa.node(e,o)}(e,...n)},path:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{depth:r,edge:o}=n;if(Ri.isPath(t))if("start"===o){var[,i]=Qi.first(e,t);t=i}else if("end"===o){var[,a]=Qi.last(e,t);t=a}return Ki.isRange(t)&&(t="start"===o?Ki.start(t):"end"===o?Ki.end(t):Ri.common(t.anchor.path,t.focus.path)),ua.isPoint(t)&&(t=t.path),null!=r&&(t=t.slice(0,r)),t}(e,...n)},pathRef:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:r="forward"}=n,o={current:t,affinity:r,unref(){var{current:t}=o;return oa.pathRefs(e).delete(o),o.current=null,t}};return oa.pathRefs(e).add(o),o}(e,...n)},pathRefs:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=>{var t=ki.get(e);return t||(t=new Set,ki.set(e,t)),t})(e,...n)},point:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{edge:r="start"}=n;if(Ri.isPath(t)){var o;if("end"===r){var[,i]=Qi.last(e,t);o=i}else{var[,a]=Qi.first(e,t);o=a}var s=Qi.get(e,o);if(!ga.isText(s))throw new Error("Cannot get the ".concat(r," point in the node at path [").concat(t,"] because it has no ").concat(r," text node."));return{path:o,offset:"end"===r?s.text.length:0}}if(Ki.isRange(t)){var[u,c]=Ki.edges(t);return"start"===r?u:c}return t}(e,...n)},pointRef:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:r="forward"}=n,o={current:t,affinity:r,unref(){var{current:t}=o;return oa.pointRefs(e).delete(o),o.current=null,t}};return oa.pointRefs(e).add(o),o}(e,...n)},pointRefs:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=>{var t=_i.get(e);return t||(t=new Set,_i.set(e,t)),t})(e,...n)},positions:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return hs(e,...n)},previous:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{mode:n="lowest",voids:r=!1}=t,{match:o,at:i=e.selection}=t;if(i){var a=oa.before(e,i,{voids:r});if(a){var[,s]=oa.first(e,[]),u=[a.path,s];if(Ri.isPath(i)&&0===i.length)throw new Error("Cannot get the previous node from the root node!");if(null==o)if(Ri.isPath(i)){var[c]=oa.parent(e,i);o=e=>c.children.includes(e)}else o=()=>!0;var[l]=oa.nodes(e,{reverse:!0,at:u,match:o,mode:n,voids:r});return l}}}(e,...n)},range:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t,n)=>Ki.isRange(t)&&!n?t:{anchor:oa.start(e,t),focus:oa.end(e,n||t)})(e,...n)},rangeRef:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:r="forward"}=n,o={current:t,affinity:r,unref(){var{current:t}=o;return oa.rangeRefs(e).delete(o),o.current=null,t}};return oa.rangeRefs(e).add(o),o}(e,...n)},rangeRefs:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=>{var t=Fi.get(e);return t||(t=new Set,Fi.set(e,t)),t})(e,...n)},removeNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};oa.withoutNormalizing(e,()=>{var{hanging:n=!1,voids:r=!1,mode:o="lowest"}=t,{at:i=e.selection,match:a}=t;if(i){null==a&&(a=Ri.isPath(i)?ya(e,i):t=>Xi.isElement(t)&&oa.isBlock(e,t)),!n&&Ki.isRange(i)&&(i=oa.unhangRange(e,i,{voids:r}));var s=oa.nodes(e,{at:i,match:a,mode:o,voids:r}),u=Array.from(s,t=>{var[,n]=t;return oa.pathRef(e,n)});for(var c of u){var l=c.unref();if(l){var[d]=oa.node(e,l);e.apply({type:"remove_node",path:l,node:d})}}}})}(e,...n)},select:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{var{selection:n}=e;if(t=oa.range(e,t),n)Ga.setSelection(e,t);else{if(!Ki.isRange(t))throw new Error("When setting the selection and the current selection is `null` you must provide at least an `anchor` and `focus`, but you passed: ".concat(la.stringify(t)));e.apply({type:"set_selection",properties:n,newProperties:t})}})(e,...n)},setNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};oa.withoutNormalizing(e,()=>{var{match:r,at:o=e.selection,compare:i,merge:a}=n,{hanging:s=!1,mode:u="lowest",split:c=!1,voids:l=!1}=n;if(o){if(null==r&&(r=Ri.isPath(o)?ya(e,o):t=>Xi.isElement(t)&&oa.isBlock(e,t)),!s&&Ki.isRange(o)&&(o=oa.unhangRange(e,o,{voids:l})),c&&Ki.isRange(o)){if(Ki.isCollapsed(o)&&oa.leaf(e,o.anchor)[0].text.length>0)return;var d=oa.rangeRef(e,o,{affinity:"inward"}),[f,h]=Ki.edges(o),p="lowest"===u?"lowest":"highest",m=oa.isEnd(e,h,h.path);Ga.splitNodes(e,{at:h,match:r,mode:p,voids:l,always:!m});var g=oa.isStart(e,f,f.path);Ga.splitNodes(e,{at:f,match:r,mode:p,voids:l,always:!g}),o=d.unref(),null==n.at&&Ga.select(e,o)}for(var[v,y]of(i||(i=(e,t)=>e!==t),oa.nodes(e,{at:o,match:r,mode:u,voids:l}))){var b={},w={};if(0!==y.length){var C=!1;for(var D in t)"children"!==D&&"text"!==D&&i(t[D],v[D])&&(C=!0,v.hasOwnProperty(D)&&(b[D]=v[D]),a?null!=t[D]&&(w[D]=a(v[D],t[D])):null!=t[D]&&(w[D]=t[D]));C&&e.apply({type:"set_node",path:y,properties:b,newProperties:w})}}}})}(e,...n)},setNormalizing:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{Bi.set(e,t)})(e,...n)},setPoint:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{selection:r}=e,{edge:o="both"}=n;if(r){"start"===o&&(o=Ki.isBackward(r)?"focus":"anchor"),"end"===o&&(o=Ki.isBackward(r)?"anchor":"focus");var{anchor:i,focus:a}=r,s="anchor"===o?i:a;Ga.setSelection(e,{["anchor"===o?"anchor":"focus"]:vs(vs({},s),t)})}}(e,...n)},setSelection:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{var{selection:n}=e,r={},o={};if(n){for(var i in t)("anchor"===i&&null!=t.anchor&&!ua.equals(t.anchor,n.anchor)||"focus"===i&&null!=t.focus&&!ua.equals(t.focus,n.focus)||"anchor"!==i&&"focus"!==i&&t[i]!==n[i])&&(r[i]=n[i],o[i]=t[i]);Object.keys(r).length>0&&e.apply({type:"set_selection",properties:r,newProperties:o})}})(e,...n)},splitNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return Ds(e,...n)},start:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>oa.point(e,t,{edge:"start"}))(e,...n)},string:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{voids:r=!1}=n,o=oa.range(e,t),[i,a]=Ki.edges(o),s="";for(var[u,c]of oa.nodes(e,{at:o,match:ga.isText,voids:r})){var l=u.text;Ri.equals(c,a.path)&&(l=l.slice(0,a.offset)),Ri.equals(c,i.path)&&(l=l.slice(i.offset)),s+=l}return s}(e,...n)},unhangRange:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{voids:r=!1}=n,[o,i]=Ki.edges(t);if(0!==o.offset||0!==i.offset||Ki.isCollapsed(t)||Ri.hasPrevious(i.path))return t;var a=oa.above(e,{at:i,match:t=>Xi.isElement(t)&&oa.isBlock(e,t),voids:r}),s=a?a[1]:[],u={anchor:oa.start(e,o),focus:i},c=!0;for(var[l,d]of oa.nodes(e,{at:u,match:ga.isText,reverse:!0,voids:r}))if(c)c=!1;else if(""!==l.text||Ri.isBefore(d,s)){i={path:d,offset:l.text.length};break}return{anchor:o,focus:i}}(e,...n)},unsetNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Array.isArray(t)||(t=[t]);var r={};for(var o of t)r[o]=null;Ga.setNodes(e,r,n)}(e,...n)},unwrapNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};oa.withoutNormalizing(e,()=>{var{mode:n="lowest",split:r=!1,voids:o=!1}=t,{at:i=e.selection,match:a}=t;if(i){null==a&&(a=Ri.isPath(i)?ya(e,i):t=>Xi.isElement(t)&&oa.isBlock(e,t)),Ri.isPath(i)&&(i=oa.range(e,i));var s=Ki.isRange(i)?oa.rangeRef(e,i):null,u=oa.nodes(e,{at:i,match:a,mode:n,voids:o}),c=Array.from(u,t=>{var[,n]=t;return oa.pathRef(e,n)}).reverse(),l=function(){var t=d.unref(),[n]=oa.node(e,t),i=oa.range(e,t);r&&s&&(i=Ki.intersection(s.current,i)),Ga.liftNodes(e,{at:i,match:e=>Xi.isAncestor(n)&&n.children.includes(e),voids:o})};for(var d of c)l();s&&s.unref()}})}(e,...n)},void:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return oa.above(e,ss(ss({},t),{},{match:t=>Xi.isElement(t)&&oa.isVoid(e,t)}))}(e,...n)},withoutNormalizing:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{var n=oa.isNormalizing(e);oa.setNormalizing(e,!1);try{t()}finally{oa.setNormalizing(e,n)}oa.normalize(e)})(e,...n)},wrapNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};oa.withoutNormalizing(e,()=>{var{mode:r="lowest",split:o=!1,voids:i=!1}=n,{match:a,at:s=e.selection}=n;if(s){if(null==a&&(a=Ri.isPath(s)?ya(e,s):e.isInline(t)?t=>Xi.isElement(t)&&oa.isInline(e,t)||ga.isText(t):t=>Xi.isElement(t)&&oa.isBlock(e,t)),o&&Ki.isRange(s)){var[u,c]=Ki.edges(s),l=oa.rangeRef(e,s,{affinity:"inward"});Ga.splitNodes(e,{at:c,match:a,voids:i}),Ga.splitNodes(e,{at:u,match:a,voids:i}),s=l.unref(),null==n.at&&Ga.select(e,s)}var d=Array.from(oa.nodes(e,{at:s,match:e.isInline(t)?t=>Xi.isElement(t)&&oa.isBlock(e,t):e=>oa.isEditor(e),mode:"lowest",voids:i})),f=function(){var n=Ki.isRange(s)?Ki.intersection(s,oa.range(e,h)):s;if(!n)return 0;var o=Array.from(oa.nodes(e,{at:n,match:a,mode:r,voids:i}));if(o.length>0){var[u]=o,c=o[o.length-1],[,l]=u,[,d]=c;if(0===l.length&&0===d.length)return 0;var f=Ri.equals(l,d)?Ri.parent(l):Ri.common(l,d),p=oa.range(e,l,d),m=oa.node(e,f),[g]=m,v=f.length+1,y=Ri.next(d.slice(0,v)),b=xs(xs({},t),{},{children:[]});Ga.insertNodes(e,b,{at:y,voids:i}),Ga.moveNodes(e,{at:p,match:e=>Xi.isAncestor(g)&&g.children.includes(e),to:y.concat(0),voids:i})}};for(var[,h]of d)f()}})}(e,...n)},shouldMergeNodesRemovePrevNode:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return((e,t)=>{var[n,r]=t;return Xi.isElement(n)&&oa.isEmpty(e,n)||ga.isText(n)&&""===n.text&&0!==r[r.length-1]})(e,...n)}};return e};function Is(e,t,n={}){const{filterVoids:r}=n,o=oa.before(e,t,{unit:"character",voids:r});if(o){const n=oa.range(e,o,Ki.isRange(t)?Ki.start(t):t),r=oa.string(e,n);return{range:n,text:r,void:0===r.length}}}function Ss(e,t,n={}){const{filterVoids:r}=n,o=oa.after(e,t,{unit:"character",voids:r});if(o){const n=oa.range(e,o,Ki.isRange(t)?Ki.end(t):t),r=oa.string(e,n);return{range:n,text:r,void:0===r.length}}}const Os={direction:"before"};function Ts(e,t,n=[" "],r=Os){const{include:o,direction:i}={...Os,...r};let[a,s]=Ki.edges(t),u=a;function c(t){const r="after"===t?oa.after(e,u,{unit:"character"}):oa.before(e,u,{unit:"character"}),o=r&&oa.string(e,"after"===t?{anchor:u,focus:r}:{anchor:r,focus:u}),i=o&&o["after"===t?0:o.length-1];return!(!r||!i||n.includes(i))&&(u=r,0!==u.offset)}if("before"!==i){for(u=s;c("after"););s=u}if("after"!==i){for(u=a;c("before"););a=u}return o?{anchor:oa.before(e,a,{unit:"offset"})??a,focus:oa.after(e,s,{unit:"offset"})??s}:{anchor:a,focus:s}}function Bs(e){return!e.trim()}const ks="@";function _s(e){return Xi.isElement(e)&&"mention"===e.type}function Fs(e){return"type"in e&&"mention"===e.type}function Rs(e){return"type"in e&&"link"===e.type}function js(e){return e.startsWith("http://")||e.startsWith("https://")?e:e.startsWith("www.")?"https://"+e:void 0}const Ns=n.forwardRef(({children:e,asChild:t,...n},r)=>{const o=t?ro:"span";return bn.jsx(o,{...n,ref:r,children:e})}),Ps=n.forwardRef(({children:e,asChild:t,...n},r)=>{const o=t?ro:"a";return bn.jsx(o,{target:"_blank",rel:"noopener noreferrer nofollow",...n,ref:r,children:e})}),Ms={Mention:({userId:e})=>bn.jsxs(Ns,{children:[ks,e]}),Link:({href:e,children:t})=>bn.jsx(Ps,{href:e,children:t})},Ls=n.forwardRef(({body:e,components:t,style:r,asChild:o,...i},a)=>{const s=o?ro:"div",{Mention:u,Link:c}=n.useMemo(()=>({...Ms,...t}),[t]);return e&&e?.content?bn.jsx(s,{...i,style:{whiteSpace:"break-spaces",...r},ref:a,children:e.content.map((e,t)=>"paragraph"===e.type?bn.jsx("p",{style:{minHeight:"1lh"},children:e.children.map((e,t)=>{if(Fs(e))return e.id?bn.jsx(u,{userId:e.id},t):null;if(Rs(e)){const n=js(e.url)??e.url;return bn.jsx(c,{href:n,children:e.text??e.url},t)}let n=e.text;return e.bold&&(n=bn.jsx("strong",{children:n},t)),e.italic&&(n=bn.jsx("em",{children:n},t)),e.strikethrough&&(n=bn.jsx("s",{children:n},t)),e.code&&(n=bn.jsx("code",{children:n},t)),bn.jsx("span",{children:n},t)})},t):null)}):null});var Hs,zs,Us={isHistory:e=>_o(e)&&Array.isArray(e.redos)&&Array.isArray(e.undos)&&(0===e.redos.length||na.isOperationList(e.redos[0].operations))&&(0===e.undos.length||na.isOperationList(e.undos[0].operations))},Ws=new WeakMap,Vs=new WeakMap,$s=new WeakMap,qs={isHistoryEditor:e=>Us.isHistory(e.history)&&oa.isEditor(e),isMerging:e=>Vs.get(e),isSplittingOnce:e=>$s.get(e),setSplittingOnce(e,t){$s.set(e,t)},isSaving:e=>Ws.get(e),redo(e){e.redo()},undo(e){e.undo()},withMerging(e,t){var n=qs.isMerging(e);Vs.set(e,!0),t(),Vs.set(e,n)},withNewBatch(e,t){var n=qs.isMerging(e);Vs.set(e,!0),$s.set(e,!0),t(),Vs.set(e,n),$s.delete(e)},withoutMerging(e,t){var n=qs.isMerging(e);Vs.set(e,!1),t(),Vs.set(e,n)},withoutSaving(e,t){var n=qs.isSaving(e);Ws.set(e,!1),t(),Ws.set(e,n)}},Ks=(e,t)=>!(!t||"insert_text"!==e.type||"insert_text"!==t.type||e.offset!==t.offset+t.text.length||!Ri.equals(e.path,t.path))||!(!t||"remove_text"!==e.type||"remove_text"!==t.type||e.offset+e.text.length!==t.offset||!Ri.equals(e.path,t.path)),Gs=(e,t)=>"set_selection"!==e.type;var Xs,Zs,Ys,Js,Qs,eu,tu,nu,ru,ou,iu,au,su,uu,cu,lu,du,fu,hu,pu,mu,gu,vu,yu,bu,wu,Cu,Du,Eu=pn(function(){if(zs)return Hs;zs=1,Hs=function(e){if(e=String(e||""),n.test(e))return"rtl";if(r.test(e))return"ltr";return"neutral"};var e="֑-߿יִ-﷽ﹰ-ﻼ",t="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ࠀ-῿‎Ⰰ-﬜︀-﹯﻽-￿",n=new RegExp("^[^"+t+"]*["+e+"]"),r=new RegExp("^[^"+e+"]*["+t+"]");return Hs}());function xu(){if(Zs)return Xs;return Zs=1,Xs=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}}function Au(){if(eu)return Qs;eu=1;var e=function(){if(Js)return Ys;Js=1;var e="object"==typeof hn&&hn&&hn.Object===Object&&hn;return Ys=e}(),t="object"==typeof self&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return Qs=n}function Iu(){if(au)return iu;au=1;var e=function(){if(ou)return ru;ou=1;var e=/\s/;return ru=function(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n},ru}(),t=/^\s+/;return iu=function(n){return n?n.slice(0,e(n)+1).replace(t,""):n},iu}function Su(){if(uu)return su;uu=1;var e=Au().Symbol;return su=e}function Ou(){if(pu)return hu;pu=1;var e=Su(),t=function(){if(lu)return cu;lu=1;var e=Su(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,o=e?e.toStringTag:void 0;return cu=function(e){var t=n.call(e,o),i=e[o];try{e[o]=void 0;var a=!0}catch(e){}var s=r.call(e);return a&&(t?e[o]=i:delete e[o]),s}}(),n=function(){if(fu)return du;fu=1;var e=Object.prototype.toString;return du=function(t){return e.call(t)}}(),r=e?e.toStringTag:void 0;return hu=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":r&&r in Object(e)?t(e):n(e)}}function Tu(){if(yu)return vu;yu=1;var e=Ou(),t=gu?mu:(gu=1,mu=function(e){return null!=e&&"object"==typeof e});return vu=function(n){return"symbol"==typeof n||t(n)&&"[object Symbol]"==e(n)}}function Bu(){if(Du)return Cu;Du=1;var e=xu(),t=function(){if(nu)return tu;nu=1;var e=Au();return tu=function(){return e.Date.now()}}(),n=function(){if(wu)return bu;wu=1;var e=Iu(),t=xu(),n=Tu(),r=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,i=/^0o[0-7]+$/i,a=parseInt;return bu=function(s){if("number"==typeof s)return s;if(n(s))return NaN;if(t(s)){var u="function"==typeof s.valueOf?s.valueOf():s;s=t(u)?u+"":u}if("string"!=typeof s)return 0===s?s:+s;s=e(s);var c=o.test(s);return c||i.test(s)?a(s.slice(2),c?2:8):r.test(s)?NaN:+s}}(),r=Math.max,o=Math.min;return Cu=function(i,a,s){var u,c,l,d,f,h,p=0,m=!1,g=!1,v=!0;if("function"!=typeof i)throw new TypeError("Expected a function");function y(e){var t=u,n=c;return u=c=void 0,p=e,d=i.apply(n,t)}function b(e){var t=e-h;return void 0===h||t>=a||t<0||g&&e-p>=l}function w(){var e=t();if(b(e))return C(e);f=setTimeout(w,function(e){var t=a-(e-h);return g?o(t,l-(e-p)):t}(e))}function C(e){return f=void 0,v&&u?y(e):(u=c=void 0,d)}function D(){var e=t(),n=b(e);if(u=arguments,c=this,h=e,n){if(void 0===f)return function(e){return p=e,f=setTimeout(w,a),m?y(e):d}(h);if(g)return clearTimeout(f),f=setTimeout(w,a),y(h)}return void 0===f&&(f=setTimeout(w,a)),d}return a=n(a)||0,e(s)&&(m=!!s.leading,l=(g="maxWait"in s)?r(n(s.maxWait)||0,a):l,v="trailing"in s?!!s.trailing:v),D.cancel=function(){void 0!==f&&clearTimeout(f),p=0,u=h=c=f=void 0},D.flush=function(){return void 0===f?d:C(t())},D},Cu}var ku,_u,Fu=pn(Bu());var Ru=function(){if(_u)return ku;_u=1;var e=Bu(),t=xu();return ku=function(n,r,o){var i=!0,a=!0;if("function"!=typeof n)throw new TypeError("Expected a function");return t(o)&&(i="leading"in o?!!o.leading:i,a="trailing"in o?!!o.trailing:a),e(n,r,{leading:i,maxWait:r,trailing:a})},ku}(),ju=pn(Ru);const Nu=e=>"object"==typeof e&&null!=e&&1===e.nodeType,Pu=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,Mu=(e,t)=>{if(e.clientHeight<e.scrollHeight||e.clientWidth<e.scrollWidth){const n=getComputedStyle(e,null);return Pu(n.overflowY,t)||Pu(n.overflowX,t)||(e=>{const t=(e=>{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e);return!!t&&(t.clientHeight<e.scrollHeight||t.clientWidth<e.scrollWidth)})(e)}return!1},Lu=(e,t,n,r,o,i,a,s)=>i<e&&a>t||i>e&&a<t?0:i<=e&&s<=n||a>=t&&s>=n?i-e-r:a>t&&s<n||i<e&&s>n?a-t+o:0,Hu=e=>{const t=e.parentElement;return null==t?e.getRootNode().host||null:t},zu=(e,t)=>{var n,r,o,i;if("undefined"==typeof document)return[];const{scrollMode:a,block:s,inline:u,boundary:c,skipOverflowHiddenElements:l}=t,d="function"==typeof c?c:e=>e!==c;if(!Nu(e))throw new TypeError("Invalid target");const f=document.scrollingElement||document.documentElement,h=[];let p=e;for(;Nu(p)&&d(p);){if(p=Hu(p),p===f){h.push(p);break}null!=p&&p===document.body&&Mu(p)&&!Mu(document.documentElement)||null!=p&&Mu(p,l)&&h.push(p)}const m=null!=(r=null==(n=window.visualViewport)?void 0:n.width)?r:innerWidth,g=null!=(i=null==(o=window.visualViewport)?void 0:o.height)?i:innerHeight,{scrollX:v,scrollY:y}=window,{height:b,width:w,top:C,right:D,bottom:E,left:x}=e.getBoundingClientRect(),{top:A,right:I,bottom:S,left:O}=(e=>{const t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);let T="start"===s||"nearest"===s?C-A:"end"===s?E+S:C+b/2-A+S,B="center"===u?x+w/2-O+I:"end"===u?D+I:x-O;const k=[];for(let e=0;e<h.length;e++){const t=h[e],{height:n,width:r,top:o,right:i,bottom:c,left:l}=t.getBoundingClientRect();if("if-needed"===a&&C>=0&&x>=0&&E<=g&&D<=m&&(t===f&&!Mu(t)||C>=o&&E<=c&&x>=l&&D<=i))return k;const d=getComputedStyle(t),p=parseInt(d.borderLeftWidth,10),A=parseInt(d.borderTopWidth,10),I=parseInt(d.borderRightWidth,10),S=parseInt(d.borderBottomWidth,10);let O=0,_=0;const F="offsetWidth"in t?t.offsetWidth-t.clientWidth-p-I:0,R="offsetHeight"in t?t.offsetHeight-t.clientHeight-A-S:0,j="offsetWidth"in t?0===t.offsetWidth?0:r/t.offsetWidth:0,N="offsetHeight"in t?0===t.offsetHeight?0:n/t.offsetHeight:0;if(f===t)O="start"===s?T:"end"===s?T-g:"nearest"===s?Lu(y,y+g,g,A,S,y+T,y+T+b,b):T-g/2,_="start"===u?B:"center"===u?B-m/2:"end"===u?B-m:Lu(v,v+m,m,p,I,v+B,v+B+w,w),O=Math.max(0,O+y),_=Math.max(0,_+v);else{O="start"===s?T-o-A:"end"===s?T-c+S+R:"nearest"===s?Lu(o,c,n,A,S+R,T,T+b,b):T-(o+n/2)+R/2,_="start"===u?B-l-p:"center"===u?B-(l+r/2)+F/2:"end"===u?B-i+I+F:Lu(l,i,r,p,I+F,B,B+w,w);const{scrollLeft:e,scrollTop:a}=t;O=0===N?0:Math.max(0,Math.min(a+O/N,t.scrollHeight-n/N+R)),_=0===j?0:Math.max(0,Math.min(e+_/j,t.scrollWidth-r/j+F)),T+=a-O,B+=e-_}k.push({el:t,top:O,left:_})}return k};function Uu(e,t){if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;const n=(e=>{const t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);if((e=>"object"==typeof e&&"function"==typeof e.behavior)(t))return t.behavior(zu(e,t));const r="boolean"==typeof t||null==t?void 0:t.behavior;for(const{el:o,top:i,left:a}of zu(e,(e=>!1===e?{block:"end",inline:"nearest"}:(e=>e===Object(e)&&0!==Object.keys(e).length)(e)?e:{block:"start",inline:"nearest"})(t))){const e=i-n.top+n.bottom,t=a-n.left+n.right;o.scroll({top:e,left:t,behavior:r})}}var Wu,Vu=[],$u=function(){return Vu.some(function(e){return e.activeTargets.length>0})},qu="ResizeObserver loop completed with undelivered notifications.";!function(e){e.BORDER_BOX="border-box",e.CONTENT_BOX="content-box",e.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"}(Wu||(Wu={}));var Ku,Gu,Xu=function(e){return Object.freeze(e)},Zu=function(e,t){this.inlineSize=e,this.blockSize=t,Xu(this)},Yu=function(){function e(e,t,n,r){return this.x=e,this.y=t,this.width=n,this.height=r,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,Xu(this)}return e.prototype.toJSON=function(){var e=this;return{x:e.x,y:e.y,top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e}(),Ju=function(e){return e instanceof SVGElement&&"getBBox"in e},Qu=function(e){if(Ju(e)){var t=e.getBBox(),n=t.width,r=t.height;return!n&&!r}var o=e,i=o.offsetWidth,a=o.offsetHeight;return!(i||a||e.getClientRects().length)},ec=function(e){var t;if(e instanceof Element)return!0;var n=null===(t=null==e?void 0:e.ownerDocument)||void 0===t?void 0:t.defaultView;return!!(n&&e instanceof n.Element)},tc="undefined"!=typeof window?window:{},nc=new WeakMap,rc=/auto|scroll/,oc=/^tb|vertical/,ic=/msie|trident/i.test(tc.navigator&&tc.navigator.userAgent),ac=function(e){return parseFloat(e||"0")},sc=function(e,t,n){return void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=!1),new Zu((n?t:e)||0,(n?e:t)||0)},uc=Xu({devicePixelContentBoxSize:sc(),borderBoxSize:sc(),contentBoxSize:sc(),contentRect:new Yu(0,0,0,0)}),cc=function(e,t){if(void 0===t&&(t=!1),nc.has(e)&&!t)return nc.get(e);if(Qu(e))return nc.set(e,uc),uc;var n=getComputedStyle(e),r=Ju(e)&&e.ownerSVGElement&&e.getBBox(),o=!ic&&"border-box"===n.boxSizing,i=oc.test(n.writingMode||""),a=!r&&rc.test(n.overflowY||""),s=!r&&rc.test(n.overflowX||""),u=r?0:ac(n.paddingTop),c=r?0:ac(n.paddingRight),l=r?0:ac(n.paddingBottom),d=r?0:ac(n.paddingLeft),f=r?0:ac(n.borderTopWidth),h=r?0:ac(n.borderRightWidth),p=r?0:ac(n.borderBottomWidth),m=d+c,g=u+l,v=(r?0:ac(n.borderLeftWidth))+h,y=f+p,b=s?e.offsetHeight-y-e.clientHeight:0,w=a?e.offsetWidth-v-e.clientWidth:0,C=o?m+v:0,D=o?g+y:0,E=r?r.width:ac(n.width)-C-w,x=r?r.height:ac(n.height)-D-b,A=E+m+w+v,I=x+g+b+y,S=Xu({devicePixelContentBoxSize:sc(Math.round(E*devicePixelRatio),Math.round(x*devicePixelRatio),i),borderBoxSize:sc(A,I,i),contentBoxSize:sc(E,x,i),contentRect:new Yu(d,u,E,x)});return nc.set(e,S),S},lc=function(e,t,n){var r=cc(e,n),o=r.borderBoxSize,i=r.contentBoxSize,a=r.devicePixelContentBoxSize;switch(t){case Wu.DEVICE_PIXEL_CONTENT_BOX:return a;case Wu.BORDER_BOX:return o;default:return i}},dc=function(e){var t=cc(e);this.target=e,this.contentRect=t.contentRect,this.borderBoxSize=Xu([t.borderBoxSize]),this.contentBoxSize=Xu([t.contentBoxSize]),this.devicePixelContentBoxSize=Xu([t.devicePixelContentBoxSize])},fc=function(e){if(Qu(e))return 1/0;for(var t=0,n=e.parentNode;n;)t+=1,n=n.parentNode;return t},hc=function(){var e=1/0,t=[];Vu.forEach(function(n){if(0!==n.activeTargets.length){var r=[];n.activeTargets.forEach(function(t){var n=new dc(t.target),o=fc(t.target);r.push(n),t.lastReportedSize=lc(t.target,t.observedBox),o<e&&(e=o)}),t.push(function(){n.callback.call(n.observer,r,n.observer)}),n.activeTargets.splice(0,n.activeTargets.length)}});for(var n=0,r=t;n<r.length;n++){(0,r[n])()}return e},pc=function(e){Vu.forEach(function(t){t.activeTargets.splice(0,t.activeTargets.length),t.skippedTargets.splice(0,t.skippedTargets.length),t.observationTargets.forEach(function(n){n.isActive()&&(fc(n.target)>e?t.activeTargets.push(n):t.skippedTargets.push(n))})})},mc=function(){var e,t=0;for(pc(t);$u();)t=hc(),pc(t);return Vu.some(function(e){return e.skippedTargets.length>0})&&("function"==typeof ErrorEvent?e=new ErrorEvent("error",{message:qu}):((e=document.createEvent("Event")).initEvent("error",!1,!1),e.message=qu),window.dispatchEvent(e)),t>0},gc=[],vc=function(e){if(!Ku){var t=0,n=document.createTextNode("");new MutationObserver(function(){return gc.splice(0).forEach(function(e){return e()})}).observe(n,{characterData:!0}),Ku=function(){n.textContent="".concat(t?t--:t++)}}gc.push(e),Ku()},yc=0,bc={attributes:!0,characterData:!0,childList:!0,subtree:!0},wc=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],Cc=function(e){return void 0===e&&(e=0),Date.now()+e},Dc=!1,Ec=new(function(){function e(){var e=this;this.stopped=!0,this.listener=function(){return e.schedule()}}return e.prototype.run=function(e){var t=this;if(void 0===e&&(e=250),!Dc){Dc=!0;var n,r=Cc(e);n=function(){var n=!1;try{n=mc()}finally{if(Dc=!1,e=r-Cc(),!yc)return;n?t.run(1e3):e>0?t.run(e):t.start()}},vc(function(){requestAnimationFrame(n)})}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var e=this,t=function(){return e.observer&&e.observer.observe(document.body,bc)};document.body?t():tc.addEventListener("DOMContentLoaded",t)},e.prototype.start=function(){var e=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),wc.forEach(function(t){return tc.addEventListener(t,e.listener,!0)}))},e.prototype.stop=function(){var e=this;this.stopped||(this.observer&&this.observer.disconnect(),wc.forEach(function(t){return tc.removeEventListener(t,e.listener,!0)}),this.stopped=!0)},e}()),xc=function(e){!yc&&e>0&&Ec.start(),!(yc+=e)&&Ec.stop()},Ac=function(){function e(e,t){this.target=e,this.observedBox=t||Wu.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return e.prototype.isActive=function(){var e,t=lc(this.target,this.observedBox,!0);return e=this.target,Ju(e)||function(e){switch(e.tagName){case"INPUT":if("image"!==e.type)break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1}(e)||"inline"!==getComputedStyle(e).display||(this.lastReportedSize=t),this.lastReportedSize.inlineSize!==t.inlineSize||this.lastReportedSize.blockSize!==t.blockSize},e}(),Ic=function(e,t){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=e,this.callback=t},Sc=new WeakMap,Oc=function(e,t){for(var n=0;n<e.length;n+=1)if(e[n].target===t)return n;return-1},Tc=function(){function e(){}return e.connect=function(e,t){var n=new Ic(e,t);Sc.set(e,n)},e.observe=function(e,t,n){var r=Sc.get(e),o=0===r.observationTargets.length;Oc(r.observationTargets,t)<0&&(o&&Vu.push(r),r.observationTargets.push(new Ac(t,n&&n.box)),xc(1),Ec.schedule())},e.unobserve=function(e,t){var n=Sc.get(e),r=Oc(n.observationTargets,t),o=1===n.observationTargets.length;r>=0&&(o&&Vu.splice(Vu.indexOf(n),1),n.observationTargets.splice(r,1),xc(-1))},e.disconnect=function(e){var t=this,n=Sc.get(e);n.observationTargets.slice().forEach(function(n){return t.unobserve(e,n.target)}),n.activeTargets.splice(0,n.activeTargets.length)},e}(),Bc=function(){function e(e){if(0===arguments.length)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if("function"!=typeof e)throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");Tc.connect(this,e)}return e.prototype.observe=function(e,t){if(0===arguments.length)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!ec(e))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");Tc.observe(this,e,t)},e.prototype.unobserve=function(e){if(0===arguments.length)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!ec(e))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");Tc.unobserve(this,e)},e.prototype.disconnect=function(){Tc.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e}(),kc={};var _c=function(){if(Gu)return kc;Gu=1,Object.defineProperty(kc,"__esModule",{value:!0});for(var e="undefined"!=typeof window&&/Mac|iPod|iPhone|iPad/.test(window.navigator.platform),t={alt:"altKey",control:"ctrlKey",meta:"metaKey",shift:"shiftKey"},n={add:"+",break:"pause",cmd:"meta",command:"meta",ctl:"control",ctrl:"control",del:"delete",down:"arrowdown",esc:"escape",ins:"insert",left:"arrowleft",mod:e?"meta":"control",opt:"alt",option:"alt",return:"enter",right:"arrowright",space:" ",spacebar:" ",up:"arrowup",win:"meta",windows:"meta"},r={backspace:8,tab:9,enter:13,shift:16,control:17,alt:18,pause:19,capslock:20,escape:27," ":32,pageup:33,pagedown:34,end:35,home:36,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,insert:45,delete:46,meta:91,numlock:144,scrolllock:145,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},o=1;o<20;o++)r["f"+o]=111+o;function i(e,t,n){t&&!("byKey"in t)&&(n=t,t=null),Array.isArray(e)||(e=[e]);var r=e.map(function(e){return a(e,t)}),o=function(e){return r.some(function(t){return s(t,e)})};return null==n?o:o(n)}function a(e,o){var i=o&&o.byKey,a={},s=(e=e.replace("++","+add")).split("+"),l=s.length;for(var d in t)a[t[d]]=!1;var f=!0,h=!1,p=void 0;try{for(var m,g=s[Symbol.iterator]();!(f=(m=g.next()).done);f=!0){var v=m.value,y=v.endsWith("?")&&v.length>1;y&&(v=v.slice(0,-1));var b=c(v),w=t[b];if(v.length>1&&!w&&!n[v]&&!r[b])throw new TypeError('Unknown modifier: "'+v+'"');1!==l&&w||(i?a.key=b:a.which=u(v)),w&&(a[w]=!y||null)}}catch(e){h=!0,p=e}finally{try{!f&&g.return&&g.return()}finally{if(h)throw p}}return a}function s(e,t){for(var n in e){var r=e[n],o=void 0;if(null!=r&&((null!=(o="key"===n&&null!=t.key?t.key.toLowerCase():"which"===n?91===r&&93===t.which?91:t.which:t[n])||!1!==r)&&o!==r))return!1}return!0}function u(e){return e=c(e),r[e]||e.toUpperCase().charCodeAt(0)}function c(e){return e=e.toLowerCase(),e=n[e]||e}return kc.default=i,kc.isHotkey=i,kc.isCodeHotkey=function(e,t){return i(e,t)},kc.isKeyHotkey=function(e,t){return i(e,{byKey:!0},t)},kc.parseHotkey=a,kc.compareHotkey=s,kc.toKeyCode=u,kc.toKeyName=c,kc}();function Fc(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Rc(e){return Rc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Rc(e)}function jc(e){var t=function(e,t){if("object"!==Rc(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Rc(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Rc(t)?t:String(t)}function Nc(e,t,n){return(t=jc(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Pc,Mc,Lc=n.createContext(null),Hc=()=>{var e=n.useContext(Lc);if(!e)throw new Error("The `useSlateStatic` hook must be used inside the <Slate> component's context.");return e},zc=parseInt(u.default.version.split(".")[0],10),Uc="undefined"!=typeof navigator&&/Android/.test(navigator.userAgent),Wc="undefined"!=typeof navigator&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),Vc="undefined"!=typeof navigator&&/AppleWebKit(?!.*Chrome)/i.test(navigator.userAgent),$c="undefined"!=typeof navigator&&/Edge?\/(?:[0-6][0-9]|[0-7][0-8])(?:\.)/i.test(navigator.userAgent),qc="undefined"!=typeof navigator&&/Chrome/i.test(navigator.userAgent),Kc="undefined"!=typeof navigator&&/Chrome?\/(?:[0-7][0-5]|[0-6][0-9])(?:\.)/i.test(navigator.userAgent),Gc=Uc&&"undefined"!=typeof navigator&&/Chrome?\/(?:[0-5]?\d)(?:\.)/i.test(navigator.userAgent),Xc="undefined"!=typeof navigator&&/^(?!.*Seamonkey)(?=.*Firefox\/(?:[0-7][0-9]|[0-8][0-6])(?:\.)).*/i.test(navigator.userAgent),Zc="undefined"!=typeof navigator&&/.*UCBrowser/.test(navigator.userAgent),Yc="undefined"!=typeof navigator&&/.*Wechat/.test(navigator.userAgent)&&!/.*MacWechat/.test(navigator.userAgent),Jc=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement);"undefined"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&/Version\/(\d+)/.test(navigator.userAgent)&&null!==(Pc=navigator.userAgent.match(/Version\/(\d+)/))&&void 0!==Pc&&Pc[1]&&parseInt(null===(Mc=navigator.userAgent.match(/Version\/(\d+)/))||void 0===Mc?void 0:Mc[1],10);var Qc=(!Kc||!Gc)&&!$c&&"undefined"!=typeof globalThis&&globalThis.InputEvent&&"function"==typeof globalThis.InputEvent.prototype.getTargetRanges,el=new WeakMap,tl=new WeakMap,nl=new WeakMap,rl=new WeakMap,ol=new WeakMap,il=new WeakMap,al=new WeakMap,sl=new WeakMap,ul=new WeakMap,cl=new WeakMap,ll=new WeakMap,dl=new WeakMap,fl=new WeakMap,hl=new WeakMap,pl=new WeakMap,ml=new WeakMap,gl=new WeakMap,vl=new WeakMap,yl=new WeakMap,bl=new WeakMap,wl=new WeakMap,Cl=new WeakMap,Dl=Symbol("placeholder"),El=Symbol("mark-placeholder"),xl=globalThis.Node,Al=globalThis.Text,Il=e=>e&&e.ownerDocument&&e.ownerDocument.defaultView||null,Sl=e=>Tl(e)&&8===e.nodeType,Ol=e=>Tl(e)&&1===e.nodeType,Tl=e=>{var t=Il(e);return!!t&&e instanceof t.Node},Bl=e=>{var t=e&&e.anchorNode&&Il(e.anchorNode);return!!t&&e instanceof t.Selection},kl=e=>Tl(e)&&3===e.nodeType,_l=(e,t,n)=>{for(var{childNodes:r}=e,o=r[t],i=t,a=!1,s=!1;(Sl(o)||Ol(o)&&0===o.childNodes.length||Ol(o)&&"false"===o.getAttribute("contenteditable"))&&(!a||!s);)i>=r.length?(a=!0,i=t-1,n="backward"):i<0?(s=!0,i=t+1,n="forward"):(o=r[i],t=i,i+="forward"===n?1:-1);return[o,t]},Fl=(e,t,n)=>{var[r]=_l(e,t,n);return r},Rl=e=>{var t="";if(kl(e)&&e.nodeValue)return e.nodeValue;if(Ol(e)){for(var n of Array.from(e.childNodes))t+=Rl(n);var r=getComputedStyle(e).getPropertyValue("display");"block"!==r&&"list"!==r&&"BR"!==e.tagName||(t+="\n")}return t},jl=/data-slate-fragment="(.+?)"/m,Nl=e=>null!=e.getSelection?e.getSelection():document.getSelection(),Pl=(e,t,n)=>{var{target:r}=t;if(Ol(r)&&r.matches('[contentEditable="false"]'))return!1;var{document:o}=zl.getWindow(e);if(o.contains(r))return zl.hasDOMNode(e,r,{editable:!0});var i=n.find(e=>{var{addedNodes:t,removedNodes:n}=e;for(var o of t)if(o===r||o.contains(r))return!0;for(var i of n)if(i===r||i.contains(r))return!0});return!(!i||i===t)&&Pl(e,i,n)},Ml=(e,t)=>Boolean(e.compareDocumentPosition(t)&xl.DOCUMENT_POSITION_PRECEDING),Ll=0;class Hl{constructor(){Nc(this,"id",void 0),this.id="".concat(Ll++)}}var zl={androidPendingDiffs:e=>yl.get(e),androidScheduleFlush:e=>{var t;null===(t=ml.get(e))||void 0===t||t()},blur:e=>{var t=zl.toDOMNode(e,e),n=zl.findDocumentOrShadowRoot(e);dl.set(e,!1),n.activeElement===t&&t.blur()},deselect:e=>{var{selection:t}=e,n=zl.findDocumentOrShadowRoot(e),r=Nl(n);r&&r.rangeCount>0&&r.removeAllRanges(),t&&Ga.deselect(e)},findDocumentOrShadowRoot:e=>{var t=zl.toDOMNode(e,e),n=t.getRootNode();return n instanceof Document||n instanceof ShadowRoot?n:t.ownerDocument},findEventRange:(e,t)=>{"nativeEvent"in t&&(t=t.nativeEvent);var{clientX:n,clientY:r,target:o}=t;if(null==n||null==r)throw new Error("Cannot resolve a Slate range from a DOM event: ".concat(t));var i,a=zl.toSlateNode(e,t.target),s=zl.findPath(e,a);if(Xi.isElement(a)&&oa.isVoid(e,a)){var u=o.getBoundingClientRect(),c=e.isInline(a)?n-u.left<u.left+u.width-n:r-u.top<u.top+u.height-r,l=oa.point(e,s,{edge:c?"start":"end"}),d=c?oa.before(e,l):oa.after(e,l);if(d)return oa.range(e,d)}var{document:f}=zl.getWindow(e);if(f.caretRangeFromPoint)i=f.caretRangeFromPoint(n,r);else{var h=f.caretPositionFromPoint(n,r);h&&((i=f.createRange()).setStart(h.offsetNode,h.offset),i.setEnd(h.offsetNode,h.offset))}if(!i)throw new Error("Cannot resolve a Slate range from a DOM event: ".concat(t));return zl.toSlateRange(e,i,{exactMatch:!1,suppressThrow:!1})},findKey:(e,t)=>{var n=ul.get(t);return n||(n=new Hl,ul.set(t,n)),n},findPath:(e,t)=>{for(var n=[],r=t;;){var o=nl.get(r);if(null==o){if(oa.isEditor(r))return n;break}var i=tl.get(r);if(null==i)break;n.unshift(i),r=o}throw new Error("Unable to find the path for Slate node: ".concat(la.stringify(t)))},focus:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{retries:5};if(!dl.get(e)){if(t.retries<=0)throw new Error("Could not set focus, editor seems stuck with pending operations");if(e.operations.length>0)setTimeout(()=>{zl.focus(e,{retries:t.retries-1})},10);else{var n=zl.toDOMNode(e,e),r=zl.findDocumentOrShadowRoot(e);if(r.activeElement!==n){if(e.selection&&r instanceof Document){var o=Nl(r),i=zl.toDOMRange(e,e.selection);null==o||o.removeAllRanges(),null==o||o.addRange(i)}e.selection||Ga.select(e,oa.start(e,[])),dl.set(e,!0),n.focus({preventScroll:!0})}}}},getWindow:e=>{var t=rl.get(e);if(!t)throw new Error("Unable to find a host window element for this editor");return t},hasDOMNode:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{editable:o=!1}=r,i=zl.toDOMNode(e,e);try{n=Ol(t)?t:t.parentElement}catch(e){if(e instanceof Error&&!e.message.includes('Permission denied to access property "nodeType"'))throw e}return!!n&&!(n.closest("[data-slate-editor]")!==i||o&&!n.isContentEditable&&("boolean"!=typeof n.isContentEditable||n.closest('[contenteditable="false"]')!==i)&&!n.getAttribute("data-slate-zero-width"))},hasEditableTarget:(e,t)=>Tl(t)&&zl.hasDOMNode(e,t,{editable:!0}),hasRange:(e,t)=>{var{anchor:n,focus:r}=t;return oa.hasPath(e,n.path)&&oa.hasPath(e,r.path)},hasSelectableTarget:(e,t)=>zl.hasEditableTarget(e,t)||zl.isTargetInsideNonReadonlyVoid(e,t),hasTarget:(e,t)=>Tl(t)&&zl.hasDOMNode(e,t),insertData:(e,t)=>{e.insertData(t)},insertFragmentData:(e,t)=>e.insertFragmentData(t),insertTextData:(e,t)=>e.insertTextData(t),isComposing:e=>!!fl.get(e),isFocused:e=>!!dl.get(e),isReadOnly:e=>!!ll.get(e),isTargetInsideNonReadonlyVoid:(e,t)=>{if(ll.get(e))return!1;var n=zl.hasTarget(e,t)&&zl.toSlateNode(e,t);return Xi.isElement(n)&&oa.isVoid(e,n)},setFragmentData:(e,t,n)=>e.setFragmentData(t,n),toDOMNode:(e,t)=>{var n=cl.get(e),r=oa.isEditor(t)?ol.get(e):null==n?void 0:n.get(zl.findKey(e,t));if(!r)throw new Error("Cannot resolve a DOM node from Slate node: ".concat(la.stringify(t)));return r},toDOMPoint:(e,t)=>{var n,[r]=oa.node(e,t.path),o=zl.toDOMNode(e,r);oa.void(e,{at:t})&&(t={path:t.path,offset:0});for(var i=Array.from(o.querySelectorAll("[data-slate-string], [data-slate-zero-width]")),a=0,s=0;s<i.length;s++){var u=i[s],c=u.childNodes[0];if(null!=c&&null!=c.textContent){var{length:l}=c.textContent,d=u.getAttribute("data-slate-length"),f=a+(null==d?l:parseInt(d,10)),h=i[s+1];if(t.offset===f&&null!=h&&h.hasAttribute("data-slate-mark-placeholder")){var p,m=h.childNodes[0];n=[m instanceof Al?m:h,null!==(p=h.textContent)&&void 0!==p&&p.startsWith("\ufeff")?1:0];break}if(t.offset<=f){n=[c,Math.min(l,Math.max(0,t.offset-a))];break}a=f}}if(!n)throw new Error("Cannot resolve a DOM point from Slate point: ".concat(la.stringify(t)));return n},toDOMRange:(e,t)=>{var{anchor:n,focus:r}=t,o=Ki.isBackward(t),i=zl.toDOMPoint(e,n),a=Ki.isCollapsed(t)?i:zl.toDOMPoint(e,r),s=zl.getWindow(e).document.createRange(),[u,c]=o?a:i,[l,d]=o?i:a,f=!!(Ol(u)?u:u.parentElement).getAttribute("data-slate-zero-width"),h=!!(Ol(l)?l:l.parentElement).getAttribute("data-slate-zero-width");return s.setStart(u,f?1:c),s.setEnd(l,h?1:d),s},toSlateNode:(e,t)=>{var n=Ol(t)?t:t.parentElement;n&&!n.hasAttribute("data-slate-node")&&(n=n.closest("[data-slate-node]"));var r=n?al.get(n):null;if(!r)throw new Error("Cannot resolve a Slate node from DOM node: ".concat(n));return r},toSlatePoint:(e,t,n)=>{var{exactMatch:r,suppressThrow:o,searchDirection:i="backward"}=n,[a,s]=r?t:(e=>{var[t,n]=e;if(Ol(t)&&t.childNodes.length){var r=n===t.childNodes.length,o=r?n-1:n;for([t,o]=_l(t,o,r?"backward":"forward"),r=o<n;Ol(t)&&t.childNodes.length;){var i=r?t.childNodes.length-1:0;t=Fl(t,i,r?"backward":"forward")}n=r&&null!=t.textContent?t.textContent.length:0}return[t,n]})(t),u=a.parentNode,c=null,l=0;if(u){var d,f,h=zl.toDOMNode(e,e),p=u.closest('[data-slate-void="true"]'),m=p&&h.contains(p)?p:null,g=u.closest('[contenteditable="false"]'),v=g&&h.contains(g)?g:null,y=u.closest("[data-slate-leaf]"),b=null;if(y){if(c=y.closest('[data-slate-node="text"]')){var w=zl.getWindow(e).document.createRange();w.setStart(c,0),w.setEnd(a,s);var C=w.cloneContents();[...Array.prototype.slice.call(C.querySelectorAll("[data-slate-zero-width]")),...Array.prototype.slice.call(C.querySelectorAll("[contenteditable=false]"))].forEach(e=>{Uc&&!r&&e.hasAttribute("data-slate-zero-width")&&e.textContent.length>0&&"\ufeff"!==e.textContext?e.textContent.startsWith("\ufeff")&&(e.textContent=e.textContent.slice(1)):e.parentNode.removeChild(e)}),l=C.textContent.length,b=c}}else if(m){for(var D=m.querySelectorAll("[data-slate-leaf]"),E=0;E<D.length;E++){var x=D[E];if(zl.hasDOMNode(e,x)){y=x;break}}y?(c=y.closest('[data-slate-node="text"]'),l=(b=y).textContent.length,b.querySelectorAll("[data-slate-zero-width]").forEach(e=>{l-=e.textContent.length})):l=1}else if(v){var A,I,S=e=>e?e.querySelectorAll("[data-slate-leaf]:not(:scope [data-slate-editor] [data-slate-leaf])"):[],O=v.closest('[data-slate-node="element"]');if("forward"===i)y=null!==(A=[...S(O),...S(null==O?void 0:O.nextElementSibling)].find(e=>((e,t)=>Boolean(e.compareDocumentPosition(t)&xl.DOCUMENT_POSITION_FOLLOWING))(v,e)))&&void 0!==A?A:null;else y=null!==(I=[...S(null==O?void 0:O.previousElementSibling),...S(O)].findLast(e=>Ml(v,e)))&&void 0!==I?I:null;y&&(c=y.closest('[data-slate-node="text"]'),b=y,"forward"===i?l=0:(l=b.textContent.length,b.querySelectorAll("[data-slate-zero-width]").forEach(e=>{l-=e.textContent.length})))}b&&l===b.textContent.length&&Uc&&"z"===b.getAttribute("data-slate-zero-width")&&null!==(d=b.textContent)&&void 0!==d&&d.startsWith("\ufeff")&&(u.hasAttribute("data-slate-zero-width")||Wc&&null!==(f=b.textContent)&&void 0!==f&&f.endsWith("\n\n"))&&l--}if(Uc&&!c&&!r){var T=u.hasAttribute("data-slate-node")?u:u.closest("[data-slate-node]");if(T&&zl.hasDOMNode(e,T,{editable:!0})){var B=zl.toSlateNode(e,T),{path:k,offset:_}=oa.start(e,zl.findPath(e,B));return T.querySelector("[data-slate-leaf]")||(_=s),{path:k,offset:_}}}if(!c){if(o)return null;throw new Error("Cannot resolve a Slate point from DOM point: ".concat(t))}var F=zl.toSlateNode(e,c);return{path:zl.findPath(e,F),offset:l}},toSlateRange:(e,t,n)=>{var r,o,i,a,s,u,{exactMatch:c,suppressThrow:l}=n;if(Bl(t)?t.anchorNode:t.startContainer)if(Bl(t)){if(Wc&&t.rangeCount>1){a=t.focusNode;var d=t.getRangeAt(0),f=t.getRangeAt(t.rangeCount-1);if(a instanceof HTMLTableRowElement&&d.startContainer instanceof HTMLTableRowElement&&f.startContainer instanceof HTMLTableRowElement){function h(e){return e.childElementCount>0?h(e.children[0]):e}var p=d.startContainer,m=f.startContainer,g=h(p.children[d.startOffset]),v=h(m.children[f.startOffset]);s=0,o=v.childNodes.length>0?v.childNodes[0]:v,a=g.childNodes.length>0?g.childNodes[0]:g,i=v instanceof HTMLElement?v.innerHTML.length:0}else d.startContainer===a?(o=f.endContainer,i=f.endOffset,s=d.startOffset):(o=d.startContainer,i=d.endOffset,s=f.startOffset)}else o=t.anchorNode,i=t.anchorOffset,a=t.focusNode,s=t.focusOffset;u=qc&&(e=>{for(var t=e&&e.parentNode;t;){if("[object ShadowRoot]"===t.toString())return!0;t=t.parentNode}return!1})(o)||Wc?t.anchorNode===t.focusNode&&t.anchorOffset===t.focusOffset:t.isCollapsed}else o=t.startContainer,i=t.startOffset,a=t.endContainer,s=t.endOffset,u=t.collapsed;if(null==o||null==a||null==i||null==s)throw new Error("Cannot resolve a Slate range from DOM range: ".concat(t));Wc&&null!==(r=a.textContent)&&void 0!==r&&r.endsWith("\n\n")&&s===a.textContent.length&&s--;var y=zl.toSlatePoint(e,[o,i],{exactMatch:c,suppressThrow:l});if(!y)return null;var b=Ml(o,a)||o===a&&s<i,w=u?y:zl.toSlatePoint(e,[a,s],{exactMatch:c,suppressThrow:l,searchDirection:b?"forward":"backward"});if(!w)return null;var C={anchor:y,focus:w};return Ki.isExpanded(C)&&Ki.isForward(C)&&Ol(a)&&oa.void(e,{at:C.focus,mode:"highest"})&&(C=oa.unhangRange(e,C,{voids:!0})),C}};function Ul(e,t){var{path:n,diff:r}=t;if(!oa.hasPath(e,n))return!1;var o=Qi.get(e,n);if(!ga.isText(o))return!1;if(r.start!==o.text.length||0===r.text.length)return o.text.slice(r.start,r.start+r.text.length)===r.text;var i=Ri.next(n);if(!oa.hasPath(e,i))return!1;var a=Qi.get(e,i);return ga.isText(a)&&a.text.startsWith(r.text)}function Wl(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.reduce((e,t)=>e.slice(0,t.start)+t.text+e.slice(t.end),e)}function Vl(e,t){var{start:n,end:r,text:o}=t,i=e.slice(n,r),a=function(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++)if(e.charAt(r)!==t.charAt(r))return r;return n}(i,o),s=function(e,t,n){for(var r=Math.min(e.length,t.length,n),o=0;o<r;o++)if(e.charAt(e.length-o-1)!==t.charAt(t.length-o-1))return o;return r}(i,o,Math.min(i.length-a,o.length-a)),u={start:n+a,end:r-s,text:o.slice(a,o.length-s)};return u.start===u.end&&0===u.text.length?null:u}function $l(e){var{path:t,diff:n}=e;return{anchor:{path:t,offset:n.start},focus:{path:t,offset:n.end}}}function ql(e,t){var{path:n,offset:r}=t;if(!oa.hasPath(e,n))return null;var o=Qi.get(e,n);if(!ga.isText(o))return null;var i=oa.above(e,{match:t=>Xi.isElement(t)&&oa.isBlock(e,t),at:n});if(!i)return null;for(;r>o.text.length;){var a=oa.next(e,{at:n,match:ga.isText});if(!a||!Ri.isDescendant(a[1],i[1]))return null;r-=o.text.length,o=a[0],n=a[1]}return{path:n,offset:r}}function Kl(e,t){var n=ql(e,t.anchor);if(!n)return null;if(Ki.isCollapsed(t))return{anchor:n,focus:n};var r=ql(e,t.focus);return r?{anchor:n,focus:r}:null}function Gl(e,t,n){var r=yl.get(e),o=null==r?void 0:r.find(e=>{var{path:n}=e;return Ri.equals(n,t.path)});if(!o||t.offset<=o.diff.start)return ua.transform(t,n,{affinity:"backward"});var{diff:i}=o;if(t.offset<=i.start+i.text.length){var a={path:t.path,offset:i.start},s=ua.transform(a,n,{affinity:"backward"});return s?{path:s.path,offset:s.offset+t.offset-i.start}:null}var u={path:t.path,offset:t.offset-i.text.length+i.end-i.start},c=ua.transform(u,n,{affinity:"backward"});return c?"split_node"===n.type&&Ri.equals(n.path,t.path)&&u.offset<n.position&&i.start<n.position?c:{path:c.path,offset:c.offset+i.text.length-i.end+i.start}:null}function Xl(e,t,n){var r=Gl(e,t.anchor,n);if(!r)return null;if(Ki.isCollapsed(t))return{anchor:r,focus:r};var o=Gl(e,t.focus,n);return o?{anchor:r,focus:o}:null}function Zl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Yl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zl(Object(n),!0).forEach(function(t){Nc(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zl(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Jl(e){var{editor:t,scheduleOnDOMSelectionChange:n,onDOMSelectionChange:r}=e,o=!1,i=null,a=null,s=null,u=0,c=!1,l=()=>{var e=wl.get(t);if(wl.delete(t),e){var{selection:n}=t,r=Kl(t,e);!r||n&&Ki.equals(r,n)||Ga.select(t,r)}},d=()=>{if(a&&(clearTimeout(a),a=null),s&&(clearTimeout(s),s=null),g()||m()){o||(o=!0,setTimeout(()=>o=!1)),m()&&(o="action");var e=t.selection&&oa.rangeRef(t,t.selection,{affinity:"forward"});vl.set(t,t.marks),bl.get(t),yl.get(t);for(var i,u=g();i=null===(d=yl.get(t))||void 0===d?void 0:d[0];){var d,f,h=gl.get(t);void 0!==h&&(gl.delete(t),t.marks=h),h&&!1===c&&(c=null);var p=$l(i);t.selection&&Ki.equals(t.selection,p)||Ga.select(t,p),i.diff.text?oa.insertText(t,i.diff.text):oa.deleteFragment(t),yl.set(t,null===(f=yl.get(t))||void 0===f?void 0:f.filter(e=>{var{id:t}=e;return t!==i.id})),Ul(t,i)||(u=!1,bl.delete(t),vl.delete(t),o="action",wl.delete(t),n.cancel(),r.cancel(),null==e||e.unref())}var v=null==e?void 0:e.unref();if(!v||wl.get(t)||t.selection&&Ki.equals(v,t.selection)||Ga.select(t,v),m())(()=>{var e=bl.get(t);if(bl.delete(t),e){if(e.at){var n=ua.isPoint(e.at)?ql(t,e.at):Kl(t,e.at);if(!n)return;var r=oa.range(t,n);t.selection&&Ki.equals(t.selection,r)||Ga.select(t,n)}e.run()}})();else{u&&n(),n.flush(),r.flush(),l();var y=vl.get(t);vl.delete(t),void 0!==y&&(t.marks=y,t.onChange())}}else l()},f=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=il.get(t);n&&(g()||e?n.style.display="none":n.style.removeProperty("display"))},h=(e,n)=>{var r,o=null!==(r=yl.get(t))&&void 0!==r?r:[];yl.set(t,o);var i=Qi.leaf(t,e),a=o.findIndex(t=>Ri.equals(t.path,e));if(a<0)return Vl(i.text,n)&&o.push({path:e,diff:n,id:u++}),void f();var s=function(e,t,n){var r=Math.min(t.start,n.start),o=Math.max(0,Math.min(t.start+t.text.length,n.end)-n.start),i=Wl(e,t,n),a=Math.max(n.start+n.text.length,t.start+t.text.length+(t.start+t.text.length>n.start?n.text.length:0)-o),s=i.slice(r,a);return Vl(e,{start:r,end:Math.max(t.end,n.end-t.text.length+(t.end-t.start)),text:s})}(i.text,o[a].diff,n);if(!s)return o.splice(a,1),void f();o[a]=Yl(Yl({},o[a]),{},{diff:s})},p=function(e){var{at:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};c=!1,wl.delete(t),n.cancel(),r.cancel(),m()&&d(),bl.set(t,{at:o,run:e}),s=setTimeout(d)},m=()=>!!bl.get(t),g=()=>{var e;return!(null===(e=yl.get(t))||void 0===e||!e.length)},v=e=>{wl.set(t,e),a&&(clearTimeout(a),a=null);var{selection:n}=t;if(e){var r=!n||!Ri.equals(n.anchor.path,e.anchor.path),o=!n||!Ri.equals(n.anchor.path.slice(0,-1),e.anchor.path.slice(0,-1));(r&&c||o)&&(c=!1),(r||g())&&(a=setTimeout(d,200))}},y=()=>{m()||(s=setTimeout(d))};return{flush:d,scheduleFlush:y,hasPendingDiffs:g,hasPendingAction:m,hasPendingChanges:()=>m()||g(),isFlushing:()=>o,handleUserSelect:v,handleCompositionEnd:e=>{i&&clearTimeout(i),i=setTimeout(()=>{fl.set(t,!1),d()},25)},handleCompositionStart:e=>{fl.set(t,!0),i&&(clearTimeout(i),i=null)},handleDOMBeforeInput:e=>{var n;if(a&&(clearTimeout(a),a=null),!el.get(t)){var{inputType:r}=e,o=null,i=e.dataTransfer||e.data||void 0;!1!==c&&"insertText"!==r&&"insertCompositionText"!==r&&(c=!1);var[s]=e.getTargetRanges();s&&(o=zl.toSlateRange(t,s,{exactMatch:!1,suppressThrow:!0}));var u=zl.getWindow(t).getSelection();if(!o&&u&&(s=u,o=zl.toSlateRange(t,u,{exactMatch:!1,suppressThrow:!0})),o=null!==(n=o)&&void 0!==n?n:t.selection){var l,d=!0;if(r.startsWith("delete")){if(Ki.isExpanded(o)){var[f,m]=Ki.edges(o);if(Qi.leaf(t,f.path).text.length===f.offset&&0===m.offset){var g=oa.next(t,{at:f.path,match:ga.isText});g&&Ri.equals(g[1],m.path)&&(o={anchor:m,focus:m})}}var b=r.endsWith("Backward")?"backward":"forward",[w,C]=Ki.edges(o),[D,E]=oa.leaf(t,w.path),x={text:"",start:w.offset,end:C.offset},A=yl.get(t),I=null==A?void 0:A.find(e=>Ri.equals(e.path,E)),S=I?[I.diff,x]:[x];if(0===Wl(D.text,...S).length&&(d=!1),Ki.isExpanded(o)){if(d&&Ri.equals(o.anchor.path,o.focus.path)){var O={path:o.anchor.path,offset:w.offset},T=oa.range(t,O,O);return v(T),h(o.anchor.path,{text:"",end:C.offset,start:w.offset})}return p(()=>oa.deleteFragment(t,{direction:b}),{at:o})}}switch(r){case"deleteByComposition":case"deleteByCut":case"deleteByDrag":return p(()=>oa.deleteFragment(t),{at:o});case"deleteContent":case"deleteContentForward":var{anchor:B}=o;if(d&&Ki.isCollapsed(o)){var k=Qi.leaf(t,B.path);if(B.offset<k.text.length)return h(B.path,{text:"",start:B.offset,end:B.offset+1})}return p(()=>oa.deleteForward(t),{at:o});case"deleteContentBackward":var _,{anchor:F}=o,R=Bl(s)?s.isCollapsed:!(null===(_=s)||void 0===_||!_.collapsed);return d&&R&&Ki.isCollapsed(o)&&F.offset>0?h(F.path,{text:"",start:F.offset-1,end:F.offset}):p(()=>oa.deleteBackward(t),{at:o});case"deleteEntireSoftLine":return p(()=>{oa.deleteBackward(t,{unit:"line"}),oa.deleteForward(t,{unit:"line"})},{at:o});case"deleteHardLineBackward":return p(()=>oa.deleteBackward(t,{unit:"block"}),{at:o});case"deleteSoftLineBackward":return p(()=>oa.deleteBackward(t,{unit:"line"}),{at:o});case"deleteHardLineForward":return p(()=>oa.deleteForward(t,{unit:"block"}),{at:o});case"deleteSoftLineForward":return p(()=>oa.deleteForward(t,{unit:"line"}),{at:o});case"deleteWordBackward":return p(()=>oa.deleteBackward(t,{unit:"word"}),{at:o});case"deleteWordForward":return p(()=>oa.deleteForward(t,{unit:"word"}),{at:o});case"insertLineBreak":return p(()=>oa.insertSoftBreak(t),{at:o});case"insertParagraph":return p(()=>oa.insertBreak(t),{at:o});case"insertCompositionText":case"deleteCompositionText":case"insertFromComposition":case"insertFromDrop":case"insertFromPaste":case"insertFromYank":case"insertReplacementText":case"insertText":if("DataTransfer"===(null==(l=i)?void 0:l.constructor.name))return p(()=>zl.insertData(t,i),{at:o});var j=null!=i?i:"";if(gl.get(t)&&(j=j.replace("\ufeff","")),"insertText"===r&&/.*\n.*\n$/.test(j)&&(j=j.slice(0,-1)),j.includes("\n"))return p(()=>{var e=j.split("\n");e.forEach((n,r)=>{n&&oa.insertText(t,n),r!==e.length-1&&oa.insertSoftBreak(t)})},{at:o});if(Ri.equals(o.anchor.path,o.focus.path)){var[N,P]=Ki.edges(o),M={start:N.offset,end:P.offset,text:j};if(j&&c&&"insertCompositionText"===r){var L=c.start+c.text.search(/\S|$/);M.start+M.text.search(/\S|$/)===L+1&&M.end===c.start+c.text.length?(M.start-=1,c=null,y()):c=!1}else c="insertText"===r&&(null===c?M:!(!c||!Ki.isCollapsed(o)||c.end+c.text.length!==N.offset)&&Yl(Yl({},c),{},{text:c.text+j}));if(d)return void h(N.path,M)}return p(()=>oa.insertText(t,j),{at:o})}}}},handleKeyDown:e=>{g()||(f(!0),setTimeout(f))},handleDomMutations:e=>{var n;g()||m()||e.some(n=>Pl(t,n,e))&&(null===(n=Cl.get(t))||void 0===n||n())},handleInput:()=>{!m()&&g()||d()}}}var Ql=Jc?n.useLayoutEffect:n.useEffect;var ed=["node"];function td(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var nd={subtree:!0,childList:!0,characterData:!0},rd=Uc?e=>{var{node:t}=e,r=Fc(e,ed);if(!Uc)return null;var o,i=Hc(),a=(o=n.useRef(!1),n.useEffect(()=>(o.current=!0,()=>{o.current=!1}),[]),o.current),[s]=n.useState(()=>Jl(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?td(Object(n),!0).forEach(function(t){Nc(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):td(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({editor:i},r)));return function(e,t,r){var[o]=n.useState(()=>new MutationObserver(t));Ql(()=>{o.takeRecords()}),n.useEffect(()=>{if(!e.current)throw new Error("Failed to attach MutationObserver, `node` is undefined");return o.observe(e.current,r),()=>o.disconnect()},[o,e,r])}(t,s.handleDomMutations,nd),ml.set(i,s.scheduleFlush),a&&s.flush(),s}:()=>null,od=["anchor","focus"],id=["anchor","focus"],ad=(e,t)=>{var n,r,o=Fc(e,od),i=Fc(t,id);return e[Dl]===t[Dl]&&(n=o,r=i,Object.keys(n).length===Object.keys(r).length&&Object.keys(n).every(e=>r.hasOwnProperty(e)&&n[e]===r[e]))};function sd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var ud=e=>{var{isLast:t,leaf:n,parent:r,text:o}=e,i=Hc(),a=zl.findPath(i,o),s=Ri.parent(a),c=Boolean(n[El]);return i.isVoid(r)?u.default.createElement(dd,{length:Qi.string(r).length}):""!==n.text||r.children[r.children.length-1]!==o||i.isInline(r)||""!==oa.string(i,s)?""===n.text?u.default.createElement(dd,{isMarkPlaceholder:c}):t&&"\n"===n.text.slice(-1)?u.default.createElement(cd,{isTrailing:!0,text:n.text}):u.default.createElement(cd,{text:n.text}):u.default.createElement(dd,{isLineBreak:!0,isMarkPlaceholder:c})},cd=e=>{var{text:t,isTrailing:r=!1}=e,o=n.useRef(null),i=()=>"".concat(null!=t?t:"").concat(r?"\n":""),[a]=n.useState(i);return Ql(()=>{var e=i();o.current&&o.current.textContent!==e&&(o.current.textContent=e)}),u.default.createElement(ld,{ref:o},a)},ld=n.memo(n.forwardRef((e,t)=>u.default.createElement("span",{"data-slate-string":!0,ref:t},e.children))),dd=e=>{var{length:t=0,isLineBreak:n=!1,isMarkPlaceholder:r=!1}=e,o={"data-slate-zero-width":n?"n":"z","data-slate-length":t};return r&&(o["data-slate-mark-placeholder"]=!0),u.default.createElement("span",function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sd(Object(n),!0).forEach(function(t){Nc(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sd(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},o),Uc&&n?null:"\ufeff",n?u.default.createElement("br",null):null)};function fd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?fd(Object(n),!0).forEach(function(t){Nc(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fd(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var pd=Uc?300:0;function md(e){e.current&&(clearTimeout(e.current),e.current=null)}var gd=e=>{var{leaf:t,isLast:r,text:o,parent:i,renderPlaceholder:a,renderLeaf:s=e=>u.default.createElement(yd,hd({},e))}=e,c=Hc(),l=n.useRef(null),d=n.useRef(null),[f,h]=n.useState(!1),p=n.useRef(null),m=n.useCallback(e=>{if(function(e,t){e.current&&(e.current.disconnect(),t&&(e.current=null))}(l,null==e),null==e){var n;il.delete(c),null===(n=t.onPlaceholderResize)||void 0===n||n.call(t,null)}else{if(il.set(c,e),!l.current){var r=window.ResizeObserver||Bc;l.current=new r(()=>{var n;null===(n=t.onPlaceholderResize)||void 0===n||n.call(t,e)})}l.current.observe(e),d.current=e}},[d,t,c]),g=u.default.createElement(ud,{isLast:r,leaf:t,parent:i,text:o}),v=Boolean(t[Dl]);if(n.useEffect(()=>(v?p.current||(p.current=setTimeout(()=>{h(!0),p.current=null},pd)):(md(p),h(!1)),()=>md(p)),[v,h]),v&&f){var y={children:t.placeholder,attributes:{"data-slate-placeholder":!0,style:{position:"absolute",top:0,pointerEvents:"none",width:"100%",maxWidth:"100%",display:"block",opacity:"0.333",userSelect:"none",textDecoration:"none",WebkitUserModify:Vc?"inherit":void 0},contentEditable:!1,ref:m}};g=u.default.createElement(u.default.Fragment,null,a(y),g)}return s({attributes:{"data-slate-leaf":!0},children:g,leaf:t,text:o})},vd=u.default.memo(gd,(e,t)=>t.parent===e.parent&&t.isLast===e.isLast&&t.renderLeaf===e.renderLeaf&&t.renderPlaceholder===e.renderPlaceholder&&t.text===e.text&&ga.equals(t.leaf,e.leaf)&&t.leaf[Dl]===e.leaf[Dl]),yd=e=>{var{attributes:t,children:n}=e;return u.default.createElement("span",hd({},t),n)},bd=e=>{for(var{decorations:t,isLast:r,parent:o,renderPlaceholder:i,renderLeaf:a,text:s}=e,c=Hc(),l=n.useRef(null),d=ga.decorations(s,t),f=zl.findKey(c,s),h=[],p=0;p<d.length;p++){var m=d[p];h.push(u.default.createElement(vd,{isLast:r&&p===d.length-1,key:"".concat(f.id,"-").concat(p),renderPlaceholder:i,leaf:m,text:s,parent:o,renderLeaf:a}))}var g=n.useCallback(e=>{var t=cl.get(c);e?(null==t||t.set(f,e),sl.set(s,e),al.set(e,s)):(null==t||t.delete(f),sl.delete(s),l.current&&al.delete(l.current)),l.current=e},[l,c,f,s]);return u.default.createElement("span",{"data-slate-node":"text",ref:g},h)},wd=u.default.memo(bd,(e,t)=>t.parent===e.parent&&t.isLast===e.isLast&&t.renderLeaf===e.renderLeaf&&t.renderPlaceholder===e.renderPlaceholder&&t.text===e.text&&((e,t)=>{if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var r=e[n],o=t[n];if(r.anchor.offset!==o.anchor.offset||r.focus.offset!==o.focus.offset||!ad(r,o))return!1}return!0})(t.decorations,e.decorations));function Cd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Dd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Cd(Object(n),!0).forEach(function(t){Nc(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Cd(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Ed=e=>{var{decorations:t,element:r,renderElement:o=e=>u.default.createElement(Ad,Dd({},e)),renderPlaceholder:i,renderLeaf:a,selection:s}=e,c=Hc(),l=kd(),d=c.isInline(r),f=zl.findKey(c,r),h=n.useCallback(e=>{var t=cl.get(c);e?(null==t||t.set(f,e),sl.set(r,e),al.set(e,r)):(null==t||t.delete(f),sl.delete(r))},[c,f,r]),p=Td({decorations:t,node:r,renderElement:o,renderPlaceholder:i,renderLeaf:a,selection:s}),m={"data-slate-node":"element",ref:h};if(d&&(m["data-slate-inline"]=!0),!d&&oa.hasInlines(c,r)){var g=Qi.string(r),v=Eu(g);"rtl"===v&&(m.dir=v)}if(oa.isVoid(c,r)){m["data-slate-void"]=!0,!l&&d&&(m.contentEditable=!1);var y=d?"span":"div",[[b]]=Qi.texts(r);p=u.default.createElement(y,{"data-slate-spacer":!0,style:{height:"0",color:"transparent",outline:"none",position:"absolute"}},u.default.createElement(wd,{renderPlaceholder:i,decorations:[],isLast:!1,parent:r,text:b})),tl.set(b,0),nl.set(b,r)}return o({attributes:m,children:p,element:r})},xd=u.default.memo(Ed,(e,t)=>e.element===t.element&&e.renderElement===t.renderElement&&e.renderLeaf===t.renderLeaf&&e.renderPlaceholder===t.renderPlaceholder&&((e,t)=>{if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var r=e[n],o=t[n];if(!Ki.equals(r,o)||!ad(r,o))return!1}return!0})(e.decorations,t.decorations)&&(e.selection===t.selection||!!e.selection&&!!t.selection&&Ki.equals(e.selection,t.selection))),Ad=e=>{var{attributes:t,children:n,element:r}=e,o=Hc().isInline(r)?"span":"div";return u.default.createElement(o,Dd(Dd({},t),{},{style:{position:"relative"}}),n)},Id=n.createContext(()=>[]),Sd=n.createContext(!1),Od=()=>n.useContext(Sd),Td=e=>{var{decorations:t,node:r,renderElement:o,renderPlaceholder:i,renderLeaf:a,selection:s}=e,c=n.useContext(Id),l=Hc();el.set(l,!1);for(var d=zl.findPath(l,r),f=[],h=Xi.isElement(r)&&!l.isInline(r)&&oa.hasInlines(l,r),p=0;p<r.children.length;p++){var m=d.concat(p),g=r.children[p],v=zl.findKey(l,g),y=oa.range(l,m),b=s&&Ki.intersection(y,s),w=c([g,m]);for(var C of t){var D=Ki.intersection(C,y);D&&w.push(D)}Xi.isElement(g)?f.push(u.default.createElement(Sd.Provider,{key:"provider-".concat(v.id),value:!!b},u.default.createElement(xd,{decorations:w,element:g,key:v.id,renderElement:o,renderPlaceholder:i,renderLeaf:a,selection:b}))):f.push(u.default.createElement(wd,{decorations:w,key:v.id,isLast:h&&p===r.children.length-1,parent:r,renderPlaceholder:i,renderLeaf:a,text:g})),tl.set(g,p),nl.set(g,r)}return f},Bd=n.createContext(!1),kd=()=>n.useContext(Bd),_d=n.createContext(null);var Fd={bold:"mod+b",compose:["down","left","right","up","backspace","enter"],moveBackward:"left",moveForward:"right",moveWordBackward:"ctrl+left",moveWordForward:"ctrl+right",deleteBackward:"shift?+backspace",deleteForward:"shift?+delete",extendBackward:"shift+left",extendForward:"shift+right",italic:"mod+i",insertSoftBreak:"shift+enter",splitBlock:"enter",undo:"mod+z"},Rd={moveLineBackward:"opt+up",moveLineForward:"opt+down",moveWordBackward:"opt+left",moveWordForward:"opt+right",deleteBackward:["ctrl+backspace","ctrl+h"],deleteForward:["ctrl+delete","ctrl+d"],deleteLineBackward:"cmd+shift?+backspace",deleteLineForward:["cmd+shift?+delete","ctrl+k"],deleteWordBackward:"opt+shift?+backspace",deleteWordForward:"opt+shift?+delete",extendLineBackward:"opt+shift+up",extendLineForward:"opt+shift+down",redo:"cmd+shift+z",transposeCharacter:"ctrl+t"},jd={deleteWordBackward:"ctrl+shift?+backspace",deleteWordForward:"ctrl+shift?+delete",redo:["ctrl+y","ctrl+shift+z"]},Nd=e=>{var t=Fd[e],n=Rd[e],r=jd[e],o=t&&_c.isHotkey(t);n&&_c.isHotkey(n);var i=r&&_c.isHotkey(r);return e=>!(!o||!o(e))||!(!i||!i(e))},Pd={isBold:Nd("bold"),isCompose:Nd("compose"),isMoveBackward:Nd("moveBackward"),isMoveForward:Nd("moveForward"),isDeleteBackward:Nd("deleteBackward"),isDeleteForward:Nd("deleteForward"),isDeleteLineBackward:Nd("deleteLineBackward"),isDeleteLineForward:Nd("deleteLineForward"),isDeleteWordBackward:Nd("deleteWordBackward"),isDeleteWordForward:Nd("deleteWordForward"),isExtendBackward:Nd("extendBackward"),isExtendForward:Nd("extendForward"),isExtendLineBackward:Nd("extendLineBackward"),isExtendLineForward:Nd("extendLineForward"),isItalic:Nd("italic"),isMoveLineBackward:Nd("moveLineBackward"),isMoveLineForward:Nd("moveLineForward"),isMoveWordBackward:Nd("moveWordBackward"),isMoveWordForward:Nd("moveWordForward"),isRedo:Nd("redo"),isSoftBreak:Nd("insertSoftBreak"),isSplitBlock:Nd("splitBlock"),isTransposeCharacter:Nd("transposeCharacter"),isUndo:Nd("undo")},Md={subtree:!0,childList:!0,characterData:!0,characterDataOldValue:!0};class Ld extends n.Component{constructor(){super(...arguments),Nc(this,"context",null),Nc(this,"manager",null),Nc(this,"mutationObserver",null)}observe(){var e,{node:t}=this.props;if(!t.current)throw new Error("Failed to attach MutationObserver, `node` is undefined");null===(e=this.mutationObserver)||void 0===e||e.observe(t.current,Md)}componentDidMount(){var{receivedUserInput:e}=this.props,t=this.context;this.manager=((e,t)=>{var n=[],r=()=>{n=[]};return{registerMutations:r=>{if(t.current){var o=r.filter(t=>Pl(e,t,r));n.push(...o)}},restoreDOM:function(){n.length>0&&(n.reverse().forEach(e=>{"characterData"!==e.type&&(e.removedNodes.forEach(t=>{e.target.insertBefore(t,e.nextSibling)}),e.addedNodes.forEach(t=>{e.target.removeChild(t)}))}),r())},clear:r}})(t,e),this.mutationObserver=new MutationObserver(this.manager.registerMutations),this.observe()}getSnapshotBeforeUpdate(){var e,t,n,r,o=null===(e=this.mutationObserver)||void 0===e?void 0:e.takeRecords();null!=o&&o.length&&(null===(r=this.manager)||void 0===r||r.registerMutations(o));return null===(t=this.mutationObserver)||void 0===t||t.disconnect(),null===(n=this.manager)||void 0===n||n.restoreDOM(),null}componentDidUpdate(){var e;null===(e=this.manager)||void 0===e||e.clear(),this.observe()}componentWillUnmount(){var e;null===(e=this.mutationObserver)||void 0===e||e.disconnect()}render(){return this.props.children}}Nc(Ld,"contextType",Lc);var Hd=Uc?Ld:e=>{var{children:t}=e;return u.default.createElement(u.default.Fragment,null,t)},zd=n.createContext(!1),Ud=["autoFocus","decorate","onDOMBeforeInput","placeholder","readOnly","renderElement","renderLeaf","renderPlaceholder","scrollSelectionIntoView","style","as","disableDefaultStyles"],Wd=["text"];function Vd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Vd(Object(n),!0).forEach(function(t){Nc(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vd(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var qd=e=>u.default.createElement(u.default.Fragment,null,Td(e)),Kd=n.forwardRef((e,t)=>{var r=n.useCallback(e=>u.default.createElement(Gd,$d({},e)),[]),{autoFocus:o,decorate:i=Xd,onDOMBeforeInput:a,placeholder:s,readOnly:c=!1,renderElement:l,renderLeaf:d,renderPlaceholder:f=r,scrollSelectionIntoView:h=Zd,style:p={},as:m="div",disableDefaultStyles:g=!1}=e,v=Fc(e,Ud),y=(()=>{var e=n.useContext(_d);if(!e)throw new Error("The `useSlate` hook must be used inside the <Slate> component's context.");var{editor:t}=e;return t})(),[b,w]=n.useState(!1),C=n.useRef(null),D=n.useRef([]),[E,x]=n.useState(),A=n.useRef(!1),{onUserInput:I,receivedUserInput:S}=function(){var e=Hc(),t=n.useRef(!1),r=n.useRef(0),o=n.useCallback(()=>{if(!t.current){t.current=!0;var n=zl.getWindow(e);n.cancelAnimationFrame(r.current),r.current=n.requestAnimationFrame(()=>{t.current=!1})}},[e]);return n.useEffect(()=>()=>cancelAnimationFrame(r.current),[]),{receivedUserInput:t,onUserInput:o}}(),[,O]=n.useReducer(e=>e+1,0);Cl.set(y,O),ll.set(y,c);var T=n.useMemo(()=>({isDraggingInternally:!1,isUpdatingSelection:!1,latestElement:null,hasMarkPlaceholder:!1}),[]);n.useEffect(()=>{C.current&&o&&C.current.focus()},[o]);var B=n.useRef(),k=n.useMemo(()=>ju(()=>{if(el.get(y))k();else{var e=zl.toDOMNode(y,y).getRootNode();if(!A.current&&Vc&&e instanceof ShadowRoot){A.current=!0;var t=(()=>{for(var e=document.activeElement;null!==(t=e)&&void 0!==t&&t.shadowRoot&&null!==(n=e.shadowRoot)&&void 0!==n&&n.activeElement;){var t,n,r;e=null===(r=e)||void 0===r||null===(r=r.shadowRoot)||void 0===r?void 0:r.activeElement}return e})();return t?document.execCommand("indent"):Ga.deselect(y),void(A.current=!1)}var n=B.current;if((Uc||!zl.isComposing(y))&&(!T.isUpdatingSelection||null!=n&&n.isFlushing())&&!T.isDraggingInternally){var r=zl.findDocumentOrShadowRoot(y),{activeElement:o}=r,i=zl.toDOMNode(y,y),a=Nl(r);if(o===i?(T.latestElement=o,dl.set(y,!0)):dl.delete(y),!a)return Ga.deselect(y);var{anchorNode:s,focusNode:u}=a,l=zl.hasEditableTarget(y,s)||zl.isTargetInsideNonReadonlyVoid(y,s),d=zl.hasTarget(y,u);if(l&&d){var f=zl.toSlateRange(y,a,{exactMatch:!1,suppressThrow:!0});f&&(zl.isComposing(y)||null!=n&&n.hasPendingChanges()||null!=n&&n.isFlushing()?null==n||n.handleUserSelect(f):Ga.select(y,f))}!c||l&&d||Ga.deselect(y)}}},100),[y,c,T]),_=n.useMemo(()=>Fu(k,0),[k]);B.current=rd({node:C,onDOMSelectionChange:k,scheduleOnDOMSelectionChange:_}),Ql(()=>{var e,t,n;C.current&&(n=Il(C.current))?(rl.set(y,n),ol.set(y,C.current),sl.set(y,C.current),al.set(C.current,y)):sl.delete(y);var{selection:r}=y,o=zl.findDocumentOrShadowRoot(y),i=Nl(o);if(i&&zl.isFocused(y)&&(null===(e=B.current)||void 0===e||!e.hasPendingAction())){var a=e=>{var t="None"!==i.type;if(r||t){var n,o=i.focusNode;if(Wc&&i.rangeCount>1){var a=i.getRangeAt(0),s=i.getRangeAt(i.rangeCount-1);n=a.startContainer===o?s.endContainer:a.startContainer}else n=i.anchorNode;var u=ol.get(y),c=!1;if(u.contains(n)&&u.contains(o)&&(c=!0),t&&c&&r&&!e){var l=zl.toSlateRange(y,i,{exactMatch:!0,suppressThrow:!0});if(l&&Ki.equals(l,r)){var d;if(!T.hasMarkPlaceholder)return;if(null!==(d=n)&&void 0!==d&&null!==(d=d.parentElement)&&void 0!==d&&d.hasAttribute("data-slate-mark-placeholder"))return}}if(!r||zl.hasRange(y,r)){T.isUpdatingSelection=!0;var f=r&&zl.toDOMRange(y,r);return f?(zl.isComposing(y)&&!Uc?i.collapseToEnd():Ki.isBackward(r)?i.setBaseAndExtent(f.endContainer,f.endOffset,f.startContainer,f.startOffset):i.setBaseAndExtent(f.startContainer,f.startOffset,f.endContainer,f.endOffset),h(y,f)):i.removeAllRanges(),f}y.selection=zl.toSlateRange(y,i,{exactMatch:!1,suppressThrow:!0})}};i.rangeCount<=1&&a();var s="action"===(null===(t=B.current)||void 0===t?void 0:t.isFlushing());if(Uc&&s){var u=null,c=requestAnimationFrame(()=>{if(s){var e=e=>{try{zl.toDOMNode(y,y).focus(),a(e)}catch(e){}};e(),u=setTimeout(()=>{e(!0),T.isUpdatingSelection=!1})}});return()=>{cancelAnimationFrame(c),u&&clearTimeout(u)}}setTimeout(()=>{T.isUpdatingSelection=!1})}});var F=n.useCallback(e=>{var t=zl.toDOMNode(y,y).getRootNode();if(null!=A&&A.current&&Vc&&t instanceof ShadowRoot){var n=e.getTargetRanges()[0],r=new window.Range;r.setStart(n.startContainer,n.startOffset),r.setEnd(n.endContainer,n.endOffset);var o=zl.toSlateRange(y,r,{exactMatch:!1,suppressThrow:!1});return Ga.select(y,o),e.preventDefault(),void e.stopImmediatePropagation()}if(I(),!c&&zl.hasEditableTarget(y,e.target)&&!Qd(e,a)){var i;if(B.current)return B.current.handleDOMBeforeInput(e);_.flush(),k.flush();var{selection:s}=y,{inputType:u}=e,l=e.dataTransfer||e.data||void 0,d="insertCompositionText"===u||"deleteCompositionText"===u;if(d&&zl.isComposing(y))return;var f=!1;if("insertText"===u&&s&&Ki.isCollapsed(s)&&e.data&&1===e.data.length&&/[a-z ]/i.test(e.data)&&0!==s.anchor.offset&&(f=!0,y.marks&&(f=!1),!el.get(y))){var h,p,{anchor:m}=s,[g,v]=zl.toDOMPoint(y,m),b=null===(h=g.parentElement)||void 0===h?void 0:h.closest("a"),C=zl.getWindow(y);if(f&&b&&zl.hasDOMNode(y,b)){var E,x=null==C?void 0:C.document.createTreeWalker(b,NodeFilter.SHOW_TEXT).lastChild();x===g&&(null===(E=x.textContent)||void 0===E?void 0:E.length)===v&&(f=!1)}if(f&&g.parentElement&&"pre"===(null==C||null===(p=C.getComputedStyle(g.parentElement))||void 0===p?void 0:p.whiteSpace)){var S=oa.above(y,{at:m.path,match:e=>Xi.isElement(e)&&oa.isBlock(y,e)});S&&Qi.string(S[0]).includes("\t")&&(f=!1)}}if((!u.startsWith("delete")||u.startsWith("deleteBy"))&&!el.get(y)){var[O]=e.getTargetRanges();if(O){var T=zl.toSlateRange(y,O,{exactMatch:!1,suppressThrow:!1});if(!s||!Ki.equals(s,T)){f=!1;var F=!d&&y.selection&&oa.rangeRef(y,y.selection);Ga.select(y,T),F&&hl.set(y,F)}}}if(d)return;if(f||e.preventDefault(),s&&Ki.isExpanded(s)&&u.startsWith("delete")){var R=u.endsWith("Backward")?"backward":"forward";return void oa.deleteFragment(y,{direction:R})}switch(u){case"deleteByComposition":case"deleteByCut":case"deleteByDrag":oa.deleteFragment(y);break;case"deleteContent":case"deleteContentForward":oa.deleteForward(y);break;case"deleteContentBackward":oa.deleteBackward(y);break;case"deleteEntireSoftLine":oa.deleteBackward(y,{unit:"line"}),oa.deleteForward(y,{unit:"line"});break;case"deleteHardLineBackward":oa.deleteBackward(y,{unit:"block"});break;case"deleteSoftLineBackward":oa.deleteBackward(y,{unit:"line"});break;case"deleteHardLineForward":oa.deleteForward(y,{unit:"block"});break;case"deleteSoftLineForward":oa.deleteForward(y,{unit:"line"});break;case"deleteWordBackward":oa.deleteBackward(y,{unit:"word"});break;case"deleteWordForward":oa.deleteForward(y,{unit:"word"});break;case"insertLineBreak":oa.insertSoftBreak(y);break;case"insertParagraph":oa.insertBreak(y);break;case"insertFromComposition":case"insertFromDrop":case"insertFromPaste":case"insertFromYank":case"insertReplacementText":case"insertText":"insertFromComposition"===u&&zl.isComposing(y)&&(w(!1),fl.set(y,!1)),"DataTransfer"===(null==l?void 0:l.constructor.name)?zl.insertData(y,l):"string"==typeof l&&(f?D.current.push(()=>oa.insertText(y,l)):oa.insertText(y,l))}var j=null===(i=hl.get(y))||void 0===i?void 0:i.unref();hl.delete(y),!j||y.selection&&Ki.equals(y.selection,j)||Ga.select(y,j)}},[y,k,I,a,c,_]),R=n.useCallback(e=>{null==e?(k.cancel(),_.cancel(),ol.delete(y),sl.delete(y),C.current&&Qc&&C.current.removeEventListener("beforeinput",F)):Qc&&e.addEventListener("beforeinput",F),C.current=e,"function"==typeof t?t(e):t&&(t.current=e)},[k,_,y,F,t]);Ql(()=>{var e=zl.getWindow(y);e.document.addEventListener("selectionchange",_);var t=()=>{T.isDraggingInternally=!1};return e.document.addEventListener("dragend",t),e.document.addEventListener("drop",t),()=>{e.document.removeEventListener("selectionchange",_),e.document.removeEventListener("dragend",t),e.document.removeEventListener("drop",t)}},[_,T]);var j=i([y,[]]),N=s&&1===y.children.length&&1===Array.from(Qi.texts(y)).length&&""===Qi.string(y)&&!b,P=n.useCallback(e=>{var t;e&&N?x(null===(t=e.getBoundingClientRect())||void 0===t?void 0:t.height):x(void 0)},[N]);if(N){var M=oa.start(y,[]);j.push({[Dl]:!0,placeholder:s,onPlaceholderResize:P,anchor:M,focus:M})}var{marks:L}=y;if(T.hasMarkPlaceholder=!1,y.selection&&Ki.isCollapsed(y.selection)&&L){var{anchor:H}=y.selection,z=Qi.leaf(y,H.path),U=Fc(z,Wd);if(!ga.equals(z,L,{loose:!0})){T.hasMarkPlaceholder=!0;var W=Object.fromEntries(Object.keys(U).map(e=>[e,null]));j.push($d($d($d({[El]:!0},W),L),{},{anchor:H,focus:H}))}}return n.useEffect(()=>{setTimeout(()=>{var{selection:e}=y;if(e){var{anchor:t}=e,n=Qi.leaf(y,t.path);if(L&&!ga.equals(n,L,{loose:!0}))return void gl.set(y,L)}gl.delete(y)})}),u.default.createElement(Bd.Provider,{value:c},u.default.createElement(zd.Provider,{value:b},u.default.createElement(Id.Provider,{value:i},u.default.createElement(Hd,{node:C,receivedUserInput:S},u.default.createElement(m,$d($d({role:c?void 0:"textbox","aria-multiline":!c||void 0},v),{},{spellCheck:!(!Qc&&Jc)&&v.spellCheck,autoCorrect:Qc||!Jc?v.autoCorrect:"false",autoCapitalize:Qc||!Jc?v.autoCapitalize:"false","data-slate-editor":!0,"data-slate-node":"value",contentEditable:!c,zindex:-1,suppressContentEditableWarning:!0,ref:R,style:$d($d({},g?{}:$d({position:"relative",whiteSpace:"pre-wrap",wordWrap:"break-word"},E?{minHeight:E}:{})),p),onBeforeInput:n.useCallback(e=>{if(!Qc&&!c&&!Yd(e,v.onBeforeInput)&&zl.hasSelectableTarget(y,e.target)&&(e.preventDefault(),!zl.isComposing(y))){var t=e.data;oa.insertText(y,t)}},[v.onBeforeInput,y,c]),onInput:n.useCallback(e=>{if(!Yd(e,v.onInput))if(B.current)B.current.handleInput();else{for(var t of D.current)t();if(D.current=[],!zl.isFocused(y)){var n=e.nativeEvent,r=y;if("historyUndo"===n.inputType&&"function"==typeof r.undo)return void r.undo();if("historyRedo"===n.inputType&&"function"==typeof r.redo)return void r.redo()}}},[v.onInput,y]),onBlur:n.useCallback(e=>{if(!c&&!T.isUpdatingSelection&&zl.hasSelectableTarget(y,e.target)&&!Yd(e,v.onBlur)){var t=zl.findDocumentOrShadowRoot(y);if(T.latestElement!==t.activeElement){var{relatedTarget:n}=e;if(!(n===zl.toDOMNode(y,y)||Ol(n)&&n.hasAttribute("data-slate-spacer"))){if(null!=n&&Tl(n)&&zl.hasDOMNode(y,n)){var r=zl.toSlateNode(y,n);if(Xi.isElement(r)&&!y.isVoid(r))return}if(Vc){var o=Nl(t);null==o||o.removeAllRanges()}dl.delete(y)}}}},[c,T.isUpdatingSelection,T.latestElement,y,v.onBlur]),onClick:n.useCallback(e=>{if(zl.hasTarget(y,e.target)&&!Yd(e,v.onClick)&&Tl(e.target)){var t=zl.toSlateNode(y,e.target),n=zl.findPath(y,t);if(!oa.hasPath(y,n)||Qi.get(y,n)!==t)return;if(3===e.detail&&n.length>=1){var r=n;if(!Xi.isElement(t)||!oa.isBlock(y,t)){var o,i=oa.above(y,{match:e=>Xi.isElement(e)&&oa.isBlock(y,e),at:n});r=null!==(o=null==i?void 0:i[1])&&void 0!==o?o:n.slice(0,1)}var a=oa.range(y,r);return void Ga.select(y,a)}if(c)return;var s=oa.start(y,n),u=oa.end(y,n),l=oa.void(y,{at:s}),d=oa.void(y,{at:u});if(l&&d&&Ri.equals(l[1],d[1])){var f=oa.range(y,s);Ga.select(y,f)}}},[y,v.onClick,c]),onCompositionEnd:n.useCallback(e=>{if(zl.hasSelectableTarget(y,e.target)){var t;if(zl.isComposing(y)&&Promise.resolve().then(()=>{w(!1),fl.set(y,!1)}),null===(t=B.current)||void 0===t||t.handleCompositionEnd(e),Yd(e,v.onCompositionEnd)||Uc)return;if(!Vc&&!Xc&&!Yc&&!Zc&&e.data){var n=gl.get(y);gl.delete(y),void 0!==n&&(vl.set(y,y.marks),y.marks=n),oa.insertText(y,e.data);var r=vl.get(y);vl.delete(y),void 0!==r&&(y.marks=r)}}},[v.onCompositionEnd,y]),onCompositionUpdate:n.useCallback(e=>{zl.hasSelectableTarget(y,e.target)&&!Yd(e,v.onCompositionUpdate)&&(zl.isComposing(y)||(w(!0),fl.set(y,!0)))},[v.onCompositionUpdate,y]),onCompositionStart:n.useCallback(e=>{if(zl.hasSelectableTarget(y,e.target)){var t;if(null===(t=B.current)||void 0===t||t.handleCompositionStart(e),Yd(e,v.onCompositionStart)||Uc)return;w(!0);var{selection:n}=y;if(n&&Ki.isExpanded(n))return void oa.deleteFragment(y)}},[v.onCompositionStart,y]),onCopy:n.useCallback(e=>{!zl.hasSelectableTarget(y,e.target)||Yd(e,v.onCopy)||Jd(e)||(e.preventDefault(),zl.setFragmentData(y,e.clipboardData,"copy"))},[v.onCopy,y]),onCut:n.useCallback(e=>{if(!c&&zl.hasSelectableTarget(y,e.target)&&!Yd(e,v.onCut)&&!Jd(e)){e.preventDefault(),zl.setFragmentData(y,e.clipboardData,"cut");var{selection:t}=y;if(t)if(Ki.isExpanded(t))oa.deleteFragment(y);else{var n=Qi.parent(y,t.anchor.path);oa.isVoid(y,n)&&Ga.delete(y)}}},[c,y,v.onCut]),onDragOver:n.useCallback(e=>{if(zl.hasTarget(y,e.target)&&!Yd(e,v.onDragOver)){var t=zl.toSlateNode(y,e.target);Xi.isElement(t)&&oa.isVoid(y,t)&&e.preventDefault()}},[v.onDragOver,y]),onDragStart:n.useCallback(e=>{if(!c&&zl.hasTarget(y,e.target)&&!Yd(e,v.onDragStart)){var t=zl.toSlateNode(y,e.target),n=zl.findPath(y,t);if(Xi.isElement(t)&&oa.isVoid(y,t)||oa.void(y,{at:n,voids:!0})){var r=oa.range(y,n);Ga.select(y,r)}T.isDraggingInternally=!0,zl.setFragmentData(y,e.dataTransfer,"drag")}},[c,y,v.onDragStart,T]),onDrop:n.useCallback(e=>{if(!c&&zl.hasTarget(y,e.target)&&!Yd(e,v.onDrop)){e.preventDefault();var t=y.selection,n=zl.findEventRange(y,e),r=e.dataTransfer;Ga.select(y,n),T.isDraggingInternally&&(!t||Ki.equals(t,n)||oa.void(y,{at:n,voids:!0})||Ga.delete(y,{at:t})),zl.insertData(y,r),zl.isFocused(y)||zl.focus(y)}},[c,y,v.onDrop,T]),onDragEnd:n.useCallback(e=>{!c&&T.isDraggingInternally&&v.onDragEnd&&zl.hasTarget(y,e.target)&&v.onDragEnd(e)},[c,T,v,y]),onFocus:n.useCallback(e=>{if(!c&&!T.isUpdatingSelection&&zl.hasEditableTarget(y,e.target)&&!Yd(e,v.onFocus)){var t=zl.toDOMNode(y,y),n=zl.findDocumentOrShadowRoot(y);if(T.latestElement=n.activeElement,Wc&&e.target!==t)return void t.focus();dl.set(y,!0)}},[c,T,y,v.onFocus]),onKeyDown:n.useCallback(e=>{if(!c&&zl.hasEditableTarget(y,e.target)){var t;null===(t=B.current)||void 0===t||t.handleKeyDown(e);var{nativeEvent:n}=e;if(zl.isComposing(y)&&!1===n.isComposing&&(fl.set(y,!1),w(!1)),Yd(e,v.onKeyDown)||zl.isComposing(y))return;var{selection:r}=y,o=y.children[null!==r?r.focus.path[0]:0],i="rtl"===Eu(Qi.string(o));if(Pd.isRedo(n)){e.preventDefault();var a=y;return void("function"==typeof a.redo&&a.redo())}if(Pd.isUndo(n)){e.preventDefault();var s=y;return void("function"==typeof s.undo&&s.undo())}if(Pd.isMoveLineBackward(n))return e.preventDefault(),void Ga.move(y,{unit:"line",reverse:!0});if(Pd.isMoveLineForward(n))return e.preventDefault(),void Ga.move(y,{unit:"line"});if(Pd.isExtendLineBackward(n))return e.preventDefault(),void Ga.move(y,{unit:"line",edge:"focus",reverse:!0});if(Pd.isExtendLineForward(n))return e.preventDefault(),void Ga.move(y,{unit:"line",edge:"focus"});if(Pd.isMoveBackward(n))return e.preventDefault(),void(r&&Ki.isCollapsed(r)?Ga.move(y,{reverse:!i}):Ga.collapse(y,{edge:i?"end":"start"}));if(Pd.isMoveForward(n))return e.preventDefault(),void(r&&Ki.isCollapsed(r)?Ga.move(y,{reverse:i}):Ga.collapse(y,{edge:i?"start":"end"}));if(Pd.isMoveWordBackward(n))return e.preventDefault(),r&&Ki.isExpanded(r)&&Ga.collapse(y,{edge:"focus"}),void Ga.move(y,{unit:"word",reverse:!i});if(Pd.isMoveWordForward(n))return e.preventDefault(),r&&Ki.isExpanded(r)&&Ga.collapse(y,{edge:"focus"}),void Ga.move(y,{unit:"word",reverse:i});if(Qc){if((qc||Vc)&&r&&(Pd.isDeleteBackward(n)||Pd.isDeleteForward(n))&&Ki.isCollapsed(r)){var u=Qi.parent(y,r.anchor.path);if(Xi.isElement(u)&&oa.isVoid(y,u)&&(oa.isInline(y,u)||oa.isBlock(y,u)))return e.preventDefault(),void oa.deleteBackward(y,{unit:"block"})}}else{if(Pd.isBold(n)||Pd.isItalic(n)||Pd.isTransposeCharacter(n))return void e.preventDefault();if(Pd.isSoftBreak(n))return e.preventDefault(),void oa.insertSoftBreak(y);if(Pd.isSplitBlock(n))return e.preventDefault(),void oa.insertBreak(y);if(Pd.isDeleteBackward(n))return e.preventDefault(),void(r&&Ki.isExpanded(r)?oa.deleteFragment(y,{direction:"backward"}):oa.deleteBackward(y));if(Pd.isDeleteForward(n))return e.preventDefault(),void(r&&Ki.isExpanded(r)?oa.deleteFragment(y,{direction:"forward"}):oa.deleteForward(y));if(Pd.isDeleteLineBackward(n))return e.preventDefault(),void(r&&Ki.isExpanded(r)?oa.deleteFragment(y,{direction:"backward"}):oa.deleteBackward(y,{unit:"line"}));if(Pd.isDeleteLineForward(n))return e.preventDefault(),void(r&&Ki.isExpanded(r)?oa.deleteFragment(y,{direction:"forward"}):oa.deleteForward(y,{unit:"line"}));if(Pd.isDeleteWordBackward(n))return e.preventDefault(),void(r&&Ki.isExpanded(r)?oa.deleteFragment(y,{direction:"backward"}):oa.deleteBackward(y,{unit:"word"}));if(Pd.isDeleteWordForward(n))return e.preventDefault(),void(r&&Ki.isExpanded(r)?oa.deleteFragment(y,{direction:"forward"}):oa.deleteForward(y,{unit:"word"}))}}},[c,y,v.onKeyDown]),onPaste:n.useCallback(e=>{c||!zl.hasEditableTarget(y,e.target)||Yd(e,v.onPaste)||(!Qc||(e=>e.clipboardData&&""!==e.clipboardData.getData("text/plain")&&1===e.clipboardData.types.length)(e.nativeEvent)||Vc)&&(e.preventDefault(),zl.insertData(y,e.clipboardData))},[c,y,v.onPaste])}),u.default.createElement(qd,{decorations:j,node:y,renderElement:l,renderPlaceholder:f,renderLeaf:d,selection:y.selection}))))))}),Gd=e=>{var{attributes:t,children:n}=e;return u.default.createElement("span",$d({},t),n,Uc&&u.default.createElement("br",null))},Xd=()=>[],Zd=(e,t)=>{if(t.getBoundingClientRect&&(!e.selection||e.selection&&Ki.isCollapsed(e.selection))){var n=t.startContainer.parentElement;n.getBoundingClientRect=t.getBoundingClientRect.bind(t),Uu(n,{scrollMode:"if-needed"}),delete n.getBoundingClientRect}},Yd=(e,t)=>{if(!t)return!1;var n=t(e);return null!=n?n:e.isDefaultPrevented()||e.isPropagationStopped()},Jd=e=>Tl(e.target)&&(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement),Qd=(e,t)=>{if(!t)return!1;var n=t(e);return null!=n?n:e.defaultPrevented},ef=n.createContext(!1),tf=n.createContext({});var nf=["editor","children","onChange","onSelectionChange","onValueChange","initialValue"],rf=e=>{var{editor:t,children:r,onChange:o,onSelectionChange:i,onValueChange:a,initialValue:s}=e,c=Fc(e,nf),[l,d]=u.default.useState(()=>{if(!Qi.isNodeList(s))throw new Error("[Slate] initialValue is invalid! Expected a list of elements but got: ".concat(la.stringify(s)));if(!oa.isEditor(t))throw new Error("[Slate] editor is invalid! You passed: ".concat(la.stringify(t)));return t.children=s,Object.assign(t,c),{v:0,editor:t}}),{selectorContext:f,onChange:h}=function(e){var t=n.useRef([]).current,r=n.useRef({editor:e}).current,o=n.useCallback(e=>{r.editor=e,t.forEach(t=>t(e))},[t,r]);return{selectorContext:n.useMemo(()=>({getSlate:()=>r.editor,addEventListener:e=>(t.push(e),()=>{t.splice(t.indexOf(e),1)})}),[t,r]),onChange:o}}(t),p=n.useCallback(e=>{var n;if(o&&o(t.children),"set_selection"===(null==e||null===(n=e.operation)||void 0===n?void 0:n.type))null==i||i(t.selection);else null==a||a(t.children);d(e=>({v:e.v+1,editor:t})),h(t)},[t,h,o,i,a]);n.useEffect(()=>(pl.set(t,p),()=>{pl.set(t,()=>{})}),[t,p]);var[m,g]=n.useState(zl.isFocused(t));return n.useEffect(()=>{g(zl.isFocused(t))},[t]),Ql(()=>{var e=()=>g(zl.isFocused(t));return zc>=17?(document.addEventListener("focusin",e),document.addEventListener("focusout",e),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",e)}):(document.addEventListener("focus",e,!0),document.addEventListener("blur",e,!0),()=>{document.removeEventListener("focus",e,!0),document.removeEventListener("blur",e,!0)})},[]),u.default.createElement(tf.Provider,{value:f},u.default.createElement(_d.Provider,{value:l},u.default.createElement(Lc.Provider,{value:l.editor},u.default.createElement(ef.Provider,{value:m},r))))},of=(e,t)=>{var n=(t.top+t.bottom)/2;return e.top<=n&&e.bottom>=n},af=(e,t,n)=>{var r=zl.toDOMRange(e,t).getBoundingClientRect(),o=zl.toDOMRange(e,n).getBoundingClientRect();return of(r,o)&&of(o,r)};function sf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function uf(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sf(Object(n),!0).forEach(function(t){Nc(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sf(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var cf=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"x-slate-fragment",n=e,{apply:r,onChange:o,deleteBackward:i,addMark:a,removeMark:s}=n;return cl.set(n,new WeakMap),n.addMark=(e,t)=>{var r,o;null===(r=ml.get(n))||void 0===r||r(),!gl.get(n)&&null!==(o=yl.get(n))&&void 0!==o&&o.length&&gl.set(n,null),vl.delete(n),a(e,t)},n.removeMark=e=>{var t;!gl.get(n)&&null!==(t=yl.get(n))&&void 0!==t&&t.length&&gl.set(n,null),vl.delete(n),s(e)},n.deleteBackward=e=>{if("line"!==e)return i(e);if(n.selection&&Ki.isCollapsed(n.selection)){var t=oa.above(n,{match:e=>Xi.isElement(e)&&oa.isBlock(n,e),at:n.selection});if(t){var[,r]=t,o=oa.range(n,r,n.selection.anchor),a=((e,t)=>{var n=oa.range(e,Ki.end(t)),r=Array.from(oa.positions(e,{at:t})),o=0,i=r.length,a=Math.floor(i/2);if(af(e,oa.range(e,r[o]),n))return oa.range(e,r[o],n);if(r.length<2)return oa.range(e,r[r.length-1],n);for(;a!==r.length&&a!==o;)af(e,oa.range(e,r[a]),n)?i=a:o=a,a=Math.floor((o+i)/2);return oa.range(e,r[i],n)})(n,o);Ki.isCollapsed(a)||Ga.delete(n,{at:a})}}},n.apply=t=>{var o=[],i=[],a=yl.get(n);if(null!=a&&a.length){var s=a.map(e=>function(e,t){var{path:n,diff:r,id:o}=e;switch(t.type){case"insert_text":return!Ri.equals(t.path,n)||t.offset>=r.end?e:t.offset<=r.start?{diff:{start:t.text.length+r.start,end:t.text.length+r.end,text:r.text},id:o,path:n}:{diff:{start:r.start,end:r.end+t.text.length,text:r.text},id:o,path:n};case"remove_text":return!Ri.equals(t.path,n)||t.offset>=r.end?e:t.offset+t.text.length<=r.start?{diff:{start:r.start-t.text.length,end:r.end-t.text.length,text:r.text},id:o,path:n}:{diff:{start:r.start,end:r.end-t.text.length,text:r.text},id:o,path:n};case"split_node":return!Ri.equals(t.path,n)||t.position>=r.end?{diff:r,id:o,path:Ri.transform(n,t,{affinity:"backward"})}:t.position>r.start?{diff:{start:r.start,end:Math.min(t.position,r.end),text:r.text},id:o,path:n}:{diff:{start:r.start-t.position,end:r.end-t.position,text:r.text},id:o,path:Ri.transform(n,t,{affinity:"forward"})};case"merge_node":return Ri.equals(t.path,n)?{diff:{start:r.start+t.position,end:r.end+t.position,text:r.text},id:o,path:Ri.transform(n,t)}:{diff:r,id:o,path:Ri.transform(n,t)}}var i=Ri.transform(n,t);return i?{diff:r,path:i,id:o}:null}(e,t)).filter(Boolean);yl.set(n,s)}var u=wl.get(n);u&&wl.set(n,Xl(n,u,t));var c=bl.get(n);if(null!=c&&c.at){var l=ua.isPoint(null==c?void 0:c.at)?Gl(n,c.at,t):Xl(n,c.at,t);bl.set(n,l?uf(uf({},c),{},{at:l}):null)}switch(t.type){case"insert_text":case"remove_text":case"set_node":case"split_node":o.push(...lf(n,t.path));break;case"set_selection":var d;null===(d=hl.get(n))||void 0===d||d.unref(),hl.delete(n);break;case"insert_node":case"remove_node":o.push(...lf(n,Ri.parent(t.path)));break;case"merge_node":var f=Ri.previous(t.path);o.push(...lf(n,f));break;case"move_node":var h,p=Ri.common(Ri.parent(t.path),Ri.parent(t.newPath));o.push(...lf(n,p)),Ri.isBefore(t.path,t.newPath)?(o.push(...lf(n,Ri.parent(t.path))),h=t.newPath):(o.push(...lf(n,Ri.parent(t.newPath))),h=t.path);var m=Qi.get(e,Ri.parent(h)),g=zl.findKey(n,m),v=oa.pathRef(n,Ri.parent(h));i.push([v,g])}switch(r(t),t.type){case"insert_node":case"remove_node":case"merge_node":case"move_node":case"split_node":el.set(n,!0)}for(var[y,b]of o){var[w]=oa.node(n,y);ul.set(w,b)}for(var[C,D]of i){if(C.current){var[E]=oa.node(n,C.current);ul.set(E,D)}C.unref()}},n.setFragmentData=e=>{var{selection:r}=n;if(r){var[o,i]=Ki.edges(r),a=oa.void(n,{at:o.path}),s=oa.void(n,{at:i.path});if(!Ki.isCollapsed(r)||a){var u=zl.toDOMRange(n,r),c=u.cloneContents(),l=c.childNodes[0];if(c.childNodes.forEach(e=>{e.textContent&&""!==e.textContent.trim()&&(l=e)}),s){var[d]=s,f=u.cloneRange(),h=zl.toDOMNode(n,d);f.setEndAfter(h),c=f.cloneContents()}if(a&&(l=c.querySelector("[data-slate-spacer]")),Array.from(c.querySelectorAll("[data-slate-zero-width]")).forEach(e=>{var t="n"===e.getAttribute("data-slate-zero-width");e.textContent=t?"\n":""}),kl(l)){var p=l.ownerDocument.createElement("span");p.style.whiteSpace="pre",p.appendChild(l),c.appendChild(p),l=p}var m=n.getFragment(),g=JSON.stringify(m),v=window.btoa(encodeURIComponent(g));l.setAttribute("data-slate-fragment",v),e.setData("application/".concat(t),v);var y=c.ownerDocument.createElement("div");return y.appendChild(c),y.setAttribute("hidden","true"),c.ownerDocument.body.appendChild(y),e.setData("text/html",y.innerHTML),e.setData("text/plain",Rl(y)),c.ownerDocument.body.removeChild(y),e}}},n.insertData=e=>{n.insertFragmentData(e)||n.insertTextData(e)},n.insertFragmentData=e=>{var r=e.getData("application/".concat(t))||(e=>{var t=e.getData("text/html"),[,n]=t.match(jl)||[];return n})(e);if(r){var o=decodeURIComponent(window.atob(r)),i=JSON.parse(o);return n.insertFragment(i),!0}return!1},n.insertTextData=e=>{var t=e.getData("text/plain");if(t){var r=t.split(/\r\n|\r|\n/),o=!1;for(var i of r)o&&Ga.splitNodes(n,{always:!0}),n.insertText(i),o=!0;return!0}return!1},n.onChange=e=>{(zc<18?d.default.unstable_batchedUpdates:e=>e())(()=>{var t=pl.get(n);t&&t(e),o(e)})},n},lf=(e,t)=>{var n=[];for(var[r,o]of oa.levels(e,{at:t})){var i=zl.findKey(e,r);n.push([o,i])}return n};const df={Anchor:"a"},ff=n.createContext(void 0);function hf({children:e,components:t}){const r=n.useContext(ff),o=n.useMemo(()=>({...df,...r,...t}),[r,t]);return bn.jsx(ff.Provider,{value:o,children:e})}const pf=n.createContext({});function mf(){return n.useContext(pf)}function gf({overrides:e,components:t,portalContainer:r,preventUnsavedComposerChanges:o=!0,children:i}){const a=n.useMemo(()=>({portalContainer:r,preventUnsavedComposerChanges:o}),[r,o]);return bn.jsx(pf.Provider,{value:a,children:bn.jsx(Bo,{overrides:e,children:bn.jsx(hf,{components:t,children:i})})})}const vf=[{type:"mark",mark:"bold",character:"*"},{type:"mark",mark:"italic",character:"_"},{type:"mark",mark:"strikethrough",character:"~"},{type:"mark",mark:"code",character:"`"}],yf=vf.filter(e=>"mark"===e.type).map(e=>e.character);function bf(e,t,n){if(t!==n.character)return!1;const r=Ts(e,e.selection,[n.character]);if(!r||Ki.isCollapsed(r))return!1;const o=Is(e,r);if(!o||o.text!==n.character)return!1;const i=Is(e,o.range);if(i&&!yf.includes(i.text)&&!Bs(i.text))return!1;const a=oa.string(e,r);return a.trim()===a&&(Ga.select(e,r),e.addMark(n.mark,!0),Ga.collapse(e,{edge:"end"}),e.removeMark(n.mark),Ga.delete(e,{at:o.range}),!0)}function wf(e){return!("type"in e)&&"text"in e&&"string"==typeof e.text}function Cf(e){return wf(e)&&1===Object.keys(e).length}const Df={bold:!1,italic:!1,strikethrough:!1,code:!1};function Ef(e){if(!e)return{...Df};const t=oa.marks(e);return{...Df,...t}}function xf(e){return Object.keys(e??{}).filter(e=>"text"!==e)}function Af(e,t){const n=function(e,t){const n=oa.marks(e);return!!n&&!0===n[t]}(e,t);n?oa.removeMark(e,t):oa.addMark(e,t,!0)}function If(e){const t=oa.marks(e);if(t)for(const n in t)oa.removeMark(e,n)}function Sf(e,t){if(e.selection&&Ki.isCollapsed(e.selection)){if(Object.keys(oa.marks(e)??{}).length>0){("start"===t?Is(e,e.selection):Ss(e,e.selection))||If(e)}}}function Of(e){const{isInline:t,normalizeNode:n,insertData:r}=e;return e.isInline=e=>"custom-link"===e.type||t(e),e.normalizeNode=t=>{const[r,o]=t;if(wf(r)){if(Tf(Qi.parent(e,o))&&!Cf(r)){const t=xf(r);Ga.unsetNodes(e,t,{at:o})}}n(t)},e.insertData=t=>{const{selection:n}=e,o=t.getData("text/plain");let i=!0;n&&!Ki.isCollapsed(n)&&n.anchor.path[0]===n.focus.path[0]&&function(e){try{return new URL(e),!0}catch(e){return!1}}(o)&&(function(e,t){const{selection:n}=e;if(!n)return!1;const r=Array.from(oa.nodes(e,{at:n,match:t=>Xi.isElement(t)&&oa.isBlock(e,t),mode:"lowest"}));for(const[,o]of r){const r=Ki.isRange(n)?Ki.intersection(n,oa.range(e,o)):n;if(!r)continue;const i=Array.from(oa.nodes(e,{at:r,match:n=>oa.isInline(e,n)&&t(n)}));if(i.length>0)return!0}return!1}(e,e=>!wf(e))||(Ga.wrapNodes(e,{type:"custom-link",url:o,children:[]},{at:n,split:!0,match:Cf}),i=!1)),i&&r(t)},e}function Tf(e){return Xi.isElement(e)&&"custom-link"===e.type}function Bf(e){return Xi.isElement(e)&&"auto-link"===e.type}const kf=/((https?:\/\/(www\.)?)|(www\.))[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9().@:%_+~#?&//=]*)/,_f=/[.,;!?\s()]/,Ff=/^[.?][a-zA-Z0-9]+/,Rf=/[()]/;function jf(e){return _f.test(e)}function Nf(e){const t=e[e.length-1];return void 0!==t&&jf(t)}function Pf(e){const t=e[0];return void 0!==t&&jf(t)}function Mf(e,t){const n=oa.previous(e,{at:t});return!n||wf(n[0])&&(Nf(n[0].text)||""===n[0].text)}function Lf(e,t){const n=oa.next(e,{at:t});return!n||wf(n[0])&&(Pf(n[0].text)||""===n[0].text)}const Hf=(e,t)=>{const[n,r]=t,o=Qi.children(e,r);for(const[t]of o)if(!wf(t))return void Ga.unwrapNodes(e,{at:r});const i=Qi.string(n),a=kf.exec(i),s=a?.[0];if(!a||s!==i)return void Ga.unwrapNodes(e,{at:r});if("."===(u=i)[u.length-1]||"?"===u[u.length-1]){Ga.unwrapNodes(e,{at:r});const t=i.slice(0,i.length-1);return void Ga.wrapNodes(e,{type:"auto-link",url:t,children:[]},{at:{anchor:{path:r,offset:0},focus:{path:r,offset:t.length}},split:!0})}var u;const c=function(e){if(!Rf.test(e))return e.length;let t=0,n=0;for(const r of e){if("("===r&&n++,")"===r&&(n--,n<0))break;t++}return t}(i);if(c<i.length){Ga.unwrapNodes(e,{at:r});const t=i.slice(0,c);return void Ga.wrapNodes(e,{type:"auto-link",url:t,children:[]},{at:{anchor:{path:r,offset:0},focus:{path:r,offset:t.length}},split:!0})}Mf(e,r)&&Lf(e,r)?n.url===i||Ga.setNodes(e,{url:s},{at:r}):Ga.unwrapNodes(e,{at:r})},zf=(e,t)=>{const[n,r]=t,o=kf.exec(n.text),i=o?.[0];if(!o||void 0===i)return;const a=o.index,s=a+i.length;(function(e,t,n,r){const[o,i]=t,a=o.text,s=a[n-1],u=n>0&&s?jf(s):Mf(e,i),c=a[r],l=r<a.length&&c?jf(c):Lf(e,i);return u&&l})(e,t,a,s)&&Ga.wrapNodes(e,{type:"auto-link",url:i,children:[]},{at:{anchor:{path:r,offset:a},focus:{path:r,offset:s}},split:!0})},Uf=(e,t)=>{const[n,r]=t,o=n.text,i=oa.previous(e,{at:r});if(i&&Bf(i[0])){if(Ff.test(o))return Ga.unwrapNodes(e,{at:i[1]}),void Ga.mergeNodes(e,{at:r});if(!Pf(o))return void Ga.unwrapNodes(e,{at:i[1]})}const a=oa.next(e,{at:r});a&&Bf(a[0])&&!Nf(o)&&Ga.unwrapNodes(e,{at:a[1]})};function Wf(e,t){for(const n of t)if(wf(n)){if(!Bs(n.text))return!1}else if("paragraph"===n.type){if(n.children.length>1||n.children[0]&&(!wf(n.children[0])||!Bs(n.children[0].text)))return!1}else if(!oa.isEmpty(e,n))return!1;return!0}function Vf(e){return Vf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Vf(e)}function $f(e){var t=function(e,t){if("object"!==Vf(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Vf(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Vf(t)?t:String(t)}function qf(e,t,n){return(t=$f(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Kf=new WeakMap,Gf=new WeakMap;class Xf{}class Zf extends Xf{constructor(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),qf(this,"offset",void 0),qf(this,"path",void 0);var{offset:t,path:n}=e;this.offset=t,this.path=n}}class Yf extends Xf{constructor(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),qf(this,"offset",void 0),qf(this,"path",void 0);var{offset:t,path:n}=e;this.offset=t,this.path=n}}var Jf=e=>Kf.get(e),Qf=e=>Gf.get(e);function eh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function th(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?eh(Object(n),!0).forEach(function(t){qf(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):eh(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var nh=new WeakSet,rh=e=>{var t=[],n=e=>{if(null!=e){var r=t[t.length-1];if("string"==typeof e){var o={text:e};nh.add(o),e=o}if(ga.isText(e)){var i=e;ga.isText(r)&&nh.has(r)&&nh.has(i)&&ga.equals(r,i,{loose:!0})?r.text+=i.text:t.push(i)}else if(Xi.isElement(e))t.push(e);else{if(!(e instanceof Xf))throw new Error("Unexpected hyperscript child object: ".concat(e));var a=t[t.length-1];ga.isText(a)||(n(""),a=t[t.length-1]),e instanceof Zf?((e,t)=>{var n=e.text.length;Kf.set(e,[n,t])})(a,e):e instanceof Yf&&((e,t)=>{var n=e.text.length;Gf.set(e,[n,t])})(a,e)}}};for(var r of e.flat(1/0))n(r);return t};function oh(e,t,n){return th(th({},t),{},{children:rh(n)})}function ih(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ah(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ih(Object(n),!0).forEach(function(t){qf(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ih(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var sh,uh={anchor:function(e,t,n){return new Zf(t)},cursor:function(e,t,n){return[new Zf(t),new Yf(t)]},editor:(sh=As,(e,t,n)=>{var r,o=[];for(var i of n)Ki.isRange(i)?r=i:o.push(i);var a=rh(o),s={},u=sh();for(var[c,l]of(Object.assign(u,t),u.children=a,Qi.texts(u))){var d=Jf(c),f=Qf(c);if(null!=d){var[h]=d;s.anchor={path:l,offset:h}}if(null!=f){var[p]=f;s.focus={path:l,offset:p}}}if(s.anchor&&!s.focus)throw new Error("Slate hyperscript ranges must have both `<anchor />` and `<focus />` defined if one is defined, but you only defined `<anchor />`. For collapsed selections, use `<cursor />` instead.");if(!s.anchor&&s.focus)throw new Error("Slate hyperscript ranges must have both `<anchor />` and `<focus />` defined if one is defined, but you only defined `<focus />`. For collapsed selections, use `<cursor />` instead.");return null!=r?u.selection=r:Ki.isRange(s)&&(u.selection=s),u}),element:oh,focus:function(e,t,n){return new Yf(t)},fragment:function(e,t,n){return rh(n)},selection:function(e,t,n){var r=n.find(e=>e instanceof Zf),o=n.find(e=>e instanceof Yf);if(!r||null==r.offset||null==r.path)throw new Error("The <selection> hyperscript tag must have an <anchor> tag as a child with `path` and `offset` attributes defined.");if(!o||null==o.offset||null==o.path)throw new Error("The <selection> hyperscript tag must have a <focus> tag as a child with `path` and `offset` attributes defined.");return th({anchor:{offset:r.offset,path:r.path},focus:{offset:o.offset,path:o.path}},t)},text:function(e,t,n){var r=rh(n);if(r.length>1)throw new Error("The <text> hyperscript tag must only contain a single node's worth of children.");var[o]=r;if(null==o&&(o={text:""}),!ga.isText(o))throw new Error("\n The <text> hyperscript tag can only contain text content as children.");return nh.delete(o),Object.assign(o,t),o}},ch=e=>function(t,n){for(var r=arguments.length,o=new Array(r>2?r-2:0),i=2;i<r;i++)o[i-2]=arguments[i];var a=e[t];if(!a)throw new Error("No hyperscript creator found for tag: <".concat(t,">"));return null==n&&(n={}),_o(n)||(o=[n].concat(o),n={}),a(t,n,o=o.filter(e=>Boolean(e)).flat())},lh=e=>{var t={},n=function(){var n=e[r];if("object"!=typeof n)throw new Error("Properties specified for a hyperscript shorthand should be an object, but for the custom element <".concat(r,"> tag you passed: ").concat(n));t[r]=(e,t,r)=>oh(0,ah(ah({},n),t),r)};for(var r in e)n();return t},dh=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{elements:t={}}=e,n=lh(t),r=ah(ah(ah({},uh),n),e.creators);return ch(r)}();function fh(e){return null!=e}function hh(e){if(!e.types.includes("Files"))return[];let t=Array.from(e.items).map(e=>{const t=e.webkitGetAsEntry();return t&&t.isFile?e.getAsFile():null}).filter(fh);return t.length||(t=Array.from(e.files).filter(e=>""!==e.type)),t}function ph(e,t){try{const n=new URL(e),r=new URL(t);return n.origin===r.origin&&n.pathname===r.pathname}catch{return!1}}const mh=()=>({type:"paragraph"}),gh={A:e=>{const t=e.getAttribute("href"),n=e.innerText;return{type:t&&ph(t,n)?"auto-link":"custom-link",url:t??""}},P:mh,BLOCKQUOTE:mh,H1:mh,H2:mh,H3:mh,H4:mh,H5:mh,H6:mh,LI:mh},vh={CODE:()=>({code:!0}),DEL:()=>({strikethrough:!0}),EM:()=>({italic:!0}),I:()=>({italic:!0}),S:()=>({strikethrough:!0}),STRONG:()=>({bold:!0}),B:()=>({bold:!0})};function yh(e){const t=[];return"LI"===e.nodeName&&t.push(e),e.childNodes.forEach(e=>{1===e.nodeType&&t.push(...yh(e))}),t}function bh(e,t){return e.map(e=>dh("text",t,e))}function wh(e){if(3===e.nodeType)return e.textContent;if(1!==e.nodeType)return null;if("BR"===e.nodeName)return dh("element",{type:"paragraph"},[]);let t=Array.from(e.childNodes).map(wh).flat();if("UL"===e.nodeName||"OL"===e.nodeName){t=yh(e).map(e=>wh(e)).flat()}if(0===t.length&&(t=[{text:""}]),"BODY"===e.nodeName)return t.length>0&&t.every(e=>"string"==typeof e)&&(t=[{type:"paragraph",children:[{text:t.join("")}]}]),dh("fragment",{},t.filter(e=>"string"!=typeof e));if(gh[e.nodeName]){const n=gh[e.nodeName](e);return dh("element",n,t)}if(vh[e.nodeName]){const n=vh[e.nodeName](e);return t.some(e=>e&&"string"!=typeof e&&"type"in e)?dh("fragment",{},t):bh(t,n)}if("SPAN"===e.nodeName){const n=e.style,r={};return"bold"!==n.fontWeight&&"700"!==n.fontWeight&&"800"!==n.fontWeight&&"900"!==n.fontWeight||(r.bold=!0),"italic"===n.fontStyle&&(r.italic=!0),"line-through"===n.textDecoration&&(r.strikethrough=!0),bh(t,r)}return t}function Ch(e,t){try{return zl.toDOMRange(e,t)}catch(n){return Ch(e,{anchor:t.anchor,focus:t.anchor})}}const Dh=/Mac|iPod|iPhone|iPad/;function Eh(){return"undefined"!=typeof window&&Dh.test(window.navigator.platform)}const xh={alt:()=>"altKey",ctrl:()=>"ctrlKey",meta:()=>"metaKey",mod:()=>Eh()?"metaKey":"ctrlKey",shift:()=>"shiftKey"};function Ah(e,t,n={}){if(e.key!==t)return!1;return Object.entries(n).filter(([,e])=>"boolean"==typeof e).every(([t,n])=>{const r=xh[t]();return e[r]===n})}const Ih=d.default["flushSync".toString()]??function(e){return e()},Sh=n.createContext(null);function Oh(){return Ce(n.useContext(Sh),"Persist is missing from the React tree.")}function Th(e){const[t,r]=Oh(),o=n.useRef(null),i=n.useRef(null);n.useLayoutEffect(()=>{const t=e.current;if(!t)return;const n=e=>{e.animationName===i.current&&r(),o.current=e.animationName};return t.addEventListener("animationcancel",n),t.addEventListener("animationend",n),()=>{t.removeEventListener("animationcancel",n),t.removeEventListener("animationend",n)}},[e,r]),n.useLayoutEffect(()=>{const n=e.current;let a;if(n)return t||(a=requestAnimationFrame(()=>{const e=getComputedStyle(n);i.current=e.animationName,"none"!==e.animationName&&e.animationName!==o.current&&"none"!==e.display||r()})),()=>{cancelAnimationFrame(a)}},[t,e,r])}function Bh({children:e}){const[t,r]=n.useState(!0),o=n.useRef(null),i=function(e){const t=Array.isArray(e)?n.Children.only(e):e;return n.isValidElement(t)?t:void 0}(e),a=n.useCallback(()=>{Ih(()=>r(!1))},[]);return n.useLayoutEffect(()=>{i&&(r(!0),o.current=i)},[i]),bn.jsx(Sh.Provider,{value:[Boolean(i),a],children:i??(t?o.current:null)})}const kh=n.forwardRef(({container:e=document?.body,asChild:t,...n},o)=>{const i=t?ro:"div";return e?r.createPortal(bn.jsx(i,{"data-liveblocks-portal":"",...n,ref:o}),e):null});function _h(e,t,n){return Math.min(Math.max(e,t),n)}function Fh(e,t,n){const r=n-t;return r>0?((e-t)%r+r)%r+t:0}const Rh={wrap:!0};function jh(e){const[t]=n.useState(e);return t}function Nh(e){const t=n.useRef(e);return n.useEffect(()=>{t.current=e},[e]),t}function Ph(e,t){const r=Nh(t);n.useEffect(()=>e.subscribe(()=>r.current()),[e,r])}function Mh(e,t){t&&("function"==typeof e?e(t):e&&"current"in e&&(e.current=t))}function Lh(...e){return n.useCallback(t=>function(e,...t){for(const n of t)Mh(n,e)}(t,...e),[e])}const Hh=n.createContext(null),zh=n.createContext(null),Uh=n.createContext(null),Wh=n.createContext(null),Vh=n.createContext(null);function $h(){return Ce(n.useContext(zh),"Composer.Form is missing from the React tree.")}function qh(){return n.useContext(Uh)}function Kh(){return Ce(qh(),"Composer.Form is missing from the React tree.")}function Gh(e="useComposerSuggestionsContext"){return Ce(n.useContext(Wh),`${e} can’t be used outside of Composer.Editor.`)}function Xh(){return Ce(n.useContext(Hh),"Composer.Form is missing from the React tree.")}const Zh=["top","right","bottom","left"],Yh=Math.min,Jh=Math.max,Qh=Math.round,ep=Math.floor,tp=e=>({x:e,y:e}),np={left:"right",right:"left",bottom:"top",top:"bottom"},rp={start:"end",end:"start"};function op(e,t,n){return Jh(e,Yh(t,n))}function ip(e,t){return"function"==typeof e?e(t):e}function ap(e){return e.split("-")[0]}function sp(e){return e.split("-")[1]}function up(e){return"x"===e?"y":"x"}function cp(e){return"y"===e?"height":"width"}const lp=new Set(["top","bottom"]);function dp(e){return lp.has(ap(e))?"y":"x"}function fp(e){return up(dp(e))}function hp(e,t,n){void 0===n&&(n=!1);const r=sp(e),o=fp(e),i=cp(o);let a="x"===o?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[i]>t.floating[i]&&(a=wp(a)),[a,wp(a)]}function pp(e){return e.replace(/start|end/g,e=>rp[e])}const mp=["left","right"],gp=["right","left"],vp=["top","bottom"],yp=["bottom","top"];function bp(e,t,n,r){const o=sp(e);let i=function(e,t,n){switch(e){case"top":case"bottom":return n?t?gp:mp:t?mp:gp;case"left":case"right":return t?vp:yp;default:return[]}}(ap(e),"start"===n,r);return o&&(i=i.map(e=>e+"-"+o),t&&(i=i.concat(i.map(pp)))),i}function wp(e){return e.replace(/left|right|bottom|top/g,e=>np[e])}function Cp(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function Dp(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function Ep(e,t,n){let{reference:r,floating:o}=e;const i=dp(t),a=fp(t),s=cp(a),u=ap(t),c="y"===i,l=r.x+r.width/2-o.width/2,d=r.y+r.height/2-o.height/2,f=r[s]/2-o[s]/2;let h;switch(u){case"top":h={x:l,y:r.y-o.height};break;case"bottom":h={x:l,y:r.y+r.height};break;case"right":h={x:r.x+r.width,y:d};break;case"left":h={x:r.x-o.width,y:d};break;default:h={x:r.x,y:r.y}}switch(sp(t)){case"start":h[a]-=f*(n&&c?-1:1);break;case"end":h[a]+=f*(n&&c?-1:1)}return h}async function xp(e,t){var n;void 0===t&&(t={});const{x:r,y:o,platform:i,rects:a,elements:s,strategy:u}=e,{boundary:c="clippingAncestors",rootBoundary:l="viewport",elementContext:d="floating",altBoundary:f=!1,padding:h=0}=ip(t,e),p=Cp(h),m=s[f?"floating"===d?"reference":"floating":d],g=Dp(await i.getClippingRect({element:null==(n=await(null==i.isElement?void 0:i.isElement(m)))||n?m:m.contextElement||await(null==i.getDocumentElement?void 0:i.getDocumentElement(s.floating)),boundary:c,rootBoundary:l,strategy:u})),v="floating"===d?{x:r,y:o,width:a.floating.width,height:a.floating.height}:a.reference,y=await(null==i.getOffsetParent?void 0:i.getOffsetParent(s.floating)),b=await(null==i.isElement?void 0:i.isElement(y))&&await(null==i.getScale?void 0:i.getScale(y))||{x:1,y:1},w=Dp(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:v,offsetParent:y,strategy:u}):v);return{top:(g.top-w.top+p.top)/b.y,bottom:(w.bottom-g.bottom+p.bottom)/b.y,left:(g.left-w.left+p.left)/b.x,right:(w.right-g.right+p.right)/b.x}}function Ap(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Ip(e){return Zh.some(t=>e[t]>=0)}function Sp(e){const t=Yh(...e.map(e=>e.left)),n=Yh(...e.map(e=>e.top));return{x:t,y:n,width:Jh(...e.map(e=>e.right))-t,height:Jh(...e.map(e=>e.bottom))-n}}const Op=new Set(["left","top"]);function Tp(){return"undefined"!=typeof window}function Bp(e){return Fp(e)?(e.nodeName||"").toLowerCase():"#document"}function kp(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function _p(e){var t;return null==(t=(Fp(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function Fp(e){return!!Tp()&&(e instanceof Node||e instanceof kp(e).Node)}function Rp(e){return!!Tp()&&(e instanceof Element||e instanceof kp(e).Element)}function jp(e){return!!Tp()&&(e instanceof HTMLElement||e instanceof kp(e).HTMLElement)}function Np(e){return!(!Tp()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof kp(e).ShadowRoot)}const Pp=new Set(["inline","contents"]);function Mp(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=Zp(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!Pp.has(o)}const Lp=new Set(["table","td","th"]);function Hp(e){return Lp.has(Bp(e))}const zp=[":popover-open",":modal"];function Up(e){return zp.some(t=>{try{return e.matches(t)}catch(e){return!1}})}const Wp=["transform","translate","scale","rotate","perspective"],Vp=["transform","translate","scale","rotate","perspective","filter"],$p=["paint","layout","strict","content"];function qp(e){const t=Kp(),n=Rp(e)?Zp(e):e;return Wp.some(e=>!!n[e]&&"none"!==n[e])||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||Vp.some(e=>(n.willChange||"").includes(e))||$p.some(e=>(n.contain||"").includes(e))}function Kp(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}const Gp=new Set(["html","body","#document"]);function Xp(e){return Gp.has(Bp(e))}function Zp(e){return kp(e).getComputedStyle(e)}function Yp(e){return Rp(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Jp(e){if("html"===Bp(e))return e;const t=e.assignedSlot||e.parentNode||Np(e)&&e.host||_p(e);return Np(t)?t.host:t}function Qp(e){const t=Jp(e);return Xp(t)?e.ownerDocument?e.ownerDocument.body:e.body:jp(t)&&Mp(t)?t:Qp(t)}function em(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);const o=Qp(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=kp(o);if(i){const e=tm(a);return t.concat(a,a.visualViewport||[],Mp(o)?o:[],e&&n?em(e):[])}return t.concat(o,em(o,[],n))}function tm(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function nm(e){const t=Zp(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=jp(e),i=o?e.offsetWidth:n,a=o?e.offsetHeight:r,s=Qh(n)!==i||Qh(r)!==a;return s&&(n=i,r=a),{width:n,height:r,$:s}}function rm(e){return Rp(e)?e:e.contextElement}function om(e){const t=rm(e);if(!jp(t))return tp(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:i}=nm(t);let a=(i?Qh(n.width):n.width)/r,s=(i?Qh(n.height):n.height)/o;return a&&Number.isFinite(a)||(a=1),s&&Number.isFinite(s)||(s=1),{x:a,y:s}}const im=tp(0);function am(e){const t=kp(e);return Kp()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:im}function sm(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=!1);const o=e.getBoundingClientRect(),i=rm(e);let a=tp(1);t&&(r?Rp(r)&&(a=om(r)):a=om(e));const s=function(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==kp(e))&&t}(i,n,r)?am(i):tp(0);let u=(o.left+s.x)/a.x,c=(o.top+s.y)/a.y,l=o.width/a.x,d=o.height/a.y;if(i){const e=kp(i),t=r&&Rp(r)?kp(r):r;let n=e,o=tm(n);for(;o&&r&&t!==n;){const e=om(o),t=o.getBoundingClientRect(),r=Zp(o),i=t.left+(o.clientLeft+parseFloat(r.paddingLeft))*e.x,a=t.top+(o.clientTop+parseFloat(r.paddingTop))*e.y;u*=e.x,c*=e.y,l*=e.x,d*=e.y,u+=i,c+=a,n=kp(o),o=tm(n)}}return Dp({width:l,height:d,x:u,y:c})}function um(e,t){const n=Yp(e).scrollLeft;return t?t.left+n:sm(_p(e)).left+n}function cm(e,t){const n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-um(e,n),y:n.top+t.scrollTop}}const lm=new Set(["absolute","fixed"]);function dm(e,t,n){let r;if("viewport"===t)r=function(e,t){const n=kp(e),r=_p(e),o=n.visualViewport;let i=r.clientWidth,a=r.clientHeight,s=0,u=0;if(o){i=o.width,a=o.height;const e=Kp();(!e||e&&"fixed"===t)&&(s=o.offsetLeft,u=o.offsetTop)}const c=um(r);if(c<=0){const e=r.ownerDocument,t=e.body,n=getComputedStyle(t),o="CSS1Compat"===e.compatMode&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,a=Math.abs(r.clientWidth-t.clientWidth-o);a<=25&&(i-=a)}else c<=25&&(i+=c);return{width:i,height:a,x:s,y:u}}(e,n);else if("document"===t)r=function(e){const t=_p(e),n=Yp(e),r=e.ownerDocument.body,o=Jh(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=Jh(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+um(e);const s=-n.scrollTop;return"rtl"===Zp(r).direction&&(a+=Jh(t.clientWidth,r.clientWidth)-o),{width:o,height:i,x:a,y:s}}(_p(e));else if(Rp(t))r=function(e,t){const n=sm(e,!0,"fixed"===t),r=n.top+e.clientTop,o=n.left+e.clientLeft,i=jp(e)?om(e):tp(1);return{width:e.clientWidth*i.x,height:e.clientHeight*i.y,x:o*i.x,y:r*i.y}}(t,n);else{const n=am(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Dp(r)}function fm(e,t){const n=Jp(e);return!(n===t||!Rp(n)||Xp(n))&&("fixed"===Zp(n).position||fm(n,t))}function hm(e,t,n){const r=jp(t),o=_p(t),i="fixed"===n,a=sm(e,!0,i,t);let s={scrollLeft:0,scrollTop:0};const u=tp(0);function c(){u.x=um(o)}if(r||!r&&!i)if(("body"!==Bp(t)||Mp(o))&&(s=Yp(t)),r){const e=sm(t,!0,i,t);u.x=e.x+t.clientLeft,u.y=e.y+t.clientTop}else o&&c();i&&!r&&o&&c();const l=!o||r||i?tp(0):cm(o,s);return{x:a.left+s.scrollLeft-u.x-l.x,y:a.top+s.scrollTop-u.y-l.y,width:a.width,height:a.height}}function pm(e){return"static"===Zp(e).position}function mm(e,t){if(!jp(e)||"fixed"===Zp(e).position)return null;if(t)return t(e);let n=e.offsetParent;return _p(e)===n&&(n=n.ownerDocument.body),n}function gm(e,t){const n=kp(e);if(Up(e))return n;if(!jp(e)){let t=Jp(e);for(;t&&!Xp(t);){if(Rp(t)&&!pm(t))return t;t=Jp(t)}return n}let r=mm(e,t);for(;r&&Hp(r)&&pm(r);)r=mm(r,t);return r&&Xp(r)&&pm(r)&&!qp(r)?n:r||function(e){let t=Jp(e);for(;jp(t)&&!Xp(t);){if(qp(t))return t;if(Up(t))return null;t=Jp(t)}return null}(e)||n}const vm={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const i="fixed"===o,a=_p(r),s=!!t&&Up(t.floating);if(r===a||s&&i)return n;let u={scrollLeft:0,scrollTop:0},c=tp(1);const l=tp(0),d=jp(r);if((d||!d&&!i)&&(("body"!==Bp(r)||Mp(a))&&(u=Yp(r)),jp(r))){const e=sm(r);c=om(r),l.x=e.x+r.clientLeft,l.y=e.y+r.clientTop}const f=!a||d||i?tp(0):cm(a,u);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-u.scrollLeft*c.x+l.x+f.x,y:n.y*c.y-u.scrollTop*c.y+l.y+f.y}},getDocumentElement:_p,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const i="clippingAncestors"===n?Up(t)?[]:function(e,t){const n=t.get(e);if(n)return n;let r=em(e,[],!1).filter(e=>Rp(e)&&"body"!==Bp(e)),o=null;const i="fixed"===Zp(e).position;let a=i?Jp(e):e;for(;Rp(a)&&!Xp(a);){const t=Zp(a),n=qp(a);n||"fixed"!==t.position||(o=null),(i?!n&&!o:!n&&"static"===t.position&&o&&lm.has(o.position)||Mp(a)&&!n&&fm(e,a))?r=r.filter(e=>e!==a):o=t,a=Jp(a)}return t.set(e,r),r}(t,this._c):[].concat(n),a=[...i,r],s=a[0],u=a.reduce((e,n)=>{const r=dm(t,n,o);return e.top=Jh(r.top,e.top),e.right=Yh(r.right,e.right),e.bottom=Yh(r.bottom,e.bottom),e.left=Jh(r.left,e.left),e},dm(t,s,o));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}},getOffsetParent:gm,getElementRects:async function(e){const t=this.getOffsetParent||gm,n=this.getDimensions,r=await n(e.floating);return{reference:hm(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:n}=nm(e);return{width:t,height:n}},getScale:om,isElement:Rp,isRTL:function(e){return"rtl"===Zp(e).direction}};function ym(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function bm(e,t,n,r){void 0===r&&(r={});const{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:s="function"==typeof IntersectionObserver,animationFrame:u=!1}=r,c=rm(e),l=o||i?[...c?em(c):[],...em(t)]:[];l.forEach(e=>{o&&e.addEventListener("scroll",n,{passive:!0}),i&&e.addEventListener("resize",n)});const d=c&&s?function(e,t){let n,r=null;const o=_p(e);function i(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return function a(s,u){void 0===s&&(s=!1),void 0===u&&(u=1),i();const c=e.getBoundingClientRect(),{left:l,top:d,width:f,height:h}=c;if(s||t(),!f||!h)return;const p={rootMargin:-ep(d)+"px "+-ep(o.clientWidth-(l+f))+"px "+-ep(o.clientHeight-(d+h))+"px "+-ep(l)+"px",threshold:Jh(0,Yh(1,u))||1};let m=!0;function g(t){const r=t[0].intersectionRatio;if(r!==u){if(!m)return a();r?a(!1,r):n=setTimeout(()=>{a(!1,1e-7)},1e3)}1!==r||ym(c,e.getBoundingClientRect())||a(),m=!1}try{r=new IntersectionObserver(g,{...p,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(g,p)}r.observe(e)}(!0),i}(c,n):null;let f,h=-1,p=null;a&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===c&&p&&(p.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var e;null==(e=p)||e.observe(t)})),n()}),c&&!u&&p.observe(c),p.observe(t));let m=u?sm(e):null;return u&&function t(){const r=sm(e);m&&!ym(m,r)&&n();m=r,f=requestAnimationFrame(t)}(),n(),()=>{var e;l.forEach(e=>{o&&e.removeEventListener("scroll",n),i&&e.removeEventListener("resize",n)}),null==d||d(),null==(e=p)||e.disconnect(),p=null,u&&cancelAnimationFrame(f)}}const wm=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:i,placement:a,middlewareData:s}=t,u=await async function(e,t){const{placement:n,platform:r,elements:o}=e,i=await(null==r.isRTL?void 0:r.isRTL(o.floating)),a=ap(n),s=sp(n),u="y"===dp(n),c=Op.has(a)?-1:1,l=i&&u?-1:1,d=ip(t,e);let{mainAxis:f,crossAxis:h,alignmentAxis:p}="number"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&"number"==typeof p&&(h="end"===s?-1*p:p),u?{x:h*l,y:f*c}:{x:f*c,y:h*l}}(t,e);return a===(null==(n=s.offset)?void 0:n.placement)&&null!=(r=s.arrow)&&r.alignmentOffset?{}:{x:o+u.x,y:i+u.y,data:{...u,placement:a}}}}},Cm=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:a=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...u}=ip(e,t),c={x:n,y:r},l=await xp(t,u),d=dp(ap(o)),f=up(d);let h=c[f],p=c[d];if(i){const e="y"===f?"bottom":"right";h=op(h+l["y"===f?"top":"left"],h,h-l[e])}if(a){const e="y"===d?"bottom":"right";p=op(p+l["y"===d?"top":"left"],p,p-l[e])}const m=s.fn({...t,[f]:h,[d]:p});return{...m,data:{x:m.x-n,y:m.y-r,enabled:{[f]:i,[d]:a}}}}}},Dm=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:o,middlewareData:i,rects:a,initialPlacement:s,platform:u,elements:c}=t,{mainAxis:l=!0,crossAxis:d=!0,fallbackPlacements:f,fallbackStrategy:h="bestFit",fallbackAxisSideDirection:p="none",flipAlignment:m=!0,...g}=ip(e,t);if(null!=(n=i.arrow)&&n.alignmentOffset)return{};const v=ap(o),y=dp(s),b=ap(s)===s,w=await(null==u.isRTL?void 0:u.isRTL(c.floating)),C=f||(b||!m?[wp(s)]:function(e){const t=wp(e);return[pp(e),t,pp(t)]}(s)),D="none"!==p;!f&&D&&C.push(...bp(s,m,p,w));const E=[s,...C],x=await xp(t,g),A=[];let I=(null==(r=i.flip)?void 0:r.overflows)||[];if(l&&A.push(x[v]),d){const e=hp(o,a,w);A.push(x[e[0]],x[e[1]])}if(I=[...I,{placement:o,overflows:A}],!A.every(e=>e<=0)){var S,O;const e=((null==(S=i.flip)?void 0:S.index)||0)+1,t=E[e];if(t){if(!("alignment"===d&&y!==dp(t))||I.every(e=>dp(e.placement)!==y||e.overflows[0]>0))return{data:{index:e,overflows:I},reset:{placement:t}}}let n=null==(O=I.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:O.placement;if(!n)switch(h){case"bestFit":{var T;const e=null==(T=I.filter(e=>{if(D){const t=dp(e.placement);return t===y||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:T[0];e&&(n=e);break}case"initialPlacement":n=s}if(o!==n)return{reset:{placement:n}}}return{}}}},Em=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:o,rects:i,platform:a,elements:s}=t,{apply:u=()=>{},...c}=ip(e,t),l=await xp(t,c),d=ap(o),f=sp(o),h="y"===dp(o),{width:p,height:m}=i.floating;let g,v;"top"===d||"bottom"===d?(g=d,v=f===(await(null==a.isRTL?void 0:a.isRTL(s.floating))?"start":"end")?"left":"right"):(v=d,g="end"===f?"top":"bottom");const y=m-l.top-l.bottom,b=p-l.left-l.right,w=Yh(m-l[g],y),C=Yh(p-l[v],b),D=!t.middlewareData.shift;let E=w,x=C;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(x=b),null!=(r=t.middlewareData.shift)&&r.enabled.y&&(E=y),D&&!f){const e=Jh(l.left,0),t=Jh(l.right,0),n=Jh(l.top,0),r=Jh(l.bottom,0);h?x=p-2*(0!==e||0!==t?e+t:Jh(l.left,l.right)):E=m-2*(0!==n||0!==r?n+r:Jh(l.top,l.bottom))}await u({...t,availableWidth:x,availableHeight:E});const A=await a.getDimensions(s.floating);return p!==A.width||m!==A.height?{reset:{rects:!0}}:{}}}},xm=function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...o}=ip(e,t);switch(r){case"referenceHidden":{const e=Ap(await xp(t,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:Ip(e)}}}case"escaped":{const e=Ap(await xp(t,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:Ip(e)}}}default:return{}}}}},Am=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:i,platform:a,elements:s,middlewareData:u}=t,{element:c,padding:l=0}=ip(e,t)||{};if(null==c)return{};const d=Cp(l),f={x:n,y:r},h=fp(o),p=cp(h),m=await a.getDimensions(c),g="y"===h,v=g?"top":"left",y=g?"bottom":"right",b=g?"clientHeight":"clientWidth",w=i.reference[p]+i.reference[h]-f[h]-i.floating[p],C=f[h]-i.reference[h],D=await(null==a.getOffsetParent?void 0:a.getOffsetParent(c));let E=D?D[b]:0;E&&await(null==a.isElement?void 0:a.isElement(D))||(E=s.floating[b]||i.floating[p]);const x=w/2-C/2,A=E/2-m[p]/2-1,I=Yh(d[v],A),S=Yh(d[y],A),O=I,T=E-m[p]-S,B=E/2-m[p]/2+x,k=op(O,B,T),_=!u.arrow&&null!=sp(o)&&B!==k&&i.reference[p]/2-(B<O?I:S)-m[p]/2<0,F=_?B<O?B-O:B-T:0;return{[h]:f[h]+F,data:{[h]:k,centerOffset:B-k-F,..._&&{alignmentOffset:F}},reset:_}}}),Im=function(e){return void 0===e&&(e={}),{name:"inline",options:e,async fn(t){const{placement:n,elements:r,rects:o,platform:i,strategy:a}=t,{padding:s=2,x:u,y:c}=ip(e,t),l=Array.from(await(null==i.getClientRects?void 0:i.getClientRects(r.reference))||[]),d=function(e){const t=e.slice().sort((e,t)=>e.y-t.y),n=[];let r=null;for(let e=0;e<t.length;e++){const o=t[e];!r||o.y-r.y>r.height/2?n.push([o]):n[n.length-1].push(o),r=o}return n.map(e=>Dp(Sp(e)))}(l),f=Dp(Sp(l)),h=Cp(s);const p=await i.getElementRects({reference:{getBoundingClientRect:function(){if(2===d.length&&d[0].left>d[1].right&&null!=u&&null!=c)return d.find(e=>u>e.left-h.left&&u<e.right+h.right&&c>e.top-h.top&&c<e.bottom+h.bottom)||f;if(d.length>=2){if("y"===dp(n)){const e=d[0],t=d[d.length-1],r="top"===ap(n),o=e.top,i=t.bottom,a=r?e.left:t.left,s=r?e.right:t.right;return{top:o,bottom:i,left:a,right:s,width:s-a,height:i-o,x:a,y:o}}const e="left"===ap(n),t=Jh(...d.map(e=>e.right)),r=Yh(...d.map(e=>e.left)),o=d.filter(n=>e?n.left===r:n.right===t),i=o[0].top,a=o[o.length-1].bottom;return{top:i,bottom:a,left:r,right:t,width:t-r,height:a-i,x:r,y:i}}return f}},floating:r.floating,strategy:a});return o.reference.x!==p.reference.x||o.reference.y!==p.reference.y||o.reference.width!==p.reference.width||o.reference.height!==p.reference.height?{reset:{rects:p}}:{}}}},Sm=function(e){return void 0===e&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:i,middlewareData:a}=t,{offset:s=0,mainAxis:u=!0,crossAxis:c=!0}=ip(e,t),l={x:n,y:r},d=dp(o),f=up(d);let h=l[f],p=l[d];const m=ip(s,t),g="number"==typeof m?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(u){const e="y"===f?"height":"width",t=i.reference[f]-i.floating[e]+g.mainAxis,n=i.reference[f]+i.reference[e]-g.mainAxis;h<t?h=t:h>n&&(h=n)}if(c){var v,y;const e="y"===f?"width":"height",t=Op.has(ap(o)),n=i.reference[d]-i.floating[e]+(t&&(null==(v=a.offset)?void 0:v[d])||0)+(t?0:g.crossAxis),r=i.reference[d]+i.reference[e]+(t?0:(null==(y=a.offset)?void 0:y[d])||0)-(t?g.crossAxis:0);p<n?p=n:p>r&&(p=r)}return{[f]:h,[d]:p}}}},Om=(e,t,n)=>{const r=new Map,o={platform:vm,...n},i={...o.platform,_c:r};return(async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:a}=n,s=i.filter(Boolean),u=await(null==a.isRTL?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:o}),{x:l,y:d}=Ep(c,r,u),f=r,h={},p=0;for(let n=0;n<s.length;n++){const{name:i,fn:m}=s[n],{x:g,y:v,data:y,reset:b}=await m({x:l,y:d,initialPlacement:r,placement:f,strategy:o,middlewareData:h,rects:c,platform:a,elements:{reference:e,floating:t}});l=null!=g?g:l,d=null!=v?v:d,h={...h,[i]:{...h[i],...y}},b&&p<=50&&(p++,"object"==typeof b&&(b.placement&&(f=b.placement),b.rects&&(c=!0===b.rects?await a.getElementRects({reference:e,floating:t,strategy:o}):b.rects),({x:l,y:d}=Ep(c,f,u))),n=-1)}return{x:l,y:d,placement:f,strategy:o,middlewareData:h}})(e,t,{...o,platform:i})};var Tm="undefined"!=typeof document?n.useLayoutEffect:function(){};function Bm(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;0!==r--;)if(!Bm(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;0!==r--;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;0!==r--;){const n=o[r];if(("_owner"!==n||!e.$$typeof)&&!Bm(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function km(e){if("undefined"==typeof window)return 1;return(e.ownerDocument.defaultView||window).devicePixelRatio||1}function _m(e,t){const n=km(e);return Math.round(t*n)/n}function Fm(e){const t=c.useRef(e);return Tm(()=>{t.current=e}),t}function Rm(e){void 0===e&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:i,floating:a}={},transform:s=!0,whileElementsMounted:u,open:d}=e,[f,h]=c.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,m]=c.useState(r);Bm(p,r)||m(r);const[g,v]=c.useState(null),[y,b]=c.useState(null),w=c.useCallback(e=>{e!==x.current&&(x.current=e,v(e))},[]),C=c.useCallback(e=>{e!==A.current&&(A.current=e,b(e))},[]),D=i||g,E=a||y,x=c.useRef(null),A=c.useRef(null),I=c.useRef(f),S=null!=u,O=Fm(u),T=Fm(o),B=Fm(d),k=c.useCallback(()=>{if(!x.current||!A.current)return;const e={placement:t,strategy:n,middleware:p};T.current&&(e.platform=T.current),Om(x.current,A.current,e).then(e=>{const t={...e,isPositioned:!1!==B.current};_.current&&!Bm(I.current,t)&&(I.current=t,l.flushSync(()=>{h(t)}))})},[p,t,n,T,B]);Tm(()=>{!1===d&&I.current.isPositioned&&(I.current.isPositioned=!1,h(e=>({...e,isPositioned:!1})))},[d]);const _=c.useRef(!1);Tm(()=>(_.current=!0,()=>{_.current=!1}),[]),Tm(()=>{if(D&&(x.current=D),E&&(A.current=E),D&&E){if(O.current)return O.current(D,E,k);k()}},[D,E,k,O,S]);const F=c.useMemo(()=>({reference:x,floating:A,setReference:w,setFloating:C}),[w,C]),R=c.useMemo(()=>({reference:D,floating:E}),[D,E]),j=c.useMemo(()=>{const e={position:n,left:0,top:0};if(!R.floating)return e;const t=_m(R.floating,f.x),r=_m(R.floating,f.y);return s?{...e,transform:"translate("+t+"px, "+r+"px)",...km(R.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}},[n,s,R.floating,f.x,f.y]);return c.useMemo(()=>({...f,update:k,refs:F,elements:R,floatingStyles:j}),[f,k,F,R,j])}const jm=e=>({name:"arrow",options:e,fn(t){const{element:n,padding:r}="function"==typeof e?e(t):e;return n&&(o=n,{}.hasOwnProperty.call(o,"current"))?null!=n.current?Am({element:n.current,padding:r}).fn(t):{}:n?Am({element:n,padding:r}).fn(t):{};var o}}),Nm=(e,t)=>({...wm(e),options:[e,t]}),Pm=(e,t)=>({...Cm(e),options:[e,t]}),Mm=(e,t)=>({...Sm(e),options:[e,t]}),Lm=(e,t)=>({...Dm(e),options:[e,t]}),Hm=(e,t)=>({...Em(e),options:[e,t]}),zm=(e,t)=>({...xm(e),options:[e,t]}),Um=(e,t)=>({...Im(e),options:[e,t]}),Wm=(e,t)=>({...jm(e),options:[e,t]});var Vm="@liveblocks/react",$m="2.15.1";function qm(e){const[t,r]=n.useState(!1);return n.useEffect(()=>{r(!0)},[]),bn.jsx(n.Suspense,{fallback:e.fallback,children:t?"function"==typeof e.children?e.children():e.children:e.fallback})}b(Vm,$m,"esm");const Km=[];function Gm(e){switch(e){case"start":return"end";case"end":return"start";default:return"center"}}function Xm(e){const[t,n="center"]=e.split("-");return[t,n]}function Zm(){const[e,t]=n.useState(null),r=n.useCallback(t,[t]),[o,i]=n.useState();return n.useLayoutEffect(()=>{e&&i(window.getComputedStyle(e).zIndex)},[e]),[r,o]}function Ym({type:e="bounds",position:t,alignment:r,dir:o,open:i}){return Rm({...n.useMemo(()=>{const n={padding:10},i=["range"===e?Um(n):null,Lm({...n,crossAxis:!1}),zm(n),Pm({...n,limiter:Mm()}),"range"===e?Nm(6):null,Hm({...n,apply({availableWidth:e,availableHeight:t,elements:n}){n.floating.style.setProperty("--lb-composer-floating-available-width",`${e}px`),n.floating.style.setProperty("--lb-composer-floating-available-height",`${t}px`)}})];return{strategy:"fixed",placement:"center"===r?t:`${t}-${"rtl"===o?Gm(r):r}`,middleware:i,whileElementsMounted:(...e)=>bm(...e,{animationFrame:!0})}},[r,t,o,e]),open:i})}function Jm({onDragEnter:e,onDragLeave:t,onDragOver:r,onDrop:o,disabled:i}){const{isDisabled:a}=Xh(),s=a||i,{createAttachments:u}=Kh(),[c,l]=n.useState(!1),d=Nh(c);return[c,{onDragEnter:n.useCallback(t=>{if(e?.(t),d.current||s||t.isDefaultPrevented())return;t.dataTransfer.types.includes("Files")&&(t.preventDefault(),t.stopPropagation(),l(!0))},[e,s]),onDragLeave:n.useCallback(e=>{t?.(e),!d.current||s||e.isDefaultPrevented()||(e.relatedTarget?e.relatedTarget===e.currentTarget||e.currentTarget.contains(e.relatedTarget):e.currentTarget!==e.target)||(e.preventDefault(),e.stopPropagation(),l(!1))},[t,s]),onDragOver:n.useCallback(e=>{r?.(e),s||e.isDefaultPrevented()||(e.preventDefault(),e.stopPropagation())},[r,s]),onDrop:n.useCallback(e=>{if(o?.(e),!d.current||s||e.isDefaultPrevented())return;e.preventDefault(),e.stopPropagation(),l(!1);const t=hh(e.dataTransfer);u(t)},[o,s,u]),"data-drop":c?"":void 0,"data-disabled":s?"":void 0}]}class Qm extends Error{origin;name="AttachmentTooLargeError";constructor(e,t="client"){super(e),this.origin=t}}function eg(e){e.preventDefault()}function tg(e,t){const r=lr(),o=jh(e),i=jh(()=>function(e,t,n){const r=new Map,o=new Map,i=G();let a=null;function s(){a=null,i.notify()}function u(n){const i=new AbortController;o.set(n.id,i),e[Je].httpClient.uploadAttachment({roomId:t,attachment:n,signal:i.signal}).then(()=>{r.set(n.id,{...n,status:"uploaded"}),s()}).catch(e=>{e instanceof Error&&"AbortError"!==e.name&&"TimeoutError"!==e.name&&(r.set(n.id,{...n,status:"error",error:e instanceof W&&413===e.status?new Qm("File is too large.","server"):e}),s())})}return{addAttachments:function(e){if(0===e.length)return;const t=e.filter(e=>!r.has(e.id)),o=[];for(const e of t)if("localAttachment"===e.type){if(e.file.size>n.maxFileSize){r.set(e.id,{...e,status:"error",error:new Qm("File is too large.","client")});continue}r.set(e.id,{...e,status:"uploading"}),o.push(e)}else r.set(e.id,e);t.length>0&&s();for(const e of o)u(e)},removeAttachment:function(e){const t=o.get(e);t?.abort(),r.delete(e),o.delete(e),s()},getSnapshot:function(){return a||(a=Array.from(r.values())),a},subscribe:i.subscribe,clear:function(){o.forEach(e=>e.abort()),o.clear(),r.clear(),s()}}}(r,t.roomId,t));n.useEffect(()=>{i.addAttachments(o)},[o,i]),n.useEffect(()=>()=>{i.clear()},[i]);const a=n.useSyncExternalStore(i.subscribe,i.getSnapshot,i.getSnapshot),s=n.useMemo(()=>a.some(e=>"localAttachment"===e.type&&"uploading"===e.status),[a]);return n.useEffect(()=>{if(s)return window.addEventListener("beforeunload",eg),()=>{window.removeEventListener("beforeunload",eg)}},[s]),{attachments:a,isUploadingAttachments:s,addAttachments:i.addAttachments,removeAttachment:i.removeAttachment,clearAttachments:i.clear}}const ng={version:1,content:[{type:"paragraph",children:[{text:""}]}]};function rg({createAttachments:e,pasteFilesAsAttachments:t}){return function(e){const{normalizeNode:t}=e;return e.normalizeNode=n=>{const[r,o]=n;if(Xi.isElement(r)&&"paragraph"===r.type)for(const[t,n]of Qi.children(e,o))if(Xi.isElement(t)&&!e.isInline(t))return void Ga.unwrapNodes(e,{at:n});!Xi.isElement(r)||"auto-link"!==r.type&&"custom-link"!==r.type||(0===r.children.length||1===r.children.length&&""===r.children[0]?.text)&&Ga.removeNodes(e,{at:o}),t(n)},e}(function(e){const{isInline:t,isVoid:n,markableVoid:r,deleteBackward:o}=e;return e.isInline=e=>_s(e)||t(e),e.isVoid=e=>_s(e)||n(e),e.markableVoid=e=>_s(e)||r(e),e.deleteBackward=t=>{const{selection:n}=e;if(n&&Ki.isCollapsed(n)){const[r]=oa.nodes(e,{at:"character"===t?oa.before(e,n,{unit:"character"}):n,match:_s});o(t),r&&Ga.insertText(e,ks)}else o(t)},e}(Of(function(e){const{isInline:t,normalizeNode:n,deleteBackward:r}=e;return e.isInline=e=>"auto-link"===e.type||t(e),e.normalizeNode=t=>{const[r,o]=t;if(!Tf(r)){if(wf(r)){const t=Qi.parent(e,o);if(Tf(t))return;if(Bf(t)){const n=Ri.parent(o);if(Hf(e,[t,n]),!Cf(r)){const t=xf(r);Ga.unsetNodes(e,t,{at:o})}}else zf(e,[r,o]),Uf(e,[r,o])}n(t)}},e.deleteBackward=t=>{r(t);const{selection:n}=e;if(!n)return;if(!Ki.isCollapsed(n))return;const[o]=oa.nodes(e,{at:n,match:Bf,mode:"lowest"});o&&Ga.unwrapNodes(e,{match:Bf})},e}(function(e){const{insertText:t}=e;return e.insertText=(n,r)=>{if(!e.selection||!Ki.isCollapsed(e.selection))return t(n,r);let o=!0;for(const t of vf)"mark"===t.type&&bf(e,n,t)&&(o=!1);o&&t(n,r)},e}(function(e){const{onChange:t}=e;return e.onChange=n=>{Wf(e,e.children)&&If(e),t(n)},e}(function(e,{createAttachments:t,pasteFilesAsAttachments:n}){const{insertData:r}=e;return e.insertData=o=>{if(o.types.includes("Files")&&n){const e=hh(o);if(e.length>0)return void t(e)}if(o.types.includes("text/html")&&!o.types.includes("application/x-slate-fragment")){const t=o.getData("text/html");try{const{body:n}=(new DOMParser).parseFromString(t,"text/html");if(n.querySelector("br.Apple-interchange-newline")?.remove(),1===n.children.length&&"B"===n.children[0]?.nodeName){const e=n.children[0];for(;e.firstChild;)n.insertBefore(e.firstChild,e);n.removeChild(e)}const r=wh(n);if(null!==r&&Array.isArray(r))return void Ga.insertFragment(e,r)}catch{}}r(o)},e}((e=>{var t=e,{apply:n}=t;return t.history={undos:[],redos:[]},t.redo=()=>{var{history:e}=t,{redos:n}=e;if(n.length>0){var r=n[n.length-1];r.selectionBefore&&Ga.setSelection(t,r.selectionBefore),qs.withoutSaving(t,()=>{oa.withoutNormalizing(t,()=>{for(var e of r.operations)t.apply(e)})}),e.redos.pop(),t.writeHistory("undos",r)}},t.undo=()=>{var{history:e}=t,{undos:n}=e;if(n.length>0){var r=n[n.length-1];qs.withoutSaving(t,()=>{oa.withoutNormalizing(t,()=>{var e=r.operations.map(na.inverse).reverse();for(var n of e)t.apply(n);r.selectionBefore&&Ga.setSelection(t,r.selectionBefore)})}),t.writeHistory("redos",r),e.undos.pop()}},t.apply=e=>{var{operations:r,history:o}=t,{undos:i}=o,a=i[i.length-1],s=a&&a.operations[a.operations.length-1],u=qs.isSaving(t),c=qs.isMerging(t);if(null==u&&(u=Gs(e)),u){if(null==c&&(c=null!=a&&(0!==r.length||Ks(e,s))),qs.isSplittingOnce(t)&&(c=!1,qs.setSplittingOnce(t,void 0)),a&&c)a.operations.push(e);else{var l={operations:[e],selectionBefore:t.selection};t.writeHistory("undos",l)}for(;i.length>100;)i.shift();o.redos=[]}n(e)},t.writeHistory=(e,n)=>{t.history[e].push(n)},t})(cf(As())),{createAttachments:e,pasteFilesAsAttachments:t})))))))}function og({Mention:e,attributes:t,children:n,element:r}){const o=Od();return bn.jsxs("span",{...t,children:[r.id?bn.jsx(e,{userId:r.id,isSelected:o}):null,n]})}function ig({Link:e,attributes:t,element:r,children:o}){const i=n.useMemo(()=>js(r.url)??r.url,[r.url]);return bn.jsx("span",{...t,children:bn.jsx(e,{href:i,children:o})})}function ag({id:e,itemId:t,userIds:r,selectedUserId:o,setSelectedUserId:i,mentionDraft:a,setMentionDraft:s,onItemSelect:u,position:c="top",dir:l,MentionSuggestions:d}){const f=Hc(),{onEditorChange:h}=$h(),{isFocused:p}=Xh(),{portalContainer:m}=mf(),[g,v]=Zm(),y=p&&void 0!==a?.range&&void 0!==r,{refs:{setReference:b,setFloating:w},strategy:C,isPositioned:D,placement:E,x:x,y:A}=Ym({position:c,dir:l,alignment:"start",open:y});return Ph(h,()=>{s(function(e){const{selection:t}=e;if(!t||!Ki.isCollapsed(t))return;const n=Ts(e,t);if(!n)return;const r=oa.string(e,n);return r.startsWith(ks)?{range:n,text:r.substring(1)}:void 0}(f))}),n.useLayoutEffect(()=>{if(!a)return void b(null);const e=Ch(f,a.range);b(e??null)},[b,f,a]),bn.jsx(Bh,{children:y?bn.jsx(Wh.Provider,{value:{id:e,itemId:t,selectedValue:o,setSelectedValue:i,onItemSelect:u,placement:E,dir:l,ref:g},children:bn.jsx(kh,{ref:w,container:m,style:{position:C,top:0,left:0,transform:D?`translate3d(${Math.round(x)}px, ${Math.round(A)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:v},children:bn.jsx(d,{userIds:r,selectedUserId:o})})}):null})}function sg({id:e,position:t="top",dir:r,FloatingToolbar:o,hasFloatingToolbarRange:i,setHasFloatingToolbarRange:a}){const s=Hc(),{onEditorChange:u}=$h(),{isFocused:c}=Xh(),{portalContainer:l}=mf(),[d,f]=Zm(),[h,p]=n.useState(!1),m=c&&!h&&i,{refs:{setReference:g,setFloating:v},strategy:y,isPositioned:b,placement:w,x:C,y:D}=Ym({type:"range",position:t,dir:r,alignment:"center",open:m});return n.useLayoutEffect(()=>{if(!c)return;const e=()=>p(!0),t=()=>p(!1);return document.addEventListener("pointerdown",e),document.addEventListener("pointerup",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("pointerup",t)}},[c]),Ph(u,()=>{g(null),requestAnimationFrame(()=>{const e=window.getSelection();if(s.selection&&!Ki.isCollapsed(s.selection)&&e&&e.rangeCount){a(!0);const t=e.getRangeAt(0);g(t)}else a(!1),g(null)})}),bn.jsx(Bh,{children:m?bn.jsx(Vh.Provider,{value:{id:e,placement:w,dir:r,ref:d},children:bn.jsx(kh,{ref:v,container:l,style:{position:y,top:0,left:0,transform:b?`translate3d(${Math.round(C)}px, ${Math.round(D)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:f},children:bn.jsx(o,{})})}):null})}const ug=n.forwardRef(({children:e,onPointerDown:t,style:r,asChild:o,...i},a)=>{const[s]=Oh(),u=n.useRef(null),{id:c,ref:l,placement:d,dir:f}=function(e="useComposerFloatingToolbarContext"){return Ce(n.useContext(Vh),`${e} can’t be used outside of Composer.Editor.`)}("ComposerFloatingToolbar"),h=Lh(a,l,u),[p,m]=n.useMemo(()=>Xm(d),[d]),g=o?ro:"div";Th(u);const v=n.useCallback(e=>{t?.(e),e.preventDefault(),e.stopPropagation()},[t]);return bn.jsx(g,{dir:f,role:"toolbar",id:c,"aria-label":"Floating toolbar",...i,onPointerDown:v,"data-state":s?"open":"closed","data-side":p,"data-align":m,style:{display:"flex",flexDirection:"row",maxWidth:"var(--lb-composer-floating-available-width)",overflowX:"auto",...r},ref:h,children:e})});function cg({Mention:e,Link:t,...n}){const{attributes:r,children:o,element:i}=n;switch(i.type){case"mention":return bn.jsx(og,{Mention:e,...n});case"auto-link":case"custom-link":return bn.jsx(ig,{Link:t,...n});case"paragraph":return bn.jsx("p",{...r,style:{position:"relative"},children:o});default:return null}}function lg({attributes:e,children:t,leaf:n}){return n.bold&&(t=bn.jsx("strong",{children:t})),n.italic&&(t=bn.jsx("em",{children:t})),n.strikethrough&&(t=bn.jsx("s",{children:t})),n.code&&(t=bn.jsx("code",{children:t})),bn.jsx("span",{...e,children:t})}function dg({attributes:e,children:t}){const{opacity:n,...r}=e.style;return bn.jsx("span",{...e,style:r,"data-placeholder":"",children:t})}const fg=n.forwardRef(({children:e,asChild:t,...n},r)=>{const o=t?ro:"span",i=Od();return bn.jsx(o,{"data-selected":i||void 0,...n,ref:r,children:e})}),hg=n.forwardRef(({children:e,asChild:t,...n},r)=>{const o=t?ro:"a";return bn.jsx(o,{target:"_blank",rel:"noopener noreferrer nofollow",...n,ref:r,children:e})}),pg=n.forwardRef(({children:e,style:t,asChild:r,...o},i)=>{const[a]=Oh(),s=n.useRef(null),{ref:u,placement:c,dir:l}=Gh("ComposerSuggestions"),d=Lh(i,u,s),[f,h]=n.useMemo(()=>Xm(c),[c]),p=r?ro:"div";return Th(s),bn.jsx(p,{dir:l,...o,"data-state":a?"open":"closed","data-side":f,"data-align":h,style:{display:"flex",flexDirection:"column",maxHeight:"var(--lb-composer-floating-available-height)",overflowY:"auto",...t},ref:d,children:e})}),mg=n.forwardRef(({children:e,asChild:t,...n},r)=>{const{id:o}=Gh("ComposerSuggestionsList"),i=t?ro:"ul";return bn.jsx(i,{role:"listbox",id:o,"aria-label":"Suggestions list",...n,ref:r,children:e})}),gg=n.forwardRef(({value:e,children:t,onPointerMove:r,onPointerDown:o,onClick:i,asChild:a,...s},u)=>{const c=n.useRef(null),l=Lh(u,c),{selectedValue:d,setSelectedValue:f,itemId:h,onItemSelect:p}=Gh("ComposerSuggestionsListItem"),m=a?ro:"li",g=n.useMemo(()=>d===e,[d,e]),v=n.useMemo(()=>h(e),[h,e]);n.useEffect(()=>{c?.current&&g&&c.current.scrollIntoView({block:"nearest"})},[g]);const y=n.useCallback(t=>{r?.(t),t.isDefaultPrevented()||f(e)},[r,f,e]),b=n.useCallback(e=>{o?.(e),e.preventDefault(),e.stopPropagation()},[o]),w=n.useCallback(t=>{i?.(t);const n=t.isDefaultPrevented();t.preventDefault(),t.stopPropagation(),n||p(e)},[i,p,e]);return bn.jsx(m,{role:"option",id:v,"data-selected":g||void 0,"aria-selected":g||void 0,onPointerMove:y,onPointerDown:b,onClick:w,...s,ref:l,children:t})}),vg={Link:({href:e,children:t})=>bn.jsx(hg,{href:e,children:t}),Mention:({userId:e})=>bn.jsxs(fg,{children:[ks,e]}),MentionSuggestions:({userIds:e})=>e.length>0?bn.jsx(pg,{children:bn.jsx(mg,{children:e.map(e=>bn.jsx(gg,{value:e,children:e},e))})}):null},yg=n.forwardRef(({defaultValue:e,onKeyDown:t,onFocus:r,onBlur:o,disabled:i,autoFocus:a,components:s,dir:u,...c},l)=>{const d=cr(),{editor:f,validate:h,setFocused:p,onEditorChange:m,roomId:g}=$h(),{submit:v,focus:y,blur:b,select:w,canSubmit:C,isDisabled:D,isFocused:E}=Xh(),x=D||i,A=jh(e??ng),I=n.useMemo(()=>{return(e=A)&&e?.content?e.content.map(e=>{if("paragraph"!==e.type)return null;const t=e.children.map(e=>{return Fs(e)?{type:"mention",id:e.id,children:[{text:""}]}:Rs(e)?(t=e).text?{type:"custom-link",url:t.url,children:[{text:t.text}]}:{type:"auto-link",url:t.url,children:[{text:t.url}]}:!("type"in(n=e))&&"text"in n&&"string"==typeof n.text?e:null;var t,n}).filter(fh);return{...e,children:t}}).filter(fh):Km;var e},[A]),{Link:S,Mention:O,MentionSuggestions:T,FloatingToolbar:B}=n.useMemo(()=>({...vg,...s}),[s]),[k,_]=n.useState(!1),F=Hr(),R=!d||F,[j,N]=n.useState(),P=Gr(g,j?.text),[M,L,H,z]=function(e,t,r){const{wrap:o}=n.useMemo(()=>({...Rh,...r}),[r]),i=n.useMemo(()=>o?Fh:_h,[o]),[a,s]=n.useState(e);return n.useEffect(()=>{s(e=>_h(e,0,Math.max(t-1,0)))},[t]),[a,n.useCallback(()=>{s(e=>i(e-1,0,Math.max(t,0)))},[t,i]),n.useCallback(()=>{s(e=>i(e+1,0,Math.max(t,0)))},[t,i]),s]}(0,P?.length??0),U=n.useId(),W=n.useMemo(()=>`liveblocks-floating-toolbar-${U}`,[U]),V=n.useMemo(()=>`liveblocks-suggestions-list-${U}`,[U]),$=n.useCallback(e=>e?`liveblocks-suggestions-list-item-${U}-${e}`:void 0,[U]),q=n.useCallback(e=>bn.jsx(cg,{Mention:O,Link:S,...e}),[S,O]),K=n.useCallback(e=>{h(e),m.notify()},[h,m]),G=n.useCallback(e=>{j&&e&&(Ga.select(f,j.range),function(e,t){const n={type:"mention",id:t,children:[{text:""}]};Ga.insertNodes(e,n),Ga.move(e);const r=e.selection?Ss(e,e.selection):void 0;!r||r.void?Ga.insertText(e," "):Bs(r.text)&&Ga.move(e)}(f,e),N(void 0),z(0))},[f,j,z]),X=n.useCallback(e=>{if(t?.(e),!e.isDefaultPrevented())if(Ah(e,"ArrowLeft")&&Sf(f,"start"),Ah(e,"ArrowRight")&&Sf(f,"end"),j&&P?.length){if(Ah(e,"ArrowDown")&&(e.preventDefault(),H()),Ah(e,"ArrowUp")&&(e.preventDefault(),L()),Ah(e,"Enter")||Ah(e,"Tab")){e.preventDefault();const t=P?.[M];G(t)}Ah(e,"Escape")&&(e.preventDefault(),N(void 0),z(0))}else k&&Ah(e,"Escape")&&(e.preventDefault(),_(!1)),Ah(e,"Escape")&&(e.preventDefault(),b()),Ah(e,"Enter",{shift:!1})&&(e.preventDefault(),C&&v()),Ah(e,"Enter",{shift:!0})&&(e.preventDefault(),f.insertBreak()),Ah(e,"b",{mod:!0})&&(e.preventDefault(),Af(f,"bold")),Ah(e,"i",{mod:!0})&&(e.preventDefault(),Af(f,"italic")),Ah(e,"s",{mod:!0,shift:!0})&&(e.preventDefault(),Af(f,"strikethrough")),Ah(e,"e",{mod:!0})&&(e.preventDefault(),Af(f,"code"))},[t,j,P,k,f,H,L,M,G,z,b,C,v]),Z=n.useCallback(e=>{r?.(e),e.isDefaultPrevented()||p(!0)},[r,p]),Y=n.useCallback(e=>{o?.(e),e.isDefaultPrevented()||p(!1)},[o,p]),J=n.useMemo(()=>P?.[M],[M,P]),Q=n.useCallback(e=>{const t=P?.indexOf(e);void 0!==t&&t>=0&&z(t)},[z,P]),ee=n.useMemo(()=>j?{role:"combobox","aria-autocomplete":"list","aria-expanded":!0,"aria-controls":V,"aria-activedescendant":$(J)}:k?{"aria-haspopup":!0,"aria-controls":W}:{},[j,V,$,J,k,W]);return n.useImperativeHandle(l,()=>zl.toDOMNode(f,f),[f]),n.useLayoutEffect(()=>{a&&y()},[a,f,y]),n.useLayoutEffect(()=>{E&&null===f.selection&&w()},[f,w,E]),bn.jsxs(rf,{editor:f,initialValue:I,onChange:K,children:[bn.jsx(Kd,{dir:u,enterKeyHint:j?"enter":"send",autoCapitalize:"sentences","aria-label":"Composer editor","data-focused":E||void 0,"data-disabled":x||void 0,...ee,...c,readOnly:x,disabled:x,onKeyDown:X,onFocus:Z,onBlur:Y,renderElement:q,renderLeaf:lg,renderPlaceholder:dg}),R&&bn.jsx(ag,{dir:u,mentionDraft:j,setMentionDraft:N,selectedUserId:J,setSelectedUserId:Q,userIds:P,id:V,itemId:$,onItemSelect:G,MentionSuggestions:T}),B&&bn.jsx(sg,{dir:u,id:W,hasFloatingToolbarRange:k,setHasFloatingToolbarRange:_,FloatingToolbar:B})]})});const bg=n.forwardRef(({children:e,onSubmit:t,onComposerSubmit:r,defaultAttachments:o=[],pasteFilesAsAttachments:i,preventUnsavedChanges:a=!0,disabled:s,asChild:u,roomId:c,...l},d)=>{const f=u?ro:"form",[h,p]=n.useState(!0),[m,g]=n.useState(!1),[v,y]=n.useState(!1),b=Cn(),w=void 0!==c?c:b?.id;if(void 0===w)throw new Error("Composer.Form must be a descendant of RoomProvider.");const C=1073741824,{attachments:D,isUploadingAttachments:E,addAttachments:x,removeAttachment:A,clearAttachments:I}=tg(o,{maxFileSize:C,roomId:w}),S=D.length,O=S>=10,T=n.useMemo(()=>m||!0===s,[m,s]),B=n.useMemo(()=>!h&&!E,[h,E]),[k,_]=n.useState(Ef),F=n.useRef(null),R=Lh(d,F),j=n.useRef(null),N=function(){const e=lr()[Je].createSyncSource,[t,r]=n.useState();return n.useEffect(()=>{const t=e();return r(t),()=>t.destroy()},[e]),t}(),P=!!a&&(!h||E||D.length>0);n.useEffect(()=>{N?.setSyncStatus(P?"has-local-changes":"synchronized")},[N,P]);const M=n.useCallback(e=>{if(!e.length)return;const t=Math.max(0,10-S);e.splice(t);const n=e.map(e=>function(e){return{type:"localAttachment",status:"idle",id:oe(),name:e.name,size:e.size,mimeType:e.type,file:e}}(e));x(n)},[x,10,S]),L=n.useRef(M);n.useEffect(()=>{L.current=M},[M]);const H=n.useCallback(e=>{L.current(e)},[]),z=jh(()=>rg({createAttachments:H,pasteFilesAsAttachments:i})),U=jh(G),W=n.useCallback(e=>{p(Wf(z,e))},[z]),V=n.useCallback(()=>{B&&requestAnimationFrame(()=>{F.current&&function(e,t){if("function"==typeof e.requestSubmit)return e.requestSubmit(t);t?t.click():((t=document.createElement("input")).type="submit",t.hidden=!0,e.appendChild(t),t.click(),e.removeChild(t))}(F.current)})},[B]),$=n.useCallback(()=>{Ga.delete(z,{at:{anchor:oa.start(z,[]),focus:oa.end(z,[])}})},[z]),q=n.useCallback(()=>{Ga.select(z,oa.end(z,[]))},[z]),K=n.useCallback((e=!0)=>{zl.isFocused(z)||(Ga.select(z,e||!z.selection?oa.end(z,[]):z.selection),zl.focus(z))},[z]),X=n.useCallback(()=>{zl.blur(z)},[z]),Z=n.useCallback(()=>{s||(K(),function(e){if(!e.selection)return;const t=Is(e,e.selection,{filterVoids:!0}),n=Ss(e,e.selection,{filterVoids:!0}),r=t&&!Bs(t.text),o=n&&!Bs(n.text);if(Ki.isCollapsed(e.selection)){const t=(r?" ":"")+ks;e.insertText(t,{at:Ki.start(e.selection)}),o&&e.insertText(" ",{at:Ki.end(e.selection)}),Ga.collapse(e,{edge:"end"})}else{const t=(r?" ":"")+ks+(o?" ":"");e.insertText(t),o&&Ga.move(e,{distance:1,unit:"character",reverse:!0})}}(z))},[s,z,K]),Y=n.useCallback(e=>{s||(K(!1),cs(z,e))},[s,z,K]),J=n.useCallback(()=>{s||j.current&&j.current.click()},[s]),Q=n.useCallback(e=>{s||e.target.files&&(M(Array.from(e.target.files)),e.target.value="")},[M,s]),ee=n.useCallback(()=>{$(),X(),I(),g(!1)},[X,$,I]),te=n.useCallback(e=>{if(s)return;if(Wf(z,z.children))return void e.preventDefault();if(t?.(e),!r||e.isDefaultPrevented())return void e.preventDefault();const n=function(e){return{version:1,content:e.map(e=>{if("paragraph"!==e.type)return null;const t=e.children.map(e=>{return _s(e)?{type:"mention",id:e.id}:Bf(e)?{type:"link",url:e.url}:Tf(e)?{type:"link",url:(t=e).url,text:t.children.map(e=>e.text).join("")}:wf(e)?e:null;var t}).filter(fh);return{...e,children:t}}).filter(fh)}}(z.children),o=D.filter(e=>"attachment"===e.type||"localAttachment"===e.type&&"uploaded"===e.status).map(e=>({id:e.id,type:"attachment",mimeType:e.mimeType,size:e.size,name:e.name})),i=r({body:n,attachments:o},e);e.preventDefault(),i?(g(!0),i.then(ee)):ee()},[s,z,D,r,t,ee]),ne=n.useCallback(e=>{e.stopPropagation()},[]),re=n.useCallback(e=>{Af(z,e)},[z]);return Ph(U,()=>{_(Ef(z))}),bn.jsx(zh.Provider,{value:{editor:z,validate:W,setFocused:y,onEditorChange:U,roomId:w},children:bn.jsx(Uh.Provider,{value:{createAttachments:M,isUploadingAttachments:E,hasMaxAttachments:O,maxAttachments:10,maxAttachmentSize:C},children:bn.jsx(Hh.Provider,{value:{isDisabled:T,isFocused:v,isEmpty:h,canSubmit:B,submit:V,clear:$,select:q,focus:K,blur:X,createMention:Z,insertText:Y,attachments:D,attachFiles:J,removeAttachment:A,toggleMark:re,marks:k},children:bn.jsxs(f,{...l,onSubmit:te,ref:R,children:[bn.jsx("input",{type:"file",multiple:!0,ref:j,onChange:Q,onClick:ne,tabIndex:-1,style:{display:"none"}}),bn.jsx(so,{children:e})]})})})})}),wg=n.forwardRef(({children:e,disabled:t,asChild:n,...r},o)=>{const i=n?ro:"button",{canSubmit:a,isDisabled:s}=Xh(),u=s||t||!a;return bn.jsx(i,{type:"submit",...r,ref:o,disabled:u,children:e})}),Cg=n.forwardRef(({children:e,onClick:t,disabled:r,asChild:o,...i},a)=>{const s=o?ro:"button",{hasMaxAttachments:u}=Kh(),{isDisabled:c,attachFiles:l}=Xh(),d=c||u||r,f=n.useCallback(e=>{t?.(e),e.isDefaultPrevented()||l()},[l,t]);return bn.jsx(s,{type:"button",...i,onClick:f,ref:a,disabled:d,children:e})});n.forwardRef(({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:r,disabled:o,asChild:i,...a},s)=>{const u=i?ro:"div",{isDisabled:c}=Xh(),l=c||o,[,d]=Jm({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:r,disabled:l});return bn.jsx(u,{...d,"data-disabled":l?"":void 0,...a,ref:s})});const Dg=n.forwardRef(({children:e,mark:t,onValueChange:r,onClick:o,asChild:i,...a},s)=>{const u=i?ro:"button",{marks:c,toggleMark:l}=Xh(),d=n.useCallback(e=>{o?.(e),e.isDefaultPrevented()||(l(t),r?.(t))},[t,o,r,l]);return bn.jsx(po,{asChild:!0,pressed:c[t],onClick:d,...a,children:bn.jsx(u,{...a,ref:s,children:e})})});function Eg(e){return e.charAt(0).toUpperCase()+e.slice(1)}function xg(e){const t=new Map;return(...n)=>{const r=JSON.stringify(n.map(e=>X(e)));if(t.has(r))return t.get(r);const o=e(...n);return t.set(r,o),o}}const Ag=xg((...e)=>new Intl.DateTimeFormat(...e)),Ig=xg((...e)=>new Intl.RelativeTimeFormat(...e)),Sg=xg((...e)=>new Intl.ListFormat(...e)),Og=xg((...e)=>new Intl.NumberFormat(...e));const Tg={seconds:60,minutes:60,hours:24,days:7,weeks:4.34524,months:12};function Bg(e,t){return Eg(Ag(t,{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric"}).format(e))}const kg=["br","fr","nb","nn","no","ro","sv"];function _g(e,t){return e.getTime()>Date.now()-2592e5?function(e,t){let n;if(t)n=t;else{const e=Ig();n=e.resolvedOptions().locale}const r=kg.some(e=>n===e||n.startsWith(`${e}-`)),o=Ig(n,{style:r?"short":"narrow",numeric:"auto"});let i=(e.getTime()-Date.now())/1e3;if(i>-Tg.seconds&&i<Tg.seconds)return o.format(0,"seconds");for(const[e,t]of Object.entries(Tg)){if(Math.abs(i)<t)return o.format(Math.round(i),e);i/=t}return Eg(o.format(Math.round(i),"years"))}(e,t):function(e,t){return Eg(Ag(t,{month:"short",day:"numeric"}).format(e))}(e,t)}const Fg=n.forwardRef(({date:e,locale:t,children:r=_g,title:o=Bg,dateTime:i,interval:a=3e4,asChild:s,...u},c)=>{const l=s?ro:"time",[d,f]=function(){const[e,t]=n.useReducer(e=>e+1,0);return[t,e]}(),h=n.useMemo(()=>new Date(e),[e]),p=n.useMemo(()=>h.toISOString(),[h]),m=n.useMemo(()=>"function"==typeof o?o(h,t):o,[o,h,f]),g=n.useMemo(()=>"function"==typeof r?r(h,t):r,[r,h,f]);return function(e,t){const r=n.useRef(e);n.useEffect(()=>{r.current=e},[e]),n.useEffect(()=>{if(!t&&0!==t)return;const e=setInterval(()=>{!1===r.current()&&clearInterval(e)},t);return()=>clearInterval(e)},[t])}(d,a),bn.jsx(l,{...u,ref:c,dateTime:i??p,title:m,children:g})});function Rg(){return kr(lr()[Je].currentUserId)??null}let jg;const Ng=new WeakMap;function Pg(e){Ng.delete(e),jg?.unobserve(e)}function Mg(e,t,r){const o=r?.enabled??!0,i=Nh(t);n.useEffect(()=>{const t=e.current;if(t)return o?function(e,t){jg||(jg=new IntersectionObserver(e=>{for(const t of e){const e=Ng.get(t.target);e?.(t)}})),Ng.set(e,t),jg.observe(e)}(t,e=>{e.isIntersecting&&i.current()}):Pg(t),()=>{Pg(t)}},[o])}function Lg(e){return window.addEventListener("blur",e),window.addEventListener("focus",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("focus",e)}}function Hg(){return document.hasFocus()}function zg(){return!0}function Ug(e){return bn.jsx(go,{...e,children:bn.jsx("path",{d:"m14.077 11.737-3.723 3.62c-1.55 1.507-4.128 1.507-5.678 0-1.543-1.5-1.543-4.02 0-5.52l5.731-5.573c1.034-1.006 2.754-1.007 3.789-.003 1.03 1 1.032 2.682.003 3.684l-5.744 5.572a1.377 1.377 0 0 1-1.893 0 1.283 1.283 0 0 1-.392-.92c0-.345.14-.676.392-.92L10.348 8"})})}function Wg(e){return bn.jsx(go,{...e,children:bn.jsx("path",{d:"M5.5 10h6.63m0 5.75H5.5V4.25h5.63M11.125 10a2.875 2.875 0 0 0 0-5.75m1 11.5a2.875 2.875 0 0 0 0-5.75"})})}function Vg(e){return bn.jsx(go,{...e,children:bn.jsx("path",{d:"m7.5 6-4 4 4 4m5-8 4 4-4 4"})})}function $g(e){return bn.jsxs(go,{...e,children:[bn.jsx("path",{d:"M10 17a7 7 0 1 0 0-14 7 7 0 0 0 0 14Z"}),bn.jsx("path",{d:"M7.5 11.5S8.25 13 10 13s2.5-1.5 2.5-1.5M8 8h.007"}),bn.jsx("path",{d:"M12 8h.007"}),bn.jsx("circle",{cx:8,cy:8,r:.25}),bn.jsx("circle",{cx:12,cy:8,r:.25})]})}function qg(e){return bn.jsx(go,{...e,children:bn.jsx("path",{d:"M15 4.25H8m4 11.5H5m6.75-11.5-3.5 11.5"})})}function Kg(e){return bn.jsxs(go,{...e,children:[bn.jsx("path",{d:"M10 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"}),bn.jsx("path",{d:"M13 7v3.7c0 1.105.855 2.1 1.9 2.1a2.12 2.12 0 0 0 2.1-2.1V10a7 7 0 1 0-2.8 5.6"})]})}function Gg(e){return bn.jsx(go,{...e,children:bn.jsx("path",{d:"m5 16 12-6L5 4l2 6-2 6ZM7 10h10"})})}function Xg(e){return bn.jsx(go,{...e,children:bn.jsx("path",{d:"M15.5 10h-11m4.669 0C7.599 9.44 6.5 8.484 6.5 7.125 6.5 5.537 7.79 4.25 10 4.25c1.654 0 2.793.721 3.261 1.75M6.74 14c.468 1.029 1.607 1.75 3.261 1.75 2 0 3.5-1 3.5-2.5 0-.085-.004-.169-.013-.25"})})}function Zg(e){return bn.jsx(go,{...e,children:bn.jsx("path",{d:"M3 10a7 7 0 0 1 7-7",className:"lb-icon-spinner"})})}function Yg(e){return bn.jsxs(go,{...e,children:[bn.jsx("path",{d:"m3.794 13.526 5.326-9.89a1 1 0 0 1 1.76 0l5.326 9.89a1 1 0 0 1-.88 1.474H4.674a1 1 0 0 1-.88-1.474ZM10 7.5v2m0 2.5h.007"}),bn.jsx("circle",{cx:10,cy:12,r:.25})]})}function Jg(e){return()=>e}function Qg(e){e()}function ev(e,t){return n=>e(t(n))}function tv(e,t){return()=>e(t)}function nv(e){return void 0!==e}function rv(){}function ov(e,t){return t(e),e}function iv(e,t){return t(e)}function av(...e){return e}function sv(e,t){return e(1,t)}function uv(e,t){e(0,t)}function cv(e){e(2)}function lv(e){return e(4)}function dv(e,t){return sv(e,function(e,t){return n=>e(t,n)}(t,0))}function fv(e,t){const n=e(1,e=>{n(),t(e)});return n}function hv(e){let t,n;return r=>o=>{t=o,n&&clearTimeout(n),n=setTimeout(()=>{r(t)},e)}}function pv(e,t){return e===t}function mv(e=pv){let t;return n=>r=>{e(t,r)||(t=r,n(r))}}function gv(e){return t=>n=>{e(n)&&t(n)}}function vv(e){return t=>ev(t,e)}function yv(e){return t=>()=>{t(e)}}function bv(e,...t){const n=function(...e){return t=>e.reduceRight(iv,t)}(...t);return(t,r)=>{switch(t){case 2:return void cv(e);case 1:return sv(e,n(r))}}}function wv(e,t){return n=>r=>{n(t=e(t,r))}}function Cv(e){return t=>n=>{e>0?e--:t(n)}}function Dv(e){let t,n=null;return r=>o=>{n=o,!t&&(t=setTimeout(()=>{t=void 0,r(n)},e))}}function Ev(...e){const t=new Array(e.length);let n=0,r=null;const o=Math.pow(2,e.length)-1;return e.forEach((e,i)=>{const a=Math.pow(2,i);sv(e,e=>{const s=n;n|=a,t[i]=e,s!==o&&n===o&&r&&(r(),r=null)})}),e=>i=>{const a=()=>{e([i].concat(t))};n===o?a():r=a}}function xv(e){let t=e;const n=Iv();return(e,r)=>{switch(e){case 0:t=r;break;case 1:r(t);break;case 4:return t}return n(e,r)}}function Av(e,t){return ov(xv(t),t=>dv(e,t))}function Iv(){const e=[];return(t,n)=>{switch(t){case 0:return void e.slice().forEach(e=>{e(n)});case 2:return void e.splice(0,e.length);case 1:return e.push(n),()=>{const t=e.indexOf(n);t>-1&&e.splice(t,1)}}}}function Sv(e){return ov(Iv(),t=>dv(e,t))}function Ov(e,t=[],{singleton:n}={singleton:!0}){return{constructor:e,dependencies:t,id:Tv(),singleton:n}}const Tv=()=>Symbol();function Bv(...e){const t=Iv(),n=new Array(e.length);let r=0;const o=Math.pow(2,e.length)-1;return e.forEach((e,i)=>{const a=Math.pow(2,i);sv(e,e=>{n[i]=e,r|=a,r===o&&uv(t,n)})}),function(e,i){switch(e){case 2:return void cv(t);case 1:return r===o&&i(n),sv(t,i)}}}function kv(e,t=pv){return bv(e,mv(t))}function _v(...e){return function(t,n){switch(t){case 2:return;case 1:return function(...e){return()=>{e.map(Qg)}}(...e.map(e=>sv(e,n)))}}}var Fv=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(Fv||{});const Rv={0:"debug",3:"error",1:"log",2:"warn"},jv=Ov(()=>{const e=xv(3);return{log:xv((t,n,r=1)=>{var o;r>=(null!=(o=(typeof globalThis>"u"?window:globalThis).VIRTUOSO_LOG_LEVEL)?o:lv(e))&&console[Rv[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)}),logLevel:e}},[],{singleton:!0});function Nv(e,t,n){return Pv(e,t,n).callbackRef}function Pv(e,t,n){const r=u.default.useRef(null);let o=e=>{};const i=u.default.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(t=>{const r=()=>{const n=t[0].target;null!==n.offsetParent&&e(n)};n?r():requestAnimationFrame(r)}):null,[e,n]);return o=e=>{e&&t?(null==i||i.observe(e),r.current=e):(r.current&&(null==i||i.unobserve(r.current)),r.current=null)},{callbackRef:o,ref:r}}function Mv(e,t,n,r,o,i,a,s,c){const l=u.default.useCallback(n=>{const u=function(e,t,n,r){const o=e.length;if(0===o)return null;const i=[];for(let a=0;a<o;a++){const o=e.item(a);if(void 0===o.dataset.index)continue;const s=parseInt(o.dataset.index),u=parseFloat(o.dataset.knownSize),c=t(o,n);if(0===c&&r("Zero-sized element, this should not happen",{child:o},Fv.ERROR),c===u)continue;const l=i[i.length-1];0===i.length||l.size!==c||l.endIndex!==s-1?i.push({endIndex:s,size:c,startIndex:s}):i[i.length-1].endIndex++}return i}(n.children,t,s?"offsetWidth":"offsetHeight",o);let c=n.parentElement;for(;!c.dataset.virtuosoScroller;)c=c.parentElement;const l="window"===c.lastElementChild.dataset.viewportType;let d;l&&(d=c.ownerDocument.defaultView);const f=a?s?a.scrollLeft:a.scrollTop:l?s?d.scrollX||d.document.documentElement.scrollLeft:d.scrollY||d.document.documentElement.scrollTop:s?c.scrollLeft:c.scrollTop,h=a?s?a.scrollWidth:a.scrollHeight:l?s?d.document.documentElement.scrollWidth:d.document.documentElement.scrollHeight:s?c.scrollWidth:c.scrollHeight,p=a?s?a.offsetWidth:a.offsetHeight:l?s?d.innerWidth:d.innerHeight:s?c.offsetWidth:c.offsetHeight;r({scrollHeight:h,scrollTop:Math.max(f,0),viewportHeight:p}),null==i||i(s?Lv("column-gap",getComputedStyle(n).columnGap,o):Lv("row-gap",getComputedStyle(n).rowGap,o)),null!==u&&e(u)},[e,t,o,i,a,r,s]);return Pv(l,n,c)}function Lv(e,t,n){return"normal"!==t&&!(null!=t&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,Fv.WARN),"normal"===t?0:parseInt(null!=t?t:"0",10)}function Hv(e,t,n){const r=u.default.useRef(null),o=u.default.useCallback(n=>{if(null==n||!n.offsetParent)return;const o=n.getBoundingClientRect(),i=o.width;let s,u;if(t){const e=t.getBoundingClientRect(),n=o.top-e.top;u=e.height-Math.max(0,n),s=n+t.scrollTop}else{const e=a.current.ownerDocument.defaultView;u=e.innerHeight-Math.max(0,o.top),s=o.top+e.scrollY}r.current={offsetTop:s,visibleHeight:u,visibleWidth:i},e(r.current)},[e,t]),{callbackRef:i,ref:a}=Pv(o,!0,n),s=u.default.useCallback(()=>{o(a.current)},[o,a]);return u.default.useEffect(()=>{var e;if(t){t.addEventListener("scroll",s);const e=new ResizeObserver(()=>{requestAnimationFrame(s)});return e.observe(t),()=>{t.removeEventListener("scroll",s),e.unobserve(t)}}{const t=null==(e=a.current)?void 0:e.ownerDocument.defaultView;return null==t||t.addEventListener("scroll",s),null==t||t.addEventListener("resize",s),()=>{null==t||t.removeEventListener("scroll",s),null==t||t.removeEventListener("resize",s)}}},[s,t,a]),i}const zv=Ov(()=>{const e=Iv(),t=Iv(),n=xv(0),r=Iv(),o=xv(0),i=Iv(),a=Iv(),s=xv(0),u=xv(0),c=xv(0),l=xv(0),d=Iv(),f=Iv(),h=xv(!1),p=xv(!1),m=xv(!1);return dv(bv(e,vv(({scrollTop:e})=>e)),t),dv(bv(e,vv(({scrollHeight:e})=>e)),a),dv(t,o),{deviation:n,fixedFooterHeight:c,fixedHeaderHeight:u,footerHeight:l,headerHeight:s,horizontalDirection:p,scrollBy:f,scrollContainerState:e,scrollHeight:a,scrollingInProgress:h,scrollTo:d,scrollTop:t,skipAnimationFrameInResizeObserver:m,smoothScrollTargetReached:r,statefulScrollTop:o,viewportHeight:i}},[],{singleton:!0}),Uv={lvl:0};function Wv(e,t){const n=e.length;if(0===n)return[];let{index:r,value:o}=t(e[0]);const i=[];for(let a=1;a<n;a++){const{index:n,value:s}=t(e[a]);i.push({end:n-1,start:r,value:o}),r=n,o=s}return i.push({end:1/0,start:r,value:o}),i}function Vv(e){return e===Uv}function $v(e,t){if(!Vv(e))return t===e.k?e.v:t<e.k?$v(e.l,t):$v(e.r,t)}function qv(e,t,n="k"){if(Vv(e))return[-1/0,void 0];if(Number(e[n])===t)return[e.k,e.v];if(Number(e[n])<t){const r=qv(e.r,t,n);return r[0]===-1/0?[e.k,e.v]:r}return qv(e.l,t,n)}function Kv(e,t,n){return Vv(e)?oy(t,n,1):t===e.k?ey(e,{k:t,v:n}):t<e.k?iy(ey(e,{l:Kv(e.l,t,n)})):iy(ey(e,{r:Kv(e.r,t,n)}))}function Gv(){return Uv}function Xv(e,t,n){if(Vv(e))return[];return function(e){return Wv(e,({k:e,v:t})=>({index:e,value:t}))}(Jv(e,qv(e,t)[0],n))}function Zv(e,t){if(Vv(e))return Uv;const{k:n,l:r,r:o}=e;if(t===n){if(Vv(r))return o;if(Vv(o))return r;{const[t,n]=ry(r);return Qv(ey(e,{k:t,l:ty(r),v:n}))}}return Qv(ey(e,t<n?{l:Zv(r,t)}:{r:Zv(o,t)}))}function Yv(e){return Vv(e)?[]:[...Yv(e.l),{k:e.k,v:e.v},...Yv(e.r)]}function Jv(e,t,n){if(Vv(e))return[];const{k:r,l:o,r:i,v:a}=e;let s=[];return r>t&&(s=s.concat(Jv(o,t,n))),r>=t&&r<=n&&s.push({k:r,v:a}),r<=n&&(s=s.concat(Jv(i,t,n))),s}function Qv(e){const{l:t,lvl:n,r:r}=e;if(r.lvl>=n-1&&t.lvl>=n-1)return e;if(n>r.lvl+1){if(ny(t))return ay(ey(e,{lvl:n-1}));if(!Vv(t)&&!Vv(t.r))return ey(t.r,{l:ey(t,{r:t.r.l}),lvl:n,r:ey(e,{l:t.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}if(ny(e))return sy(ey(e,{lvl:n-1}));if(Vv(r)||Vv(r.l))throw new Error("Unexpected empty nodes");{const t=r.l,o=ny(t)?r.lvl-1:r.lvl;return ey(t,{l:ey(e,{lvl:n-1,r:t.l}),lvl:t.lvl+1,r:sy(ey(r,{l:t.r,lvl:o}))})}}function ey(e,t){return oy(void 0!==t.k?t.k:e.k,void 0!==t.v?t.v:e.v,void 0!==t.lvl?t.lvl:e.lvl,void 0!==t.l?t.l:e.l,void 0!==t.r?t.r:e.r)}function ty(e){return Vv(e.r)?e.l:Qv(ey(e,{r:ty(e.r)}))}function ny(e){return Vv(e)||e.lvl>e.r.lvl}function ry(e){return Vv(e.r)?[e.k,e.v]:ry(e.r)}function oy(e,t,n,r=Uv,o=Uv){return{k:e,l:r,lvl:n,r:o,v:t}}function iy(e){return sy(ay(e))}function ay(e){const{l:t}=e;return Vv(t)||t.lvl!==e.lvl?e:ey(t,{r:ey(e,{l:t.r})})}function sy(e){const{lvl:t,r:n}=e;return Vv(n)||Vv(n.r)||n.lvl!==t||n.r.lvl!==t?e:ey(n,{l:ey(e,{r:n.l}),lvl:t+1})}function uy(e,t){return!(!e||e.startIndex!==t.startIndex||e.endIndex!==t.endIndex)}function cy(e,t){return!(!e||e[0]!==t[0]||e[1]!==t[1])}const ly=Ov(()=>({recalcInProgress:xv(!1)}),[],{singleton:!0});function dy(e,t,n){return e[fy(e,t,n)]}function fy(e,t,n,r=0){let o=e.length-1;for(;r<=o;){const i=Math.floor((r+o)/2),a=n(e[i],t);if(0===a)return i;if(-1===a){if(o-r<2)return i-1;o=i-1}else{if(o===r)return i;r=i+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function hy(e,t){return Math.round(e.getBoundingClientRect()[t])}function py(e){return!Vv(e.groupOffsetTree)}function my({index:e},t){return t===e?0:t<e?-1:1}function gy({offset:e},t){return t===e?0:t<e?-1:1}function vy(e,t,n){if(0===t.length)return 0;const{index:r,offset:o,size:i}=dy(t,e,my),a=e-r,s=i*a+(a-1)*n+o;return s>0?s+n:s}function yy(e,t){if(!py(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function by(e,t,n){if(function(e){return typeof e.groupIndex<"u"}(e))return t.groupIndices[e.groupIndex]+1;{let r=yy("LAST"===e.index?n:e.index,t);return r=Math.max(0,r,Math.min(n,r)),r}}function wy(e,t,n,r=0){return r>0&&(t=Math.max(t,dy(e,r,my).offset)),Wv(function(e,t,n,r){const o=fy(e,t,r),i=fy(e,n,r,o);return e.slice(o,i+1)}(e,t,n,gy),xy)}function Cy(e,[t,n,r,o]){t.length>0&&r("received item sizes",t,Fv.DEBUG);const i=e.sizeTree;let a=i,s=0;if(n.length>0&&Vv(i)&&2===t.length){const e=t[0].size,r=t[1].size;a=n.reduce((t,n)=>Kv(Kv(t,n,e),n+1,r),a)}else[a,s]=function(e,t){let n=Vv(e)?0:1/0;for(const r of t){const{endIndex:t,size:o,startIndex:i}=r;if(n=Math.min(n,i),Vv(e)){e=Kv(e,0,o);continue}const a=Xv(e,i-1,t+1);if(a.some(Ay(r)))continue;let s=!1,u=!1;for(const{end:n,start:r,value:i}of a)s?(t>=r||o===i)&&(e=Zv(e,r)):(u=i!==o,s=!0),n>t&&t>=r&&i!==o&&(e=Kv(e,t+1,i));u&&(e=Kv(e,i,o))}return[e,n]}(a,t);if(a===i)return e;const{lastIndex:u,lastOffset:c,lastSize:l,offsetTree:d}=Ey(e.offsetTree,s,a,o);return{groupIndices:n,groupOffsetTree:n.reduce((e,t)=>Kv(e,t,vy(t,d,o)),Gv()),lastIndex:u,lastOffset:c,lastSize:l,offsetTree:d,sizeTree:a}}function Dy(e,t){let n=0,r=0;for(;n<e;)n+=t[r+1]-t[r]-1,r++;return r-(n===e?0:1)}function Ey(e,t,n,r){let o=e,i=0,a=0,s=0,u=0;if(0!==t){u=fy(o,t-1,my),s=o[u].offset;const e=qv(n,t-1);i=e[0],a=e[1],o.length&&o[u].size===qv(n,t)[1]&&(u-=1),o=o.slice(0,u+1)}else o=[];for(const{start:e,value:u}of Xv(n,t,1/0)){const t=e-i,n=t*a+s+t*r;o.push({index:e,offset:n,size:u}),i=e,s=n,a=u}return{lastIndex:i,lastOffset:s,lastSize:a,offsetTree:o}}function xy(e){return{index:e.index,value:e}}function Ay(e){const{endIndex:t,size:n,startIndex:r}=e;return e=>e.start===r&&(e.end===t||e.end===1/0)&&e.value===n}const Iy={offsetHeight:"height",offsetWidth:"width"},Sy=Ov(([{log:e},{recalcInProgress:t}])=>{const n=Iv(),r=Iv(),o=Av(r,0),i=Iv(),a=Iv(),s=xv(0),u=xv([]),c=xv(void 0),l=xv(void 0),d=xv((e,t)=>hy(e,Iy[t])),f=xv(void 0),h=xv(0),p={groupIndices:[],groupOffsetTree:Gv(),lastIndex:0,lastOffset:0,lastSize:0,offsetTree:[],sizeTree:Gv()},m=Av(bv(n,Ev(u,e,h),wv(Cy,p),mv()),p),g=Av(bv(u,mv(),wv((e,t)=>({current:t,prev:e.current}),{current:[],prev:[]}),vv(({prev:e})=>e)),[]);dv(bv(u,gv(e=>e.length>0),Ev(m,h),vv(([e,t,n])=>{const r=e.reduce((e,r,o)=>Kv(e,r,vy(r,t.offsetTree,n)||o),Gv());return{...t,groupIndices:e,groupOffsetTree:r}})),m),dv(bv(r,Ev(m),gv(([e,{lastIndex:t}])=>e<t),vv(([e,{lastIndex:t,lastSize:n}])=>[{endIndex:t,size:n,startIndex:e}])),n),dv(c,l);const v=Av(bv(c,vv(e=>void 0===e)),!0);dv(bv(l,gv(e=>void 0!==e&&Vv(lv(m).sizeTree)),vv(e=>[{endIndex:0,size:e,startIndex:0}])),n);const y=Sv(bv(n,Ev(m),wv(({sizes:e},[t,n])=>({changed:n!==e,sizes:n}),{changed:!1,sizes:p}),vv(e=>e.changed)));sv(bv(s,wv((e,t)=>({diff:e.prev-t,prev:t}),{diff:0,prev:0}),vv(e=>e.diff)),e=>{const{groupIndices:n}=lv(m);if(e>0)uv(t,!0),uv(i,e+Dy(e,n));else if(e<0){const t=lv(g);t.length>0&&(e-=Dy(-e,t)),uv(a,e)}}),sv(bv(s,Ev(e)),([e,t])=>{e<0&&t("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},Fv.ERROR)});const b=Sv(i);dv(bv(i,Ev(m),vv(([e,t])=>{const n=t.groupIndices.length>0,r=[],o=t.lastSize;if(n){const n=$v(t.sizeTree,0);let i=0,a=0;for(;i<e;){const e=t.groupIndices[a],s=t.groupIndices.length===a+1?1/0:t.groupIndices[a+1]-e-1;r.push({endIndex:e,size:n,startIndex:e}),r.push({endIndex:e+1+s-1,size:o,startIndex:e+1}),a++,i+=s+1}const s=Yv(t.sizeTree);return i!==e&&s.shift(),s.reduce((t,{k:n,v:r})=>{let o=t.ranges;return 0!==t.prevSize&&(o=[...t.ranges,{endIndex:n+e-1,size:t.prevSize,startIndex:t.prevIndex}]),{prevIndex:n+e,prevSize:r,ranges:o}},{prevIndex:e,prevSize:0,ranges:r}).ranges}return Yv(t.sizeTree).reduce((t,{k:n,v:r})=>({prevIndex:n+e,prevSize:r,ranges:[...t.ranges,{endIndex:n+e-1,size:t.prevSize,startIndex:t.prevIndex}]}),{prevIndex:0,prevSize:o,ranges:[]}).ranges})),n);const w=Sv(bv(a,Ev(m,h),vv(([e,{offsetTree:t},n])=>vy(-e,t,n))));return dv(bv(a,Ev(m,h),vv(([e,t,n])=>{if(t.groupIndices.length>0){if(Vv(t.sizeTree))return t;let r=Gv();const o=lv(g);let i=0,a=0,s=0;for(;i<-e;){s=o[a];const e=o[a+1]-s-1;a++,i+=e+1}if(r=Yv(t.sizeTree).reduce((t,{k:n,v:r})=>Kv(t,Math.max(0,n+e),r),r),i!==-e){r=Kv(r,0,$v(t.sizeTree,s));r=Kv(r,1,qv(t.sizeTree,1-e)[1])}return{...t,sizeTree:r,...Ey(t.offsetTree,0,r,n)}}{const r=Yv(t.sizeTree).reduce((t,{k:n,v:r})=>Kv(t,Math.max(0,n+e),r),Gv());return{...t,sizeTree:r,...Ey(t.offsetTree,0,r,n)}}})),m),{beforeUnshiftWith:b,data:f,defaultItemSize:l,firstItemIndex:s,fixedItemSize:c,gap:h,groupIndices:u,itemSize:d,listRefresh:y,shiftWith:a,shiftWithOffset:w,sizeRanges:n,sizes:m,statefulTotalCount:o,totalCount:r,trackItemSizes:v,unshiftWith:i}},av(jv,ly),{singleton:!0});function Oy(e){return e.reduce((e,t)=>(e.groupIndices.push(e.totalCount),e.totalCount+=t+1,e),{groupIndices:[],totalCount:0})}const Ty=Ov(([{groupIndices:e,sizes:t,totalCount:n},{headerHeight:r,scrollTop:o}])=>{const i=Iv(),a=Iv(),s=Sv(bv(i,vv(Oy)));return dv(bv(s,vv(e=>e.totalCount)),n),dv(bv(s,vv(e=>e.groupIndices)),e),dv(bv(Bv(o,t,r),gv(([e,t])=>py(t)),vv(([e,t,n])=>qv(t.groupOffsetTree,Math.max(e-n,0),"v")[0]),mv(),vv(e=>[e])),a),{groupCounts:i,topItemsIndexes:a}},av(Sy,zv)),By=Ov(([{log:e}])=>{const t=xv(!1),n=Sv(bv(t,gv(e=>e),mv()));return sv(t,t=>{t&&lv(e)("props updated",{},Fv.DEBUG)}),{didMount:n,propsReady:t}},av(jv),{singleton:!0}),ky=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function _y(e){const t="number"==typeof e?{index:e}:e;return t.align||(t.align="start"),(!t.behavior||!ky)&&(t.behavior="auto"),t.offset||(t.offset=0),t}const Fy=Ov(([{gap:e,listRefresh:t,sizes:n,totalCount:r},{fixedFooterHeight:o,fixedHeaderHeight:i,footerHeight:a,headerHeight:s,scrollingInProgress:u,scrollTo:c,smoothScrollTargetReached:l,viewportHeight:d},{log:f}])=>{const h=Iv(),p=Iv(),m=xv(0);let g=null,v=null,y=null;function b(){g&&(g(),g=null),y&&(y(),y=null),v&&(clearTimeout(v),v=null),uv(u,!1)}return dv(bv(h,Ev(n,d,r,m,s,a,f),Ev(e,i,o),vv(([[e,n,r,o,i,a,s,c],d,f,m])=>{const w=_y(e),{align:C,behavior:D,offset:E}=w,x=o-1,A=by(w,n,x);let I=vy(A,n.offsetTree,d)+a;"end"===C?(I+=f+qv(n.sizeTree,A)[1]-r+m,A===x&&(I+=s)):"center"===C?I+=(f+qv(n.sizeTree,A)[1]-r+m)/2:I-=i,E&&(I+=E);const S=t=>{b(),t?(c("retrying to scroll to",{location:e},Fv.DEBUG),uv(h,e)):(uv(p,!0),c("list did not change, scroll successful",{},Fv.DEBUG))};if(b(),"smooth"===D){let e=!1;y=sv(t,t=>{e=e||t}),g=fv(l,()=>{S(e)})}else g=fv(bv(t,function(e){return t=>{const n=setTimeout(()=>{t(!1)},e);return e=>{e&&(t(!0),clearTimeout(n))}}}(150)),S);return v=setTimeout(()=>{b()},1200),uv(u,!0),c("scrolling from index to",{behavior:D,index:A,top:I},Fv.DEBUG),{behavior:D,top:I}})),c),{scrollTargetReached:p,scrollToIndex:h,topListHeight:m}},av(Sy,zv,jv),{singleton:!0});function Ry(e,t){0==e?t():requestAnimationFrame(()=>{Ry(e-1,t)})}function jy(e,t){const n=t-1;return"number"==typeof e?e:"LAST"===e.index?n:e.index}const Ny=Ov(([{defaultItemSize:e,listRefresh:t,sizes:n},{scrollTop:r},{scrollTargetReached:o,scrollToIndex:i},{didMount:a}])=>{const s=xv(!0),u=xv(0),c=xv(!0);return dv(bv(a,Ev(u),gv(([e,t])=>!!t),yv(!1)),s),dv(bv(a,Ev(u),gv(([e,t])=>!!t),yv(!1)),c),sv(bv(Bv(t,a),Ev(s,n,e,c),gv(([[,e],t,{sizeTree:n},r,o])=>e&&(!Vv(n)||nv(r))&&!t&&!o),Ev(u)),([,e])=>{fv(o,()=>{uv(c,!0)}),Ry(4,()=>{fv(r,()=>{uv(s,!0)}),uv(i,e)})}),{initialItemFinalLocationReached:c,initialTopMostItemIndex:u,scrolledToInitialItem:s}},av(Sy,zv,Fy,By),{singleton:!0});function Py(e,t){return Math.abs(e-t)<1.01}const My="up",Ly="down",Hy={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},zy=Ov(([{footerHeight:e,headerHeight:t,scrollBy:n,scrollContainerState:r,scrollTop:o,viewportHeight:i}])=>{const a=xv(!1),s=xv(!0),u=Iv(),c=Iv(),l=xv(4),d=xv(0),f=Av(bv(_v(bv(kv(o),Cv(1),yv(!0)),bv(kv(o),Cv(1),yv(!1),hv(100))),mv()),!1),h=Av(bv(_v(bv(n,yv(!0)),bv(n,yv(!1),hv(200))),mv()),!1);dv(bv(Bv(kv(o),kv(d)),vv(([e,t])=>e<=t),mv()),s),dv(bv(s,Dv(50)),c);const p=Sv(bv(Bv(r,kv(i),kv(t),kv(e),kv(l)),wv((e,[{scrollHeight:t,scrollTop:n},r,o,i,a])=>{const s={scrollHeight:t,scrollTop:n,viewportHeight:r};if(n+r-t>-a){let t,r;return n>e.state.scrollTop?(t="SCROLLED_DOWN",r=e.state.scrollTop-n):(t="SIZE_DECREASED",r=e.state.scrollTop-n||e.scrollTopDelta),{atBottom:!0,atBottomBecause:t,scrollTopDelta:r,state:s}}let u;return u=s.scrollHeight>e.state.scrollHeight?"SIZE_INCREASED":r<e.state.viewportHeight?"VIEWPORT_HEIGHT_DECREASING":n<e.state.scrollTop?"SCROLLING_UPWARDS":"NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:u,state:s}},Hy),mv((e,t)=>e&&e.atBottom===t.atBottom))),m=Av(bv(r,wv((e,{scrollHeight:t,scrollTop:n,viewportHeight:r})=>{if(Py(e.scrollHeight,t))return{changed:!1,jump:0,scrollHeight:t,scrollTop:n};{const o=t-(n+r)<1;return e.scrollTop!==n&&o?{changed:!0,jump:e.scrollTop-n,scrollHeight:t,scrollTop:n}:{changed:!0,jump:0,scrollHeight:t,scrollTop:n}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),gv(e=>e.changed),vv(e=>e.jump)),0);dv(bv(p,vv(e=>e.atBottom)),a),dv(bv(a,Dv(50)),u);const g=xv(Ly);dv(bv(r,vv(({scrollTop:e})=>e),mv(),wv((e,t)=>lv(h)?{direction:e.direction,prevScrollTop:t}:{direction:t<e.prevScrollTop?My:Ly,prevScrollTop:t},{direction:Ly,prevScrollTop:0}),vv(e=>e.direction)),g),dv(bv(r,Dv(50),yv("none")),g);const v=xv(0);return dv(bv(f,gv(e=>!e),yv(0)),v),dv(bv(o,Dv(100),Ev(f),gv(([e,t])=>!!t),wv(([e,t],[n])=>[t,n],[0,0]),vv(([e,t])=>t-e)),v),{atBottomState:p,atBottomStateChange:u,atBottomThreshold:l,atTopStateChange:c,atTopThreshold:d,isAtBottom:a,isAtTop:s,isScrolling:f,lastJumpDueToItemResize:m,scrollDirection:g,scrollVelocity:v}},av(zv)),Uy="top",Wy="bottom",Vy="none";function $y(e,t,n){return"number"==typeof e?n===My&&t===Uy||n===Ly&&t===Wy?e:0:n===My?t===Uy?e.main:e.reverse:t===Wy?e.main:e.reverse}function qy(e,t){var n;return"number"==typeof e?e:null!=(n=e[t])?n:0}const Ky=Ov(([{deviation:e,fixedHeaderHeight:t,headerHeight:n,scrollTop:r,viewportHeight:o}])=>{const i=Iv(),a=xv(0),s=xv(0),u=xv(0),c=Av(bv(Bv(kv(r),kv(o),kv(n),kv(i,cy),kv(u),kv(a),kv(t),kv(e),kv(s)),vv(([e,t,n,[r,o],i,a,s,u,c])=>{const l=e-u,d=a+s,f=Math.max(n-l,0);let h=Vy;const p=qy(c,Uy),m=qy(c,Wy);return r-=u,o+=n+s,(r+=n+s)>e+d-p&&(h=My),(o-=u)<e-f+t+m&&(h=Ly),h!==Vy?[Math.max(l-n-$y(i,Uy,h)-p,0),l-f-s+t+$y(i,Wy,h)+m]:null}),gv(e=>null!=e),mv(cy)),[0,0]);return{increaseViewportBy:s,listBoundary:i,overscan:u,topListHeight:a,visibleRange:c}},av(zv),{singleton:!0});const Gy={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function Xy(e,t,n,r,o,i){const{lastIndex:a,lastOffset:s,lastSize:u}=o;let c=0,l=0;if(e.length>0){c=e[0].offset;const t=e[e.length-1];l=t.offset+t.size}const d=n-a,f=c,h=s+d*u+(d-1)*r-l;return{bottom:l,firstItemIndex:i,items:Yy(e,o,i),offsetBottom:h,offsetTop:c,top:f,topItems:Yy(t,o,i),topListHeight:t.reduce((e,t)=>t.size+e,0),totalCount:n}}function Zy(e,t,n,r,o,i){let a=0;if(n.groupIndices.length>0)for(const t of n.groupIndices){if(t-a>=e)break;a++}const s=e+a,u=jy(t,s);return Xy(Array.from({length:s}).map((e,t)=>({data:i[t+u],index:t+u,offset:0,size:0})),[],s,o,n,r)}function Yy(e,t,n){if(0===e.length)return[];if(!py(t))return e.map(e=>({...e,index:e.index+n,originalIndex:e.index}));const r=e[0].index,o=e[e.length-1].index,i=[],a=Xv(t.groupOffsetTree,r,o);let s,u=0;for(const r of e){let e;(!s||s.end<r.index)&&(s=a.shift(),u=t.groupIndices.indexOf(s.start)),e=r.index===s.start?{index:u,type:"group"}:{groupIndex:u,index:r.index-(u+1)+n},i.push({...e,data:r.data,offset:r.offset,originalIndex:r.index,size:r.size})}return i}const Jy=Ov(([{data:e,firstItemIndex:t,gap:n,sizes:r,totalCount:o},i,{listBoundary:a,topListHeight:s,visibleRange:u},{initialTopMostItemIndex:c,scrolledToInitialItem:l},{topListHeight:d},f,{didMount:h},{recalcInProgress:p}])=>{const m=xv([]),g=xv(0),v=Iv();dv(i.topItemsIndexes,m);const y=Av(bv(Bv(h,p,kv(u,cy),kv(o),kv(r),kv(c),l,kv(m),kv(t),kv(n),e),gv(([e,t,,n,,,,,,,r])=>{const o=r&&r.length!==n;return e&&!t&&!o}),vv(([,,[e,t],n,r,o,i,a,s,u,c])=>{const l=r,{offsetTree:d,sizeTree:f}=l,h=lv(g);if(0===n)return{...Gy,totalCount:n};if(0===e&&0===t)return 0===h?{...Gy,totalCount:n}:Zy(h,o,r,s,u,c||[]);if(Vv(f))return h>0?null:Xy(function(e,t,n){if(py(t)){const r=yy(e,t);return[{index:qv(t.groupOffsetTree,r)[0],offset:0,size:0},{data:null==n?void 0:n[0],index:r,offset:0,size:0}]}return[{data:null==n?void 0:n[0],index:e,offset:0,size:0}]}(jy(o,n),l,c),[],n,u,l,s);const p=[];if(a.length>0){const e=a[0],t=a[a.length-1];let n=0;for(const r of Xv(f,e,t)){const o=r.value,i=Math.max(r.start,e),a=Math.min(r.end,t);for(let e=i;e<=a;e++)p.push({data:null==c?void 0:c[e],index:e,offset:n,size:o}),n+=o}}if(!i)return Xy([],p,n,u,l,s);const m=a.length>0?a[a.length-1]+1:0,v=wy(d,e,t,m);if(0===v.length)return null;const y=n-1;return Xy(ov([],n=>{for(const r of v){const o=r.value;let i=o.offset,a=r.start;const s=o.size;if(o.offset<e){a+=Math.floor((e-o.offset+u)/(s+u));const t=a-r.start;i+=t*s+t*u}a<m&&(i+=(m-a)*s,a=m);const l=Math.min(r.end,y);for(let e=a;e<=l&&!(i>=t);e++)n.push({data:null==c?void 0:c[e],index:e,offset:i,size:s}),i+=s+u}}),p,n,u,l,s)}),gv(e=>null!==e),mv()),Gy);dv(bv(e,gv(nv),vv(e=>null==e?void 0:e.length)),o),dv(bv(y,vv(e=>e.topListHeight)),d),dv(d,s),dv(bv(y,vv(e=>[e.top,e.bottom])),a),dv(bv(y,vv(e=>e.items)),v);const b=Sv(bv(y,gv(({items:e})=>e.length>0),Ev(o,e),gv(([{items:e},t])=>e[e.length-1].originalIndex===t-1),vv(([,e,t])=>[e-1,t]),mv(cy),vv(([e])=>e))),w=Sv(bv(y,Dv(200),gv(({items:e,topItems:t})=>e.length>0&&e[0].originalIndex===t.length),vv(({items:e})=>e[0].index),mv())),C=Sv(bv(y,gv(({items:e})=>e.length>0),vv(({items:e})=>{let t=0,n=e.length-1;for(;"group"===e[t].type&&t<n;)t++;for(;"group"===e[n].type&&n>t;)n--;return{endIndex:e[n].index,startIndex:e[t].index}}),mv(uy)));return{endReached:b,initialItemCount:g,itemsRendered:v,listState:y,rangeChanged:C,startReached:w,topItemsIndexes:m,...f}},av(Sy,Ty,Ky,Ny,Fy,zy,By,ly),{singleton:!0}),Qy=Ov(([{fixedFooterHeight:e,fixedHeaderHeight:t,footerHeight:n,headerHeight:r},{listState:o}])=>{const i=Iv(),a=Av(bv(Bv(n,e,r,t,o),vv(([e,t,n,r,o])=>e+t+n+r+o.offsetBottom+o.bottom)),0);return dv(kv(a),i),{totalListHeight:a,totalListHeightChanged:i}},av(zv,Jy),{singleton:!0}),eb=Ov(([{viewportHeight:e},{totalListHeight:t}])=>{const n=xv(!1),r=Av(bv(Bv(n,e,t),gv(([e])=>e),vv(([,e,t])=>Math.max(0,e-t)),Dv(0),mv()),0);return{alignToBottom:n,paddingTopAddition:r}},av(zv,Qy),{singleton:!0}),tb=Ov(()=>({context:xv(null)})),nb=({itemBottom:e,itemTop:t,locationParams:{align:n,behavior:r,...o},viewportBottom:i,viewportTop:a})=>t<a?{...o,align:null!=n?n:"start",behavior:r}:e>i?{...o,align:null!=n?n:"end",behavior:r}:null,rb=Ov(([{gap:e,sizes:t,totalCount:n},{fixedFooterHeight:r,fixedHeaderHeight:o,headerHeight:i,scrollingInProgress:a,scrollTop:s,viewportHeight:u},{scrollToIndex:c}])=>{const l=Iv();return dv(bv(l,Ev(t,u,n,i,o,r,s),Ev(e),vv(([[e,t,n,r,o,i,s,u],c])=>{const{align:l,behavior:d,calculateViewLocation:f=nb,done:h,...p}=e,m=by(e,t,r-1),g=vy(m,t.offsetTree,c)+o+i,v=f({itemBottom:g+qv(t.sizeTree,m)[1],itemTop:g,locationParams:{align:l,behavior:d,...p},viewportBottom:u+n-s,viewportTop:u+i});return v?h&&fv(bv(a,gv(e=>!e),Cv(lv(a)?1:2)),h):h&&h(),v}),gv(e=>null!==e)),c),{scrollIntoView:l}},av(Sy,zv,Fy,Jy,jv),{singleton:!0});function ob(e){return!!e&&("smooth"===e?"smooth":"auto")}const ib=Ov(([{listRefresh:e,totalCount:t,fixedItemSize:n,data:r},{atBottomState:o,isAtBottom:i},{scrollToIndex:a},{scrolledToInitialItem:s},{didMount:u,propsReady:c},{log:l},{scrollingInProgress:d},{context:f},{scrollIntoView:h}])=>{const p=xv(!1),m=Iv();let g=null;function v(e){uv(a,{align:"end",behavior:e,index:"LAST"})}function y(e){const t=fv(o,t=>{e&&!t.atBottom&&"SIZE_INCREASED"===t.notAtBottomBecause&&!g&&(lv(l)("scrolling to bottom due to increased size",{},Fv.DEBUG),v("auto"))});setTimeout(t,100)}sv(bv(Bv(bv(kv(t),Cv(1)),u),Ev(kv(p),i,s,d),vv(([[e,t],n,r,o,i])=>{let a=t&&o,s="auto";return a&&(s=((e,t)=>"function"==typeof e?ob(e(t)):t&&ob(e))(n,r||i),a=a&&!!s),{followOutputBehavior:s,shouldFollow:a,totalCount:e}}),gv(({shouldFollow:e})=>e)),({followOutputBehavior:t,totalCount:r})=>{g&&(g(),g=null),lv(n)?requestAnimationFrame(()=>{lv(l)("following output to ",{totalCount:r},Fv.DEBUG),v(t)}):g=fv(e,()=>{lv(l)("following output to ",{totalCount:r},Fv.DEBUG),v(t),g=null})}),sv(bv(Bv(kv(p),t,c),gv(([e,,t])=>e&&t),wv(({value:e},[,t])=>({refreshed:e===t,value:t}),{refreshed:!1,value:0}),gv(({refreshed:e})=>e),Ev(p,t)),([,e])=>{lv(s)&&y(!1!==e)}),sv(m,()=>{y(!1!==lv(p))}),sv(Bv(kv(p),o),([e,t])=>{e&&!t.atBottom&&"VIEWPORT_HEIGHT_DECREASING"===t.notAtBottomBecause&&v("auto")});const b=xv(null),w=Iv();return dv(_v(bv(kv(r),vv(e=>{var t;return null!=(t=null==e?void 0:e.length)?t:0})),bv(kv(t))),w),sv(bv(Bv(bv(w,Cv(1)),u),Ev(kv(b),s,d,f),vv(([[e,t],n,r,o,i])=>t&&r&&(null==n?void 0:n({context:i,totalCount:e,scrollingInProgress:o}))),gv(e=>!!e),Dv(0)),t=>{g&&(g(),g=null),lv(n)?requestAnimationFrame(()=>{lv(l)("scrolling into view",{}),uv(h,t)}):g=fv(e,()=>{lv(l)("scrolling into view",{}),uv(h,t),g=null})}),{autoscrollToBottom:m,followOutput:p,scrollIntoViewOnChange:b}},av(Sy,zy,Fy,Ny,By,jv,zv,tb,rb)),ab=Ov(([{data:e,firstItemIndex:t,gap:n,sizes:r},{initialTopMostItemIndex:o},{initialItemCount:i,listState:a},{didMount:s}])=>(dv(bv(s,Ev(i),gv(([,e])=>0!==e),Ev(o,r,t,n,e),vv(([[,e],t,n,r,o,i=[]])=>Zy(e,t,n,r,o,i))),a),{}),av(Sy,Ny,Jy,By),{singleton:!0}),sb=Ov(([{didMount:e},{scrollTo:t},{listState:n}])=>{const r=xv(0);return sv(bv(e,Ev(r),gv(([,e])=>0!==e),vv(([,e])=>({top:e}))),e=>{fv(bv(n,Cv(1),gv(e=>e.items.length>1)),()=>{requestAnimationFrame(()=>{uv(t,e)})})}),{initialScrollTop:r}},av(By,zv,Jy),{singleton:!0}),ub=Ov(([{scrollVelocity:e}])=>{const t=xv(!1),n=Iv(),r=xv(!1);return dv(bv(e,Ev(r,t,n),gv(([e,t])=>!!t),vv(([e,t,n,r])=>{const{enter:o,exit:i}=t;if(n){if(i(e,r))return!1}else if(o(e,r))return!0;return n}),mv()),t),sv(bv(Bv(t,e,n),Ev(r)),([[e,t,n],r])=>{e&&r&&r.change&&r.change(t,n)}),{isSeeking:t,scrollSeekConfiguration:r,scrollSeekRangeChanged:n,scrollVelocity:e}},av(zy),{singleton:!0}),cb=Ov(([{scrollContainerState:e,scrollTo:t}])=>{const n=Iv(),r=Iv(),o=Iv(),i=xv(!1),a=xv(void 0);return dv(bv(Bv(n,r),vv(([{scrollHeight:e,scrollTop:t,viewportHeight:n},{offsetTop:r}])=>({scrollHeight:e,scrollTop:Math.max(0,t-r),viewportHeight:n}))),e),dv(bv(t,Ev(r),vv(([e,{offsetTop:t}])=>({...e,top:e.top+t}))),o),{customScrollParent:a,useWindowScroll:i,windowScrollContainerState:n,windowScrollTo:o,windowViewportRect:r}},av(zv)),lb=Ov(([{sizeRanges:e,sizes:t},{headerHeight:n,scrollTop:r},{initialTopMostItemIndex:o},{didMount:i},{useWindowScroll:a,windowScrollContainerState:s,windowViewportRect:u}])=>{const c=Iv(),l=xv(void 0),d=xv(null),f=xv(null);return dv(s,d),dv(u,f),sv(bv(c,Ev(t,r,a,d,f,n)),([e,t,n,r,o,i,a])=>{const s=function(e){return Yv(e).map(({k:e,v:t},n,r)=>{const o=r[n+1];return{endIndex:o?o.k-1:1/0,size:t,startIndex:e}})}(t.sizeTree);r&&null!==o&&null!==i&&(n=o.scrollTop-i.offsetTop),e({ranges:s,scrollTop:n-=a})}),dv(bv(l,gv(nv),vv(db)),o),dv(bv(i,Ev(l),gv(([,e])=>void 0!==e),mv(),vv(([,e])=>e.ranges)),e),{getState:c,restoreStateFrom:l}},av(Sy,zv,Ny,By,cb));function db(e){return{align:"start",index:0,offset:e.scrollTop}}const fb=Ov(([{topItemsIndexes:e}])=>{const t=xv(0);return dv(bv(t,gv(e=>e>=0),vv(e=>Array.from({length:e}).map((e,t)=>t))),e),{topItemCount:t}},av(Jy));function hb(e){let t,n=!1;return()=>(n||(n=!0,t=e()),t)}const pb=hb(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),mb=Ov(([{deviation:e,scrollBy:t,scrollingInProgress:n,scrollTop:r},{isAtBottom:o,isScrolling:i,lastJumpDueToItemResize:a,scrollDirection:s},{listState:u},{beforeUnshiftWith:c,gap:l,shiftWithOffset:d,sizes:f},{log:h},{recalcInProgress:p}])=>{const m=Sv(bv(u,Ev(a),wv(([,e,t,n],[{bottom:r,items:o,offsetBottom:i,totalCount:a},s])=>{const u=r+i;let c=0;return t===a&&e.length>0&&o.length>0&&(0===o[0].originalIndex&&0===e[0].originalIndex||(c=u-n,0!==c&&(c+=s))),[c,o,a,u]},[0,[],0,0]),gv(([e])=>0!==e),Ev(r,s,n,o,h,p),gv(([,e,t,n,,,r])=>!r&&!n&&0!==e&&t===My),vv(([[e],,,,,t])=>(t("Upward scrolling compensation",{amount:e},Fv.DEBUG),e))));function g(n){n>0?(uv(t,{behavior:"auto",top:-n}),uv(e,0)):(uv(e,0),uv(t,{behavior:"auto",top:-n}))}return sv(bv(m,Ev(e,i)),([t,n,r])=>{r&&pb()?uv(e,n-t):g(-t)}),sv(bv(Bv(Av(i,!1),e,p),gv(([e,t,n])=>!e&&!n&&0!==t),vv(([e,t])=>t),Dv(1)),g),dv(bv(d,vv(e=>({top:-e}))),t),sv(bv(c,Ev(f,l),vv(([e,{groupIndices:t,lastSize:n,sizeTree:r},o])=>{function i(e){return e*(n+o)}if(0===t.length)return i(e);{let n=0;const o=$v(r,0);let a=0,s=0;for(;a<e;){a++,n+=o;let r=t.length===s+1?1/0:t[s+1]-t[s]-1;a+r>e&&(n-=o,r=e-a+1),a+=r,n+=i(r),s++}return n}})),n=>{uv(e,n),requestAnimationFrame(()=>{uv(t,{top:n}),requestAnimationFrame(()=>{uv(e,0),uv(p,!1)})})}),{deviation:e}},av(zv,zy,Jy,Sy,jv,ly)),gb=Ov(([e,t,n,r,o,i,a,s,u,c,l])=>({...e,...t,...n,...r,...o,...i,...a,...s,...u,...c,...l}),av(Ky,ab,By,ub,Qy,sb,eb,cb,rb,jv,tb)),vb=Ov(([{data:e,defaultItemSize:t,firstItemIndex:n,fixedItemSize:r,gap:o,groupIndices:i,itemSize:a,sizeRanges:s,sizes:u,statefulTotalCount:c,totalCount:l,trackItemSizes:d},{initialItemFinalLocationReached:f,initialTopMostItemIndex:h,scrolledToInitialItem:p},m,g,v,{listState:y,topItemsIndexes:b,...w},{scrollToIndex:C},D,{topItemCount:E},{groupCounts:x},A])=>(dv(w.rangeChanged,A.scrollSeekRangeChanged),dv(bv(A.windowViewportRect,vv(e=>e.visibleHeight)),m.viewportHeight),{data:e,defaultItemHeight:t,firstItemIndex:n,fixedItemHeight:r,gap:o,groupCounts:x,initialItemFinalLocationReached:f,initialTopMostItemIndex:h,scrolledToInitialItem:p,sizeRanges:s,topItemCount:E,topItemsIndexes:b,totalCount:l,...v,groupIndices:i,itemSize:a,listState:y,scrollToIndex:C,statefulTotalCount:c,trackItemSizes:d,...w,...A,...m,sizes:u,...g}),av(Sy,Ny,zv,lb,ib,Jy,Fy,mb,fb,Ty,gb));function yb(e,t){const n={},r={};let o=0;const i=e.length;for(;o<i;)r[e[o]]=1,o+=1;for(const e in t)Object.hasOwn(r,e)||(n[e]=t[e]);return n}const bb=typeof document<"u"?u.default.useLayoutEffect:u.default.useEffect;function wb(e,t,n){const r=Object.keys(t.required||{}),o=Object.keys(t.optional||{}),i=Object.keys(t.methods||{}),a=Object.keys(t.events||{}),s=u.default.createContext({});function c(e,n){e.propsReady&&uv(e.propsReady,!1);for(const o of r){uv(e[t.required[o]],n[o])}for(const r of o)if(r in n){uv(e[t.optional[r]],n[r])}e.propsReady&&uv(e.propsReady,!0)}function l(e){return a.reduce((n,r)=>(n[r]=function(e){let t,n;const r=()=>null==t?void 0:t();return function(o,i){switch(o){case 1:return i?n===i?void 0:(r(),n=i,t=sv(e,i),t):(r(),rv);case 2:return r(),void(n=null)}}}(e[t.events[r]]),n),{})}const d=u.default.forwardRef((d,f)=>{const{children:h,...p}=d,[m]=u.default.useState(()=>ov(function(e){const t=new Map,n=({constructor:e,dependencies:r,id:o,singleton:i})=>{if(i&&t.has(o))return t.get(o);const a=e(r.map(e=>n(e)));return i&&t.set(o,a),a};return n(e)}(e),e=>{c(e,p)})),[g]=u.default.useState(tv(l,m));bb(()=>{for(const e of a)e in p&&sv(g[e],p[e]);return()=>{Object.values(g).map(cv)}},[p,g,m]),bb(()=>{c(m,p)}),u.default.useImperativeHandle(f,Jg(function(e){return i.reduce((n,r)=>(n[r]=n=>{uv(e[t.methods[r]],n)},n),{})}(m)));const v=n;return bn.jsx(s.Provider,{value:m,children:n?bn.jsx(v,{...yb([...r,...o,...a],p),children:h}):h})});return{Component:d,useEmitter:(e,t)=>{const n=u.default.useContext(s)[e];bb(()=>sv(n,t),[t,n])},useEmitterValue:u.default.version.startsWith("18")?e=>{const t=u.default.useContext(s)[e],n=u.default.useCallback(e=>sv(t,e),[t]);return u.default.useSyncExternalStore(n,()=>lv(t),()=>lv(t))}:e=>{const t=u.default.useContext(s)[e],[n,r]=u.default.useState(tv(lv,t));return bb(()=>sv(t,e=>{e!==n&&r(Jg(e))}),[t,n]),n},usePublisher:e=>{const t=u.default.useContext(s);return u.default.useCallback(n=>{uv(t[e],n)},[t,e])}}}const Cb=u.default.createContext(void 0),Db=u.default.createContext(void 0),Eb=typeof document<"u"?u.default.useLayoutEffect:u.default.useEffect;function xb(e){return"self"in e}function Ab(e,t,n,r=rv,o,i){const a=u.default.useRef(null),s=u.default.useRef(null),c=u.default.useRef(null),l=u.default.useCallback(n=>{let r,o,a;const u=n.target;if(function(e){return"body"in e}(u)||xb(u)){const e=xb(u)?u:u.defaultView;a=i?e.scrollX:e.scrollY,r=i?e.document.documentElement.scrollWidth:e.document.documentElement.scrollHeight,o=i?e.innerWidth:e.innerHeight}else a=i?u.scrollLeft:u.scrollTop,r=i?u.scrollWidth:u.scrollHeight,o=i?u.offsetWidth:u.offsetHeight;const l=()=>{e({scrollHeight:r,scrollTop:Math.max(a,0),viewportHeight:o})};n.suppressFlushSync?l():d.default.flushSync(l),null!==s.current&&(a===s.current||a<=0||a===r-o)&&(s.current=null,t(!0),c.current&&(clearTimeout(c.current),c.current=null))},[e,t,i]);return u.default.useEffect(()=>{const e=o||a.current;return r(o||a.current),l({suppressFlushSync:!0,target:e}),e.addEventListener("scroll",l,{passive:!0}),()=>{r(null),e.removeEventListener("scroll",l)}},[a,l,n,r,o]),{scrollByCallback:function(e){i&&(e={behavior:e.behavior,left:e.top}),a.current.scrollBy(e)},scrollerRef:a,scrollToCallback:function(n){const r=a.current;if(!r||(i?"offsetWidth"in r&&0===r.offsetWidth:"offsetHeight"in r&&0===r.offsetHeight))return;const o="smooth"===n.behavior;let u,l,d;xb(r)?(l=Math.max(hy(r.document.documentElement,i?"width":"height"),i?r.document.documentElement.scrollWidth:r.document.documentElement.scrollHeight),u=i?r.innerWidth:r.innerHeight,d=i?window.scrollX:window.scrollY):(l=r[i?"scrollWidth":"scrollHeight"],u=hy(r,i?"width":"height"),d=r[i?"scrollLeft":"scrollTop"]);const f=l-u;if(n.top=Math.ceil(Math.max(Math.min(f,n.top),0)),Py(u,l)||n.top===d)return e({scrollHeight:l,scrollTop:d,viewportHeight:u}),void(o&&t(!0));o?(s.current=n.top,c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{c.current=null,s.current=null,t(!0)},1e3)):s.current=null,i&&(n={behavior:n.behavior,left:n.top}),r.scrollTo(n)}}}const Ib="-webkit-sticky",Sb="sticky",Ob=hb(()=>{if(typeof document>"u")return Sb;const e=document.createElement("div");return e.style.position=Ib,e.style.position===Ib?Ib:Sb});function Tb(e){return e}const Bb=Ov(()=>{const e=xv(e=>`Item ${e}`),t=xv(e=>`Group ${e}`),n=xv({}),r=xv(Tb),o=xv("div"),i=xv(rv),a=(e,t=null)=>Av(bv(n,vv(t=>t[e]),mv()),t);return{components:n,computeItemKey:r,EmptyPlaceholder:a("EmptyPlaceholder"),FooterComponent:a("Footer"),GroupComponent:a("Group","div"),groupContent:t,HeaderComponent:a("Header"),HeaderFooterTag:o,ItemComponent:a("Item","div"),itemContent:e,ListComponent:a("List","div"),ScrollerComponent:a("Scroller","div"),scrollerRef:i,ScrollSeekPlaceholder:a("ScrollSeekPlaceholder"),TopItemListComponent:a("TopItemList")}}),kb=Ov(([e,t])=>({...e,...t}),av(vb,Bb)),_b=({height:e})=>bn.jsx("div",{style:{height:e}}),Fb={overflowAnchor:"none",position:Ob(),zIndex:1},Rb={overflowAnchor:"none"},jb={...Rb,display:"inline-block",height:"100%"},Nb=u.default.memo(function({showTopList:e=!1}){const t=Qb("listState"),r=ew("sizeRanges"),o=Qb("useWindowScroll"),i=Qb("customScrollParent"),a=ew("windowScrollContainerState"),s=ew("scrollContainerState"),c=i||o?a:s,l=Qb("itemContent"),d=Qb("context"),f=Qb("groupContent"),h=Qb("trackItemSizes"),p=Qb("itemSize"),m=Qb("log"),g=ew("gap"),v=Qb("horizontalDirection"),{callbackRef:y}=Mv(r,p,h,e?rv:c,m,g,i,v,Qb("skipAnimationFrameInResizeObserver")),[b,w]=u.default.useState(0);Jb("deviation",e=>{b!==e&&w(e)});const C=Qb("EmptyPlaceholder"),D=Qb("ScrollSeekPlaceholder")||_b,E=Qb("ListComponent"),x=Qb("ItemComponent"),A=Qb("GroupComponent"),I=Qb("computeItemKey"),S=Qb("isSeeking"),O=Qb("groupIndices").length>0,T=Qb("alignToBottom"),B=Qb("initialItemFinalLocationReached"),k=e?{}:{boxSizing:"border-box",...v?{display:"inline-block",height:"100%",marginLeft:0!==b?b:T?"auto":0,paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,whiteSpace:"nowrap"}:{marginTop:0!==b?b:T?"auto":0,paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},...B?{}:{visibility:"hidden"}};return!e&&0===t.totalCount&&C?bn.jsx(C,{...zb(C,d)}):bn.jsx(E,{...zb(E,d),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:y,style:k,children:(e?t.topItems:t.items).map(e=>{const r=e.originalIndex,o=I(r+t.firstItemIndex,e.data,d);return S?n.createElement(D,{...zb(D,d),height:e.size,index:e.index,key:o,type:e.type||"item",..."group"===e.type?{}:{groupIndex:e.groupIndex}}):"group"===e.type?n.createElement(A,{...zb(A,d),"data-index":r,"data-item-index":e.index,"data-known-size":e.size,key:o,style:Fb},f(e.index,d)):n.createElement(x,{...zb(x,d),...Ub(x,e.data),"data-index":r,"data-item-group-index":e.groupIndex,"data-item-index":e.index,"data-known-size":e.size,key:o,style:v?jb:Rb},O?l(e.index,e.groupIndex,e.data,d):l(e.index,e.data,d))})})}),Pb={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},Mb={outline:"none",overflowX:"auto",position:"relative"},Lb=e=>({height:"100%",position:"absolute",top:0,width:"100%",...e?{display:"flex",flexDirection:"column"}:{}}),Hb={position:Ob(),top:0,width:"100%",zIndex:1};function zb(e,t){if("string"!=typeof e)return{context:t}}function Ub(e,t){return{item:"string"==typeof e?void 0:t}}const Wb=u.default.memo(function(){const e=Qb("HeaderComponent"),t=ew("headerHeight"),n=Qb("HeaderFooterTag"),r=Nv(u.default.useMemo(()=>e=>{t(hy(e,"height"))},[t]),!0,Qb("skipAnimationFrameInResizeObserver")),o=Qb("context");return e?bn.jsx(n,{ref:r,children:bn.jsx(e,{...zb(e,o)})}):null}),Vb=u.default.memo(function(){const e=Qb("FooterComponent"),t=ew("footerHeight"),n=Qb("HeaderFooterTag"),r=Nv(u.default.useMemo(()=>e=>{t(hy(e,"height"))},[t]),!0,Qb("skipAnimationFrameInResizeObserver")),o=Qb("context");return e?bn.jsx(n,{ref:r,children:bn.jsx(e,{...zb(e,o)})}):null});function $b({useEmitter:e,useEmitterValue:t,usePublisher:n}){return u.default.memo(function({children:r,style:o,...i}){const a=n("scrollContainerState"),s=t("ScrollerComponent"),u=n("smoothScrollTargetReached"),c=t("scrollerRef"),l=t("context"),d=t("horizontalDirection")||!1,{scrollByCallback:f,scrollerRef:h,scrollToCallback:p}=Ab(a,u,s,c,void 0,d);return e("scrollTo",p),e("scrollBy",f),bn.jsx(s,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:h,style:{...d?Mb:Pb,...o},tabIndex:0,...i,...zb(s,l),children:r})})}function qb({useEmitter:e,useEmitterValue:t,usePublisher:n}){return u.default.memo(function({children:r,style:o,...i}){const a=n("windowScrollContainerState"),s=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),l=t("totalListHeight"),d=t("deviation"),f=t("customScrollParent"),h=t("context"),p=u.default.useRef(null),m=t("scrollerRef"),{scrollByCallback:g,scrollerRef:v,scrollToCallback:y}=Ab(a,c,s,m,f);return Eb(()=>{var e;return v.current=f||(null==(e=p.current)?void 0:e.ownerDocument.defaultView),()=>{v.current=null}},[v,f]),e("windowScrollTo",y),e("scrollBy",g),bn.jsx(s,{ref:p,"data-virtuoso-scroller":!0,style:{position:"relative",...o,...0!==l?{height:l+d}:{}},...i,...zb(s,h),children:r})})}const Kb=({children:e})=>{const t=u.default.useContext(Cb),n=ew("viewportHeight"),r=ew("fixedItemHeight"),o=Qb("alignToBottom"),i=Qb("horizontalDirection"),a=Nv(u.default.useMemo(()=>ev(n,e=>hy(e,i?"width":"height")),[n,i]),!0,Qb("skipAnimationFrameInResizeObserver"));return u.default.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),bn.jsx("div",{"data-viewport-type":"element",ref:a,style:Lb(o),children:e})},Gb=({children:e})=>{const t=u.default.useContext(Cb),n=ew("windowViewportRect"),r=ew("fixedItemHeight"),o=Qb("customScrollParent"),i=Hv(n,o,Qb("skipAnimationFrameInResizeObserver")),a=Qb("alignToBottom");return u.default.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),bn.jsx("div",{"data-viewport-type":"window",ref:i,style:Lb(a),children:e})},Xb=({children:e})=>{const t=Qb("TopItemListComponent")||"div",n=Qb("headerHeight"),r={...Hb,marginTop:`${n}px`},o=Qb("context");return bn.jsx(t,{style:r,...zb(t,o),children:e})},Zb=u.default.memo(function(e){const t=Qb("useWindowScroll"),n=Qb("topItemsIndexes").length>0,r=Qb("customScrollParent"),o=Qb("context"),i=r||t?nw:tw,a=r||t?Gb:Kb;return bn.jsxs(i,{...e,...zb(i,o),children:[n&&bn.jsx(Xb,{children:bn.jsx(Nb,{showTopList:!0})}),bn.jsxs(a,{children:[bn.jsx(Wb,{}),bn.jsx(Nb,{}),bn.jsx(Vb,{})]})]})}),{Component:Yb,useEmitter:Jb,useEmitterValue:Qb,usePublisher:ew}=wb(kb,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},Zb),tw=$b({useEmitter:Jb,useEmitterValue:Qb,usePublisher:ew}),nw=qb({useEmitter:Jb,useEmitterValue:Qb,usePublisher:ew}),rw=Yb;Ob();const ow={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},iw={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:aw,floor:sw,max:uw,min:cw,round:lw}=Math;function dw(e,t,n){return Array.from({length:t-e+1}).map((t,r)=>({data:null===n?null:n[r+e],index:r+e}))}function fw(e,t){return e&&e.width===t.width&&e.height===t.height}function hw(e,t){return e&&e.column===t.column&&e.row===t.row}const pw=Ov(([{increaseViewportBy:e,listBoundary:t,overscan:n,visibleRange:r},{footerHeight:o,headerHeight:i,scrollBy:a,scrollContainerState:s,scrollTo:u,scrollTop:c,smoothScrollTargetReached:l,viewportHeight:d},f,h,{didMount:p,propsReady:m},{customScrollParent:g,useWindowScroll:v,windowScrollContainerState:y,windowScrollTo:b,windowViewportRect:w},C])=>{const D=xv(0),E=xv(0),x=xv(ow),A=xv({height:0,width:0}),I=xv({height:0,width:0}),S=Iv(),O=Iv(),T=xv(0),B=xv(null),k=xv({column:0,row:0}),_=Iv(),F=Iv(),R=xv(!1),j=xv(0),N=xv(!0),P=xv(!1),M=xv(!1);sv(bv(p,Ev(j),gv(([e,t])=>!!t)),()=>{uv(N,!1)}),sv(bv(Bv(p,N,I,A,j,P),gv(([e,t,n,r,,o])=>e&&!t&&0!==n.height&&0!==r.height&&!o)),([,,,,e])=>{uv(P,!0),Ry(1,()=>{uv(S,e)}),fv(bv(c),()=>{uv(t,[0,0]),uv(N,!0)})}),dv(bv(F,gv(e=>null!=e&&e.scrollTop>0),yv(0)),E),sv(bv(p,Ev(F),gv(([,e])=>null!=e)),([,e])=>{e&&(uv(A,e.viewport),uv(I,e.item),uv(k,e.gap),e.scrollTop>0&&(uv(R,!0),fv(bv(c,Cv(1)),e=>{uv(R,!1)}),uv(u,{top:e.scrollTop})))}),dv(bv(A,vv(({height:e})=>e)),d),dv(bv(Bv(kv(A,fw),kv(I,fw),kv(k,(e,t)=>e&&e.column===t.column&&e.row===t.row),kv(c)),vv(([e,t,n,r])=>({gap:n,item:t,scrollTop:r,viewport:e}))),_),dv(bv(Bv(kv(D),r,kv(k,hw),kv(I,fw),kv(A,fw),kv(B),kv(E),kv(R),kv(N),kv(j)),gv(([,,,,,,,e])=>!e),vv(([e,[t,n],r,o,i,a,s,,u,c])=>{const{column:l,row:d}=r,{height:f,width:h}=o,{width:p}=i;if(0===s&&(0===e||0===p))return ow;if(0===h){const t=jy(c,e);return function(e){return{...iw,items:e}}(dw(t,t+Math.max(s-1,0),a))}const m=mw(p,h,l);let g,v;u?0===t&&0===n&&s>0?(g=0,v=s-1):(g=m*sw((t+d)/(f+d)),v=m*aw((n+d)/(f+d))-1,v=cw(e-1,uw(v,m-1)),g=cw(v,uw(0,g))):(g=0,v=-1);const y=dw(g,v,a),{bottom:b,top:w}=gw(i,r,o,y),C=aw(e/m);return{bottom:b,itemHeight:f,items:y,itemWidth:h,offsetBottom:C*f+(C-1)*d-b,offsetTop:w,top:w}})),x),dv(bv(B,gv(e=>null!==e),vv(e=>e.length)),D),dv(bv(Bv(A,I,x,k),gv(([e,t,{items:n}])=>n.length>0&&0!==t.height&&0!==e.height),vv(([e,t,{items:n},r])=>{const{bottom:o,top:i}=gw(e,r,t,n);return[i,o]}),mv(cy)),t);const L=xv(!1);dv(bv(c,Ev(L),vv(([e,t])=>t||0!==e)),L);const H=Sv(bv(Bv(x,D),gv(([{items:e}])=>e.length>0),Ev(L),gv(([[e,t],n])=>{const r=e.items[e.items.length-1].index===t-1;return(n||e.bottom>0&&e.itemHeight>0&&0===e.offsetBottom&&e.items.length===t)&&r}),vv(([[,e]])=>e-1),mv())),z=Sv(bv(kv(x),gv(({items:e})=>e.length>0&&0===e[0].index),yv(0),mv())),U=Sv(bv(kv(x),Ev(R),gv(([{items:e},t])=>e.length>0&&!t),vv(([{items:e}])=>({endIndex:e[e.length-1].index,startIndex:e[0].index})),mv(uy),Dv(0)));dv(U,h.scrollSeekRangeChanged),dv(bv(S,Ev(A,I,D,k),vv(([e,t,n,r,o])=>{const i=_y(e),{align:a,behavior:s,offset:u}=i;let c=i.index;"LAST"===c&&(c=r-1),c=uw(0,c,cw(r-1,c));let l=vw(t,o,n,c);return"end"===a?l=lw(l-t.height+n.height):"center"===a&&(l=lw(l-t.height/2+n.height/2)),u&&(l+=u),{behavior:s,top:l}})),u);const W=Av(bv(x,vv(e=>e.offsetBottom+e.bottom)),0);return dv(bv(w,vv(e=>({height:e.visibleHeight,width:e.visibleWidth}))),A),{customScrollParent:g,data:B,deviation:T,footerHeight:o,gap:k,headerHeight:i,increaseViewportBy:e,initialItemCount:E,itemDimensions:I,overscan:n,restoreStateFrom:F,scrollBy:a,scrollContainerState:s,scrollHeight:O,scrollTo:u,scrollToIndex:S,scrollTop:c,smoothScrollTargetReached:l,totalCount:D,useWindowScroll:v,viewportDimensions:A,windowScrollContainerState:y,windowScrollTo:b,windowViewportRect:w,...h,gridState:x,horizontalDirection:M,initialTopMostItemIndex:j,totalListHeight:W,...f,endReached:H,propsReady:m,rangeChanged:U,startReached:z,stateChanged:_,stateRestoreInProgress:R,...C}},av(Ky,zv,zy,ub,By,cb,jv));function mw(e,t,n){return uw(1,sw((e+n)/(sw(t)+n)))}function gw(e,t,n,r){const{height:o}=n;if(void 0===o||0===r.length)return{bottom:0,top:0};const i=vw(e,t,n,r[0].index);return{bottom:vw(e,t,n,r[r.length-1].index)+o,top:i}}function vw(e,t,n,r){const o=mw(e.width,n.width,t.column),i=sw(r/o),a=i*n.height+uw(0,i-1)*t.row;return a>0?a+t.row:a}const yw=Ov(()=>{const e=xv(e=>`Item ${e}`),t=xv({}),n=xv(null),r=xv("virtuoso-grid-item"),o=xv("virtuoso-grid-list"),i=xv(Tb),a=xv("div"),s=xv(rv),u=(e,n=null)=>Av(bv(t,vv(t=>t[e]),mv()),n),c=xv(!1),l=xv(!1);return dv(kv(l),c),{components:t,computeItemKey:i,context:n,FooterComponent:u("Footer"),HeaderComponent:u("Header"),headerFooterTag:a,itemClassName:r,ItemComponent:u("Item","div"),itemContent:e,listClassName:o,ListComponent:u("List","div"),readyStateChanged:c,reportReadyState:l,ScrollerComponent:u("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:u("ScrollSeekPlaceholder","div")}}),bw=Ov(([e,t])=>({...e,...t}),av(pw,yw)),ww=u.default.memo(function(){const e=Ow("gridState"),t=Ow("listClassName"),r=Ow("itemClassName"),o=Ow("itemContent"),i=Ow("computeItemKey"),a=Ow("isSeeking"),s=Tw("scrollHeight"),c=Ow("ItemComponent"),l=Ow("ListComponent"),d=Ow("ScrollSeekPlaceholder"),f=Ow("context"),h=Tw("itemDimensions"),p=Tw("gap"),m=Ow("log"),g=Ow("stateRestoreInProgress"),v=Tw("reportReadyState"),y=Nv(u.default.useMemo(()=>e=>{const t=e.parentElement.parentElement.scrollHeight;s(t);const n=e.firstChild;if(n){const{height:e,width:t}=n.getBoundingClientRect();h({height:e,width:t})}p({column:_w("column-gap",getComputedStyle(e).columnGap,m),row:_w("row-gap",getComputedStyle(e).rowGap,m)})},[s,h,p,m]),!0,!1);return Eb(()=>{e.itemHeight>0&&e.itemWidth>0&&v(!0)},[e]),g?null:bn.jsx(l,{className:t,ref:y,...zb(l,f),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(t=>{const s=i(t.index,t.data,f);return a?bn.jsx(d,{...zb(d,f),height:e.itemHeight,index:t.index,width:e.itemWidth},s):n.createElement(c,{...zb(c,f),className:r,"data-index":t.index,key:s},o(t.index,t.data,f))})})}),Cw=u.default.memo(function(){const e=Ow("HeaderComponent"),t=Tw("headerHeight"),n=Ow("headerFooterTag"),r=Nv(u.default.useMemo(()=>e=>{t(hy(e,"height"))},[t]),!0,!1),o=Ow("context");return e?bn.jsx(n,{ref:r,children:bn.jsx(e,{...zb(e,o)})}):null}),Dw=u.default.memo(function(){const e=Ow("FooterComponent"),t=Tw("footerHeight"),n=Ow("headerFooterTag"),r=Nv(u.default.useMemo(()=>e=>{t(hy(e,"height"))},[t]),!0,!1),o=Ow("context");return e?bn.jsx(n,{ref:r,children:bn.jsx(e,{...zb(e,o)})}):null}),Ew=({children:e})=>{const t=u.default.useContext(Db),n=Tw("itemDimensions"),r=Tw("viewportDimensions"),o=Nv(u.default.useMemo(()=>e=>{r(e.getBoundingClientRect())},[r]),!0,!1);return u.default.useEffect(()=>{t&&(r({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))},[t,r,n]),bn.jsx("div",{ref:o,style:Lb(!1),children:e})},xw=({children:e})=>{const t=u.default.useContext(Db),n=Tw("windowViewportRect"),r=Tw("itemDimensions"),o=Ow("customScrollParent"),i=Hv(n,o,!1);return u.default.useEffect(()=>{t&&(r({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))},[t,n,r]),bn.jsx("div",{ref:i,style:Lb(!1),children:e})},Aw=u.default.memo(function({...e}){const t=Ow("useWindowScroll"),n=Ow("customScrollParent"),r=n||t?kw:Bw,o=n||t?xw:Ew,i=Ow("context");return bn.jsx(r,{...e,...zb(r,i),children:bn.jsxs(o,{children:[bn.jsx(Cw,{}),bn.jsx(ww,{}),bn.jsx(Dw,{})]})})}),{Component:Iw,useEmitter:Sw,useEmitterValue:Ow,usePublisher:Tw}=wb(bw,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},Aw),Bw=$b({useEmitter:Sw,useEmitterValue:Ow,usePublisher:Tw}),kw=qb({useEmitter:Sw,useEmitterValue:Ow,usePublisher:Tw});function _w(e,t,n){return"normal"!==t&&!(null!=t&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,Fv.WARN),"normal"===t?0:parseInt(null!=t?t:"0",10)}const Fw=("undefined"!=typeof window?window.requestIdleCallback:null)??function(e,t){return setTimeout(e,Math.min(t?.timeout??1/0,100))},Rw=("undefined"!=typeof window?window.cancelIdleCallback:null)??clearTimeout,jw={position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"},Nw=n.createContext(null);function Pw(){return Ce(n.useContext(Nw),"EmojiPicker.Root is missing from the React tree.")}const Mw=`${Builder&&Builder.settings&&Builder.settings.unpkgUrl?Builder.settings.unpkgUrl:"https://unpkg.com"}/emojibase-data@15.3.0`,Lw=e=>`${Mw}/${e}/data.json`,Hw=e=>`${Mw}/${e}/messages.json`,zw=["bn","da","de","en","en-gb","es","es-mx","et","fi","fr","hi","hu","it","ja","ko","lt","ms","nb","nl","pl","pt","ru","sv","th","uk","zh","zh-hant"],Uw=e=>`lb-emoji-data-${e}`,Ww=e=>`lb-emoji-metadata-${e}`,Vw="lb-emoji-metadata",$w=20;function qw(e,t){const n=[];for(let r=e;r<=t;r++)n.push(r);return n}function Kw(e,t){const n=e.getItem(t);return n?JSON.parse(n):null}function Gw(e,t,n){e.setItem(t,JSON.stringify(n))}async function Xw(e){try{return(await fetch(e,{method:"HEAD"})).headers.get("etag")}catch(e){return null}}async function Zw(e){const{emojis:t,emojisEtag:n,messages:r,messagesEtag:o}=await async function(e){const[{emojis:t,emojisEtag:n},{messages:r,messagesEtag:o}]=await Promise.all([fetch(Lw(e)).then(async e=>({emojis:await e.json(),emojisEtag:e.headers.get("etag")})),fetch(Hw(e)).then(async e=>({messages:await e.json(),messagesEtag:e.headers.get("etag")}))]);return{emojis:t,messages:r,emojisEtag:n,messagesEtag:o}}(e),i=r.subgroups.find(e=>"subdivision-flag"===e.key),a=r.groups.filter(e=>"component"!==e.key),s=t.filter(e=>"group"in e),u=a.map(e=>({key:e.order,name:Eg(e.message)})),c=r.skinTones.map(e=>({key:e.key,name:Eg(e.message)})),l={emojis:s.map(e=>{const t={emoji:e.emoji,category:e.group,version:e.version,name:Eg(e.label),tags:e.tags};return i&&e.subgroup===i.order&&(t.countryFlag=!0),t}),categories:u,skinTones:c};return Gw(localStorage,Uw(e),l),Gw(localStorage,Ww(e),{emojisEtag:n,messagesEtag:o}),l}function Yw(e,t){e.clearRect(0,0,40,25),e.fillStyle="#f00",e.fillText(t,0,22),e.fillStyle="#00f",e.fillText(t,$w,22);const n=e.getImageData(0,0,$w,25).data,r=n.length;let o=0;for(;o<r&&!n[o+3];o+=4);if(o>=r)return!1;const i=$w+o/4%$w,a=Math.floor(o/4/$w),s=e.getImageData(i,a,1,1).data;return n[o]===s[0]&&n[o+2]===s[2]&&!(e.measureText(t).width>=$w)}function Jw(e){const t=new Map;for(const n of e)t.has(n.version)||t.set(n.version,n.emoji);const n=[...t.keys()].sort((e,t)=>t-e),r=n[0]??0,o=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});if(!o)return{emojiVersion:r,countryFlags:!0};o.font=`${Math.floor(12.5)}px ${function(){try{const e=document.createElement("span");e.style.display="none",e.dataset.emoji="",document.body.appendChild(e);const t=window.getComputedStyle(e).fontFamily;return document.body.removeChild(e),t}catch{return Eo}}()}`,o.textBaseline="top",o.canvas.width=40,o.canvas.height=25;const i=Yw(o,"🇫🇷");for(const e of n){if(Yw(o,t.get(e)))return{emojiVersion:e,countryFlags:i}}return{emojiVersion:r,countryFlags:i}}async function Qw(e){const t=function(e){return zw.includes(e)?e:"en"}(e),n=Kw(sessionStorage,Vw),r=Kw(localStorage,Uw(t));let o;if(r)if(n)o=r;else{const{emojisEtag:e,messagesEtag:n}=await async function(e){const[t,n]=await Promise.all([Xw(Lw(e)),Xw(Hw(e))]);return{emojisEtag:t,messagesEtag:n}}(t),i=Kw(localStorage,Ww(t));o=i&&e===i.emojisEtag&&n===i.messagesEtag?r:await Zw(t)}else o=await Zw(t);const i=n??Jw(o.emojis);Gw(sessionStorage,Vw,i);return{emojis:o.emojis.filter(e=>{const t=e.version<=i.emojiVersion;return e.countryFlag?t&&i.countryFlags:t}),categories:o.categories,skinTones:o.skinTones}}function eC({columns:e=10,locale:t="en",onEmojiSelect:r,children:o}){const i=n.useRef(),a=n.useRef(""),[,s]=n.useTransition(),[u,c]=n.useState(),[l,d]=n.useState(),[f,h]=n.useState(0),[p,m]=n.useState(0),[g,v]=n.useState("none"),y=n.useCallback(()=>{if(r){const e=u?.rows[p]?.[f];e&&r(e.emoji)}},[u?.rows,r,f,p]),b=n.useCallback(()=>{h(0),m(0)},[]),w=n.useCallback((e,t)=>{v("pointer"),h(e),m(t)},[]),C=n.useCallback((e,t)=>{if(u)if(t.preventDefault(),"none"!==g)switch(v("keyboard"),e){case"left":if(0===f){const e=p-1,t=u.rows[e];t&&(m(e),h(t.length-1))}else h(f-1);break;case"right":{const e=u.rows[p];if(!e)return;if(f===e.length-1){const e=p+1;u.rows[e]&&(m(e),h(0))}else h(f+1);break}case"up":{const e=u.rows[p-1];e&&(m(p-1),e[f]||h(e.length-1));break}case"down":{const e=u.rows[p+1];e&&(m(p+1),e[f]||h(e.length-1));break}}else v("keyboard")},[u,g,f,p]),D=n.useCallback(()=>{i.current&&s(()=>{c(()=>{if(!i.current)return;const t=function(e,t){if(!t)return e;const n=t.toLowerCase().trim();return e.filter(e=>e.name.toLowerCase().includes(n)||e.tags?.some(e=>e.toLowerCase().includes(n)))}(i.current.emojis,a.current);return function(e,t,n){let r=0;const o=[],i=e.map((e,t)=>({...e,index:t})),a=[],s=[],u=[],c=t.map(e=>({...e,emojis:i.filter(t=>t.category===e.key)})).filter(e=>e.emojis.length>0);for(const e of c){const t=Q(e.emojis,n),i=r+t.length;o.push(...t),u.push(e.name),a.push(t.length),s.push(qw(r,i-1)),r=i}return{count:e.length,rows:o,categories:u,categoriesRowCounts:a,categoriesRowIndices:s}}(t,i.current.categories,e)}),b()})},[e,b]),E=n.useCallback(e=>{a.current=e,D()},[D]),x=n.useCallback(async e=>{try{i.current=await Qw(e),D()}catch(e){d(e)}},[D]);return n.useEffect(()=>{let e;const n=setTimeout(()=>{e=Fw(()=>{x(t)})},100);return()=>{clearTimeout(n),Rw(e)}},[t]),n.useEffect(()=>{"none"===g&&b()},[g]),bn.jsx(Nw.Provider,{value:{data:u,error:l,isLoading:!u&&!l,columns:e,onSearch:E,onEmojiSelect:r,selectCurrentEmoji:y,selectedRowIndex:p,selectedColumnIndex:f,moveSelection:C,setPointerSelection:w,interaction:g,setInteraction:v},children:o})}const tC=n.forwardRef(({asChild:e,value:t,defaultValue:r,onChange:o,...i},a)=>{const s=e?ro:"input",{onSearch:u,selectCurrentEmoji:c,moveSelection:l,interaction:d,setInteraction:f}=Pw(),h=n.useCallback(e=>{if(o?.(e),e.isDefaultPrevented())return;const t=e.target.value;f(t?"keyboard":"none"),u(t)},[o,u,f]),p=n.useCallback(e=>{e.isDefaultPrevented()||(Ah(e,"ArrowLeft")?l("left",e):Ah(e,"ArrowRight")?l("right",e):Ah(e,"ArrowUp")?l("up",e):Ah(e,"ArrowDown")?l("down",e):Ah(e,"Enter")&&"none"!==d&&(e.preventDefault(),c()))},[d,l,c]);return n.useEffect(()=>{u(t?String(t):r?String(r):"")},[]),bn.jsx(s,{type:"search",value:t,defaultValue:r,onChange:h,onKeyDown:p,...i,ref:a})}),nC={CategoryHeader:({category:e,...t})=>bn.jsx("div",{...t,children:e}),Row:({children:e,attributes:t,...n})=>bn.jsx("div",{...n,children:e}),Emoji:({emoji:e,...t})=>bn.jsx("button",{...t,children:bn.jsx(xo,{emoji:e})}),Loading:e=>bn.jsx("div",{...e}),Empty:e=>bn.jsx("div",{...e}),Grid:e=>bn.jsx("div",{...e}),Error:({error:e,...t})=>bn.jsx("div",{...t})},rC={rowIndex:-1,categoryRowIndex:-1,categoryRowsCount:0},oC=n.forwardRef(({children:e,...t},n)=>bn.jsx("div",{...t,tabIndex:-1,"data-testid":void 0,ref:n,children:e})),iC=n.forwardRef(({children:e,...t},n)=>bn.jsx("div",{...t,"data-testid":void 0,ref:n,children:e})),aC=n.forwardRef(({components:e,asChild:t,...r},o)=>{const i=t?ro:"div",a=n.useRef(null),s=n.useRef(null),u=n.useRef(0),c=n.useRef(0),l=n.useRef(0),{data:d,error:f,isLoading:h,columns:p,onEmojiSelect:m,selectedColumnIndex:g,selectedRowIndex:v,setPointerSelection:y,interaction:b,setInteraction:w}=Pw(),C=n.useMemo(()=>d?.rows[v]?.[g],[d?.rows,g,v]),{Loading:D,Empty:E,Error:x,CategoryHeader:A,Grid:I,Row:S,Emoji:O}=n.useMemo(()=>({...nC,...e}),[e]),T=n.useMemo(()=>n.forwardRef(({children:e,...t},n)=>bn.jsx("div",{role:"grid","aria-colcount":p,...t,"data-testid":void 0,ref:n,children:e})),[p]),B=n.useMemo(()=>Array(p).fill("🌫️"),[p]),k=n.useCallback(e=>{e.preventDefault()},[]),_=n.useCallback(()=>{"pointer"===b&&w("none")},[b,w]);n.useLayoutEffect(()=>{if(!s.current)return;const e=s.current.childNodes[0],t=s.current.childNodes[1];if(e instanceof HTMLElement){const t=window.getComputedStyle(e);u.current=parseFloat(t.scrollMarginTop),c.current=parseFloat(t.scrollMarginBottom)}t instanceof HTMLElement&&(l.current=t.offsetHeight)},[]);const F=n.useCallback(({itemTop:e,itemBottom:t,viewportTop:n,viewportBottom:r,locationParams:{behavior:o,align:i,...a}})=>e-(l.current+u.current)<n?{...a,behavior:o,align:i??"start"}:t>r?{...a,behavior:o,align:i??"end",offset:c.current}:null,[]);return n.useEffect(()=>{"keyboard"===b&&a.current?.scrollIntoView({index:v,behavior:"auto",calculateViewLocation:F})},[b,v,F]),bn.jsxs(i,{...r,ref:o,children:[bn.jsxs("div",{style:{visibility:"hidden",height:0},ref:s,children:[bn.jsx(S,{attributes:rC,children:B.map((e,t)=>bn.jsx(O,{emoji:e},t))}),bn.jsx(A,{category:"Category"})]}),h?bn.jsx(D,{}):f?bn.jsx(x,{error:f}):0===d.count?bn.jsx(E,{}):bn.jsx(I,{children:bn.jsx(rw,{ref:a,components:{Scroller:oC,List:T,TopItemList:iC},groupCounts:d.categoriesRowCounts,groupContent:e=>{const t=d.categories[e];return t?bn.jsx(A,{category:t}):null},itemContent:(e,t)=>{const n=d.rows[e],r=d.categoriesRowIndices[t]?.indexOf(e),o=d.categoriesRowCounts[t];return void 0===n||void 0===r||void 0===o?null:bn.jsx(S,{attributes:{rowIndex:e,categoryRowIndex:r,categoryRowsCount:o},children:n.map((t,n)=>{const r="none"!==b&&g===n&&v===e;return bn.jsx(O,{role:"gridcell","aria-colindex":n,"aria-selected":r||void 0,"data-selected":r||void 0,onMouseDown:k,tabIndex:-1,onPointerEnter:()=>{y(n,e)},onPointerLeave:_,onClick:e=>{m?.(t.emoji),e.stopPropagation()},emoji:t.emoji},t.emoji)})})}})}),C&&"none"!==b&&bn.jsx("div",{"aria-live":"polite",style:jw,children:C.name})]})}),sC=["B","KB","MB","GB"];function uC(e,t){if(0===e)return`0 ${sC[1]}`;let n;n=0===e?1:Math.max(1,Math.min(Math.floor(Math.log(Math.abs(e))/Math.log(1e3)),sC.length-1));let r=e/1e3**n,o=1;1===n&&(r>=10&&(o=0),r<.1&&r>0&&(o=2),r<.01&&(r=.01));const i=sC[n];return`${Og(t,{minimumFractionDigits:0,maximumFractionDigits:o}).format(r)} ${i}`}function cC(e,t=[]){let n=[];const r=()=>{const t=n.map(e=>c.createContext(e));return function(n){const r=n?.[e]||t;return c.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return r.scopeName=e,[function(t,r){const o=c.createContext(r),i=n.length;n=[...n,r];const a=t=>{const{scope:n,children:r,...a}=t,s=n?.[e]?.[i]||o,u=c.useMemo(()=>a,Object.values(a));return bn.jsx(s.Provider,{value:u,children:r})};return a.displayName=t+"Provider",[a,function(n,a){const s=a?.[e]?.[i]||o,u=c.useContext(s);if(u)return u;if(void 0!==r)return r;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},lC(r,...t)]}function lC(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){const r=n.reduce((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]}),{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}function dC(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e}),c.useMemo(()=>(...e)=>t.current?.(...e),[])}var fC,hC="dismissableLayer.update",pC="dismissableLayer.pointerDownOutside",mC="dismissableLayer.focusOutside",gC=c.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),vC=c.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:a,onDismiss:s,...u}=e,l=c.useContext(gC),[d,f]=c.useState(null),h=d?.ownerDocument??globalThis?.document,[,p]=c.useState({}),m=to(t,e=>f(e)),g=Array.from(l.layers),[v]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),y=g.indexOf(v),b=d?g.indexOf(d):-1,w=l.layersWithOutsidePointerEventsDisabled.size>0,C=b>=y,D=function(e,t=globalThis?.document){const n=dC(e),r=c.useRef(!1),o=c.useRef(()=>{});return c.useEffect(()=>{const e=e=>{if(e.target&&!r.current){let r=function(){wC(pC,n,i,{discrete:!0})};const i={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",o.current),o.current=r,t.addEventListener("click",o.current,{once:!0})):r()}else t.removeEventListener("click",o.current);r.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",e),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}(e=>{const t=e.target,n=[...l.branches].some(e=>e.contains(t));C&&!n&&(o?.(e),a?.(e),e.defaultPrevented||s?.())},h),E=function(e,t=globalThis?.document){const n=dC(e),r=c.useRef(!1);return c.useEffect(()=>{const e=e=>{if(e.target&&!r.current){wC(mC,n,{originalEvent:e},{discrete:!1})}};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}(e=>{const t=e.target;[...l.branches].some(e=>e.contains(t))||(i?.(e),a?.(e),e.defaultPrevented||s?.())},h);return function(e,t=globalThis?.document){const n=dC(e);c.useEffect(()=>{const e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[n,t])}(e=>{b===l.layers.size-1&&(r?.(e),!e.defaultPrevented&&s&&(e.preventDefault(),s()))},h),c.useEffect(()=>{if(d)return n&&(0===l.layersWithOutsidePointerEventsDisabled.size&&(fC=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(d)),l.layers.add(d),bC(),()=>{n&&1===l.layersWithOutsidePointerEventsDisabled.size&&(h.body.style.pointerEvents=fC)}},[d,h,n,l]),c.useEffect(()=>()=>{d&&(l.layers.delete(d),l.layersWithOutsidePointerEventsDisabled.delete(d),bC())},[d,l]),c.useEffect(()=>{const e=()=>p({});return document.addEventListener(hC,e),()=>document.removeEventListener(hC,e)},[]),bn.jsx(co.div,{...u,ref:m,style:{pointerEvents:w?C?"auto":"none":void 0,...e.style},onFocusCapture:Xr(e.onFocusCapture,E.onFocusCapture),onBlurCapture:Xr(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:Xr(e.onPointerDownCapture,D.onPointerDownCapture)})});vC.displayName="DismissableLayer";var yC=c.forwardRef((e,t)=>{const n=c.useContext(gC),r=c.useRef(null),o=to(t,r);return c.useEffect(()=>{const e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),bn.jsx(co.div,{...e,ref:o})});function bC(){const e=new CustomEvent(hC);document.dispatchEvent(e)}function wC(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?lo(o,i):o.dispatchEvent(i)}yC.displayName="DismissableLayerBranch";var CC=c[" useId ".trim().toString()]||(()=>{}),DC=0;function EC(e){const[t,n]=c.useState(CC());return Zr(()=>{e||n(e=>e??String(DC++))},[e]),e||(t?`radix-${t}`:"")}var xC=c.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...i}=e;return bn.jsx(co.svg,{...i,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:bn.jsx("polygon",{points:"0,0 30,0 15,10"})})});xC.displayName="Arrow";var AC=xC;var IC="Popper",[SC,OC]=cC(IC),[TC,BC]=SC(IC),kC=e=>{const{__scopePopper:t,children:n}=e,[r,o]=c.useState(null);return bn.jsx(TC,{scope:t,anchor:r,onAnchorChange:o,children:n})};kC.displayName=IC;var _C="PopperAnchor",FC=c.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,i=BC(_C,n),a=c.useRef(null),s=to(t,a),u=c.useRef(null);return c.useEffect(()=>{const e=u.current;u.current=r?.current||a.current,e!==u.current&&i.onAnchorChange(u.current)}),r?null:bn.jsx(co.div,{...o,ref:s})});FC.displayName=_C;var RC="PopperContent",[jC,NC]=SC(RC),PC=c.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:i="center",alignOffset:a=0,arrowPadding:s=0,avoidCollisions:u=!0,collisionBoundary:l=[],collisionPadding:d=0,sticky:f="partial",hideWhenDetached:h=!1,updatePositionStrategy:p="optimized",onPlaced:m,...g}=e,v=BC(RC,n),[y,b]=c.useState(null),w=to(t,e=>b(e)),[C,D]=c.useState(null),E=function(e){const[t,n]=c.useState(void 0);return Zr(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const t=new ResizeObserver(t=>{if(!Array.isArray(t))return;if(!t.length)return;const r=t[0];let o,i;if("borderBoxSize"in r){const e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;o=t.inlineSize,i=t.blockSize}else o=e.offsetWidth,i=e.offsetHeight;n({width:o,height:i})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}n(void 0)},[e]),t}(C),x=E?.width??0,A=E?.height??0,I=r+("center"!==i?"-"+i:""),S="number"==typeof d?d:{top:0,right:0,bottom:0,left:0,...d},O=Array.isArray(l)?l:[l],T=O.length>0,B={padding:S,boundary:O.filter(zC),altBoundary:T},{refs:k,floatingStyles:_,placement:F,isPositioned:R,middlewareData:j}=Rm({strategy:"fixed",placement:I,whileElementsMounted:(...e)=>bm(...e,{animationFrame:"always"===p}),elements:{reference:v.anchor},middleware:[Nm({mainAxis:o+A,alignmentAxis:a}),u&&Pm({mainAxis:!0,crossAxis:!1,limiter:"partial"===f?Mm():void 0,...B}),u&&Lm({...B}),Hm({...B,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{const{width:o,height:i}=t.reference,a=e.floating.style;a.setProperty("--radix-popper-available-width",`${n}px`),a.setProperty("--radix-popper-available-height",`${r}px`),a.setProperty("--radix-popper-anchor-width",`${o}px`),a.setProperty("--radix-popper-anchor-height",`${i}px`)}}),C&&Wm({element:C,padding:s}),UC({arrowWidth:x,arrowHeight:A}),h&&zm({strategy:"referenceHidden",...B})]}),[N,P]=WC(F),M=dC(m);Zr(()=>{R&&M?.()},[R,M]);const L=j.arrow?.x,H=j.arrow?.y,z=0!==j.arrow?.centerOffset,[U,W]=c.useState();return Zr(()=>{y&&W(window.getComputedStyle(y).zIndex)},[y]),bn.jsx("div",{ref:k.setFloating,"data-radix-popper-content-wrapper":"",style:{..._,transform:R?_.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:U,"--radix-popper-transform-origin":[j.transformOrigin?.x,j.transformOrigin?.y].join(" "),...j.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:bn.jsx(jC,{scope:n,placedSide:N,onArrowChange:D,arrowX:L,arrowY:H,shouldHideArrow:z,children:bn.jsx(co.div,{"data-side":N,"data-align":P,...g,ref:w,style:{...g.style,animation:R?void 0:"none"}})})})});PC.displayName=RC;var MC="PopperArrow",LC={top:"bottom",right:"left",bottom:"top",left:"right"},HC=c.forwardRef(function(e,t){const{__scopePopper:n,...r}=e,o=NC(MC,n),i=LC[o.placedSide];return bn.jsx("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:bn.jsx(AC,{...r,ref:t,style:{...r.style,display:"block"}})})});function zC(e){return null!==e}HC.displayName=MC;var UC=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:o}=t,i=0!==o.arrow?.centerOffset,a=i?0:e.arrowWidth,s=i?0:e.arrowHeight,[u,c]=WC(n),l={start:"0%",center:"50%",end:"100%"}[c],d=(o.arrow?.x??0)+a/2,f=(o.arrow?.y??0)+s/2;let h="",p="";return"bottom"===u?(h=i?l:`${d}px`,p=-s+"px"):"top"===u?(h=i?l:`${d}px`,p=`${r.floating.height+s}px`):"right"===u?(h=-s+"px",p=i?l:`${f}px`):"left"===u&&(h=`${r.floating.width+s}px`,p=i?l:`${f}px`),{data:{x:h,y:p}}}});function WC(e){const[t,n="center"]=e.split("-");return[t,n]}var VC=kC,$C=FC,qC=PC,KC=HC,GC=c.forwardRef((e,t)=>{const{container:n,...r}=e,[o,i]=c.useState(!1);Zr(()=>i(!0),[]);const a=n||o&&globalThis?.document?.body;return a?d.default.createPortal(bn.jsx(co.div,{...r,ref:t}),a):null});GC.displayName="Portal";var XC=e=>{const{present:t,children:n}=e,r=function(e){const[t,n]=c.useState(),r=c.useRef(null),o=c.useRef(e),i=c.useRef("none"),a=e?"mounted":"unmounted",[s,u]=function(e,t){return c.useReducer((e,n)=>t[e][n]??e,e)}(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return c.useEffect(()=>{const e=ZC(r.current);i.current="mounted"===s?e:"none"},[s]),Zr(()=>{const t=r.current,n=o.current;if(n!==e){const r=i.current,a=ZC(t);if(e)u("MOUNT");else if("none"===a||"none"===t?.display)u("UNMOUNT");else{u(n&&r!==a?"ANIMATION_OUT":"UNMOUNT")}o.current=e}},[e,u]),Zr(()=>{if(t){let e;const n=t.ownerDocument.defaultView??window,a=i=>{const a=ZC(r.current).includes(CSS.escape(i.animationName));if(i.target===t&&a&&(u("ANIMATION_END"),!o.current)){const r=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout(()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=r)})}},s=e=>{e.target===t&&(i.current=ZC(r.current))};return t.addEventListener("animationstart",s),t.addEventListener("animationcancel",a),t.addEventListener("animationend",a),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",s),t.removeEventListener("animationcancel",a),t.removeEventListener("animationend",a)}}u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:c.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}(t),o="function"==typeof n?n({present:r.isPresent}):c.Children.only(n),i=to(r.ref,function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;if(n)return e.ref;if(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(o));return"function"==typeof n||r.isPresent?c.cloneElement(o,{ref:i}):null};function ZC(e){return e?.animationName||"none"}XC.displayName="Presence";var YC=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),JC=c.forwardRef((e,t)=>bn.jsx(co.span,{...e,ref:t,style:{...YC,...e.style}}));JC.displayName="VisuallyHidden";var QC=JC,[eD,tD]=cC("Tooltip",[OC]),nD=OC(),rD="TooltipProvider",oD=700,iD="tooltip.open",[aD,sD]=eD(rD),uD=e=>{const{__scopeTooltip:t,delayDuration:n=oD,skipDelayDuration:r=300,disableHoverableContent:o=!1,children:i}=e,a=c.useRef(!0),s=c.useRef(!1),u=c.useRef(0);return c.useEffect(()=>{const e=u.current;return()=>window.clearTimeout(e)},[]),bn.jsx(aD,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:c.useCallback(()=>{window.clearTimeout(u.current),a.current=!1},[]),onClose:c.useCallback(()=>{window.clearTimeout(u.current),u.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:c.useCallback(e=>{s.current=e},[]),disableHoverableContent:o,children:i})};uD.displayName=rD;var cD="Tooltip",[lD,dD]=eD(cD),fD=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:o,onOpenChange:i,disableHoverableContent:a,delayDuration:s}=e,u=sD(cD,e.__scopeTooltip),l=nD(t),[d,f]=c.useState(null),h=EC(),p=c.useRef(0),m=a??u.disableHoverableContent,g=s??u.delayDuration,v=c.useRef(!1),[y,b]=Jr({prop:r,defaultProp:o??!1,onChange:e=>{e?(u.onOpen(),document.dispatchEvent(new CustomEvent(iD))):u.onClose(),i?.(e)},caller:cD}),w=c.useMemo(()=>y?v.current?"delayed-open":"instant-open":"closed",[y]),C=c.useCallback(()=>{window.clearTimeout(p.current),p.current=0,v.current=!1,b(!0)},[b]),D=c.useCallback(()=>{window.clearTimeout(p.current),p.current=0,b(!1)},[b]),E=c.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{v.current=!0,b(!0),p.current=0},g)},[g,b]);return c.useEffect(()=>()=>{p.current&&(window.clearTimeout(p.current),p.current=0)},[]),bn.jsx(VC,{...l,children:bn.jsx(lD,{scope:t,contentId:h,open:y,stateAttribute:w,trigger:d,onTriggerChange:f,onTriggerEnter:c.useCallback(()=>{u.isOpenDelayedRef.current?E():C()},[u.isOpenDelayedRef,E,C]),onTriggerLeave:c.useCallback(()=>{m?D():(window.clearTimeout(p.current),p.current=0)},[D,m]),onOpen:C,onClose:D,disableHoverableContent:m,children:n})})};fD.displayName=cD;var hD="TooltipTrigger",pD=c.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=dD(hD,n),i=sD(hD,n),a=nD(n),s=to(t,c.useRef(null),o.onTriggerChange),u=c.useRef(!1),l=c.useRef(!1),d=c.useCallback(()=>u.current=!1,[]);return c.useEffect(()=>()=>document.removeEventListener("pointerup",d),[d]),bn.jsx($C,{asChild:!0,...a,children:bn.jsx(co.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...r,ref:s,onPointerMove:Xr(e.onPointerMove,e=>{"touch"!==e.pointerType&&(l.current||i.isPointerInTransitRef.current||(o.onTriggerEnter(),l.current=!0))}),onPointerLeave:Xr(e.onPointerLeave,()=>{o.onTriggerLeave(),l.current=!1}),onPointerDown:Xr(e.onPointerDown,()=>{o.open&&o.onClose(),u.current=!0,document.addEventListener("pointerup",d,{once:!0})}),onFocus:Xr(e.onFocus,()=>{u.current||o.onOpen()}),onBlur:Xr(e.onBlur,o.onClose),onClick:Xr(e.onClick,o.onClose)})})});pD.displayName=hD;var mD="TooltipPortal",[gD,vD]=eD(mD,{forceMount:void 0}),yD=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:o}=e,i=dD(mD,t);return bn.jsx(gD,{scope:t,forceMount:n,children:bn.jsx(XC,{present:n||i.open,children:bn.jsx(GC,{asChild:!0,container:o,children:r})})})};yD.displayName=mD;var bD="TooltipContent",wD=c.forwardRef((e,t)=>{const n=vD(bD,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...i}=e,a=dD(bD,e.__scopeTooltip);return bn.jsx(XC,{present:r||a.open,children:a.disableHoverableContent?bn.jsx(AD,{side:o,...i,ref:t}):bn.jsx(CD,{side:o,...i,ref:t})})}),CD=c.forwardRef((e,t)=>{const n=dD(bD,e.__scopeTooltip),r=sD(bD,e.__scopeTooltip),o=c.useRef(null),i=to(t,o),[a,s]=c.useState(null),{trigger:u,onClose:l}=n,d=o.current,{onPointerInTransitChange:f}=r,h=c.useCallback(()=>{s(null),f(!1)},[f]),p=c.useCallback((e,t)=>{const n=e.currentTarget,r={x:e.clientX,y:e.clientY},o=function(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(n,r,o,i)){case i:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}(r,n.getBoundingClientRect()),i=function(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}(r,o),a=function(e){const t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0),function(e){if(e.length<=1)return e.slice();const t=[];for(let n=0;n<e.length;n++){const r=e[n];for(;t.length>=2;){const e=t[t.length-1],n=t[t.length-2];if(!((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x)))break;t.pop()}t.push(r)}t.pop();const n=[];for(let t=e.length-1;t>=0;t--){const r=e[t];for(;n.length>=2;){const e=n[n.length-1],t=n[n.length-2];if(!((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x)))break;n.pop()}n.push(r)}return n.pop(),1===t.length&&1===n.length&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}(t)}([...i,...function(e){const{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}(t.getBoundingClientRect())]);s(a),f(!0)},[f]);return c.useEffect(()=>()=>h(),[h]),c.useEffect(()=>{if(u&&d){const e=e=>p(e,d),t=e=>p(e,u);return u.addEventListener("pointerleave",e),d.addEventListener("pointerleave",t),()=>{u.removeEventListener("pointerleave",e),d.removeEventListener("pointerleave",t)}}},[u,d,p,h]),c.useEffect(()=>{if(a){const e=e=>{const t=e.target,n={x:e.clientX,y:e.clientY},r=u?.contains(t)||d?.contains(t),o=!function(e,t){const{x:n,y:r}=e;let o=!1;for(let e=0,i=t.length-1;e<t.length;i=e++){const a=t[e],s=t[i],u=a.x,c=a.y,l=s.x,d=s.y;c>r!=d>r&&n<(l-u)*(r-c)/(d-c)+u&&(o=!o)}return o}(n,a);r?h():o&&(h(),l())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[u,d,a,l,h]),bn.jsx(AD,{...e,ref:i})}),[DD,ED]=eD(cD,{isInside:!1}),xD=ao("TooltipContent"),AD=c.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":o,onEscapeKeyDown:i,onPointerDownOutside:a,...s}=e,u=dD(bD,n),l=nD(n),{onClose:d}=u;return c.useEffect(()=>(document.addEventListener(iD,d),()=>document.removeEventListener(iD,d)),[d]),c.useEffect(()=>{if(u.trigger){const e=e=>{const t=e.target;t?.contains(u.trigger)&&d()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[u.trigger,d]),bn.jsx(vC,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:bn.jsxs(qC,{"data-state":u.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[bn.jsx(xD,{children:r}),bn.jsx(DD,{scope:n,isInside:!0,children:bn.jsx(QC,{id:u.contentId,role:"tooltip",children:o||r})})]})})});wD.displayName=bD;var ID="TooltipArrow";c.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=nD(n);return ED(ID,n).isInside?null:bn.jsx(KC,{...o,...r,ref:t})}).displayName=ID;var SD=fD,OD=pD,TD=yD,BD=wD;const kD={alt:()=>({title:"Alt",key:"⌥"}),mod:()=>Eh()?{title:"Command",key:"⌘"}:{title:"Ctrl",key:"⌃"},shift:()=>({title:"Shift",key:"⇧"}),enter:()=>({title:"Enter",key:"⏎"})},_D=n.forwardRef(({children:e,content:t,multiline:n,className:r,...o},i)=>{const{portalContainer:a}=mf();return bn.jsxs(SD,{disableHoverableContent:!0,children:[bn.jsx(OD,{asChild:!0,ref:i,children:e}),bn.jsx(TD,{container:a,children:bn.jsx(BD,{className:mo("lb-root lb-portal lb-tooltip",n&&"lb-tooltip:multiline",r),side:"top",align:"center",sideOffset:6,collisionPadding:10,...o,children:t})})]})}),FD=n.forwardRef(({children:e,content:t,shortcut:n,...r},o)=>bn.jsx(_D,{content:bn.jsxs(bn.Fragment,{children:[t,n&&bn.jsx("kbd",{className:"lb-tooltip-shortcut",children:n})]}),...r,ref:o,children:e}));function RD({name:e,...t}){const{title:r,key:o}=n.useMemo(()=>kD[e]?.(),[e]);return bn.jsx("abbr",{title:r,...t,children:o})}const jD=62914560,ND=/^(.+?)(\.[^.]+)?$/;const PD=n.memo(({mimeType:e})=>{const t=n.useMemo(()=>function(e){return"application/zip"===e||"application/gzip"===e||"application/vnd.rar"===e||"application/x-rar-compressed"===e||"application/x-7z-compressed"===e||"application/x-zip-compressed"===e||"application/x-tar"===e||"application/x-bzip"===e||"application/x-bzip2"===e?bn.jsx("path",{d:"M13 15h2v1h-1.5a.5.5 0 0 0 0 1H15v1h-1.5a.5.5 0 0 0 0 1H15v1h-1.5a.5.5 0 0 0 0 1h1a.5.5 0 0 0 .5-.5V20h1.5a.5.5 0 0 0 0-1H15v-1h1.5a.5.5 0 0 0 0-1H15v-1h1.5a.5.5 0 0 0 .5-.5V15a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2Z"}):e.startsWith("text/")||e.startsWith("font/")||e.startsWith("application/")?bn.jsx("path",{d:"M10 16a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h8a.5.5 0 0 1 0 1h-8a.5.5 0 0 1-.5-.5Z"}):e.startsWith("image/")?bn.jsx("path",{d:"M12 16h6a1 1 0 0 1 1 1v3l-1.293-1.293a1 1 0 0 0-1.414 0L14.09 20.91l-.464-.386a1 1 0 0 0-1.265-.013l-1.231.985A.995.995 0 0 1 11 21v-4a1 1 0 0 1 1-1Zm-2 1a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2v-4Zm3 2a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"}):e.startsWith("video/")?bn.jsx("path",{d:"M12 15.71a1 1 0 0 1 1.49-.872l4.96 2.79a1 1 0 0 1 0 1.744l-4.96 2.79A1 1 0 0 1 12 21.29v-5.58Z"}):e.startsWith("audio/")?bn.jsx("path",{d:"M15 15a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 1 0v-7a.5.5 0 0 0-.5-.5Zm-2.5 2.5a.5.5 0 0 1 1 0v3a.5.5 0 0 1-1 0v-3Zm-2 1a.5.5 0 0 1 1 0v1a.5.5 0 0 1-1 0v-1Zm6-1a.5.5 0 0 1 1 0v3a.5.5 0 0 1-1 0v-3ZM19 16a.5.5 0 0 0-.5.5v5a.5.5 0 0 0 1 0v-5a.5.5 0 0 0-.5-.5Z"}):null}(e),[e]);return bn.jsxs("svg",{className:"lb-attachment-icon",width:30,height:30,viewBox:"0 0 30 30",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",xmlns:"http://www.w3.org/2000/svg",children:[bn.jsx("path",{d:"M6 5a2 2 0 0 1 2-2h5.843a4 4 0 0 1 2.829 1.172l6.156 6.156A4 4 0 0 1 24 13.157V25a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V5Z",className:"lb-attachment-icon-shadow"}),bn.jsx("path",{d:"M6 5a2 2 0 0 1 2-2h5.843a4 4 0 0 1 2.829 1.172l6.156 6.156A4 4 0 0 1 24 13.157V25a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V5Z",className:"lb-attachment-icon-background"}),bn.jsx("path",{d:"M14.382 3.037a4 4 0 0 1 2.29 1.135l6.156 6.157a4 4 0 0 1 1.136 2.289A2 2 0 0 0 22 11h-4a2 2 0 0 1-2-2V5a2 2 0 0 0-1.618-1.963Z",className:"lb-attachment-icon-fold"}),t&&bn.jsx("g",{className:"lb-attachment-icon-glyph",children:t})]})});function MD({attachment:e,markPreviewAsUnsupported:t,roomId:r}){const{url:o}=$r(e.id,r),[i,a]=n.useState(!1),s=n.useCallback(()=>{a(!0)},[]);return bn.jsxs(bn.Fragment,{children:[i?null:bn.jsx(Zg,{}),o?bn.jsx("div",{className:"lb-attachment-preview-media","data-hidden":i?void 0:"",children:bn.jsx("img",{src:o,loading:"lazy",onLoad:s,onError:t})}):null]})}function LD({attachment:e,markPreviewAsUnsupported:t,roomId:r}){const{url:o}=$r(e.id,r),[i,a]=n.useState(!1),s=n.useCallback(()=>{a(!0)},[]);return bn.jsxs(bn.Fragment,{children:[i?null:bn.jsx(Zg,{}),o?bn.jsx("div",{className:"lb-attachment-preview-media","data-hidden":i?void 0:"",children:bn.jsx("video",{src:o,onLoadedData:s,onError:t})}):null]})}function HD({attachment:e,allowMediaPreview:t=!0,roomId:r}){const[o,i]=n.useState(!1),a="attachment"===e.type||"uploaded"===e.status;function s(){i(!0)}if(!o&&t&&a&&e.size<=jD){if(e.mimeType.startsWith("image/"))return bn.jsx(MD,{attachment:e,markPreviewAsUnsupported:s,roomId:r});if(e.mimeType.startsWith("video/"))return bn.jsx(LD,{attachment:e,markPreviewAsUnsupported:s,roomId:r})}return bn.jsx(PD,{mimeType:e.mimeType})}function zD({attachment:e}){const{base:t,extension:r}=n.useMemo(()=>function(e){const t=e.match(ND);return{base:t?.[1]??e,extension:t?.[2]}}(e.name),[e.name]);return bn.jsxs("span",{className:"lb-attachment-name",title:e.name,children:[bn.jsx("span",{className:"lb-attachment-name-base",children:t}),r&&bn.jsx("span",{className:"lb-attachment-name-extension",children:r})]})}function UD(e){return n.useCallback(t=>{if(e?.(t),!t.isDefaultPrevented()&&("Enter"===t.key||" "===t.key)){t.preventDefault();const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});t.target.dispatchEvent(e)}},[e])}function WD(e,t){const n=To(t),r=qh(),o=Boolean(r),i=r?.maxAttachmentSize,a="localAttachment"===e.type?e.status:void 0,s="uploading"===a,u="error"===a;let c;c="localAttachment"===e.type&&"error"===e.status?e.error instanceof Qm?"server"===e.error.origin?n.ATTACHMENT_TOO_LARGE():n.ATTACHMENT_TOO_LARGE(i?uC(i,n.locale):void 0):n.ATTACHMENT_ERROR(e.error):uC(e.size,n.locale);return{isUploading:s,isError:u,description:c,deleteLabel:o?n.COMPOSER_REMOVE_ATTACHMENT:n.COMMENT_DELETE_ATTACHMENT}}function VD({attachment:e,overrides:t,onClick:r,onDeleteClick:o,preventFocusOnDelete:i,allowMediaPreview:a=!0,roomId:s,className:u,onKeyDown:c,...l}){const{isUploading:d,isError:f,description:h,deleteLabel:p}=WD(e,t),m=n.useCallback(e=>{i&&e.preventDefault()},[i]),g=UD(c);return bn.jsxs("div",{className:mo("lb-attachment lb-media-attachment",u),"data-error":f?"":void 0,...l,role:r?"button":void 0,onClick:r,tabIndex:r?0:-1,onKeyDown:r?g:void 0,children:[bn.jsx("div",{className:"lb-attachment-preview",children:d?bn.jsx(Zg,{}):f?bn.jsx(Yg,{}):bn.jsx(HD,{attachment:e,allowMediaPreview:a,roomId:s})}),bn.jsxs("div",{className:"lb-attachment-details",children:[bn.jsx(zD,{attachment:e}),bn.jsx("span",{className:"lb-attachment-description",title:h,children:h})]}),o&&bn.jsx(_D,{content:p,children:bn.jsx("button",{type:"button",className:"lb-attachment-delete",onClick:o,onPointerDown:m,"aria-label":p,children:bn.jsx(yo,{})})})]})}function $D({attachment:e,overrides:t,onClick:r,onDeleteClick:o,preventFocusOnDelete:i,allowMediaPreview:a=!0,roomId:s,className:u,onKeyDown:c,...l}){const{isUploading:d,isError:f,description:h,deleteLabel:p}=WD(e,t),m=n.useCallback(e=>{i&&e.preventDefault()},[i]),g=UD(c);return bn.jsxs("div",{className:mo("lb-attachment lb-file-attachment",u),"data-error":f?"":void 0,...l,role:r?"button":void 0,onClick:r,tabIndex:r?0:-1,onKeyDown:r?g:void 0,children:[bn.jsx("div",{className:"lb-attachment-preview",children:d?bn.jsx(Zg,{}):f?bn.jsx(Yg,{}):bn.jsx(HD,{attachment:e,allowMediaPreview:a,roomId:s})}),bn.jsxs("div",{className:"lb-attachment-details",children:[bn.jsx(zD,{attachment:e}),bn.jsx("span",{className:"lb-attachment-description",title:h,children:h})]}),o&&bn.jsx(_D,{content:p,children:bn.jsx("button",{type:"button",className:"lb-attachment-delete",onClick:o,onPointerDown:m,"aria-label":p,children:bn.jsx(yo,{})})})]})}function qD({className:e,...t}){return bn.jsx("a",{href:"https://liveblocks.io",target:"_blank",rel:"noopener noreferrer",className:mo("lb-composer-attribution",e),...t,children:bn.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 72","aria-label":"Made with Liveblocks",children:bn.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M86 10h-8v50h8V10Zm16 14h-8v36h8V24Zm0-15h-8v9h8V9Zm13 15h-9l12 36h10l13-36h-9l-9 28-8-28Zm44-1c-11 0-18 8-18 19s7 19 18 19c8 0 15-4 17-13h-8c-1 4-5 6-9 6-6 0-9-3-9-10h27c0-10-6-21-18-21Zm0 7c5 0 9 3 9 8h-18c0-5 4-8 9-8Zm42-7c-4 0-8 2-11 6V10h-8v50h8v-5c3 4 7 6 11 6 11 0 16-9 16-19s-5-19-16-19Zm-2 32c-7 0-9-7-9-13s2-13 9-13 9 7 9 13-2 13-9 13Zm32-45h-8v50h8V10Zm24 51c11 0 18-8 18-19s-8-19-18-19c-11 0-19 8-19 19s7 19 19 19Zm0-6c-8 0-10-7-10-13s2-13 10-13c7 0 9 7 9 13s-2 13-9 13Zm39 6c8 0 15-4 17-12l-8-1c-2 4-4 6-9 6-7 0-9-6-9-12s2-12 9-12c5 0 8 3 8 7l9-1c-2-8-9-13-17-13-11 0-18 9-18 19 0 11 7 19 18 19Zm30-14 4-4 10 17h10l-15-23 15-13h-11l-13 13V10h-9v50h9V47Zm39 14c8 0 16-3 16-12 0-8-8-10-15-11-2-1-7-1-7-5 0-3 3-4 6-4 4 0 7 3 7 7l8-1c-1-9-8-12-15-12s-15 3-15 11 9 10 15 11c3 1 8 2 8 5 0 4-4 5-7 5-5 0-8-3-9-7l-8 1c1 8 9 12 16 12ZM41 27H0l12 12v17l29-29ZM20 60h40L48 48V32L20 60Z",fill:"currentColor"})})})}function KD(e){return e.trim().split(" ").reduce((e,t,n,r)=>(0!==n&&n!==r.length-1||(e+=t.charAt(0).toLocaleUpperCase()),e),"")}function GD({userId:e,className:t,...r}){const{user:o,isLoading:i}=wr(e),a=n.useMemo(()=>o?.name,[o]),s=n.useMemo(()=>o?.avatar,[o]),u=n.useMemo(()=>a?KD(a):void 0,[a]),c=n.useMemo(()=>i||o?void 0:KD(e),[i,o,e]);return bn.jsxs("div",{className:mo("lb-avatar",t),"data-loading":i?"":void 0,...r,children:[s&&bn.jsx("img",{className:"lb-avatar-image",src:s,alt:a}),u?bn.jsx("span",{className:"lb-avatar-fallback","aria-hidden":!0,children:u}):c?bn.jsx("span",{className:"lb-avatar-fallback","aria-label":e,title:e,children:c}):null]})}const XD=n.forwardRef(({variant:e="default",size:t="default",disableable:n=!0,className:r,...o},i)=>bn.jsx("button",{type:"button",className:mo("lb-button",!n&&"lb-button:non-disableable",r),"data-variant":e,"data-size":t,...o,ref:i}));var ZD=0;function YD(){c.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??JD()),document.body.insertAdjacentElement("beforeend",e[1]??JD()),ZD++,()=>{1===ZD&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),ZD--}},[])}function JD(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var QD="focusScope.autoFocusOnMount",eE="focusScope.autoFocusOnUnmount",tE={bubbles:!1,cancelable:!0},nE=c.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...a}=e,[s,u]=c.useState(null),l=dC(o),d=dC(i),f=c.useRef(null),h=to(t,e=>u(e)),p=c.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;c.useEffect(()=>{if(r){let e=function(e){if(p.paused||!s)return;const t=e.target;s.contains(t)?f.current=t:aE(f.current,{select:!0})},t=function(e){if(p.paused||!s)return;const t=e.relatedTarget;null!==t&&(s.contains(t)||aE(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(const t of e)t.removedNodes.length>0&&aE(s)};document.addEventListener("focusin",e),document.addEventListener("focusout",t);const r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}},[r,s,p.paused]),c.useEffect(()=>{if(s){sE.add(p);const t=document.activeElement;if(!s.contains(t)){const n=new CustomEvent(QD,tE);s.addEventListener(QD,l),s.dispatchEvent(n),n.defaultPrevented||(!function(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(aE(r,{select:t}),document.activeElement!==n)return}((e=rE(s),e.filter(e=>"A"!==e.tagName)),{select:!0}),document.activeElement===t&&aE(s))}return()=>{s.removeEventListener(QD,l),setTimeout(()=>{const e=new CustomEvent(eE,tE);s.addEventListener(eE,d),s.dispatchEvent(e),e.defaultPrevented||aE(t??document.body,{select:!0}),s.removeEventListener(eE,d),sE.remove(p)},0)}}var e},[s,l,d,p]);const m=c.useCallback(e=>{if(!n&&!r)return;if(p.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){const t=e.currentTarget,[r,i]=function(e){const t=rE(e),n=oE(t,e),r=oE(t.reverse(),e);return[n,r]}(t);r&&i?e.shiftKey||o!==i?e.shiftKey&&o===r&&(e.preventDefault(),n&&aE(i,{select:!0})):(e.preventDefault(),n&&aE(r,{select:!0})):o===t&&e.preventDefault()}},[n,r,p.paused]);return bn.jsx(co.div,{tabIndex:-1,...a,ref:h,onKeyDown:m})});function rE(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function oE(e,t){for(const n of e)if(!iE(n,{upTo:t}))return n}function iE(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(void 0!==t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function aE(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&function(e){return e instanceof HTMLInputElement&&"select"in e}(e)&&t&&e.select()}}nE.displayName="FocusScope";var sE=function(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=uE(e,t),e.unshift(t)},remove(t){e=uE(e,t),e[0]?.resume()}}}();function uE(e,t){const n=[...e],r=n.indexOf(t);return-1!==r&&n.splice(r,1),n}var cE=new WeakMap,lE=new WeakMap,dE={},fE=0,hE=function(e){return e&&(e.host||hE(e.parentNode))},pE=function(e,t,n,r){var o=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=hE(t);return n&&e.contains(n)?n:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)}).filter(function(e){return Boolean(e)})}(t,Array.isArray(e)?e:[e]);dE[n]||(dE[n]=new WeakMap);var i=dE[n],a=[],s=new Set,u=new Set(o),c=function(e){e&&!s.has(e)&&(s.add(e),c(e.parentNode))};o.forEach(c);var l=function(e){e&&!u.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))l(e);else try{var t=e.getAttribute(r),o=null!==t&&"false"!==t,u=(cE.get(e)||0)+1,c=(i.get(e)||0)+1;cE.set(e,u),i.set(e,c),a.push(e),1===u&&o&&lE.set(e,!0),1===c&&e.setAttribute(n,"true"),o||e.setAttribute(r,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return l(t),s.clear(),fE++,function(){a.forEach(function(e){var t=cE.get(e)-1,o=i.get(e)-1;cE.set(e,t),i.set(e,o),t||(lE.has(e)||e.removeAttribute(r),lE.delete(e)),o||e.removeAttribute(n)}),--fE||(cE=new WeakMap,cE=new WeakMap,lE=new WeakMap,dE={})}},mE=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||function(e){return"undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body}(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),pE(r,o,n,"aria-hidden")):function(){return null}},gE=function(){return gE=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},gE.apply(this,arguments)};function vE(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function yE(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}u((r=r.apply(e,t||[])).next())})}function bE(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(u){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}}function wE(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}"function"==typeof SuppressedError&&SuppressedError;var CE="right-scroll-bar-position",DE="width-before-scroll-bar";function EE(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var xE="undefined"!=typeof window?c.useLayoutEffect:c.useEffect,AE=new WeakMap;function IE(e,t){var r,o,i,a=(r=t||null,o=function(t){return e.forEach(function(e){return EE(e,t)})},i=n.useState(function(){return{value:r,callback:o,facade:{get current(){return i.value},set current(e){var t=i.value;t!==e&&(i.value=e,i.callback(e,t))}}}})[0],i.callback=o,i.facade);return xE(function(){var t=AE.get(a);if(t){var n=new Set(t),r=new Set(e),o=a.current;n.forEach(function(e){r.has(e)||EE(e,null)}),r.forEach(function(e){n.has(e)||EE(e,o)})}AE.set(a,e)},[e]),a}function SE(e){return e}Object.prototype.toString.call("undefined"!=typeof process?process:0);var OE=function(e){var t=e.sideCar,n=vE(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return c.createElement(r,gE({},n))};OE.isSideCarExport=!0;var TE=function(e){void 0===e&&(e={});var t=function(e,t){void 0===t&&(t=SE);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var o=t(e,r);return n.push(o),function(){n=n.filter(function(e){return e!==o})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var o=n;n=[],o.forEach(e),t=n}var i=function(){var n=t;t=[],n.forEach(e)},a=function(){return Promise.resolve().then(i)};a(),n={push:function(e){t.push(e),a()},filter:function(e){return t=t.filter(e),n}}}};return o}(null);return t.options=gE({async:!0,ssr:!1},e),t}(),BE=function(){},kE=c.forwardRef(function(e,t){var n=c.useRef(null),r=c.useState({onScrollCapture:BE,onWheelCapture:BE,onTouchMoveCapture:BE}),o=r[0],i=r[1],a=e.forwardProps,s=e.children,u=e.className,l=e.removeScrollBar,d=e.enabled,f=e.shards,h=e.sideCar,p=e.noRelative,m=e.noIsolation,g=e.inert,v=e.allowPinchZoom,y=e.as,b=void 0===y?"div":y,w=e.gapMode,C=vE(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),D=h,E=IE([n,t]),x=gE(gE({},C),o);return c.createElement(c.Fragment,null,d&&c.createElement(D,{sideCar:TE,removeScrollBar:l,shards:f,noRelative:p,noIsolation:m,inert:g,setCallbacks:i,allowPinchZoom:!!v,lockRef:n,gapMode:w}),a?c.cloneElement(c.Children.only(s),gE(gE({},x),{ref:E})):c.createElement(b,gE({},x,{className:u,ref:E}),s))});kE.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},kE.classNames={fullWidth:DE,zeroRight:CE};function _E(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=function(){if("undefined"!=typeof __webpack_nonce__)return __webpack_nonce__}();return t&&e.setAttribute("nonce",t),e}var FE=function(){var e=0,t=null;return{add:function(n){var r,o;0==e&&(t=_E())&&(o=n,(r=t).styleSheet?r.styleSheet.cssText=o:r.appendChild(document.createTextNode(o)),function(e){(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}(t)),e++},remove:function(){! --e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},RE=function(){var e,t=(e=FE(),function(t,n){c.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])});return function(e){var n=e.styles,r=e.dynamic;return t(n,r),null}},jE={left:0,top:0,right:0,gap:0},NE=function(e){return parseInt(e||"",10)||0},PE=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return jE;var t=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[NE(n),NE(r),NE(o)]}(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},ME=RE(),LE="data-scroll-locked",HE=function(e,t,n,r){var o=e.left,i=e.top,a=e.right,s=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(s,"px ").concat(r,";\n }\n body[").concat(LE,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(i,"px;\n padding-right: ").concat(a,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(s,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(CE," {\n right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat(DE," {\n margin-right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat(CE," .").concat(CE," {\n right: 0 ").concat(r,";\n }\n \n .").concat(DE," .").concat(DE," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(LE,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(s,"px;\n }\n")},zE=function(){var e=parseInt(document.body.getAttribute(LE)||"0",10);return isFinite(e)?e:0},UE=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;c.useEffect(function(){return document.body.setAttribute(LE,(zE()+1).toString()),function(){var e=zE()-1;e<=0?document.body.removeAttribute(LE):document.body.setAttribute(LE,e.toString())}},[]);var i=c.useMemo(function(){return PE(o)},[o]);return c.createElement(ME,{styles:HE(i,!t,o,n?"":"!important")})},WE=!1;if("undefined"!=typeof window)try{var VE=Object.defineProperty({},"passive",{get:function(){return WE=!0,!0}});window.addEventListener("test",VE,VE),window.removeEventListener("test",VE,VE)}catch(e){WE=!1}var $E=!!WE&&{passive:!1},qE=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&!function(e){return"TEXTAREA"===e.tagName}(e)&&"visible"===n[t])},KE=function(e,t){var n=t.ownerDocument,r=t;do{if("undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),GE(e,r)){var o=XE(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},GE=function(e,t){return"v"===e?function(e){return qE(e,"overflowY")}(t):function(e){return qE(e,"overflowX")}(t)},XE=function(e,t){return"v"===e?[(n=t).scrollTop,n.scrollHeight,n.clientHeight]:function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]}(t);var n},ZE=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},YE=function(e){return[e.deltaX,e.deltaY]},JE=function(e){return e&&"current"in e?e.current:e},QE=function(e){return"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")},ex=0,tx=[];function nx(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var rx,ox=(rx=function(e){var t=c.useRef([]),n=c.useRef([0,0]),r=c.useRef(),o=c.useState(ex++)[0],i=c.useState(RE)[0],a=c.useRef(e);c.useEffect(function(){a.current=e},[e]),c.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}([e.lockRef.current],(e.shards||[]).map(JE),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var s=c.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!a.current.allowPinchZoom;var o,i=ZE(e),s=n.current,u="deltaX"in e?e.deltaX:s[0]-i[0],c="deltaY"in e?e.deltaY:s[1]-i[1],l=e.target,d=Math.abs(u)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===d&&"range"===l.type)return!1;var f=KE(d,l);if(!f)return!0;if(f?o=d:(o="v"===d?"h":"v",f=KE(d,l)),!f)return!1;if(!r.current&&"changedTouches"in e&&(u||c)&&(r.current=o),!o)return!0;var h=r.current||o;return function(e,t,n,r,o){var i=function(e,t){return"h"===e&&"rtl"===t?-1:1}(e,window.getComputedStyle(t).direction),a=i*r,s=n.target,u=t.contains(s),c=!1,l=a>0,d=0,f=0;do{if(!s)break;var h=XE(e,s),p=h[0],m=h[1]-h[2]-i*p;(p||m)&&GE(e,s)&&(d+=m,f+=p);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!u&&s!==document.body||u&&(t.contains(s)||t===s));return(l&&(o&&Math.abs(d)<1||!o&&a>d)||!l&&(o&&Math.abs(f)<1||!o&&-a>f))&&(c=!0),c}(h,t,e,"h"===h?u:c,!0)},[]),u=c.useCallback(function(e){var n=e;if(tx.length&&tx[tx.length-1]===i){var r="deltaY"in n?YE(n):ZE(n),o=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&function(e,t){return e[0]===t[0]&&e[1]===t[1]}(e.delta,r)})[0];if(o&&o.should)n.cancelable&&n.preventDefault();else if(!o){var u=(a.current.shards||[]).map(JE).filter(Boolean).filter(function(e){return e.contains(n.target)});(u.length>0?s(n,u[0]):!a.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=c.useCallback(function(e,n,r,o){var i={name:e,delta:n,target:r,should:o,shadowParent:nx(r)};t.current.push(i),setTimeout(function(){t.current=t.current.filter(function(e){return e!==i})},1)},[]),d=c.useCallback(function(e){n.current=ZE(e),r.current=void 0},[]),f=c.useCallback(function(t){l(t.type,YE(t),t.target,s(t,e.lockRef.current))},[]),h=c.useCallback(function(t){l(t.type,ZE(t),t.target,s(t,e.lockRef.current))},[]);c.useEffect(function(){return tx.push(i),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:h}),document.addEventListener("wheel",u,$E),document.addEventListener("touchmove",u,$E),document.addEventListener("touchstart",d,$E),function(){tx=tx.filter(function(e){return e!==i}),document.removeEventListener("wheel",u,$E),document.removeEventListener("touchmove",u,$E),document.removeEventListener("touchstart",d,$E)}},[]);var p=e.removeScrollBar,m=e.inert;return c.createElement(c.Fragment,null,m?c.createElement(i,{styles:QE(o)}):null,p?c.createElement(UE,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},TE.useMedium(rx),OE),ix=c.forwardRef(function(e,t){return c.createElement(kE,gE({},e,{ref:t,sideCar:ox}))});ix.classNames=kE.classNames;var ax="Popover",[sx,ux]=cC(ax,[OC]),cx=OC(),[lx,dx]=sx(ax),fx=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:o,onOpenChange:i,modal:a=!1}=e,s=cx(t),u=c.useRef(null),[l,d]=c.useState(!1),[f,h]=Jr({prop:r,defaultProp:o??!1,onChange:i,caller:ax});return bn.jsx(VC,{...s,children:bn.jsx(lx,{scope:t,contentId:EC(),triggerRef:u,open:f,onOpenChange:h,onOpenToggle:c.useCallback(()=>h(e=>!e),[h]),hasCustomAnchor:l,onCustomAnchorAdd:c.useCallback(()=>d(!0),[]),onCustomAnchorRemove:c.useCallback(()=>d(!1),[]),modal:a,children:n})})};fx.displayName=ax;var hx="PopoverAnchor";c.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,o=dx(hx,n),i=cx(n),{onCustomAnchorAdd:a,onCustomAnchorRemove:s}=o;return c.useEffect(()=>(a(),()=>s()),[a,s]),bn.jsx($C,{...i,...r,ref:t})}).displayName=hx;var px="PopoverTrigger",mx=c.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,o=dx(px,n),i=cx(n),a=to(t,o.triggerRef),s=bn.jsx(co.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":Sx(o.open),...r,ref:a,onClick:Xr(e.onClick,o.onOpenToggle)});return o.hasCustomAnchor?s:bn.jsx($C,{asChild:!0,...i,children:s})});mx.displayName=px;var gx="PopoverPortal",[vx,yx]=sx(gx,{forceMount:void 0}),bx=e=>{const{__scopePopover:t,forceMount:n,children:r,container:o}=e,i=dx(gx,t);return bn.jsx(vx,{scope:t,forceMount:n,children:bn.jsx(XC,{present:n||i.open,children:bn.jsx(GC,{asChild:!0,container:o,children:r})})})};bx.displayName=gx;var wx="PopoverContent",Cx=c.forwardRef((e,t)=>{const n=yx(wx,e.__scopePopover),{forceMount:r=n.forceMount,...o}=e,i=dx(wx,e.__scopePopover);return bn.jsx(XC,{present:r||i.open,children:i.modal?bn.jsx(Ex,{...o,ref:t}):bn.jsx(xx,{...o,ref:t})})});Cx.displayName=wx;var Dx=no("PopoverContent.RemoveScroll"),Ex=c.forwardRef((e,t)=>{const n=dx(wx,e.__scopePopover),r=c.useRef(null),o=to(t,r),i=c.useRef(!1);return c.useEffect(()=>{const e=r.current;if(e)return mE(e)},[]),bn.jsx(ix,{as:Dx,allowPinchZoom:!0,children:bn.jsx(Ax,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xr(e.onCloseAutoFocus,e=>{e.preventDefault(),i.current||n.triggerRef.current?.focus()}),onPointerDownOutside:Xr(e.onPointerDownOutside,e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;i.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:Xr(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),xx=c.forwardRef((e,t)=>{const n=dx(wx,e.__scopePopover),r=c.useRef(!1),o=c.useRef(!1);return bn.jsx(Ax,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));const i=t.target,a=n.triggerRef.current?.contains(i);a&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})}),Ax=c.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:i,disableOutsidePointerEvents:a,onEscapeKeyDown:s,onPointerDownOutside:u,onFocusOutside:c,onInteractOutside:l,...d}=e,f=dx(wx,n),h=cx(n);return YD(),bn.jsx(nE,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:i,children:bn.jsx(vC,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:l,onEscapeKeyDown:s,onPointerDownOutside:u,onFocusOutside:c,onDismiss:()=>f.onOpenChange(!1),children:bn.jsx(qC,{"data-state":Sx(f.open),role:"dialog",id:f.contentId,...h,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),Ix="PopoverClose";c.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,o=dx(Ix,n);return bn.jsx(co.button,{type:"button",...r,ref:t,onClick:Xr(e.onClick,()=>o.onOpenChange(!1))})}).displayName=Ix;function Sx(e){return e?"open":"closed"}c.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,o=cx(n);return bn.jsx(KC,{...o,...r,ref:t})}).displayName="PopoverArrow";var Ox=fx,Tx=mx,Bx=bx,kx=Cx;function _x(e){return bn.jsx(go,{...e,children:bn.jsx("path",{d:"M9 15A6 6 0 1 0 9 3a6 6 0 0 0 0 12Zm7.5 1.5-3.25-3.25"})})}function Fx({className:e,...t}){return bn.jsx("div",{className:mo("lb-loading lb-emoji-picker-loading",e),...t,children:bn.jsx(Zg,{})})}function Rx({className:e,...t}){const n=To();return bn.jsx("div",{className:mo("lb-empty lb-emoji-picker-empty",e),...t,children:n.EMOJI_PICKER_EMPTY})}function jx({error:e,className:t,...n}){const r=To();return bn.jsx("div",{className:mo("lb-error lb-emoji-picker-error",t),...n,children:r.EMOJI_PICKER_ERROR(e)})}function Nx({category:e,className:t,...n}){return bn.jsx("div",{className:mo("lb-emoji-picker-category-header",t),...n,children:bn.jsx("span",{className:"lb-emoji-picker-category-header-title",children:e})})}function Px({children:e,className:t,...n}){return bn.jsx("div",{className:mo("lb-emoji-picker-grid",t),...n,children:e})}function Mx({attributes:e,children:t,className:r,...o}){const i=n.useMemo(()=>0===e.categoryRowIndex,[e.categoryRowIndex]),a=n.useMemo(()=>e.categoryRowIndex===e.categoryRowsCount-1,[e.categoryRowIndex,e.categoryRowsCount]);return bn.jsx("div",{className:mo("lb-emoji-picker-row",r),"data-first":i?"":void 0,"data-last":a?"":void 0,...o,children:t})}function Lx({emoji:e,className:t,...n}){return bn.jsx("button",{className:mo("lb-emoji-picker-emoji",t),...n,children:bn.jsx(Ao,{emoji:e})})}const Hx=n.forwardRef(({onEmojiSelect:e,onOpenChange:t,children:r,className:o,...i},a)=>{const[s,u]=n.useState(!1),{portalContainer:c}=mf(),l=To(),d=n.useCallback(e=>{u(e),t?.(e)},[t]),f=n.useCallback(t=>{u(!1),e?.(t)},[e]);return bn.jsxs(Ox,{open:s,onOpenChange:d,children:[r,bn.jsx(Bx,{container:c,children:bn.jsx(kx,{side:"top",align:"center",sideOffset:6,collisionPadding:10,className:mo("lb-root lb-portal lb-elevation lb-emoji-picker",o),...i,ref:a,children:bn.jsxs(eC,{onEmojiSelect:f,locale:l.locale,children:[bn.jsx("div",{className:"lb-emoji-picker-header",children:bn.jsxs("div",{className:"lb-emoji-picker-search-container",children:[bn.jsx(tC,{className:"lb-emoji-picker-search",placeholder:l.EMOJI_PICKER_SEARCH_PLACEHOLDER,autoFocus:!0}),bn.jsx(_x,{className:"lb-emoji-picker-search-icon"})]})}),bn.jsx(aC,{className:"lb-emoji-picker-content",components:{Loading:Fx,Empty:Rx,Error:jx,CategoryHeader:Nx,Grid:Px,Row:Mx,Emoji:Lx}})]})})})]})});function zx({userId:e,replaceSelf:t,className:r,...o}){const i=Rg(),{user:a,isLoading:s}=wr(e),u=To(),c=n.useMemo(()=>t&&i===e?u.USER_SELF:a?.name??u.USER_UNKNOWN,[t,i,e,u.USER_SELF,u.USER_UNKNOWN,a?.name]);return bn.jsx("span",{className:mo("lb-name lb-user",r),"data-loading":s?"":void 0,...o,children:s?null:c})}function Ux({label:e,tooltipLabel:t,className:r,onClick:o,...i}){const{createMention:a}=Xh(),s=n.useCallback(e=>{e.preventDefault()},[]),u=n.useCallback(e=>{o?.(e),e.isDefaultPrevented()||(e.stopPropagation(),a())},[a,o]);return bn.jsx(_D,{content:t??e,children:bn.jsx(XD,{className:mo("lb-composer-editor-action",r),onPointerDown:s,onClick:u,"aria-label":e,...i,children:bn.jsx(Kg,{className:"lb-button-icon"})})})}function Wx({label:e,tooltipLabel:t,onPickerOpenChange:r,className:o,...i}){const{insertText:a}=Xh(),s=n.useCallback(e=>{e.preventDefault()},[]),u=n.useCallback(e=>{e.stopPropagation()},[]);return bn.jsx(Hx,{onEmojiSelect:a,onOpenChange:r,children:bn.jsx(_D,{content:t??e,children:bn.jsx(mx,{asChild:!0,children:bn.jsx(XD,{className:mo("lb-composer-editor-action",o),onPointerDown:s,onClick:u,"aria-label":e,...i,children:bn.jsx($g,{className:"lb-button-icon"})})})})})}function Vx({label:e,tooltipLabel:t,className:r,...o}){const i=n.useCallback(e=>{e.preventDefault()},[]),a=n.useCallback(e=>{e.stopPropagation()},[]);return bn.jsx(_D,{content:t??e,children:bn.jsx(Cg,{asChild:!0,children:bn.jsx(XD,{className:mo("lb-composer-editor-action",r),onPointerDown:i,onClick:a,"aria-label":e,...o,children:bn.jsx(Ug,{className:"lb-button-icon"})})})})}function $x({mark:e,shortcut:t,children:r,...o}){const i=To(),a=n.useMemo(()=>i.COMPOSER_TOGGLE_MARK(e),[i,e]);return bn.jsx(FD,{content:a,shortcut:t,sideOffset:8,children:bn.jsx(Dg,{mark:e,asChild:!0,...o,children:bn.jsx(XD,{"aria-label":a,variant:"toggle",children:r})})})}const qx={bold:()=>bn.jsx($x,{mark:"bold",shortcut:bn.jsxs(bn.Fragment,{children:[bn.jsx(RD,{name:"mod"}),bn.jsx("span",{children:"B"})]}),children:bn.jsx(Wg,{})}),italic:()=>bn.jsx($x,{mark:"italic",shortcut:bn.jsxs(bn.Fragment,{children:[bn.jsx(RD,{name:"mod"}),bn.jsx("span",{children:"I"})]}),children:bn.jsx(qg,{})}),strikethrough:()=>bn.jsx($x,{mark:"strikethrough",shortcut:bn.jsxs(bn.Fragment,{children:[bn.jsx(RD,{name:"mod"}),bn.jsx(RD,{name:"shift"}),bn.jsx("span",{children:"S"})]}),children:bn.jsx(Xg,{})}),code:()=>bn.jsx($x,{mark:"code",shortcut:bn.jsxs(bn.Fragment,{children:[bn.jsx(RD,{name:"mod"}),bn.jsx("span",{children:"E"})]}),children:bn.jsx(Vg,{})})},Kx=Object.entries(qx).map(([e,t])=>bn.jsx(t,{},e));function Gx(){return bn.jsx(ug,{className:"lb-root lb-portal lb-elevation lb-composer-floating-toolbar",children:Kx})}function Xx({attachment:e,className:t,overrides:r,...o}){const{removeAttachment:i}=Xh(),{roomId:a}=$h(),s=n.useCallback(()=>{i(e.id)},[e.id,i]);return bn.jsx($D,{className:mo("lb-composer-attachment",t),...o,attachment:e,onDeleteClick:s,preventFocusOnDelete:!0,overrides:r,roomId:a})}function Zx({overrides:e,className:t,...n}){const{attachments:r}=Xh();return 0===r.length?null:bn.jsx("div",{className:mo("lb-composer-attachments",t),...n,children:bn.jsx("div",{className:"lb-attachments",children:r.map(t=>bn.jsx(Xx,{attachment:t,overrides:e},t.id))})})}const Yx={Mention:function({userId:e}){return bn.jsxs(fg,{className:"lb-composer-mention",children:[ks,bn.jsx(zx,{userId:e})]})},MentionSuggestions:function({userIds:e}){return e.length>0?bn.jsx(pg,{className:"lb-root lb-portal lb-elevation lb-composer-suggestions lb-composer-mention-suggestions",children:bn.jsx(mg,{className:"lb-composer-suggestions-list lb-composer-mention-suggestions-list",children:e.map(e=>bn.jsxs(gg,{className:"lb-composer-suggestions-list-item lb-composer-mention-suggestion",value:e,children:[bn.jsx(GD,{userId:e,className:"lb-composer-mention-suggestion-avatar"}),bn.jsx(zx,{userId:e,className:"lb-composer-mention-suggestion-user"})]},e))})}):null},Link:function({href:e,children:t}){return bn.jsx(hg,{href:e,className:"lb-composer-link",children:t})}};function Jx({showAttachments:e=!0,showFormattingControls:t=!0,showAttribution:r,defaultValue:o,isCollapsed:i,overrides:a,actions:s,autoFocus:u,disabled:c,hasResolveMentionSuggestions:l,onEmojiPickerOpenChange:d,onEmptyChange:f,onEditorClick:h}){const{isEmpty:p}=Xh(),{hasMaxAttachments:m}=Kh(),g=To(a),v=n.useMemo(()=>({...Yx,FloatingToolbar:t?Gx:void 0}),[t]),[y,b]=Jm({disabled:c||m});n.useLayoutEffect(()=>{f(p)},[p,f]);const w=n.useCallback(e=>{e.preventDefault()},[]),C=n.useCallback(e=>{e.stopPropagation()},[]);return bn.jsxs("div",{className:"lb-composer-editor-container",...b,children:[bn.jsx(yg,{className:"lb-composer-editor",onClick:h,placeholder:g.COMPOSER_PLACEHOLDER,defaultValue:o,autoFocus:u,components:v,disabled:c,dir:g.dir}),e&&bn.jsx(Zx,{overrides:a}),(!i||y)&&bn.jsxs("div",{className:"lb-composer-footer",children:[bn.jsxs("div",{className:"lb-composer-editor-actions",children:[l&&bn.jsx(Ux,{label:g.COMPOSER_INSERT_MENTION,disabled:c}),bn.jsx(Wx,{label:g.COMPOSER_INSERT_EMOJI,onPickerOpenChange:d,disabled:c}),e&&bn.jsx(Vx,{label:g.COMPOSER_ATTACH_FILES,disabled:c})]}),r&&bn.jsx(qD,{}),bn.jsx("div",{className:"lb-composer-actions",children:s??bn.jsx(bn.Fragment,{children:bn.jsx(FD,{content:g.COMPOSER_SEND,shortcut:bn.jsx(RD,{name:"enter"}),children:bn.jsx(wg,{asChild:!0,children:bn.jsx(XD,{onPointerDown:w,onClick:C,className:"lb-composer-action",variant:"primary","aria-label":g.COMPOSER_SEND,children:bn.jsx(Gg,{})})})})})})]}),e&&y&&bn.jsx("div",{className:"lb-composer-attachments-drop-area",children:bn.jsxs("div",{className:"lb-composer-attachments-drop-area-label",children:[bn.jsx(Ug,{}),g.COMPOSER_ATTACH_FILES]})})]})}n.createContext(null);const Qx=n.forwardRef(({threadId:e,commentId:t,metadata:r,defaultValue:o,defaultAttachments:i,onComposerSubmit:a,collapsed:s,defaultCollapsed:u,onCollapsedChange:c,overrides:l,actions:d,onBlur:f,className:h,onFocus:p,autoFocus:m,disabled:g,showAttachments:v=!0,showFormattingControls:y=!0,showAttribution:b,roomId:w,...C},D)=>{const E=Cn(),x=void 0!==w?w:E?.id;if(void 0===x)throw new Error("Composer must be a descendant of RoomProvider component");const A=function(e){const t=lr();return n.useCallback(n=>{const r=n.body,o=n.metadata??{},i=n.attachments,a=ne(),s=re(),u=new Date,c={id:s,threadId:a,roomId:e,createdAt:u,type:"comment",userId:Rr(t),body:r,reactions:[],attachments:i??[]},l={id:a,type:"thread",createdAt:u,updatedAt:u,roomId:e,metadata:o,comments:[c],resolved:!1},{store:d,onMutationFailure:f}=Pr(t),h=d.optimisticUpdates.add({type:"create-thread",thread:l,roomId:e}),p=i?.map(e=>e.id);return t[Je].httpClient.createThread({roomId:e,threadId:a,commentId:s,body:r,metadata:o,attachmentIds:p}).then(e=>{d.createThread(h,e)},t=>f(t,h,t=>new Cr(t,{roomId:e,threadId:a,commentId:s,body:r,metadata:o}))),l},[t,e])}(x),I=function(e){const t=lr();return n.useCallback(({threadId:n,body:r,attachments:o})=>{const i=re(),a={id:i,threadId:n,roomId:e,type:"comment",createdAt:new Date,userId:Rr(t),body:r,reactions:[],attachments:o??[]},{store:s,onMutationFailure:u}=Pr(t),c=s.optimisticUpdates.add({type:"create-comment",comment:a}),l=o?.map(e=>e.id);return t[Je].httpClient.createComment({roomId:e,threadId:n,commentId:i,body:r,attachmentIds:l}).then(e=>{s.createComment(e,c)},t=>u(t,c,t=>new xr(t,{roomId:e,threadId:n,commentId:i,body:r}))),a},[t,e])}(x),S=zr(x),{preventUnsavedComposerChanges:O}=mf(),T=void 0!==Hr(),B=n.useRef(!0),k=n.useRef(!1),_=To(l),[F,R]=function(e,t,r){const[o,i]=n.useState(r),a=void 0!==e,s=n.useRef(a);return n.useEffect(()=>{s.current=a},[a]),[a?e:o,n.useCallback(e=>(a||i(e),t?.(e)),[a,t])]}((void 0!==s||void 0!==u)&&s,c,u),j=n.useSyncExternalStore(n.useCallback(e=>null===E?()=>{}:E.events.self.subscribeOnce(e),[E]),n.useCallback(()=>E?.getSelf()?.canComment??!0,[E]),n.useCallback(()=>!0,[])),N=function(e){return kr(Pr(lr()).store.permissionHints.signal,t=>t[e]??new Set)}(x),P=N.size>0?N.has(Ke.CommentsWrite)||N.has(Ke.Write):j,M=n.useCallback(e=>{B.current=e},[]),L=n.useCallback(e=>{k.current=e},[]),H=n.useCallback(e=>{p?.(e),e.isDefaultPrevented()||B.current&&P&&R?.(!1)},[R,p,P]),z=n.useCallback(e=>{if(f?.(e),e.isDefaultPrevented())return;!e.currentTarget.contains(e.relatedTarget??document.activeElement)&&B.current&&!k.current&&R?.(!0)},[f,R]),U=n.useCallback(e=>{e.stopPropagation(),B.current&&P&&R?.(!1)},[R,P]),W=n.useCallback((n,o)=>{a?.(n,o),o.isDefaultPrevented()||(t&&e?S({commentId:t,threadId:e,body:n.body,attachments:n.attachments}):e?I({threadId:e,body:n.body,attachments:n.attachments}):A({body:n.body,metadata:r??{},attachments:n.attachments}))},[t,I,A,S,r,a,e]);return bn.jsx(uD,{children:bn.jsx(bg,{onComposerSubmit:W,className:mo("lb-root lb-composer lb-composer-form",h),dir:_.dir,...C,ref:D,"data-collapsed":F?"":void 0,onFocus:H,onBlur:z,disabled:g||!P,defaultAttachments:i,pasteFilesAsAttachments:v,preventUnsavedChanges:O,roomId:x,children:bn.jsx(Jx,{defaultValue:o,actions:d,overrides:l,isCollapsed:F,showAttachments:v,showAttribution:b,showFormattingControls:y,hasResolveMentionSuggestions:T,onEmptyChange:M,onEmojiPickerOpenChange:L,onEditorClick:U,autoFocus:m,disabled:g})})})});function eA(e){const t=e+"CollectionProvider",[n,r]=cC(t),[o,i]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=e=>{const{scope:t,children:n}=e,r=u.default.useRef(null),i=u.default.useRef(new Map).current;return bn.jsx(o,{scope:t,itemMap:i,collectionRef:r,children:n})};a.displayName=t;const s=e+"CollectionSlot",c=no(s),l=u.default.forwardRef((e,t)=>{const{scope:n,children:r}=e,o=to(t,i(s,n).collectionRef);return bn.jsx(c,{ref:o,children:r})});l.displayName=s;const d=e+"CollectionItemSlot",f="data-radix-collection-item",h=no(d),p=u.default.forwardRef((e,t)=>{const{scope:n,children:r,...o}=e,a=u.default.useRef(null),s=to(t,a),c=i(d,n);return u.default.useEffect(()=>(c.itemMap.set(a,{ref:a,...o}),()=>{c.itemMap.delete(a)})),bn.jsx(h,{[f]:"",ref:s,children:r})});return p.displayName=d,[{Provider:a,Slot:l,ItemSlot:p},function(t){const n=i(e+"CollectionConsumer",t);return u.default.useCallback(()=>{const e=n.collectionRef.current;if(!e)return[];const t=Array.from(e.querySelectorAll(`[${f}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])},r]}var tA=c.createContext(void 0);function nA(e){const t=c.useContext(tA);return e||t||"ltr"}var rA="rovingFocusGroup.onEntryFocus",oA={bubbles:!1,cancelable:!0},iA="RovingFocusGroup",[aA,sA,uA]=eA(iA),[cA,lA]=cC(iA,[uA]),[dA,fA]=cA(iA),hA=c.forwardRef((e,t)=>bn.jsx(aA.Provider,{scope:e.__scopeRovingFocusGroup,children:bn.jsx(aA.Slot,{scope:e.__scopeRovingFocusGroup,children:bn.jsx(pA,{...e,ref:t})})}));hA.displayName=iA;var pA=c.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:o=!1,dir:i,currentTabStopId:a,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:u,onEntryFocus:l,preventScrollOnEntryFocus:d=!1,...f}=e,h=c.useRef(null),p=to(t,h),m=nA(i),[g,v]=Jr({prop:a,defaultProp:s??null,onChange:u,caller:iA}),[y,b]=c.useState(!1),w=dC(l),C=sA(n),D=c.useRef(!1),[E,x]=c.useState(0);return c.useEffect(()=>{const e=h.current;if(e)return e.addEventListener(rA,w),()=>e.removeEventListener(rA,w)},[w]),bn.jsx(dA,{scope:n,orientation:r,dir:m,loop:o,currentTabStopId:g,onItemFocus:c.useCallback(e=>v(e),[v]),onItemShiftTab:c.useCallback(()=>b(!0),[]),onFocusableItemAdd:c.useCallback(()=>x(e=>e+1),[]),onFocusableItemRemove:c.useCallback(()=>x(e=>e-1),[]),children:bn.jsx(co.div,{tabIndex:y||0===E?-1:0,"data-orientation":r,...f,ref:p,style:{outline:"none",...e.style},onMouseDown:Xr(e.onMouseDown,()=>{D.current=!0}),onFocus:Xr(e.onFocus,e=>{const t=!D.current;if(e.target===e.currentTarget&&t&&!y){const t=new CustomEvent(rA,oA);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){const e=C().filter(e=>e.focusable);yA([e.find(e=>e.active),e.find(e=>e.id===g),...e].filter(Boolean).map(e=>e.ref.current),d)}}D.current=!1}),onBlur:Xr(e.onBlur,()=>b(!1))})})}),mA="RovingFocusGroupItem",gA=c.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:o=!1,tabStopId:i,children:a,...s}=e,u=EC(),l=i||u,d=fA(mA,n),f=d.currentTabStopId===l,h=sA(n),{onFocusableItemAdd:p,onFocusableItemRemove:m,currentTabStopId:g}=d;return c.useEffect(()=>{if(r)return p(),()=>m()},[r,p,m]),bn.jsx(aA.ItemSlot,{scope:n,id:l,focusable:r,active:o,children:bn.jsx(co.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...s,ref:t,onMouseDown:Xr(e.onMouseDown,e=>{r?d.onItemFocus(l):e.preventDefault()}),onFocus:Xr(e.onFocus,()=>d.onItemFocus(l)),onKeyDown:Xr(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void d.onItemShiftTab();if(e.target!==e.currentTarget)return;const t=function(e,t,n){const r=function(e,t){return"rtl"!==t?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}(e.key,n);return"vertical"===t&&["ArrowLeft","ArrowRight"].includes(r)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(r)?void 0:vA[r]}(e,d.orientation,d.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){"prev"===t&&o.reverse();const i=o.indexOf(e.currentTarget);o=d.loop?(r=i+1,(n=o).map((e,t)=>n[(r+t)%n.length])):o.slice(i+1)}setTimeout(()=>yA(o))}var n,r}),children:"function"==typeof a?a({isCurrentTabStop:f,hasTabStop:null!=g}):a})})});gA.displayName=mA;var vA={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function yA(e,t=!1){const n=document.activeElement;for(const r of e){if(r===n)return;if(r.focus({preventScroll:t}),document.activeElement!==n)return}}var bA=hA,wA=gA,CA=["Enter"," "],DA=["ArrowUp","PageDown","End"],EA=["ArrowDown","PageUp","Home",...DA],xA={ltr:[...CA,"ArrowRight"],rtl:[...CA,"ArrowLeft"]},AA={ltr:["ArrowLeft"],rtl:["ArrowRight"]},IA="Menu",[SA,OA,TA]=eA(IA),[BA,kA]=cC(IA,[TA,OC,lA]),_A=OC(),FA=lA(),[RA,jA]=BA(IA),[NA,PA]=BA(IA),MA=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:o,onOpenChange:i,modal:a=!0}=e,s=_A(t),[u,l]=c.useState(null),d=c.useRef(!1),f=dC(i),h=nA(o);return c.useEffect(()=>{const e=()=>{d.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>d.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}},[]),bn.jsx(VC,{...s,children:bn.jsx(RA,{scope:t,open:n,onOpenChange:f,content:u,onContentChange:l,children:bn.jsx(NA,{scope:t,onClose:c.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:d,dir:h,modal:a,children:r})})})};MA.displayName=IA;var LA=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,o=_A(n);return bn.jsx($C,{...o,...r,ref:t})});LA.displayName="MenuAnchor";var HA="MenuPortal",[zA,UA]=BA(HA,{forceMount:void 0}),WA=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:o}=e,i=jA(HA,t);return bn.jsx(zA,{scope:t,forceMount:n,children:bn.jsx(XC,{present:n||i.open,children:bn.jsx(GC,{asChild:!0,container:o,children:r})})})};WA.displayName=HA;var VA="MenuContent",[$A,qA]=BA(VA),KA=c.forwardRef((e,t)=>{const n=UA(VA,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,i=jA(VA,e.__scopeMenu),a=PA(VA,e.__scopeMenu);return bn.jsx(SA.Provider,{scope:e.__scopeMenu,children:bn.jsx(XC,{present:r||i.open,children:bn.jsx(SA.Slot,{scope:e.__scopeMenu,children:a.modal?bn.jsx(GA,{...o,ref:t}):bn.jsx(XA,{...o,ref:t})})})})}),GA=c.forwardRef((e,t)=>{const n=jA(VA,e.__scopeMenu),r=c.useRef(null),o=to(t,r);return c.useEffect(()=>{const e=r.current;if(e)return mE(e)},[]),bn.jsx(YA,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Xr(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),XA=c.forwardRef((e,t)=>{const n=jA(VA,e.__scopeMenu);return bn.jsx(YA,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),ZA=no("MenuContent.ScrollLock"),YA=c.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEntryFocus:u,onEscapeKeyDown:l,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:h,onDismiss:p,disableOutsideScroll:m,...g}=e,v=jA(VA,n),y=PA(VA,n),b=_A(n),w=FA(n),C=OA(n),[D,E]=c.useState(null),x=c.useRef(null),A=to(t,x,v.onContentChange),I=c.useRef(0),S=c.useRef(""),O=c.useRef(0),T=c.useRef(null),B=c.useRef("right"),k=c.useRef(0),_=m?ix:c.Fragment,F=m?{as:ZA,allowPinchZoom:!0}:void 0,R=e=>{const t=S.current+e,n=C().filter(e=>!e.disabled),r=document.activeElement,o=n.find(e=>e.ref.current===r)?.textValue,i=function(e,t,n){const r=t.length>1&&Array.from(t).every(e=>e===t[0]),o=r?t[0]:t,i=n?e.indexOf(n):-1;let a=(s=e,u=Math.max(i,0),s.map((e,t)=>s[(u+t)%s.length]));var s,u;1===o.length&&(a=a.filter(e=>e!==n));const c=a.find(e=>e.toLowerCase().startsWith(o.toLowerCase()));return c!==n?c:void 0}(n.map(e=>e.textValue),t,o),a=n.find(e=>e.textValue===i)?.ref.current;!function e(t){S.current=t,window.clearTimeout(I.current),""!==t&&(I.current=window.setTimeout(()=>e(""),1e3))}(t),a&&setTimeout(()=>a.focus())};c.useEffect(()=>()=>window.clearTimeout(I.current),[]),YD();const j=c.useCallback(e=>B.current===T.current?.side&&function(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return function(e,t){const{x:n,y:r}=e;let o=!1;for(let e=0,i=t.length-1;e<t.length;i=e++){const a=t[e],s=t[i],u=a.x,c=a.y,l=s.x,d=s.y;c>r!=d>r&&n<(l-u)*(r-c)/(d-c)+u&&(o=!o)}return o}(n,t)}(e,T.current?.area),[]);return bn.jsx($A,{scope:n,searchRef:S,onItemEnter:c.useCallback(e=>{j(e)&&e.preventDefault()},[j]),onItemLeave:c.useCallback(e=>{j(e)||(x.current?.focus(),E(null))},[j]),onTriggerLeave:c.useCallback(e=>{j(e)&&e.preventDefault()},[j]),pointerGraceTimerRef:O,onPointerGraceIntentChange:c.useCallback(e=>{T.current=e},[]),children:bn.jsx(_,{...F,children:bn.jsx(nE,{asChild:!0,trapped:o,onMountAutoFocus:Xr(i,e=>{e.preventDefault(),x.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:a,children:bn.jsx(vC,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:h,onDismiss:p,children:bn.jsx(bA,{asChild:!0,...w,dir:y.dir,orientation:"vertical",loop:r,currentTabStopId:D,onCurrentTabStopIdChange:E,onEntryFocus:Xr(u,e=>{y.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:bn.jsx(qC,{role:"menu","aria-orientation":"vertical","data-state":EI(v.open),"data-radix-menu-content":"",dir:y.dir,...b,...g,ref:A,style:{outline:"none",...g.style},onKeyDown:Xr(g.onKeyDown,e=>{const t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!n&&r&&R(e.key));const o=x.current;if(e.target!==o)return;if(!EA.includes(e.key))return;e.preventDefault();const i=C().filter(e=>!e.disabled).map(e=>e.ref.current);DA.includes(e.key)&&i.reverse(),function(e){const t=document.activeElement;for(const n of e){if(n===t)return;if(n.focus(),document.activeElement!==t)return}}(i)}),onBlur:Xr(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(I.current),S.current="")}),onPointerMove:Xr(e.onPointerMove,II(e=>{const t=e.target,n=k.current!==e.clientX;if(e.currentTarget.contains(t)&&n){const t=e.clientX>k.current?"right":"left";B.current=t,k.current=e.clientX}}))})})})})})})});KA.displayName=VA;var JA=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return bn.jsx(co.div,{role:"group",...r,ref:t})});JA.displayName="MenuGroup";var QA=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return bn.jsx(co.div,{...r,ref:t})});QA.displayName="MenuLabel";var eI="MenuItem",tI="menu.itemSelect",nI=c.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...o}=e,i=c.useRef(null),a=PA(eI,e.__scopeMenu),s=qA(eI,e.__scopeMenu),u=to(t,i),l=c.useRef(!1);return bn.jsx(rI,{...o,ref:u,disabled:n,onClick:Xr(e.onClick,()=>{const e=i.current;if(!n&&e){const t=new CustomEvent(tI,{bubbles:!0,cancelable:!0});e.addEventListener(tI,e=>r?.(e),{once:!0}),lo(e,t),t.defaultPrevented?l.current=!1:a.onClose()}}),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:Xr(e.onPointerUp,e=>{l.current||e.currentTarget?.click()}),onKeyDown:Xr(e.onKeyDown,e=>{const t=""!==s.searchRef.current;n||t&&" "===e.key||CA.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});nI.displayName=eI;var rI=c.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:o,...i}=e,a=qA(eI,n),s=FA(n),u=c.useRef(null),l=to(t,u),[d,f]=c.useState(!1),[h,p]=c.useState("");return c.useEffect(()=>{const e=u.current;e&&p((e.textContent??"").trim())},[i.children]),bn.jsx(SA.ItemSlot,{scope:n,disabled:r,textValue:o??h,children:bn.jsx(wA,{asChild:!0,...s,focusable:!r,children:bn.jsx(co.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...i,ref:l,onPointerMove:Xr(e.onPointerMove,II(e=>{if(r)a.onItemLeave(e);else if(a.onItemEnter(e),!e.defaultPrevented){e.currentTarget.focus({preventScroll:!0})}})),onPointerLeave:Xr(e.onPointerLeave,II(e=>a.onItemLeave(e))),onFocus:Xr(e.onFocus,()=>f(!0)),onBlur:Xr(e.onBlur,()=>f(!1))})})})}),oI=c.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...o}=e;return bn.jsx(fI,{scope:e.__scopeMenu,checked:n,children:bn.jsx(nI,{role:"menuitemcheckbox","aria-checked":xI(n)?"mixed":n,...o,ref:t,"data-state":AI(n),onSelect:Xr(o.onSelect,()=>r?.(!!xI(n)||!n),{checkForDefaultPrevented:!1})})})});oI.displayName="MenuCheckboxItem";var iI="MenuRadioGroup",[aI,sI]=BA(iI,{value:void 0,onValueChange:()=>{}}),uI=c.forwardRef((e,t)=>{const{value:n,onValueChange:r,...o}=e,i=dC(r);return bn.jsx(aI,{scope:e.__scopeMenu,value:n,onValueChange:i,children:bn.jsx(JA,{...o,ref:t})})});uI.displayName=iI;var cI="MenuRadioItem",lI=c.forwardRef((e,t)=>{const{value:n,...r}=e,o=sI(cI,e.__scopeMenu),i=n===o.value;return bn.jsx(fI,{scope:e.__scopeMenu,checked:i,children:bn.jsx(nI,{role:"menuitemradio","aria-checked":i,...r,ref:t,"data-state":AI(i),onSelect:Xr(r.onSelect,()=>o.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});lI.displayName=cI;var dI="MenuItemIndicator",[fI,hI]=BA(dI,{checked:!1}),pI=c.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...o}=e,i=hI(dI,n);return bn.jsx(XC,{present:r||xI(i.checked)||!0===i.checked,children:bn.jsx(co.span,{...o,ref:t,"data-state":AI(i.checked)})})});pI.displayName=dI;var mI=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return bn.jsx(co.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});mI.displayName="MenuSeparator";var gI=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,o=_A(n);return bn.jsx(KC,{...o,...r,ref:t})});gI.displayName="MenuArrow";var[vI,yI]=BA("MenuSub"),bI="MenuSubTrigger",wI=c.forwardRef((e,t)=>{const n=jA(bI,e.__scopeMenu),r=PA(bI,e.__scopeMenu),o=yI(bI,e.__scopeMenu),i=qA(bI,e.__scopeMenu),a=c.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:u}=i,l={__scopeMenu:e.__scopeMenu},d=c.useCallback(()=>{a.current&&window.clearTimeout(a.current),a.current=null},[]);return c.useEffect(()=>d,[d]),c.useEffect(()=>{const e=s.current;return()=>{window.clearTimeout(e),u(null)}},[s,u]),bn.jsx(LA,{asChild:!0,...l,children:bn.jsx(rI,{id:o.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":o.contentId,"data-state":EI(n.open),...e,ref:eo(t,o.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Xr(e.onPointerMove,II(t=>{i.onItemEnter(t),t.defaultPrevented||e.disabled||n.open||a.current||(i.onPointerGraceIntentChange(null),a.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:Xr(e.onPointerLeave,II(e=>{d();const t=n.content?.getBoundingClientRect();if(t){const r=n.content?.dataset.side,o="right"===r,a=o?-5:5,u=t[o?"left":"right"],c=t[o?"right":"left"];i.onPointerGraceIntentChange({area:[{x:e.clientX+a,y:e.clientY},{x:u,y:t.top},{x:c,y:t.top},{x:c,y:t.bottom},{x:u,y:t.bottom}],side:r}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>i.onPointerGraceIntentChange(null),300)}else{if(i.onTriggerLeave(e),e.defaultPrevented)return;i.onPointerGraceIntentChange(null)}})),onKeyDown:Xr(e.onKeyDown,t=>{const o=""!==i.searchRef.current;e.disabled||o&&" "===t.key||xA[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())})})})});wI.displayName=bI;var CI="MenuSubContent",DI=c.forwardRef((e,t)=>{const n=UA(VA,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,i=jA(VA,e.__scopeMenu),a=PA(VA,e.__scopeMenu),s=yI(CI,e.__scopeMenu),u=c.useRef(null),l=to(t,u);return bn.jsx(SA.Provider,{scope:e.__scopeMenu,children:bn.jsx(XC,{present:r||i.open,children:bn.jsx(SA.Slot,{scope:e.__scopeMenu,children:bn.jsx(YA,{id:s.contentId,"aria-labelledby":s.triggerId,...o,ref:l,align:"start",side:"rtl"===a.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{a.isUsingKeyboardRef.current&&u.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:Xr(e.onFocusOutside,e=>{e.target!==s.trigger&&i.onOpenChange(!1)}),onEscapeKeyDown:Xr(e.onEscapeKeyDown,e=>{a.onClose(),e.preventDefault()}),onKeyDown:Xr(e.onKeyDown,e=>{const t=e.currentTarget.contains(e.target),n=AA[a.dir].includes(e.key);t&&n&&(i.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())})})})})})});function EI(e){return e?"open":"closed"}function xI(e){return"indeterminate"===e}function AI(e){return xI(e)?"indeterminate":e?"checked":"unchecked"}function II(e){return t=>"mouse"===t.pointerType?e(t):void 0}DI.displayName=CI;var SI=MA,OI=LA,TI=WA,BI=KA,kI=JA,_I=QA,FI=nI,RI=oI,jI=uI,NI=lI,PI=pI,MI=mI,LI=gI,HI=wI,zI=DI,UI="DropdownMenu",[WI,VI]=cC(UI,[kA]),$I=kA(),[qI,KI]=WI(UI),GI=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:o,defaultOpen:i,onOpenChange:a,modal:s=!0}=e,u=$I(t),l=c.useRef(null),[d,f]=Jr({prop:o,defaultProp:i??!1,onChange:a,caller:UI});return bn.jsx(qI,{scope:t,triggerId:EC(),triggerRef:l,contentId:EC(),open:d,onOpenChange:f,onOpenToggle:c.useCallback(()=>f(e=>!e),[f]),modal:s,children:bn.jsx(SI,{...u,open:d,onOpenChange:f,dir:r,modal:s,children:n})})};GI.displayName=UI;var XI="DropdownMenuTrigger",ZI=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...o}=e,i=KI(XI,n),a=$I(n);return bn.jsx(OI,{asChild:!0,...a,children:bn.jsx(co.button,{type:"button",id:i.triggerId,"aria-haspopup":"menu","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":i.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...o,ref:eo(t,i.triggerRef),onPointerDown:Xr(e.onPointerDown,e=>{r||0!==e.button||!1!==e.ctrlKey||(i.onOpenToggle(),i.open||e.preventDefault())}),onKeyDown:Xr(e.onKeyDown,e=>{r||(["Enter"," "].includes(e.key)&&i.onOpenToggle(),"ArrowDown"===e.key&&i.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})})});ZI.displayName=XI;var YI=e=>{const{__scopeDropdownMenu:t,...n}=e,r=$I(t);return bn.jsx(TI,{...r,...n})};YI.displayName="DropdownMenuPortal";var JI="DropdownMenuContent",QI=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=KI(JI,n),i=$I(n),a=c.useRef(!1);return bn.jsx(BI,{id:o.contentId,"aria-labelledby":o.triggerId,...i,...r,ref:t,onCloseAutoFocus:Xr(e.onCloseAutoFocus,e=>{a.current||o.triggerRef.current?.focus(),a.current=!1,e.preventDefault()}),onInteractOutside:Xr(e.onInteractOutside,e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;o.modal&&!r||(a.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});QI.displayName=JI;c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=$I(n);return bn.jsx(kI,{...o,...r,ref:t})}).displayName="DropdownMenuGroup";c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=$I(n);return bn.jsx(_I,{...o,...r,ref:t})}).displayName="DropdownMenuLabel";var eS=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=$I(n);return bn.jsx(FI,{...o,...r,ref:t})});eS.displayName="DropdownMenuItem";c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=$I(n);return bn.jsx(RI,{...o,...r,ref:t})}).displayName="DropdownMenuCheckboxItem";c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=$I(n);return bn.jsx(jI,{...o,...r,ref:t})}).displayName="DropdownMenuRadioGroup";c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=$I(n);return bn.jsx(NI,{...o,...r,ref:t})}).displayName="DropdownMenuRadioItem";c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=$I(n);return bn.jsx(PI,{...o,...r,ref:t})}).displayName="DropdownMenuItemIndicator";c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=$I(n);return bn.jsx(MI,{...o,...r,ref:t})}).displayName="DropdownMenuSeparator";c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=$I(n);return bn.jsx(LI,{...o,...r,ref:t})}).displayName="DropdownMenuArrow";c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=$I(n);return bn.jsx(HI,{...o,...r,ref:t})}).displayName="DropdownMenuSubTrigger";c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=$I(n);return bn.jsx(zI,{...o,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})}).displayName="DropdownMenuSubContent";var tS=GI,nS=YI,rS=QI;function oS({children:e,content:t,defaultOpen:n,open:r,onOpenChange:o,className:i,...a}){const s=To(),{portalContainer:u}=mf();return bn.jsxs(tS,{defaultOpen:n,open:r,onOpenChange:o,dir:s.dir,children:[e,bn.jsx(nS,{container:u,children:bn.jsx(rS,{className:mo("lb-root lb-portal lb-elevation lb-dropdown",i),sideOffset:6,collisionPadding:10,...a,children:t})})]})}const iS=n.forwardRef(({children:e,className:t,...n},r)=>bn.jsx(eS,{className:mo("lb-dropdown-item",t),...n,ref:r,children:e})),aS=n.forwardRef(({values:e,formatRemaining:t,truncate:r,locale:o,className:i,asChild:a,...s},u)=>{const c=a?ro:"span",l=To(),d=t??l.LIST_REMAINING,f=n.useMemo(()=>{const t=r&&r<e.length-1?[...e.slice(0,r),d(e.length-r)]:[...e],n=Array(t.length).fill(".");return Sg(o).formatToParts(n).map(e=>"element"===e.type?t.shift():e.value)},[d,o,r,e]);return bn.jsx(c,{className:mo("lb-list",i),...s,ref:u,children:f})});function sS({userId:e,className:t,...n}){const r=Rg();return bn.jsxs(Ns,{className:mo("lb-comment-mention",t),"data-self":e===r?"":void 0,...n,children:[ks,bn.jsx(zx,{userId:e})]})}function uS({href:e,children:t,className:n,...r}){return bn.jsx(Ps,{className:mo("lb-comment-link",n),href:e,...r,children:t})}function cS({href:e,children:t,className:n,...r}){return bn.jsx("span",{className:mo("lb-comment-link",n),...r,children:t})}const lS=n.forwardRef(({reaction:e,overrides:t,className:n,...r},o)=>{const i=To(t);return bn.jsxs(XD,{className:mo("lb-comment-reaction",n),variant:"outline","aria-label":i.COMMENT_REACTION_DESCRIPTION(e.emoji,e.users.length),...r,ref:o,children:[bn.jsx(Ao,{className:"lb-comment-reaction-emoji",emoji:e.emoji}),bn.jsx("span",{className:"lb-comment-reaction-count",children:e.users.length})]})}),dS=n.forwardRef(({comment:e,reaction:t,overrides:r,disabled:o,...i},a)=>{const s=Ur(e.roomId),u=Wr(e.roomId),c=Rg(),l=n.useMemo(()=>t.users.some(e=>e.id===c),[c,t]),d=To(r),f=n.useMemo(()=>bn.jsx("span",{children:d.COMMENT_REACTION_LIST(bn.jsx(aS,{values:t.users.map(e=>bn.jsx(zx,{userId:e.id,replaceSelf:!0},e.id)),formatRemaining:d.LIST_REMAINING_USERS,truncate:5,locale:d.locale}),t.emoji,t.users.length)}),[d,t]),h=n.useCallback(e=>{e.stopPropagation()},[]),p=n.useCallback(n=>{n?s({threadId:e.threadId,commentId:e.id,emoji:t.emoji}):u({threadId:e.threadId,commentId:e.id,emoji:t.emoji})},[s,e.threadId,e.id,t.emoji,u]);return bn.jsx(_D,{content:f,multiline:!0,className:"lb-comment-reaction-tooltip",children:bn.jsx(po,{asChild:!0,pressed:l,onPressedChange:p,onClick:h,disabled:o,ref:a,children:bn.jsx(lS,{"data-self":l?"":void 0,reaction:t,overrides:r,...i})})})}),fS=n.forwardRef(({reaction:e,overrides:t,...r},o)=>{const i=Rg(),a=n.useMemo(()=>e.users.some(e=>e.id===i),[i,e]);return bn.jsx(lS,{disableable:!1,"data-self":a?"":void 0,reaction:e,overrides:t,...r,ref:o})});function hS({attachment:e,url:t}){"application/pdf"===e.mimeType||e.mimeType.startsWith("image/")||e.mimeType.startsWith("video/")||e.mimeType.startsWith("audio/")?window.open(t,"_blank"):function(e,t){const n=document.createElement("a");n.href=e,n.download=t,n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)}(t,e.name)}function pS({attachment:e,onAttachmentClick:t,roomId:r,className:o,overrides:i,...a}){const{url:s}=$r(e.id,r),u=n.useCallback(n=>{if(!s)return;const r={attachment:e,url:s};t?.(r,n),n.isDefaultPrevented()||hS(r)},[e,t,s]);return bn.jsx(VD,{className:mo("lb-comment-attachment",o),...a,attachment:e,overrides:i,onClick:s?u:void 0,roomId:r})}function mS({attachment:e,onAttachmentClick:t,roomId:r,className:o,overrides:i,...a}){const{url:s}=$r(e.id,r),u=n.useCallback(n=>{if(!s)return;const r={attachment:e,url:s};t?.(r,n),n.isDefaultPrevented()||hS(r)},[e,t,s]);return bn.jsx($D,{className:mo("lb-comment-attachment",o),...a,attachment:e,overrides:i,onClick:s?u:void 0,roomId:r})}function gS({className:e,...t}){return bn.jsx($D,{className:mo("lb-comment-attachment",e),allowMediaPreview:!1,...t})}function vS({threadId:e,roomId:t,commentRef:r}){const o=function(e){const t=lr();return n.useCallback(n=>{const{store:r,onMutationFailure:o}=Pr(t),i=Object.values(r.get1_notifications().notificationsById).find(e=>"thread"===e.kind&&e.threadId===n);if(!i)return;const a=new Date,s=r.optimisticUpdates.add({type:"mark-inbox-notification-as-read",inboxNotificationId:i.id,readAt:a});t[Je].httpClient.markRoomInboxNotificationAsRead({roomId:e,inboxNotificationId:i.id}).then(()=>{r.markInboxNotificationRead(i.id,a,s)},e=>{o(e,s,e=>new Tr(e,{inboxNotificationId:i.id}))})},[t,e])}(t);return Mg(r,()=>{o(e)},{enabled:n.useSyncExternalStore(Lg,Hg,zg)}),null}const yS=n.forwardRef(({comment:e,indentContent:t=!0,showDeleted:r,showActions:o="hover",showReactions:i=!0,showAttachments:a=!0,showComposerFormattingControls:s=!0,onAuthorClick:u,onMentionClick:c,onAttachmentClick:l,onCommentEdit:d,onCommentDelete:f,overrides:h,className:p,additionalActions:m,additionalActionsClassName:g,autoMarkReadThreadId:v,...y},b)=>{const w=n.useRef(null),C=Lh(b,w),D=Rg(),E=function(e){const t=lr();return n.useCallback(({threadId:n,commentId:r})=>{const o=new Date,{store:i,onMutationFailure:a}=Pr(t),s=i.optimisticUpdates.add({type:"delete-comment",threadId:n,commentId:r,deletedAt:o,roomId:e});t[Je].httpClient.deleteComment({roomId:e,threadId:n,commentId:r}).then(()=>{i.deleteComment(n,s,r,o)},t=>a(t,s,t=>new Ir(t,{roomId:e,threadId:n,commentId:r})))},[t,e])}(e.roomId),x=zr(e.roomId),A=Ur(e.roomId),I=Wr(e.roomId),S=To(h),[O,T]=n.useState(!1),[B,k]=n.useState(!1),[_,F]=n.useState(!1),[R,j]=n.useState(!1),{mediaAttachments:N,fileAttachments:P}=n.useMemo(()=>function(e){const t=[],n=[];for(const r of e)(r.mimeType.startsWith("image/")||r.mimeType.startsWith("video/"))&&r.size<=jD?t.push(r):n.push(r);return{mediaAttachments:t,fileAttachments:n}}(e.attachments),[e.attachments]),M=n.useCallback(e=>{e.stopPropagation()},[]),L=n.useCallback(()=>{T(!0)},[]),H=n.useCallback(e=>{e.stopPropagation(),T(!1)},[]),z=n.useCallback(({body:t,attachments:n},r)=>{d?.(e),r.preventDefault(),T(!1),x({commentId:e.id,threadId:e.threadId,body:t,attachments:n})},[e,x,d]),U=n.useCallback(()=>{f?.(e),E({commentId:e.id,threadId:e.threadId})},[e,E,f]),W=n.useCallback(t=>{u?.(e.userId,t)},[e.userId,u]),V=n.useCallback(t=>{const n=e.reactions.findIndex(e=>e.emoji===t);n>=0&&D&&e.reactions[n]?.users.some(e=>e.id===D)?I({threadId:e.threadId,commentId:e.id,emoji:t}):A({threadId:e.threadId,commentId:e.id,emoji:t})},[A,e.id,e.reactions,e.threadId,I,D]);return n.useEffect(()=>{if(!("undefined"!=typeof window))return;window.location.hash.slice(1)===e.id&&k(!0)},[]),r||e.body?bn.jsxs(uD,{children:[v&&bn.jsx(vS,{commentRef:w,threadId:v,roomId:e.roomId}),bn.jsxs("div",{id:e.id,className:mo("lb-root lb-comment",t&&"lb-comment:indent-content","hover"===o&&"lb-comment:show-actions-hover",(_||R)&&"lb-comment:action-open",p),"data-deleted":e.body?void 0:"","data-editing":O?"":void 0,"data-target":B?"":void 0,dir:S.dir,...y,ref:C,children:[bn.jsxs("div",{className:"lb-comment-header",children:[bn.jsxs("div",{className:"lb-comment-details",children:[bn.jsx(GD,{className:"lb-comment-avatar",userId:e.userId,onClick:W}),bn.jsxs("span",{className:"lb-comment-details-labels",children:[bn.jsx(zx,{className:"lb-comment-author",userId:e.userId,onClick:W}),bn.jsxs("span",{className:"lb-comment-date",children:[bn.jsx(Fg,{locale:S.locale,date:e.createdAt,className:"lb-date lb-comment-date-created"}),e.editedAt&&e.body&&bn.jsxs(bn.Fragment,{children:[" ",bn.jsx("span",{className:"lb-comment-date-edited",children:S.COMMENT_EDITED})]})]})]})]}),o&&!O&&bn.jsxs("div",{className:mo("lb-comment-actions",g),children:[m??null,i&&bn.jsx(Hx,{onEmojiSelect:V,onOpenChange:j,children:bn.jsx(_D,{content:S.COMMENT_ADD_REACTION,children:bn.jsx(mx,{asChild:!0,children:bn.jsx(XD,{className:"lb-comment-action",onClick:M,"aria-label":S.COMMENT_ADD_REACTION,children:bn.jsx(Do,{className:"lb-button-icon"})})})})}),e.userId===D&&bn.jsx(oS,{open:_,onOpenChange:F,align:"end",content:bn.jsxs(bn.Fragment,{children:[bn.jsxs(iS,{onSelect:L,onClick:M,children:[bn.jsx(wo,{className:"lb-dropdown-item-icon"}),S.COMMENT_EDIT]}),bn.jsxs(iS,{onSelect:U,onClick:M,children:[bn.jsx(bo,{className:"lb-dropdown-item-icon"}),S.COMMENT_DELETE]})]}),children:bn.jsx(_D,{content:S.COMMENT_MORE,children:bn.jsx(ZI,{asChild:!0,children:bn.jsx(XD,{className:"lb-comment-action",disabled:!e.body,onClick:M,"aria-label":S.COMMENT_MORE,children:bn.jsx(Co,{className:"lb-button-icon"})})})})})]})]}),bn.jsx("div",{className:"lb-comment-content",children:O?bn.jsx(Qx,{className:"lb-comment-composer",onComposerSubmit:z,defaultValue:e.body,defaultAttachments:e.attachments,autoFocus:!0,showAttribution:!1,showAttachments:a,showFormattingControls:s,actions:bn.jsxs(bn.Fragment,{children:[bn.jsx(_D,{content:S.COMMENT_EDIT_COMPOSER_CANCEL,"aria-label":S.COMMENT_EDIT_COMPOSER_CANCEL,children:bn.jsx(XD,{className:"lb-composer-action",onClick:H,children:bn.jsx(yo,{className:"lb-button-icon"})})}),bn.jsx(FD,{content:S.COMMENT_EDIT_COMPOSER_SAVE,shortcut:bn.jsx(RD,{name:"enter"}),children:bn.jsx(wg,{asChild:!0,children:bn.jsx(XD,{variant:"primary",className:"lb-composer-action",onClick:M,"aria-label":S.COMMENT_EDIT_COMPOSER_SAVE,children:bn.jsx(vo,{className:"lb-button-icon"})})})})]}),overrides:{COMPOSER_PLACEHOLDER:S.COMMENT_EDIT_COMPOSER_PLACEHOLDER},roomId:e.roomId}):e.body?bn.jsxs(bn.Fragment,{children:[bn.jsx(Ls,{className:"lb-comment-body",body:e.body,components:{Mention:({userId:e})=>bn.jsx(sS,{userId:e,onClick:t=>c?.(e,t)}),Link:uS}}),a&&(N.length>0||P.length>0)?bn.jsxs("div",{className:"lb-comment-attachments",children:[N.length>0?bn.jsx("div",{className:"lb-attachments",children:N.map(t=>bn.jsx(pS,{attachment:t,overrides:h,onAttachmentClick:l,roomId:e.roomId},t.id))}):null,P.length>0?bn.jsx("div",{className:"lb-attachments",children:P.map(t=>bn.jsx(mS,{attachment:t,overrides:h,onAttachmentClick:l,roomId:e.roomId},t.id))}):null]}):null,i&&e.reactions.length>0&&bn.jsxs("div",{className:"lb-comment-reactions",children:[e.reactions.map(t=>bn.jsx(dS,{comment:e,reaction:t,overrides:h},t.emoji)),bn.jsx(Hx,{onEmojiSelect:V,children:bn.jsx(_D,{content:S.COMMENT_ADD_REACTION,children:bn.jsx(mx,{asChild:!0,children:bn.jsx(XD,{className:"lb-comment-reaction lb-comment-reaction-add",variant:"outline",onClick:M,"aria-label":S.COMMENT_ADD_REACTION,children:bn.jsx(Do,{className:"lb-button-icon"})})})})})]})]}):bn.jsx("div",{className:"lb-comment-body",children:bn.jsx("p",{className:"lb-comment-deleted",children:S.COMMENT_DELETED})})})]})]}):null}),bS="https://localhost:9999",wS=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/;function CS({comment:e,showHeader:t=!0,showAttachments:n=!0,showReactions:r=!0,overrides:o,className:i,...a}){const s=To(o);return bn.jsxs("div",{className:mo("lb-root lb-inbox-notification-comment lb-comment",i),...a,children:[t&&bn.jsx("div",{className:"lb-comment-header",children:bn.jsx(zx,{className:"lb-comment-author",userId:e.userId})}),bn.jsx("div",{className:"lb-comment-content",children:e.body?bn.jsxs(bn.Fragment,{children:[bn.jsx(Ls,{className:"lb-comment-body",body:e.body,components:{Mention:sS,Link:cS}}),r&&e.reactions.length>0&&bn.jsx("div",{className:"lb-comment-reactions",children:e.reactions.map(e=>bn.jsx(fS,{reaction:e,overrides:o,disabled:!0},e.emoji))}),n&&e.attachments.length>0?bn.jsx("div",{className:"lb-comment-attachments",children:bn.jsx("div",{className:"lb-attachments",children:e.attachments.map(t=>bn.jsx(gS,{attachment:t,overrides:o,roomId:e.roomId},t.id))})}):null]}):bn.jsx("div",{className:"lb-comment-body",children:bn.jsx("p",{className:"lb-comment-deleted",children:s.COMMENT_DELETED})})})]})}function DS(e){return Array.from(new Set(e.map(e=>e.userId)))}function ES(e,t,n){const r=t.comments.filter(t=>!!t.body&&(e.readAt?t.createdAt>e.readAt&&t.createdAt<=e.notifiedAt:t.createdAt<=e.notifiedAt));if(0===r.length){const n=t.comments.filter(e=>e.body).slice(-3);return{type:"comments",unread:!1,comments:n,userIds:DS(n),date:e.notifiedAt}}const o=function(e,t){if(e.length)for(let n=e.length-1;n>=0;n--){const r=e[n];if(r.userId!==t&&r.body&&un(r.body).includes(t))return r}}(r,n);if(o)return{type:"mention",unread:!0,comments:[o],userIds:[o.userId],date:o.createdAt};return{type:"comments",unread:!0,comments:r.slice(-3),userIds:DS(r),date:e.notifiedAt}}function xS({roomId:e,className:t,...r}){const{info:o,isLoading:i}=yr(e),a=n.useMemo(()=>o?.name??e,[o?.name,e]);return bn.jsx("span",{className:mo("lb-name lb-room",t),"data-loading":i?"":void 0,...r,children:i?null:a})}const AS=n.forwardRef(({inboxNotification:e,children:t,aside:r,title:o,date:i,unread:a,markAsReadOnClick:s,onClick:u,href:c,showActions:l,overrides:d,components:f,className:h,asChild:p,...m},g)=>{const v=To(d),{Anchor:y}=function(e){const t=n.useContext(ff);return n.useMemo(()=>({...df,...t,...e}),[t,e])}(f),b=p?ro:y,[w,C]=n.useState(!1),D=mr(),E=vr(),x=n.useCallback(t=>{u?.(t);const n=s??Boolean(c);a&&n&&D(e.id)},[c,e.id,s,D,u,a]),A=n.useCallback(e=>{e.stopPropagation()},[]),I=n.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),S=n.useCallback(e=>{e.preventDefault(),e.stopPropagation(),C(e=>!e)},[]),O=n.useCallback(()=>{D(e.id)},[e.id,D]),T=n.useCallback(()=>{E(e.id)},[e.id,E]);return bn.jsx(uD,{children:bn.jsxs(b,{className:mo("lb-root lb-inbox-notification","hover"===l&&"lb-inbox-notification:show-actions-hover",w&&"lb-inbox-notification:action-open",h),dir:v.dir,"data-unread":a?"":void 0,"data-kind":e.kind,onClick:x,href:c,...m,ref:g,children:[r&&bn.jsx("div",{className:"lb-inbox-notification-aside",children:r}),bn.jsxs("div",{className:"lb-inbox-notification-content",children:[bn.jsxs("div",{className:"lb-inbox-notification-header",children:[bn.jsx("span",{className:"lb-inbox-notification-title",children:o}),bn.jsx("div",{className:"lb-inbox-notification-details",children:bn.jsxs("span",{className:"lb-inbox-notification-details-labels",children:[bn.jsx(Fg,{locale:v.locale,date:i,className:"lb-date lb-inbox-notification-date"}),a&&bn.jsx("span",{className:"lb-inbox-notification-unread-indicator",role:"presentation"})]})}),l&&bn.jsx("div",{className:"lb-inbox-notification-actions",children:bn.jsx(oS,{open:w,onOpenChange:C,align:"end",content:bn.jsxs(bn.Fragment,{children:[a?bn.jsxs(iS,{onSelect:O,onClick:A,children:[bn.jsx(vo,{className:"lb-dropdown-item-icon"}),v.INBOX_NOTIFICATION_MARK_AS_READ]}):null,bn.jsxs(iS,{onSelect:T,onClick:A,children:[bn.jsx(bo,{className:"lb-dropdown-item-icon"}),v.INBOX_NOTIFICATION_DELETE]})]}),children:bn.jsx(_D,{content:v.INBOX_NOTIFICATION_MORE,children:bn.jsx(ZI,{asChild:!0,children:bn.jsx(XD,{className:"lb-inbox-notification-action",onClick:S,onPointerDown:I,onPointerUp:I,"aria-label":v.INBOX_NOTIFICATION_MORE,children:bn.jsx(Co,{className:"lb-button-icon"})})})})})})]}),bn.jsx("div",{className:"lb-inbox-notification-body",children:t})]})]})})});function IS({className:e,...t}){return bn.jsx("div",{className:mo("lb-inbox-notification-icon",e),...t})}function SS({className:e,...t}){return bn.jsx(GD,{className:mo("lb-inbox-notification-avatar",e),...t})}const OS=n.forwardRef(({inboxNotification:e,href:t,showRoomName:r=!0,showReactions:o=!0,showAttachments:i=!0,showActions:a="hover",overrides:s,...u},c)=>{const l=To(s),d=br(e.id),f=Rg(),{info:h}=yr(e.roomId),p=n.useMemo(()=>{const t=ES(e,d,f??"");if(0===t.comments.length||0===t.userIds.length)return null;switch(t.type){case"comments":{const e=[...t.userIds].reverse(),n=e[0],a=bn.jsx(SS,{userId:n}),u=l.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST(bn.jsx(aS,{values:e.map(e=>bn.jsx(zx,{userId:e,replaceSelf:!0},e)),formatRemaining:l.LIST_REMAINING_USERS,truncate:2,locale:l.locale}),r?bn.jsx(xS,{roomId:d.roomId}):void 0,e.length),c=bn.jsx("div",{className:"lb-inbox-notification-comments",children:t.comments.map(e=>bn.jsx(CS,{comment:e,showHeader:t.comments.length>1,showAttachments:i,showReactions:o,overrides:s},e.id))});return{unread:t.unread,date:t.date,aside:a,title:u,content:c,threadId:d.id,commentId:t.comments[t.comments.length-1].id}}case"mention":{const e=t.userIds[0],n=t.comments[0],a=bn.jsx(SS,{userId:e}),u=l.INBOX_NOTIFICATION_THREAD_MENTION(bn.jsx(zx,{userId:e},e),r?bn.jsx(xS,{roomId:d.roomId}):void 0),c=bn.jsx("div",{className:"lb-inbox-notification-comments",children:bn.jsx(CS,{comment:n,showHeader:!1,showAttachments:i,showReactions:o,overrides:s},n.id)});return{unread:t.unread,date:t.date,aside:a,title:u,content:c,threadId:d.id,commentId:n.id}}default:return we(0,"Unexpected thread inbox notification type")}},[l,f,e,s,r,i,o,d]),m=n.useMemo(()=>{const e=t??h?.url;return e?function(e,t,n){const r=wS.test(e),o=new URL(e,r?void 0:bS);if(void 0!==t)for(const[e,n]of Object.entries(t))n&&o.searchParams.set(e,String(n));return o.hash||void 0===n||(o.hash=`#${n}`),r?o.href:o.href.replace(bS,"")}(e,void 0,p?.commentId):void 0},[p?.commentId,t,h?.url]);if(!p)return null;const{aside:g,title:v,content:y,date:b,unread:w}=p;return bn.jsx(AS,{inboxNotification:e,aside:g,title:v,date:b,unread:w,overrides:s,href:m,showActions:a,markAsReadOnClick:!1,...u,ref:c,children:y})}),TS=n.forwardRef(({inboxNotification:e,showActions:t="hover",showRoomName:r=!0,overrides:o,...i},a)=>{const s=To(o),u=n.useMemo(()=>!e.readAt||e.notifiedAt>e.readAt,[e.notifiedAt,e.readAt]);return bn.jsx(AS,{inboxNotification:e,aside:bn.jsx(SS,{userId:e.createdBy}),title:s.INBOX_NOTIFICATION_TEXT_MENTION(bn.jsx(zx,{userId:e.createdBy},e.createdBy),r?bn.jsx(xS,{roomId:e.roomId}):void 0),date:e.notifiedAt,unread:u,overrides:o,showActions:t,...i,ref:a})}),BS=n.forwardRef(({inboxNotification:e,showActions:t="hover",title:r,aside:o,children:i,overrides:a,...s},u)=>{const c=n.useMemo(()=>!e.readAt||e.notifiedAt>e.readAt,[e.notifiedAt,e.readAt]);return bn.jsx(AS,{inboxNotification:e,aside:o,title:r,date:e.notifiedAt,unread:c,overrides:a,showActions:t,...s,ref:u,children:i})});n.forwardRef(({inboxNotification:e,...t},n)=>bn.jsxs(BS,{inboxNotification:e,...t,title:bn.jsxs(bn.Fragment,{children:["Custom notification kind ",bn.jsx("code",{children:e.kind})," is not handled"]}),aside:bn.jsx(IS,{children:bn.jsx(Yg,{})}),ref:n,"data-missing":"",children:["Notifications of this kind won’t be displayed in production. Use the"," ",bn.jsx("code",{children:"kinds"})," prop to define how they should be rendered."]}));const kS=Object.assign(n.forwardRef(({inboxNotification:e,kinds:t,...n},r)=>{switch(e.kind){case"thread":{const o=t?.thread??OS;return bn.jsx(o,{inboxNotification:e,...n,ref:r})}case"textMention":{const o=t?.textMention??TS;return bn.jsx(o,{inboxNotification:e,...n,ref:r})}default:{const o=t?.[e.kind];return o?bn.jsx(o,{inboxNotification:e,...n,ref:r}):null}}}),{Thread:OS,TextMention:TS,Custom:BS,Icon:IS,Avatar:SS});function _S({enabled:e,onReachEnd:t}){const r=n.useRef(null);return Mg(r,t,{enabled:e}),bn.jsx("div",{ref:r,style:{height:0}})}const FS=n.forwardRef(({onReachEnd:e,children:t,className:r,...o},i)=>bn.jsxs("ol",{className:mo("lb-root lb-inbox-notification-list",r),...o,ref:i,children:[n.Children.map(t,(e,t)=>bn.jsx("li",{className:"lb-inbox-notification-list-item",children:e},t)),e&&bn.jsx(_S,{onReachEnd:e,enabled:n.Children.count(t)>0})]}));function RS(e){return bn.jsx(go,{...e,children:bn.jsx("path",{d:"M10 4v12m6-6-6 6-6-6"})})}function jS(e){return bn.jsxs(go,{...e,children:[bn.jsx("circle",{cx:10,cy:10,r:7}),bn.jsx("path",{d:"m13 8-4 4-2-2"})]})}function NS(e){return bn.jsxs(go,{...e,children:[bn.jsx("circle",{cx:10,cy:10,r:7,fill:"currentColor"}),bn.jsx("path",{d:"m13 8-4 4-2-2",stroke:"var(--lb-icon-background)"})]})}const PS=n.forwardRef(({thread:e,indentCommentContent:t=!0,showActions:r="hover",showDeletedComments:o,showResolveAction:i=!0,showReactions:a=!0,showComposer:s="collapsed",showAttachments:u=!0,showComposerFormattingControls:c=!0,onResolvedChange:l,onCommentEdit:d,onCommentDelete:f,onThreadDelete:h,onAuthorClick:p,onMentionClick:m,onAttachmentClick:g,onComposerSubmit:v,overrides:y,className:b,...w},C)=>{const D=function(e){const t=lr();return n.useCallback(n=>{const r=new Date,{store:o,onMutationFailure:i}=Pr(t),a=o.optimisticUpdates.add({type:"mark-thread-as-resolved",threadId:n,updatedAt:r});t[Je].httpClient.markThreadAsResolved({roomId:e,threadId:n}).then(()=>{o.patchThread(n,a,{resolved:!0},r)},t=>i(t,a,t=>new Dr(t,{roomId:e,threadId:n})))},[t,e])}(e.roomId),E=function(e){const t=lr();return n.useCallback(n=>{const r=new Date,{store:o,onMutationFailure:i}=Pr(t),a=o.optimisticUpdates.add({type:"mark-thread-as-unresolved",threadId:n,updatedAt:r});t[Je].httpClient.markThreadAsUnresolved({roomId:e,threadId:n}).then(()=>{o.patchThread(n,a,{resolved:!1},r)},t=>i(t,a,t=>new Er(t,{roomId:e,threadId:n})))},[t,e])}(e.roomId),x=To(y),A=n.useMemo(()=>o?0:e.comments.findIndex(e=>e.body),[o,e.comments]),I=n.useMemo(()=>o?e.comments.length-1:function(e,t){let n=e.length-1;for(;n>=0;){const r=e[n];if(r&&t(r))return n;n--}return-1}(e.comments,e=>e.body),[o,e.comments]),{status:S,unreadSince:O}=function(e){const t=lr(),{store:r}=Pr(t);return kr(r.outputs.threadifications,n.useCallback(t=>{const n=t.sortedNotifications.find(t=>"thread"===t.kind&&t.threadId===e),r=t.threadsDB.get(e);return void 0===n||void 0===r?{status:"not-subscribed"}:{status:"subscribed",unreadSince:n.readAt}},[e]),dn)}(e.id),T=n.useMemo(()=>{if("subscribed"!==S)return;if(null===O)return A;const t=e.comments.findIndex(e=>(!!o||e.body)&&e.createdAt>O);return t>=0&&t<e.comments.length?t:void 0},[A,o,S,e.comments,O]),[B,k]=n.useState(),_=void 0===B?T:B;n.useEffect(()=>{T&&k(e=>Math.min(e??1/0,T))},[T]);const F=n.useCallback(e=>{e.stopPropagation()},[]),R=n.useCallback(t=>{l?.(t),t?D(e.id):E(e.id)},[D,E,l,e.id]),j=n.useCallback(t=>{f?.(t);e.comments.filter(e=>e.body).length<=1&&h?.(e)},[f,h,e]);return bn.jsx(uD,{children:bn.jsxs("div",{className:mo("lb-root lb-thread","hover"===r&&"lb-thread:show-actions-hover",b),"data-resolved":e.resolved?"":void 0,"data-unread":void 0!==T?"":void 0,dir:x.dir,...w,ref:C,children:[bn.jsx("div",{className:"lb-thread-comments",children:e.comments.map((s,l)=>{const f=l===A,h=void 0!==T&&l>=T,v=bn.jsx(yS,{className:"lb-thread-comment","data-unread":h?"":void 0,comment:s,indentContent:t,showDeleted:o,showActions:r,showReactions:a,showAttachments:u,showComposerFormattingControls:c,onCommentEdit:d,onCommentDelete:j,onAuthorClick:p,onMentionClick:m,onAttachmentClick:g,autoMarkReadThreadId:l===I&&h?e.id:void 0,additionalActionsClassName:f?"lb-thread-actions":void 0,additionalActions:f&&i?bn.jsx(_D,{content:e.resolved?x.THREAD_UNRESOLVE:x.THREAD_RESOLVE,children:bn.jsx(po,{pressed:e.resolved,onPressedChange:R,asChild:!0,children:bn.jsx(XD,{className:"lb-comment-action",onClick:F,"aria-label":e.resolved?x.THREAD_UNRESOLVE:x.THREAD_RESOLVE,children:e.resolved?bn.jsx(NS,{className:"lb-button-icon"}):bn.jsx(jS,{className:"lb-button-icon"})})})}):null},s.id);return l===_&&_!==A&&_<=I?bn.jsxs(n.Fragment,{children:[bn.jsx("div",{className:"lb-thread-new-indicator","aria-label":x.THREAD_NEW_INDICATOR_DESCRIPTION,children:bn.jsxs("span",{className:"lb-thread-new-indicator-label",children:[bn.jsx(RS,{className:"lb-thread-new-indicator-label-icon"}),x.THREAD_NEW_INDICATOR]})}),v]},s.id):v})}),s&&bn.jsx(Qx,{className:"lb-thread-composer",threadId:e.id,defaultCollapsed:"collapsed"===s||void 0,showAttachments:u,showFormattingControls:c,onComposerSubmit:v,overrides:{COMPOSER_PLACEHOLDER:x.THREAD_COMPOSER_PLACEHOLDER,COMPOSER_SEND:x.THREAD_COMPOSER_SEND},roomId:e.roomId})]})})});b(Vm,$m,"esm");const MS=n.createContext(null),LS={didCatch:!1,error:null};class HS extends n.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=LS}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(null!==e){for(var t,n,r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];null===(t=(n=this.props).onReset)||void 0===t||t.call(n,{args:o,reason:"imperative-api"}),this.setState(LS)}}componentDidCatch(e,t){var n,r;null===(n=(r=this.props).onError)||void 0===n||n.call(r,e,t)}componentDidUpdate(e,t){const{didCatch:n}=this.state,{resetKeys:r}=this.props;var o,i;n&&null!==t.error&&function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.length!==t.length||e.some((e,n)=>!Object.is(e,t[n]))}(e.resetKeys,r)&&(null===(o=(i=this.props).onReset)||void 0===o||o.call(i,{next:r,prev:e.resetKeys,reason:"keys"}),this.setState(LS))}render(){const{children:e,fallbackRender:t,FallbackComponent:r,fallback:o}=this.props,{didCatch:i,error:a}=this.state;let s=e;if(i){const e={error:a,resetErrorBoundary:this.resetErrorBoundary};if("function"==typeof t)s=t(e);else if(r)s=n.createElement(r,e);else{if(void 0===o)throw a;s=o}}return n.createElement(MS.Provider,{value:{didCatch:i,error:a,resetErrorBoundary:this.resetErrorBoundary}},s)}}function zS(){return u.default.createElement("svg",{className:"animate-spin h-5 w-5 mr-3 ...",viewBox:"0 0 24 24"})}var US=function(e){var t=e.indentCommentContent,n=e.showActions,r=e.showDeletedComments,o=e.showResolveAction,i=e.showReactions,a=e.showComposer,s=e.showAttachments,c=e.showComposerFormattingControls,l=Kr().threads;return u.default.createElement(u.default.Fragment,null,l.map(function(e){return u.default.createElement(PS,{key:e.id,thread:e,className:"thread",indentCommentContent:t,showActions:n,showDeletedComments:r,showResolveAction:o,showReactions:i,showComposer:a,showAttachments:s,showComposerFormattingControls:c})}),a&&u.default.createElement(Qx,{className:"composer"}))};function WS(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=WS(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function VS(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=WS(e))&&(r&&(r+=" "),r+=t);return r}function $S(e){var t=e.className,n=e.onClick,r=vE(e,["className","onClick"]),o=hr().inboxNotifications;return 0===o.length?u.default.createElement("div",{className:VS(t,"empty")},s.default.t("liveblocks:frontend_inbox_empty")):u.default.createElement("div",gE({className:t},r),u.default.createElement(FS,{className:"inbox-list"},o.map(function(e){return u.default.createElement(kS,{key:e.id,inboxNotification:e,onClick:n})})))}function qS(){var e=ar(lr()).count;return e?u.default.createElement("div",{className:"inbox-unread-count"},e):null}e.AmisComments=function(e){var t=e.className,r=void 0===t?"m-2 flex flex-col gap-y-2":t,o=e.roomId,i=e.readonly,a=void 0!==i&&i,s=e.indentCommentContent,c=void 0===s||s,l=e.showActions,d=void 0===l?"hover":l,f=e.showDeletedComments,h=e.showResolveAction,p=void 0===h||h,m=e.showReactions,g=void 0===m||m,v=e.showComposer,y=void 0===v?"collapsed":v,b=e.showAttachments,w=void 0===b||b,C=e.showComposerFormattingControls,D=void 0===C||C;return a&&(y=!1,d=!1),u.default.createElement(qr,{id:o},u.default.createElement(HS,{fallback:u.default.createElement("div",{className:"error"},"There was an error while getting threads.")},u.default.createElement(n.Suspense,{fallback:u.default.createElement(zS,null)},u.default.createElement("main",{className:r},u.default.createElement(US,{indentCommentContent:c,showActions:d,showDeletedComments:f,showResolveAction:p,showReactions:g,showComposer:y,showAttachments:w,showComposerFormattingControls:D})))))},e.AmisInboxPopover=function(e){var t=e.className,r=vE(e,["className"]),o=wE(n.useState(!1),2),i=o[0],a=o[1],c=pr(),l=gr();return u.default.createElement(Ox,{open:i,onOpenChange:a},u.default.createElement(Tx,{className:VS(t,"inbox-button square")},u.default.createElement(HS,{fallback:null},u.default.createElement(qm,{fallback:null},u.default.createElement(qS,null))),u.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",width:"20",height:"20"},u.default.createElement("path",{"fill-rule":"evenodd",d:"M12 2.25c-2.429 0-4.817.178-7.152.521C2.87 3.061 1.5 4.795 1.5 6.741v6.018c0 1.946 1.37 3.68 3.348 3.97.877.129 1.761.234 2.652.316V21a.75.75 0 0 0 1.28.53l4.184-4.183a.39.39 0 0 1 .266-.112c2.006-.05 3.982-.22 5.922-.506 1.978-.29 3.348-2.023 3.348-3.97V6.741c0-1.947-1.37-3.68-3.348-3.97A49.145 49.145 0 0 0 12 2.25ZM8.25 8.625a1.125 1.125 0 1 0 0 2.25 1.125 1.125 0 0 0 0-2.25Zm2.625 1.125a1.125 1.125 0 1 1 2.25 0 1.125 1.125 0 0 1-2.25 0Zm4.875-1.125a1.125 1.125 0 1 0 0 2.25 1.125 1.125 0 0 0 0-2.25Z","clip-rule":"evenodd"}))),u.default.createElement(Bx,null,u.default.createElement(kx,gE({className:"inbox",collisionPadding:16,sideOffset:8},r),u.default.createElement("div",{className:"inbox-header"},u.default.createElement("span",{className:"inbox-title"},s.default.t("liveblocks:frontend_comment_inbox")),u.default.createElement("div",{className:"inbox-buttons"},u.default.createElement("button",{className:"inbox-button",onClick:c},s.default.t("liveblocks:frontend_mark_all_read")),u.default.createElement("button",{className:"inbox-button destructive",onClick:l},s.default.t("liveblocks:frontend_delete_all")))),u.default.createElement(HS,{fallback:u.default.createElement("div",{className:"error"},s.default.t("liveblocks:frontend_fallback_error"))},u.default.createElement(qm,{fallback:u.default.createElement(zS,null)},u.default.createElement($S,{onClick:function(e){console.log("clicked"),a(!1)}}))))))},e.AmisRoomsProvider=function(e){var t,r=e.data,o=e.baseUrl,i=e.children,a=e.body,c=e.render,l=e.readonly,d=void 0!==l&&l,f=wE(n.useState(null),2),p=f[0],m=f[1],g=o||(null===(t=r.context)||void 0===t?void 0:t.rootUrl)||"".concat(window.location.protocol,"//").concat(window.location.host);console.log("liveblocks baseUrl:",g);var v=s.default.language.startsWith("zh")?h:{},y=gE({locale:s.default.language},v),b=y.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented||"commented",w=y.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in||"in",C=y.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread||"in a thread";return y.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST=function(e,t){return u.default.createElement(u.default.Fragment,null,e," ",b,t?u.default.createElement(u.default.Fragment,null," ",w," ",t):u.default.createElement(u.default.Fragment,null," ",C))},u.default.createElement(gf,{overrides:y},u.default.createElement(fr,{baseUrl:g,authEndpoint:function(e){return yE(void 0,void 0,void 0,function(){var t,n,r,o,i,a;return bE(this,function(s){switch(s.label){case 0:return t="".concat(g,"/v2/c/auth"),n={"Content-Type":"application/json"},r=localStorage.getItem("steedos:authToken"),(o=localStorage.getItem("steedos:spaceId"))&&r&&(n.Authorization="Bearer ".concat(o,",").concat(r)),i=JSON.stringify({room:e,readonly:d}),[4,fetch(t,{method:"POST",headers:n,body:i,credentials:"include"})];case 1:return[4,s.sent().json()];case 2:return a=s.sent(),m(a.token),[2,a]}})})},resolveRoomsInfo:function(e){return yE(void 0,[e],void 0,function(e){var t,n,r=e.roomIds;return bE(this,function(e){switch(e.label){case 0:return t=new URLSearchParams(r.map(function(e){return["roomIds",e]})),[4,fetch("".concat(g,"/v2/c/rooms?").concat(t),{headers:{Authorization:"Bearer ".concat(p)}})];case 1:if(!(n=e.sent()).ok)throw new Error(s.default.t("liveblocks:frontend_fetch_rooms_info_error"));return[4,n.json()];case 2:return[2,e.sent()]}})})},resolveUsers:function(e){return yE(void 0,[e],void 0,function(e){var t,n,r=e.userIds;return bE(this,function(e){switch(e.label){case 0:return t=new URLSearchParams(r.map(function(e){return["userIds",e]})),[4,fetch("".concat(g,"/v2/c/users?").concat(t),{headers:{Authorization:"Bearer ".concat(p)}})];case 1:if(!(n=e.sent()).ok)throw new Error(s.default.t("liveblocks:frontend_fetch_users_error"));return[4,n.json()];case 2:return[2,e.sent()]}})})},resolveMentionSuggestions:function(e){return yE(void 0,[e],void 0,function(e){var t,n=e.text,r=void 0===n?"":n;return bE(this,function(e){switch(e.label){case 0:return[4,fetch("".concat(g,"/v2/c/users/search?keyword=").concat(encodeURIComponent(r)),{headers:{Authorization:"Bearer ".concat(p)}})];case 1:if(!(t=e.sent()).ok)throw new Error(s.default.t("liveblocks:frontend_fetch_mention_suggestions_error"));return[4,t.json()];case 2:return[2,e.sent()]}})})}},a&&c("body",a,{}),i))},e.Threads=US,Object.defineProperty(e,"__esModule",{value:!0})});