opencode-navigator 0.24.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,24 +1,24 @@
1
1
  import {SIDEBAR_SECTIONS,SECTION_DEFINITIONS,PLUGIN_ID,DEFAULT_SEARCH_KEY
2
2
  } from "./chunk-bv0nm1tj.js"
3
- import"./chunk-qmntexwm.js"
4
3
  import {isNewerVersion
5
- } from "./chunk-fd7394y1.js";
4
+ } from "./chunk-fd7394y1.js"
5
+ import"./chunk-qmntexwm.js";
6
6
  import {use as _$use5} from "@opentui/solid"
7
- import {createComponent as _$createComponent14} from "@opentui/solid"
8
- import {memo as _$memo6} from "@opentui/solid"
9
- import {effect as _$effect13} from "@opentui/solid"
10
- import {createTextNode as _$createTextNode12} from "@opentui/solid"
11
- import {insertNode as _$insertNode12} from "@opentui/solid"
12
- import {insert as _$insert10} from "@opentui/solid"
13
- import {setProp as _$setProp13} from "@opentui/solid"
14
- import {createElement as _$createElement13} from "@opentui/solid"
15
- import {TextAttributes as TextAttributes6} from "@opentui/core"
16
- import {For as For5,Show as Show6} from "solid-js"
17
- import {DialogSurface as DialogSurface6,Tab} from "./tui.js"
18
- import {createComponent as _$createComponent11} from "@opentui/solid"
7
+ import {createComponent as _$createComponent12} from "@opentui/solid"
8
+ import {memo as _$memo4} from "@opentui/solid"
9
+ import {effect as _$effect10} from "@opentui/solid"
10
+ import {createTextNode as _$createTextNode9} from "@opentui/solid"
11
+ import {insertNode as _$insertNode9} from "@opentui/solid"
12
+ import {insert as _$insert8} from "@opentui/solid"
13
+ import {setProp as _$setProp10} from "@opentui/solid"
14
+ import {createElement as _$createElement11} from "@opentui/solid"
15
+ import {TextAttributes as TextAttributes3} from "@opentui/core"
16
+ import {For as For3,Show as Show5} from "solid-js"
17
+ import {DialogSurface as DialogSurface5,Tab} from "./tui.js"
18
+ import {createComponent as _$createComponent9} from "@opentui/solid"
19
19
  import {useTerminalDimensions as useTerminalDimensions4} from "@opentui/solid"
20
- import {createEffect as createEffect3,createMemo as createMemo3,onCleanup as onCleanup7} from "solid-js"
21
- import {useDialogScroll as useDialogScroll2,useDialogState as useDialogState4,useDialogs as useDialogs5,useIcons as useIcons5} from "./tui.js"
20
+ import {createEffect as createEffect3,createMemo as createMemo3,onCleanup as onCleanup6} from "solid-js"
21
+ import {useDialogScroll as useDialogScroll2,useDialogState as useDialogState4,useDialogs as useDialogs4,useIcons as useIcons2} from "./tui.js"
22
22
  import {use as _$use3} from "@opentui/solid"
23
23
  import {effect as _$effect3} from "@opentui/solid"
24
24
  import {insert as _$insert2} from "@opentui/solid"
@@ -49,8 +49,6 @@ let child
49
49
  try{child=Bun.spawn([...command],{stdin:"pipe",stdout:"pipe",stderr:"ignore",env:environment?{...process.env,...environment}:undefined
50
50
  })
51
51
  } catch{return{code:-1,stdout:""}}
52
- child.stdin.write(input)
53
- child.stdin.end()
54
52
  let timer
55
53
  const chunks=[]
56
54
  const output=()=>new TextDecoder().decode(Buffer.concat(chunks))
@@ -77,7 +75,11 @@ chunks.push(part.value)
77
75
  }
78
76
  return{code:await child.exited,stdout:output()}} finally{reader.releaseLock()
79
77
  }}
80
- try{return await Promise.race([read(),cancelled])
78
+ const run=async ()=>{await child.stdin.write(input)
79
+ await child.stdin.end()
80
+ return read()
81
+ }
82
+ try{return await Promise.race([run(),cancelled])
81
83
  } catch{return{code:-1,stdout:""}} finally{clearTimeout(timer)
82
84
  signal?.removeEventListener("abort",cancel)
83
85
  }}
@@ -567,313 +569,51 @@ body.scrollChildIntoView(input.optionId(option.value))
567
569
  renderer.on("frame",reveal)
568
570
  onCleanup3(()=>renderer.off("frame",reveal))
569
571
  }
570
- import {createComponent as _$createComponent10} from "@opentui/solid"
571
- import {setProp as _$setProp10} from "@opentui/solid"
572
- import {effect as _$effect10} from "@opentui/solid"
573
- import {createTextNode as _$createTextNode9} from "@opentui/solid"
574
- import {insertNode as _$insertNode9} from "@opentui/solid"
575
- import {createElement as _$createElement10} from "@opentui/solid"
576
- import {createComponent as _$createComponent6} from "@opentui/solid"
577
- import {effect as _$effect6} from "@opentui/solid"
578
- import {createTextNode as _$createTextNode5} from "@opentui/solid"
579
- import {insertNode as _$insertNode5} from "@opentui/solid"
580
- import {insert as _$insert5} from "@opentui/solid"
581
- import {setProp as _$setProp6} from "@opentui/solid"
582
- import {createElement as _$createElement6} from "@opentui/solid"
583
- import {TextAttributes as TextAttributes3} from "@opentui/core"
584
- import {Show,createSignal as createSignal3,onCleanup as onCleanup4} from "solid-js"
585
- import {supportsSidebarSection as supportsSidebarSection3} from "./tui.js"
586
- import {DialogSurface as DialogSurface3,createDialogStack,useDialogs as useDialogs2,useIcons as useIcons3} from "./tui.js"
587
- var ONBOARDING_STEPS=[{title:"A control center that stays compact",summary:"Navigator brings session state, search, and controls into OpenCode's existing sidebar.",icon:"help",features:[{icon:"sections",title:"Progressive disclosure",description:"Expand only the context you need right now."},{icon:"scope",title:"Current context",description:"Follow the active session, workspace, and worktree."},{icon:"actions",title:"Mouse and keyboard",description:"Use the same controls with either input method."}]
588
- },{title:"Stay oriented while agents work",summary:"Keep current work visible without turning the sidebar into another dashboard.",icon:"todo",features:[{icon:"todo",title:"Todo filters",description:"Separate active, finished, and cancelled work."},{icon:"subagents",title:"Live subagents",description:"See running, retrying, recent, and failed child sessions; open them directly."
589
- },{icon:"info",title:"Provider limits",description:"Link a matching Codex account for model quotas and confirmed banked resets."
590
- }]
591
- },{title:"Find anything and launch Skills safely",summary:"Search complete source lists without expanding every sidebar section.",icon:"search",features:[{icon:"search",title:"Search Everything",description:"Search Skills, Subagents, MCP, and Actions in shared tabs."
592
- },{icon:"search",title:"Full source lists",description:"Search beyond sidebar visibility and item limits."},{icon:"skills",title:"Skill confirmation",description:"Review a skill and its source before inserting its command."
593
- }]
594
- },{title:"Run actions and check language tools",summary:"Keep frequent OpenCode commands and LSP health within one compact section.",icon:"actions",features:[{icon:"actions",title:"Quick Actions",description:"Rename, inspect timelines, copy, export, or compact the session."
595
- },{icon:"lsp",title:"Compact LSP status",description:"Spot connected and failed language servers at a glance."
596
- },{icon:"settings",title:"Configurable commands",description:"Choose action visibility, order, and shortcuts."
597
- }]
598
- },{title:"Control MCP without losing context",summary:"Manage individual servers or entire working sets directly from Navigator.",icon:"mcp",features:[{icon:"mcp",title:"Live server controls",description:"Connect, disconnect, filter, and favorite servers."},{icon:"actions",title:"Bulk operations",description:"Change eligible servers together and retry failures."
599
- },{icon:"presets",title:"Safe presets",description:"Preview connections and disconnections before Apply."}]
600
- },{title:"Make Navigator fit each workspace",summary:"Use the same controls with mouse or keyboard and keep only the context you need.",icon:"settings",features:[{icon:"sections",title:"Flexible layout",description:"Choose section visibility, order, expansion, and item limits."
601
- },{icon:"presets",title:"Scoped presets",description:"Save layouts globally or for the current worktree."},{icon:"settings",title:"Accessible controls",description:"Change shortcuts or use Text fallback without a restart."
602
- }]
603
- }];
604
- import {effect as _$effect4} from "@opentui/solid"
605
- import {memo as _$memo} from "@opentui/solid"
606
- import {createComponent as _$createComponent4} from "@opentui/solid"
607
- import {createTextNode as _$createTextNode3} from "@opentui/solid"
608
- import {insertNode as _$insertNode3} from "@opentui/solid"
572
+ import {createComponent as _$createComponent8} from "@opentui/solid"
573
+ import {setProp as _$setProp7} from "@opentui/solid"
574
+ import {effect as _$effect7} from "@opentui/solid"
575
+ import {createTextNode as _$createTextNode6} from "@opentui/solid"
576
+ import {insertNode as _$insertNode6} from "@opentui/solid"
577
+ import {createElement as _$createElement8} from "@opentui/solid"
609
578
  import {insert as _$insert3} from "@opentui/solid"
610
- import {setProp as _$setProp4} from "@opentui/solid"
579
+ import {createComponent as _$createComponent4} from "@opentui/solid"
611
580
  import {createElement as _$createElement4} from "@opentui/solid"
