opencode-navigator 0.24.0 → 0.25.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"
@@ -567,313 +567,51 @@ body.scrollChildIntoView(input.optionId(option.value))
567
567
  renderer.on("frame",reveal)
568
568
  onCleanup3(()=>renderer.off("frame",reveal))
569
569
  }
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"
570
+ import {createComponent as _$createComponent8} from "@opentui/solid"
571
+ import {setProp as _$setProp7} from "@opentui/solid"
572
+ import {effect as _$effect7} from "@opentui/solid"
573
+ import {createTextNode as _$createTextNode6} from "@opentui/solid"
574
+ import {insertNode as _$insertNode6} from "@opentui/solid"
575
+ import {createElement as _$createElement8} from "@opentui/solid"
609
576
  import {insert as _$insert3} from "@opentui/solid"
610
- import {setProp as _$setProp4} from "@opentui/solid"
577
+ import {createComponent as _$createComponent4} from "@opentui/solid"
611
578
  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
- })
579
+ import {Suspense,lazy} from "solid-js"
580
+ import {createDialogStack} from "./tui.js"
581
+ var Content=lazy(async ()=>{const path=import.meta.url.includes("/dist/")?"./onboarding.js":"./first-run-wizard-content"
582
+ const module=await import(path)
583
+ return{default:module.FirstRunWizard
584
+ }})
585
+ function FirstRunWizard(props){return(()=>{var _el$=_$createElement4("box")
586
+ _$insert3(_el$,_$createComponent4(Suspense,{get children(){return _$createComponent4(Content,props)
587
+ }}))
693
588
  return _el$
694
589
  })()
695
590
  }
696
- import {memo as _$memo2} from "@opentui/solid"
697
- import {effect as _$effect5} from "@opentui/solid"
698
- import {createComponent as _$createComponent5} from "@opentui/solid"
591
+ import {createComponent as _$createComponent7} from "@opentui/solid"
699
592
  import {createTextNode as _$createTextNode4} from "@opentui/solid"
700
593
  import {insertNode as _$insertNode4} from "@opentui/solid"
701
- import {insert as _$insert4} from "@opentui/solid"
594
+ import {effect as _$effect5} from "@opentui/solid"
595
+ import {insert as _$insert5} from "@opentui/solid"
596
+ import {memo as _$memo} from "@opentui/solid"
702
597
  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"
598
+ import {createElement as _$createElement6} from "@opentui/solid"
599
+ import {createComponent as _$createComponent6} from "@opentui/solid"
600
+ import {Show as Show2,onCleanup as onCleanup5,onMount as onMount2} from "solid-js"
601
+ import {DialogAction as DialogAction3,DialogHeader as DialogHeader4,DialogSurface as DialogSurface4,SelectionMenu,useDialogState as useDialogState3,useDialogs as useDialogs3} from "./tui.js"
602
+ import {insert as _$insert4} from "@opentui/solid"
865
603
  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"
604
+ import {setProp as _$setProp4} from "@opentui/solid"
605
+ import {effect as _$effect4} from "@opentui/solid"
606
+ import {createTextNode as _$createTextNode3} from "@opentui/solid"
607
+ import {insertNode as _$insertNode3} from "@opentui/solid"
608
+ import {createElement as _$createElement5} from "@opentui/solid"
609
+ import {createComponent as _$createComponent5} from "@opentui/solid"
872
610
  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()
