[{"data":1,"prerenderedAt":1376},["ShallowReactive",2],{"navigation":3,"\u002Fcomposables\u002Fuserealtimelockroom":111,"\u002Fcomposables\u002Fuserealtimelockroom-surround":1371},[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":68,"body":113,"description":1364,"extension":1365,"links":1366,"meta":1367,"navigation":1368,"path":69,"seo":1369,"stem":70,"__hash__":1370},"docs\u002F2.composables\u002F6.useRealtimeLockRoom.md",{"type":114,"value":115,"toc":1350},"minimark",[116,120,141,145,558,562,588,592,595,615,626,630,718,720,727,801,805,809,812,1090,1094,1097,1346],[117,118,68],"h1",{"id":119},"userealtimelockroom",[121,122,123,124,128,129,134,135,137,138,140],"p",{},"Get a read-only overview of every lock tagged with a given ",[125,126,127],"code",{},"room",", without subscribing to each key individually. Pairs with ",[130,131,132],"a",{"href":65},[125,133,64],{},"'s ",[125,136,127],{}," option: any lock claimed with the same ",[125,139,127],{}," string shows up here.",[142,143,23],"h2",{"id":144},"usage",[146,147,152],"pre",{"className":148,"code":149,"language":150,"meta":151,"style":151},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\ninterface Owner { name: string }\n\nconst { locks } = useRealtimeLockRoom('board:main')\n\nfunction ownerName(cardId: string) {\n  return (locks.value[`card:${cardId}`]?.ownerInfo as Owner | undefined)?.name\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv v-for=\"cardId in cardIds\" :key=\"cardId\" class=\"flex items-center gap-2\">\n    Card {{ cardId }}:\n    \u003CUBadge v-if=\"locks[`card:${cardId}`]\" color=\"warning\" variant=\"subtle\">\n      Locked by {{ ownerName(cardId) ?? 'someone' }}\n    \u003C\u002FUBadge>\n    \u003CUBadge v-else color=\"success\" variant=\"subtle\">Free\u003C\u002FUBadge>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","vue","",[125,153,154,189,214,221,257,262,287,350,356,366,371,381,427,433,480,486,496,539,549],{"__ignoreMap":151},[155,156,159,163,167,171,174,177,180,184,186],"span",{"class":157,"line":158},"line",1,[155,160,162],{"class":161},"sMK4o","\u003C",[155,164,166],{"class":165},"swJcz","script",[155,168,170],{"class":169},"spNyl"," setup",[155,172,173],{"class":169}," lang",[155,175,176],{"class":161},"=",[155,178,179],{"class":161},"\"",[155,181,183],{"class":182},"sfazB","ts",[155,185,179],{"class":161},[155,187,188],{"class":161},">\n",[155,190,192,195,199,202,205,208,211],{"class":157,"line":191},2,[155,193,194],{"class":169},"interface",[155,196,198],{"class":197},"sBMFI"," Owner",[155,200,201],{"class":161}," {",[155,203,204],{"class":165}," name",[155,206,207],{"class":161},":",[155,209,210],{"class":197}," string",[155,212,213],{"class":161}," }\n",[155,215,217],{"class":157,"line":216},3,[155,218,220],{"emptyLinePlaceholder":219},true,"\n",[155,222,224,227,229,233,236,239,243,246,249,252,254],{"class":157,"line":223},4,[155,225,226],{"class":169},"const",[155,228,201],{"class":161},[155,230,232],{"class":231},"sTEyZ"," locks ",[155,234,235],{"class":161},"}",[155,237,238],{"class":161}," =",[155,240,242],{"class":241},"s2Zo4"," useRealtimeLockRoom",[155,244,245],{"class":231},"(",[155,247,248],{"class":161},"'",[155,250,251],{"class":182},"board:main",[155,253,248],{"class":161},[155,255,256],{"class":231},")\n",[155,258,260],{"class":157,"line":259},5,[155,261,220],{"emptyLinePlaceholder":219},[155,263,265,268,271,273,277,279,281,284],{"class":157,"line":264},6,[155,266,267],{"class":169},"function",[155,269,270],{"class":241}," ownerName",[155,272,245],{"class":161},[155,274,276],{"class":275},"sHdIc","cardId",[155,278,207],{"class":161},[155,280,210],{"class":197},[155,282,283],{"class":161},")",[155,285,286],{"class":161}," {\n",[155,288,290,294,297,300,303,306,309,312,315,318,320,323,326,329,332,335,337,340,343,345,347],{"class":157,"line":289},7,[155,291,293],{"class":292},"s7zQu","  return",[155,295,296],{"class":165}," (",[155,298,299],{"class":231},"locks",[155,301,302],{"class":161},".",[155,304,305],{"class":231},"value",[155,307,308],{"class":165},"[",[155,310,311],{"class":161},"`",[155,313,314],{"class":182},"card:",[155,316,317],{"class":161},"${",[155,319,276],{"class":231},[155,321,322],{"class":161},"}`",[155,324,325],{"class":165},"]",[155,327,328],{"class":161},"?.",[155,330,331],{"class":231},"ownerInfo",[155,333,334],{"class":292}," as",[155,336,198],{"class":197},[155,338,339],{"class":161}," |",[155,341,342],{"class":197}," undefined",[155,344,283],{"class":165},[155,346,328],{"class":161},[155,348,349],{"class":231},"name\n",[155,351,353],{"class":157,"line":352},8,[155,354,355],{"class":161},"}\n",[155,357,359,362,364],{"class":157,"line":358},9,[155,360,361],{"class":161},"\u003C\u002F",[155,363,166],{"class":165},[155,365,188],{"class":161},[155,367,369],{"class":157,"line":368},10,[155,370,220],{"emptyLinePlaceholder":219},[155,372,374,376,379],{"class":157,"line":373},11,[155,375,162],{"class":161},[155,377,378],{"class":165},"template",[155,380,188],{"class":161},[155,382,384,387,390,393,395,397,400,402,405,407,409,411,413,416,418,420,423,425],{"class":157,"line":383},12,[155,385,386],{"class":161},"  \u003C",[155,388,389],{"class":165},"div",[155,391,392],{"class":169}," v-for",[155,394,176],{"class":161},[155,396,179],{"class":161},[155,398,399],{"class":182},"cardId in cardIds",[155,401,179],{"class":161},[155,403,404],{"class":169}," :key",[155,406,176],{"class":161},[155,408,179],{"class":161},[155,410,276],{"class":182},[155,412,179],{"class":161},[155,414,415],{"class":169}," class",[155,417,176],{"class":161},[155,419,179],{"class":161},[155,421,422],{"class":182},"flex items-center gap-2",[155,424,179],{"class":161},[155,426,188],{"class":161},[155,428,430],{"class":157,"line":429},13,[155,431,432],{"class":231},"    Card {{ cardId }}:\n",[155,434,436,439,442,445,447,449,452,454,457,459,461,464,466,469,471,473,476,478],{"class":157,"line":435},14,[155,437,438],{"class":161},"    \u003C",[155,440,441],{"class":165},"UBadge",[155,443,444],{"class":169}," v-if",[155,446,176],{"class":161},[155,448,179],{"class":161},[155,450,451],{"class":182},"locks[`card:${cardId}`]",[155,453,179],{"class":161},[155,455,456],{"class":169}," color",[155,458,176],{"class":161},[155,460,179],{"class":161},[155,462,463],{"class":182},"warning",[155,465,179],{"class":161},[155,467,468],{"class":169}," variant",[155,470,176],{"class":161},[155,472,179],{"class":161},[155,474,475],{"class":182},"subtle",[155,477,179],{"class":161},[155,479,188],{"class":161},[155,481,483],{"class":157,"line":482},15,[155,484,485],{"class":231},"      Locked by {{ ownerName(cardId) ?? 'someone' }}\n",[155,487,489,492,494],{"class":157,"line":488},16,[155,490,491],{"class":161},"    \u003C\u002F",[155,493,441],{"class":165},[155,495,188],{"class":161},[155,497,499,501,503,506,508,510,512,515,517,519,521,523,525,527,530,533,535,537],{"class":157,"line":498},17,[155,500,438],{"class":161},[155,502,441],{"class":165},[155,504,505],{"class":169}," v-else",[155,507,456],{"class":169},[155,509,176],{"class":161},[155,511,179],{"class":161},[155,513,514],{"class":182},"success",[155,516,179],{"class":161},[155,518,468],{"class":169},[155,520,176],{"class":161},[155,522,179],{"class":161},[155,524,475],{"class":182},[155,526,179],{"class":161},[155,528,529],{"class":161},">",[155,531,532],{"class":231},"Free",[155,534,361],{"class":161},[155,536,441],{"class":165},[155,538,188],{"class":161},[155,540,542,545,547],{"class":157,"line":541},18,[155,543,544],{"class":161},"  \u003C\u002F",[155,546,389],{"class":165},[155,548,188],{"class":161},[155,550,552,554,556],{"class":157,"line":551},19,[155,553,361],{"class":161},[155,555,378],{"class":165},[155,557,188],{"class":161},[142,559,561],{"id":560},"type-signature","Type Signature",[146,563,566],{"className":564,"code":565,"language":183,"meta":151,"style":151},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","function useRealtimeLockRoom(room: string): UseRealtimeLockRoomReturn\n",[125,567,568],{"__ignoreMap":151},[155,569,570,572,574,576,578,580,582,585],{"class":157,"line":158},[155,571,267],{"class":169},[155,573,242],{"class":241},[155,575,245],{"class":161},[155,577,127],{"class":275},[155,579,207],{"class":161},[155,581,210],{"class":197},[155,583,584],{"class":161},"):",[155,586,587],{"class":197}," UseRealtimeLockRoomReturn\n",[142,589,591],{"id":590},"parameters","Parameters",[593,594,127],"h3",{"id":127},[596,597,598,609],"ul",{},[599,600,601,605,606],"li",{},[602,603,604],"strong",{},"Type:"," ",[125,607,608],{},"string",[599,610,611,614],{},[602,612,613],{},"Required:"," Yes",[121,616,617,618,620,621,623,624,302],{},"The same opaque group tag passed as the ",[125,619,127],{}," option to ",[125,622,64],{},". All locks claimed with that tag appear in this composable's ",[125,625,299],{},[142,627,629],{"id":628},"return-value","Return Value",[146,631,633],{"className":564,"code":632,"language":183,"meta":151,"style":151},"interface UseRealtimeLockRoomReturn {\n  locks: Readonly\u003CRef\u003CLockRoomSnapshot>>\n}\n\ntype LockRoomSnapshot = Record\u003Cstring, { owner: string, ownerInfo?: unknown }>\n",[125,634,635,644,667,671,675],{"__ignoreMap":151},[155,636,637,639,642],{"class":157,"line":158},[155,638,194],{"class":169},[155,640,641],{"class":197}," UseRealtimeLockRoomReturn",[155,643,286],{"class":161},[155,645,646,649,651,654,656,659,661,664],{"class":157,"line":191},[155,647,648],{"class":165},"  locks",[155,650,207],{"class":161},[155,652,653],{"class":197}," Readonly",[155,655,162],{"class":161},[155,657,658],{"class":197},"Ref",[155,660,162],{"class":161},[155,662,663],{"class":197},"LockRoomSnapshot",[155,665,666],{"class":161},">>\n",[155,668,669],{"class":157,"line":216},[155,670,355],{"class":161},[155,672,673],{"class":157,"line":223},[155,674,220],{"emptyLinePlaceholder":219},[155,676,677,680,683,685,688,690,692,695,697,700,702,704,706,709,712,715],{"class":157,"line":259},[155,678,679],{"class":169},"type",[155,681,682],{"class":197}," LockRoomSnapshot",[155,684,238],{"class":161},[155,686,687],{"class":197}," Record",[155,689,162],{"class":161},[155,691,608],{"class":197},[155,693,694],{"class":161},",",[155,696,201],{"class":161},[155,698,699],{"class":165}," owner",[155,701,207],{"class":161},[155,703,210],{"class":197},[155,705,694],{"class":161},[155,707,708],{"class":165}," ownerInfo",[155,710,711],{"class":161},"?:",[155,713,714],{"class":197}," unknown",[155,716,717],{"class":161}," }>\n",[593,719,299],{"id":299},[121,721,722,723,726],{},"Current ",[125,724,725],{},"{ [key]: { owner, ownerInfo } }"," for every lock tagged with this room. A key with no entry is unlocked:",[146,728,730],{"className":564,"code":729,"language":183,"meta":151,"style":151},"const { locks } = useRealtimeLockRoom('board:main')\n\nconst lockedCount = computed(() => Object.keys(locks.value).length)\n",[125,731,732,756,760],{"__ignoreMap":151},[155,733,734,736,738,740,742,744,746,748,750,752,754],{"class":157,"line":158},[155,735,226],{"class":169},[155,737,201],{"class":161},[155,739,232],{"class":231},[155,741,235],{"class":161},[155,743,238],{"class":161},[155,745,242],{"class":241},[155,747,245],{"class":231},[155,749,248],{"class":161},[155,751,251],{"class":182},[155,753,248],{"class":161},[155,755,256],{"class":231},[155,757,758],{"class":157,"line":191},[155,759,220],{"emptyLinePlaceholder":219},[155,761,762,764,767,769,772,774,777,780,783,785,788,791,793,796,798],{"class":157,"line":216},[155,763,226],{"class":169},[155,765,766],{"class":231}," lockedCount ",[155,768,176],{"class":161},[155,770,771],{"class":241}," computed",[155,773,245],{"class":231},[155,775,776],{"class":161},"()",[155,778,779],{"class":169}," =>",[155,781,782],{"class":231}," Object",[155,784,302],{"class":161},[155,786,787],{"class":241},"keys",[155,789,790],{"class":231},"(locks",[155,792,302],{"class":161},[155,794,795],{"class":231},"value)",[155,797,302],{"class":161},[155,799,800],{"class":231},"length)\n",[142,802,804],{"id":803},"examples","Examples",[593,806,808],{"id":807},"locked-cards-overview-on-a-kanban-board","Locked Cards Overview on a Kanban Board",[121,810,811],{},"Show which cards are currently being edited across the whole board, without a per-card subscription:",[146,813,816],{"className":148,"code":814,"filename":815,"language":150,"meta":151,"style":151},"\u003Cscript setup lang=\"ts\">\nconst cards = useRealtimeState('board:main:cards', [])\nconst { locks } = useRealtimeLockRoom('board:main')\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv class=\"grid grid-cols-3 gap-4\">\n    \u003CUCard\n      v-for=\"card in cards\"\n      :key=\"card.id\"\n      :class=\"{ 'ring-2 ring-warning': locks[`card:${card.id}`] }\"\n    >\n      \u003Cp>{{ card.title }}\u003C\u002Fp>\n      \u003CUBadge v-if=\"locks[`card:${card.id}`]\" color=\"warning\" variant=\"subtle\" size=\"sm\">\n        {{ locks[`card:${card.id}`].ownerInfo?.name }} is editing\n      \u003C\u002FUBadge>\n    \u003C\u002FUCard>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","KanbanBoard.vue",[125,817,818,838,864,888,896,900,908,927,934,949,963,977,982,1000,1051,1056,1065,1074,1082],{"__ignoreMap":151},[155,819,820,822,824,826,828,830,832,834,836],{"class":157,"line":158},[155,821,162],{"class":161},[155,823,166],{"class":165},[155,825,170],{"class":169},[155,827,173],{"class":169},[155,829,176],{"class":161},[155,831,179],{"class":161},[155,833,183],{"class":182},[155,835,179],{"class":161},[155,837,188],{"class":161},[155,839,840,842,845,847,850,852,854,857,859,861],{"class":157,"line":191},[155,841,226],{"class":169},[155,843,844],{"class":231}," cards ",[155,846,176],{"class":161},[155,848,849],{"class":241}," useRealtimeState",[155,851,245],{"class":231},[155,853,248],{"class":161},[155,855,856],{"class":182},"board:main:cards",[155,858,248],{"class":161},[155,860,694],{"class":161},[155,862,863],{"class":231}," [])\n",[155,865,866,868,870,872,874,876,878,880,882,884,886],{"class":157,"line":216},[155,867,226],{"class":169},[155,869,201],{"class":161},[155,871,232],{"class":231},[155,873,235],{"class":161},[155,875,238],{"class":161},[155,877,242],{"class":241},[155,879,245],{"class":231},[155,881,248],{"class":161},[155,883,251],{"class":182},[155,885,248],{"class":161},[155,887,256],{"class":231},[155,889,890,892,894],{"class":157,"line":223},[155,891,361],{"class":161},[155,893,166],{"class":165},[155,895,188],{"class":161},[155,897,898],{"class":157,"line":259},[155,899,220],{"emptyLinePlaceholder":219},[155,901,902,904,906],{"class":157,"line":264},[155,903,162],{"class":161},[155,905,378],{"class":165},[155,907,188],{"class":161},[155,909,910,912,914,916,918,920,923,925],{"class":157,"line":289},[155,911,386],{"class":161},[155,913,389],{"class":165},[155,915,415],{"class":169},[155,917,176],{"class":161},[155,919,179],{"class":161},[155,921,922],{"class":182},"grid grid-cols-3 gap-4",[155,924,179],{"class":161},[155,926,188],{"class":161},[155,928,929,931],{"class":157,"line":352},[155,930,438],{"class":161},[155,932,933],{"class":165},"UCard\n",[155,935,936,939,941,943,946],{"class":157,"line":358},[155,937,938],{"class":169},"      v-for",[155,940,176],{"class":161},[155,942,179],{"class":161},[155,944,945],{"class":182},"card in cards",[155,947,948],{"class":161},"\"\n",[155,950,951,954,956,958,961],{"class":157,"line":368},[155,952,953],{"class":169},"      :key",[155,955,176],{"class":161},[155,957,179],{"class":161},[155,959,960],{"class":182},"card.id",[155,962,948],{"class":161},[155,964,965,968,970,972,975],{"class":157,"line":373},[155,966,967],{"class":169},"      :class",[155,969,176],{"class":161},[155,971,179],{"class":161},[155,973,974],{"class":182},"{ 'ring-2 ring-warning': locks[`card:${card.id}`] }",[155,976,948],{"class":161},[155,978,979],{"class":157,"line":383},[155,980,981],{"class":161},"    >\n",[155,983,984,987,989,991,994,996,998],{"class":157,"line":429},[155,985,986],{"class":161},"      \u003C",[155,988,121],{"class":165},[155,990,529],{"class":161},[155,992,993],{"class":231},"{{ card.title }}",[155,995,361],{"class":161},[155,997,121],{"class":165},[155,999,188],{"class":161},[155,1001,1002,1004,1006,1008,1010,1012,1015,1017,1019,1021,1023,1025,1027,1029,1031,1033,1035,1037,1040,1042,1044,1047,1049],{"class":157,"line":435},[155,1003,986],{"class":161},[155,1005,441],{"class":165},[155,1007,444],{"class":169},[155,1009,176],{"class":161},[155,1011,179],{"class":161},[155,1013,1014],{"class":182},"locks[`card:${card.id}`]",[155,1016,179],{"class":161},[155,1018,456],{"class":169},[155,1020,176],{"class":161},[155,1022,179],{"class":161},[155,1024,463],{"class":182},[155,1026,179],{"class":161},[155,1028,468],{"class":169},[155,1030,176],{"class":161},[155,1032,179],{"class":161},[155,1034,475],{"class":182},[155,1036,179],{"class":161},[155,1038,1039],{"class":169}," size",[155,1041,176],{"class":161},[155,1043,179],{"class":161},[155,1045,1046],{"class":182},"sm",[155,1048,179],{"class":161},[155,1050,188],{"class":161},[155,1052,1053],{"class":157,"line":482},[155,1054,1055],{"class":231},"        {{ locks[`card:${card.id}`].ownerInfo?.name }} is editing\n",[155,1057,1058,1061,1063],{"class":157,"line":488},[155,1059,1060],{"class":161},"      \u003C\u002F",[155,1062,441],{"class":165},[155,1064,188],{"class":161},[155,1066,1067,1069,1072],{"class":157,"line":498},[155,1068,491],{"class":161},[155,1070,1071],{"class":165},"UCard",[155,1073,188],{"class":161},[155,1075,1076,1078,1080],{"class":157,"line":541},[155,1077,544],{"class":161},[155,1079,389],{"class":165},[155,1081,188],{"class":161},[155,1083,1084,1086,1088],{"class":157,"line":551},[155,1085,361],{"class":161},[155,1087,378],{"class":165},[155,1089,188],{"class":161},[593,1091,1093],{"id":1092},"spreadsheet-cell-locks","Spreadsheet Cell Locks",[121,1095,1096],{},"Highlight cells currently locked by other users while editing a shared sheet:",[146,1098,1101],{"className":148,"code":1099,"filename":1100,"language":150,"meta":151,"style":151},"\u003Cscript setup lang=\"ts\">\ninterface Owner { name: string }\n\nconst { locks } = useRealtimeLockRoom('sheet:123')\n\nfunction cellLockedBy(cellId: string) {\n  return locks.value[`cell:${cellId}`]?.ownerInfo as Owner | undefined\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Ctd\n    v-for=\"cell in cells\"\n    :key=\"cell.id\"\n    :class=\"{ 'bg-yellow-100': cellLockedBy(cell.id) }\"\n    :title=\"cellLockedBy(cell.id)?.name\"\n  >\n    {{ cell.value }}\n  \u003C\u002Ftd>\n\u003C\u002Ftemplate>\n","Spreadsheet.vue",[125,1102,1103,1123,1139,1143,1168,1172,1192,1231,1235,1243,1247,1255,1262,1276,1290,1304,1318,1323,1328,1337],{"__ignoreMap":151},[155,1104,1105,1107,1109,1111,1113,1115,1117,1119,1121],{"class":157,"line":158},[155,1106,162],{"class":161},[155,1108,166],{"class":165},[155,1110,170],{"class":169},[155,1112,173],{"class":169},[155,1114,176],{"class":161},[155,1116,179],{"class":161},[155,1118,183],{"class":182},[155,1120,179],{"class":161},[155,1122,188],{"class":161},[155,1124,1125,1127,1129,1131,1133,1135,1137],{"class":157,"line":191},[155,1126,194],{"class":169},[155,1128,198],{"class":197},[155,1130,201],{"class":161},[155,1132,204],{"class":165},[155,1134,207],{"class":161},[155,1136,210],{"class":197},[155,1138,213],{"class":161},[155,1140,1141],{"class":157,"line":216},[155,1142,220],{"emptyLinePlaceholder":219},[155,1144,1145,1147,1149,1151,1153,1155,1157,1159,1161,1164,1166],{"class":157,"line":223},[155,1146,226],{"class":169},[155,1148,201],{"class":161},[155,1150,232],{"class":231},[155,1152,235],{"class":161},[155,1154,238],{"class":161},[155,1156,242],{"class":241},[155,1158,245],{"class":231},[155,1160,248],{"class":161},[155,1162,1163],{"class":182},"sheet:123",[155,1165,248],{"class":161},[155,1167,256],{"class":231},[155,1169,1170],{"class":157,"line":259},[155,1171,220],{"emptyLinePlaceholder":219},[155,1173,1174,1176,1179,1181,1184,1186,1188,1190],{"class":157,"line":264},[155,1175,267],{"class":169},[155,1177,1178],{"class":241}," cellLockedBy",[155,1180,245],{"class":161},[155,1182,1183],{"class":275},"cellId",[155,1185,207],{"class":161},[155,1187,210],{"class":197},[155,1189,283],{"class":161},[155,1191,286],{"class":161},[155,1193,1194,1196,1199,1201,1203,1205,1207,1210,1212,1214,1216,1218,1220,1222,1224,1226,1228],{"class":157,"line":289},[155,1195,293],{"class":292},[155,1197,1198],{"class":231}," locks",[155,1200,302],{"class":161},[155,1202,305],{"class":231},[155,1204,308],{"class":165},[155,1206,311],{"class":161},[155,1208,1209],{"class":182},"cell:",[155,1211,317],{"class":161},[155,1213,1183],{"class":231},[155,1215,322],{"class":161},[155,1217,325],{"class":165},[155,1219,328],{"class":161},[155,1221,331],{"class":231},[155,1223,334],{"class":292},[155,1225,198],{"class":197},[155,1227,339],{"class":161},[155,1229,1230],{"class":197}," undefined\n",[155,1232,1233],{"class":157,"line":352},[155,1234,355],{"class":161},[155,1236,1237,1239,1241],{"class":157,"line":358},[155,1238,361],{"class":161},[155,1240,166],{"class":165},[155,1242,188],{"class":161},[155,1244,1245],{"class":157,"line":368},[155,1246,220],{"emptyLinePlaceholder":219},[155,1248,1249,1251,1253],{"class":157,"line":373},[155,1250,162],{"class":161},[155,1252,378],{"class":165},[155,1254,188],{"class":161},[155,1256,1257,1259],{"class":157,"line":383},[155,1258,386],{"class":161},[155,1260,1261],{"class":165},"td\n",[155,1263,1264,1267,1269,1271,1274],{"class":157,"line":429},[155,1265,1266],{"class":169},"    v-for",[155,1268,176],{"class":161},[155,1270,179],{"class":161},[155,1272,1273],{"class":182},"cell in cells",[155,1275,948],{"class":161},[155,1277,1278,1281,1283,1285,1288],{"class":157,"line":435},[155,1279,1280],{"class":169},"    :key",[155,1282,176],{"class":161},[155,1284,179],{"class":161},[155,1286,1287],{"class":182},"cell.id",[155,1289,948],{"class":161},[155,1291,1292,1295,1297,1299,1302],{"class":157,"line":482},[155,1293,1294],{"class":169},"    :class",[155,1296,176],{"class":161},[155,1298,179],{"class":161},[155,1300,1301],{"class":182},"{ 'bg-yellow-100': cellLockedBy(cell.id) }",[155,1303,948],{"class":161},[155,1305,1306,1309,1311,1313,1316],{"class":157,"line":488},[155,1307,1308],{"class":169},"    :title",[155,1310,176],{"class":161},[155,1312,179],{"class":161},[155,1314,1315],{"class":182},"cellLockedBy(cell.id)?.name",[155,1317,948],{"class":161},[155,1319,1320],{"class":157,"line":498},[155,1321,1322],{"class":161},"  >\n",[155,1324,1325],{"class":157,"line":541},[155,1326,1327],{"class":231},"    {{ cell.value }}\n",[155,1329,1330,1332,1335],{"class":157,"line":551},[155,1331,544],{"class":161},[155,1333,1334],{"class":165},"td",[155,1336,188],{"class":161},[155,1338,1340,1342,1344],{"class":157,"line":1339},20,[155,1341,361],{"class":161},[155,1343,378],{"class":165},[155,1345,188],{"class":161},[1347,1348,1349],"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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 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 .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}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);}",{"title":151,"searchDepth":158,"depth":191,"links":1351},[1352,1353,1354,1357,1360],{"id":144,"depth":191,"text":23},{"id":560,"depth":191,"text":561},{"id":590,"depth":191,"text":591,"children":1355},[1356],{"id":127,"depth":216,"text":127},{"id":628,"depth":191,"text":629,"children":1358},[1359],{"id":299,"depth":216,"text":299},{"id":803,"depth":191,"text":804,"children":1361},[1362,1363],{"id":807,"depth":216,"text":808},{"id":1092,"depth":216,"text":1093},"Bulk view of every lock tagged with a room.","md",null,{},{"icon":71},{"title":68,"description":1364},"WT3DnUmjORZzlXyBqKc5AWcMuo7NSH1aX3GY6I_cReg",[1372,1374],{"title":64,"path":65,"stem":66,"description":1373,"icon":31,"children":-1},"Claim exclusive ownership of a resource across clients.",{"title":73,"path":74,"stem":75,"description":1375,"icon":76,"children":-1},"Scope state, events, presence, and locks together under one room.",1787657974304]