diff --git a/packages/web/components/elements/LogoBox.tsx b/packages/web/components/elements/LogoBox.tsx
index 276941f07..1105263bc 100644
--- a/packages/web/components/elements/LogoBox.tsx
+++ b/packages/web/components/elements/LogoBox.tsx
@@ -1,4 +1,4 @@
-import { LIBRARY_LEFT_MENU_WIDTH } from '../templates/homeFeed/LibraryFilterMenu'
+import { LIBRARY_LEFT_MENU_WIDTH } from '../templates/navMenu/LibraryMenu'
import { theme } from '../tokens/stitches.config'
import { OmnivoreFullLogo } from './images/OmnivoreFullLogo'
import { OmnivoreNameLogo } from './images/OmnivoreNameLogo'
diff --git a/packages/web/components/elements/StyledText.tsx b/packages/web/components/elements/StyledText.tsx
index 0a47e4747..c9460941e 100644
--- a/packages/web/components/elements/StyledText.tsx
+++ b/packages/web/components/elements/StyledText.tsx
@@ -192,6 +192,8 @@ const textVariants = {
fontSize: '12px',
lineHeight: '20px',
color: '$thTextSubtle2',
+ marginBlockStart: '0',
+ marginTop: '10px',
},
error: {
color: '$error',
diff --git a/packages/web/components/patterns/LibraryCards/LibraryListCard.tsx b/packages/web/components/patterns/LibraryCards/LibraryListCard.tsx
index 524c76848..b930e9c68 100644
--- a/packages/web/components/patterns/LibraryCards/LibraryListCard.tsx
+++ b/packages/web/components/patterns/LibraryCards/LibraryListCard.tsx
@@ -14,7 +14,7 @@ import {
FLAIR_ICON_NAMES,
} from './LibraryCardStyles'
import { sortedLabels } from '../../../lib/labelsSort'
-import { LIBRARY_LEFT_MENU_WIDTH } from '../../templates/homeFeed/LibraryFilterMenu'
+import { LIBRARY_LEFT_MENU_WIDTH } from '../../templates/navMenu/LibraryMenu'
import { LibraryHoverActions } from './LibraryHoverActions'
import {
useHover,
diff --git a/packages/web/components/templates/SettingsLayout.tsx b/packages/web/components/templates/SettingsLayout.tsx
index a7df5dedd..dd734e772 100644
--- a/packages/web/components/templates/SettingsLayout.tsx
+++ b/packages/web/components/templates/SettingsLayout.tsx
@@ -11,7 +11,7 @@ import { KeyboardShortcutListModal } from './KeyboardShortcutListModal'
import { PageMetaData } from '../patterns/PageMetaData'
import { DEFAULT_HEADER_HEIGHT } from './homeFeed/HeaderSpacer'
import { logout } from '../../lib/logout'
-import { SettingsMenu } from './SettingsMenu'
+import { SettingsMenu } from './navMenu/SettingsMenu'
type SettingsLayoutProps = {
title?: string
diff --git a/packages/web/components/templates/SettingsMenu.tsx b/packages/web/components/templates/SettingsMenu.tsx
deleted file mode 100644
index 72ee1f099..000000000
--- a/packages/web/components/templates/SettingsMenu.tsx
+++ /dev/null
@@ -1,257 +0,0 @@
-import { useMemo } from 'react'
-import { Box, HStack, SpanBox, VStack } from '../elements/LayoutPrimitives'
-import { LIBRARY_LEFT_MENU_WIDTH } from './homeFeed/LibraryFilterMenu'
-import { LogoBox } from '../elements/LogoBox'
-import Link from 'next/link'
-import { styled, theme } from '../tokens/stitches.config'
-import { Button } from '../elements/Button'
-import { ArrowSquareUpRight } from 'phosphor-react'
-import { useRouter } from 'next/router'
-import { NavMenuFooter } from './navMenu/Footer'
-
-const HorizontalDivider = styled(SpanBox, {
- width: '100%',
- height: '1px',
- my: '25px',
- background: `${theme.colors.grayLine.toString()}`,
-})
-
-const StyledLink = styled(SpanBox, {
- pl: '25px',
- ml: '10px',
- mb: '10px',
- display: 'flex',
- alignItems: 'center',
- gap: '2px',
- '&:hover': {
- textDecoration: 'underline',
- },
-
- width: 'calc(100% - 10px)',
- maxWidth: '100%',
- height: '32px',
-
- fontSize: '14px',
- fontWeight: 'regular',
- fontFamily: '$display',
- color: '$thLibraryMenuUnselected',
- verticalAlign: 'middle',
- borderRadius: '3px',
- cursor: 'pointer',
- overflow: 'hidden',
- textOverflow: 'ellipsis',
- whiteSpace: 'nowrap',
-})
-
-type ExternalLinkProps = {
- title: string
- destination: string
-}
-
-function ExternalLink(props: ExternalLinkProps): JSX.Element {
- return (
- a': {
- backgroundColor: 'transparent',
- textDecoration: 'none',
- },
- }}
- title={props.title}
- >
-
-
- {props.title}
-
-
-
-
- )
-}
-
-export function SettingsMenu(): JSX.Element {
- const section1 = [
- { name: 'Account', destination: '/settings/account' },
- { name: 'API Keys', destination: '/settings/api' },
- { name: 'Emails', destination: '/settings/emails' },
- { name: 'Feeds', destination: '/settings/feeds' },
- { name: 'Subscriptions', destination: '/settings/subscriptions' },
- { name: 'Labels', destination: '/settings/labels' },
- { name: 'Saved Searches', destination: '/settings/saved-searches' },
- { name: 'Pinned Searches', destination: '/settings/pinned-searches' },
- ]
-
- const section2 = [
- { name: 'Integrations', destination: '/settings/integrations' },
- { name: 'Install', destination: '/settings/installation' },
- ]
- return (
- <>
-
-
-
-
-
-
- {section1.map((item) => {
- return
- })}
-
- {section2.map((item) => {
- return
- })}
-
-
-
-
-
-
-
-
-
- {/* This spacer pushes library content to the right of
- the fixed left side menu. */}
-
- >
- )
-}
-
-type SettingsButtonProps = {
- name: string
- destination: string
-}
-
-function SettingsButton(props: SettingsButtonProps): JSX.Element {
- const router = useRouter()
- const selected = useMemo(() => {
- if (router && router.isReady) {
- return router.asPath.endsWith(props.destination)
- }
- return false
- }, [props, router])
-
- return (
-
-
- {props.name}
-
-
- )
-}
diff --git a/packages/web/components/templates/article/ReaderSettingsControl.tsx b/packages/web/components/templates/article/ReaderSettingsControl.tsx
index 3c0c0665f..673ef4624 100644
--- a/packages/web/components/templates/article/ReaderSettingsControl.tsx
+++ b/packages/web/components/templates/article/ReaderSettingsControl.tsx
@@ -17,6 +17,7 @@ import { currentThemeName, updateTheme } from '../../../lib/themeUpdater'
import { LineHeightIncreaseIcon } from '../../elements/images/LineHeightIncreaseIconProps'
import { LineHeightDecreaseIcon } from '../../elements/images/LineHeightDecreaseIcon'
import * as Switch from '@radix-ui/react-switch'
+import { Checkbox } from '@radix-ui/react-checkbox'
type ReaderSettingsProps = {
readerSettings: ReaderSettings
@@ -575,7 +576,34 @@ function ThemeSelector(): JSX.Element {
height: '100%',
}}
>
- Themes
+
+ Themes
+
+
+
+
+
+
(null)
- const [labelsTarget, setLabelsTarget] = useState(
- undefined
- )
+ const [labelsTarget, setLabelsTarget] =
+ useState(undefined)
- const [notebookTarget, setNotebookTarget] = useState(
- undefined
- )
+ const [notebookTarget, setNotebookTarget] =
+ useState(undefined)
const [showAddLinkModal, setShowAddLinkModal] = useState(false)
const [showEditTitleModal, setShowEditTitleModal] = useState(false)
diff --git a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx
deleted file mode 100644
index 5cfa16319..000000000
--- a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx
+++ /dev/null
@@ -1,613 +0,0 @@
-import { ReactNode, useEffect, useMemo, useRef } from 'react'
-import { StyledText } from '../../elements/StyledText'
-import { Box, HStack, SpanBox, VStack } from '../../elements/LayoutPrimitives'
-import { Button } from '../../elements/Button'
-import { Circle } from 'phosphor-react'
-import {
- Subscription,
- SubscriptionType,
- useGetSubscriptionsQuery,
-} from '../../../lib/networking/queries/useGetSubscriptionsQuery'
-import { useGetLabelsQuery } from '../../../lib/networking/queries/useGetLabelsQuery'
-import { Label } from '../../../lib/networking/fragments/labelFragment'
-import { theme } from '../../tokens/stitches.config'
-import { useRegisterActions } from 'kbar'
-import { LogoBox } from '../../elements/LogoBox'
-import { usePersistedState } from '../../../lib/hooks/usePersistedState'
-import { useGetSavedSearchQuery } from '../../../lib/networking/queries/useGetSavedSearchQuery'
-import { SavedSearch } from '../../../lib/networking/fragments/savedSearchFragment'
-import { ToggleCaretDownIcon } from '../../elements/icons/ToggleCaretDownIcon'
-import Link from 'next/link'
-import { ToggleCaretRightIcon } from '../../elements/icons/ToggleCaretRightIcon'
-import { SplitButton } from '../../elements/SplitButton'
-import { AvatarDropdown } from '../../elements/AvatarDropdown'
-import { PrimaryDropdown } from '../PrimaryDropdown'
-import { NavMenuFooter } from '../navMenu/Footer'
-
-export const LIBRARY_LEFT_MENU_WIDTH = '275px'
-
-type LibraryFilterMenuProps = {
- setShowAddLinkModal: (show: boolean) => void
-
- searchTerm: string | undefined
- applySearchQuery: (searchTerm: string) => void
-
- showFilterMenu: boolean
- setShowFilterMenu: (show: boolean) => void
-}
-
-export function LibraryFilterMenu(props: LibraryFilterMenuProps): JSX.Element {
- const [labels, setLabels] = usePersistedState