diff --git a/components.json b/components.json index 13e1db0b..4fd0ad52 100644 --- a/components.json +++ b/components.json @@ -17,5 +17,5 @@ "lib": "@/lib", "hooks": "@/hooks" }, - "iconLibrary": "lucide" + "iconLibrary": "phosphor" } diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 8876781c..37a09a5b 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -135,7 +135,7 @@ The note list opportunistically preloads visible and adjacent markdown/text entr | Raw editor | CodeMirror 6 | - | | Styling | Tailwind CSS v4 + CSS variables | 4.1.18 | | UI primitives | Radix UI + shadcn/ui | - | -| Icons | Phosphor Icons + Lucide | - | +| Icons | Phosphor Icons | - | | Build | Vite | 7.3.1 | | Backend language | Rust (edition 2021) | 1.77.2 | | Frontmatter parsing | gray_matter | 0.2 | diff --git a/lara.lock b/lara.lock index 0face1e9..3cdd2a42 100644 --- a/lara.lock +++ b/lara.lock @@ -152,7 +152,7 @@ files: settings.titles.description: b94aeeca78dd376cc19b9aa019e53f6c settings.titles.autoRename: 5383db8e790ebf5f956d9c59cb4c4f67 settings.titles.autoRenameDescription: cc28c28d8817736e658082a2261d9a6e - settings.vaultContent.title: 78b883ce9acb9c25e611158a518d9185 + settings.vaultContent.title: f15c1cae7882448b3fb0404682e17e61 settings.vaultContent.description: a53487bf1c7898a1459dc1510e216f7d settings.dateDisplay.default: 915e8ca934abe6625e17695ee7ae266a settings.dateDisplay.defaultDescription: 502ed7ff7b9c0fe5971e8cb0576e91f6 diff --git a/package.json b/package.json index ae9734fa..ba9ec0c0 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,6 @@ "date-fns": "^4.1.0", "dompurify": "3.4.2", "katex": "^0.16.28", - "lucide-react": "^0.564.0", "mermaid": "^11.14.0", "posthog-js": "^1.363.5", "radix-ui": "^1.4.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2d7b46a9..7c587153 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -146,9 +146,6 @@ importers: katex: specifier: ^0.16.28 version: 0.16.28 - lucide-react: - specifier: ^0.564.0 - version: 0.564.0(react@19.2.4) mermaid: specifier: ^11.14.0 version: 11.14.0 @@ -4561,11 +4558,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@0.564.0: - resolution: {integrity: sha512-JJ8GVTQqFwuliifD48U6+h7DXEHdkhJ/E87kksGByII3qHxtPciVb8T8woQONHBQgHVOl7rSMrrip3SeVNy7Fg==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -10519,10 +10511,6 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.564.0(react@19.2.4): - dependencies: - react: 19.2.4 - lz-string@1.5.0: {} magic-string@0.30.21: diff --git a/src/components/AddPropertyForm.tsx b/src/components/AddPropertyForm.tsx index 677e4d7d..94a9626a 100644 --- a/src/components/AddPropertyForm.tsx +++ b/src/components/AddPropertyForm.tsx @@ -1,10 +1,10 @@ +import { CalendarBlank as CalendarIcon, Check, X } from '@phosphor-icons/react' import { useState } from 'react' import { Button } from '@/components/ui/button' import { Calendar } from '@/components/ui/calendar' import { Input } from '@/components/ui/input' import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' -import { CalendarIcon, Check, X } from 'lucide-react' import { type PropertyDisplayMode, formatDateValue, diff --git a/src/components/AiAgentsOnboardingPrompt.tsx b/src/components/AiAgentsOnboardingPrompt.tsx index 9544d2c5..b550d2b3 100644 --- a/src/components/AiAgentsOnboardingPrompt.tsx +++ b/src/components/AiAgentsOnboardingPrompt.tsx @@ -1,4 +1,4 @@ -import { ArrowUpRight, Bot, CheckCircle2, Cloud, HardDrive, Loader2, Terminal } from 'lucide-react' +import { ArrowUpRight, CheckCircle as CheckCircle2, CircleNotch as Loader2, Cloud, HardDrive, Robot as Bot, Terminal } from '@phosphor-icons/react' import { AI_AGENT_DEFINITIONS, getAiAgentDefinition, diff --git a/src/components/ClaudeCodeOnboardingPrompt.tsx b/src/components/ClaudeCodeOnboardingPrompt.tsx index 83263291..b6de346c 100644 --- a/src/components/ClaudeCodeOnboardingPrompt.tsx +++ b/src/components/ClaudeCodeOnboardingPrompt.tsx @@ -1,4 +1,4 @@ -import { ArrowUpRight, Bot, CheckCircle2, Loader2 } from 'lucide-react' +import { ArrowUpRight, CheckCircle as CheckCircle2, CircleNotch as Loader2, Robot as Bot } from '@phosphor-icons/react' import type { ClaudeCodeStatus } from '../hooks/useClaudeCodeStatus' import { openExternalUrl } from '../utils/url' import { Button } from './ui/button' diff --git a/src/components/ConflictNoteBanner.tsx b/src/components/ConflictNoteBanner.tsx index 171ef11c..85c3b099 100644 --- a/src/components/ConflictNoteBanner.tsx +++ b/src/components/ConflictNoteBanner.tsx @@ -1,4 +1,4 @@ -import { AlertTriangle } from 'lucide-react' +import { Warning as AlertTriangle } from '@phosphor-icons/react' import { translate, type AppLocale } from '../lib/i18n' interface ConflictNoteBannerProps { diff --git a/src/components/ConflictResolverModal.tsx b/src/components/ConflictResolverModal.tsx index d32d0549..950cfb85 100644 --- a/src/components/ConflictResolverModal.tsx +++ b/src/components/ConflictResolverModal.tsx @@ -1,7 +1,7 @@ +import { Check, CircleNotch as Loader2, FileText, Warning as AlertTriangle } from '@phosphor-icons/react' import { useCallback, useEffect, useRef, useState, type KeyboardEvent } from 'react' -import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogDescription } from '@/components/ui/dialog' import { Button } from '@/components/ui/button' -import { AlertTriangle, FileText, Check, Loader2 } from 'lucide-react' +import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog' import type { ConflictFileState } from '../hooks/useConflictResolver' import { cn } from '@/lib/utils' diff --git a/src/components/DeleteProgressNotice.tsx b/src/components/DeleteProgressNotice.tsx index 0202699b..1be7ee11 100644 --- a/src/components/DeleteProgressNotice.tsx +++ b/src/components/DeleteProgressNotice.tsx @@ -1,5 +1,5 @@ +import { CircleNotch as Loader2 } from '@phosphor-icons/react' import { memo } from 'react' -import { Loader2 } from 'lucide-react' import { cn } from '@/lib/utils' interface DeleteProgressNoticeProps { diff --git a/src/components/FeedbackDialog.tsx b/src/components/FeedbackDialog.tsx index 0d8e45d9..8e018afa 100644 --- a/src/components/FeedbackDialog.tsx +++ b/src/components/FeedbackDialog.tsx @@ -1,6 +1,5 @@ +import { ArrowUpRight, Bug, Chats as MessagesSquare, Check, Copy, GitPullRequest, Lightbulb, Megaphone, Newspaper } from '@phosphor-icons/react' import { type ReactNode, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react' -import { Megaphone } from '@phosphor-icons/react' -import { ArrowUpRight, Bug, Check, Copy, GitPullRequest, Lightbulb, MessagesSquare, Newspaper } from 'lucide-react' import { Button } from '@/components/ui/button' import { Card, diff --git a/src/components/GitRequiredModal.tsx b/src/components/GitRequiredModal.tsx index 32ea7ae6..1090d714 100644 --- a/src/components/GitRequiredModal.tsx +++ b/src/components/GitRequiredModal.tsx @@ -1,5 +1,5 @@ +import { GitBranch } from '@phosphor-icons/react' import { useState } from 'react' -import { GitBranch } from 'lucide-react' import { Button } from '@/components/ui/button' import { Dialog, diff --git a/src/components/McpSetupDialog.tsx b/src/components/McpSetupDialog.tsx index 7768e341..c72b7c2a 100644 --- a/src/components/McpSetupDialog.tsx +++ b/src/components/McpSetupDialog.tsx @@ -1,5 +1,5 @@ +import { Copy, ShieldCheck } from '@phosphor-icons/react' import { useEffect } from 'react' -import { Copy, ShieldCheck } from 'lucide-react' import { Button } from '@/components/ui/button' import { Dialog, diff --git a/src/components/MermaidDiagram.tsx b/src/components/MermaidDiagram.tsx index 8dbfdcb2..26380d1a 100644 --- a/src/components/MermaidDiagram.tsx +++ b/src/components/MermaidDiagram.tsx @@ -1,5 +1,5 @@ +import { ArrowsOut as Maximize2 } from '@phosphor-icons/react' import { useEffect, useId, useMemo, useState } from 'react' -import { Maximize2 } from 'lucide-react' import { Button } from '@/components/ui/button' import { Dialog, diff --git a/src/components/PropertyValueCells.tsx b/src/components/PropertyValueCells.tsx index 8d9b8117..5ef65d57 100644 --- a/src/components/PropertyValueCells.tsx +++ b/src/components/PropertyValueCells.tsx @@ -1,17 +1,14 @@ +import { ArrowUpRight, X as XIcon } from '@phosphor-icons/react' import { useState, useCallback, useRef, type ReactNode } from 'react' import { createPortal } from 'react-dom' -import { ArrowUpRight } from '@phosphor-icons/react' -import type { FrontmatterValue } from './Inspector' -import { EditableValue, TagPillList, UrlValue } from './EditableValue' -import { isUrlValue } from '../utils/url' import { Button } from '@/components/ui/button' import { Calendar } from '@/components/ui/calendar' import { Input } from '@/components/ui/input' import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' -import { XIcon } from 'lucide-react' import { trackDatePropertyDirectEntrySaved } from '../lib/productAnalytics' import { translate, type AppLocale } from '../lib/i18n' import { isValidCssColor } from '../utils/colorUtils' +import { isUrlValue } from '../utils/url' import { type PropertyDisplayMode, formatDateValue, @@ -20,6 +17,8 @@ import { DISPLAY_MODE_ICONS, } from '../utils/propertyTypes' import { StatusDropdown } from './StatusDropdown' +import type { FrontmatterValue } from './Inspector' +import { EditableValue, TagPillList, UrlValue } from './EditableValue' import { getStatusStyle } from '../utils/statusStyles' import { TagsDropdown } from './TagsDropdown' import { getTagStyle } from '../utils/tagStyles' diff --git a/src/components/RawEditorFindBar.tsx b/src/components/RawEditorFindBar.tsx index 86c342dc..61bf8028 100644 --- a/src/components/RawEditorFindBar.tsx +++ b/src/components/RawEditorFindBar.tsx @@ -1,5 +1,5 @@ +import { CaretDown as ChevronDown, CaretRight as ChevronRight, CaretUp as ChevronUp, X } from '@phosphor-icons/react' import { useCallback, useEffect, useMemo, useRef, useState } from 'react' -import { ChevronDown, ChevronRight, ChevronUp, X } from 'lucide-react' import { EditorView } from '@codemirror/view' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' diff --git a/src/components/SettingsBodyNav.tsx b/src/components/SettingsBodyNav.tsx index fba23341..b930fe48 100644 --- a/src/components/SettingsBodyNav.tsx +++ b/src/components/SettingsBodyNav.tsx @@ -1,4 +1,5 @@ -import { Bot, Folder, GitBranch, ListChecks, Palette, RefreshCw, ShieldCheck } from 'lucide-react' +import { Article, ArrowsClockwise as RefreshCw, Cube, GitBranch, ListChecks, Palette, Robot as Bot, ShieldCheck, type IconProps } from '@phosphor-icons/react' +import type { ComponentType } from 'react' import type { TranslationKey } from '../lib/i18n' import { Button } from './ui/button' import { SETTINGS_SECTION_IDS } from './settingsSectionIds' @@ -7,13 +8,19 @@ interface SettingsBodyNavProps { t: (key: TranslationKey) => string } +interface SettingsNavItem { + id: string + label: string + Icon: ComponentType +} + export function SettingsBodyNav({ t }: SettingsBodyNavProps) { - const items = [ + const items: SettingsNavItem[] = [ { id: SETTINGS_SECTION_IDS.sync, label: t('settings.sync.title'), Icon: RefreshCw }, - { id: SETTINGS_SECTION_IDS.workspaces, label: t('settings.workspaces.title'), Icon: Folder }, + { id: SETTINGS_SECTION_IDS.workspaces, label: t('settings.workspaces.title'), Icon: Cube }, { id: SETTINGS_SECTION_IDS.autogit, label: t('settings.autogit.title'), Icon: GitBranch }, { id: SETTINGS_SECTION_IDS.appearance, label: t('settings.appearance.title'), Icon: Palette }, - { id: SETTINGS_SECTION_IDS.content, label: t('settings.vaultContent.title'), Icon: Folder }, + { id: SETTINGS_SECTION_IDS.content, label: t('settings.vaultContent.title'), Icon: Article }, { id: SETTINGS_SECTION_IDS.ai, label: t('settings.aiAgents.title'), Icon: Bot }, { id: SETTINGS_SECTION_IDS.workflow, label: t('settings.workflow.title'), Icon: ListChecks }, { id: SETTINGS_SECTION_IDS.privacy, label: t('settings.privacy.title'), Icon: ShieldCheck }, @@ -31,7 +38,7 @@ export function SettingsBodyNav({ t }: SettingsBodyNavProps) { className="h-10 w-full justify-start gap-2.5 px-2.5 text-sm font-medium text-muted-foreground hover:text-foreground" onClick={() => document.getElementById(item.id)?.scrollIntoView({ block: 'start', behavior: 'smooth' })} > - + {item.label} ))} diff --git a/src/components/SettingsControls.tsx b/src/components/SettingsControls.tsx index ac7e8635..0078baf7 100644 --- a/src/components/SettingsControls.tsx +++ b/src/components/SettingsControls.tsx @@ -35,13 +35,16 @@ export function SettingsSection({ } export function SectionHeading({ + icon, title, }: { + icon?: ReactNode title: string description?: string }) { return ( -
+
+ {icon ? {icon} : null}
- +
diff --git a/src/components/status-bar/VaultMenu.tsx b/src/components/status-bar/VaultMenu.tsx index 1fe17fd2..671ecfa3 100644 --- a/src/components/status-bar/VaultMenu.tsx +++ b/src/components/status-bar/VaultMenu.tsx @@ -1,6 +1,6 @@ +import { Check, Cube, FolderOpen, GitBranch, Plus, Rocket, Warning as AlertTriangle, X } from '@phosphor-icons/react' import { useMemo, useRef, useState } from 'react' import type { ReactNode } from 'react' -import { AlertTriangle, Check, FolderOpen, GitBranch, Plus, Rocket, X } from 'lucide-react' import { ActionTooltip } from '@/components/ui/action-tooltip' import { Button } from '@/components/ui/button' import { Checkbox } from '@/components/ui/checkbox' @@ -416,7 +416,7 @@ export function VaultMenu(props: VaultMenuProps) { aria-label={translate(locale, 'status.vault.switch')} data-testid="status-vault-trigger" > - + {compact ? null : {activeVaultLabel}} diff --git a/src/components/tolariaBlockNoteSideMenu.tsx b/src/components/tolariaBlockNoteSideMenu.tsx index eca994d2..bb3ba718 100644 --- a/src/components/tolariaBlockNoteSideMenu.tsx +++ b/src/components/tolariaBlockNoteSideMenu.tsx @@ -1,3 +1,4 @@ +import { DotsSixVertical as GripVertical, Plus } from '@phosphor-icons/react' import { SideMenuExtension, SuggestionMenu } from '@blocknote/core/extensions' import type { BlockNoteEditor, @@ -15,7 +16,6 @@ import { useExtensionState, type SideMenuProps, } from '@blocknote/react' -import { GripVertical, Plus } from 'lucide-react' import { useCallback, useLayoutEffect, diff --git a/src/components/tolariaEditorFormatting.behavior.test.tsx b/src/components/tolariaEditorFormatting.behavior.test.tsx index 715276da..9b43167d 100644 --- a/src/components/tolariaEditorFormatting.behavior.test.tsx +++ b/src/components/tolariaEditorFormatting.behavior.test.tsx @@ -100,13 +100,13 @@ vi.mock('@mantine/core', () => ({ ), })) -vi.mock('lucide-react', () => ({ - Bold: MockIcon, - ChevronDown: MockIcon, - Code2: MockIcon, - ExternalLink: MockIcon, - Italic: MockIcon, - Strikethrough: MockIcon, +vi.mock('@phosphor-icons/react', () => ({ + ArrowSquareOut: MockIcon, + CaretDown: MockIcon, + Code: MockIcon, + TextB: MockIcon, + TextItalic: MockIcon, + TextStrikethrough: MockIcon, })) vi.mock('./tolariaEditorFormattingConfig', () => ({ diff --git a/src/components/tolariaEditorFormatting.tsx b/src/components/tolariaEditorFormatting.tsx index 9d8a7bc8..2d368225 100644 --- a/src/components/tolariaEditorFormatting.tsx +++ b/src/components/tolariaEditorFormatting.tsx @@ -45,14 +45,14 @@ import { Menu as MantineMenu, } from '@mantine/core' import { - Bold, - ChevronDown, - Code2, - ExternalLink, - Italic, - Strikethrough, - type LucideIcon, -} from 'lucide-react' + ArrowSquareOut as ExternalLink, + CaretDown as ChevronDown, + Code as Code2, + TextB as Bold, + TextItalic as Italic, + TextStrikethrough as Strikethrough, + type Icon as PhosphorIcon, +} from '@phosphor-icons/react' import { filterTolariaFormattingToolbarItems, getTolariaBlockTypeSelectItems, @@ -186,7 +186,7 @@ const TOLARIA_BASIC_TEXT_STYLE_ICONS = { italic: Italic, strike: Strikethrough, code: Code2, -} satisfies Record +} satisfies Record type TolariaSelectedBlock = ReturnType< BlockNoteEditor['getTextCursorPosition'] @@ -417,7 +417,7 @@ function TolariaBasicTextStyleButton({ if (buttonState === undefined) return null - const Icon = Reflect.get(TOLARIA_BASIC_TEXT_STYLE_ICONS, basicTextStyle) as LucideIcon + const Icon = Reflect.get(TOLARIA_BASIC_TEXT_STYLE_ICONS, basicTextStyle) as PhosphorIcon const copy = Reflect.get(TOLARIA_BASIC_TEXT_STYLE_TOOLTIPS, basicTextStyle) as { label: string mainTooltip: string diff --git a/src/components/ui/calendar.tsx b/src/components/ui/calendar.tsx index a73d110f..0ae32417 100644 --- a/src/components/ui/calendar.tsx +++ b/src/components/ui/calendar.tsx @@ -2,10 +2,10 @@ import * as React from "react" import { - ChevronDownIcon, - ChevronLeftIcon, - ChevronRightIcon, -} from "lucide-react" + CaretDown as ChevronDownIcon, + CaretLeft as ChevronLeftIcon, + CaretRight as ChevronRightIcon, +} from '@phosphor-icons/react' import { DayPicker, getDefaultClassNames, diff --git a/src/components/ui/checkbox.tsx b/src/components/ui/checkbox.tsx index 6c31705f..dc3ff667 100644 --- a/src/components/ui/checkbox.tsx +++ b/src/components/ui/checkbox.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import { Check } from 'lucide-react' +import { Check } from '@phosphor-icons/react' import { cn } from '@/lib/utils' diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx index d8a06aaa..389b318a 100644 --- a/src/components/ui/dialog.tsx +++ b/src/components/ui/dialog.tsx @@ -1,5 +1,5 @@ import * as React from "react" -import { XIcon } from "lucide-react" +import { X as XIcon } from '@phosphor-icons/react' import { Dialog as DialogPrimitive } from "radix-ui" import { cn } from "@/lib/utils" diff --git a/src/components/ui/dropdown-menu.tsx b/src/components/ui/dropdown-menu.tsx index bffc3276..9fca8730 100644 --- a/src/components/ui/dropdown-menu.tsx +++ b/src/components/ui/dropdown-menu.tsx @@ -1,7 +1,7 @@ "use client" import * as React from "react" -import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react" +import { CaretRight as ChevronRightIcon, Check as CheckIcon, Circle as CircleIcon } from '@phosphor-icons/react' import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui" import { cn } from "@/lib/utils" diff --git a/src/components/ui/select.tsx b/src/components/ui/select.tsx index e0f39f47..b749cb57 100644 --- a/src/components/ui/select.tsx +++ b/src/components/ui/select.tsx @@ -1,5 +1,5 @@ import * as React from "react" -import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react" +import { CaretDown as ChevronDownIcon, CaretUp as ChevronUpIcon, Check as CheckIcon } from '@phosphor-icons/react' import { Select as SelectPrimitive } from "radix-ui" import { cn } from "@/lib/utils" diff --git a/src/lib/locales/de-DE.json b/src/lib/locales/de-DE.json index 1d1a3a0e..98c20f10 100644 --- a/src/lib/locales/de-DE.json +++ b/src/lib/locales/de-DE.json @@ -150,7 +150,7 @@ "settings.titles.description": "Legen Sie fest, ob Tolaria Dateinamen von unbenannten Notizen automatisch anhand der ersten H1-Überschrift synchronisiert.", "settings.titles.autoRename": "Unbenannte Notizen automatisch anhand der ersten H1-Uberschrift umbenennen", "settings.titles.autoRenameDescription": "Wenn diese Option aktiviert ist, benennt Tolaria Dateien mit unbenannten Notizen um, sobald die erste H1-Überschrift zu einem echten Titel wird. Deaktivieren Sie diese Option, um den Dateinamen unverändert zu lassen, bis Sie ihn manuell über die Breadcrumb-Leiste umbenennen.", - "settings.vaultContent.title": "Vault-Inhalt", + "settings.vaultContent.title": "Inhalt", "settings.vaultContent.description": "Legen Sie fest, ob Dateien, die der .gitignore-Datei des Vaults entsprechen, in Tolaria angezeigt werden.", "settings.dateDisplay.default": "Datumsanzeige", "settings.dateDisplay.defaultDescription": "Wählen Sie aus, wie Tolaria Datumsangaben außerhalb von editierbaren Datumsfeldern anzeigt.", diff --git a/src/lib/locales/en.json b/src/lib/locales/en.json index 05fc3be7..44fe3763 100644 --- a/src/lib/locales/en.json +++ b/src/lib/locales/en.json @@ -150,7 +150,7 @@ "settings.titles.description": "Choose whether Tolaria automatically syncs untitled note filenames from the first H1 title.", "settings.titles.autoRename": "Auto-rename untitled notes from first H1", "settings.titles.autoRenameDescription": "When enabled, Tolaria renames untitled-note files as soon as the first H1 becomes a real title. Turn this off to keep the filename unchanged until you rename it manually from the breadcrumb bar.", - "settings.vaultContent.title": "Vault Content", + "settings.vaultContent.title": "Content", "settings.vaultContent.description": "Control whether files matched by the vault .gitignore appear in Tolaria.", "settings.dateDisplay.default": "Date display", "settings.dateDisplay.defaultDescription": "Choose how Tolaria displays dates outside editable date fields.", diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json index 0050f508..f72025cd 100644 --- a/src/lib/locales/es-419.json +++ b/src/lib/locales/es-419.json @@ -150,7 +150,7 @@ "settings.titles.description": "Elija si desea que Tolaria sincronice automáticamente los nombres de los archivos de notas sin título a partir del primer título H1.", "settings.titles.autoRename": "Cambiar automáticamente el nombre de las notas sin título a partir del primer H1", "settings.titles.autoRenameDescription": "Cuando esta opción está activada, Tolaria cambia el nombre de los archivos de notas sin título tan pronto como el primer H1 se convierte en un título real. Desactive esta opción para que el nombre del archivo no se modifique hasta que lo cambie manualmente desde la barra de navegación.", - "settings.vaultContent.title": "Contenido del repositorio", + "settings.vaultContent.title": "Contenido", "settings.vaultContent.description": "Controle si los archivos que coinciden con el archivo .gitignore del repositorio aparecen en Tolaria.", "settings.dateDisplay.default": "Formato de fecha", "settings.dateDisplay.defaultDescription": "Elija cómo Tolaria muestra las fechas fuera de los campos de fecha editables.", diff --git a/src/lib/locales/es-ES.json b/src/lib/locales/es-ES.json index f77d74d0..64bd8a1a 100644 --- a/src/lib/locales/es-ES.json +++ b/src/lib/locales/es-ES.json @@ -150,7 +150,7 @@ "settings.titles.description": "Decida si Tolaria sincroniza automáticamente los nombres de los archivos de las notas sin título a partir del primer título H1.", "settings.titles.autoRename": "Cambiar automático del nombre de las notas sin título a partir del primer H1", "settings.titles.autoRenameDescription": "Cuando esta opción está activada, Tolaria cambia el nombre de los archivos de notas sin título en cuanto el primer H1 se convierte en un título real. Desactive esta opción para que el nombre del archivo no cambie hasta que lo renombre manualmente desde la barra de navegación.", - "settings.vaultContent.title": "Contenido del repositorio", + "settings.vaultContent.title": "Contenido", "settings.vaultContent.description": "Controla si los archivos que coinciden con el .gitignore del repositorio aparecen en Tolaria.", "settings.dateDisplay.default": "Formato de fecha", "settings.dateDisplay.defaultDescription": "Elija cómo muestra Tolaria las fechas fuera de los campos de fecha editables.", diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json index e1235260..eeee684c 100644 --- a/src/lib/locales/fr-FR.json +++ b/src/lib/locales/fr-FR.json @@ -150,7 +150,7 @@ "settings.titles.description": "Indiquez si Tolaria doit synchroniser automatiquement les noms de fichier des notes sans titre à partir du premier titre H1.", "settings.titles.autoRename": "Renommer automatiquement les notes sans titre à partir du premier H1", "settings.titles.autoRenameDescription": "Lorsque cette option est activée, Tolaria renomme les fichiers de notes sans titre dès que le premier H1 devient un véritable titre. Désactivez cette option pour que le nom de fichier reste inchangé jusqu'à ce que vous le renommiez manuellement depuis la barre de navigation.", - "settings.vaultContent.title": "Contenu du coffre-fort", + "settings.vaultContent.title": "Contenu", "settings.vaultContent.description": "Contrôler si les fichiers correspondants au fichier .gitignore du coffre-fort apparaissent dans Tolaria.", "settings.dateDisplay.default": "Affichage de la date", "settings.dateDisplay.defaultDescription": "Choisissez la manière dont Tolaria affiche les dates en dehors des champs de date modifiables.", diff --git a/src/lib/locales/it-IT.json b/src/lib/locales/it-IT.json index 61f16b6d..ac494681 100644 --- a/src/lib/locales/it-IT.json +++ b/src/lib/locales/it-IT.json @@ -150,7 +150,7 @@ "settings.titles.description": "Scegli se desideri che Tolaria sincronizzi automaticamente i nomi dei file delle note senza titolo in base al primo titolo H1.", "settings.titles.autoRename": "Rinomina automaticamente le note senza titolo in base al primo titolo H1", "settings.titles.autoRenameDescription": "Se questa opzione è abilitata, Tolaria rinomina i file delle note senza titolo non appena il primo H1 diventa un titolo effettivo. Disattiva questa opzione per mantenere invariato il nome del file finché non lo rinomini manualmente dalla barra di navigazione.", - "settings.vaultContent.title": "Contenuto del vault", + "settings.vaultContent.title": "Contenuto", "settings.vaultContent.description": "Controlla se i file corrispondenti al file .gitignore del vault vengono visualizzati in Tolaria.", "settings.dateDisplay.default": "Visualizzazione della data", "settings.dateDisplay.defaultDescription": "Scegli come Tolaria visualizza le date al di fuori dei campi data modificabili.", diff --git a/src/lib/locales/ja-JP.json b/src/lib/locales/ja-JP.json index bca264f7..2af0bc9f 100644 --- a/src/lib/locales/ja-JP.json +++ b/src/lib/locales/ja-JP.json @@ -150,7 +150,7 @@ "settings.titles.description": "Tolaria が、タイトルのないノートのファイル名を最初の H1 タイトルに基づいて自動的に同期するかどうかを選択します。", "settings.titles.autoRename": "タイトルのないノートのファイル名を最初のH1から自動的に変更する", "settings.titles.autoRenameDescription": "この設定を有効にすると、Tolariaは最初のH1が実際のタイトルになった時点で、タイトルのないノートファイルの名前を変更します。この設定をオフにすると、ブレッドクラムバーから手動で名前を変更するまで、ファイル名は変更されません。", - "settings.vaultContent.title": "Vaultのコンテンツ", + "settings.vaultContent.title": "コンテンツ", "settings.vaultContent.description": "Vaultの.gitignoreで一致したファイルをTolariaに表示するかどうかを制御します。", "settings.dateDisplay.default": "日付の表示", "settings.dateDisplay.defaultDescription": "編集可能な日付フィールド以外の場所で、Tolariaが日付を表示する方法を選択します。", diff --git a/src/lib/locales/ko-KR.json b/src/lib/locales/ko-KR.json index 375446d4..def1da55 100644 --- a/src/lib/locales/ko-KR.json +++ b/src/lib/locales/ko-KR.json @@ -150,7 +150,7 @@ "settings.titles.description": "Tolaria가 제목 없는 노트의 파일 이름을 첫 번째 H1 제목에서 자동으로 동기화할지 여부를 선택하세요.", "settings.titles.autoRename": "첫 번째 H1 제목으로 제목 없는 노트 파일 이름 자동 변경", "settings.titles.autoRenameDescription": "이 옵션을 활성화하면 Tolaria는 첫 번째 H1이 실제 제목이 되는 즉시 제목 없는 노트 파일의 이름을 변경합니다. 이 옵션을 끄면 브레드크럼 바에서 수동으로 파일 이름을 변경할 때까지 파일 이름이 변경되지 않습니다.", - "settings.vaultContent.title": "Vault 콘텐츠", + "settings.vaultContent.title": "콘텐츠", "settings.vaultContent.description": "Vault .gitignore와 일치하는 파일이 Tolaria에 표시되는지 여부를 제어합니다.", "settings.dateDisplay.default": "날짜 표시", "settings.dateDisplay.defaultDescription": "편집 가능한 날짜 입력란 외부의 날짜를 Tolaria에서 표시하는 방식을 선택하세요.", diff --git a/src/lib/locales/pl-PL.json b/src/lib/locales/pl-PL.json index 4a55d167..ba829b08 100644 --- a/src/lib/locales/pl-PL.json +++ b/src/lib/locales/pl-PL.json @@ -150,7 +150,7 @@ "settings.titles.description": "Wybierz, czy Tolaria automatycznie synchronizuje nazwy plików notatek bez tytułu z pierwszego nagłówka H1.", "settings.titles.autoRename": "Automatycznie zmieniaj nazwy notatek bez tytułu z pierwszego H1", "settings.titles.autoRenameDescription": "Po włączeniu Tolaria zmienia nazwy plików notatek bez tytułu, gdy tylko pierwszy H1 stanie się prawdziwym tytułem. Wyłącz, aby zachować nazwę pliku bez zmian do ręcznej zmiany z paska ścieżki.", - "settings.vaultContent.title": "Zawartość sejfu", + "settings.vaultContent.title": "Treść", "settings.vaultContent.description": "Kontroluj, czy pliki pasujące do .gitignore sejfu pojawiają się w Tolaria.", "settings.dateDisplay.default": "Wyświetlanie daty", "settings.dateDisplay.defaultDescription": "Wybierz, w jaki sposób Tolaria ma wyświetlać daty poza edytowalnymi polami daty.", diff --git a/src/lib/locales/pt-BR.json b/src/lib/locales/pt-BR.json index e24a19ef..4cd81ce2 100644 --- a/src/lib/locales/pt-BR.json +++ b/src/lib/locales/pt-BR.json @@ -150,7 +150,7 @@ "settings.titles.description": "Escolha se o Tolaria deve sincronizar automaticamente os nomes de arquivo das notas sem título com base no primeiro título H1.", "settings.titles.autoRename": "Renomear automaticamente notas sem título com base no primeiro H1", "settings.titles.autoRenameDescription": "Quando ativada, a Tolaria renomeia os arquivos de anotações sem título assim que o primeiro H1 se torna um título de fato. Desative esta opção para manter o nome do arquivo inalterado até que você o renomeie manualmente na barra de navegação.", - "settings.vaultContent.title": "Conteúdo do cofre", + "settings.vaultContent.title": "Conteúdo", "settings.vaultContent.description": "Controle se os arquivos correspondentes ao .gitignore do cofre aparecem no Tolaria.", "settings.dateDisplay.default": "Exibição de data", "settings.dateDisplay.defaultDescription": "Escolha como o Tolaria exibe datas fora dos campos de data editáveis.", diff --git a/src/lib/locales/pt-PT.json b/src/lib/locales/pt-PT.json index bdfde18d..1e6a09d6 100644 --- a/src/lib/locales/pt-PT.json +++ b/src/lib/locales/pt-PT.json @@ -150,7 +150,7 @@ "settings.titles.description": "Escolha se a Tolaria deve sincronizar automaticamente os nomes de ficheiro das notas sem título com base no primeiro título H1.", "settings.titles.autoRename": "Renomear automaticamente notas sem título com base no primeiro H1", "settings.titles.autoRenameDescription": "Quando esta opção está ativada, a Tolaria muda o nome dos ficheiros de notas sem título assim que o primeiro H1 se torna um título verdadeiro. Desative esta opção para manter o nome do ficheiro inalterado até o renomear manualmente na barra de navegação.", - "settings.vaultContent.title": "Conteúdo do cofre", + "settings.vaultContent.title": "Conteúdo", "settings.vaultContent.description": "Controlar se os ficheiros correspondentes ao .gitignore do cofre aparecem na Tolaria.", "settings.dateDisplay.default": "Apresentação da data", "settings.dateDisplay.defaultDescription": "Escolha como a Tolaria apresenta as datas fora dos campos de data editáveis.", diff --git a/src/lib/locales/ru-RU.json b/src/lib/locales/ru-RU.json index 9bb6ffe3..cfe0ccf7 100644 --- a/src/lib/locales/ru-RU.json +++ b/src/lib/locales/ru-RU.json @@ -150,7 +150,7 @@ "settings.titles.description": "Выберите, должна ли Tolaria автоматически синхронизировать имена файлов заметок без названия на основе первого заголовка H1.", "settings.titles.autoRename": "Автоматически переименовывать заметки без названия по первому заголовку H1", "settings.titles.autoRenameDescription": "Если эта функция включена, Tolaria переименовывает файлы заметок без названия, как только первый заголовок H1 становится настоящим заголовком. Отключите эту опцию, чтобы имя файла оставалось неизменным, пока вы не переименуете его вручную в строке навигации.", - "settings.vaultContent.title": "Содержимое хранилища", + "settings.vaultContent.title": "Содержание", "settings.vaultContent.description": "Управляйте тем, будут ли отображаться в Tolaria файлы, соответствующие списку .gitignore хранилища.", "settings.dateDisplay.default": "Отображение даты", "settings.dateDisplay.defaultDescription": "Выберите, как Tolaria будет отображать даты за пределами редактируемых полей даты.", diff --git a/src/lib/locales/vi.json b/src/lib/locales/vi.json index 2097f5d8..356b00e2 100644 --- a/src/lib/locales/vi.json +++ b/src/lib/locales/vi.json @@ -150,7 +150,7 @@ "settings.titles.description": "Chọn xem Tolaria có tự động đồng bộ tên tệp của ghi chú chưa đặt tên từ tiêu đề H1 đầu tiên hay không.", "settings.titles.autoRename": "Tự đổi tên ghi chú chưa đặt tên từ H1 đầu tiên", "settings.titles.autoRenameDescription": "Khi bật, Tolaria sẽ đổi tên tệp ghi chú chưa đặt tên ngay khi H1 đầu tiên trở thành tiêu đề thật. Tắt tùy chọn này nếu bạn muốn giữ nguyên tên tệp cho đến khi tự đổi thủ công từ thanh breadcrumb.", - "settings.vaultContent.title": "Nội dung kho", + "settings.vaultContent.title": "Nội dung", "settings.vaultContent.description": "Kiểm soát việc các tệp khớp với .gitignore của kho có xuất hiện trong Tolaria hay không.", "settings.dateDisplay.default": "Hiển thị ngày", "settings.dateDisplay.defaultDescription": "Chọn cách Tolaria hiển thị ngày tháng bên ngoài các trường ngày tháng có thể chỉnh sửa.", diff --git a/src/lib/locales/zh-CN.json b/src/lib/locales/zh-CN.json index 10484f7d..c21fcfec 100644 --- a/src/lib/locales/zh-CN.json +++ b/src/lib/locales/zh-CN.json @@ -150,7 +150,7 @@ "settings.titles.description": "选择 Tolaria 是否根据第一个 H1 标题自动同步未命名笔记的文件名。", "settings.titles.autoRename": "根据第一个 H1 自动重命名未命名笔记", "settings.titles.autoRenameDescription": "启用后,只要第一个 H1 成为真实标题,Tolaria 就会重命名 untitled-note 文件。关闭后,文件名会保持不变,直到你从面包屑栏手动重命名。", - "settings.vaultContent.title": "保管库内容", + "settings.vaultContent.title": "内容", "settings.vaultContent.description": "控制与 Vault .gitignore 文件匹配的文件是否显示在 Tolaria 中。", "settings.dateDisplay.default": "日期显示方式", "settings.dateDisplay.defaultDescription": "选择 Tolaria 在可编辑日期字段之外显示日期的方式。", diff --git a/src/lib/locales/zh-TW.json b/src/lib/locales/zh-TW.json index c04c8f1f..b3ed7778 100644 --- a/src/lib/locales/zh-TW.json +++ b/src/lib/locales/zh-TW.json @@ -150,7 +150,7 @@ "settings.titles.description": "選擇 Tolaria 是否根據第一個 H1 標題自動同步未命名筆記的檔名。", "settings.titles.autoRename": "根據第一個 H1 自動重新命名未命名筆記", "settings.titles.autoRenameDescription": "啟用後,只要第一個 H1 成為真實標題,Tolaria 就會重新命名 untitled-note 檔案。關閉後,檔名會保持不變,直到你從麵包屑欄手動重新命名。", - "settings.vaultContent.title": "保管庫內容", + "settings.vaultContent.title": "內容", "settings.vaultContent.description": "控制與 Vault .gitignore 相符的檔案是否顯示在 Tolaria 中。", "settings.dateDisplay.default": "日期顯示方式", "settings.dateDisplay.defaultDescription": "選擇 Tolaria 在可編輯日期欄位外顯示日期的方式。", diff --git a/src/utils/propertyTypes.ts b/src/utils/propertyTypes.ts index 272075b1..5abf4e5d 100644 --- a/src/utils/propertyTypes.ts +++ b/src/utils/propertyTypes.ts @@ -1,10 +1,10 @@ import type { FrontmatterValue } from '../components/Inspector' +import { CalendarBlank as CalendarIcon, Circle, Hash, Link, Palette, Tag, TextT as Type, ToggleLeft } from '@phosphor-icons/react' import { getAppStorageItem } from '../constants/appStorage' import { isValidCssColor, isColorKeyName } from './colorUtils' import { dateFromParts, parseDashDateParts, parseSlashDateParts, type DateParts } from './dateStringParts' import { DEFAULT_DATE_DISPLAY_FORMAT, formatDateValueForDisplay, type DateDisplayFormat } from './dateDisplay' import { updateVaultConfigField } from './vaultConfigStore' -import { CalendarIcon, Type, ToggleLeft, Circle, Link, Tag, Palette, Hash } from 'lucide-react' import { canonicalSystemMetadataKey } from './systemMetadata' export type PropertyDisplayMode = 'text' | 'number' | 'date' | 'boolean' | 'status' | 'url' | 'tags' | 'color'