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.
@@ -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
- if (!hasDirectoryRoute()) {
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
- <nav
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
- "hidden xl:block": true,
1931
- "relative shrink-0": true,
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
- onMouseEnter={() => {
1938
- if (navLeave.current === undefined) return
1939
- clearTimeout(navLeave.current)
1940
- navLeave.current = undefined
1920
+ onClick={(e) => {
1921
+ if (e.target === e.currentTarget) layout.mobileSidebar.hide()
1941
1922
  }}
1942
- onMouseLeave={() => {
1943
- aim.reset()
1944
- if (!sidebarHovering()) return
1945
-
1946
- if (navLeave.current !== undefined) clearTimeout(navLeave.current)
1947
- navLeave.current = window.setTimeout(() => {
1948
- navLeave.current = undefined
1949
- setHoverProject(undefined)
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
- <div class="@container w-full h-full contain-strict">
1955
- <SidebarContent
1956
- opened={() => layout.sidebar.opened()}
1957
- aimMove={aim.move}
1958
- projects={() => layout.projects.list()}
1959
- renderProject={(project) => (
1960
- <SortableProject ctx={projectSidebarCtx} project={project} sortNow={sortNow} />
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
- </Show>
1990
- <Show when={layout.sidebar.opened()}>
1991
- <ResizeHandle
1992
- direction="horizontal"
1993
- size={layout.sidebar.width()}
1994
- min={244}
1995
- max={typeof window === "undefined" ? 1000 : window.innerWidth * 0.3 + 64}
1996
- collapseThreshold={244}
1997
- onResize={layout.sidebar.resize}
1998
- onCollapse={layout.sidebar.close}
1999
- />
2000
- </Show>
2001
- </nav>
2002
- <div class="xl:hidden">
2003
- <div
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
- <nav
2014
- aria-label={language.t("sidebar.nav.projectsAndSessions")}
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
  >