612
- import {TextAttributes} from "@opentui/core"
613
- import {For as For2} from "solid-js"
614
- import {SelectionBox,useIcons} from "./tui.js"
615
- function OnboardingStep(props){const icons=useIcons()
616
- const theme=()=>props.api.theme.current
617
- return(()=>{var _el$=_$createElement4("box"),_el$2=_$createElement4("text"),_el$3=_$createTextNode3(` `),_el$4=_$createElement4("text"),_el$5=_$createElement4("box"),_el$6=_$createElement4("text"),_el$7=_$createTextNode3(`Toggle: `),_el$8=_$createTextNode3(` \xB7 Focus: `),_el$9=_$createTextNode3(` \xB7 Icons: `),_el$1=_$createElement4("box")
618
- _$insertNode3(_el$,_el$2)
619
- _$insertNode3(_el$,_el$4)
620
- _$insertNode3(_el$,_el$5)
621
- _$insertNode3(_el$,_el$6)
622
- _$insertNode3(_el$,_el$1)
623
- _$setProp4(_el$,"gap",1)
624
- _$insertNode3(_el$2,_el$3)
625
- _$insert3(_el$2,()=>icons.icon(props.step.icon),_el$3)
626
- _$insert3(_el$2,()=>props.step.title,null)
627
- _$setProp4(_el$4,"wrapMode","word")
628
- _$insert3(_el$4,()=>props.step.summary)
629
- _$setProp4(_el$5,"border",["top","bottom"])
630
- _$setProp4(_el$5,"paddingTop",1)
631
- _$setProp4(_el$5,"paddingBottom",1)
632
- _$setProp4(_el$5,"gap",1)
633
- _$insert3(_el$5,_$createComponent4(For2,{get each(){return props.step.features
634
- },children:(feature)=>(()=>{var _el$14=_$createElement4("box"),_el$15=_$createElement4("text"),_el$16=_$createElement4("text"),_el$17=_$createElement4("b"),_el$18=_$createTextNode3(` \xB7 `)
635
- _$insertNode3(_el$14,_el$15)
636
- _$insertNode3(_el$14,_el$16)
637
- _$setProp4(_el$14,"flexDirection","row")
638
- _$setProp4(_el$14,"gap",1)
639
- _$setProp4(_el$15,"flexShrink",0)
640
- _$insert3(_el$15,()=>icons.icon(feature.icon))
641
- _$insertNode3(_el$16,_el$17)
642
- _$insertNode3(_el$16,_el$18)
643
- _$setProp4(_el$16,"flexGrow",1)
644
- _$setProp4(_el$16,"minWidth",0)
645
- _$setProp4(_el$16,"wrapMode","word")
646
- _$insert3(_el$17,()=>feature.title)
647
- _$insert3(_el$16,()=>feature.description,null)
648
- _$effect4((_p$)=>{var _v$6=theme().accent,_v$7=theme().textMuted
649
- _v$6!==_p$.e&&(_p$.e=_$setProp4(_el$15,"fg",_v$6,_p$.e))
650
- _v$7!==_p$.t&&(_p$.t=_$setProp4(_el$16,"fg",_v$7,_p$.t))
651
- return _p$
652
- },{e:undefined,t:undefined
653
- })
654
- return _el$14
655
- })()
656
- }))
657
- _$insertNode3(_el$6,_el$7)
658
- _$insertNode3(_el$6,_el$8)
659
- _$insertNode3(_el$6,_el$9)
660
- _$setProp4(_el$6,"wrapMode","word")
661
- _$insert3(_el$6,()=>props.preferences.toggleKey(),_el$8)
662
- _$insert3(_el$6,()=>props.preferences.focusKey(),_el$9)
663
- _$insert3(_el$6,()=>icons.style()==="text"?"Text fallback":"Nerd Font",null)
664
- _$setProp4(_el$1,"flexDirection","row")
665
- _$setProp4(_el$1,"justifyContent","space-between")
666
- _$insert3(_el$1,_$createComponent4(SelectionBox,{paddingLeft:1,paddingRight:1,onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
667
- props.onBack()
668
- },get children(){var _el$10=_$createElement4("text"),_el$11=_$createTextNode3(` Back`)
669
- _$insertNode3(_el$10,_el$11)
670
- _$insert3(_el$10,()=>icons.icon("left"),_el$11)
671
- _$effect4((_$p)=>_$setProp4(_el$10,"fg",theme().textMuted,_$p))
672
- return _el$10
673
- }}),null)
674
- _$insert3(_el$1,_$createComponent4(SelectionBox,{paddingLeft:1,paddingRight:1,get backgroundColor(){return theme().primary
675
- },onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
676
- props.onAdvance()
677
- },get children(){var _el$12=_$createElement4("text"),_el$13=_$createTextNode3(` `)
678
- _$insertNode3(_el$12,_el$13)
679
- _$insert3(_el$12,()=>props.final?"Configure sidebar":"Next",_el$13)
680
- _$insert3(_el$12,()=>icons.icon("right"),null)
681
- _$effect4((_$p)=>_$setProp4(_el$12,"fg",theme().selectedListItemText,_$p))
682
- return _el$12
683
- }}),null)
684
- _$effect4((_p$)=>{var _v$=theme().accent,_v$2=TextAttributes.BOLD,_v$3=theme().textMuted,_v$4=theme().borderSubtle,_v$5=theme().textMuted
685
- _v$!==_p$.e&&(_p$.e=_$setProp4(_el$2,"fg",_v$,_p$.e))
686
- _v$2!==_p$.t&&(_p$.t=_$setProp4(_el$2,"attributes",_v$2,_p$.t))
687
- _v$3!==_p$.a&&(_p$.a=_$setProp4(_el$4,"fg",_v$3,_p$.a))
688
- _v$4!==_p$.o&&(_p$.o=_$setProp4(_el$5,"borderColor",_v$4,_p$.o))
689
- _v$5!==_p$.i&&(_p$.i=_$setProp4(_el$6,"fg",_v$5,_p$.i))
690
- return _p$
691
- },{e:undefined,t:undefined,a:undefined,o:undefined,i:undefined
692
- })
581
+ import {Suspense,lazy} from "solid-js"
582
+ import {createDialogStack} from "./tui.js"
583
+ var Content=lazy(async ()=>{const path=import.meta.url.includes("/dist/")?"./onboarding.js":"./first-run-wizard-content"
584
+ const module=await import(path)
585
+ return{default:module.FirstRunWizard
586
+ }})
587
+ function FirstRunWizard(props){return(()=>{var _el$=_$createElement4("box")
588
+ _$insert3(_el$,_$createComponent4(Suspense,{get children(){return _$createComponent4(Content,props)
589
+ }}))
693
590
  return _el$
694
591
  })()
695
592
  }
696
- import {memo as _$memo2} from "@opentui/solid"
697
- import {effect as _$effect5} from "@opentui/solid"
698
- import {createComponent as _$createComponent5} from "@opentui/solid"
593
+ import {createComponent as _$createComponent7} from "@opentui/solid"
699
594
  import {createTextNode as _$createTextNode4} from "@opentui/solid"
700
595
  import {insertNode as _$insertNode4} from "@opentui/solid"
701
- import {insert as _$insert4} from "@opentui/solid"
596
+ import {effect as _$effect5} from "@opentui/solid"
597
+ import {insert as _$insert5} from "@opentui/solid"
598
+ import {memo as _$memo} from "@opentui/solid"
702
599
  import {setProp as _$setProp5} from "@opentui/solid"
703
- import {createElement as _$createElement5} from "@opentui/solid"
704
- import {TextAttributes as TextAttributes2} from "@opentui/core"
705
- import {For as For3} from "solid-js"
706
- import {supportsSidebarSection as supportsSidebarSection2} from "./tui.js"
707
- import {SelectionBox as SelectionBox2,useIcons as useIcons2} from "./tui.js"
708
- function SectionConfig(props){const icons=useIcons2()
709
- const theme=()=>props.api.theme.current
710
- const sections=SECTION_DEFINITIONS.filter((section)=>supportsSidebarSection2(props.api,section.name))
711
- const finishIndex=sections.length
712
- return(()=>{var _el$=_$createElement5("box"),_el$2=_$createElement5("text"),_el$3=_$createTextNode4(` Choose your sidebar sections`),_el$4=_$createElement5("text"),_el$6=_$createElement5("box")
713
- _$insertNode4(_el$,_el$2)
714
- _$insertNode4(_el$,_el$4)
715
- _$insertNode4(_el$,_el$6)
716
- _$setProp5(_el$,"gap",1)
717
- _$insertNode4(_el$2,_el$3)
718
- _$insert4(_el$2,()=>icons.icon("sections"),_el$3)
719
- _$insertNode4(_el$4,_$createTextNode4(`Select what appears now. You can change visibility, order, limits, scope, and presets later with the gear button.`))
720
- _$setProp5(_el$4,"wrapMode","word")
721
- _$insert4(_el$,_$createComponent5(For3,{each:sections,children:(section,index)=>_$createComponent5(SelectionBox2,{flexDirection:"row",gap:1,paddingLeft:1,paddingRight:1,get backgroundColor(){return _$memo2(()=>props.active===index())()?theme().backgroundElement:undefined
722
- },onMouseOver:()=>props.onActive(index()),onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
723
- props.preferences.toggleSection(section.name)
724
- },get children(){return [(()=>{var _el$1=_$createElement5("text")
725
- _$setProp5(_el$1,"flexShrink",0)
726
- _$insert4(_el$1,()=>icons.icon(props.preferences.sections()[section.name]?"checked":"unchecked"))
727
- _$effect5((_$p)=>_$setProp5(_el$1,"fg",props.preferences.sections()[section.name]?theme().accent:theme().textMuted,_$p))
728
- return _el$1
729
- })(),(()=>{var _el$10=_$createElement5("text"),_el$11=_$createTextNode4(` `)
730
- _$insertNode4(_el$10,_el$11)
731
- _$insert4(_el$10,()=>icons.section(section.name),_el$11)
732
- _$insert4(_el$10,()=>section.label,null)
733
- _$effect5((_$p)=>_$setProp5(_el$10,"fg",props.active===index()?theme().text:theme().textMuted,_$p))
734
- return _el$10
735
- })()]
736
- }})
737
- }),_el$6)
738
- _$setProp5(_el$6,"flexDirection","row")
739
- _$setProp5(_el$6,"justifyContent","space-between")
740
- _$insert4(_el$6,_$createComponent5(SelectionBox2,{paddingLeft:1,paddingRight:1,onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
741
- props.onBack()
742
- },get children(){var _el$7=_$createElement5("text"),_el$8=_$createTextNode4(` Back`)
743
- _$insertNode4(_el$7,_el$8)
744
- _$insert4(_el$7,()=>icons.icon("left"),_el$8)
745
- _$effect5((_$p)=>_$setProp5(_el$7,"fg",theme().textMuted,_$p))
746
- return _el$7
747
- }}),null)
748
- _$insert4(_el$6,_$createComponent5(SelectionBox2,{paddingLeft:2,paddingRight:2,get backgroundColor(){return _$memo2(()=>props.active===finishIndex)()?theme().primary:undefined
749
- },onMouseOver:()=>props.onActive(finishIndex),onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
750
- props.onFinish()
751
- },get children(){var _el$9=_$createElement5("text"),_el$0=_$createTextNode4(` Finish`)
752
- _$insertNode4(_el$9,_el$0)
753
- _$insert4(_el$9,()=>icons.icon("done"),_el$0)
754
- _$effect5((_$p)=>_$setProp5(_el$9,"fg",props.active===finishIndex?theme().selectedListItemText:theme().textMuted,_$p))
755
- return _el$9
756
- }}),null)
757
- _$effect5((_p$)=>{var _v$=theme().accent,_v$2=TextAttributes2.BOLD,_v$3=theme().textMuted
758
- _v$!==_p$.e&&(_p$.e=_$setProp5(_el$2,"fg",_v$,_p$.e))
759
- _v$2!==_p$.t&&(_p$.t=_$setProp5(_el$2,"attributes",_v$2,_p$.t))
760
- _v$3!==_p$.a&&(_p$.a=_$setProp5(_el$4,"fg",_v$3,_p$.a))
761
- return _p$
762
- },{e:undefined,t:undefined,a:undefined
763
- })
764
- return _el$
765
- })()
766
- }
767
- function FirstRunWizard(props){const icons=useIcons3()
768
- const dialogs=useDialogs2(props.api)
769
- const [active,setActive]=createSignal3(0)
770
- const [step,setStep]=createSignal3(0)
771
- const theme=()=>props.api.theme.current
772
- const sections=SECTION_DEFINITIONS.filter((section)=>supportsSidebarSection3(props.api,section.name))
773
- const finishIndex=sections.length
774
- const stepCount=ONBOARDING_STEPS.length + 1
775
- const configuring=()=>step()===ONBOARDING_STEPS.length
776
- function finish(){dialogs.back()
777
- }
778
- function move(offset){if(configuring())
779
- setActive((value)=>(value + offset + finishIndex + 1)%(finishIndex + 1))
780
- else
781
- setStep((value)=>Math.max(0,Math.min(ONBOARDING_STEPS.length,value + offset)))
782
- }
783
- function back(){setStep((value)=>Math.max(0,value-1))
784
- }
785
- function advance(){if(!configuring())
786
- setStep((value)=>Math.min(ONBOARDING_STEPS.length,value + 1))
787
- }
788
- function select(){if(!configuring()){advance()
789
- return
790
- }
791
- const index=active()
792
- if(index===finishIndex)
793
- finish()
794
- else
795
- props.preferences.toggleSection(sections[index].name)
796
- }
797
- const unregister=props.api.keymap.registerLayer({mode:"modal",priority:1000,commands:[{name:`${PLUGIN_ID}.wizard.previous`,run(){move(-1)
798
- }},{name:`${PLUGIN_ID}.wizard.next`,run(){move(1)
799
- }},{name:`${PLUGIN_ID}.wizard.select`,run:select
800
- },{name:`${PLUGIN_ID}.wizard.back`,run:back
801
- },{name:`${PLUGIN_ID}.wizard.forward`,run:advance
802
- }],bindings:[{key:"up",cmd:`${PLUGIN_ID}.wizard.previous`
803
- },{key:"down",cmd:`${PLUGIN_ID}.wizard.next`
804
- },{key:"tab",cmd:`${PLUGIN_ID}.wizard.next`
805
- },{key:"left",cmd:`${PLUGIN_ID}.wizard.back`
806
- },{key:"right",cmd:`${PLUGIN_ID}.wizard.forward`
807
- },{key:"space",cmd:`${PLUGIN_ID}.wizard.select`
808
- },{key:"return",cmd:`${PLUGIN_ID}.wizard.select`
809
- }]
810
- })
811
- onCleanup4(unregister)
812
- return _$createComponent6(DialogSurface3,{get api(){return props.api
813
- },get children(){return [(()=>{var _el$=_$createElement6("box"),_el$2=_$createElement6("text"),_el$3=_$createTextNode5(` Navigator setup`),_el$4=_$createElement6("text"),_el$5=_$createTextNode5(`Step `),_el$6=_$createTextNode5(`/`),_el$7=_$createTextNode5(` \xB7 `)
814
- _$insertNode5(_el$,_el$2)
815
- _$insertNode5(_el$,_el$4)
816
- _$setProp6(_el$,"flexDirection","row")
817
- _$setProp6(_el$,"justifyContent","space-between")
818
- _$insertNode5(_el$2,_el$3)
819
- _$insert5(_el$2,()=>icons.icon("help"),_el$3)
820
- _$insertNode5(_el$4,_el$5)
821
- _$insertNode5(_el$4,_el$6)
822
- _$insertNode5(_el$4,_el$7)
823
- _$setProp6(_el$4,"onMouseDown",(event)=>event.stopPropagation())
824
- _$setProp6(_el$4,"onMouseUp",(event)=>{event.stopPropagation()
825
- finish()
826
- })
827
- _$insert5(_el$4,()=>step() + 1,_el$6)
828
- _$insert5(_el$4,stepCount,_el$7)
829
- _$insert5(_el$4,()=>icons.key("esc"),null)
830
- _$effect6((_p$)=>{var _v$=TextAttributes3.BOLD,_v$2=theme().text,_v$3=theme().textMuted
831
- _v$!==_p$.e&&(_p$.e=_$setProp6(_el$2,"attributes",_v$,_p$.e))
832
- _v$2!==_p$.t&&(_p$.t=_$setProp6(_el$2,"fg",_v$2,_p$.t))
833
- _v$3!==_p$.a&&(_p$.a=_$setProp6(_el$4,"fg",_v$3,_p$.a))
834
- return _p$
835
- },{e:undefined,t:undefined,a:undefined
836
- })
837
- return _el$
838
- })(),_$createComponent6(Show,{get when(){return configuring()
839
- },get fallback(){return _$createComponent6(OnboardingStep,{get api(){return props.api
840
- },get preferences(){return props.preferences
841
- },get step(){return ONBOARDING_STEPS[step()]
842
- },get final(){return step()===ONBOARDING_STEPS.length-1
843
- },onBack:back,onAdvance:advance
844
- })
845
- },get children(){return _$createComponent6(SectionConfig,{get api(){return props.api
846
- },get preferences(){return props.preferences
847
- },get active(){return active()
848
- },onActive:setActive,onBack:back,onFinish:finish
849
- })
850
- }})]
851
- }})
852
- }
853
- import {createComponent as _$createComponent9} from "@opentui/solid"
854
- import {createTextNode as _$createTextNode7} from "@opentui/solid"
855
- import {insertNode as _$insertNode7} from "@opentui/solid"
856
- import {effect as _$effect8} from "@opentui/solid"
857
- import {insert as _$insert7} from "@opentui/solid"
858
- import {memo as _$memo3} from "@opentui/solid"
859
- import {setProp as _$setProp8} from "@opentui/solid"
860
- import {createElement as _$createElement8} from "@opentui/solid"
861
- import {createComponent as _$createComponent8} from "@opentui/solid"
862
- import {Show as Show3,onCleanup as onCleanup6,onMount as onMount2} from "solid-js"
863
- import {DialogAction as DialogAction3,DialogHeader as DialogHeader4,DialogSurface as DialogSurface5,SelectionMenu,useDialogState as useDialogState3,useDialogs as useDialogs4} from "./tui.js"
864
- import {insert as _$insert6} from "@opentui/solid"
600
+ import {createElement as _$createElement6} from "@opentui/solid"
601
+ import {createComponent as _$createComponent6} from "@opentui/solid"
602
+ import {Show as Show2,onCleanup as onCleanup5,onMount as onMount2} from "solid-js"
603
+ import {DialogAction as DialogAction3,DialogHeader as DialogHeader4,DialogSurface as DialogSurface4,SelectionMenu,useDialogState as useDialogState3,useDialogs as useDialogs3} from "./tui.js"
604
+ import {insert as _$insert4} from "@opentui/solid"
865
605
  import {use as _$use4} from "@opentui/solid"
