[{"data":1,"prerenderedAt":3156},["ShallowReactive",2],{"design-doc:tauri-bindings":3},{"data":4,"body":7,"toc":3137},{"title":5,"description":6},"Tauri bindings","",{"type":8,"children":9},"root",[10,18,48,75,80,100,107,120,408,414,424,444,723,733,758,770,775,1067,1084,1135,1146,1159,1808,1819,1831,2206,2223,2234,2239,2284,2303,2315,2320,2579,2603,2609,2621,3066,3071,3077,3090,3096,3101,3126,3131],{"type":11,"tag":12,"props":13,"children":15},"element","h1",{"id":14},"tauri-bindings",[16],{"type":17,"value":5},"text",{"type":11,"tag":19,"props":20,"children":21},"blockquote",{},[22],{"type":11,"tag":23,"props":24,"children":25},"p",{},[26,32,34,46],{"type":11,"tag":27,"props":28,"children":29},"strong",{},[30],{"type":17,"value":31},"Status:",{"type":17,"value":33}," doctrine (2026-05-22). Companion to\n",{"type":11,"tag":35,"props":36,"children":38},"a",{"href":37},".\u002Fplatform-awareness.md",[39],{"type":11,"tag":40,"props":41,"children":43},"code",{"className":42},[],[44],{"type":17,"value":45},"platform-awareness.md",{"type":17,"value":47},". Enumerates\nwhich TUX components call which Tauri APIs, and what each one\ndoes in plain-web mode.",{"type":11,"tag":23,"props":49,"children":50},{},[51,53,58,60,65,67,73],{"type":17,"value":52},"TUX components stay ",{"type":11,"tag":27,"props":54,"children":55},{},[56],{"type":17,"value":57},"runtime-agnostic",{"type":17,"value":59},": every component must work\nin a plain Nuxt SSR + browser build with no Tauri runtime. The\nTauri enhancements are ",{"type":11,"tag":27,"props":61,"children":62},{},[63],{"type":17,"value":64},"progressive enrichments",{"type":17,"value":66}," — when\n",{"type":11,"tag":40,"props":68,"children":70},{"className":69},[],[71],{"type":17,"value":72},"useTuxPlatform().tauri === true",{"type":17,"value":74},", components can opt into native\nAPIs (window controls, share sheet, file dialog, notifications).\nWhen false, they fall back to the equivalent web platform API or\nto a graceful no-op.",{"type":11,"tag":23,"props":76,"children":77},{},[78],{"type":17,"value":79},"This doc keeps the consumer aware of which TUX components call\nwhich Tauri APIs so they can:",{"type":11,"tag":81,"props":82,"children":83},"ul",{},[84,90,95],{"type":11,"tag":85,"props":86,"children":87},"li",{},[88],{"type":17,"value":89},"Add the right Tauri Rust capability allowlist entries.",{"type":11,"tag":85,"props":91,"children":92},{},[93],{"type":17,"value":94},"Understand what the web fallback looks like.",{"type":11,"tag":85,"props":96,"children":97},{},[98],{"type":17,"value":99},"Stub Tauri APIs in tests.",{"type":11,"tag":101,"props":102,"children":104},"h2",{"id":103},"the-capability-allowlist",[105],{"type":17,"value":106},"The capability allowlist",{"type":11,"tag":23,"props":108,"children":109},{},[110,112,118],{"type":17,"value":111},"Tauri 2.x requires explicit capability declarations in\n",{"type":11,"tag":40,"props":113,"children":115},{"className":114},[],[116],{"type":17,"value":117},"src-tauri\u002Fcapabilities\u002F*.json",{"type":17,"value":119},". Any TUX component that calls a\nTauri API needs the corresponding capability allowed. The table\nbelow lists the capability + the TUX component that needs it.",{"type":11,"tag":121,"props":122,"children":123},"table",{},[124,148],{"type":11,"tag":125,"props":126,"children":127},"thead",{},[128],{"type":11,"tag":129,"props":130,"children":131},"tr",{},[132,138,143],{"type":11,"tag":133,"props":134,"children":135},"th",{},[136],{"type":17,"value":137},"Capability",{"type":11,"tag":133,"props":139,"children":140},{},[141],{"type":17,"value":142},"Used by",{"type":11,"tag":133,"props":144,"children":145},{},[146],{"type":17,"value":147},"What it does",{"type":11,"tag":149,"props":150,"children":151},"tbody",{},[152,179,204,229,254,279,306,333,355,382],{"type":11,"tag":129,"props":153,"children":154},{},[155,165,174],{"type":11,"tag":156,"props":157,"children":158},"td",{},[159],{"type":11,"tag":40,"props":160,"children":162},{"className":161},[],[163],{"type":17,"value":164},"core:window:allow-close",{"type":11,"tag":156,"props":166,"children":167},{},[168],{"type":11,"tag":40,"props":169,"children":171},{"className":170},[],[172],{"type":17,"value":173},"TuxAppFrame",{"type":11,"tag":156,"props":175,"children":176},{},[177],{"type":17,"value":178},"Close button",{"type":11,"tag":129,"props":180,"children":181},{},[182,191,199],{"type":11,"tag":156,"props":183,"children":184},{},[185],{"type":11,"tag":40,"props":186,"children":188},{"className":187},[],[189],{"type":17,"value":190},"core:window:allow-minimize",{"type":11,"tag":156,"props":192,"children":193},{},[194],{"type":11,"tag":40,"props":195,"children":197},{"className":196},[],[198],{"type":17,"value":173},{"type":11,"tag":156,"props":200,"children":201},{},[202],{"type":17,"value":203},"Minimize button",{"type":11,"tag":129,"props":205,"children":206},{},[207,216,224],{"type":11,"tag":156,"props":208,"children":209},{},[210],{"type":11,"tag":40,"props":211,"children":213},{"className":212},[],[214],{"type":17,"value":215},"core:window:allow-toggle-maximize",{"type":11,"tag":156,"props":217,"children":218},{},[219],{"type":11,"tag":40,"props":220,"children":222},{"className":221},[],[223],{"type":17,"value":173},{"type":11,"tag":156,"props":225,"children":226},{},[227],{"type":17,"value":228},"Zoom (Mac) \u002F Maximize (Win) button",{"type":11,"tag":129,"props":230,"children":231},{},[232,241,249],{"type":11,"tag":156,"props":233,"children":234},{},[235],{"type":11,"tag":40,"props":236,"children":238},{"className":237},[],[239],{"type":17,"value":240},"core:window:allow-is-maximized",{"type":11,"tag":156,"props":242,"children":243},{},[244],{"type":11,"tag":40,"props":245,"children":247},{"className":246},[],[248],{"type":17,"value":173},{"type":11,"tag":156,"props":250,"children":251},{},[252],{"type":17,"value":253},"Read maximize state on mount",{"type":11,"tag":129,"props":255,"children":256},{},[257,266,274],{"type":11,"tag":156,"props":258,"children":259},{},[260],{"type":11,"tag":40,"props":261,"children":263},{"className":262},[],[264],{"type":17,"value":265},"core:window:allow-start-dragging",{"type":11,"tag":156,"props":267,"children":268},{},[269],{"type":11,"tag":40,"props":270,"children":272},{"className":271},[],[273],{"type":17,"value":173},{"type":11,"tag":156,"props":275,"children":276},{},[277],{"type":17,"value":278},"Drag-region on titlebar",{"type":11,"tag":129,"props":280,"children":281},{},[282,291,301],{"type":11,"tag":156,"props":283,"children":284},{},[285],{"type":11,"tag":40,"props":286,"children":288},{"className":287},[],[289],{"type":17,"value":290},"core:event:allow-listen",{"type":11,"tag":156,"props":292,"children":293},{},[294,299],{"type":11,"tag":40,"props":295,"children":297},{"className":296},[],[298],{"type":17,"value":173},{"type":17,"value":300}," (future)",{"type":11,"tag":156,"props":302,"children":303},{},[304],{"type":17,"value":305},"Subscribe to window-resize \u002F focus events",{"type":11,"tag":129,"props":307,"children":308},{},[309,318,328],{"type":11,"tag":156,"props":310,"children":311},{},[312],{"type":11,"tag":40,"props":313,"children":315},{"className":314},[],[316],{"type":17,"value":317},"dialog:allow-save",{"type":11,"tag":156,"props":319,"children":320},{},[321,327],{"type":11,"tag":40,"props":322,"children":324},{"className":323},[],[325],{"type":17,"value":326},"TuxCodeBlock",{"type":17,"value":300},{"type":11,"tag":156,"props":329,"children":330},{},[331],{"type":17,"value":332},"Save-as dialog for code download",{"type":11,"tag":129,"props":334,"children":335},{},[336,345,350],{"type":11,"tag":156,"props":337,"children":338},{},[339],{"type":11,"tag":40,"props":340,"children":342},{"className":341},[],[343],{"type":17,"value":344},"dialog:allow-open",{"type":11,"tag":156,"props":346,"children":347},{},[348],{"type":17,"value":349},"(future TuxFilePicker)",{"type":11,"tag":156,"props":351,"children":352},{},[353],{"type":17,"value":354},"Open-file dialog",{"type":11,"tag":129,"props":356,"children":357},{},[358,367,377],{"type":11,"tag":156,"props":359,"children":360},{},[361],{"type":11,"tag":40,"props":362,"children":364},{"className":363},[],[365],{"type":17,"value":366},"notification:default",{"type":11,"tag":156,"props":368,"children":369},{},[370,376],{"type":11,"tag":40,"props":371,"children":373},{"className":372},[],[374],{"type":17,"value":375},"TuxStatusToast",{"type":17,"value":300},{"type":11,"tag":156,"props":378,"children":379},{},[380],{"type":17,"value":381},"OS notification fallback for toasts when window is unfocused",{"type":11,"tag":129,"props":383,"children":384},{},[385,394,403],{"type":11,"tag":156,"props":386,"children":387},{},[388],{"type":11,"tag":40,"props":389,"children":391},{"className":390},[],[392],{"type":17,"value":393},"os:default",{"type":11,"tag":156,"props":395,"children":396},{},[397],{"type":11,"tag":40,"props":398,"children":400},{"className":399},[],[401],{"type":17,"value":402},"useTuxPlatform",{"type":11,"tag":156,"props":404,"children":405},{},[406],{"type":17,"value":407},"OS family + version detection",{"type":11,"tag":101,"props":409,"children":411},{"id":410},"component-tauri-api-reference",[412],{"type":17,"value":413},"Component → Tauri API reference",{"type":11,"tag":415,"props":416,"children":418},"h3",{"id":417},"tuxappframe",[419],{"type":11,"tag":40,"props":420,"children":422},{"className":421},[],[423],{"type":17,"value":173},{"type":11,"tag":23,"props":425,"children":426},{},[427,429,435,437,442],{"type":17,"value":428},"The single component that talks to Tauri most. Imports\n",{"type":11,"tag":40,"props":430,"children":432},{"className":431},[],[433],{"type":17,"value":434},"@tauri-apps\u002Fapi\u002Fwindow",{"type":17,"value":436}," ",{"type":11,"tag":27,"props":438,"children":439},{},[440],{"type":17,"value":441},"dynamically",{"type":17,"value":443}," so the static dependency\ngraph stays clean for plain-web builds.",{"type":11,"tag":445,"props":446,"children":450},"pre",{"className":447,"code":448,"language":449,"meta":6,"style":6},"language-ts shiki shiki-themes material-theme-lighter github-light github-dark","\u002F\u002F Dynamic import keeps Tauri off the plain-web bundle.\nconst mod = await import(\"@tauri-apps\u002Fapi\u002Fwindow\");\nconst win = mod.getCurrentWindow();\nawait win.close();          \u002F\u002F close button\nawait win.minimize();       \u002F\u002F minimize button\nawait win.toggleMaximize(); \u002F\u002F zoom\u002Fmaximize button\nconst max = await win.isMaximized(); \u002F\u002F for initial icon state\n","ts",[451],{"type":11,"tag":40,"props":452,"children":453},{"__ignoreMap":6},[454,466,531,572,608,642,676],{"type":11,"tag":455,"props":456,"children":459},"span",{"class":457,"line":458},"line",1,[460],{"type":11,"tag":455,"props":461,"children":463},{"style":462},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit",[464],{"type":17,"value":465},"\u002F\u002F Dynamic import keeps Tauri off the plain-web bundle.\n",{"type":11,"tag":455,"props":467,"children":469},{"class":457,"line":468},2,[470,476,482,488,494,499,505,511,516,520,525],{"type":11,"tag":455,"props":471,"children":473},{"style":472},"--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583",[474],{"type":17,"value":475},"const",{"type":11,"tag":455,"props":477,"children":479},{"style":478},"--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF",[480],{"type":17,"value":481}," mod",{"type":11,"tag":455,"props":483,"children":485},{"style":484},"--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583",[486],{"type":17,"value":487}," =",{"type":11,"tag":455,"props":489,"children":491},{"style":490},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit",[492],{"type":17,"value":493}," await",{"type":11,"tag":455,"props":495,"children":496},{"style":484},[497],{"type":17,"value":498}," import",{"type":11,"tag":455,"props":500,"children":502},{"style":501},"--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8",[503],{"type":17,"value":504},"(",{"type":11,"tag":455,"props":506,"children":508},{"style":507},"--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF",[509],{"type":17,"value":510},"\"",{"type":11,"tag":455,"props":512,"children":514},{"style":513},"--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF",[515],{"type":17,"value":434},{"type":11,"tag":455,"props":517,"children":518},{"style":507},[519],{"type":17,"value":510},{"type":11,"tag":455,"props":521,"children":522},{"style":501},[523],{"type":17,"value":524},")",{"type":11,"tag":455,"props":526,"children":528},{"style":527},"--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8",[529],{"type":17,"value":530},";\n",{"type":11,"tag":455,"props":532,"children":534},{"class":457,"line":533},3,[535,539,544,548,552,557,563,568],{"type":11,"tag":455,"props":536,"children":537},{"style":472},[538],{"type":17,"value":475},{"type":11,"tag":455,"props":540,"children":541},{"style":478},[542],{"type":17,"value":543}," win",{"type":11,"tag":455,"props":545,"children":546},{"style":484},[547],{"type":17,"value":487},{"type":11,"tag":455,"props":549,"children":550},{"style":501},[551],{"type":17,"value":481},{"type":11,"tag":455,"props":553,"children":554},{"style":527},[555],{"type":17,"value":556},".",{"type":11,"tag":455,"props":558,"children":560},{"style":559},"--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0",[561],{"type":17,"value":562},"getCurrentWindow",{"type":11,"tag":455,"props":564,"children":565},{"style":501},[566],{"type":17,"value":567},"()",{"type":11,"tag":455,"props":569,"children":570},{"style":527},[571],{"type":17,"value":530},{"type":11,"tag":455,"props":573,"children":575},{"class":457,"line":574},4,[576,581,585,589,594,598,603],{"type":11,"tag":455,"props":577,"children":578},{"style":490},[579],{"type":17,"value":580},"await",{"type":11,"tag":455,"props":582,"children":583},{"style":501},[584],{"type":17,"value":543},{"type":11,"tag":455,"props":586,"children":587},{"style":527},[588],{"type":17,"value":556},{"type":11,"tag":455,"props":590,"children":591},{"style":559},[592],{"type":17,"value":593},"close",{"type":11,"tag":455,"props":595,"children":596},{"style":501},[597],{"type":17,"value":567},{"type":11,"tag":455,"props":599,"children":600},{"style":527},[601],{"type":17,"value":602},";",{"type":11,"tag":455,"props":604,"children":605},{"style":462},[606],{"type":17,"value":607},"          \u002F\u002F close button\n",{"type":11,"tag":455,"props":609,"children":611},{"class":457,"line":610},5,[612,616,620,624,629,633,637],{"type":11,"tag":455,"props":613,"children":614},{"style":490},[615],{"type":17,"value":580},{"type":11,"tag":455,"props":617,"children":618},{"style":501},[619],{"type":17,"value":543},{"type":11,"tag":455,"props":621,"children":622},{"style":527},[623],{"type":17,"value":556},{"type":11,"tag":455,"props":625,"children":626},{"style":559},[627],{"type":17,"value":628},"minimize",{"type":11,"tag":455,"props":630,"children":631},{"style":501},[632],{"type":17,"value":567},{"type":11,"tag":455,"props":634,"children":635},{"style":527},[636],{"type":17,"value":602},{"type":11,"tag":455,"props":638,"children":639},{"style":462},[640],{"type":17,"value":641},"       \u002F\u002F minimize button\n",{"type":11,"tag":455,"props":643,"children":645},{"class":457,"line":644},6,[646,650,654,658,663,667,671],{"type":11,"tag":455,"props":647,"children":648},{"style":490},[649],{"type":17,"value":580},{"type":11,"tag":455,"props":651,"children":652},{"style":501},[653],{"type":17,"value":543},{"type":11,"tag":455,"props":655,"children":656},{"style":527},[657],{"type":17,"value":556},{"type":11,"tag":455,"props":659,"children":660},{"style":559},[661],{"type":17,"value":662},"toggleMaximize",{"type":11,"tag":455,"props":664,"children":665},{"style":501},[666],{"type":17,"value":567},{"type":11,"tag":455,"props":668,"children":669},{"style":527},[670],{"type":17,"value":602},{"type":11,"tag":455,"props":672,"children":673},{"style":462},[674],{"type":17,"value":675}," \u002F\u002F zoom\u002Fmaximize button\n",{"type":11,"tag":455,"props":677,"children":679},{"class":457,"line":678},7,[680,684,689,693,697,701,705,710,714,718],{"type":11,"tag":455,"props":681,"children":682},{"style":472},[683],{"type":17,"value":475},{"type":11,"tag":455,"props":685,"children":686},{"style":478},[687],{"type":17,"value":688}," max",{"type":11,"tag":455,"props":690,"children":691},{"style":484},[692],{"type":17,"value":487},{"type":11,"tag":455,"props":694,"children":695},{"style":490},[696],{"type":17,"value":493},{"type":11,"tag":455,"props":698,"children":699},{"style":501},[700],{"type":17,"value":543},{"type":11,"tag":455,"props":702,"children":703},{"style":527},[704],{"type":17,"value":556},{"type":11,"tag":455,"props":706,"children":707},{"style":559},[708],{"type":17,"value":709},"isMaximized",{"type":11,"tag":455,"props":711,"children":712},{"style":501},[713],{"type":17,"value":567},{"type":11,"tag":455,"props":715,"children":716},{"style":527},[717],{"type":17,"value":602},{"type":11,"tag":455,"props":719,"children":720},{"style":462},[721],{"type":17,"value":722}," \u002F\u002F for initial icon state\n",{"type":11,"tag":23,"props":724,"children":725},{},[726,731],{"type":11,"tag":27,"props":727,"children":728},{},[729],{"type":17,"value":730},"Web fallback:",{"type":17,"value":732}," controls render but click-handlers are no-ops.\nUseful for screenshot generation + showcase routes.",{"type":11,"tag":23,"props":734,"children":735},{},[736,741,742,748,750,756],{"type":11,"tag":27,"props":737,"children":738},{},[739],{"type":17,"value":740},"Drag region:",{"type":17,"value":436},{"type":11,"tag":40,"props":743,"children":745},{"className":744},[],[746],{"type":17,"value":747},"data-tauri-drag-region",{"type":17,"value":749}," on the titlebar element;\ninner controls carry ",{"type":11,"tag":40,"props":751,"children":753},{"className":752},[],[754],{"type":17,"value":755},"data-tauri-drag-region=\"false\"",{"type":17,"value":757},". Tauri's\nWebView handles the rest.",{"type":11,"tag":415,"props":759,"children":761},{"id":760},"tuxartifact-share-action-future-enhancement",[762,768],{"type":11,"tag":40,"props":763,"children":765},{"className":764},[],[766],{"type":17,"value":767},"TuxArtifact",{"type":17,"value":769}," — share action (future enhancement)",{"type":11,"tag":23,"props":771,"children":772},{},[773],{"type":17,"value":774},"When a researcher clicks the share button on a generated artifact:",{"type":11,"tag":445,"props":776,"children":778},{"className":447,"code":777,"language":449,"meta":6,"style":6},"\u002F\u002F Tauri path:\nconst mod = await import(\"@tauri-apps\u002Fplugin-clipboard-manager\");\nawait mod.writeText(url);\n\n\u002F\u002F Web path:\nif (\"share\" in navigator) {\n  await navigator.share({ title, text, url });\n} else {\n  await navigator.clipboard.writeText(url);\n}\n",[779],{"type":11,"tag":40,"props":780,"children":781},{"__ignoreMap":6},[782,790,838,867,876,884,925,993,1012,1058],{"type":11,"tag":455,"props":783,"children":784},{"class":457,"line":458},[785],{"type":11,"tag":455,"props":786,"children":787},{"style":462},[788],{"type":17,"value":789},"\u002F\u002F Tauri path:\n",{"type":11,"tag":455,"props":791,"children":792},{"class":457,"line":468},[793,797,801,805,809,813,817,821,826,830,834],{"type":11,"tag":455,"props":794,"children":795},{"style":472},[796],{"type":17,"value":475},{"type":11,"tag":455,"props":798,"children":799},{"style":478},[800],{"type":17,"value":481},{"type":11,"tag":455,"props":802,"children":803},{"style":484},[804],{"type":17,"value":487},{"type":11,"tag":455,"props":806,"children":807},{"style":490},[808],{"type":17,"value":493},{"type":11,"tag":455,"props":810,"children":811},{"style":484},[812],{"type":17,"value":498},{"type":11,"tag":455,"props":814,"children":815},{"style":501},[816],{"type":17,"value":504},{"type":11,"tag":455,"props":818,"children":819},{"style":507},[820],{"type":17,"value":510},{"type":11,"tag":455,"props":822,"children":823},{"style":513},[824],{"type":17,"value":825},"@tauri-apps\u002Fplugin-clipboard-manager",{"type":11,"tag":455,"props":827,"children":828},{"style":507},[829],{"type":17,"value":510},{"type":11,"tag":455,"props":831,"children":832},{"style":501},[833],{"type":17,"value":524},{"type":11,"tag":455,"props":835,"children":836},{"style":527},[837],{"type":17,"value":530},{"type":11,"tag":455,"props":839,"children":840},{"class":457,"line":533},[841,845,849,853,858,863],{"type":11,"tag":455,"props":842,"children":843},{"style":490},[844],{"type":17,"value":580},{"type":11,"tag":455,"props":846,"children":847},{"style":501},[848],{"type":17,"value":481},{"type":11,"tag":455,"props":850,"children":851},{"style":527},[852],{"type":17,"value":556},{"type":11,"tag":455,"props":854,"children":855},{"style":559},[856],{"type":17,"value":857},"writeText",{"type":11,"tag":455,"props":859,"children":860},{"style":501},[861],{"type":17,"value":862},"(url)",{"type":11,"tag":455,"props":864,"children":865},{"style":527},[866],{"type":17,"value":530},{"type":11,"tag":455,"props":868,"children":869},{"class":457,"line":574},[870],{"type":11,"tag":455,"props":871,"children":873},{"emptyLinePlaceholder":872},true,[874],{"type":17,"value":875},"\n",{"type":11,"tag":455,"props":877,"children":878},{"class":457,"line":610},[879],{"type":11,"tag":455,"props":880,"children":881},{"style":462},[882],{"type":17,"value":883},"\u002F\u002F Web path:\n",{"type":11,"tag":455,"props":885,"children":886},{"class":457,"line":644},[887,892,897,901,906,910,915,920],{"type":11,"tag":455,"props":888,"children":889},{"style":490},[890],{"type":17,"value":891},"if",{"type":11,"tag":455,"props":893,"children":894},{"style":501},[895],{"type":17,"value":896}," (",{"type":11,"tag":455,"props":898,"children":899},{"style":507},[900],{"type":17,"value":510},{"type":11,"tag":455,"props":902,"children":903},{"style":513},[904],{"type":17,"value":905},"share",{"type":11,"tag":455,"props":907,"children":908},{"style":507},[909],{"type":17,"value":510},{"type":11,"tag":455,"props":911,"children":912},{"style":484},[913],{"type":17,"value":914}," in",{"type":11,"tag":455,"props":916,"children":917},{"style":501},[918],{"type":17,"value":919}," navigator) ",{"type":11,"tag":455,"props":921,"children":922},{"style":527},[923],{"type":17,"value":924},"{\n",{"type":11,"tag":455,"props":926,"children":927},{"class":457,"line":678},[928,933,938,942,946,951,956,961,966,971,975,980,985,989],{"type":11,"tag":455,"props":929,"children":930},{"style":490},[931],{"type":17,"value":932},"  await",{"type":11,"tag":455,"props":934,"children":935},{"style":501},[936],{"type":17,"value":937}," navigator",{"type":11,"tag":455,"props":939,"children":940},{"style":527},[941],{"type":17,"value":556},{"type":11,"tag":455,"props":943,"children":944},{"style":559},[945],{"type":17,"value":905},{"type":11,"tag":455,"props":947,"children":949},{"style":948},"--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8",[950],{"type":17,"value":504},{"type":11,"tag":455,"props":952,"children":953},{"style":527},[954],{"type":17,"value":955},"{",{"type":11,"tag":455,"props":957,"children":958},{"style":501},[959],{"type":17,"value":960}," title",{"type":11,"tag":455,"props":962,"children":963},{"style":527},[964],{"type":17,"value":965},",",{"type":11,"tag":455,"props":967,"children":968},{"style":501},[969],{"type":17,"value":970}," text",{"type":11,"tag":455,"props":972,"children":973},{"style":527},[974],{"type":17,"value":965},{"type":11,"tag":455,"props":976,"children":977},{"style":501},[978],{"type":17,"value":979}," url",{"type":11,"tag":455,"props":981,"children":982},{"style":527},[983],{"type":17,"value":984}," }",{"type":11,"tag":455,"props":986,"children":987},{"style":948},[988],{"type":17,"value":524},{"type":11,"tag":455,"props":990,"children":991},{"style":527},[992],{"type":17,"value":530},{"type":11,"tag":455,"props":994,"children":996},{"class":457,"line":995},8,[997,1002,1007],{"type":11,"tag":455,"props":998,"children":999},{"style":527},[1000],{"type":17,"value":1001},"}",{"type":11,"tag":455,"props":1003,"children":1004},{"style":490},[1005],{"type":17,"value":1006}," else",{"type":11,"tag":455,"props":1008,"children":1009},{"style":527},[1010],{"type":17,"value":1011}," {\n",{"type":11,"tag":455,"props":1013,"children":1015},{"class":457,"line":1014},9,[1016,1020,1024,1028,1033,1037,1041,1045,1050,1054],{"type":11,"tag":455,"props":1017,"children":1018},{"style":490},[1019],{"type":17,"value":932},{"type":11,"tag":455,"props":1021,"children":1022},{"style":501},[1023],{"type":17,"value":937},{"type":11,"tag":455,"props":1025,"children":1026},{"style":527},[1027],{"type":17,"value":556},{"type":11,"tag":455,"props":1029,"children":1030},{"style":501},[1031],{"type":17,"value":1032},"clipboard",{"type":11,"tag":455,"props":1034,"children":1035},{"style":527},[1036],{"type":17,"value":556},{"type":11,"tag":455,"props":1038,"children":1039},{"style":559},[1040],{"type":17,"value":857},{"type":11,"tag":455,"props":1042,"children":1043},{"style":948},[1044],{"type":17,"value":504},{"type":11,"tag":455,"props":1046,"children":1047},{"style":501},[1048],{"type":17,"value":1049},"url",{"type":11,"tag":455,"props":1051,"children":1052},{"style":948},[1053],{"type":17,"value":524},{"type":11,"tag":455,"props":1055,"children":1056},{"style":527},[1057],{"type":17,"value":530},{"type":11,"tag":455,"props":1059,"children":1061},{"class":457,"line":1060},10,[1062],{"type":11,"tag":455,"props":1063,"children":1064},{"style":527},[1065],{"type":17,"value":1066},"}\n",{"type":11,"tag":23,"props":1068,"children":1069},{},[1070,1075,1077,1082],{"type":11,"tag":27,"props":1071,"children":1072},{},[1073],{"type":17,"value":1074},"Decision tree",{"type":17,"value":1076}," (host owns this — TUX exposes the action button +\nemits ",{"type":11,"tag":40,"props":1078,"children":1080},{"className":1079},[],[1081],{"type":17,"value":905},{"type":17,"value":1083},"):",{"type":11,"tag":81,"props":1085,"children":1086},{},[1087,1099,1120,1125,1130],{"type":11,"tag":85,"props":1088,"children":1089},{},[1090,1092,1098],{"type":17,"value":1091},"iOS \u002F Android: prefer the OS share sheet via ",{"type":11,"tag":40,"props":1093,"children":1095},{"className":1094},[],[1096],{"type":17,"value":1097},"navigator.share",{"type":17,"value":556},{"type":11,"tag":85,"props":1100,"children":1101},{},[1102,1104,1110,1112,1118],{"type":17,"value":1103},"macOS in Tauri: prefer ",{"type":11,"tag":40,"props":1105,"children":1107},{"className":1106},[],[1108],{"type":17,"value":1109},"tauri-plugin-shell",{"type":17,"value":1111}," to invoke the share\nsheet via ",{"type":11,"tag":40,"props":1113,"children":1115},{"className":1114},[],[1116],{"type":17,"value":1117},"osascript",{"type":17,"value":1119},"; fall back to clipboard.",{"type":11,"tag":85,"props":1121,"children":1122},{},[1123],{"type":17,"value":1124},"Windows in Tauri: clipboard (Win11's share sheet is reachable\nbut inconsistent across builds).",{"type":11,"tag":85,"props":1126,"children":1127},{},[1128],{"type":17,"value":1129},"Linux in Tauri: clipboard.",{"type":11,"tag":85,"props":1131,"children":1132},{},[1133],{"type":17,"value":1134},"Plain web on desktop: clipboard.",{"type":11,"tag":415,"props":1136,"children":1138},{"id":1137},"tuxcodeblock-download-future-enhancement",[1139,1144],{"type":11,"tag":40,"props":1140,"children":1142},{"className":1141},[],[1143],{"type":17,"value":326},{"type":17,"value":1145}," — download (future enhancement)",{"type":11,"tag":23,"props":1147,"children":1148},{},[1149,1151,1157],{"type":17,"value":1150},"The existing download button uses ",{"type":11,"tag":40,"props":1152,"children":1154},{"className":1153},[],[1155],{"type":17,"value":1156},"\u003Ca download>",{"type":17,"value":1158}," (creates a Blob).\nA Tauri enhancement would use the native save dialog:",{"type":11,"tag":445,"props":1160,"children":1162},{"className":447,"code":1161,"language":449,"meta":6,"style":6},"\u002F\u002F Tauri path:\nconst dialog = await import(\"@tauri-apps\u002Fplugin-dialog\");\nconst fs = await import(\"@tauri-apps\u002Fplugin-fs\");\nconst path = await dialog.save({\n  defaultPath: filename,\n  filters: [{ name: \"Code\", extensions: [\"ts\", \"js\", \"vue\"] }],\n});\nif (path) await fs.writeTextFile(path, code);\n\n\u002F\u002F Web path (current):\nconst blob = new Blob([code], { type: \"text\u002Fplain\" });\nconst url = URL.createObjectURL(blob);\nconst a = document.createElement(\"a\");\na.href = url; a.download = filename; a.click();\nURL.revokeObjectURL(url);\n",[1163],{"type":11,"tag":40,"props":1164,"children":1165},{"__ignoreMap":6},[1166,1173,1222,1271,1312,1335,1460,1475,1522,1529,1537,1612,1651,1706,1782],{"type":11,"tag":455,"props":1167,"children":1168},{"class":457,"line":458},[1169],{"type":11,"tag":455,"props":1170,"children":1171},{"style":462},[1172],{"type":17,"value":789},{"type":11,"tag":455,"props":1174,"children":1175},{"class":457,"line":468},[1176,1180,1185,1189,1193,1197,1201,1205,1210,1214,1218],{"type":11,"tag":455,"props":1177,"children":1178},{"style":472},[1179],{"type":17,"value":475},{"type":11,"tag":455,"props":1181,"children":1182},{"style":478},[1183],{"type":17,"value":1184}," dialog",{"type":11,"tag":455,"props":1186,"children":1187},{"style":484},[1188],{"type":17,"value":487},{"type":11,"tag":455,"props":1190,"children":1191},{"style":490},[1192],{"type":17,"value":493},{"type":11,"tag":455,"props":1194,"children":1195},{"style":484},[1196],{"type":17,"value":498},{"type":11,"tag":455,"props":1198,"children":1199},{"style":501},[1200],{"type":17,"value":504},{"type":11,"tag":455,"props":1202,"children":1203},{"style":507},[1204],{"type":17,"value":510},{"type":11,"tag":455,"props":1206,"children":1207},{"style":513},[1208],{"type":17,"value":1209},"@tauri-apps\u002Fplugin-dialog",{"type":11,"tag":455,"props":1211,"children":1212},{"style":507},[1213],{"type":17,"value":510},{"type":11,"tag":455,"props":1215,"children":1216},{"style":501},[1217],{"type":17,"value":524},{"type":11,"tag":455,"props":1219,"children":1220},{"style":527},[1221],{"type":17,"value":530},{"type":11,"tag":455,"props":1223,"children":1224},{"class":457,"line":533},[1225,1229,1234,1238,1242,1246,1250,1254,1259,1263,1267],{"type":11,"tag":455,"props":1226,"children":1227},{"style":472},[1228],{"type":17,"value":475},{"type":11,"tag":455,"props":1230,"children":1231},{"style":478},[1232],{"type":17,"value":1233}," fs",{"type":11,"tag":455,"props":1235,"children":1236},{"style":484},[1237],{"type":17,"value":487},{"type":11,"tag":455,"props":1239,"children":1240},{"style":490},[1241],{"type":17,"value":493},{"type":11,"tag":455,"props":1243,"children":1244},{"style":484},[1245],{"type":17,"value":498},{"type":11,"tag":455,"props":1247,"children":1248},{"style":501},[1249],{"type":17,"value":504},{"type":11,"tag":455,"props":1251,"children":1252},{"style":507},[1253],{"type":17,"value":510},{"type":11,"tag":455,"props":1255,"children":1256},{"style":513},[1257],{"type":17,"value":1258},"@tauri-apps\u002Fplugin-fs",{"type":11,"tag":455,"props":1260,"children":1261},{"style":507},[1262],{"type":17,"value":510},{"type":11,"tag":455,"props":1264,"children":1265},{"style":501},[1266],{"type":17,"value":524},{"type":11,"tag":455,"props":1268,"children":1269},{"style":527},[1270],{"type":17,"value":530},{"type":11,"tag":455,"props":1272,"children":1273},{"class":457,"line":574},[1274,1278,1283,1287,1291,1295,1299,1304,1308],{"type":11,"tag":455,"props":1275,"children":1276},{"style":472},[1277],{"type":17,"value":475},{"type":11,"tag":455,"props":1279,"children":1280},{"style":478},[1281],{"type":17,"value":1282}," path",{"type":11,"tag":455,"props":1284,"children":1285},{"style":484},[1286],{"type":17,"value":487},{"type":11,"tag":455,"props":1288,"children":1289},{"style":490},[1290],{"type":17,"value":493},{"type":11,"tag":455,"props":1292,"children":1293},{"style":501},[1294],{"type":17,"value":1184},{"type":11,"tag":455,"props":1296,"children":1297},{"style":527},[1298],{"type":17,"value":556},{"type":11,"tag":455,"props":1300,"children":1301},{"style":559},[1302],{"type":17,"value":1303},"save",{"type":11,"tag":455,"props":1305,"children":1306},{"style":501},[1307],{"type":17,"value":504},{"type":11,"tag":455,"props":1309,"children":1310},{"style":527},[1311],{"type":17,"value":924},{"type":11,"tag":455,"props":1313,"children":1314},{"class":457,"line":610},[1315,1320,1325,1330],{"type":11,"tag":455,"props":1316,"children":1317},{"style":948},[1318],{"type":17,"value":1319},"  defaultPath",{"type":11,"tag":455,"props":1321,"children":1322},{"style":527},[1323],{"type":17,"value":1324},":",{"type":11,"tag":455,"props":1326,"children":1327},{"style":501},[1328],{"type":17,"value":1329}," filename",{"type":11,"tag":455,"props":1331,"children":1332},{"style":527},[1333],{"type":17,"value":1334},",\n",{"type":11,"tag":455,"props":1336,"children":1337},{"class":457,"line":644},[1338,1343,1347,1352,1356,1361,1365,1370,1375,1379,1383,1388,1392,1396,1400,1404,1408,1412,1416,1421,1425,1429,1433,1438,1442,1447,1451,1456],{"type":11,"tag":455,"props":1339,"children":1340},{"style":948},[1341],{"type":17,"value":1342},"  filters",{"type":11,"tag":455,"props":1344,"children":1345},{"style":527},[1346],{"type":17,"value":1324},{"type":11,"tag":455,"props":1348,"children":1349},{"style":501},[1350],{"type":17,"value":1351}," [",{"type":11,"tag":455,"props":1353,"children":1354},{"style":527},[1355],{"type":17,"value":955},{"type":11,"tag":455,"props":1357,"children":1358},{"style":948},[1359],{"type":17,"value":1360}," name",{"type":11,"tag":455,"props":1362,"children":1363},{"style":527},[1364],{"type":17,"value":1324},{"type":11,"tag":455,"props":1366,"children":1367},{"style":507},[1368],{"type":17,"value":1369}," \"",{"type":11,"tag":455,"props":1371,"children":1372},{"style":513},[1373],{"type":17,"value":1374},"Code",{"type":11,"tag":455,"props":1376,"children":1377},{"style":507},[1378],{"type":17,"value":510},{"type":11,"tag":455,"props":1380,"children":1381},{"style":527},[1382],{"type":17,"value":965},{"type":11,"tag":455,"props":1384,"children":1385},{"style":948},[1386],{"type":17,"value":1387}," extensions",{"type":11,"tag":455,"props":1389,"children":1390},{"style":527},[1391],{"type":17,"value":1324},{"type":11,"tag":455,"props":1393,"children":1394},{"style":501},[1395],{"type":17,"value":1351},{"type":11,"tag":455,"props":1397,"children":1398},{"style":507},[1399],{"type":17,"value":510},{"type":11,"tag":455,"props":1401,"children":1402},{"style":513},[1403],{"type":17,"value":449},{"type":11,"tag":455,"props":1405,"children":1406},{"style":507},[1407],{"type":17,"value":510},{"type":11,"tag":455,"props":1409,"children":1410},{"style":527},[1411],{"type":17,"value":965},{"type":11,"tag":455,"props":1413,"children":1414},{"style":507},[1415],{"type":17,"value":1369},{"type":11,"tag":455,"props":1417,"children":1418},{"style":513},[1419],{"type":17,"value":1420},"js",{"type":11,"tag":455,"props":1422,"children":1423},{"style":507},[1424],{"type":17,"value":510},{"type":11,"tag":455,"props":1426,"children":1427},{"style":527},[1428],{"type":17,"value":965},{"type":11,"tag":455,"props":1430,"children":1431},{"style":507},[1432],{"type":17,"value":1369},{"type":11,"tag":455,"props":1434,"children":1435},{"style":513},[1436],{"type":17,"value":1437},"vue",{"type":11,"tag":455,"props":1439,"children":1440},{"style":507},[1441],{"type":17,"value":510},{"type":11,"tag":455,"props":1443,"children":1444},{"style":501},[1445],{"type":17,"value":1446},"] ",{"type":11,"tag":455,"props":1448,"children":1449},{"style":527},[1450],{"type":17,"value":1001},{"type":11,"tag":455,"props":1452,"children":1453},{"style":501},[1454],{"type":17,"value":1455},"]",{"type":11,"tag":455,"props":1457,"children":1458},{"style":527},[1459],{"type":17,"value":1334},{"type":11,"tag":455,"props":1461,"children":1462},{"class":457,"line":678},[1463,1467,1471],{"type":11,"tag":455,"props":1464,"children":1465},{"style":527},[1466],{"type":17,"value":1001},{"type":11,"tag":455,"props":1468,"children":1469},{"style":501},[1470],{"type":17,"value":524},{"type":11,"tag":455,"props":1472,"children":1473},{"style":527},[1474],{"type":17,"value":530},{"type":11,"tag":455,"props":1476,"children":1477},{"class":457,"line":995},[1478,1482,1487,1491,1495,1499,1504,1509,1513,1518],{"type":11,"tag":455,"props":1479,"children":1480},{"style":490},[1481],{"type":17,"value":891},{"type":11,"tag":455,"props":1483,"children":1484},{"style":501},[1485],{"type":17,"value":1486}," (path) ",{"type":11,"tag":455,"props":1488,"children":1489},{"style":490},[1490],{"type":17,"value":580},{"type":11,"tag":455,"props":1492,"children":1493},{"style":501},[1494],{"type":17,"value":1233},{"type":11,"tag":455,"props":1496,"children":1497},{"style":527},[1498],{"type":17,"value":556},{"type":11,"tag":455,"props":1500,"children":1501},{"style":559},[1502],{"type":17,"value":1503},"writeTextFile",{"type":11,"tag":455,"props":1505,"children":1506},{"style":501},[1507],{"type":17,"value":1508},"(path",{"type":11,"tag":455,"props":1510,"children":1511},{"style":527},[1512],{"type":17,"value":965},{"type":11,"tag":455,"props":1514,"children":1515},{"style":501},[1516],{"type":17,"value":1517}," code)",{"type":11,"tag":455,"props":1519,"children":1520},{"style":527},[1521],{"type":17,"value":530},{"type":11,"tag":455,"props":1523,"children":1524},{"class":457,"line":1014},[1525],{"type":11,"tag":455,"props":1526,"children":1527},{"emptyLinePlaceholder":872},[1528],{"type":17,"value":875},{"type":11,"tag":455,"props":1530,"children":1531},{"class":457,"line":1060},[1532],{"type":11,"tag":455,"props":1533,"children":1534},{"style":462},[1535],{"type":17,"value":1536},"\u002F\u002F Web path (current):\n",{"type":11,"tag":455,"props":1538,"children":1540},{"class":457,"line":1539},11,[1541,1545,1550,1554,1559,1564,1569,1573,1578,1583,1587,1591,1596,1600,1604,1608],{"type":11,"tag":455,"props":1542,"children":1543},{"style":472},[1544],{"type":17,"value":475},{"type":11,"tag":455,"props":1546,"children":1547},{"style":478},[1548],{"type":17,"value":1549}," blob",{"type":11,"tag":455,"props":1551,"children":1552},{"style":484},[1553],{"type":17,"value":487},{"type":11,"tag":455,"props":1555,"children":1556},{"style":484},[1557],{"type":17,"value":1558}," new",{"type":11,"tag":455,"props":1560,"children":1561},{"style":559},[1562],{"type":17,"value":1563}," Blob",{"type":11,"tag":455,"props":1565,"children":1566},{"style":501},[1567],{"type":17,"value":1568},"([code]",{"type":11,"tag":455,"props":1570,"children":1571},{"style":527},[1572],{"type":17,"value":965},{"type":11,"tag":455,"props":1574,"children":1575},{"style":527},[1576],{"type":17,"value":1577}," {",{"type":11,"tag":455,"props":1579,"children":1580},{"style":948},[1581],{"type":17,"value":1582}," type",{"type":11,"tag":455,"props":1584,"children":1585},{"style":527},[1586],{"type":17,"value":1324},{"type":11,"tag":455,"props":1588,"children":1589},{"style":507},[1590],{"type":17,"value":1369},{"type":11,"tag":455,"props":1592,"children":1593},{"style":513},[1594],{"type":17,"value":1595},"text\u002Fplain",{"type":11,"tag":455,"props":1597,"children":1598},{"style":507},[1599],{"type":17,"value":510},{"type":11,"tag":455,"props":1601,"children":1602},{"style":527},[1603],{"type":17,"value":984},{"type":11,"tag":455,"props":1605,"children":1606},{"style":501},[1607],{"type":17,"value":524},{"type":11,"tag":455,"props":1609,"children":1610},{"style":527},[1611],{"type":17,"value":530},{"type":11,"tag":455,"props":1613,"children":1615},{"class":457,"line":1614},12,[1616,1620,1624,1628,1633,1637,1642,1647],{"type":11,"tag":455,"props":1617,"children":1618},{"style":472},[1619],{"type":17,"value":475},{"type":11,"tag":455,"props":1621,"children":1622},{"style":478},[1623],{"type":17,"value":979},{"type":11,"tag":455,"props":1625,"children":1626},{"style":484},[1627],{"type":17,"value":487},{"type":11,"tag":455,"props":1629,"children":1630},{"style":478},[1631],{"type":17,"value":1632}," URL",{"type":11,"tag":455,"props":1634,"children":1635},{"style":527},[1636],{"type":17,"value":556},{"type":11,"tag":455,"props":1638,"children":1639},{"style":559},[1640],{"type":17,"value":1641},"createObjectURL",{"type":11,"tag":455,"props":1643,"children":1644},{"style":501},[1645],{"type":17,"value":1646},"(blob)",{"type":11,"tag":455,"props":1648,"children":1649},{"style":527},[1650],{"type":17,"value":530},{"type":11,"tag":455,"props":1652,"children":1654},{"class":457,"line":1653},13,[1655,1659,1664,1668,1673,1677,1682,1686,1690,1694,1698,1702],{"type":11,"tag":455,"props":1656,"children":1657},{"style":472},[1658],{"type":17,"value":475},{"type":11,"tag":455,"props":1660,"children":1661},{"style":478},[1662],{"type":17,"value":1663}," a",{"type":11,"tag":455,"props":1665,"children":1666},{"style":484},[1667],{"type":17,"value":487},{"type":11,"tag":455,"props":1669,"children":1670},{"style":501},[1671],{"type":17,"value":1672}," document",{"type":11,"tag":455,"props":1674,"children":1675},{"style":527},[1676],{"type":17,"value":556},{"type":11,"tag":455,"props":1678,"children":1679},{"style":559},[1680],{"type":17,"value":1681},"createElement",{"type":11,"tag":455,"props":1683,"children":1684},{"style":501},[1685],{"type":17,"value":504},{"type":11,"tag":455,"props":1687,"children":1688},{"style":507},[1689],{"type":17,"value":510},{"type":11,"tag":455,"props":1691,"children":1692},{"style":513},[1693],{"type":17,"value":35},{"type":11,"tag":455,"props":1695,"children":1696},{"style":507},[1697],{"type":17,"value":510},{"type":11,"tag":455,"props":1699,"children":1700},{"style":501},[1701],{"type":17,"value":524},{"type":11,"tag":455,"props":1703,"children":1704},{"style":527},[1705],{"type":17,"value":530},{"type":11,"tag":455,"props":1707,"children":1709},{"class":457,"line":1708},14,[1710,1714,1718,1723,1728,1732,1736,1740,1744,1749,1753,1757,1761,1765,1769,1774,1778],{"type":11,"tag":455,"props":1711,"children":1712},{"style":501},[1713],{"type":17,"value":35},{"type":11,"tag":455,"props":1715,"children":1716},{"style":527},[1717],{"type":17,"value":556},{"type":11,"tag":455,"props":1719,"children":1720},{"style":501},[1721],{"type":17,"value":1722},"href ",{"type":11,"tag":455,"props":1724,"children":1725},{"style":484},[1726],{"type":17,"value":1727},"=",{"type":11,"tag":455,"props":1729,"children":1730},{"style":501},[1731],{"type":17,"value":979},{"type":11,"tag":455,"props":1733,"children":1734},{"style":527},[1735],{"type":17,"value":602},{"type":11,"tag":455,"props":1737,"children":1738},{"style":501},[1739],{"type":17,"value":1663},{"type":11,"tag":455,"props":1741,"children":1742},{"style":527},[1743],{"type":17,"value":556},{"type":11,"tag":455,"props":1745,"children":1746},{"style":501},[1747],{"type":17,"value":1748},"download ",{"type":11,"tag":455,"props":1750,"children":1751},{"style":484},[1752],{"type":17,"value":1727},{"type":11,"tag":455,"props":1754,"children":1755},{"style":501},[1756],{"type":17,"value":1329},{"type":11,"tag":455,"props":1758,"children":1759},{"style":527},[1760],{"type":17,"value":602},{"type":11,"tag":455,"props":1762,"children":1763},{"style":501},[1764],{"type":17,"value":1663},{"type":11,"tag":455,"props":1766,"children":1767},{"style":527},[1768],{"type":17,"value":556},{"type":11,"tag":455,"props":1770,"children":1771},{"style":559},[1772],{"type":17,"value":1773},"click",{"type":11,"tag":455,"props":1775,"children":1776},{"style":501},[1777],{"type":17,"value":567},{"type":11,"tag":455,"props":1779,"children":1780},{"style":527},[1781],{"type":17,"value":530},{"type":11,"tag":455,"props":1783,"children":1785},{"class":457,"line":1784},15,[1786,1791,1795,1800,1804],{"type":11,"tag":455,"props":1787,"children":1788},{"style":478},[1789],{"type":17,"value":1790},"URL",{"type":11,"tag":455,"props":1792,"children":1793},{"style":527},[1794],{"type":17,"value":556},{"type":11,"tag":455,"props":1796,"children":1797},{"style":559},[1798],{"type":17,"value":1799},"revokeObjectURL",{"type":11,"tag":455,"props":1801,"children":1802},{"style":501},[1803],{"type":17,"value":862},{"type":11,"tag":455,"props":1805,"children":1806},{"style":527},[1807],{"type":17,"value":530},{"type":11,"tag":415,"props":1809,"children":1811},{"id":1810},"tuxstatustoast-system-notification-future-enhancement",[1812,1817],{"type":11,"tag":40,"props":1813,"children":1815},{"className":1814},[],[1816],{"type":17,"value":375},{"type":17,"value":1818}," — system notification (future enhancement)",{"type":11,"tag":23,"props":1820,"children":1821},{},[1822,1824,1829],{"type":17,"value":1823},"When the Tauri window is ",{"type":11,"tag":27,"props":1825,"children":1826},{},[1827],{"type":17,"value":1828},"unfocused",{"type":17,"value":1830},", toasts should escalate to\nnative notifications so the user sees them on the OS notification\ncenter:",{"type":11,"tag":445,"props":1832,"children":1834},{"className":447,"code":1833,"language":449,"meta":6,"style":6},"import { isPermissionGranted, requestPermission, sendNotification }\n  from \"@tauri-apps\u002Fplugin-notification\";\n\nconst visible = !document.hidden;\nif (!visible && useTuxPlatform().value.tauri) {\n  let permissionGranted = await isPermissionGranted();\n  if (!permissionGranted) {\n    permissionGranted = (await requestPermission()) === \"granted\";\n  }\n  if (permissionGranted) {\n    sendNotification({ title, body });\n  }\n}\n",[1835],{"type":11,"tag":40,"props":1836,"children":1837},{"__ignoreMap":6},[1838,1878,1903,1910,1949,2006,2039,2069,2120,2128,2151,2192,2199],{"type":11,"tag":455,"props":1839,"children":1840},{"class":457,"line":458},[1841,1846,1850,1855,1859,1864,1868,1873],{"type":11,"tag":455,"props":1842,"children":1843},{"style":490},[1844],{"type":17,"value":1845},"import",{"type":11,"tag":455,"props":1847,"children":1848},{"style":527},[1849],{"type":17,"value":1577},{"type":11,"tag":455,"props":1851,"children":1852},{"style":501},[1853],{"type":17,"value":1854}," isPermissionGranted",{"type":11,"tag":455,"props":1856,"children":1857},{"style":527},[1858],{"type":17,"value":965},{"type":11,"tag":455,"props":1860,"children":1861},{"style":501},[1862],{"type":17,"value":1863}," requestPermission",{"type":11,"tag":455,"props":1865,"children":1866},{"style":527},[1867],{"type":17,"value":965},{"type":11,"tag":455,"props":1869,"children":1870},{"style":501},[1871],{"type":17,"value":1872}," sendNotification",{"type":11,"tag":455,"props":1874,"children":1875},{"style":527},[1876],{"type":17,"value":1877}," }\n",{"type":11,"tag":455,"props":1879,"children":1880},{"class":457,"line":468},[1881,1886,1890,1895,1899],{"type":11,"tag":455,"props":1882,"children":1883},{"style":490},[1884],{"type":17,"value":1885},"  from",{"type":11,"tag":455,"props":1887,"children":1888},{"style":507},[1889],{"type":17,"value":1369},{"type":11,"tag":455,"props":1891,"children":1892},{"style":513},[1893],{"type":17,"value":1894},"@tauri-apps\u002Fplugin-notification",{"type":11,"tag":455,"props":1896,"children":1897},{"style":507},[1898],{"type":17,"value":510},{"type":11,"tag":455,"props":1900,"children":1901},{"style":527},[1902],{"type":17,"value":530},{"type":11,"tag":455,"props":1904,"children":1905},{"class":457,"line":533},[1906],{"type":11,"tag":455,"props":1907,"children":1908},{"emptyLinePlaceholder":872},[1909],{"type":17,"value":875},{"type":11,"tag":455,"props":1911,"children":1912},{"class":457,"line":574},[1913,1917,1922,1926,1931,1936,1940,1945],{"type":11,"tag":455,"props":1914,"children":1915},{"style":472},[1916],{"type":17,"value":475},{"type":11,"tag":455,"props":1918,"children":1919},{"style":478},[1920],{"type":17,"value":1921}," visible",{"type":11,"tag":455,"props":1923,"children":1924},{"style":484},[1925],{"type":17,"value":487},{"type":11,"tag":455,"props":1927,"children":1928},{"style":484},[1929],{"type":17,"value":1930}," !",{"type":11,"tag":455,"props":1932,"children":1933},{"style":501},[1934],{"type":17,"value":1935},"document",{"type":11,"tag":455,"props":1937,"children":1938},{"style":527},[1939],{"type":17,"value":556},{"type":11,"tag":455,"props":1941,"children":1942},{"style":501},[1943],{"type":17,"value":1944},"hidden",{"type":11,"tag":455,"props":1946,"children":1947},{"style":527},[1948],{"type":17,"value":530},{"type":11,"tag":455,"props":1950,"children":1951},{"class":457,"line":610},[1952,1956,1960,1965,1970,1975,1980,1984,1988,1993,1997,2002],{"type":11,"tag":455,"props":1953,"children":1954},{"style":490},[1955],{"type":17,"value":891},{"type":11,"tag":455,"props":1957,"children":1958},{"style":501},[1959],{"type":17,"value":896},{"type":11,"tag":455,"props":1961,"children":1962},{"style":484},[1963],{"type":17,"value":1964},"!",{"type":11,"tag":455,"props":1966,"children":1967},{"style":501},[1968],{"type":17,"value":1969},"visible ",{"type":11,"tag":455,"props":1971,"children":1972},{"style":484},[1973],{"type":17,"value":1974},"&&",{"type":11,"tag":455,"props":1976,"children":1977},{"style":559},[1978],{"type":17,"value":1979}," useTuxPlatform",{"type":11,"tag":455,"props":1981,"children":1982},{"style":501},[1983],{"type":17,"value":567},{"type":11,"tag":455,"props":1985,"children":1986},{"style":527},[1987],{"type":17,"value":556},{"type":11,"tag":455,"props":1989,"children":1990},{"style":501},[1991],{"type":17,"value":1992},"value",{"type":11,"tag":455,"props":1994,"children":1995},{"style":527},[1996],{"type":17,"value":556},{"type":11,"tag":455,"props":1998,"children":1999},{"style":501},[2000],{"type":17,"value":2001},"tauri) ",{"type":11,"tag":455,"props":2003,"children":2004},{"style":527},[2005],{"type":17,"value":924},{"type":11,"tag":455,"props":2007,"children":2008},{"class":457,"line":644},[2009,2014,2019,2023,2027,2031,2035],{"type":11,"tag":455,"props":2010,"children":2011},{"style":472},[2012],{"type":17,"value":2013},"  let",{"type":11,"tag":455,"props":2015,"children":2016},{"style":501},[2017],{"type":17,"value":2018}," permissionGranted",{"type":11,"tag":455,"props":2020,"children":2021},{"style":484},[2022],{"type":17,"value":487},{"type":11,"tag":455,"props":2024,"children":2025},{"style":490},[2026],{"type":17,"value":493},{"type":11,"tag":455,"props":2028,"children":2029},{"style":559},[2030],{"type":17,"value":1854},{"type":11,"tag":455,"props":2032,"children":2033},{"style":948},[2034],{"type":17,"value":567},{"type":11,"tag":455,"props":2036,"children":2037},{"style":527},[2038],{"type":17,"value":530},{"type":11,"tag":455,"props":2040,"children":2041},{"class":457,"line":678},[2042,2047,2051,2055,2060,2065],{"type":11,"tag":455,"props":2043,"children":2044},{"style":490},[2045],{"type":17,"value":2046},"  if",{"type":11,"tag":455,"props":2048,"children":2049},{"style":948},[2050],{"type":17,"value":896},{"type":11,"tag":455,"props":2052,"children":2053},{"style":484},[2054],{"type":17,"value":1964},{"type":11,"tag":455,"props":2056,"children":2057},{"style":501},[2058],{"type":17,"value":2059},"permissionGranted",{"type":11,"tag":455,"props":2061,"children":2062},{"style":948},[2063],{"type":17,"value":2064},") ",{"type":11,"tag":455,"props":2066,"children":2067},{"style":527},[2068],{"type":17,"value":924},{"type":11,"tag":455,"props":2070,"children":2071},{"class":457,"line":995},[2072,2077,2081,2085,2089,2093,2098,2103,2107,2112,2116],{"type":11,"tag":455,"props":2073,"children":2074},{"style":501},[2075],{"type":17,"value":2076},"    permissionGranted",{"type":11,"tag":455,"props":2078,"children":2079},{"style":484},[2080],{"type":17,"value":487},{"type":11,"tag":455,"props":2082,"children":2083},{"style":948},[2084],{"type":17,"value":896},{"type":11,"tag":455,"props":2086,"children":2087},{"style":490},[2088],{"type":17,"value":580},{"type":11,"tag":455,"props":2090,"children":2091},{"style":559},[2092],{"type":17,"value":1863},{"type":11,"tag":455,"props":2094,"children":2095},{"style":948},[2096],{"type":17,"value":2097},"()) ",{"type":11,"tag":455,"props":2099,"children":2100},{"style":484},[2101],{"type":17,"value":2102},"===",{"type":11,"tag":455,"props":2104,"children":2105},{"style":507},[2106],{"type":17,"value":1369},{"type":11,"tag":455,"props":2108,"children":2109},{"style":513},[2110],{"type":17,"value":2111},"granted",{"type":11,"tag":455,"props":2113,"children":2114},{"style":507},[2115],{"type":17,"value":510},{"type":11,"tag":455,"props":2117,"children":2118},{"style":527},[2119],{"type":17,"value":530},{"type":11,"tag":455,"props":2121,"children":2122},{"class":457,"line":1014},[2123],{"type":11,"tag":455,"props":2124,"children":2125},{"style":527},[2126],{"type":17,"value":2127},"  }\n",{"type":11,"tag":455,"props":2129,"children":2130},{"class":457,"line":1060},[2131,2135,2139,2143,2147],{"type":11,"tag":455,"props":2132,"children":2133},{"style":490},[2134],{"type":17,"value":2046},{"type":11,"tag":455,"props":2136,"children":2137},{"style":948},[2138],{"type":17,"value":896},{"type":11,"tag":455,"props":2140,"children":2141},{"style":501},[2142],{"type":17,"value":2059},{"type":11,"tag":455,"props":2144,"children":2145},{"style":948},[2146],{"type":17,"value":2064},{"type":11,"tag":455,"props":2148,"children":2149},{"style":527},[2150],{"type":17,"value":924},{"type":11,"tag":455,"props":2152,"children":2153},{"class":457,"line":1539},[2154,2159,2163,2167,2171,2175,2180,2184,2188],{"type":11,"tag":455,"props":2155,"children":2156},{"style":559},[2157],{"type":17,"value":2158},"    sendNotification",{"type":11,"tag":455,"props":2160,"children":2161},{"style":948},[2162],{"type":17,"value":504},{"type":11,"tag":455,"props":2164,"children":2165},{"style":527},[2166],{"type":17,"value":955},{"type":11,"tag":455,"props":2168,"children":2169},{"style":501},[2170],{"type":17,"value":960},{"type":11,"tag":455,"props":2172,"children":2173},{"style":527},[2174],{"type":17,"value":965},{"type":11,"tag":455,"props":2176,"children":2177},{"style":501},[2178],{"type":17,"value":2179}," body",{"type":11,"tag":455,"props":2181,"children":2182},{"style":527},[2183],{"type":17,"value":984},{"type":11,"tag":455,"props":2185,"children":2186},{"style":948},[2187],{"type":17,"value":524},{"type":11,"tag":455,"props":2189,"children":2190},{"style":527},[2191],{"type":17,"value":530},{"type":11,"tag":455,"props":2193,"children":2194},{"class":457,"line":1614},[2195],{"type":11,"tag":455,"props":2196,"children":2197},{"style":527},[2198],{"type":17,"value":2127},{"type":11,"tag":455,"props":2200,"children":2201},{"class":457,"line":1653},[2202],{"type":11,"tag":455,"props":2203,"children":2204},{"style":527},[2205],{"type":17,"value":1066},{"type":11,"tag":23,"props":2207,"children":2208},{},[2209,2213,2215,2221],{"type":11,"tag":27,"props":2210,"children":2211},{},[2212],{"type":17,"value":730},{"type":17,"value":2214}," standard ",{"type":11,"tag":40,"props":2216,"children":2218},{"className":2217},[],[2219],{"type":17,"value":2220},"Notification",{"type":17,"value":2222}," API where permitted; the\nin-page toast always renders regardless.",{"type":11,"tag":415,"props":2224,"children":2226},{"id":2225},"usetuxplatform-os-detection",[2227,2232],{"type":11,"tag":40,"props":2228,"children":2230},{"className":2229},[],[2231],{"type":17,"value":402},{"type":17,"value":2233}," — OS detection",{"type":11,"tag":23,"props":2235,"children":2236},{},[2237],{"type":17,"value":2238},"Already documented in the composable itself. Detection priority:",{"type":11,"tag":2240,"props":2241,"children":2242},"ol",{},[2243,2254,2265],{"type":11,"tag":85,"props":2244,"children":2245},{},[2246,2252],{"type":11,"tag":40,"props":2247,"children":2249},{"className":2248},[],[2250],{"type":17,"value":2251},"globalThis.__TAURI_INTERNALS__",{"type":17,"value":2253}," → Tauri runtime.",{"type":11,"tag":85,"props":2255,"children":2256},{},[2257,2263],{"type":11,"tag":40,"props":2258,"children":2260},{"className":2259},[],[2261],{"type":17,"value":2262},"globalThis.__TAURI_OS_PLUGIN_INTERNALS__",{"type":17,"value":2264}," → Tauri 2.x os plugin.",{"type":11,"tag":85,"props":2266,"children":2267},{},[2268,2274,2276,2282],{"type":11,"tag":40,"props":2269,"children":2271},{"className":2270},[],[2272],{"type":17,"value":2273},"navigator.platform",{"type":17,"value":2275}," + ",{"type":11,"tag":40,"props":2277,"children":2279},{"className":2278},[],[2280],{"type":17,"value":2281},"navigator.userAgent",{"type":17,"value":2283}," → fallback.",{"type":11,"tag":23,"props":2285,"children":2286},{},[2287,2289,2294,2295,2301],{"type":17,"value":2288},"The composable ",{"type":11,"tag":27,"props":2290,"children":2291},{},[2292],{"type":17,"value":2293},"never imports",{"type":17,"value":436},{"type":11,"tag":40,"props":2296,"children":2298},{"className":2297},[],[2299],{"type":17,"value":2300},"@tauri-apps\u002Fapi\u002Fos",{"type":17,"value":2302}," statically —\ndetection is best-effort based on global presence. This keeps the\nplain-web bundle small.",{"type":11,"tag":415,"props":2304,"children":2306},{"id":2305},"future-tuxfilepicker",[2307,2309],{"type":17,"value":2308},"Future: ",{"type":11,"tag":40,"props":2310,"children":2312},{"className":2311},[],[2313],{"type":17,"value":2314},"TuxFilePicker",{"type":11,"tag":23,"props":2316,"children":2317},{},[2318],{"type":17,"value":2319},"Spec for when a consumer needs file selection (e.g., import a\ncorpus into Landscape):",{"type":11,"tag":445,"props":2321,"children":2323},{"className":447,"code":2322,"language":449,"meta":6,"style":6},"const dialog = await import(\"@tauri-apps\u002Fplugin-dialog\");\nconst file = await dialog.open({\n  multiple: false,\n  filters: [{ name: \"Corpus\", extensions: [\"jsonl\", \"csv\", \"parquet\"] }],\n});\n\u002F\u002F `file` is the absolute path; consumer reads via @tauri-apps\u002Fplugin-fs.\n",[2324],{"type":11,"tag":40,"props":2325,"children":2326},{"__ignoreMap":6},[2327,2374,2415,2437,2556,2571],{"type":11,"tag":455,"props":2328,"children":2329},{"class":457,"line":458},[2330,2334,2338,2342,2346,2350,2354,2358,2362,2366,2370],{"type":11,"tag":455,"props":2331,"children":2332},{"style":472},[2333],{"type":17,"value":475},{"type":11,"tag":455,"props":2335,"children":2336},{"style":478},[2337],{"type":17,"value":1184},{"type":11,"tag":455,"props":2339,"children":2340},{"style":484},[2341],{"type":17,"value":487},{"type":11,"tag":455,"props":2343,"children":2344},{"style":490},[2345],{"type":17,"value":493},{"type":11,"tag":455,"props":2347,"children":2348},{"style":484},[2349],{"type":17,"value":498},{"type":11,"tag":455,"props":2351,"children":2352},{"style":501},[2353],{"type":17,"value":504},{"type":11,"tag":455,"props":2355,"children":2356},{"style":507},[2357],{"type":17,"value":510},{"type":11,"tag":455,"props":2359,"children":2360},{"style":513},[2361],{"type":17,"value":1209},{"type":11,"tag":455,"props":2363,"children":2364},{"style":507},[2365],{"type":17,"value":510},{"type":11,"tag":455,"props":2367,"children":2368},{"style":501},[2369],{"type":17,"value":524},{"type":11,"tag":455,"props":2371,"children":2372},{"style":527},[2373],{"type":17,"value":530},{"type":11,"tag":455,"props":2375,"children":2376},{"class":457,"line":468},[2377,2381,2386,2390,2394,2398,2402,2407,2411],{"type":11,"tag":455,"props":2378,"children":2379},{"style":472},[2380],{"type":17,"value":475},{"type":11,"tag":455,"props":2382,"children":2383},{"style":478},[2384],{"type":17,"value":2385}," file",{"type":11,"tag":455,"props":2387,"children":2388},{"style":484},[2389],{"type":17,"value":487},{"type":11,"tag":455,"props":2391,"children":2392},{"style":490},[2393],{"type":17,"value":493},{"type":11,"tag":455,"props":2395,"children":2396},{"style":501},[2397],{"type":17,"value":1184},{"type":11,"tag":455,"props":2399,"children":2400},{"style":527},[2401],{"type":17,"value":556},{"type":11,"tag":455,"props":2403,"children":2404},{"style":559},[2405],{"type":17,"value":2406},"open",{"type":11,"tag":455,"props":2408,"children":2409},{"style":501},[2410],{"type":17,"value":504},{"type":11,"tag":455,"props":2412,"children":2413},{"style":527},[2414],{"type":17,"value":924},{"type":11,"tag":455,"props":2416,"children":2417},{"class":457,"line":533},[2418,2423,2427,2433],{"type":11,"tag":455,"props":2419,"children":2420},{"style":948},[2421],{"type":17,"value":2422},"  multiple",{"type":11,"tag":455,"props":2424,"children":2425},{"style":527},[2426],{"type":17,"value":1324},{"type":11,"tag":455,"props":2428,"children":2430},{"style":2429},"--shiki-light:#FF5370;--shiki-default:#005CC5;--shiki-dark:#79B8FF",[2431],{"type":17,"value":2432}," false",{"type":11,"tag":455,"props":2434,"children":2435},{"style":527},[2436],{"type":17,"value":1334},{"type":11,"tag":455,"props":2438,"children":2439},{"class":457,"line":574},[2440,2444,2448,2452,2456,2460,2464,2468,2473,2477,2481,2485,2489,2493,2497,2502,2506,2510,2514,2519,2523,2527,2531,2536,2540,2544,2548,2552],{"type":11,"tag":455,"props":2441,"children":2442},{"style":948},[2443],{"type":17,"value":1342},{"type":11,"tag":455,"props":2445,"children":2446},{"style":527},[2447],{"type":17,"value":1324},{"type":11,"tag":455,"props":2449,"children":2450},{"style":501},[2451],{"type":17,"value":1351},{"type":11,"tag":455,"props":2453,"children":2454},{"style":527},[2455],{"type":17,"value":955},{"type":11,"tag":455,"props":2457,"children":2458},{"style":948},[2459],{"type":17,"value":1360},{"type":11,"tag":455,"props":2461,"children":2462},{"style":527},[2463],{"type":17,"value":1324},{"type":11,"tag":455,"props":2465,"children":2466},{"style":507},[2467],{"type":17,"value":1369},{"type":11,"tag":455,"props":2469,"children":2470},{"style":513},[2471],{"type":17,"value":2472},"Corpus",{"type":11,"tag":455,"props":2474,"children":2475},{"style":507},[2476],{"type":17,"value":510},{"type":11,"tag":455,"props":2478,"children":2479},{"style":527},[2480],{"type":17,"value":965},{"type":11,"tag":455,"props":2482,"children":2483},{"style":948},[2484],{"type":17,"value":1387},{"type":11,"tag":455,"props":2486,"children":2487},{"style":527},[2488],{"type":17,"value":1324},{"type":11,"tag":455,"props":2490,"children":2491},{"style":501},[2492],{"type":17,"value":1351},{"type":11,"tag":455,"props":2494,"children":2495},{"style":507},[2496],{"type":17,"value":510},{"type":11,"tag":455,"props":2498,"children":2499},{"style":513},[2500],{"type":17,"value":2501},"jsonl",{"type":11,"tag":455,"props":2503,"children":2504},{"style":507},[2505],{"type":17,"value":510},{"type":11,"tag":455,"props":2507,"children":2508},{"style":527},[2509],{"type":17,"value":965},{"type":11,"tag":455,"props":2511,"children":2512},{"style":507},[2513],{"type":17,"value":1369},{"type":11,"tag":455,"props":2515,"children":2516},{"style":513},[2517],{"type":17,"value":2518},"csv",{"type":11,"tag":455,"props":2520,"children":2521},{"style":507},[2522],{"type":17,"value":510},{"type":11,"tag":455,"props":2524,"children":2525},{"style":527},[2526],{"type":17,"value":965},{"type":11,"tag":455,"props":2528,"children":2529},{"style":507},[2530],{"type":17,"value":1369},{"type":11,"tag":455,"props":2532,"children":2533},{"style":513},[2534],{"type":17,"value":2535},"parquet",{"type":11,"tag":455,"props":2537,"children":2538},{"style":507},[2539],{"type":17,"value":510},{"type":11,"tag":455,"props":2541,"children":2542},{"style":501},[2543],{"type":17,"value":1446},{"type":11,"tag":455,"props":2545,"children":2546},{"style":527},[2547],{"type":17,"value":1001},{"type":11,"tag":455,"props":2549,"children":2550},{"style":501},[2551],{"type":17,"value":1455},{"type":11,"tag":455,"props":2553,"children":2554},{"style":527},[2555],{"type":17,"value":1334},{"type":11,"tag":455,"props":2557,"children":2558},{"class":457,"line":610},[2559,2563,2567],{"type":11,"tag":455,"props":2560,"children":2561},{"style":527},[2562],{"type":17,"value":1001},{"type":11,"tag":455,"props":2564,"children":2565},{"style":501},[2566],{"type":17,"value":524},{"type":11,"tag":455,"props":2568,"children":2569},{"style":527},[2570],{"type":17,"value":530},{"type":11,"tag":455,"props":2572,"children":2573},{"class":457,"line":644},[2574],{"type":11,"tag":455,"props":2575,"children":2576},{"style":462},[2577],{"type":17,"value":2578},"\u002F\u002F `file` is the absolute path; consumer reads via @tauri-apps\u002Fplugin-fs.\n",{"type":11,"tag":23,"props":2580,"children":2581},{},[2582,2586,2587,2593,2595,2601],{"type":11,"tag":27,"props":2583,"children":2584},{},[2585],{"type":17,"value":730},{"type":17,"value":2214},{"type":11,"tag":40,"props":2588,"children":2590},{"className":2589},[],[2591],{"type":17,"value":2592},"\u003Cinput type=\"file\">",{"type":17,"value":2594},". The Tauri path\ngives the user a real file path (which the Rust side can stream\nwithout needing the file uploaded into JS memory); the web path\ngives a ",{"type":11,"tag":40,"props":2596,"children":2598},{"className":2597},[],[2599],{"type":17,"value":2600},"File",{"type":17,"value":2602}," object the consumer reads via FileReader.",{"type":11,"tag":101,"props":2604,"children":2606},{"id":2605},"capability-allowlist-template",[2607],{"type":17,"value":2608},"Capability allowlist template",{"type":11,"tag":23,"props":2610,"children":2611},{},[2612,2614,2620],{"type":17,"value":2613},"For consumer apps that ship a Tauri shell with TUX components,\ncopy this baseline into ",{"type":11,"tag":40,"props":2615,"children":2617},{"className":2616},[],[2618],{"type":17,"value":2619},"src-tauri\u002Fcapabilities\u002Fmain.json",{"type":17,"value":1324},{"type":11,"tag":445,"props":2622,"children":2626},{"className":2623,"code":2624,"language":2625,"meta":6,"style":6},"language-json shiki shiki-themes material-theme-lighter github-light github-dark","{\n  \"$schema\": \"..\u002Fgen\u002Fschemas\u002Fdesktop-schema.json\",\n  \"identifier\": \"main-capability\",\n  \"description\": \"TUX baseline capabilities\",\n  \"windows\": [\"main\"],\n  \"permissions\": [\n    \"core:default\",\n    \"core:window:allow-close\",\n    \"core:window:allow-minimize\",\n    \"core:window:allow-toggle-maximize\",\n    \"core:window:allow-is-maximized\",\n    \"core:window:allow-start-dragging\",\n    \"core:event:allow-listen\",\n    \"os:default\",\n    \"clipboard-manager:default\",\n    \"dialog:allow-save\",\n    \"dialog:allow-open\",\n    \"notification:default\"\n  ]\n}\n","json",[2627],{"type":11,"tag":40,"props":2628,"children":2629},{"__ignoreMap":6},[2630,2637,2677,2714,2751,2793,2818,2839,2858,2877,2896,2915,2934,2953,2972,2992,3012,3032,3049,3058],{"type":11,"tag":455,"props":2631,"children":2632},{"class":457,"line":458},[2633],{"type":11,"tag":455,"props":2634,"children":2635},{"style":527},[2636],{"type":17,"value":924},{"type":11,"tag":455,"props":2638,"children":2639},{"class":457,"line":468},[2640,2646,2652,2656,2660,2664,2669,2673],{"type":11,"tag":455,"props":2641,"children":2643},{"style":2642},"--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF",[2644],{"type":17,"value":2645},"  \"",{"type":11,"tag":455,"props":2647,"children":2649},{"style":2648},"--shiki-light:#9C3EDA;--shiki-default:#005CC5;--shiki-dark:#79B8FF",[2650],{"type":17,"value":2651},"$schema",{"type":11,"tag":455,"props":2653,"children":2654},{"style":2642},[2655],{"type":17,"value":510},{"type":11,"tag":455,"props":2657,"children":2658},{"style":527},[2659],{"type":17,"value":1324},{"type":11,"tag":455,"props":2661,"children":2662},{"style":507},[2663],{"type":17,"value":1369},{"type":11,"tag":455,"props":2665,"children":2666},{"style":513},[2667],{"type":17,"value":2668},"..\u002Fgen\u002Fschemas\u002Fdesktop-schema.json",{"type":11,"tag":455,"props":2670,"children":2671},{"style":507},[2672],{"type":17,"value":510},{"type":11,"tag":455,"props":2674,"children":2675},{"style":527},[2676],{"type":17,"value":1334},{"type":11,"tag":455,"props":2678,"children":2679},{"class":457,"line":533},[2680,2684,2689,2693,2697,2701,2706,2710],{"type":11,"tag":455,"props":2681,"children":2682},{"style":2642},[2683],{"type":17,"value":2645},{"type":11,"tag":455,"props":2685,"children":2686},{"style":2648},[2687],{"type":17,"value":2688},"identifier",{"type":11,"tag":455,"props":2690,"children":2691},{"style":2642},[2692],{"type":17,"value":510},{"type":11,"tag":455,"props":2694,"children":2695},{"style":527},[2696],{"type":17,"value":1324},{"type":11,"tag":455,"props":2698,"children":2699},{"style":507},[2700],{"type":17,"value":1369},{"type":11,"tag":455,"props":2702,"children":2703},{"style":513},[2704],{"type":17,"value":2705},"main-capability",{"type":11,"tag":455,"props":2707,"children":2708},{"style":507},[2709],{"type":17,"value":510},{"type":11,"tag":455,"props":2711,"children":2712},{"style":527},[2713],{"type":17,"value":1334},{"type":11,"tag":455,"props":2715,"children":2716},{"class":457,"line":574},[2717,2721,2726,2730,2734,2738,2743,2747],{"type":11,"tag":455,"props":2718,"children":2719},{"style":2642},[2720],{"type":17,"value":2645},{"type":11,"tag":455,"props":2722,"children":2723},{"style":2648},[2724],{"type":17,"value":2725},"description",{"type":11,"tag":455,"props":2727,"children":2728},{"style":2642},[2729],{"type":17,"value":510},{"type":11,"tag":455,"props":2731,"children":2732},{"style":527},[2733],{"type":17,"value":1324},{"type":11,"tag":455,"props":2735,"children":2736},{"style":507},[2737],{"type":17,"value":1369},{"type":11,"tag":455,"props":2739,"children":2740},{"style":513},[2741],{"type":17,"value":2742},"TUX baseline capabilities",{"type":11,"tag":455,"props":2744,"children":2745},{"style":507},[2746],{"type":17,"value":510},{"type":11,"tag":455,"props":2748,"children":2749},{"style":527},[2750],{"type":17,"value":1334},{"type":11,"tag":455,"props":2752,"children":2753},{"class":457,"line":610},[2754,2758,2763,2767,2771,2775,2779,2784,2788],{"type":11,"tag":455,"props":2755,"children":2756},{"style":2642},[2757],{"type":17,"value":2645},{"type":11,"tag":455,"props":2759,"children":2760},{"style":2648},[2761],{"type":17,"value":2762},"windows",{"type":11,"tag":455,"props":2764,"children":2765},{"style":2642},[2766],{"type":17,"value":510},{"type":11,"tag":455,"props":2768,"children":2769},{"style":527},[2770],{"type":17,"value":1324},{"type":11,"tag":455,"props":2772,"children":2773},{"style":527},[2774],{"type":17,"value":1351},{"type":11,"tag":455,"props":2776,"children":2777},{"style":507},[2778],{"type":17,"value":510},{"type":11,"tag":455,"props":2780,"children":2781},{"style":513},[2782],{"type":17,"value":2783},"main",{"type":11,"tag":455,"props":2785,"children":2786},{"style":507},[2787],{"type":17,"value":510},{"type":11,"tag":455,"props":2789,"children":2790},{"style":527},[2791],{"type":17,"value":2792},"],\n",{"type":11,"tag":455,"props":2794,"children":2795},{"class":457,"line":644},[2796,2800,2805,2809,2813],{"type":11,"tag":455,"props":2797,"children":2798},{"style":2642},[2799],{"type":17,"value":2645},{"type":11,"tag":455,"props":2801,"children":2802},{"style":2648},[2803],{"type":17,"value":2804},"permissions",{"type":11,"tag":455,"props":2806,"children":2807},{"style":2642},[2808],{"type":17,"value":510},{"type":11,"tag":455,"props":2810,"children":2811},{"style":527},[2812],{"type":17,"value":1324},{"type":11,"tag":455,"props":2814,"children":2815},{"style":527},[2816],{"type":17,"value":2817}," [\n",{"type":11,"tag":455,"props":2819,"children":2820},{"class":457,"line":678},[2821,2826,2831,2835],{"type":11,"tag":455,"props":2822,"children":2823},{"style":507},[2824],{"type":17,"value":2825},"    \"",{"type":11,"tag":455,"props":2827,"children":2828},{"style":513},[2829],{"type":17,"value":2830},"core:default",{"type":11,"tag":455,"props":2832,"children":2833},{"style":507},[2834],{"type":17,"value":510},{"type":11,"tag":455,"props":2836,"children":2837},{"style":527},[2838],{"type":17,"value":1334},{"type":11,"tag":455,"props":2840,"children":2841},{"class":457,"line":995},[2842,2846,2850,2854],{"type":11,"tag":455,"props":2843,"children":2844},{"style":507},[2845],{"type":17,"value":2825},{"type":11,"tag":455,"props":2847,"children":2848},{"style":513},[2849],{"type":17,"value":164},{"type":11,"tag":455,"props":2851,"children":2852},{"style":507},[2853],{"type":17,"value":510},{"type":11,"tag":455,"props":2855,"children":2856},{"style":527},[2857],{"type":17,"value":1334},{"type":11,"tag":455,"props":2859,"children":2860},{"class":457,"line":1014},[2861,2865,2869,2873],{"type":11,"tag":455,"props":2862,"children":2863},{"style":507},[2864],{"type":17,"value":2825},{"type":11,"tag":455,"props":2866,"children":2867},{"style":513},[2868],{"type":17,"value":190},{"type":11,"tag":455,"props":2870,"children":2871},{"style":507},[2872],{"type":17,"value":510},{"type":11,"tag":455,"props":2874,"children":2875},{"style":527},[2876],{"type":17,"value":1334},{"type":11,"tag":455,"props":2878,"children":2879},{"class":457,"line":1060},[2880,2884,2888,2892],{"type":11,"tag":455,"props":2881,"children":2882},{"style":507},[2883],{"type":17,"value":2825},{"type":11,"tag":455,"props":2885,"children":2886},{"style":513},[2887],{"type":17,"value":215},{"type":11,"tag":455,"props":2889,"children":2890},{"style":507},[2891],{"type":17,"value":510},{"type":11,"tag":455,"props":2893,"children":2894},{"style":527},[2895],{"type":17,"value":1334},{"type":11,"tag":455,"props":2897,"children":2898},{"class":457,"line":1539},[2899,2903,2907,2911],{"type":11,"tag":455,"props":2900,"children":2901},{"style":507},[2902],{"type":17,"value":2825},{"type":11,"tag":455,"props":2904,"children":2905},{"style":513},[2906],{"type":17,"value":240},{"type":11,"tag":455,"props":2908,"children":2909},{"style":507},[2910],{"type":17,"value":510},{"type":11,"tag":455,"props":2912,"children":2913},{"style":527},[2914],{"type":17,"value":1334},{"type":11,"tag":455,"props":2916,"children":2917},{"class":457,"line":1614},[2918,2922,2926,2930],{"type":11,"tag":455,"props":2919,"children":2920},{"style":507},[2921],{"type":17,"value":2825},{"type":11,"tag":455,"props":2923,"children":2924},{"style":513},[2925],{"type":17,"value":265},{"type":11,"tag":455,"props":2927,"children":2928},{"style":507},[2929],{"type":17,"value":510},{"type":11,"tag":455,"props":2931,"children":2932},{"style":527},[2933],{"type":17,"value":1334},{"type":11,"tag":455,"props":2935,"children":2936},{"class":457,"line":1653},[2937,2941,2945,2949],{"type":11,"tag":455,"props":2938,"children":2939},{"style":507},[2940],{"type":17,"value":2825},{"type":11,"tag":455,"props":2942,"children":2943},{"style":513},[2944],{"type":17,"value":290},{"type":11,"tag":455,"props":2946,"children":2947},{"style":507},[2948],{"type":17,"value":510},{"type":11,"tag":455,"props":2950,"children":2951},{"style":527},[2952],{"type":17,"value":1334},{"type":11,"tag":455,"props":2954,"children":2955},{"class":457,"line":1708},[2956,2960,2964,2968],{"type":11,"tag":455,"props":2957,"children":2958},{"style":507},[2959],{"type":17,"value":2825},{"type":11,"tag":455,"props":2961,"children":2962},{"style":513},[2963],{"type":17,"value":393},{"type":11,"tag":455,"props":2965,"children":2966},{"style":507},[2967],{"type":17,"value":510},{"type":11,"tag":455,"props":2969,"children":2970},{"style":527},[2971],{"type":17,"value":1334},{"type":11,"tag":455,"props":2973,"children":2974},{"class":457,"line":1784},[2975,2979,2984,2988],{"type":11,"tag":455,"props":2976,"children":2977},{"style":507},[2978],{"type":17,"value":2825},{"type":11,"tag":455,"props":2980,"children":2981},{"style":513},[2982],{"type":17,"value":2983},"clipboard-manager:default",{"type":11,"tag":455,"props":2985,"children":2986},{"style":507},[2987],{"type":17,"value":510},{"type":11,"tag":455,"props":2989,"children":2990},{"style":527},[2991],{"type":17,"value":1334},{"type":11,"tag":455,"props":2993,"children":2995},{"class":457,"line":2994},16,[2996,3000,3004,3008],{"type":11,"tag":455,"props":2997,"children":2998},{"style":507},[2999],{"type":17,"value":2825},{"type":11,"tag":455,"props":3001,"children":3002},{"style":513},[3003],{"type":17,"value":317},{"type":11,"tag":455,"props":3005,"children":3006},{"style":507},[3007],{"type":17,"value":510},{"type":11,"tag":455,"props":3009,"children":3010},{"style":527},[3011],{"type":17,"value":1334},{"type":11,"tag":455,"props":3013,"children":3015},{"class":457,"line":3014},17,[3016,3020,3024,3028],{"type":11,"tag":455,"props":3017,"children":3018},{"style":507},[3019],{"type":17,"value":2825},{"type":11,"tag":455,"props":3021,"children":3022},{"style":513},[3023],{"type":17,"value":344},{"type":11,"tag":455,"props":3025,"children":3026},{"style":507},[3027],{"type":17,"value":510},{"type":11,"tag":455,"props":3029,"children":3030},{"style":527},[3031],{"type":17,"value":1334},{"type":11,"tag":455,"props":3033,"children":3035},{"class":457,"line":3034},18,[3036,3040,3044],{"type":11,"tag":455,"props":3037,"children":3038},{"style":507},[3039],{"type":17,"value":2825},{"type":11,"tag":455,"props":3041,"children":3042},{"style":513},[3043],{"type":17,"value":366},{"type":11,"tag":455,"props":3045,"children":3046},{"style":507},[3047],{"type":17,"value":3048},"\"\n",{"type":11,"tag":455,"props":3050,"children":3052},{"class":457,"line":3051},19,[3053],{"type":11,"tag":455,"props":3054,"children":3055},{"style":527},[3056],{"type":17,"value":3057},"  ]\n",{"type":11,"tag":455,"props":3059,"children":3061},{"class":457,"line":3060},20,[3062],{"type":11,"tag":455,"props":3063,"children":3064},{"style":527},[3065],{"type":17,"value":1066},{"type":11,"tag":23,"props":3067,"children":3068},{},[3069],{"type":17,"value":3070},"Add per-app capabilities (network, fs scopes, shell allowlists)\non top. The baseline above is what TUX components need at a\nminimum.",{"type":11,"tag":101,"props":3072,"children":3074},{"id":3073},"where-things-lived-before",[3075],{"type":17,"value":3076},"Where things lived before",{"type":11,"tag":23,"props":3078,"children":3079},{},[3080,3082,3088],{"type":17,"value":3081},"Pre-2026-05-22, TUX was web-only — none of these bindings existed.\nThe dynamic-import + capability-allowlist pattern landed with the\n",{"type":11,"tag":35,"props":3083,"children":3085},{"href":3084},"..\u002FCHANGELOG.md#added--platform-aware-tauri-build-sprint-2026-05-22",[3086],{"type":17,"value":3087},"platform-aware Tauri build sprint",{"type":17,"value":3089},".\nThis doc consolidates the bindings so consumer apps know what's\nexpected.",{"type":11,"tag":101,"props":3091,"children":3093},{"id":3092},"when-to-add-a-new-binding",[3094],{"type":17,"value":3095},"When to add a new binding",{"type":11,"tag":23,"props":3097,"children":3098},{},[3099],{"type":17,"value":3100},"Don't add a Tauri API call to a TUX component \"just in case.\" The\nbar:",{"type":11,"tag":81,"props":3102,"children":3103},{},[3104,3109,3114],{"type":11,"tag":85,"props":3105,"children":3106},{},[3107],{"type":17,"value":3108},"A consumer app actually needs the enhancement.",{"type":11,"tag":85,"props":3110,"children":3111},{},[3112],{"type":17,"value":3113},"The web fallback is genuinely worse for the user.",{"type":11,"tag":85,"props":3115,"children":3116},{},[3117,3119,3124],{"type":17,"value":3118},"The component owner adds the binding ",{"type":11,"tag":27,"props":3120,"children":3121},{},[3122],{"type":17,"value":3123},"and",{"type":17,"value":3125}," updates this doc in\nthe same PR.",{"type":11,"tag":23,"props":3127,"children":3128},{},[3129],{"type":17,"value":3130},"Most TUX components stay pure Vue \u002F web platform. The bindings\nabove are the exception, not the rule.",{"type":11,"tag":3132,"props":3133,"children":3134},"style",{},[3135],{"type":17,"value":3136},"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":6,"searchDepth":468,"depth":468,"links":3138},[3139,3140,3153,3154,3155],{"id":103,"depth":468,"text":106},{"id":410,"depth":468,"text":413,"children":3141},[3142,3143,3145,3147,3149,3151],{"id":417,"depth":533,"text":173},{"id":760,"depth":533,"text":3144},"TuxArtifact — share action (future enhancement)",{"id":1137,"depth":533,"text":3146},"TuxCodeBlock — download (future enhancement)",{"id":1810,"depth":533,"text":3148},"TuxStatusToast — system notification (future enhancement)",{"id":2225,"depth":533,"text":3150},"useTuxPlatform — OS detection",{"id":2305,"depth":533,"text":3152},"Future: TuxFilePicker",{"id":2605,"depth":468,"text":2608},{"id":3073,"depth":468,"text":3076},{"id":3092,"depth":468,"text":3095},1788285289391]