Fix lemma wrapping and page layout

This commit is contained in:
2026-07-12 09:57:47 -05:00
parent 1f60f66ab1
commit 720702105c
7 changed files with 42 additions and 11 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "libre-study", "name": "libre-study",
"version": "0.1.11", "version": "0.1.12",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "libre-study", "name": "libre-study",
"version": "0.1.11", "version": "0.1.12",
"dependencies": { "dependencies": {
"@tauri-apps/api": "^2.11.1", "@tauri-apps/api": "^2.11.1",
"react": "^19.2.7", "react": "^19.2.7",
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "libre-study", "name": "libre-study",
"private": true, "private": true,
"version": "0.1.11", "version": "0.1.12",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite --host 127.0.0.1", "dev": "vite --host 127.0.0.1",
+1 -1
View File
@@ -77,7 +77,7 @@ checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3"
[[package]] [[package]]
name = "app" name = "app"
version = "0.1.11" version = "0.1.12"
dependencies = [ dependencies = [
"log", "log",
"rusqlite", "rusqlite",
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "app" name = "app"
version = "0.1.11" version = "0.1.12"
description = "A Tauri App" description = "A Tauri App"
authors = ["you"] authors = ["you"]
license = "" license = ""
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json", "$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
"productName": "Libre Study", "productName": "Libre Study",
"version": "0.1.11", "version": "0.1.12",
"identifier": "org.librestudy.desktop", "identifier": "org.librestudy.desktop",
"build": { "build": {
"frontendDist": "../dist", "frontendDist": "../dist",
+19 -4
View File
@@ -282,7 +282,7 @@ textarea:focus-visible {
.page-system { .page-system {
display: grid; display: grid;
grid-template-columns: minmax(0, 1fr); grid-template-columns: minmax(0, 1fr);
grid-template-rows: minmax(0, 1fr) auto; grid-template-rows: minmax(0, 1fr) auto auto auto;
min-height: 0; min-height: 0;
overflow: visible; overflow: visible;
perspective: 1400px; perspective: 1400px;
@@ -299,6 +299,7 @@ textarea:focus-visible {
.bible-page { .bible-page {
display: grid; display: grid;
grid-column: 1;
grid-template-rows: auto minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr);
min-height: 0; min-height: 0;
padding: 26px 30px; padding: 26px 30px;
@@ -317,7 +318,7 @@ textarea:focus-visible {
} }
.page-turner { .page-turner {
grid-column: 1 / -1; grid-column: 1;
padding: 14px 30px; padding: 14px 30px;
border-top: 1px solid #e8e2d4; border-top: 1px solid #e8e2d4;
background: #fffef8; background: #fffef8;
@@ -414,6 +415,9 @@ textarea:focus-visible {
} }
.study-margin { .study-margin {
grid-column: 2;
grid-row: 1 / -1;
min-width: 0;
border-left: 1px solid #e4dece; border-left: 1px solid #e4dece;
background: #fbf8ef; background: #fbf8ef;
} }
@@ -448,8 +452,10 @@ textarea:focus-visible {
.original-language-verse { .original-language-verse {
display: grid; display: grid;
gap: 8px; gap: 8px;
min-width: 0;
margin: 0 0 14px; margin: 0 0 14px;
padding: 12px; padding: 12px;
overflow: hidden;
border: 1px solid #dfd6c2; border: 1px solid #dfd6c2;
border-radius: 6px; border-radius: 6px;
background: #fffdf6; background: #fffdf6;
@@ -465,14 +471,20 @@ textarea:focus-visible {
} }
.original-language-verse p { .original-language-verse p {
min-width: 0;
margin: 0; margin: 0;
} }
.lemma-line-text { .lemma-line-text {
display: block;
max-width: 100%;
overflow-wrap: anywhere;
color: #1f211e; color: #1f211e;
font-family: Georgia, 'Times New Roman', serif; font-family: Georgia, 'Times New Roman', serif;
font-size: 20px; font-size: 20px;
line-height: 1.7; line-height: 1.7;
white-space: normal;
word-break: normal;
} }
.lemma-line-text[dir='rtl'] { .lemma-line-text[dir='rtl'] {
@@ -483,6 +495,7 @@ textarea:focus-visible {
.lemma-word { .lemma-word {
display: inline; display: inline;
overflow-wrap: anywhere;
padding: 0 2px; padding: 0 2px;
border-radius: 3px; border-radius: 3px;
cursor: pointer; cursor: pointer;
@@ -614,7 +627,7 @@ textarea:focus-visible {
.footnote-strip { .footnote-strip {
display: flex; display: flex;
grid-column: 1 / -1; grid-column: 1;
gap: 12px; gap: 12px;
align-items: flex-start; align-items: flex-start;
min-height: 50px; min-height: 50px;
@@ -771,7 +784,7 @@ textarea:focus-visible {
.book-tabs { .book-tabs {
display: grid; display: grid;
grid-column: 1 / -1; grid-column: 1;
grid-template-columns: repeat(24, minmax(0, 1fr)); grid-template-columns: repeat(24, minmax(0, 1fr));
gap: 3px; gap: 3px;
align-items: flex-start; align-items: flex-start;
@@ -1182,6 +1195,8 @@ textarea:focus-visible {
.study-margin, .study-margin,
.compare-pages .bible-page + .bible-page { .compare-pages .bible-page + .bible-page {
grid-column: 1;
grid-row: auto;
border-top: 1px solid #e4dece; border-top: 1px solid #e4dece;
border-left: 0; border-left: 0;
} }
+17 -1
View File
@@ -624,7 +624,23 @@ function App() {
const [bookPart, rest] = entry.reference.split(/ (?=\d+:\d+$)/) const [bookPart, rest] = entry.reference.split(/ (?=\d+:\d+$)/)
const [chapter, verse] = rest?.split(':').map(Number) ?? [] const [chapter, verse] = rest?.split(':').map(Number) ?? []
if (!bookPart || !chapter || !verse) return if (!bookPart || !chapter || !verse) return
jumpTo(bookPart, chapter, verse)
const next = libraryVerses.find(
(entryVerse) =>
entryVerse.book === bookPart &&
entryVerse.chapter === chapter &&
entryVerse.verse === verse,
)
if (!next) return
triggerPageMotion(next.id >= (selectedVerse?.id ?? next.id) ? 'turn-forward' : 'turn-back')
setQuery('')
setSelectedStrong(null)
setVerses(libraryVerses)
setSelectedId(next.id)
if (!pageVerses.some((pageVerse) => pageVerse.id === next.id)) {
setPageStartId(findPageStartId(next))
}
} }
function recordFootnote(referenceText: string, text: string) { function recordFootnote(referenceText: string, text: string) {