866
- import {setProp as _$setProp7} from "@opentui/solid"
867
- import {effect as _$effect7} from "@opentui/solid"
868
- import {createTextNode as _$createTextNode6} from "@opentui/solid"
869
- import {insertNode as _$insertNode6} from "@opentui/solid"
870
- import {createElement as _$createElement7} from "@opentui/solid"
871
- import {createComponent as _$createComponent7} from "@opentui/solid"
606
+ import {setProp as _$setProp4} from "@opentui/solid"
607
+ import {effect as _$effect4} from "@opentui/solid"
608
+ import {createTextNode as _$createTextNode3} from "@opentui/solid"
609
+ import {insertNode as _$insertNode3} from "@opentui/solid"
610
+ import {createElement as _$createElement5} from "@opentui/solid"
611
+ import {createComponent as _$createComponent5} from "@opentui/solid"
872
612
  import {useTerminalDimensions as useTerminalDimensions3} from "@opentui/solid"
873
- import {For as For4,Show as Show2,onCleanup as onCleanup5} from "solid-js"
874
- import {DialogHeader as DialogHeader3,DialogSurface as DialogSurface4,useDialogScroll,useDialogs as useDialogs3,useIcons as useIcons4} from "./tui.js"
875
- function ChangelogVersionDialog(props){const dialogs=useDialogs3(props.api)
876
- const icons=useIcons4()
613
+ import {For as For2,Show,onCleanup as onCleanup4} from "solid-js"
614
+ import {DialogHeader as DialogHeader3,DialogSurface as DialogSurface3,useDialogScroll,useDialogs as useDialogs2,useIcons} from "./tui.js"
615
+ function ChangelogVersionDialog(props){const dialogs=useDialogs2(props.api)
616
+ const icons=useIcons()
877
617
  const dimensions=useTerminalDimensions3()
878
618
  const scroll=useDialogScroll()
879
619
  let body
@@ -882,54 +622,54 @@ const unregister=props.api.keymap.registerLayer({mode:"modal",commands:keys.map(
882
622
  })),bindings:keys.map((key,index)=>({key,cmd:`opencode-navigator.changelog.scroll.${index}`
883
623
  }))
884
624
  })
