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.
- package/CHANGELOG.md +5 -0
- package/HOST_API.md +7 -6
- package/LINT_COVERAGE.md +201 -0
- package/README.md +34 -6
- package/dist/native-todo-setup.js +1156 -0
- package/dist/onboarding.js +379 -0
- package/dist/runtime-dependencies.json +3 -3
- package/dist/sidebar-settings.js +278 -540
- package/dist/tui.js +164 -388
- package/package.json +10 -5
package/dist/sidebar-settings.js
CHANGED
|
@@ -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 _$
|
|
8
|
-
import {memo as _$
|
|
9
|
-
import {effect as _$
|
|
10
|
-
import {createTextNode as _$
|
|
11
|
-
import {insertNode as _$
|
|
12
|
-
import {insert as _$
|
|
13
|
-
import {setProp as _$
|
|
14
|
-
import {createElement as _$
|
|
15
|
-
import {TextAttributes as
|
|
16
|
-
import {For as
|
|
17
|
-
import {DialogSurface as
|
|
18
|
-
import {createComponent as _$
|
|
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
|
|
21
|
-
import {useDialogScroll as useDialogScroll2,useDialogState as useDialogState4,useDialogs as
|
|
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 _$
|
|
571
|
-
import {setProp as _$
|
|
572
|
-
import {effect as _$
|
|
573
|
-
import {createTextNode as _$
|
|
574
|
-
import {insertNode as _$
|
|
575
|
-
import {createElement as _$
|
|
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 {
|
|
577
|
+
import {createComponent as _$createComponent4} from "@opentui/solid"
|
|
611
578
|
import {createElement as _$createElement4} from "@opentui/solid"
|
|
612
|
-
import {
|
|
613
|
-
import {
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
_$
|
|
619
|
-
_$
|
|
620
|
-
|
|
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 {
|
|
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 {
|
|
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 _$
|
|
704
|
-
import {
|
|
705
|
-
import {
|
|
706
|
-
import {
|
|
707
|
-
import {
|
|
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 _$
|
|
867
|
-
import {effect as _$
|
|
868
|
-
import {createTextNode as _$
|
|
869
|
-
import {insertNode as _$
|
|
870
|
-
import {createElement as _$
|
|
871
|
-
import {createComponent as _$
|
|
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
|
|
874
|
-
import {DialogHeader as DialogHeader3,DialogSurface as
|
|
875
|
-
function ChangelogVersionDialog(props){const dialogs=
|
|
876
|
-
const icons=
|
|
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
|
-
|
|
886
|
-
return _$
|
|
887
|
-
},lift:true,get children(){return [_$
|
|
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$=_$
|
|
891
|
-
_$
|
|
892
|
-
_$
|
|
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=_$
|
|
895
|
-
_$
|
|
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
|
-
_$
|
|
900
|
-
_$
|
|
901
|
-
_$
|
|
902
|
-
_$
|
|
903
|
-
_$
|
|
904
|
-
},get fallback(){return(()=>{var _el$8=_$
|
|
905
|
-
_$
|
|
906
|
-
_$
|
|
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 _$
|
|
910
|
-
},children:(change)=>(()=>{var _el$0=_$
|
|
911
|
-
_$
|
|
912
|
-
_$
|
|
913
|
-
_$
|
|
914
|
-
_$
|
|
915
|
-
_$
|
|
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
|
-
_$
|
|
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=_$
|
|
923
|
-
_$
|
|
924
|
-
_$
|
|
925
|
-
_$
|
|
926
|
-
_$
|
|
927
|
-
_$
|
|
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=
|
|
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
|
-
|
|
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
|
-
|
|
953
|
-
return _$
|
|
954
|
-
},get fallback(){return _$
|
|
955
|
-
},lift:true,get children(){return [_$
|
|
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$=_$
|
|
958
|
-
_$
|
|
959
|
-
_$
|
|
960
|
-
_$
|
|
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
|
-
})(),_$
|
|
963
|
-
},get children(){return _$
|
|
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)=>_$
|
|
969
|
-
},get fallback(){return _$
|
|
970
|
-
},lift:true,get children(){return [_$
|
|
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=_$
|
|
973
|
-
_$
|
|
974
|
-
_$
|
|
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 _$
|
|
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(()=>_$
|
|
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(()=>_$
|
|
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 _$
|
|
1010
|
-
import {effect as _$
|
|
1011
|
-
import {createTextNode as _$
|
|
1012
|
-
import {insertNode as _$
|
|
1013
|
-
import {createElement as _$
|
|
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$=_$
|
|
1016
|
-
_$
|
|
1017
|
-
_$
|
|
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$=_$
|
|
1044
|
-
_$
|
|
1045
|
-
_$
|
|
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=_$
|
|
1059
|
-
_$
|
|
1060
|
-
_$
|
|
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(()=>_$
|
|
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(()=>_$
|
|
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(()=>_$
|
|
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(()=>_$
|
|
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(()=>_$
|
|
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=
|
|
1232
|
-
const dialogs=
|
|
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(()=>_$
|
|
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
|
-
|
|
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 _$
|
|
1320
|
-
import {createComponent as _$
|
|
1321
|
-
import {insert as _$
|
|
1322
|
-
import {createTextNode as _$
|
|
1323
|
-
import {insertNode as _$
|
|
1324
|
-
import {memo as _$
|
|
1325
|
-
import {setProp as _$
|
|
1326
|
-
import {createElement as _$
|
|
1327
|
-
import {TextAttributes
|
|
1328
|
-
import {Show as
|
|
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$=_$
|
|
1345
|
-
_$
|
|
1346
|
-
_$
|
|
1347
|
-
_$
|
|
1348
|
-
_$
|
|
1349
|
-
_$
|
|
1350
|
-
_$
|
|
1351
|
-
_$
|
|
1352
|
-
_$
|
|
1353
|
-
_$
|
|
1354
|
-
_$
|
|
1355
|
-
_$
|
|
1356
|
-
_$
|
|
1357
|
-
_$
|
|
1358
|
-
_$
|
|
1359
|
-
_$
|
|
1360
|
-
_$
|
|
1361
|
-
_$
|
|
1362
|
-
_$
|
|
1363
|
-
_$
|
|
1364
|
-
_$
|
|
1365
|
-
_$
|
|
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
|
-
_$
|
|
1369
|
-
_$
|
|
1370
|
-
_$
|
|
1371
|
-
_$
|
|
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
|
-
_$
|
|
1375
|
-
},children:(version)=>(()=>{var _el$8=_$
|
|
1376
|
-
_$
|
|
1377
|
-
_$
|
|
1378
|
-
_$
|
|
1379
|
-
_$
|
|
1380
|
-
_$
|
|
1381
|
-
_$
|
|
1382
|
-
_$
|
|
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
|
-
_$
|
|
1387
|
-
_v$!==_p$.e&&(_p$.e=_$
|
|
1388
|
-
_v$2!==_p$.t&&(_p$.t=_$
|
|
1389
|
-
_v$3!==_p$.a&&(_p$.a=_$
|
|
1390
|
-
_v$4!==_p$.o&&(_p$.o=_$
|
|
1391
|
-
_v$5!==_p$.i&&(_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 _$
|
|
1399
|
-
import {createTextNode as _$
|
|
1400
|
-
import {insertNode as _$
|
|
1401
|
-
import {effect as _$
|
|
1402
|
-
import {insert as _$
|
|
1403
|
-
import {setProp as _$
|
|
1404
|
-
import {createElement as _$
|
|
1405
|
-
import {memo as _$
|
|
1406
|
-
import {TextAttributes as
|
|
1407
|
-
import {Show as
|
|
1408
|
-
import {SelectionBox
|
|
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 _$
|
|
1414
|
-
},flexDirection:"row",gap:2,paddingLeft:1,paddingRight:1,get backgroundColor(){return _$
|
|
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$=_$
|
|
1419
|
-
_$
|
|
1420
|
-
_$
|
|
1421
|
-
_$
|
|
1422
|
-
_v$!==_p$.e&&(_p$.e=_$
|
|
1423
|
-
_v$2!==_p$.t&&(_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=_$
|
|
1429
|
-
_$
|
|
1430
|
-
_$
|
|
1431
|
-
_$
|
|
1432
|
-
_$
|
|
1433
|
-
_$
|
|
1434
|
-
_$
|
|
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
|
-
})(),_$
|
|
1437
|
-
},get children(){var _el$3=_$
|
|
1438
|
-
_$
|
|
1439
|
-
_$
|
|
1440
|
-
_$
|
|
1441
|
-
_$
|
|
1442
|
-
_$
|
|
1443
|
-
_$
|
|
1444
|
-
_$
|
|
1445
|
-
},get children(){var _el$4=_$
|
|
1446
|
-
_$
|
|
1447
|
-
_$
|
|
1448
|
-
_$
|
|
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
|
-
_$
|
|
1452
|
-
_$
|
|
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
|
-
_$
|
|
1456
|
-
},get children(){var _el$6=_$
|
|
1457
|
-
_$
|
|
1458
|
-
_$
|
|
1459
|
-
_$
|
|
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
|
-
_$
|
|
1466
|
-
_$
|
|
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
|
-
_$
|
|
1470
|
-
_$
|
|
1471
|
-
_$
|
|
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
|
-
_$
|
|
1475
|
-
_$
|
|
1476
|
-
_$
|
|
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
|
-
_$
|
|
1480
|
-
_$
|
|
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
|
-
_$
|
|
1484
|
-
_$
|
|
1485
|
-
_v$3!==_p$.e&&(_p$.e=_$
|
|
1486
|
-
_v$4!==_p$.t&&(_p$.t=_$
|
|
1487
|
-
_v$5!==_p$.a&&(_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 _$
|
|
1497
|
-
},get children(){return [(()=>{var _el$=_$
|
|
1498
|
-
_$
|
|
1499
|
-
_$
|
|
1500
|
-
_$
|
|
1501
|
-
_$
|
|
1502
|
-
_$
|
|
1503
|
-
_$
|
|
1504
|
-
_$
|
|
1505
|
-
_$
|
|
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
|
-
_$
|
|
1509
|
-
_$
|
|
1510
|
-
_v$!==_p$.e&&(_p$.e=_$
|
|
1511
|
-
_v$2!==_p$.t&&(_p$.t=_$
|
|
1512
|
-
_v$3!==_p$.a&&(_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=_$
|
|
1518
|
-
_$
|
|
1519
|
-
_$
|
|
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=_$
|
|
1522
|
-
_$
|
|
1523
|
-
_$
|
|
1524
|
-
_$
|
|
1525
|
-
_$
|
|
1526
|
-
_$
|
|
1527
|
-
},children:(id)=>_$
|
|
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 [_$
|
|
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=_$
|
|
1536
|
-
_$
|
|
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
|
-
_$
|
|
1540
|
-
_$
|
|
1541
|
-
_$
|
|
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
|
-
_$
|
|
1281
|
+
_$setProp10(_el$7,"horizontalScrollbarOptions",{visible:false
|
|
1544
1282
|
})
|
|
1545
|
-
_$
|
|
1546
|
-
_$
|
|
1547
|
-
},get children(){return _$
|
|
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
|
-
_$
|
|
1551
|
-
},children:(value)=>_$
|
|
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
|
-
_$
|
|
1293
|
+
_$effect10((_$p)=>_$setProp10(_el$7,"height",model.contentHeight(),_$p))
|
|
1556
1294
|
return _el$7
|
|
1557
|
-
})(),(()=>{var _el$9=_$
|
|
1558
|
-
_$
|
|
1559
|
-
_$
|
|
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
|
}})
|