611
+ import {For as For2,Show,onCleanup as onCleanup4} from "solid-js"
612
+ import {DialogHeader as DialogHeader3,DialogSurface as DialogSurface3,useDialogScroll,useDialogs as useDialogs2,useIcons} from "./tui.js"
613
+ function ChangelogVersionDialog(props){const dialogs=useDialogs2(props.api)
614
+ const icons=useIcons()
877
615
  const dimensions=useTerminalDimensions3()
878
616
  const scroll=useDialogScroll()
879
617
  let body
@@ -882,54 +620,54 @@ const unregister=props.api.keymap.registerLayer({mode:"modal",commands:keys.map(
882
620
  })),bindings:keys.map((key,index)=>({key,cmd:`opencode-navigator.changelog.scroll.${index}`
883
621
  }))
884
622
  })
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
623
+ onCleanup4(unregister)
624
+ return _$createComponent5(DialogSurface3,{get api(){return props.api
625
+ },lift:true,get children(){return [_$createComponent5(DialogHeader3,{get api(){return props.api
888
626
  },get title(){return `Navigator ${props.entry.version}`
889
627
  },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))
628
+ }}),(()=>{var _el$=_$createElement5("text")
629
+ _$insertNode3(_el$,_$createTextNode3(`Release notes`))
630
+ _$effect4((_$p)=>_$setProp4(_el$,"fg",props.api.theme.current.textMuted,_$p))
893
631
  return _el$
894
- })(),(()=>{var _el$3=_$createElement7("scrollbox"),_el$4=_$createElement7("box")
895
- _$insertNode6(_el$3,_el$4)
632
+ })(),(()=>{var _el$3=_$createElement5("scrollbox"),_el$4=_$createElement5("box")
633
+ _$insertNode3(_el$3,_el$4)
896
634
  _$use4((node)=>{body=node
897
635
  scroll.ref(node)
898
636
  },_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))
637
+ _$setProp4(_el$3,"id","opencode-navigator.changelog.body")
638
+ _$setProp4(_el$3,"scrollX",false)
639
+ _$setProp4(_el$4,"gap",1)
640
+ _$setProp4(_el$4,"paddingRight",1)
641
+ _$insert4(_el$4,_$createComponent5(Show,{get when(){return props.entry.changes.length>0
642
+ },get fallback(){return(()=>{var _el$8=_$createElement5("text")
643
+ _$insertNode3(_el$8,_$createTextNode3(`No user-facing changes in this version.`))
644
+ _$effect4((_$p)=>_$setProp4(_el$8,"fg",props.api.theme.current.textMuted,_$p))
907
645
  return _el$8
908
646
  })()
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))
647
+ },get children(){return _$createComponent5(For2,{get each(){return props.entry.changes
648
+ },children:(change)=>(()=>{var _el$0=_$createElement5("text"),_el$1=_$createTextNode3(` `)
649
+ _$insertNode3(_el$0,_el$1)
650
+ _$setProp4(_el$0,"wrapMode","word")
651
+ _$insert4(_el$0,()=>icons.icon("selected"),_el$1)
652
+ _$insert4(_el$0,change,null)
653
+ _$effect4((_$p)=>_$setProp4(_el$0,"fg",props.api.theme.current.text,_$p))
916
654
  return _el$0
917
655
  })()
918
656
  })
919
657
  }}))
920
- _$effect7((_$p)=>_$setProp7(_el$3,"height",Math.max(3,Math.min(16,dimensions().height-13)),_$p))
658
+ _$effect4((_$p)=>_$setProp4(_el$3,"height",Math.max(3,Math.min(16,dimensions().height-13)),_$p))
921
659
  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))
660
+ })(),(()=>{var _el$5=_$createElement5("text"),_el$6=_$createTextNode3(` scroll \xB7 `),_el$7=_$createTextNode3(` back`)
661
+ _$insertNode3(_el$5,_el$6)
662
+ _$insertNode3(_el$5,_el$7)
663
+ _$insert4(_el$5,()=>icons.key("up/down"),_el$6)
664
+ _$insert4(_el$5,()=>icons.key("esc"),_el$7)
665
+ _$effect4((_$p)=>_$setProp4(_el$5,"fg",props.api.theme.current.textMuted,_$p))
928
666
  return _el$5
929
667
  })()]
930
668
  }})
931
669
  }