885
- onCleanup5(unregister)
886
- return _$createComponent7(DialogSurface4,{get api(){return props.api
887
- },lift:true,get children(){return [_$createComponent7(DialogHeader3,{get api(){return props.api
625
+ onCleanup4(unregister)
626
+ return _$createComponent5(DialogSurface3,{get api(){return props.api
627
+ },lift:true,get children(){return [_$createComponent5(DialogHeader3,{get api(){return props.api
888
628
  },get title(){return `Navigator ${props.entry.version}`
889
629
  },get onBack(){return dialogs.back
890
- }}),(()=>{var _el$=_$createElement7("text")
891
- _$insertNode6(_el$,_$createTextNode6(`Release notes`))
892
- _$effect7((_$p)=>_$setProp7(_el$,"fg",props.api.theme.current.textMuted,_$p))
630
+ }}),(()=>{var _el$=_$createElement5("text")
631
+ _$insertNode3(_el$,_$createTextNode3(`Release notes`))
632
+ _$effect4((_$p)=>_$setProp4(_el$,"fg",props.api.theme.current.textMuted,_$p))
893
633
  return _el$
894
- })(),(()=>{var _el$3=_$createElement7("scrollbox"),_el$4=_$createElement7("box")
895
- _$insertNode6(_el$3,_el$4)
634
+ })(),(()=>{var _el$3=_$createElement5("scrollbox"),_el$4=_$createElement5("box")
635
+ _$insertNode3(_el$3,_el$4)
896
636
  _$use4((node)=>{body=node
897
637
  scroll.ref(node)
898
638
  },_el$3)
899
- _$setProp7(_el$3,"id","opencode-navigator.changelog.body")
900
- _$setProp7(_el$3,"scrollX",false)
901
- _$setProp7(_el$4,"gap",1)
902
- _$setProp7(_el$4,"paddingRight",1)
903
- _$insert6(_el$4,_$createComponent7(Show2,{get when(){return props.entry.changes.length>0
904
- },get fallback(){return(()=>{var _el$8=_$createElement7("text")
905
- _$insertNode6(_el$8,_$createTextNode6(`No user-facing changes in this version.`))
906
- _$effect7((_$p)=>_$setProp7(_el$8,"fg",props.api.theme.current.textMuted,_$p))
639
+ _$setProp4(_el$3,"id","opencode-navigator.changelog.body")
640
+ _$setProp4(_el$3,"scrollX",false)
641
+ _$setProp4(_el$4,"gap",1)
642
+ _$setProp4(_el$4,"paddingRight",1)
643
+ _$insert4(_el$4,_$createComponent5(Show,{get when(){return props.entry.changes.length>0
644
+ },get fallback(){return(()=>{var _el$8=_$createElement5("text")
645
+ _$insertNode3(_el$8,_$createTextNode3(`No user-facing changes in this version.`))
646
+ _$effect4((_$p)=>_$setProp4(_el$8,"fg",props.api.theme.current.textMuted,_$p))
907
647
  return _el$8
908
648
  })()
909
- },get children(){return _$createComponent7(For4,{get each(){return props.entry.changes
910
- },children:(change)=>(()=>{var _el$0=_$createElement7("text"),_el$1=_$createTextNode6(` `)
911
- _$insertNode6(_el$0,_el$1)
912
- _$setProp7(_el$0,"wrapMode","word")
913
- _$insert6(_el$0,()=>icons.icon("selected"),_el$1)
914
- _$insert6(_el$0,change,null)
915
- _$effect7((_$p)=>_$setProp7(_el$0,"fg",props.api.theme.current.text,_$p))
649
+ },get children(){return _$createComponent5(For2,{get each(){return props.entry.changes
650
+ },children:(change)=>(()=>{var _el$0=_$createElement5("text"),_el$1=_$createTextNode3(` `)
651
+ _$insertNode3(_el$0,_el$1)
652
+ _$setProp4(_el$0,"wrapMode","word")
653
+ _$insert4(_el$0,()=>icons.icon("selected"),_el$1)
654
+ _$insert4(_el$0,change,null)
655
+ _$effect4((_$p)=>_$setProp4(_el$0,"fg",props.api.theme.current.text,_$p))
916
656
  return _el$0
917
657
  })()
918
658
  })
919
659
  }}))
920
- _$effect7((_$p)=>_$setProp7(_el$3,"height",Math.max(3,Math.min(16,dimensions().height-13)),_$p))
660
+ _$effect4((_$p)=>_$setProp4(_el$3,"height",Math.max(3,Math.min(16,dimensions().height-13)),_$p))
921
661
  return _el$3
922
- })(),(()=>{var _el$5=_$createElement7("text"),_el$6=_$createTextNode6(` scroll \xB7 `),_el$7=_$createTextNode6(` back`)
923
- _$insertNode6(_el$5,_el$6)
924
- _$insertNode6(_el$5,_el$7)
925
- _$insert6(_el$5,()=>icons.key("up/down"),_el$6)
926
- _$insert6(_el$5,()=>icons.key("esc"),_el$7)
927
- _$effect7((_$p)=>_$setProp7(_el$5,"fg",props.api.theme.current.textMuted,_$p))
662
+ })(),(()=>{var _el$5=_$createElement5("text"),_el$6=_$createTextNode3(` scroll \xB7 `),_el$7=_$createTextNode3(` back`)
663
+ _$insertNode3(_el$5,_el$6)
664
+ _$insertNode3(_el$5,_el$7)
665
+ _$insert4(_el$5,()=>icons.key("up/down"),_el$6)
666
+ _$insert4(_el$5,()=>icons.key("esc"),_el$7)
667
+ _$effect4((_$p)=>_$setProp4(_el$5,"fg",props.api.theme.current.textMuted,_$p))
928
668
  return _el$5
929
669
  })()]
930
670
  }})
931
671
  }
932
- function ChangelogVersionsDialog(props){const dialogs=useDialogs4(props.api)
672
+ function ChangelogVersionsDialog(props){const dialogs=useDialogs3(props.api)
933
673
  const [entries,setEntries]=useDialogState3("releases",undefined)
934
674
  const [error,setError]=useDialogState3("read-error","")
935
675
  let disposed=false
@@ -943,44 +683,44 @@ setError("Could not read the bundled changelog. Retry to read it again.")
943
683
  onMount2(()=>{if(!entries())
944
684
  load()
945
685
  })
946
- onCleanup6(()=>{disposed=true
686
+ onCleanup5(()=>{disposed=true
947
687
  })
948
688
  const unregister=props.api.keymap.registerLayer({mode:"modal",commands:[{name:"opencode-navigator.changelog.retry",enabled:()=>Boolean(error())&&!entries(),run:()=>void load()
949
689
  }],bindings:[{key:"return",cmd:"opencode-navigator.changelog.retry"
950
690
  }]
951
691
  })
952
- onCleanup6(unregister)
953
- return _$createComponent8(Show3,{get when(){return entries()
954
- },get fallback(){return _$createComponent8(DialogSurface5,{get api(){return props.api
955
- },lift:true,get children(){return [_$createComponent8(DialogHeader4,{get api(){return props.api
692
+ onCleanup5(unregister)
693
+ return _$createComponent6(Show2,{get when(){return entries()
694
+ },get fallback(){return _$createComponent6(DialogSurface4,{get api(){return props.api
695
+ },lift:true,get children(){return [_$createComponent6(DialogHeader4,{get api(){return props.api
956
696
  },title:"Navigator changelog",get onBack(){return dialogs.back
957
- }}),(()=>{var _el$=_$createElement8("text")
958
- _$setProp8(_el$,"wrapMode","word")
959
- _$insert7(_el$,()=>error()||"Loading bundled release notes\u2026")
960
- _$effect8((_$p)=>_$setProp8(_el$,"fg",props.api.theme.current.textMuted,_$p))
697
+ }}),(()=>{var _el$=_$createElement6("text")
698
+ _$setProp5(_el$,"wrapMode","word")
699
+ _$insert5(_el$,()=>error()||"Loading bundled release notes\u2026")
700
+ _$effect5((_$p)=>_$setProp5(_el$,"fg",props.api.theme.current.textMuted,_$p))
961
701
  return _el$
962
- })(),_$createComponent8(Show3,{get when(){return error()
963
- },get children(){return _$createComponent8(DialogAction3,{get api(){return props.api
702
+ })(),_$createComponent6(Show2,{get when(){return error()
703
+ },get children(){return _$createComponent6(DialogAction3,{get api(){return props.api
964
704
  },id:"opencode-navigator.changelog.retry",label:"Retry",icon:"retry",selected:true,onSelect:()=>{},onActivate:()=>void load()
965
705
  })
966
706
  }})]
967
707
  }})
968
- },children:(versions)=>_$createComponent8(Show3,{get when(){return versions().length>0
969
- },get fallback(){return _$createComponent8(DialogSurface5,{get api(){return props.api
970
- },lift:true,get children(){return [_$createComponent8(DialogHeader4,{get api(){return props.api
708
+ },children:(versions)=>_$createComponent6(Show2,{get when(){return versions().length>0
709
+ },get fallback(){return _$createComponent6(DialogSurface4,{get api(){return props.api
710
+ },lift:true,get children(){return [_$createComponent6(DialogHeader4,{get api(){return props.api
971
711
  },title:"Navigator changelog",get onBack(){return dialogs.back
972
- }}),(()=>{var _el$2=_$createElement8("text")
973
- _$insertNode7(_el$2,_$createTextNode7(`No release notes are bundled with this installation.`))
974
- _$effect8((_$p)=>_$setProp8(_el$2,"fg",props.api.theme.current.textMuted,_$p))
712
+ }}),(()=>{var _el$2=_$createElement6("text")
713
+ _$insertNode4(_el$2,_$createTextNode4(`No release notes are bundled with this installation.`))
714
+ _$effect5((_$p)=>_$setProp5(_el$2,"fg",props.api.theme.current.textMuted,_$p))
975
715
  return _el$2
976
716
  })()]
977
717
  }})
978
- },get children(){return _$createComponent8(SelectionMenu,{get api(){return props.api
718
+ },get children(){return _$createComponent6(SelectionMenu,{get api(){return props.api
979
719
  },title:"Navigator changelog",get options(){return versions().map((entry)=>({title:`Navigator ${entry.version}`,value:entry.version,description:entry.changes.length>0?`${entry.changes.length} changes`:"No user-facing changes"
980
720
  }))
981
721
  },onSelect:(option)=>{const entry=versions().find((item)=>item.version===option.value)
982
722
  if(entry)
983
- dialogs.open(()=>_$createComponent8(ChangelogVersionDialog,{get api(){return props.api
723
+ dialogs.open(()=>_$createComponent6(ChangelogVersionDialog,{get api(){return props.api
984
724
  },entry
985
725
  }))
986
726
  }})
@@ -999,22 +739,22 @@ case "about:update":{if(service.checkState().status==="available"&&!service.upda
999
739
  service.update(dialogs)
1000
740
  break
1001
741
  }
1002
- case "about:changelog":{dialogs.open(()=>_$createComponent9(ChangelogVersionsDialog,{api,service
742
+ case "about:changelog":{dialogs.open(()=>_$createComponent7(ChangelogVersionsDialog,{api,service
1003
743
  }))
1004
744
  break
1005
745
  }
1006
746
  case "about:bug-report":{openBugReport()
1007
747
  break
1008
748
  }}}
1009
- import {setProp as _$setProp9} from "@opentui/solid"
1010
- import {effect as _$effect9} from "@opentui/solid"
1011
- import {createTextNode as _$createTextNode8} from "@opentui/solid"
1012
- import {insertNode as _$insertNode8} from "@opentui/solid"
1013
- import {createElement as _$createElement9} from "@opentui/solid"
749
+ import {setProp as _$setProp6} from "@opentui/solid"
750
+ import {effect as _$effect6} from "@opentui/solid"
751
+ import {createTextNode as _$createTextNode5} from "@opentui/solid"
752
+ import {insertNode as _$insertNode5} from "@opentui/solid"
753
+ import {createElement as _$createElement7} from "@opentui/solid"
1014
754
  function openLimitsRefreshPrompt(api,preferences,dialogs){const scope=preferences.preferenceScopeLabel()
1015
- dialogs.prompt({title:"Limits refresh interval",description:()=>(()=>{var _el$=_$createElement9("text")
1016
- _$insertNode8(_el$,_$createTextNode8(`Automatic refresh in minutes (minimum 1; default 5). Manual Refresh stays immediate.`))
1017
- _$effect9((_$p)=>_$setProp9(_el$,"fg",api.theme.current.textMuted,_$p))
755
+ dialogs.prompt({title:"Limits refresh interval",description:()=>(()=>{var _el$=_$createElement7("text")
756
+ _$insertNode5(_el$,_$createTextNode5(`Automatic refresh in minutes (minimum 1; default 5). Manual Refresh stays immediate.`))
757
+ _$effect6((_$p)=>_$setProp6(_el$,"fg",api.theme.current.textMuted,_$p))
1018
758
  return _el$
1019
759
  })(),value:String(preferences.selectedLimitsRefreshMinutes()),onConfirm(value){if(preferences.preferenceScopeLabel()!==scope)
1020
760
  throw new Error("Preference scope changed; reopen this setting")
@@ -1040,9 +780,9 @@ function createSettingsSelection(input){const dialogClosed=()=>("open" in input.
1040
780
  function openLimitPrompt(section){const index=input.options().findIndex((option)=>option.value===section)
1041
781
  if(index!==-1)
1042
782
  input.setActive(index)
1043
- input.dialogs.prompt({title:`${SECTION_DEFINITIONS.find((item) => item.name === section).label} item limit`,description:()=>(()=>{var _el$=_$createElement10("text")
1044
- _$insertNode9(_el$,_$createTextNode9(`Visible items before Show all. Enter 0 for All.`))
1045
- _$effect10((_$p)=>_$setProp10(_el$,"fg",input.api.theme.current.textMuted,_$p))
783
+ input.dialogs.prompt({title:`${SECTION_DEFINITIONS.find((item) => item.name === section).label} item limit`,description:()=>(()=>{var _el$=_$createElement8("text")
784
+ _$insertNode6(_el$,_$createTextNode6(`Visible items before Show all. Enter 0 for All.`))
785
+ _$effect7((_$p)=>_$setProp7(_el$,"fg",input.api.theme.current.textMuted,_$p))
1046
786
  return _el$
1047
787
  })(),value:String(input.preferences.selectedSectionItemLimit(section)),onConfirm(value){if(!/^\d+$/.test(value.trim()))
1048
788
  throw new Error("Enter a non-negative whole number (0 for All)")
@@ -1055,9 +795,9 @@ function openShortcut(value){const bindings={toggle_key:{title:"Sidebar shortcut
1055
795
  },search_key:{title:"Search Everything shortcut",get:input.preferences.selectedSearchKey,set:input.preferences.setSearchKey
1056
796
  }}
1057
797
  const binding=bindings[value]
1058
- input.dialogs.prompt({title:binding.title,description:()=>(()=>{var _el$3=_$createElement10("text")
1059
- _$insertNode9(_el$3,_$createTextNode9(`Use OpenCode key syntax, for example alt+s.`))
1060
- _$effect10((_$p)=>_$setProp10(_el$3,"fg",input.api.theme.current.textMuted,_$p))
798
+ input.dialogs.prompt({title:binding.title,description:()=>(()=>{var _el$3=_$createElement8("text")
799
+ _$insertNode6(_el$3,_$createTextNode6(`Use OpenCode key syntax, for example alt+s.`))
800
+ _$effect7((_$p)=>_$setProp7(_el$3,"fg",input.api.theme.current.textMuted,_$p))
1061
801
  return _el$3
1062
802
  })(),value:binding.get(),onConfirm(key){binding.set(key)
1063
803
  input.dialogs.back()
@@ -1165,14 +905,14 @@ import(path).then((module)=>{if(dialogClosed())
1165
905
  return
1166
906
  const{TrustedSkillsDialog
1167
907
  }=module
1168
- input.dialogs.open(()=>_$createComponent10(TrustedSkillsDialog,{get api(){return input.api
908
+ input.dialogs.open(()=>_$createComponent8(TrustedSkillsDialog,{get api(){return input.api
1169
909
  },get preferences(){return input.preferences
1170
910
  }}))
1171
911
  }).catch((error)=>input.api.ui.toast({variant:"error",title:"Trusted skills",message:String(error)
1172
912
  }))
1173
913
  break
1174
914
  }
1175
- case "wizard":{input.dialogs.open(()=>_$createComponent10(FirstRunWizard,{get api(){return input.api
915
+ case "wizard":{input.dialogs.open(()=>_$createComponent8(FirstRunWizard,{get api(){return input.api
1176
916
  },get preferences(){return input.preferences
1177
917
  }}))
1178
918
  break
@@ -1185,7 +925,7 @@ import(path).then((module)=>{if(dialogClosed())
1185
925
  return
1186
926
  const{QuickActionsDialog
1187
927
  }=module
1188
- input.dialogs.open(()=>_$createComponent10(QuickActionsDialog,{get api(){return input.api
928
+ input.dialogs.open(()=>_$createComponent8(QuickActionsDialog,{get api(){return input.api
1189
929
  },get preferences(){return input.preferences
1190
930
  }}))
1191
931
  }).catch((error)=>{input.api.ui.toast({variant:"error",title:"Quick actions",message:String(error),duration:4000
@@ -1200,7 +940,7 @@ import(path).then((module)=>{if(dialogClosed())
1200
940
  return
1201
941
  const{McpGroupsDialog
1202
942
  }=module
1203
- input.dialogs.open(()=>_$createComponent10(McpGroupsDialog,{get api(){return input.api
943
+ input.dialogs.open(()=>_$createComponent8(McpGroupsDialog,{get api(){return input.api
1204
944
  },get preferences(){return input.preferences
1205
945
  },get mcp(){return input.mcp
1206
946
  }}))
@@ -1216,7 +956,7 @@ import(path).then((module)=>{if(dialogClosed())
1216
956
  return
1217
957
  const{SkillGroupsDialog
1218
958
  }=module
1219
- input.dialogs.open(()=>_$createComponent10(SkillGroupsDialog,{get api(){return input.api
959
+ input.dialogs.open(()=>_$createComponent8(SkillGroupsDialog,{get api(){return input.api
1220
960
  },get preferences(){return input.preferences
1221
961
  },get skills(){return input.skills
1222
962
  }}))
@@ -1228,8 +968,8 @@ return{openLimitPrompt,openMcpGroups,openSkillGroups,openQuickActions,select
1228
968
  }}
1229
969
  function createSettingsDialogController(props){let body
1230
970
  const theme=()=>props.api.theme.current
1231
- const icons=useIcons5()
1232
- const dialogs=useDialogs5(props.api)
971
+ const icons=useIcons2()
972
+ const dialogs=useDialogs4(props.api)
1233
973
  const [report,setReport]=useDialogState4("bug-report",undefined)
1234
974
  const scroll=useDialogScroll2()
1235
975
  const dimensions=useTerminalDimensions4()
@@ -1305,27 +1045,27 @@ controller=createBugReportController({navigatorVersion:service.navigatorVersion,
1305
1045
  setReport(controller)
1306
1046
  }
1307
1047
  const selected=controller
1308
- dialogs.open(()=>_$createComponent11(BugReportDialog,{get api(){return props.api
1048
+ dialogs.open(()=>_$createComponent9(BugReportDialog,{get api(){return props.api
1309
1049
  },controller:selected
1310
1050
  }))
1311
1051
  }})
1312
1052
  const unregister=registerSettingsKeymap({api:props.api,active,activeGroup,options,move,switchGroup,reorder,select:selection.select,openQuickActions:selection.openQuickActions,openMcpGroups:selection.openMcpGroups,openSkillGroups:selection.openSkillGroups,openLimitPrompt:selection.openLimitPrompt
1313
1053
  })
1314
- onCleanup7(unregister)
1054
+ onCleanup6(unregister)
1315
1055
  return{active,activeGroup,contentHeight,dialogs,footerHint,icons,openLimitPrompt:selection.openLimitPrompt,openQuickActions:selection.openQuickActions,openMcpGroups:selection.openMcpGroups,openSkillGroups:selection.openSkillGroups,options,optionId,orderedGroups,reorder,select:selection.select,setActive,setActiveGroup,setBody(node){body=node
1316
1056
  scroll.ref(node)
1317
1057
  },restoreScroll:scroll.restore,saveScroll:scroll.save,theme
1318
1058
  }}
1319
- import {effect as _$effect11} from "@opentui/solid"
1320
- import {createComponent as _$createComponent12} from "@opentui/solid"
1321
- import {insert as _$insert8} from "@opentui/solid"
1322
- import {createTextNode as _$createTextNode10} from "@opentui/solid"
1323
- import {insertNode as _$insertNode10} from "@opentui/solid"
1324
- import {memo as _$memo4} from "@opentui/solid"
1325
- import {setProp as _$setProp11} from "@opentui/solid"
1326
- import {createElement as _$createElement11} from "@opentui/solid"
1327
- import {TextAttributes as TextAttributes4} from "@opentui/core"
1328
- import {Show as Show4} from "solid-js"
1059
+ import {effect as _$effect8} from "@opentui/solid"
1060
+ import {createComponent as _$createComponent10} from "@opentui/solid"
1061
+ import {insert as _$insert6} from "@opentui/solid"
1062
+ import {createTextNode as _$createTextNode7} from "@opentui/solid"
1063
+ import {insertNode as _$insertNode7} from "@opentui/solid"
1064
+ import {memo as _$memo2} from "@opentui/solid"
1065
+ import {setProp as _$setProp8} from "@opentui/solid"
1066
+ import {createElement as _$createElement9} from "@opentui/solid"
1067
+ import {TextAttributes} from "@opentui/core"
1068
+ import {Show as Show3} from "solid-js"
1329
1069
  import {getNavigatorAboutServices as getNavigatorAboutServices4} from "./tui.js"
1330
1070
  function AboutVersionStatus(props){const service=()=>getNavigatorAboutServices4(props.api)
1331
1071
  const status=()=>{const state=service()?.checkState()
@@ -1341,150 +1081,150 @@ case "error":{return "Could not check updates. Check again to retry."
1341
1081
  }
1342
1082
  case "idle":{return "Updates have not been checked yet."
1343
1083
  }}}
1344
- return(()=>{var _el$=_$createElement11("box"),_el$2=_$createElement11("text"),_el$3=_$createTextNode10(`Navigator `),_el$4=_$createElement11("text"),_el$5=_$createTextNode10(`OpenCode `),_el$6=_$createElement11("text"),_el$7=_$createElement11("text")
1345
- _$insertNode10(_el$,_el$2)
1346
- _$insertNode10(_el$,_el$4)
1347
- _$insertNode10(_el$,_el$6)
1348
- _$insertNode10(_el$,_el$7)
1349
- _$setProp11(_el$,"width","100%")
1350
- _$setProp11(_el$,"minWidth",0)
1351
- _$setProp11(_el$,"gap",0)
1352
- _$insertNode10(_el$2,_el$3)
1353
- _$setProp11(_el$2,"height",1)
1354
- _$setProp11(_el$2,"truncate",true)
1355
- _$setProp11(_el$2,"wrapMode","none")
1356
- _$insert8(_el$2,()=>service()?.navigatorVersion??"version unavailable",null)
1357
- _$insertNode10(_el$4,_el$5)
1358
- _$setProp11(_el$4,"height",1)
1359
- _$setProp11(_el$4,"truncate",true)
1360
- _$setProp11(_el$4,"wrapMode","none")
1361
- _$insert8(_el$4,()=>service()?.openCodeVersion??props.api.app?.version??"version unavailable",null)
1362
- _$setProp11(_el$6,"height",1)
1363
- _$setProp11(_el$6,"truncate",true)
1364
- _$setProp11(_el$6,"wrapMode","none")
1365
- _$insert8(_el$6,(()=>{var _c$=_$memo4(()=>!!service()?.updating())
1084
+ return(()=>{var _el$=_$createElement9("box"),_el$2=_$createElement9("text"),_el$3=_$createTextNode7(`Navigator `),_el$4=_$createElement9("text"),_el$5=_$createTextNode7(`OpenCode `),_el$6=_$createElement9("text"),_el$7=_$createElement9("text")
1085
+ _$insertNode7(_el$,_el$2)
1086
+ _$insertNode7(_el$,_el$4)
1087
+ _$insertNode7(_el$,_el$6)
1088
+ _$insertNode7(_el$,_el$7)
1089
+ _$setProp8(_el$,"width","100%")
1090
+ _$setProp8(_el$,"minWidth",0)
1091
+ _$setProp8(_el$,"gap",0)
1092
+ _$insertNode7(_el$2,_el$3)
1093
+ _$setProp8(_el$2,"height",1)
1094
+ _$setProp8(_el$2,"truncate",true)
1095
+ _$setProp8(_el$2,"wrapMode","none")
1096
+ _$insert6(_el$2,()=>service()?.navigatorVersion??"version unavailable",null)
1097
+ _$insertNode7(_el$4,_el$5)
1098
+ _$setProp8(_el$4,"height",1)
1099
+ _$setProp8(_el$4,"truncate",true)
1100
+ _$setProp8(_el$4,"wrapMode","none")
1101
+ _$insert6(_el$4,()=>service()?.openCodeVersion??props.api.app?.version??"version unavailable",null)
1102
+ _$setProp8(_el$6,"height",1)
1103
+ _$setProp8(_el$6,"truncate",true)
1104
+ _$setProp8(_el$6,"wrapMode","none")
1105
+ _$insert6(_el$6,(()=>{var _c$=_$memo2(()=>!!service()?.updating())
1366
1106
  return()=>_c$()?"Installing Navigator. Restart OpenCode after completion.":status()
1367
1107
  })())
1368
- _$setProp11(_el$7,"height",1)
1369
- _$setProp11(_el$7,"truncate",true)
1370
- _$setProp11(_el$7,"wrapMode","none")
1371
- _$insert8(_el$7,(()=>{var _c$2=_$memo4(()=>!!service()?.checkState().checkedAt)
1108
+ _$setProp8(_el$7,"height",1)
1109
+ _$setProp8(_el$7,"truncate",true)
1110
+ _$setProp8(_el$7,"wrapMode","none")
1111
+ _$insert6(_el$7,(()=>{var _c$2=_$memo2(()=>!!service()?.checkState().checkedAt)
1372
1112
  return()=>_c$2()?`Last check: ${new Date(service().checkState().checkedAt).toLocaleTimeString()}`:"Check manually when needed."
1373
1113
  })())
1374
- _$insert8(_el$,_$createComponent12(Show4,{get when(){return service()?.installed?.()
1375
- },children:(version)=>(()=>{var _el$8=_$createElement11("text"),_el$9=_$createTextNode10(`Restart OpenCode to use Navigator `),_el$0=_$createTextNode10(`.`)
1376
- _$insertNode10(_el$8,_el$9)
1377
- _$insertNode10(_el$8,_el$0)
1378
- _$setProp11(_el$8,"height",1)
1379
- _$setProp11(_el$8,"truncate",true)
1380
- _$setProp11(_el$8,"wrapMode","none")
1381
- _$insert8(_el$8,version,_el$0)
1382
- _$effect11((_$p)=>_$setProp11(_el$8,"fg",props.api.theme.current.textMuted,_$p))
1114
+ _$insert6(_el$,_$createComponent10(Show3,{get when(){return service()?.installed?.()
1115
+ },children:(version)=>(()=>{var _el$8=_$createElement9("text"),_el$9=_$createTextNode7(`Restart OpenCode to use Navigator `),_el$0=_$createTextNode7(`.`)
1116
+ _$insertNode7(_el$8,_el$9)
1117
+ _$insertNode7(_el$8,_el$0)
1118
+ _$setProp8(_el$8,"height",1)
1119
+ _$setProp8(_el$8,"truncate",true)
1120
+ _$setProp8(_el$8,"wrapMode","none")
1121
+ _$insert6(_el$8,version,_el$0)
1122
+ _$effect8((_$p)=>_$setProp8(_el$8,"fg",props.api.theme.current.textMuted,_$p))
1383
1123
  return _el$8
1384
1124
  })()
1385
1125
  }),null)
1386
- _$effect11((_p$)=>{var _v$=TextAttributes4.BOLD,_v$2=props.api.theme.current.text,_v$3=props.api.theme.current.textMuted,_v$4=service()?.checkState().status==="error"?props.api.theme.current.warning:props.api.theme.current.textMuted,_v$5=props.api.theme.current.textMuted
1387
- _v$!==_p$.e&&(_p$.e=_$setProp11(_el$2,"attributes",_v$,_p$.e))
1388
- _v$2!==_p$.t&&(_p$.t=_$setProp11(_el$2,"fg",_v$2,_p$.t))
1389
- _v$3!==_p$.a&&(_p$.a=_$setProp11(_el$4,"fg",_v$3,_p$.a))
1390
- _v$4!==_p$.o&&(_p$.o=_$setProp11(_el$6,"fg",_v$4,_p$.o))
1391
- _v$5!==_p$.i&&(_p$.i=_$setProp11(_el$7,"fg",_v$5,_p$.i))
1126
+ _$effect8((_p$)=>{var _v$=TextAttributes.BOLD,_v$2=props.api.theme.current.text,_v$3=props.api.theme.current.textMuted,_v$4=service()?.checkState().status==="error"?props.api.theme.current.warning:props.api.theme.current.textMuted,_v$5=props.api.theme.current.textMuted
1127
+ _v$!==_p$.e&&(_p$.e=_$setProp8(_el$2,"attributes",_v$,_p$.e))
1128
+ _v$2!==_p$.t&&(_p$.t=_$setProp8(_el$2,"fg",_v$2,_p$.t))
1129
+ _v$3!==_p$.a&&(_p$.a=_$setProp8(_el$4,"fg",_v$3,_p$.a))
1130
+ _v$4!==_p$.o&&(_p$.o=_$setProp8(_el$6,"fg",_v$4,_p$.o))
1131
+ _v$5!==_p$.i&&(_p$.i=_$setProp8(_el$7,"fg",_v$5,_p$.i))
1392
1132
  return _p$
1393
1133
  },{e:undefined,t:undefined,a:undefined,o:undefined,i:undefined
1394
1134
  })
1395
1135
  return _el$
1396
1136
  })()
1397
1137
  }
1398
- import {createComponent as _$createComponent13} from "@opentui/solid"
1399
- import {createTextNode as _$createTextNode11} from "@opentui/solid"
1400
- import {insertNode as _$insertNode11} from "@opentui/solid"
1401
- import {effect as _$effect12} from "@opentui/solid"
1402
- import {insert as _$insert9} from "@opentui/solid"
1403
- import {setProp as _$setProp12} from "@opentui/solid"
1404
- import {createElement as _$createElement12} from "@opentui/solid"
1405
- import {memo as _$memo5} from "@opentui/solid"
1406
- import {TextAttributes as TextAttributes5} from "@opentui/core"
1407
- import {Show as Show5} from "solid-js"
1408
- import {SelectionBox as SelectionBox3} from "./tui.js"
1138
+ import {createComponent as _$createComponent11} from "@opentui/solid"
1139
+ import {createTextNode as _$createTextNode8} from "@opentui/solid"
1140
+ import {insertNode as _$insertNode8} from "@opentui/solid"
1141
+ import {effect as _$effect9} from "@opentui/solid"
1142
+ import {insert as _$insert7} from "@opentui/solid"
1143
+ import {setProp as _$setProp9} from "@opentui/solid"
1144
+ import {createElement as _$createElement10} from "@opentui/solid"
1145
+ import {memo as _$memo3} from "@opentui/solid"
1146
+ import {TextAttributes as TextAttributes2} from "@opentui/core"
1147
+ import {Show as Show4} from "solid-js"
1148
+ import {SelectionBox} from "./tui.js"
1409
1149
  function SettingsOptionRow(props){const model=props.controller
1410
1150
  const index=()=>model.options().findIndex((candidate)=>candidate.value===props.option.value)
1411
1151
  const selected=()=>model.active()===index()
1412
1152
  const section=()=>props.option.value
1413
- return _$createComponent13(SelectionBox3,{get id(){return model.optionId(props.option.value)
1414
- },flexDirection:"row",gap:2,paddingLeft:1,paddingRight:1,get backgroundColor(){return _$memo5(()=>!!selected())()?model.theme().backgroundElement:undefined
1153
+ return _$createComponent11(SelectionBox,{get id(){return model.optionId(props.option.value)
1154
+ },flexDirection:"row",gap:2,paddingLeft:1,paddingRight:1,get backgroundColor(){return _$memo3(()=>!!selected())()?model.theme().backgroundElement:undefined
1415
1155
  },onMouseOver:()=>model.setActive(index()),onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
1416
1156
  if(!props.option.disabled)
1417
1157
  model.select(props.option.value)
1418
- },get children(){return [(()=>{var _el$=_$createElement12("text")
1419
- _$setProp12(_el$,"flexShrink",0)
1420
- _$insert9(_el$,()=>props.option.title)
1421
- _$effect12((_p$)=>{var _v$=selected()?TextAttributes5.BOLD:undefined,_v$2=props.option.disabled?model.theme().textMuted:model.theme().text
1422
- _v$!==_p$.e&&(_p$.e=_$setProp12(_el$,"attributes",_v$,_p$.e))
1423
- _v$2!==_p$.t&&(_p$.t=_$setProp12(_el$,"fg",_v$2,_p$.t))
1158
+ },get children(){return [(()=>{var _el$=_$createElement10("text")
1159
+ _$setProp9(_el$,"flexShrink",0)
1160
+ _$insert7(_el$,()=>props.option.title)
1161
+ _$effect9((_p$)=>{var _v$=selected()?TextAttributes2.BOLD:undefined,_v$2=props.option.disabled?model.theme().textMuted:model.theme().text
1162
+ _v$!==_p$.e&&(_p$.e=_$setProp9(_el$,"attributes",_v$,_p$.e))
1163
+ _v$2!==_p$.t&&(_p$.t=_$setProp9(_el$,"fg",_v$2,_p$.t))
1424
1164
  return _p$
1425
1165
  },{e:undefined,t:undefined
1426
1166
  })
1427
1167
  return _el$
1428
- })(),(()=>{var _el$2=_$createElement12("text")
1429
- _$setProp12(_el$2,"flexGrow",1)
1430
- _$setProp12(_el$2,"minWidth",0)
1431
- _$setProp12(_el$2,"truncate",true)
1432
- _$setProp12(_el$2,"wrapMode","none")
1433
- _$insert9(_el$2,()=>props.option.description)
1434
- _$effect12((_$p)=>_$setProp12(_el$2,"fg",model.theme().borderSubtle,_$p))
1168
+ })(),(()=>{var _el$2=_$createElement10("text")
1169
+ _$setProp9(_el$2,"flexGrow",1)
1170
+ _$setProp9(_el$2,"minWidth",0)
1171
+ _$setProp9(_el$2,"truncate",true)
1172
+ _$setProp9(_el$2,"wrapMode","none")
1173
+ _$insert7(_el$2,()=>props.option.description)
1174
+ _$effect9((_$p)=>_$setProp9(_el$2,"fg",model.theme().borderSubtle,_$p))
1435
1175
  return _el$2
1436
- })(),_$createComponent13(Show5,{get when(){return SIDEBAR_SECTIONS.includes(section())
1437
- },get children(){var _el$3=_$createElement12("box"),_el$8=_$createElement12("text"),_el$9=_$createTextNode11(` Items: `),_el$0=_$createElement12("text"),_el$1=_$createElement12("text")
1438
- _$insertNode11(_el$3,_el$8)
1439
- _$insertNode11(_el$3,_el$0)
1440
- _$insertNode11(_el$3,_el$1)
1441
- _$setProp12(_el$3,"flexDirection","row")
1442
- _$setProp12(_el$3,"flexShrink",0)
1443
- _$setProp12(_el$3,"gap",1)
1444
- _$insert9(_el$3,_$createComponent13(Show5,{get when(){return props.option.value==="quick_actions"
1445
- },get children(){var _el$4=_$createElement12("text"),_el$5=_$createTextNode11(` Actions`)
1446
- _$insertNode11(_el$4,_el$5)
1447
- _$setProp12(_el$4,"onMouseDown",(event)=>event.stopPropagation())
1448
- _$setProp12(_el$4,"onMouseUp",(event)=>{event.stopPropagation()
1176
+ })(),_$createComponent11(Show4,{get when(){return SIDEBAR_SECTIONS.includes(section())
1177
+ },get children(){var _el$3=_$createElement10("box"),_el$8=_$createElement10("text"),_el$9=_$createTextNode8(` Items: `),_el$0=_$createElement10("text"),_el$1=_$createElement10("text")
1178
+ _$insertNode8(_el$3,_el$8)
1179
+ _$insertNode8(_el$3,_el$0)
1180
+ _$insertNode8(_el$3,_el$1)
1181
+ _$setProp9(_el$3,"flexDirection","row")
1182
+ _$setProp9(_el$3,"flexShrink",0)
1183
+ _$setProp9(_el$3,"gap",1)
1184
+ _$insert7(_el$3,_$createComponent11(Show4,{get when(){return props.option.value==="quick_actions"
1185
+ },get children(){var _el$4=_$createElement10("text"),_el$5=_$createTextNode8(` Actions`)
1186
+ _$insertNode8(_el$4,_el$5)
1187
+ _$setProp9(_el$4,"onMouseDown",(event)=>event.stopPropagation())
1188
+ _$setProp9(_el$4,"onMouseUp",(event)=>{event.stopPropagation()
1449
1189
  model.openQuickActions()
1450
1190
  })
1451
- _$insert9(_el$4,()=>model.icons.icon("actions"),_el$5)
1452
- _$effect12((_$p)=>_$setProp12(_el$4,"fg",model.theme().accent,_$p))
1191
+ _$insert7(_el$4,()=>model.icons.icon("actions"),_el$5)
1192
+ _$effect9((_$p)=>_$setProp9(_el$4,"fg",model.theme().accent,_$p))
1453
1193
  return _el$4
1454
1194
  }}),_el$8)
1455
- _$insert9(_el$3,_$createComponent13(Show5,{get when(){return props.option.value==="mcp"||props.option.value==="skills"
1456
- },get children(){var _el$6=_$createElement12("text"),_el$7=_$createTextNode11(` Groups`)
1457
- _$insertNode11(_el$6,_el$7)
1458
- _$setProp12(_el$6,"onMouseDown",(event)=>event.stopPropagation())
1459
- _$setProp12(_el$6,"onMouseUp",(event)=>{event.stopPropagation()
1195
+ _$insert7(_el$3,_$createComponent11(Show4,{get when(){return props.option.value==="mcp"||props.option.value==="skills"
1196
+ },get children(){var _el$6=_$createElement10("text"),_el$7=_$createTextNode8(` Groups`)
1197
+ _$insertNode8(_el$6,_el$7)
1198
+ _$setProp9(_el$6,"onMouseDown",(event)=>event.stopPropagation())
1199
+ _$setProp9(_el$6,"onMouseUp",(event)=>{event.stopPropagation()
1460
1200
  if(props.option.value==="skills")
1461
1201
  model.openSkillGroups()
1462
1202
  else
1463
1203
  model.openMcpGroups()
1464
1204
  })
1465
- _$insert9(_el$6,()=>model.icons.icon("sections"),_el$7)
1466
- _$effect12((_$p)=>_$setProp12(_el$6,"fg",model.theme().accent,_$p))
1205
+ _$insert7(_el$6,()=>model.icons.icon("sections"),_el$7)
1206
+ _$effect9((_$p)=>_$setProp9(_el$6,"fg",model.theme().accent,_$p))
1467
1207
  return _el$6
1468
1208
  }}),_el$8)
1469
- _$insertNode11(_el$8,_el$9)
1470
- _$setProp12(_el$8,"onMouseDown",(event)=>event.stopPropagation())
1471
- _$setProp12(_el$8,"onMouseUp",(event)=>{event.stopPropagation()
1209
+ _$insertNode8(_el$8,_el$9)
1210
+ _$setProp9(_el$8,"onMouseDown",(event)=>event.stopPropagation())
1211
+ _$setProp9(_el$8,"onMouseUp",(event)=>{event.stopPropagation()
1472
1212
  model.openLimitPrompt(section())
1473
1213
  })
1474
- _$insert9(_el$8,()=>model.icons.icon("todo"),_el$9)
1475
- _$insert9(_el$8,()=>props.preferences.selectedSectionItemLimit?.(section())||"All",null)
1476
- _$setProp12(_el$0,"onMouseDown",(event)=>{event.stopPropagation()
1214
+ _$insert7(_el$8,()=>model.icons.icon("todo"),_el$9)
1215
+ _$insert7(_el$8,()=>props.preferences.selectedSectionItemLimit?.(section())||"All",null)
1216
+ _$setProp9(_el$0,"onMouseDown",(event)=>{event.stopPropagation()
1477
1217
  model.reorder(props.option.value,-1)
1478
1218
  })
1479
- _$insert9(_el$0,()=>model.icons.icon("up"))
1480
- _$setProp12(_el$1,"onMouseDown",(event)=>{event.stopPropagation()
1219
+ _$insert7(_el$0,()=>model.icons.icon("up"))
1220
+ _$setProp9(_el$1,"onMouseDown",(event)=>{event.stopPropagation()
1481
1221
  model.reorder(props.option.value,1)
1482
1222
  })
1483
- _$insert9(_el$1,()=>model.icons.icon("down"))
1484
- _$effect12((_p$)=>{var _v$3=model.theme().accent,_v$4=model.theme().accent,_v$5=model.theme().accent
1485
- _v$3!==_p$.e&&(_p$.e=_$setProp12(_el$8,"fg",_v$3,_p$.e))
1486
- _v$4!==_p$.t&&(_p$.t=_$setProp12(_el$0,"fg",_v$4,_p$.t))
1487
- _v$5!==_p$.a&&(_p$.a=_$setProp12(_el$1,"fg",_v$5,_p$.a))
1223
+ _$insert7(_el$1,()=>model.icons.icon("down"))
1224
+ _$effect9((_p$)=>{var _v$3=model.theme().accent,_v$4=model.theme().accent,_v$5=model.theme().accent
1225
+ _v$3!==_p$.e&&(_p$.e=_$setProp9(_el$8,"fg",_v$3,_p$.e))
1226
+ _v$4!==_p$.t&&(_p$.t=_$setProp9(_el$0,"fg",_v$4,_p$.t))
1227
+ _v$5!==_p$.a&&(_p$.a=_$setProp9(_el$1,"fg",_v$5,_p$.a))
1488
1228
  return _p$
1489
1229
  },{e:undefined,t:undefined,a:undefined
1490
1230
  })
@@ -1493,70 +1233,70 @@ return _el$3
1493
1233
  }})
1494
1234
  }
1495
1235
  function SettingsDialog(props){const model=createSettingsDialogController(props)
1496
- return _$createComponent14(DialogSurface6,{get api(){return props.api
1497
- },get children(){return [(()=>{var _el$=_$createElement13("box"),_el$2=_$createElement13("text"),_el$3=_$createTextNode12(` Navigator settings`),_el$4=_$createElement13("text")
1498
- _$insertNode12(_el$,_el$2)
1499
- _$insertNode12(_el$,_el$4)
1500
- _$setProp13(_el$,"flexDirection","row")
1501
- _$setProp13(_el$,"justifyContent","space-between")
1502
- _$insertNode12(_el$2,_el$3)
1503
- _$insert10(_el$2,()=>model.icons.icon("settings"),_el$3)
1504
- _$setProp13(_el$4,"onMouseDown",(event)=>event.stopPropagation())
1505
- _$setProp13(_el$4,"onMouseUp",(event)=>{event.stopPropagation()
1236
+ return _$createComponent12(DialogSurface5,{get api(){return props.api
1237
+ },get children(){return [(()=>{var _el$=_$createElement11("box"),_el$2=_$createElement11("text"),_el$3=_$createTextNode9(` Navigator settings`),_el$4=_$createElement11("text")
1238
+ _$insertNode9(_el$,_el$2)
1239
+ _$insertNode9(_el$,_el$4)
1240
+ _$setProp10(_el$,"flexDirection","row")
1241
+ _$setProp10(_el$,"justifyContent","space-between")
1242
+ _$insertNode9(_el$2,_el$3)
1243
+ _$insert8(_el$2,()=>model.icons.icon("settings"),_el$3)
1244
+ _$setProp10(_el$4,"onMouseDown",(event)=>event.stopPropagation())
1245
+ _$setProp10(_el$4,"onMouseUp",(event)=>{event.stopPropagation()
1506
1246
  model.dialogs.back()
1507
1247
  })
1508
- _$insert10(_el$4,()=>model.icons.key("esc"))
1509
- _$effect13((_p$)=>{var _v$=TextAttributes6.BOLD,_v$2=model.theme().text,_v$3=model.theme().textMuted
1510
- _v$!==_p$.e&&(_p$.e=_$setProp13(_el$2,"attributes",_v$,_p$.e))
1511
- _v$2!==_p$.t&&(_p$.t=_$setProp13(_el$2,"fg",_v$2,_p$.t))
1512
- _v$3!==_p$.a&&(_p$.a=_$setProp13(_el$4,"fg",_v$3,_p$.a))
1248
+ _$insert8(_el$4,()=>model.icons.key("esc"))
1249
+ _$effect10((_p$)=>{var _v$=TextAttributes3.BOLD,_v$2=model.theme().text,_v$3=model.theme().textMuted
1250
+ _v$!==_p$.e&&(_p$.e=_$setProp10(_el$2,"attributes",_v$,_p$.e))
1251
+ _v$2!==_p$.t&&(_p$.t=_$setProp10(_el$2,"fg",_v$2,_p$.t))
1252
+ _v$3!==_p$.a&&(_p$.a=_$setProp10(_el$4,"fg",_v$3,_p$.a))
1513
1253
  return _p$
1514
1254
  },{e:undefined,t:undefined,a:undefined
1515
1255
  })
1516
1256
  return _el$
1517
- })(),(()=>{var _el$5=_$createElement13("text")
1518
- _$insert10(_el$5,()=>model.activeGroup()==="about"?"Version, updates, release history, and support.":"Adjust sections and behavior. Changes apply immediately.")
1519
- _$effect13((_$p)=>_$setProp13(_el$5,"fg",model.theme().textMuted,_$p))
1257
+ })(),(()=>{var _el$5=_$createElement11("text")
1258
+ _$insert8(_el$5,()=>model.activeGroup()==="about"?"Version, updates, release history, and support.":"Adjust sections and behavior. Changes apply immediately.")
1259
+ _$effect10((_$p)=>_$setProp10(_el$5,"fg",model.theme().textMuted,_$p))
1520
1260
  return _el$5
1521
- })(),(()=>{var _el$6=_$createElement13("box")
1522
- _$setProp13(_el$6,"flexDirection","row")
1523
- _$setProp13(_el$6,"flexWrap","wrap")
1524
- _$setProp13(_el$6,"columnGap",1)
1525
- _$setProp13(_el$6,"rowGap",0)
1526
- _$insert10(_el$6,_$createComponent14(For5,{get each(){return model.orderedGroups().map((group)=>group.id)
1527
- },children:(id)=>_$createComponent14(Tab,{get api(){return props.api
1261
+ })(),(()=>{var _el$6=_$createElement11("box")
1262
+ _$setProp10(_el$6,"flexDirection","row")
1263
+ _$setProp10(_el$6,"flexWrap","wrap")
1264
+ _$setProp10(_el$6,"columnGap",1)
1265
+ _$setProp10(_el$6,"rowGap",0)
1266
+ _$insert8(_el$6,_$createComponent12(For3,{get each(){return model.orderedGroups().map((group)=>group.id)
1267
+ },children:(id)=>_$createComponent12(Tab,{get api(){return props.api
1528
1268
  },get selected(){return model.activeGroup()===id
1529
1269
  },paddingLeft:1,paddingRight:1,onMouseDown:()=>{model.setActiveGroup(id)
1530
1270
  model.setActive(0)
1531
- },get children(){return [_$memo6(()=>model.icons.tab(id))," ",_$memo6(()=>model.orderedGroups().find((group)=>group.id===id)?.tab)]
1271
+ },get children(){return [_$memo4(()=>model.icons.tab(id))," ",_$memo4(()=>model.orderedGroups().find((group)=>group.id===id)?.tab)]
1532
1272
  }})
1533
1273
  }))
1534
1274
  return _el$6
1535
- })(),(()=>{var _el$7=_$createElement13("scrollbox"),_el$8=_$createElement13("box")
1536
- _$insertNode12(_el$7,_el$8)
1275
+ })(),(()=>{var _el$7=_$createElement11("scrollbox"),_el$8=_$createElement11("box")
1276
+ _$insertNode9(_el$7,_el$8)
1537
1277
  var _ref$=model.setBody
1538
1278
  typeof _ref$==="function"?_$use5(_ref$,_el$7):model.setBody=_el$7
1539
- _$setProp13(_el$7,"id",`${PLUGIN_ID}.settings.body`)
1540
- _$setProp13(_el$7,"scrollX",false)
1541
- _$setProp13(_el$7,"verticalScrollbarOptions",{visible:true
1279
+ _$setProp10(_el$7,"id",`${PLUGIN_ID}.settings.body`)
1280
+ _$setProp10(_el$7,"scrollX",false)
1281
+ _$setProp10(_el$7,"verticalScrollbarOptions",{visible:true
1542
1282
  })
1543
- _$setProp13(_el$7,"horizontalScrollbarOptions",{visible:false
1283
+ _$setProp10(_el$7,"horizontalScrollbarOptions",{visible:false
1544
1284
  })
1545
- _$setProp13(_el$8,"gap",1)
1546
- _$insert10(_el$8,_$createComponent14(Show6,{get when(){return model.activeGroup()==="about"
1547
- },get children(){return _$createComponent14(AboutVersionStatus,{get api(){return props.api
1285
+ _$setProp10(_el$8,"gap",1)
1286
+ _$insert8(_el$8,_$createComponent12(Show5,{get when(){return model.activeGroup()==="about"
1287
+ },get children(){return _$createComponent12(AboutVersionStatus,{get api(){return props.api
1548
1288
  }})
1549
1289
  }}),null)
1550
- _$insert10(_el$8,_$createComponent14(For5,{get each(){return model.options().map((option)=>option.value)
1551
- },children:(value)=>_$createComponent14(SettingsOptionRow,{get preferences(){return props.preferences
1290
+ _$insert8(_el$8,_$createComponent12(For3,{get each(){return model.options().map((option)=>option.value)
1291
+ },children:(value)=>_$createComponent12(SettingsOptionRow,{get preferences(){return props.preferences
1552
1292
  },controller:model,get option(){return model.options().find((option)=>option.value===value)
1553
1293
  }})
1554
1294
  }),null)
1555
- _$effect13((_$p)=>_$setProp13(_el$7,"height",model.contentHeight(),_$p))
1295
+ _$effect10((_$p)=>_$setProp10(_el$7,"height",model.contentHeight(),_$p))
1556
1296
  return _el$7
1557
- })(),(()=>{var _el$9=_$createElement13("text")
1558
- _$insert10(_el$9,()=>model.footerHint())
1559
- _$effect13((_$p)=>_$setProp13(_el$9,"fg",model.theme().textMuted,_$p))
1297
+ })(),(()=>{var _el$9=_$createElement11("text")
1298
+ _$insert8(_el$9,()=>model.footerHint())
1299
+ _$effect10((_$p)=>_$setProp10(_el$9,"fg",model.theme().textMuted,_$p))
1560
1300
  return _el$9
1561
1301
  })()]
1562
1302
  }})