[{"data":1,"prerenderedAt":913},["ShallowReactive",2],{"msfe-doc:\u002Fen\u002Fguide\u002Fstate":3,"msfe-source:recipes\u002Fstate.ts":484,"mdc-kjzo6n-key":485},{"id":4,"title":5,"body":6,"description":470,"extension":471,"keywords":472,"locale":477,"meta":478,"navigation":300,"order":236,"path":479,"section":480,"seo":481,"stem":482,"__hash__":483},"docs\u002Fguide\u002Fstate.en.md","Events and transaction state",{"type":7,"value":8,"toc":463},"minimark",[9,14,101,105,109,127,246,257,261,272,276,354,364,371,396,400,421,432,436,443,459],[10,11,13],"h2",{"id":12},"choose-the-state-owner","Choose the state owner",[15,16,17,33],"table",{},[18,19,20],"thead",{},[21,22,23,27,30],"tr",{},[24,25,26],"th",{},"State",[24,28,29],{},"Owner",[24,31,32],{},"Document replacement \u002F unmount",[34,35,36,48,62,76,90],"tbody",{},[21,37,38,42,45],{},[39,40,41],"td",{},"Titles, task values, chart data",[39,43,44],{},"Markdown and its codec",[39,46,47],{},"Persisted when saved",[21,49,50,53,59],{},[39,51,52],{},"Folding, mapped ranges, transaction-derived values",[39,54,55],{},[56,57,58],"code",{},"defineState()",[39,60,61],{},"Initialized per document",[21,63,64,67,73],{},[39,65,66],{},"Services, cache handles and instance cleanup",[39,68,69,70],{},"Extension storage or ",[56,71,72],{},"editor.scope",[39,74,75],{},"Released with the instance",[21,77,78,81,87],{},[39,79,80],{},"Dialog or request results",[39,82,83,84],{},"Child ",[56,85,86],{},"TaskScope",[39,88,89],{},"Released on cancellation\u002Funmount",[21,91,92,95,98],{},[39,93,94],{},"Button hover state",[39,96,97],{},"Local Vue \u002F React state",[39,99,100],{},"Discarded on unmount",[102,103,104],"p",{},"Persistent fields kept only in storage disappear when reopening a file. Reading preferences should not mutate Markdown merely to refresh UI.",[10,106,108],{"id":107},"select-the-right-notification","Select the right notification",[102,110,111,114,115,118,119,122,123,126],{},[56,112,113],{},"editor.onChange()"," observes accepted source changes and suits saving. Extension ",[56,116,117],{},"onTransaction"," includes selections and effects; ",[56,120,121],{},"onSelectionUpdate"," runs only for changed selections. ",[56,124,125],{},"subscribeState()"," observes a bounded derived value instead of recomputing a whole toolbar per keystroke.",[128,129,134],"pre",{"className":130,"code":131,"language":132,"meta":133,"style":133},"language-ts shiki shiki-themes github-light github-light github-dark","const initialHead = editor.state.selection.main.head\nconst unsubscribe = editor.subscribeState({\n  select: state => state.selection.main.head,\n  change: (head, previous) => console.debug({ head, previous }),\n})\neditor.scope.own(unsubscribe)\n","ts","",[56,135,136,156,176,195,228,234],{"__ignoreMap":133},[137,138,141,145,149,152],"span",{"class":139,"line":140},"line",1,[137,142,144],{"class":143},"sDD9d","const",[137,146,148],{"class":147},"sUNQB"," initialHead",[137,150,151],{"class":143}," =",[137,153,155],{"class":154},"sVPnS"," editor.state.selection.main.head\n",[137,157,159,161,164,166,169,173],{"class":139,"line":158},2,[137,160,144],{"class":143},[137,162,163],{"class":147}," unsubscribe",[137,165,151],{"class":143},[137,167,168],{"class":154}," editor.",[137,170,172],{"class":171},"sgQzM","subscribeState",[137,174,175],{"class":154},"({\n",[137,177,179,182,185,189,192],{"class":139,"line":178},3,[137,180,181],{"class":171},"  select",[137,183,184],{"class":154},": ",[137,186,188],{"class":187},"sde8i","state",[137,190,191],{"class":143}," =>",[137,193,194],{"class":154}," state.selection.main.head,\n",[137,196,198,201,204,207,210,213,216,219,222,225],{"class":139,"line":197},4,[137,199,200],{"class":171},"  change",[137,202,203],{"class":154},": (",[137,205,206],{"class":187},"head",[137,208,209],{"class":154},", ",[137,211,212],{"class":187},"previous",[137,214,215],{"class":154},") ",[137,217,218],{"class":143},"=>",[137,220,221],{"class":154}," console.",[137,223,224],{"class":171},"debug",[137,226,227],{"class":154},"({ head, previous }),\n",[137,229,231],{"class":139,"line":230},5,[137,232,233],{"class":154},"})\n",[137,235,237,240,243],{"class":139,"line":236},6,[137,238,239],{"class":154},"editor.scope.",[137,241,242],{"class":171},"own",[137,244,245],{"class":154},"(unsubscribe)\n",[102,247,248,249,252,253,256],{},"Read initial state yourself. Subscriptions do not promise an initial notification. Equality defaults to ",[56,250,251],{},"Object.is","; provide ",[56,254,255],{},"equal"," for freshly allocated objects, or select stable scalars. Selectors must be pure and must not serialize the whole document or start requests.",[10,258,260],{"id":259},"a-complete-state-slot","A complete state slot",[102,262,263,264,267,268,271],{},"Import the following module and install ",[56,265,266],{},"Hints"," before reading ",[56,269,270],{},"hintState",". This transient reading preference intentionally has no undo policy.",[273,274],"msfe-recipe",{"name":275},"recipes\u002Fstate",[128,277,279],{"className":130,"code":278,"language":132,"meta":133,"style":133},"import { Hints, hintState, setHints } from '.\u002Frecipes\u002Fstate'\n\n\u002F\u002F Include Hints in the editor's initial extensions.\nconst enabled = editor.getState(hintState)\nconst result = editor.updateViewState({ effects: [setHints.of(!enabled)] })\n",[56,280,281,296,302,308,325],{"__ignoreMap":133},[137,282,283,286,289,292],{"class":139,"line":140},[137,284,285],{"class":143},"import",[137,287,288],{"class":154}," { Hints, hintState, setHints } ",[137,290,291],{"class":143},"from",[137,293,295],{"class":294},"s-HEn"," '.\u002Frecipes\u002Fstate'\n",[137,297,298],{"class":139,"line":158},[137,299,301],{"emptyLinePlaceholder":300},true,"\n",[137,303,304],{"class":139,"line":178},[137,305,307],{"class":306},"sqmzS","\u002F\u002F Include Hints in the editor's initial extensions.\n",[137,309,310,312,315,317,319,322],{"class":139,"line":197},[137,311,144],{"class":143},[137,313,314],{"class":147}," enabled",[137,316,151],{"class":143},[137,318,168],{"class":154},[137,320,321],{"class":171},"getState",[137,323,324],{"class":154},"(hintState)\n",[137,326,327,329,332,334,336,339,342,345,348,351],{"class":139,"line":230},[137,328,144],{"class":143},[137,330,331],{"class":147}," result",[137,333,151],{"class":143},[137,335,168],{"class":154},[137,337,338],{"class":171},"updateViewState",[137,340,341],{"class":154},"({ effects: [setHints.",[137,343,344],{"class":171},"of",[137,346,347],{"class":154},"(",[137,349,350],{"class":143},"!",[137,352,353],{"class":154},"enabled)] })\n",[102,355,356,359,360,363],{},[56,357,358],{},"updateViewState()"," permits valid source-neutral effects even in readonly mode. It rejects source edits and reconfiguration. Reducers may run during command speculation. ",[56,361,362],{},"update.document"," provides resulting text; parser-dependent queries belong after acceptance.",[102,365,366,367,370],{},"Updates preserve the current scroll position by default, which suits explicit expand\u002Fcollapse actions.\nPassive updates such as selection-driven highlights should pass ",[56,368,369],{},"preserveScroll: false"," so pending\nkeyboard, search, or outline scrolling can finish. This option does not scroll or change the selection itself.",[128,372,374],{"className":130,"code":373,"language":132,"meta":133,"style":133},"editor.updateViewState({ effects: [setHints.of(enabled)], preserveScroll: false })\n",[56,375,376],{"__ignoreMap":133},[137,377,378,381,383,385,387,390,393],{"class":139,"line":140},[137,379,380],{"class":154},"editor.",[137,382,338],{"class":171},[137,384,341],{"class":154},[137,386,344],{"class":171},[137,388,389],{"class":154},"(enabled)], preserveScroll: ",[137,391,392],{"class":147},"false",[137,394,395],{"class":154}," })\n",[10,397,399],{"id":398},"positions-effects-and-history","Positions, effects and history",[102,401,402,403,406,407,410,411,414,415,420],{},"Effects carrying offsets need a ",[56,404,405],{},"defineEffect(map)"," mapping policy. Use ",[56,408,409],{},"SourceRangeSet"," \u002F ",[56,412,413],{},"mapSourceRange"," for ranges, explicitly deciding endpoint affinity and deletion behavior. See ",[416,417,419],"a",{"href":418},"\u002Fen\u002Fguide\u002Fselection","Selection and captured intent",".",[102,422,423,424,427,428,431],{},"Only a state definition with ",[56,425,426],{},"invert"," contributes inverse effects. Inverse positions use pre-transaction coordinates. A transient effect without an inverse does not automatically undo with text. ",[56,429,430],{},"defineMetadata()"," stores transaction correlation, not persistent document fields.",[10,433,435],{"id":434},"bound-subscription-work","Bound subscription work",[102,437,438,439,442],{},"Do not mirror the entire document into reactive framework state for toolbar enablement. Observe selection, permission and required slots, then update relevant controls through ",[56,440,441],{},"can()"," and semantic queries. Compare combined toolbar values explicitly. Treat unconfirmed parsing as pending rather than missing syntax.",[102,444,445,446,449,450,454,455,420],{},"Declare slots read by a projection in its ",[56,447,448],{},"states"," dependencies. See ",[416,451,453],{"href":452},"\u002Fen\u002Fextensions\u002Fprojections","Projection layers"," and ",[416,456,458],{"href":457},"\u002Fen\u002Fapi\u002Fstate","State API",[460,461,462],"style",{},"html pre.shiki code .sDD9d, html code.shiki .sDD9d{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sUNQB, html code.shiki .sUNQB{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVPnS, html code.shiki .sVPnS{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sgQzM, html code.shiki .sgQzM{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sde8i, html code.shiki .sde8i{--shiki-default:#E36209;--shiki-light:#E36209;--shiki-dark:#FFAB70}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 .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 .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 .s-HEn, html code.shiki .s-HEn{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sqmzS, html code.shiki .sqmzS{--shiki-default:#6A737D;--shiki-light:#6A737D;--shiki-dark:#6A737D}",{"title":133,"searchDepth":158,"depth":158,"links":464},[465,466,467,468,469],{"id":12,"depth":158,"text":13},{"id":107,"depth":158,"text":108},{"id":259,"depth":158,"text":260},{"id":398,"depth":158,"text":399},{"id":434,"depth":158,"text":435},"Subscribe to the right changes and distinguish source, state slots and temporary storage.","md",[473,172,474,475,476],"onChange","defineState","defineEffect","storage","en",{},"\u002Fen\u002Fguide\u002Fstate","Integration",{"title":5,"description":470},"guide\u002Fstate.en","ndVcj0Kd3NkCXjhLA0y9opqEtllDaQXV64m6cOJ1F6o","import { Extension, defineEffect, defineState } from \"@quirekit\u002Fmsfe-core\";\n\u002F** Explicit view-only preference; it is not a persistent Markdown field. *\u002F\nexport const setHints = defineEffect\u003Cboolean>();\n\u002F** State resets per document and has no undo policy because this preference is source-neutral. *\u002F\nexport const hintState = defineState({ key: \"example.hints\",\n  \u002F** @returns Default visibility. *\u002F create() { return true; },\n  \u002F** @param previous - Accepted or draft value. @param update - Pure transaction inputs. @returns The latest explicitly supplied preference. *\u002F\n  update(previous, update) { return update.effects(setHints).at(-1) ?? previous; },\n});\n\u002F** Install the slot before reading it or declaring it as a projection dependency. *\u002F\nexport const Hints = Extension.create({ name: \"exampleHints\",\n  \u002F** @returns State owned by this feature installation. *\u002F addState() { return [hintState]; },\n});\n",{"data":486,"body":487},{},{"type":488,"children":489},"root",[490,908],{"type":491,"tag":128,"props":492,"children":494},"element",{"className":130,"code":493,"language":132,"meta":133,"style":133},"import { Extension, defineEffect, defineState } from \"@quirekit\u002Fmsfe-core\";\n\u002F** Explicit view-only preference; it is not a persistent Markdown field. *\u002F\nexport const setHints = defineEffect\u003Cboolean>();\n\u002F** State resets per document and has no undo policy because this preference is source-neutral. *\u002F\nexport const hintState = defineState({ key: \"example.hints\",\n  \u002F** @returns Default visibility. *\u002F create() { return true; },\n  \u002F** @param previous - Accepted or draft value. @param update - Pure transaction inputs. @returns The latest explicitly supplied preference. *\u002F\n  update(previous, update) { return update.effects(setHints).at(-1) ?? previous; },\n});\n\u002F** Install the slot before reading it or declaring it as a projection dependency. *\u002F\nexport const Hints = Extension.create({ name: \"exampleHints\",\n  \u002F** @returns State owned by this feature installation. *\u002F addState() { return [hintState]; },\n});\n\n",[495],{"type":491,"tag":56,"props":496,"children":497},{"__ignoreMap":133},[498,528,537,581,589,629,672,718,802,811,820,865,900],{"type":491,"tag":137,"props":499,"children":500},{"class":139,"line":140},[501,507,513,517,523],{"type":491,"tag":137,"props":502,"children":504},{"style":503},"--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#F97583",[505],{"type":506,"value":285},"text",{"type":491,"tag":137,"props":508,"children":510},{"style":509},"--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#E1E4E8",[511],{"type":506,"value":512}," { Extension, defineEffect, defineState } ",{"type":491,"tag":137,"props":514,"children":515},{"style":503},[516],{"type":506,"value":291},{"type":491,"tag":137,"props":518,"children":520},{"style":519},"--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#9ECBFF",[521],{"type":506,"value":522}," \"@quirekit\u002Fmsfe-core\"",{"type":491,"tag":137,"props":524,"children":525},{"style":509},[526],{"type":506,"value":527},";\n",{"type":491,"tag":137,"props":529,"children":530},{"class":139,"line":158},[531],{"type":491,"tag":137,"props":532,"children":534},{"style":533},"--shiki-default:#6A737D;--shiki-light:#6A737D;--shiki-dark:#6A737D",[535],{"type":506,"value":536},"\u002F** Explicit view-only preference; it is not a persistent Markdown field. *\u002F\n",{"type":491,"tag":137,"props":538,"children":539},{"class":139,"line":178},[540,545,550,556,560,566,571,576],{"type":491,"tag":137,"props":541,"children":542},{"style":503},[543],{"type":506,"value":544},"export",{"type":491,"tag":137,"props":546,"children":547},{"style":503},[548],{"type":506,"value":549}," const",{"type":491,"tag":137,"props":551,"children":553},{"style":552},"--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#79B8FF",[554],{"type":506,"value":555}," setHints",{"type":491,"tag":137,"props":557,"children":558},{"style":503},[559],{"type":506,"value":151},{"type":491,"tag":137,"props":561,"children":563},{"style":562},"--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#B392F0",[564],{"type":506,"value":565}," defineEffect",{"type":491,"tag":137,"props":567,"children":568},{"style":509},[569],{"type":506,"value":570},"\u003C",{"type":491,"tag":137,"props":572,"children":573},{"style":552},[574],{"type":506,"value":575},"boolean",{"type":491,"tag":137,"props":577,"children":578},{"style":509},[579],{"type":506,"value":580},">();\n",{"type":491,"tag":137,"props":582,"children":583},{"class":139,"line":197},[584],{"type":491,"tag":137,"props":585,"children":586},{"style":533},[587],{"type":506,"value":588},"\u002F** State resets per document and has no undo policy because this preference is source-neutral. *\u002F\n",{"type":491,"tag":137,"props":590,"children":591},{"class":139,"line":230},[592,596,600,605,609,614,619,624],{"type":491,"tag":137,"props":593,"children":594},{"style":503},[595],{"type":506,"value":544},{"type":491,"tag":137,"props":597,"children":598},{"style":503},[599],{"type":506,"value":549},{"type":491,"tag":137,"props":601,"children":602},{"style":552},[603],{"type":506,"value":604}," hintState",{"type":491,"tag":137,"props":606,"children":607},{"style":503},[608],{"type":506,"value":151},{"type":491,"tag":137,"props":610,"children":611},{"style":562},[612],{"type":506,"value":613}," defineState",{"type":491,"tag":137,"props":615,"children":616},{"style":509},[617],{"type":506,"value":618},"({ key: ",{"type":491,"tag":137,"props":620,"children":621},{"style":519},[622],{"type":506,"value":623},"\"example.hints\"",{"type":491,"tag":137,"props":625,"children":626},{"style":509},[627],{"type":506,"value":628},",\n",{"type":491,"tag":137,"props":630,"children":631},{"class":139,"line":236},[632,637,642,647,652,657,662,667],{"type":491,"tag":137,"props":633,"children":634},{"style":533},[635],{"type":506,"value":636},"  \u002F** ",{"type":491,"tag":137,"props":638,"children":639},{"style":503},[640],{"type":506,"value":641},"@returns",{"type":491,"tag":137,"props":643,"children":644},{"style":533},[645],{"type":506,"value":646}," Default visibility. *\u002F",{"type":491,"tag":137,"props":648,"children":649},{"style":562},[650],{"type":506,"value":651}," create",{"type":491,"tag":137,"props":653,"children":654},{"style":509},[655],{"type":506,"value":656},"() { ",{"type":491,"tag":137,"props":658,"children":659},{"style":503},[660],{"type":506,"value":661},"return",{"type":491,"tag":137,"props":663,"children":664},{"style":552},[665],{"type":506,"value":666}," true",{"type":491,"tag":137,"props":668,"children":669},{"style":509},[670],{"type":506,"value":671},"; },\n",{"type":491,"tag":137,"props":673,"children":675},{"class":139,"line":674},7,[676,680,685,690,695,699,704,709,713],{"type":491,"tag":137,"props":677,"children":678},{"style":533},[679],{"type":506,"value":636},{"type":491,"tag":137,"props":681,"children":682},{"style":503},[683],{"type":506,"value":684},"@param",{"type":491,"tag":137,"props":686,"children":687},{"style":509},[688],{"type":506,"value":689}," previous",{"type":491,"tag":137,"props":691,"children":692},{"style":533},[693],{"type":506,"value":694}," - Accepted or draft value. ",{"type":491,"tag":137,"props":696,"children":697},{"style":503},[698],{"type":506,"value":684},{"type":491,"tag":137,"props":700,"children":701},{"style":509},[702],{"type":506,"value":703}," update",{"type":491,"tag":137,"props":705,"children":706},{"style":533},[707],{"type":506,"value":708}," - Pure transaction inputs. ",{"type":491,"tag":137,"props":710,"children":711},{"style":503},[712],{"type":506,"value":641},{"type":491,"tag":137,"props":714,"children":715},{"style":533},[716],{"type":506,"value":717}," The latest explicitly supplied preference. *\u002F\n",{"type":491,"tag":137,"props":719,"children":721},{"class":139,"line":720},8,[722,727,731,736,740,745,750,754,759,764,769,774,778,783,788,792,797],{"type":491,"tag":137,"props":723,"children":724},{"style":562},[725],{"type":506,"value":726},"  update",{"type":491,"tag":137,"props":728,"children":729},{"style":509},[730],{"type":506,"value":347},{"type":491,"tag":137,"props":732,"children":734},{"style":733},"--shiki-default:#E36209;--shiki-light:#E36209;--shiki-dark:#FFAB70",[735],{"type":506,"value":212},{"type":491,"tag":137,"props":737,"children":738},{"style":509},[739],{"type":506,"value":209},{"type":491,"tag":137,"props":741,"children":742},{"style":733},[743],{"type":506,"value":744},"update",{"type":491,"tag":137,"props":746,"children":747},{"style":509},[748],{"type":506,"value":749},") { ",{"type":491,"tag":137,"props":751,"children":752},{"style":503},[753],{"type":506,"value":661},{"type":491,"tag":137,"props":755,"children":756},{"style":509},[757],{"type":506,"value":758}," update.",{"type":491,"tag":137,"props":760,"children":761},{"style":562},[762],{"type":506,"value":763},"effects",{"type":491,"tag":137,"props":765,"children":766},{"style":509},[767],{"type":506,"value":768},"(setHints).",{"type":491,"tag":137,"props":770,"children":771},{"style":562},[772],{"type":506,"value":773},"at",{"type":491,"tag":137,"props":775,"children":776},{"style":509},[777],{"type":506,"value":347},{"type":491,"tag":137,"props":779,"children":780},{"style":503},[781],{"type":506,"value":782},"-",{"type":491,"tag":137,"props":784,"children":785},{"style":552},[786],{"type":506,"value":787},"1",{"type":491,"tag":137,"props":789,"children":790},{"style":509},[791],{"type":506,"value":215},{"type":491,"tag":137,"props":793,"children":794},{"style":503},[795],{"type":506,"value":796},"??",{"type":491,"tag":137,"props":798,"children":799},{"style":509},[800],{"type":506,"value":801}," previous; },\n",{"type":491,"tag":137,"props":803,"children":805},{"class":139,"line":804},9,[806],{"type":491,"tag":137,"props":807,"children":808},{"style":509},[809],{"type":506,"value":810},"});\n",{"type":491,"tag":137,"props":812,"children":814},{"class":139,"line":813},10,[815],{"type":491,"tag":137,"props":816,"children":817},{"style":533},[818],{"type":506,"value":819},"\u002F** Install the slot before reading it or declaring it as a projection dependency. *\u002F\n",{"type":491,"tag":137,"props":821,"children":823},{"class":139,"line":822},11,[824,828,832,837,841,846,851,856,861],{"type":491,"tag":137,"props":825,"children":826},{"style":503},[827],{"type":506,"value":544},{"type":491,"tag":137,"props":829,"children":830},{"style":503},[831],{"type":506,"value":549},{"type":491,"tag":137,"props":833,"children":834},{"style":552},[835],{"type":506,"value":836}," Hints",{"type":491,"tag":137,"props":838,"children":839},{"style":503},[840],{"type":506,"value":151},{"type":491,"tag":137,"props":842,"children":843},{"style":509},[844],{"type":506,"value":845}," Extension.",{"type":491,"tag":137,"props":847,"children":848},{"style":562},[849],{"type":506,"value":850},"create",{"type":491,"tag":137,"props":852,"children":853},{"style":509},[854],{"type":506,"value":855},"({ name: ",{"type":491,"tag":137,"props":857,"children":858},{"style":519},[859],{"type":506,"value":860},"\"exampleHints\"",{"type":491,"tag":137,"props":862,"children":863},{"style":509},[864],{"type":506,"value":628},{"type":491,"tag":137,"props":866,"children":868},{"class":139,"line":867},12,[869,873,877,882,887,891,895],{"type":491,"tag":137,"props":870,"children":871},{"style":533},[872],{"type":506,"value":636},{"type":491,"tag":137,"props":874,"children":875},{"style":503},[876],{"type":506,"value":641},{"type":491,"tag":137,"props":878,"children":879},{"style":533},[880],{"type":506,"value":881}," State owned by this feature installation. *\u002F",{"type":491,"tag":137,"props":883,"children":884},{"style":562},[885],{"type":506,"value":886}," addState",{"type":491,"tag":137,"props":888,"children":889},{"style":509},[890],{"type":506,"value":656},{"type":491,"tag":137,"props":892,"children":893},{"style":503},[894],{"type":506,"value":661},{"type":491,"tag":137,"props":896,"children":897},{"style":509},[898],{"type":506,"value":899}," [hintState]; },\n",{"type":491,"tag":137,"props":901,"children":903},{"class":139,"line":902},13,[904],{"type":491,"tag":137,"props":905,"children":906},{"style":509},[907],{"type":506,"value":810},{"type":491,"tag":460,"props":909,"children":910},{},[911],{"type":506,"value":912},"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 .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 .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);}",1793046311993]