932
- function ChangelogVersionsDialog(props){const dialogs=useDialogs4(props.api)
670
+ function ChangelogVersionsDialog(props){const dialogs=useDialogs3(props.api)
933
671
  const [entries,setEntries]=useDialogState3("releases",undefined)
934
672
  const [error,setError]=useDialogState3("read-error","")
935
673
  let disposed=false
@@ -943,44 +681,44 @@ setError("Could not read the bundled changelog. Retry to read it again.")
943
681
  onMount2(()=>{if(!entries())
944
682
  load()
945
683
  })
946
- onCleanup6(()=>{disposed=true
684
+ onCleanup5(()=>{disposed=true
947
685
  })
948
686
  const unregister=props.api.keymap.registerLayer({mode:"modal",commands:[{name:"opencode-navigator.changelog.retry",enabled:()=>Boolean(error())&&!entries(),run:()=>void load()
949
687
  }],bindings:[{key:"return",cmd:"opencode-navigator.changelog.retry"
950
688
  }]
951
689
  })
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
690
+ onCleanup5(unregister)
691
+ return _$createComponent6(Show2,{get when(){return entries()
692
+ },get fallback(){return _$createComponent6(DialogSurface4,{get api(){return props.api
693
+ },lift:true,get children(){return [_$createComponent6(DialogHeader4,{get api(){return props.api
956
694
  },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))
695
+ }}),(()=>{var _el$=_$createElement6("text")
696
+ _$setProp5(_el$,"wrapMode","word")
697
+ _$insert5(_el$,()=>error()||"Loading bundled release notes\u2026")
698
+ _$effect5((_$p)=>_$setProp5(_el$,"fg",props.api.theme.current.textMuted,_$p))
961
699
  return _el$
962
- })(),_$createComponent8(Show3,{get when(){return error()
963
- },get children(){return _$createComponent8(DialogAction3,{get api(){return props.api
700
+ })(),_$createComponent6(Show2,{get when(){return error()
701
+ },get children(){return _$createComponent6(DialogAction3,{get api(){return props.api
964
702
  },id:"opencode-navigator.changelog.retry",label:"Retry",icon:"retry",selected:true,onSelect:()=>{},onActivate:()=>void load()
965
703
  })
966
704
  }})]
967
705
  }})
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
706
+ },children:(versions)=>_$createComponent6(Show2,{get when(){return versions().length>0
707
+ },get fallback(){return _$createComponent6(DialogSurface4,{get api(){return props.api
708
+ },lift:true,get children(){return [_$createComponent6(DialogHeader4,{get api(){return props.api
971
709
  },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))
710
+ }}),(()=>{var _el$2=_$createElement6("text")
711
+ _$insertNode4(_el$2,_$createTextNode4(`No release notes are bundled with this installation.`))
712
+ _$effect5((_$p)=>_$setProp5(_el$2,"fg",props.api.theme.current.textMuted,_$p))
975
713
  return _el$2
976
714
  })()]
977
715
  }})
978
- },get children(){return _$createComponent8(SelectionMenu,{get api(){return props.api
716
+ },get children(){return _$createComponent6(SelectionMenu,{get api(){return props.api
979
717
  },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
718
  }))
981
719
  },onSelect:(option)=>{const entry=versions().find((item)=>item.version===option.value)
982
720
  if(entry)
983
- dialogs.open(()=>_$createComponent8(ChangelogVersionDialog,{get api(){return props.api
721
+ dialogs.open(()=>_$createComponent6(ChangelogVersionDialog,{get api(){return props.api
984
722
  },entry
985
723
  }))
986
724
  }})
@@ -999,22 +737,22 @@ case "about:update":{if(service.checkState().status==="available"&&!service.upda
999
737
  service.update(dialogs)
1000
738
  break
1001
739
  }
1002
- case "about:changelog":{dialogs.open(()=>_$createComponent9(ChangelogVersionsDialog,{api,service
740
+ case "about:changelog":{dialogs.open(()=>_$createComponent7(ChangelogVersionsDialog,{api,service
1003
741
  }))
1004
742
  break
1005
743
  }
1006
744
  case "about:bug-report":{openBugReport()
1007
745
  break
1008
746
  }}}
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"
747
+ import {setProp as _$setProp6} from "@opentui/solid"
748
+ import {effect as _$effect6} from "@opentui/solid"
749
+ import {createTextNode as _$createTextNode5} from "@opentui/solid"
750
+ import {insertNode as _$insertNode5} from "@opentui/solid"
751
+ import {createElement as _$createElement7} from "@opentui/solid"
1014
752
  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))
753
+ dialogs.prompt({title:"Limits refresh interval",description:()=>(()=>{var _el$=_$createElement7("text")
754
+ _$insertNode5(_el$,_$createTextNode5(`Automatic refresh in minutes (minimum 1; default 5). Manual Refresh stays immediate.`))
755
+ _$effect6((_$p)=>_$setProp6(_el$,"fg",api.theme.current.textMuted,_$p))
1018
756
  return _el$
1019
757
  })(),value:String(preferences.selectedLimitsRefreshMinutes()),onConfirm(value){if(preferences.preferenceScopeLabel()!==scope)
1020
758
  throw new Error("Preference scope changed; reopen this setting")
@@ -1040,9 +778,9 @@ function createSettingsSelection(input){const dialogClosed=()=>("open" in input.
1040
778
  function openLimitPrompt(section){const index=input.options().findIndex((option)=>option.value===section)
1041
779
  if(index!==-1)
1042
780
  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))
781
+ input.dialogs.prompt({title:`${SECTION_DEFINITIONS.find((item) => item.name === section).label} item limit`,description:()=>(()=>{var _el$=_$createElement8("text")
782
+ _$insertNode6(_el$,_$createTextNode6(`Visible items before Show all. Enter 0 for All.`))
783
+ _$effect7((_$p)=>_$setProp7(_el$,"fg",input.api.theme.current.textMuted,_$p))
1046
784
  return _el$
1047
785
  })(),value:String(input.preferences.selectedSectionItemLimit(section)),onConfirm(value){if(!/^\d+$/.test(value.trim()))
1048
786
  throw new Error("Enter a non-negative whole number (0 for All)")
@@ -1055,9 +793,9 @@ function openShortcut(value){const bindings={toggle_key:{title:"Sidebar shortcut
1055
793
  },search_key:{title:"Search Everything shortcut",get:input.preferences.selectedSearchKey,set:input.preferences.setSearchKey
1056
794
  }}
1057
795
  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))
796
+ input.dialogs.prompt({title:binding.title,description:()=>(()=>{var _el$3=_$createElement8("text")
797
+ _$insertNode6(_el$3,_$createTextNode6(`Use OpenCode key syntax, for example alt+s.`))
798
+ _$effect7((_$p)=>_$setProp7(_el$3,"fg",input.api.theme.current.textMuted,_$p))
1061
799
  return _el$3
1062
800
  })(),value:binding.get(),onConfirm(key){binding.set(key)
1063
801
  input.dialogs.back()
@@ -1165,14 +903,14 @@ import(path).then((module)=>{if(dialogClosed())
1165
903
  return
1166
904
  const{TrustedSkillsDialog
1167
905
  }=module
1168
- input.dialogs.open(()=>_$createComponent10(TrustedSkillsDialog,{get api(){return input.api
906
+ input.dialogs.open(()=>_$createComponent8(TrustedSkillsDialog,{get api(){return input.api
1169
907
  },get preferences(){return input.preferences
1170
908
  }}))
1171
909
  }).catch((error)=>input.api.ui.toast({variant:"error",title:"Trusted skills",message:String(error)
1172
910
  }))
1173
911
  break
1174
912
  }
1175
- case "wizard":{input.dialogs.open(()=>_$createComponent10(FirstRunWizard,{get api(){return input.api
913
+ case "wizard":{input.dialogs.open(()=>_$createComponent8(FirstRunWizard,{get api(){return input.api
1176
914
  },get preferences(){return input.preferences
1177
915
  }}))
1178
916
  break
@@ -1185,7 +923,7 @@ import(path).then((module)=>{if(dialogClosed())
1185
923
  return
1186
924
  const{QuickActionsDialog
1187
925
  }=module
1188
- input.dialogs.open(()=>_$createComponent10(QuickActionsDialog,{get api(){return input.api
926
+ input.dialogs.open(()=>_$createComponent8(QuickActionsDialog,{get api(){return input.api
1189
927
  },get preferences(){return input.preferences
1190
928
  }}))
1191
929
  }).catch((error)=>{input.api.ui.toast({variant:"error",title:"Quick actions",message:String(error),duration:4000
@@ -1200,7 +938,7 @@ import(path).then((module)=>{if(dialogClosed())
1200
938
  return
1201
939
  const{McpGroupsDialog
1202
940
  }=module
1203
- input.dialogs.open(()=>_$createComponent10(McpGroupsDialog,{get api(){return input.api
941
+ input.dialogs.open(()=>_$createComponent8(McpGroupsDialog,{get api(){return input.api
1204
942
  },get preferences(){return input.preferences
1205
943
  },get mcp(){return input.mcp
1206
944
  }}))
@@ -1216,7 +954,7 @@ import(path).then((module)=>{if(dialogClosed())
1216
954
  return
1217
955
  const{SkillGroupsDialog
1218
956
  }=module
1219
- input.dialogs.open(()=>_$createComponent10(SkillGroupsDialog,{get api(){return input.api
957
+ input.dialogs.open(()=>_$createComponent8(SkillGroupsDialog,{get api(){return input.api
1220
958
  },get preferences(){return input.preferences
1221
959
  },get skills(){return input.skills
1222
960
  }}))
@@ -1228,8 +966,8 @@ return{openLimitPrompt,openMcpGroups,openSkillGroups,openQuickActions,select
1228
966
  }}
1229
967
  function createSettingsDialogController(props){let body
1230
968
  const theme=()=>props.api.theme.current
1231
- const icons=useIcons5()
1232
- const dialogs=useDialogs5(props.api)
969
+ const icons=useIcons2()
970
+ const dialogs=useDialogs4(props.api)
1233
971
  const [report,setReport]=useDialogState4("bug-report",undefined)
1234
972
  const scroll=useDialogScroll2()
1235
973
  const dimensions=useTerminalDimensions4()
@@ -1305,27 +1043,27 @@ controller=createBugReportController({navigatorVersion:service.navigatorVersion,
1305
1043
  setReport(controller)
1306
1044
  }
1307
1045
  const selected=controller
1308
- dialogs.open(()=>_$createComponent11(BugReportDialog,{get api(){return props.api
1046
+ dialogs.open(()=>_$createComponent9(BugReportDialog,{get api(){return props.api
1309
1047
  },controller:selected
1310
1048
  }))
1311
1049
  }})
1312
1050
  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
1051
  })
1314
- onCleanup7(unregister)
1052
+ onCleanup6(unregister)
1315
1053
  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
1054
  scroll.ref(node)
1317
1055
  },restoreScroll:scroll.restore,saveScroll:scroll.save,theme
1318
1056
  }}
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"
1057
+ import {effect as _$effect8} from "@opentui/solid"
1058
+ import {createComponent as _$createComponent10} from "@opentui/solid"
1059
+ import {insert as _$insert6} from "@opentui/solid"
1060
+ import {createTextNode as _$createTextNode7} from "@opentui/solid"
1061
+ import {insertNode as _$insertNode7} from "@opentui/solid"
1062
+ import {memo as _$memo2} from "@opentui/solid"
1063
+ import {setProp as _$setProp8} from "@opentui/solid"
1064
+ import {createElement as _$createElement9} from "@opentui/solid"
1065
+ import {TextAttributes} from "@opentui/core"
1066
+ import {Show as Show3} from "solid-js"
1329
1067
  import {getNavigatorAboutServices as getNavigatorAboutServices4} from "./tui.js"
1330
1068
  function AboutVersionStatus(props){const service=()=>getNavigatorAboutServices4(props.api)
1331
1069
  const status=()=>{const state=service()?.checkState()
@@ -1341,150 +1079,150 @@ case "error":{return "Could not check updates. Check again to retry."
1341
1079
  }
1342
1080
  case "idle":{return "Updates have not been checked yet."
1343
1081
  }}}
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())
1082
+ 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")
1083
+ _$insertNode7(_el$,_el$2)
1084
+ _$insertNode7(_el$,_el$4)
1085
+ _$insertNode7(_el$,_el$6)
1086
+ _$insertNode7(_el$,_el$7)
1087
+ _$setProp8(_el$,"width","100%")
1088
+ _$setProp8(_el$,"minWidth",0)
1089
+ _$setProp8(_el$,"gap",0)
1090
+ _$insertNode7(_el$2,_el$3)
1091
+ _$setProp8(_el$2,"height",1)
1092
+ _$setProp8(_el$2,"truncate",true)
1093
+ _$setProp8(_el$2,"wrapMode","none")
1094
+ _$insert6(_el$2,()=>service()?.navigatorVersion??"version unavailable",null)
1095
+ _$insertNode7(_el$4,_el$5)
1096
+ _$setProp8(_el$4,"height",1)
1097
+ _$setProp8(_el$4,"truncate",true)
1098
+ _$setProp8(_el$4,"wrapMode","none")
1099
+ _$insert6(_el$4,()=>service()?.openCodeVersion??props.api.app?.version??"version unavailable",null)
1100
+ _$setProp8(_el$6,"height",1)
1101
+ _$setProp8(_el$6,"truncate",true)
1102
+ _$setProp8(_el$6,"wrapMode","none")
1103
+ _$insert6(_el$6,(()=>{var _c$=_$memo2(()=>!!service()?.updating())
1366
1104
  return()=>_c$()?"Installing Navigator. Restart OpenCode after completion.":status()
1367
1105
  })())
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)
1106
+ _$setProp8(_el$7,"height",1)
1107
+ _$setProp8(_el$7,"truncate",true)
1108
+ _$setProp8(_el$7,"wrapMode","none")
1109
+ _$insert6(_el$7,(()=>{var _c$2=_$memo2(()=>!!service()?.checkState().checkedAt)
1372
1110
  return()=>_c$2()?`Last check: ${new Date(service().checkState().checkedAt).toLocaleTimeString()}`:"Check manually when needed."
1373
1111
  })())
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))
1112
+ _$insert6(_el$,_$createComponent10(Show3,{get when(){return service()?.installed?.()
1113
+ },children:(version)=>(()=>{var _el$8=_$createElement9("text"),_el$9=_$createTextNode7(`Restart OpenCode to use Navigator `),_el$0=_$createTextNode7(`.`)
1114
+ _$insertNode7(_el$8,_el$9)
1115
+ _$insertNode7(_el$8,_el$0)
1116
+ _$setProp8(_el$8,"height",1)
1117
+ _$setProp8(_el$8,"truncate",true)
1118
+ _$setProp8(_el$8,"wrapMode","none")
1119
+ _$insert6(_el$8,version,_el$0)
1120
+ _$effect8((_$p)=>_$setProp8(_el$8,"fg",props.api.theme.current.textMuted,_$p))
1383
1121
  return _el$8
1384
1122
  })()
1385
1123
  }),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))
1124
+ _$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
1125
+ _v$!==_p$.e&&(_p$.e=_$setProp8(_el$2,"attributes",_v$,_p$.e))
1126
+ _v$2!==_p$.t&&(_p$.t=_$setProp8(_el$2,"fg",_v$2,_p$.t))
1127
+ _v$3!==_p$.a&&(_p$.a=_$setProp8(_el$4,"fg",_v$3,_p$.a))
1128
+ _v$4!==_p$.o&&(_p$.o=_$setProp8(_el$6,"fg",_v$4,_p$.o))
1129
+ _v$5!==_p$.i&&(_p$.i=_$setProp8(_el$7,"fg",_v$5,_p$.i))
1392
1130
  return _p$
1393
1131
  },{e:undefined,t:undefined,a:undefined,o:undefined,i:undefined
1394
1132
  })
1395
1133
  return _el$
1396
1134
  })()
1397
1135
  }
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"
1136
+ import {createComponent as _$createComponent11} from "@opentui/solid"
1137
+ import {createTextNode as _$createTextNode8} from "@opentui/solid"
1138
+ import {insertNode as _$insertNode8} from "@opentui/solid"
1139
+ import {effect as _$effect9} from "@opentui/solid"
1140
+ import {insert as _$insert7} from "@opentui/solid"
1141
+ import {setProp as _$setProp9} from "@opentui/solid"
1142
+ import {createElement as _$createElement10} from "@opentui/solid"
1143
+ import {memo as _$memo3} from "@opentui/solid"
1144
+ import {TextAttributes as TextAttributes2} from "@opentui/core"
1145
+ import {Show as Show4} from "solid-js"
1146
+ import {SelectionBox} from "./tui.js"
1409
1147
  function SettingsOptionRow(props){const model=props.controller
1410
1148
  const index=()=>model.options().findIndex((candidate)=>candidate.value===props.option.value)
1411
1149
  const selected=()=>model.active()===index()
1412
1150
  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
1151
+ return _$createComponent11(SelectionBox,{get id(){return model.optionId(props.option.value)
1152
+ },flexDirection:"row",gap:2,paddingLeft:1,paddingRight:1,get backgroundColor(){return _$memo3(()=>!!selected())()?model.theme().backgroundElement:undefined
1415
1153
  },onMouseOver:()=>model.setActive(index()),onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
1416
1154
  if(!props.option.disabled)
1417
1155
  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))
1156
+ },get children(){return [(()=>{var _el$=_$createElement10("text")
1157
+ _$setProp9(_el$,"flexShrink",0)
1158
+ _$insert7(_el$,()=>props.option.title)
1159
+ _$effect9((_p$)=>{var _v$=selected()?TextAttributes2.BOLD:undefined,_v$2=props.option.disabled?model.theme().textMuted:model.theme().text
1160
+ _v$!==_p$.e&&(_p$.e=_$setProp9(_el$,"attributes",_v$,_p$.e))
1161
+ _v$2!==_p$.t&&(_p$.t=_$setProp9(_el$,"fg",_v$2,_p$.t))
1424
1162
  return _p$
1425
1163
  },{e:undefined,t:undefined
1426
1164
  })
1427
1165
  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))
1166
+ })(),(()=>{var _el$2=_$createElement10("text")
1167
+ _$setProp9(_el$2,"flexGrow",1)
1168
+ _$setProp9(_el$2,"minWidth",0)
1169
+ _$setProp9(_el$2,"truncate",true)
1170
+ _$setProp9(_el$2,"wrapMode","none")
1171
+ _$insert7(_el$2,()=>props.option.description)
1172
+ _$effect9((_$p)=>_$setProp9(_el$2,"fg",model.theme().borderSubtle,_$p))
1435
1173
  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()
1174
+ })(),_$createComponent11(Show4,{get when(){return SIDEBAR_SECTIONS.includes(section())
1175
+ },get children(){var _el$3=_$createElement10("box"),_el$8=_$createElement10("text"),_el$9=_$createTextNode8(` Items: `),_el$0=_$createElement10("text"),_el$1=_$createElement10("text")
1176
+ _$insertNode8(_el$3,_el$8)
1177
+ _$insertNode8(_el$3,_el$0)
1178
+ _$insertNode8(_el$3,_el$1)
1179
+ _$setProp9(_el$3,"flexDirection","row")
1180
+ _$setProp9(_el$3,"flexShrink",0)
1181
+ _$setProp9(_el$3,"gap",1)
1182
+ _$insert7(_el$3,_$createComponent11(Show4,{get when(){return props.option.value==="quick_actions"
1183
+ },get children(){var _el$4=_$createElement10("text"),_el$5=_$createTextNode8(` Actions`)
1184
+ _$insertNode8(_el$4,_el$5)
1185
+ _$setProp9(_el$4,"onMouseDown",(event)=>event.stopPropagation())
1186
+ _$setProp9(_el$4,"onMouseUp",(event)=>{event.stopPropagation()
1449
1187
  model.openQuickActions()
1450
1188
  })
1451
- _$insert9(_el$4,()=>model.icons.icon("actions"),_el$5)
1452
- _$effect12((_$p)=>_$setProp12(_el$4,"fg",model.theme().accent,_$p))
1189
+ _$insert7(_el$4,()=>model.icons.icon("actions"),_el$5)
1190
+ _$effect9((_$p)=>_$setProp9(_el$4,"fg",model.theme().accent,_$p))
1453
1191
  return _el$4
1454
1192
  }}),_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()
1193
+ _$insert7(_el$3,_$createComponent11(Show4,{get when(){return props.option.value==="mcp"||props.option.value==="skills"
1194
+ },get children(){var _el$6=_$createElement10("text"),_el$7=_$createTextNode8(` Groups`)
1195
+ _$insertNode8(_el$6,_el$7)
1196
+ _$setProp9(_el$6,"onMouseDown",(event)=>event.stopPropagation())
1197
+ _$setProp9(_el$6,"onMouseUp",(event)=>{event.stopPropagation()
1460
1198
  if(props.option.value==="skills")
1461
1199
  model.openSkillGroups()
1462
1200
  else
1463
1201
  model.openMcpGroups()
1464
1202
  })
1465
- _$insert9(_el$6,()=>model.icons.icon("sections"),_el$7)
1466
- _$effect12((_$p)=>_$setProp12(_el$6,"fg",model.theme().accent,_$p))
1203
+ _$insert7(_el$6,()=>model.icons.icon("sections"),_el$7)
1204
+ _$effect9((_$p)=>_$setProp9(_el$6,"fg",model.theme().accent,_$p))
1467
1205
  return _el$6
1468
1206
  }}),_el$8)
1469
- _$insertNode11(_el$8,_el$9)
1470
- _$setProp12(_el$8,"onMouseDown",(event)=>event.stopPropagation())
1471
- _$setProp12(_el$8,"onMouseUp",(event)=>{event.stopPropagation()
1207
+ _$insertNode8(_el$8,_el$9)
1208
+ _$setProp9(_el$8,"onMouseDown",(event)=>event.stopPropagation())
1209
+ _$setProp9(_el$8,"onMouseUp",(event)=>{event.stopPropagation()
1472
1210
  model.openLimitPrompt(section())
1473
1211
  })
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()
1212
+ _$insert7(_el$8,()=>model.icons.icon("todo"),_el$9)
1213
+ _$insert7(_el$8,()=>props.preferences.selectedSectionItemLimit?.(section())||"All",null)
1214
+ _$setProp9(_el$0,"onMouseDown",(event)=>{event.stopPropagation()
1477
1215
  model.reorder(props.option.value,-1)
1478
1216
  })
1479
- _$insert9(_el$0,()=>model.icons.icon("up"))
1480
- _$setProp12(_el$1,"onMouseDown",(event)=>{event.stopPropagation()
1217
+ _$insert7(_el$0,()=>model.icons.icon("up"))
1218
+ _$setProp9(_el$1,"onMouseDown",(event)=>{event.stopPropagation()
1481
1219
  model.reorder(props.option.value,1)
1482
1220
  })
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))
1221
+ _$insert7(_el$1,()=>model.icons.icon("down"))
1222
+ _$effect9((_p$)=>{var _v$3=model.theme().accent,_v$4=model.theme().accent,_v$5=model.theme().accent
1223
+ _v$3!==_p$.e&&(_p$.e=_$setProp9(_el$8,"fg",_v$3,_p$.e))
1224
+ _v$4!==_p$.t&&(_p$.t=_$setProp9(_el$0,"fg",_v$4,_p$.t))
1225
+ _v$5!==_p$.a&&(_p$.a=_$setProp9(_el$1,"fg",_v$5,_p$.a))
1488
1226
  return _p$
1489
1227
  },{e:undefined,t:undefined,a:undefined
1490
1228
  })
@@ -1493,70 +1231,70 @@ return _el$3
1493
1231
  }})
1494
1232
  }
1495
1233
  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()
1234
+ return _$createComponent12(DialogSurface5,{get api(){return props.api
1235
+ },get children(){return [(()=>{var _el$=_$createElement11("box"),_el$2=_$createElement11("text"),_el$3=_$createTextNode9(` Navigator settings`),_el$4=_$createElement11("text")
1236
+ _$insertNode9(_el$,_el$2)
1237
+ _$insertNode9(_el$,_el$4)
1238
+ _$setProp10(_el$,"flexDirection","row")
1239
+ _$setProp10(_el$,"justifyContent","space-between")
1240
+ _$insertNode9(_el$2,_el$3)
1241
+ _$insert8(_el$2,()=>model.icons.icon("settings"),_el$3)
1242
+ _$setProp10(_el$4,"onMouseDown",(event)=>event.stopPropagation())
1243
+ _$setProp10(_el$4,"onMouseUp",(event)=>{event.stopPropagation()
1506
1244
  model.dialogs.back()
1507
1245
  })
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))
1246
+ _$insert8(_el$4,()=>model.icons.key("esc"))
1247
+ _$effect10((_p$)=>{var _v$=TextAttributes3.BOLD,_v$2=model.theme().text,_v$3=model.theme().textMuted
1248
+ _v$!==_p$.e&&(_p$.e=_$setProp10(_el$2,"attributes",_v$,_p$.e))
1249
+ _v$2!==_p$.t&&(_p$.t=_$setProp10(_el$2,"fg",_v$2,_p$.t))
1250
+ _v$3!==_p$.a&&(_p$.a=_$setProp10(_el$4,"fg",_v$3,_p$.a))
1513
1251
  return _p$
1514
1252
  },{e:undefined,t:undefined,a:undefined
1515
1253
  })
1516
1254
  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))
1255
+ })(),(()=>{var _el$5=_$createElement11("text")
1256
+ _$insert8(_el$5,()=>model.activeGroup()==="about"?"Version, updates, release history, and support.":"Adjust sections and behavior. Changes apply immediately.")
1257
+ _$effect10((_$p)=>_$setProp10(_el$5,"fg",model.theme().textMuted,_$p))
1520
1258
  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
1259
+ })(),(()=>{var _el$6=_$createElement11("box")
1260
+ _$setProp10(_el$6,"flexDirection","row")
1261
+ _$setProp10(_el$6,"flexWrap","wrap")
1262
+ _$setProp10(_el$6,"columnGap",1)
1263
+ _$setProp10(_el$6,"rowGap",0)
1264
+ _$insert8(_el$6,_$createComponent12(For3,{get each(){return model.orderedGroups().map((group)=>group.id)
1265
+ },children:(id)=>_$createComponent12(Tab,{get api(){return props.api
1528
1266
  },get selected(){return model.activeGroup()===id
1529
1267
  },paddingLeft:1,paddingRight:1,onMouseDown:()=>{model.setActiveGroup(id)
1530
1268
  model.setActive(0)
1531
- },get children(){return [_$memo6(()=>model.icons.tab(id))," ",_$memo6(()=>model.orderedGroups().find((group)=>group.id===id)?.tab)]
1269
+ },get children(){return [_$memo4(()=>model.icons.tab(id))," ",_$memo4(()=>model.orderedGroups().find((group)=>group.id===id)?.tab)]
1532
1270
  }})
1533
1271
  }))
1534
1272
  return _el$6
1535
- })(),(()=>{var _el$7=_$createElement13("scrollbox"),_el$8=_$createElement13("box")
1536
- _$insertNode12(_el$7,_el$8)
1273
+ })(),(()=>{var _el$7=_$createElement11("scrollbox"),_el$8=_$createElement11("box")
1274
+ _$insertNode9(_el$7,_el$8)
1537
1275
  var _ref$=model.setBody
1538
1276
  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
1277
+ _$setProp10(_el$7,"id",`${PLUGIN_ID}.settings.body`)
1278
+ _$setProp10(_el$7,"scrollX",false)
1279
+ _$setProp10(_el$7,"verticalScrollbarOptions",{visible:true
1542
1280
  })
1543
- _$setProp13(_el$7,"horizontalScrollbarOptions",{visible:false
1281
+ _$setProp10(_el$7,"horizontalScrollbarOptions",{visible:false
1544
1282
  })
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
1283
+ _$setProp10(_el$8,"gap",1)
1284
+ _$insert8(_el$8,_$createComponent12(Show5,{get when(){return model.activeGroup()==="about"
1285
+ },get children(){return _$createComponent12(AboutVersionStatus,{get api(){return props.api
1548
1286
  }})
1549
1287
  }}),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
1288
+ _$insert8(_el$8,_$createComponent12(For3,{get each(){return model.options().map((option)=>option.value)
1289
+ },children:(value)=>_$createComponent12(SettingsOptionRow,{get preferences(){return props.preferences
1552
1290
  },controller:model,get option(){return model.options().find((option)=>option.value===value)
1553
1291
  }})
1554
1292
  }),null)
1555
- _$effect13((_$p)=>_$setProp13(_el$7,"height",model.contentHeight(),_$p))
1293
+ _$effect10((_$p)=>_$setProp10(_el$7,"height",model.contentHeight(),_$p))
1556
1294
  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))
1295
+ })(),(()=>{var _el$9=_$createElement11("text")
1296
+ _$insert8(_el$9,()=>model.footerHint())
1297
+ _$effect10((_$p)=>_$setProp10(_el$9,"fg",model.theme().textMuted,_$p))
1560
1298
  return _el$9
1561
1299
  })()]
1562
1300
  }})