[{"data":1,"prerenderedAt":1455},["ShallowReactive",2],{"navigation":3,"\u002Fcomposables\u002Fuserealtimepresence":111,"\u002Fcomposables\u002Fuserealtimepresence-surround":1450},[4,38,77,97,104],{"title":5,"path":6,"stem":7,"children":8,"icon":37},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17,22,27,32],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",{"title":23,"path":24,"stem":25,"icon":26},"Usage","\u002Fgetting-started\u002Fusage","1.getting-started\u002F4.usage","i-lucide-code",{"title":28,"path":29,"stem":30,"icon":31},"Authentication","\u002Fgetting-started\u002Fauthentication","1.getting-started\u002F5.authentication","i-lucide-lock",{"title":33,"path":34,"stem":35,"icon":36},"DevTools","\u002Fgetting-started\u002Fdevtools","1.getting-started\u002F6.devtools","i-lucide-radio-tower",false,{"title":39,"icon":26,"path":40,"stem":41,"children":42,"page":37},"Composables","\u002Fcomposables","2.composables",[43,48,53,58,63,67,72],{"title":44,"path":45,"stem":46,"icon":47},"useRealtimeState","\u002Fcomposables\u002Fuserealtimestate","2.composables\u002F1.useRealtimeState","i-lucide-refresh-cw",{"title":49,"path":50,"stem":51,"icon":52},"useRealtimeEvents","\u002Fcomposables\u002Fuserealtimeevents","2.composables\u002F2.useRealtimeEvents","i-lucide-radio",{"title":54,"path":55,"stem":56,"icon":57},"useRealtimeConnection","\u002Fcomposables\u002Fuserealtimeconnection","2.composables\u002F3.useRealtimeConnection","i-lucide-wifi",{"title":59,"path":60,"stem":61,"icon":62},"useRealtimePresence","\u002Fcomposables\u002Fuserealtimepresence","2.composables\u002F4.useRealtimePresence","i-lucide-users",{"title":64,"path":65,"stem":66,"icon":31},"useRealtimeLock","\u002Fcomposables\u002Fuserealtimelock","2.composables\u002F5.useRealtimeLock",{"title":68,"path":69,"stem":70,"icon":71},"useRealtimeLockRoom","\u002Fcomposables\u002Fuserealtimelockroom","2.composables\u002F6.useRealtimeLockRoom","i-lucide-list-checks",{"title":73,"path":74,"stem":75,"icon":76},"useRealtimeRoom","\u002Fcomposables\u002Fuserealtimeroom","2.composables\u002F7.useRealtimeRoom","i-lucide-door-open",{"title":78,"icon":79,"path":80,"stem":81,"children":82,"page":37},"Technical","i-lucide-cpu","\u002Ftechnical","3.technical",[83,88,92],{"title":84,"path":85,"stem":86,"icon":87},"Architecture","\u002Ftechnical\u002Farchitecture","3.technical\u002F1.architecture","i-lucide-network",{"title":89,"path":90,"stem":91,"icon":52},"Notification Layer","\u002Ftechnical\u002Fpubsub","3.technical\u002F2.pubsub",{"title":93,"path":94,"stem":95,"icon":96},"Multi-Server Sync","\u002Ftechnical\u002Fcross-server-sync","3.technical\u002F3.cross-server-sync","i-lucide-server",{"title":98,"path":99,"stem":100,"children":101,"icon":103},"Blocks","\u002Fblocks","4.blocks\u002F1.index",[102],{"title":98,"path":99,"stem":100,"icon":103},"i-lucide-layout-grid",{"title":105,"path":106,"stem":107,"children":108,"icon":110},"Components","\u002Fcomponents","5.components\u002F1.index",[109],{"title":105,"path":106,"stem":107,"icon":110},"i-lucide-component",{"id":112,"title":59,"body":113,"description":1443,"extension":1444,"links":1445,"meta":1446,"navigation":1447,"path":60,"seo":1448,"stem":61,"__hash__":1449},"docs\u002F2.composables\u002F4.useRealtimePresence.md",{"type":114,"value":115,"toc":1426},"minimark",[116,120,124,128,405,409,481,485,489,509,518,521,535,591,602,606,703,705,711,812,816,828,884,888,891,945,949,953,956,1240,1244,1247,1422],[117,118,59],"h1",{"id":119},"userealtimepresence",[121,122,123],"p",{},"Track which clients are currently present in a room, with optional info about each one (a name, avatar, cursor position). Useful for \"who's viewing this page\" indicators, avatar stacks, and online lists.",[125,126,23],"h2",{"id":127},"usage",[129,130,135],"pre",{"className":131,"code":132,"language":133,"meta":134,"style":134},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nconst { members, join, leave } = useRealtimePresence('document:123', {\n  info: { name: 'Alice', avatarUrl: '\u002Falice.png' },\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CUAvatarGroup>\n    \u003CUAvatar\n      v-for=\"(info, connectionId) in members\"\n      :key=\"connectionId\"\n      :src=\"info.avatarUrl\"\n      :text=\"info.name[0]\"\n    \u002F>\n  \u003C\u002FUAvatarGroup>\n\u003C\u002Ftemplate>\n","vue","",[136,137,138,173,223,264,272,282,289,299,310,319,335,350,365,380,386,396],"code",{"__ignoreMap":134},[139,140,143,147,151,155,158,161,164,168,170],"span",{"class":141,"line":142},"line",1,[139,144,146],{"class":145},"sMK4o","\u003C",[139,148,150],{"class":149},"swJcz","script",[139,152,154],{"class":153},"spNyl"," setup",[139,156,157],{"class":153}," lang",[139,159,160],{"class":145},"=",[139,162,163],{"class":145},"\"",[139,165,167],{"class":166},"sfazB","ts",[139,169,163],{"class":145},[139,171,172],{"class":145},">\n",[139,174,176,179,182,186,189,192,194,197,200,203,207,210,213,216,218,220],{"class":141,"line":175},2,[139,177,178],{"class":153},"const",[139,180,181],{"class":145}," {",[139,183,185],{"class":184},"sTEyZ"," members",[139,187,188],{"class":145},",",[139,190,191],{"class":184}," join",[139,193,188],{"class":145},[139,195,196],{"class":184}," leave ",[139,198,199],{"class":145},"}",[139,201,202],{"class":145}," =",[139,204,206],{"class":205},"s2Zo4"," useRealtimePresence",[139,208,209],{"class":184},"(",[139,211,212],{"class":145},"'",[139,214,215],{"class":166},"document:123",[139,217,212],{"class":145},[139,219,188],{"class":145},[139,221,222],{"class":145}," {\n",[139,224,226,229,232,234,237,239,242,245,247,249,252,254,256,259,261],{"class":141,"line":225},3,[139,227,228],{"class":149},"  info",[139,230,231],{"class":145},":",[139,233,181],{"class":145},[139,235,236],{"class":149}," name",[139,238,231],{"class":145},[139,240,241],{"class":145}," '",[139,243,244],{"class":166},"Alice",[139,246,212],{"class":145},[139,248,188],{"class":145},[139,250,251],{"class":149}," avatarUrl",[139,253,231],{"class":145},[139,255,241],{"class":145},[139,257,258],{"class":166},"\u002Falice.png",[139,260,212],{"class":145},[139,262,263],{"class":145}," },\n",[139,265,267,269],{"class":141,"line":266},4,[139,268,199],{"class":145},[139,270,271],{"class":184},")\n",[139,273,275,278,280],{"class":141,"line":274},5,[139,276,277],{"class":145},"\u003C\u002F",[139,279,150],{"class":149},[139,281,172],{"class":145},[139,283,285],{"class":141,"line":284},6,[139,286,288],{"emptyLinePlaceholder":287},true,"\n",[139,290,292,294,297],{"class":141,"line":291},7,[139,293,146],{"class":145},[139,295,296],{"class":149},"template",[139,298,172],{"class":145},[139,300,302,305,308],{"class":141,"line":301},8,[139,303,304],{"class":145},"  \u003C",[139,306,307],{"class":149},"UAvatarGroup",[139,309,172],{"class":145},[139,311,313,316],{"class":141,"line":312},9,[139,314,315],{"class":145},"    \u003C",[139,317,318],{"class":149},"UAvatar\n",[139,320,322,325,327,329,332],{"class":141,"line":321},10,[139,323,324],{"class":153},"      v-for",[139,326,160],{"class":145},[139,328,163],{"class":145},[139,330,331],{"class":166},"(info, connectionId) in members",[139,333,334],{"class":145},"\"\n",[139,336,338,341,343,345,348],{"class":141,"line":337},11,[139,339,340],{"class":153},"      :key",[139,342,160],{"class":145},[139,344,163],{"class":145},[139,346,347],{"class":166},"connectionId",[139,349,334],{"class":145},[139,351,353,356,358,360,363],{"class":141,"line":352},12,[139,354,355],{"class":153},"      :src",[139,357,160],{"class":145},[139,359,163],{"class":145},[139,361,362],{"class":166},"info.avatarUrl",[139,364,334],{"class":145},[139,366,368,371,373,375,378],{"class":141,"line":367},13,[139,369,370],{"class":153},"      :text",[139,372,160],{"class":145},[139,374,163],{"class":145},[139,376,377],{"class":166},"info.name[0]",[139,379,334],{"class":145},[139,381,383],{"class":141,"line":382},14,[139,384,385],{"class":145},"    \u002F>\n",[139,387,389,392,394],{"class":141,"line":388},15,[139,390,391],{"class":145},"  \u003C\u002F",[139,393,307],{"class":149},[139,395,172],{"class":145},[139,397,399,401,403],{"class":141,"line":398},16,[139,400,277],{"class":145},[139,402,296],{"class":149},[139,404,172],{"class":145},[125,406,408],{"id":407},"type-signature","Type Signature",[129,410,413],{"className":411,"code":412,"language":167,"meta":134,"style":134},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","function useRealtimePresence\u003CTInfo = unknown>(\n  room: string,\n  options?: UseRealtimePresenceOptions\u003CTInfo>\n): UseRealtimePresenceReturn\u003CTInfo>\n",[136,414,415,436,450,467],{"__ignoreMap":134},[139,416,417,420,422,424,428,430,433],{"class":141,"line":142},[139,418,419],{"class":153},"function",[139,421,206],{"class":205},[139,423,146],{"class":145},[139,425,427],{"class":426},"sBMFI","TInfo",[139,429,202],{"class":145},[139,431,432],{"class":426}," unknown",[139,434,435],{"class":145},">(\n",[139,437,438,442,444,447],{"class":141,"line":175},[139,439,441],{"class":440},"sHdIc","  room",[139,443,231],{"class":145},[139,445,446],{"class":426}," string",[139,448,449],{"class":145},",\n",[139,451,452,455,458,461,463,465],{"class":141,"line":225},[139,453,454],{"class":440},"  options",[139,456,457],{"class":145},"?:",[139,459,460],{"class":426}," UseRealtimePresenceOptions",[139,462,146],{"class":145},[139,464,427],{"class":426},[139,466,172],{"class":145},[139,468,469,472,475,477,479],{"class":141,"line":266},[139,470,471],{"class":145},"):",[139,473,474],{"class":426}," UseRealtimePresenceReturn",[139,476,146],{"class":145},[139,478,427],{"class":426},[139,480,172],{"class":145},[125,482,484],{"id":483},"parameters","Parameters",[486,487,488],"h3",{"id":488},"room",[490,491,492,503],"ul",{},[493,494,495,499,500],"li",{},[496,497,498],"strong",{},"Type:"," ",[136,501,502],{},"string",[493,504,505,508],{},[496,506,507],{},"Required:"," Yes",[121,510,511,512,514,515,517],{},"An opaque group tag. All clients calling ",[136,513,59],{}," with the same ",[136,516,488],{}," string see each other. It's just a string key, not tied to routes or URLs, so you can scope it however makes sense (a document id, a page path, a chat channel).",[486,519,520],{"id":520},"options",[490,522,523,530],{},[493,524,525,499,527],{},[496,526,498],{},[136,528,529],{},"UseRealtimePresenceOptions\u003CTInfo>",[493,531,532,534],{},[496,533,507],{}," No",[129,536,538],{"className":411,"code":537,"language":167,"meta":134,"style":134},"interface UseRealtimePresenceOptions\u003CTInfo> {\n  \u002F**\n   * Opaque data shown to other room members (e.g. `{ name, avatarUrl }`). Given up front, this\n   * client auto-joins the room on setup; omit it to only observe who else is present.\n   *\u002F\n  info?: TInfo\n}\n",[136,539,540,556,562,567,572,577,586],{"__ignoreMap":134},[139,541,542,545,547,549,551,554],{"class":141,"line":142},[139,543,544],{"class":153},"interface",[139,546,460],{"class":426},[139,548,146],{"class":145},[139,550,427],{"class":426},[139,552,553],{"class":145},">",[139,555,222],{"class":145},[139,557,558],{"class":141,"line":175},[139,559,561],{"class":560},"sHwdD","  \u002F**\n",[139,563,564],{"class":141,"line":225},[139,565,566],{"class":560},"   * Opaque data shown to other room members (e.g. `{ name, avatarUrl }`). Given up front, this\n",[139,568,569],{"class":141,"line":266},[139,570,571],{"class":560},"   * client auto-joins the room on setup; omit it to only observe who else is present.\n",[139,573,574],{"class":141,"line":274},[139,575,576],{"class":560},"   *\u002F\n",[139,578,579,581,583],{"class":141,"line":284},[139,580,228],{"class":149},[139,582,457],{"class":145},[139,584,585],{"class":426}," TInfo\n",[139,587,588],{"class":141,"line":291},[139,589,590],{"class":145},"}\n",[121,592,593,594,597,598,601],{},"Passing ",[136,595,596],{},"info"," joins the room immediately as a member. Omitting it lets you observe who's present without appearing in ",[136,599,600],{},"members"," yourself, useful for a spectator view.",[125,603,605],{"id":604},"return-value","Return Value",[129,607,609],{"className":411,"code":608,"language":167,"meta":134,"style":134},"interface UseRealtimePresenceReturn\u003CTInfo> {\n  members: Readonly\u003CRef\u003CRecord\u003Cstring, TInfo>>>\n  join: () => Promise\u003Cvoid>\n  leave: () => Promise\u003Cvoid>\n}\n",[136,610,611,625,657,680,699],{"__ignoreMap":134},[139,612,613,615,617,619,621,623],{"class":141,"line":142},[139,614,544],{"class":153},[139,616,474],{"class":426},[139,618,146],{"class":145},[139,620,427],{"class":426},[139,622,553],{"class":145},[139,624,222],{"class":145},[139,626,627,630,632,635,637,640,642,645,647,649,651,654],{"class":141,"line":175},[139,628,629],{"class":149},"  members",[139,631,231],{"class":145},[139,633,634],{"class":426}," Readonly",[139,636,146],{"class":145},[139,638,639],{"class":426},"Ref",[139,641,146],{"class":145},[139,643,644],{"class":426},"Record",[139,646,146],{"class":145},[139,648,502],{"class":426},[139,650,188],{"class":145},[139,652,653],{"class":426}," TInfo",[139,655,656],{"class":145},">>>\n",[139,658,659,662,664,667,670,673,675,678],{"class":141,"line":225},[139,660,661],{"class":149},"  join",[139,663,231],{"class":145},[139,665,666],{"class":145}," ()",[139,668,669],{"class":153}," =>",[139,671,672],{"class":426}," Promise",[139,674,146],{"class":145},[139,676,677],{"class":426},"void",[139,679,172],{"class":145},[139,681,682,685,687,689,691,693,695,697],{"class":141,"line":266},[139,683,684],{"class":149},"  leave",[139,686,231],{"class":145},[139,688,666],{"class":145},[139,690,669],{"class":153},[139,692,672],{"class":426},[139,694,146],{"class":145},[139,696,677],{"class":426},[139,698,172],{"class":145},[139,700,701],{"class":141,"line":274},[139,702,590],{"class":145},[486,704,600],{"id":600},[121,706,707,708,710],{},"A readonly ref keyed by connection id, with the ",[136,709,596],{}," each member joined with:",[129,712,714],{"className":411,"code":713,"language":167,"meta":134,"style":134},"const { members } = useRealtimePresence('document:123')\n\nwatchEffect(() => {\n  console.log(`${Object.keys(members.value).length} people here`)\n})\n",[136,715,716,741,745,759,806],{"__ignoreMap":134},[139,717,718,720,722,725,727,729,731,733,735,737,739],{"class":141,"line":142},[139,719,178],{"class":153},[139,721,181],{"class":145},[139,723,724],{"class":184}," members ",[139,726,199],{"class":145},[139,728,202],{"class":145},[139,730,206],{"class":205},[139,732,209],{"class":184},[139,734,212],{"class":145},[139,736,215],{"class":166},[139,738,212],{"class":145},[139,740,271],{"class":184},[139,742,743],{"class":141,"line":175},[139,744,288],{"emptyLinePlaceholder":287},[139,746,747,750,752,755,757],{"class":141,"line":225},[139,748,749],{"class":205},"watchEffect",[139,751,209],{"class":184},[139,753,754],{"class":145},"()",[139,756,669],{"class":153},[139,758,222],{"class":145},[139,760,761,764,767,770,772,775,778,780,783,786,788,791,793,796,798,801,804],{"class":141,"line":266},[139,762,763],{"class":184},"  console",[139,765,766],{"class":145},".",[139,768,769],{"class":205},"log",[139,771,209],{"class":149},[139,773,774],{"class":145},"`${",[139,776,777],{"class":184},"Object",[139,779,766],{"class":145},[139,781,782],{"class":205},"keys",[139,784,785],{"class":184},"(members",[139,787,766],{"class":145},[139,789,790],{"class":184},"value)",[139,792,766],{"class":145},[139,794,795],{"class":184},"length",[139,797,199],{"class":145},[139,799,800],{"class":166}," people here",[139,802,803],{"class":145},"`",[139,805,271],{"class":149},[139,807,808,810],{"class":141,"line":274},[139,809,199],{"class":145},[139,811,271],{"class":184},[486,813,815],{"id":814},"join","join()",[121,817,818,819,821,822,824,825,827],{},"Joins the room using the ",[136,820,596],{}," passed to the composable. Called automatically if ",[136,823,596],{}," was provided; call it manually if you joined without ",[136,826,596],{}," and want to become a member later:",[129,829,831],{"className":411,"code":830,"language":167,"meta":134,"style":134},"const { join } = useRealtimePresence('document:123')\n\nfunction startEditing() {\n  join()\n}\n",[136,832,833,858,862,873,880],{"__ignoreMap":134},[139,834,835,837,839,842,844,846,848,850,852,854,856],{"class":141,"line":142},[139,836,178],{"class":153},[139,838,181],{"class":145},[139,840,841],{"class":184}," join ",[139,843,199],{"class":145},[139,845,202],{"class":145},[139,847,206],{"class":205},[139,849,209],{"class":184},[139,851,212],{"class":145},[139,853,215],{"class":166},[139,855,212],{"class":145},[139,857,271],{"class":184},[139,859,860],{"class":141,"line":175},[139,861,288],{"emptyLinePlaceholder":287},[139,863,864,866,869,871],{"class":141,"line":225},[139,865,419],{"class":153},[139,867,868],{"class":205}," startEditing",[139,870,754],{"class":145},[139,872,222],{"class":145},[139,874,875,877],{"class":141,"line":266},[139,876,661],{"class":205},[139,878,879],{"class":149},"()\n",[139,881,882],{"class":141,"line":274},[139,883,590],{"class":145},[486,885,887],{"id":886},"leave","leave()",[121,889,890],{},"Leaves the room. Also called automatically on unmount:",[129,892,894],{"className":411,"code":893,"language":167,"meta":134,"style":134},"const { leave } = useRealtimePresence('document:123')\n\nfunction stopEditing() {\n  leave()\n}\n",[136,895,896,920,924,935,941],{"__ignoreMap":134},[139,897,898,900,902,904,906,908,910,912,914,916,918],{"class":141,"line":142},[139,899,178],{"class":153},[139,901,181],{"class":145},[139,903,196],{"class":184},[139,905,199],{"class":145},[139,907,202],{"class":145},[139,909,206],{"class":205},[139,911,209],{"class":184},[139,913,212],{"class":145},[139,915,215],{"class":166},[139,917,212],{"class":145},[139,919,271],{"class":184},[139,921,922],{"class":141,"line":175},[139,923,288],{"emptyLinePlaceholder":287},[139,925,926,928,931,933],{"class":141,"line":225},[139,927,419],{"class":153},[139,929,930],{"class":205}," stopEditing",[139,932,754],{"class":145},[139,934,222],{"class":145},[139,936,937,939],{"class":141,"line":266},[139,938,684],{"class":205},[139,940,879],{"class":149},[139,942,943],{"class":141,"line":274},[139,944,590],{"class":145},[125,946,948],{"id":947},"examples","Examples",[486,950,952],{"id":951},"whos-viewing-this-page","Who's Viewing This Page",[121,954,955],{},"Show an avatar stack of everyone currently viewing:",[129,957,960],{"className":131,"code":958,"filename":959,"language":133,"meta":134,"style":134},"\u003Cscript setup lang=\"ts\">\nconst props = defineProps\u003C{ documentId: string }>()\nconst currentUser = useCurrentUser()\n\nconst { members } = useRealtimePresence(`document:${props.documentId}`, {\n  info: { name: currentUser.name, avatarUrl: currentUser.avatarUrl },\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CUAvatarGroup :max=\"5\">\n    \u003CUAvatar\n      v-for=\"(info, connectionId) in members\"\n      :key=\"connectionId\"\n      :src=\"info.avatarUrl\"\n      :alt=\"info.name\"\n      :text=\"info.name[0]\"\n    \u002F>\n  \u003C\u002FUAvatarGroup>\n\u003C\u002Ftemplate>\n","ViewerAvatars.vue",[136,961,962,982,1009,1023,1027,1066,1102,1108,1116,1120,1128,1148,1154,1166,1178,1190,1204,1217,1222,1231],{"__ignoreMap":134},[139,963,964,966,968,970,972,974,976,978,980],{"class":141,"line":142},[139,965,146],{"class":145},[139,967,150],{"class":149},[139,969,154],{"class":153},[139,971,157],{"class":153},[139,973,160],{"class":145},[139,975,163],{"class":145},[139,977,167],{"class":166},[139,979,163],{"class":145},[139,981,172],{"class":145},[139,983,984,986,989,991,994,997,1000,1002,1004,1007],{"class":141,"line":175},[139,985,178],{"class":153},[139,987,988],{"class":184}," props ",[139,990,160],{"class":145},[139,992,993],{"class":205}," defineProps",[139,995,996],{"class":145},"\u003C{",[139,998,999],{"class":149}," documentId",[139,1001,231],{"class":145},[139,1003,446],{"class":426},[139,1005,1006],{"class":145}," }>",[139,1008,879],{"class":184},[139,1010,1011,1013,1016,1018,1021],{"class":141,"line":225},[139,1012,178],{"class":153},[139,1014,1015],{"class":184}," currentUser ",[139,1017,160],{"class":145},[139,1019,1020],{"class":205}," useCurrentUser",[139,1022,879],{"class":184},[139,1024,1025],{"class":141,"line":266},[139,1026,288],{"emptyLinePlaceholder":287},[139,1028,1029,1031,1033,1035,1037,1039,1041,1043,1045,1048,1051,1054,1056,1059,1062,1064],{"class":141,"line":274},[139,1030,178],{"class":153},[139,1032,181],{"class":145},[139,1034,724],{"class":184},[139,1036,199],{"class":145},[139,1038,202],{"class":145},[139,1040,206],{"class":205},[139,1042,209],{"class":184},[139,1044,803],{"class":145},[139,1046,1047],{"class":166},"document:",[139,1049,1050],{"class":145},"${",[139,1052,1053],{"class":184},"props",[139,1055,766],{"class":145},[139,1057,1058],{"class":184},"documentId",[139,1060,1061],{"class":145},"}`",[139,1063,188],{"class":145},[139,1065,222],{"class":145},[139,1067,1068,1070,1072,1074,1076,1078,1081,1083,1086,1088,1090,1092,1094,1096,1099],{"class":141,"line":284},[139,1069,228],{"class":149},[139,1071,231],{"class":145},[139,1073,181],{"class":145},[139,1075,236],{"class":149},[139,1077,231],{"class":145},[139,1079,1080],{"class":184}," currentUser",[139,1082,766],{"class":145},[139,1084,1085],{"class":184},"name",[139,1087,188],{"class":145},[139,1089,251],{"class":149},[139,1091,231],{"class":145},[139,1093,1080],{"class":184},[139,1095,766],{"class":145},[139,1097,1098],{"class":184},"avatarUrl ",[139,1100,1101],{"class":145},"},\n",[139,1103,1104,1106],{"class":141,"line":291},[139,1105,199],{"class":145},[139,1107,271],{"class":184},[139,1109,1110,1112,1114],{"class":141,"line":301},[139,1111,277],{"class":145},[139,1113,150],{"class":149},[139,1115,172],{"class":145},[139,1117,1118],{"class":141,"line":312},[139,1119,288],{"emptyLinePlaceholder":287},[139,1121,1122,1124,1126],{"class":141,"line":321},[139,1123,146],{"class":145},[139,1125,296],{"class":149},[139,1127,172],{"class":145},[139,1129,1130,1132,1134,1137,1139,1141,1144,1146],{"class":141,"line":337},[139,1131,304],{"class":145},[139,1133,307],{"class":149},[139,1135,1136],{"class":153}," :max",[139,1138,160],{"class":145},[139,1140,163],{"class":145},[139,1142,1143],{"class":166},"5",[139,1145,163],{"class":145},[139,1147,172],{"class":145},[139,1149,1150,1152],{"class":141,"line":352},[139,1151,315],{"class":145},[139,1153,318],{"class":149},[139,1155,1156,1158,1160,1162,1164],{"class":141,"line":367},[139,1157,324],{"class":153},[139,1159,160],{"class":145},[139,1161,163],{"class":145},[139,1163,331],{"class":166},[139,1165,334],{"class":145},[139,1167,1168,1170,1172,1174,1176],{"class":141,"line":382},[139,1169,340],{"class":153},[139,1171,160],{"class":145},[139,1173,163],{"class":145},[139,1175,347],{"class":166},[139,1177,334],{"class":145},[139,1179,1180,1182,1184,1186,1188],{"class":141,"line":388},[139,1181,355],{"class":153},[139,1183,160],{"class":145},[139,1185,163],{"class":145},[139,1187,362],{"class":166},[139,1189,334],{"class":145},[139,1191,1192,1195,1197,1199,1202],{"class":141,"line":398},[139,1193,1194],{"class":153},"      :alt",[139,1196,160],{"class":145},[139,1198,163],{"class":145},[139,1200,1201],{"class":166},"info.name",[139,1203,334],{"class":145},[139,1205,1207,1209,1211,1213,1215],{"class":141,"line":1206},17,[139,1208,370],{"class":153},[139,1210,160],{"class":145},[139,1212,163],{"class":145},[139,1214,377],{"class":166},[139,1216,334],{"class":145},[139,1218,1220],{"class":141,"line":1219},18,[139,1221,385],{"class":145},[139,1223,1225,1227,1229],{"class":141,"line":1224},19,[139,1226,391],{"class":145},[139,1228,307],{"class":149},[139,1230,172],{"class":145},[139,1232,1234,1236,1238],{"class":141,"line":1233},20,[139,1235,277],{"class":145},[139,1237,296],{"class":149},[139,1239,172],{"class":145},[486,1241,1243],{"id":1242},"read-only-viewer-count","Read-Only Viewer Count",[121,1245,1246],{},"Observe the room without joining it, useful for a dashboard that shows activity without appearing as a \"viewer\" itself:",[129,1248,1251],{"className":131,"code":1249,"filename":1250,"language":133,"meta":134,"style":134},"\u003Cscript setup lang=\"ts\">\nconst props = defineProps\u003C{ documentId: string }>()\n\n\u002F\u002F No `info` passed: this client observes but doesn't join\nconst { members } = useRealtimePresence(`document:${props.documentId}`)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CUBadge color=\"neutral\" variant=\"subtle\" icon=\"i-lucide-eye\">\n    {{ Object.keys(members).length }} {{ Object.keys(members).length === 1 ? 'person' : 'people' }} currently viewing\n  \u003C\u002FUBadge>\n\u003C\u002Ftemplate>\n","ViewerCount.vue",[136,1252,1253,1273,1295,1299,1304,1336,1344,1348,1356,1401,1406,1414],{"__ignoreMap":134},[139,1254,1255,1257,1259,1261,1263,1265,1267,1269,1271],{"class":141,"line":142},[139,1256,146],{"class":145},[139,1258,150],{"class":149},[139,1260,154],{"class":153},[139,1262,157],{"class":153},[139,1264,160],{"class":145},[139,1266,163],{"class":145},[139,1268,167],{"class":166},[139,1270,163],{"class":145},[139,1272,172],{"class":145},[139,1274,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293],{"class":141,"line":175},[139,1276,178],{"class":153},[139,1278,988],{"class":184},[139,1280,160],{"class":145},[139,1282,993],{"class":205},[139,1284,996],{"class":145},[139,1286,999],{"class":149},[139,1288,231],{"class":145},[139,1290,446],{"class":426},[139,1292,1006],{"class":145},[139,1294,879],{"class":184},[139,1296,1297],{"class":141,"line":225},[139,1298,288],{"emptyLinePlaceholder":287},[139,1300,1301],{"class":141,"line":266},[139,1302,1303],{"class":560},"\u002F\u002F No `info` passed: this client observes but doesn't join\n",[139,1305,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328,1330,1332,1334],{"class":141,"line":274},[139,1307,178],{"class":153},[139,1309,181],{"class":145},[139,1311,724],{"class":184},[139,1313,199],{"class":145},[139,1315,202],{"class":145},[139,1317,206],{"class":205},[139,1319,209],{"class":184},[139,1321,803],{"class":145},[139,1323,1047],{"class":166},[139,1325,1050],{"class":145},[139,1327,1053],{"class":184},[139,1329,766],{"class":145},[139,1331,1058],{"class":184},[139,1333,1061],{"class":145},[139,1335,271],{"class":184},[139,1337,1338,1340,1342],{"class":141,"line":284},[139,1339,277],{"class":145},[139,1341,150],{"class":149},[139,1343,172],{"class":145},[139,1345,1346],{"class":141,"line":291},[139,1347,288],{"emptyLinePlaceholder":287},[139,1349,1350,1352,1354],{"class":141,"line":301},[139,1351,146],{"class":145},[139,1353,296],{"class":149},[139,1355,172],{"class":145},[139,1357,1358,1360,1363,1366,1368,1370,1373,1375,1378,1380,1382,1385,1387,1390,1392,1394,1397,1399],{"class":141,"line":312},[139,1359,304],{"class":145},[139,1361,1362],{"class":149},"UBadge",[139,1364,1365],{"class":153}," color",[139,1367,160],{"class":145},[139,1369,163],{"class":145},[139,1371,1372],{"class":166},"neutral",[139,1374,163],{"class":145},[139,1376,1377],{"class":153}," variant",[139,1379,160],{"class":145},[139,1381,163],{"class":145},[139,1383,1384],{"class":166},"subtle",[139,1386,163],{"class":145},[139,1388,1389],{"class":153}," icon",[139,1391,160],{"class":145},[139,1393,163],{"class":145},[139,1395,1396],{"class":166},"i-lucide-eye",[139,1398,163],{"class":145},[139,1400,172],{"class":145},[139,1402,1403],{"class":141,"line":321},[139,1404,1405],{"class":184},"    {{ Object.keys(members).length }} {{ Object.keys(members).length === 1 ? 'person' : 'people' }} currently viewing\n",[139,1407,1408,1410,1412],{"class":141,"line":337},[139,1409,391],{"class":145},[139,1411,1362],{"class":149},[139,1413,172],{"class":145},[139,1415,1416,1418,1420],{"class":141,"line":352},[139,1417,277],{"class":145},[139,1419,296],{"class":149},[139,1421,172],{"class":145},[1423,1424,1425],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":134,"searchDepth":142,"depth":175,"links":1427},[1428,1429,1430,1434,1439],{"id":127,"depth":175,"text":23},{"id":407,"depth":175,"text":408},{"id":483,"depth":175,"text":484,"children":1431},[1432,1433],{"id":488,"depth":225,"text":488},{"id":520,"depth":225,"text":520},{"id":604,"depth":175,"text":605,"children":1435},[1436,1437,1438],{"id":600,"depth":225,"text":600},{"id":814,"depth":225,"text":815},{"id":886,"depth":225,"text":887},{"id":947,"depth":175,"text":948,"children":1440},[1441,1442],{"id":951,"depth":225,"text":952},{"id":1242,"depth":225,"text":1243},"Track who else is present in a room.","md",null,{},{"icon":62},{"title":59,"description":1443},"GO8CWTapKOZwM1TZEAohkI9uCdIYdoJ3JhQb6L-9p_E",[1451,1453],{"title":54,"path":55,"stem":56,"description":1452,"icon":57,"children":-1},"Monitor and control the WebSocket connection.",{"title":64,"path":65,"stem":66,"description":1454,"icon":31,"children":-1},"Claim exclusive ownership of a resource across clients.",1787657973507]