ikanban-web 0.2.11 → 0.2.12
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/dist/assets/{ghostty-web-BOsxUEnx.js → ghostty-web-CEQVZrGO.js} +1 -1
- package/dist/assets/{home-DmwjxlRp.js → home-BfGWAM3p.js} +1 -1
- package/dist/assets/{index-Z4u1EVXA.css → index-7dPULZd1.css} +1 -1
- package/dist/assets/{index-CE2ZqGRp.js → index-WJDzUYhg.js} +104 -104
- package/dist/assets/{session-FqpMK7PV.js → session-BDqUCVwy.js} +16 -16
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/src/components/dialog-select-server.test.ts +16 -0
- package/src/components/dialog-select-server.tsx +59 -51
- package/src/components/server-list-item-frame.tsx +15 -0
- package/src/components/titlebar.tsx +0 -30
- package/src/context/global-sync/bootstrap-mode.ts +17 -0
- package/src/context/global-sync/bootstrap.ts +18 -10
- package/src/context/global-sync.test.ts +57 -0
- package/src/context/global-sync.tsx +5 -0
- package/src/i18n/en.ts +13 -13
- package/src/i18n/zh.ts +13 -13
- package/src/pages/layout/sidebar-project.tsx +1 -3
- package/src/pages/layout/sidebar-shell-helpers.ts +1 -1
- package/src/pages/layout/sidebar-shell.test.ts +2 -2
- package/src/pages/layout.tsx +41 -132
package/src/pages/layout.tsx
CHANGED
|
@@ -770,13 +770,6 @@ export default function Layout(props: ParentProps) {
|
|
|
770
770
|
|
|
771
771
|
command.register("layout", () => {
|
|
772
772
|
const commands: CommandOption[] = [
|
|
773
|
-
{
|
|
774
|
-
id: "sidebar.toggle",
|
|
775
|
-
title: language.t("command.sidebar.toggle"),
|
|
776
|
-
category: language.t("command.category.view"),
|
|
777
|
-
keybind: "mod+b",
|
|
778
|
-
onSelect: () => layout.sidebar.toggle(),
|
|
779
|
-
},
|
|
780
773
|
{
|
|
781
774
|
id: "file.open",
|
|
782
775
|
title: language.t("command.file.open"),
|
|
@@ -1471,12 +1464,7 @@ export default function Layout(props: ParentProps) {
|
|
|
1471
1464
|
)
|
|
1472
1465
|
|
|
1473
1466
|
createEffect(() => {
|
|
1474
|
-
|
|
1475
|
-
document.documentElement.style.setProperty("--dialog-left-margin", "0px")
|
|
1476
|
-
return
|
|
1477
|
-
}
|
|
1478
|
-
const sidebarWidth = layout.sidebar.opened() ? layout.sidebar.width() : 48
|
|
1479
|
-
document.documentElement.style.setProperty("--dialog-left-margin", `${sidebarWidth}px`)
|
|
1467
|
+
document.documentElement.style.setProperty("--dialog-left-margin", "0px")
|
|
1480
1468
|
})
|
|
1481
1469
|
|
|
1482
1470
|
const loadedSessionDirs = new Set<string>()
|
|
@@ -1922,137 +1910,58 @@ export default function Layout(props: ParentProps) {
|
|
|
1922
1910
|
</Show>
|
|
1923
1911
|
<div class="flex-1 min-h-0 flex">
|
|
1924
1912
|
<Show when={hasDirectoryRoute()}>
|
|
1925
|
-
|
|
1926
|
-
<
|
|
1927
|
-
aria-label={language.t("sidebar.nav.projectsAndSessions")}
|
|
1928
|
-
data-component="sidebar-nav-desktop"
|
|
1913
|
+
<div class="xl:hidden">
|
|
1914
|
+
<div
|
|
1929
1915
|
classList={{
|
|
1930
|
-
"
|
|
1931
|
-
"
|
|
1932
|
-
|
|
1933
|
-
style={{ width: layout.sidebar.opened() ? `${Math.max(layout.sidebar.width(), 244)}px` : "64px" }}
|
|
1934
|
-
ref={(el) => {
|
|
1935
|
-
setState("nav", el)
|
|
1916
|
+
"fixed inset-x-0 top-10 bottom-0 z-40 transition-opacity duration-200": true,
|
|
1917
|
+
"opacity-100 pointer-events-auto": layout.mobileSidebar.opened(),
|
|
1918
|
+
"opacity-0 pointer-events-none": !layout.mobileSidebar.opened(),
|
|
1936
1919
|
}}
|
|
1937
|
-
|
|
1938
|
-
if (
|
|
1939
|
-
clearTimeout(navLeave.current)
|
|
1940
|
-
navLeave.current = undefined
|
|
1920
|
+
onClick={(e) => {
|
|
1921
|
+
if (e.target === e.currentTarget) layout.mobileSidebar.hide()
|
|
1941
1922
|
}}
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
setState("hoverSession", undefined)
|
|
1951
|
-
}, 300)
|
|
1923
|
+
/>
|
|
1924
|
+
<nav
|
|
1925
|
+
aria-label={language.t("sidebar.nav.projectsAndSessions")}
|
|
1926
|
+
data-component="sidebar-nav-mobile"
|
|
1927
|
+
classList={{
|
|
1928
|
+
"@container fixed top-10 bottom-0 left-0 z-50 w-72 bg-background-base transition-transform duration-200 ease-out": true,
|
|
1929
|
+
"translate-x-0": layout.mobileSidebar.opened(),
|
|
1930
|
+
"-translate-x-full": !layout.mobileSidebar.opened(),
|
|
1952
1931
|
}}
|
|
1932
|
+
onClick={(e) => e.stopPropagation()}
|
|
1953
1933
|
>
|
|
1954
|
-
<
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
)}
|
|
1962
|
-
handleDragStart={handleDragStart}
|
|
1963
|
-
handleDragEnd={handleDragEnd}
|
|
1964
|
-
handleDragOver={handleDragOver}
|
|
1965
|
-
openProjectLabel={language.t("command.project.open")}
|
|
1966
|
-
openProjectKeybind={() => command.keybind("project.open")}
|
|
1967
|
-
onOpenProject={chooseProject}
|
|
1968
|
-
renderProjectOverlay={() => (
|
|
1969
|
-
<ProjectDragOverlay projects={() => layout.projects.list()} activeProject={() => store.activeProject} />
|
|
1970
|
-
)}
|
|
1971
|
-
settingsLabel={() => language.t("sidebar.settings")}
|
|
1972
|
-
settingsKeybind={() => command.keybind("settings.open")}
|
|
1973
|
-
onOpenSettings={openSettings}
|
|
1974
|
-
helpLabel={() => language.t("sidebar.help")}
|
|
1975
|
-
onOpenHelp={() => platform.openLink("https://github.com/isomoes/ikanban/issues")}
|
|
1976
|
-
renderPanel={() => (
|
|
1977
|
-
<Show when={currentProject()} keyed>
|
|
1978
|
-
{(project) => <SidebarPanel project={project} />}
|
|
1979
|
-
</Show>
|
|
1980
|
-
)}
|
|
1981
|
-
/>
|
|
1982
|
-
</div>
|
|
1983
|
-
<Show when={!layout.sidebar.opened() ? hoverProjectData()?.worktree : undefined} keyed>
|
|
1984
|
-
{(worktree) => (
|
|
1985
|
-
<div class="absolute inset-y-0 left-16 z-50 flex" onMouseEnter={aim.reset}>
|
|
1986
|
-
<SidebarPanel project={hoverProjectData()} />
|
|
1987
|
-
</div>
|
|
1934
|
+
<SidebarContent
|
|
1935
|
+
mobile
|
|
1936
|
+
opened={() => false}
|
|
1937
|
+
aimMove={aim.move}
|
|
1938
|
+
projects={() => layout.projects.list()}
|
|
1939
|
+
renderProject={(project) => (
|
|
1940
|
+
<SortableProject ctx={projectSidebarCtx} project={project} sortNow={sortNow} mobile />
|
|
1988
1941
|
)}
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
classList={{
|
|
2005
|
-
"fixed inset-x-0 top-10 bottom-0 z-40 transition-opacity duration-200": true,
|
|
2006
|
-
"opacity-100 pointer-events-auto": layout.mobileSidebar.opened(),
|
|
2007
|
-
"opacity-0 pointer-events-none": !layout.mobileSidebar.opened(),
|
|
2008
|
-
}}
|
|
2009
|
-
onClick={(e) => {
|
|
2010
|
-
if (e.target === e.currentTarget) layout.mobileSidebar.hide()
|
|
2011
|
-
}}
|
|
1942
|
+
handleDragStart={handleDragStart}
|
|
1943
|
+
handleDragEnd={handleDragEnd}
|
|
1944
|
+
handleDragOver={handleDragOver}
|
|
1945
|
+
openProjectLabel={language.t("command.project.open")}
|
|
1946
|
+
openProjectKeybind={() => command.keybind("project.open")}
|
|
1947
|
+
onOpenProject={chooseProject}
|
|
1948
|
+
renderProjectOverlay={() => (
|
|
1949
|
+
<ProjectDragOverlay projects={() => layout.projects.list()} activeProject={() => store.activeProject} />
|
|
1950
|
+
)}
|
|
1951
|
+
settingsLabel={() => language.t("sidebar.settings")}
|
|
1952
|
+
settingsKeybind={() => command.keybind("settings.open")}
|
|
1953
|
+
onOpenSettings={openSettings}
|
|
1954
|
+
helpLabel={() => language.t("sidebar.help")}
|
|
1955
|
+
onOpenHelp={() => platform.openLink("https://github.com/isomoes/ikanban/issues")}
|
|
1956
|
+
renderPanel={() => <SidebarPanel project={currentProject()} mobile />}
|
|
2012
1957
|
/>
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
data-component="sidebar-nav-mobile"
|
|
2016
|
-
classList={{
|
|
2017
|
-
"@container fixed top-10 bottom-0 left-0 z-50 w-72 bg-background-base transition-transform duration-200 ease-out": true,
|
|
2018
|
-
"translate-x-0": layout.mobileSidebar.opened(),
|
|
2019
|
-
"-translate-x-full": !layout.mobileSidebar.opened(),
|
|
2020
|
-
}}
|
|
2021
|
-
onClick={(e) => e.stopPropagation()}
|
|
2022
|
-
>
|
|
2023
|
-
<SidebarContent
|
|
2024
|
-
mobile
|
|
2025
|
-
opened={() => layout.sidebar.opened()}
|
|
2026
|
-
aimMove={aim.move}
|
|
2027
|
-
projects={() => layout.projects.list()}
|
|
2028
|
-
renderProject={(project) => (
|
|
2029
|
-
<SortableProject ctx={projectSidebarCtx} project={project} sortNow={sortNow} mobile />
|
|
2030
|
-
)}
|
|
2031
|
-
handleDragStart={handleDragStart}
|
|
2032
|
-
handleDragEnd={handleDragEnd}
|
|
2033
|
-
handleDragOver={handleDragOver}
|
|
2034
|
-
openProjectLabel={language.t("command.project.open")}
|
|
2035
|
-
openProjectKeybind={() => command.keybind("project.open")}
|
|
2036
|
-
onOpenProject={chooseProject}
|
|
2037
|
-
renderProjectOverlay={() => (
|
|
2038
|
-
<ProjectDragOverlay projects={() => layout.projects.list()} activeProject={() => store.activeProject} />
|
|
2039
|
-
)}
|
|
2040
|
-
settingsLabel={() => language.t("sidebar.settings")}
|
|
2041
|
-
settingsKeybind={() => command.keybind("settings.open")}
|
|
2042
|
-
onOpenSettings={openSettings}
|
|
2043
|
-
helpLabel={() => language.t("sidebar.help")}
|
|
2044
|
-
onOpenHelp={() => platform.openLink("https://github.com/isomoes/ikanban/issues")}
|
|
2045
|
-
renderPanel={() => <SidebarPanel project={currentProject()} mobile />}
|
|
2046
|
-
/>
|
|
2047
|
-
</nav>
|
|
2048
|
-
</div>
|
|
2049
|
-
</>
|
|
1958
|
+
</nav>
|
|
1959
|
+
</div>
|
|
2050
1960
|
</Show>
|
|
2051
1961
|
|
|
2052
1962
|
<main
|
|
2053
1963
|
classList={{
|
|
2054
1964
|
"size-full overflow-x-hidden flex flex-col items-start contain-strict border-t border-border-weak-base": true,
|
|
2055
|
-
"xl:border-l xl:rounded-tl-[12px]": hasDirectoryRoute() && !layout.sidebar.opened(),
|
|
2056
1965
|
"border-t-0": !hasDirectoryRoute(),
|
|
2057
1966
|
}}
|
|
2058
1967
|
>
|