billingsmoore commited on
Commit
3915bbb
·
0 Parent(s):

Deploy: 68c9cc5869488de7cb80577145f98f709388ab32

Browse files
README.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Tibetan Language Learner
3
+ emoji: 📜
4
+ colorFrom: gray
5
+ colorTo: red
6
+ sdk: static
7
+ pinned: false
8
+ ---
9
+
10
+ # Tibetan Language Learner
11
+
12
+ A React app for learning Tibetan through short stories, inspired by
13
+ amarahasa.com. Stories are shown in Tibetan script (བོད་ཡིག); click any
14
+ highlighted word for its Wylie transliteration, phonetic pronunciation, and
15
+ English meaning.
16
+
17
+ Source: https://github.com/billingsmoore/GreenGaruda2
asset-manifest.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "files": {
3
+ "main.css": "/static/css/main.02bea46d.css",
4
+ "main.js": "/static/js/main.9e207bb7.js",
5
+ "index.html": "/index.html",
6
+ "main.02bea46d.css.map": "/static/css/main.02bea46d.css.map",
7
+ "main.9e207bb7.js.map": "/static/js/main.9e207bb7.js.map"
8
+ },
9
+ "entrypoints": [
10
+ "static/css/main.02bea46d.css",
11
+ "static/js/main.9e207bb7.js"
12
+ ]
13
+ }
index.html ADDED
@@ -0,0 +1 @@
 
 
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Tibetan Language Learner"/><title>Tibetan Language Learner</title><script defer="defer" src="/static/js/main.9e207bb7.js"></script><link href="/static/css/main.02bea46d.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
static/css/main.02bea46d.css ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ #root{min-height:100vh}#root,.app{width:100%}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.tibetan-lesson-container,body{background-color:#1a1a1a;color:#e0e0e0}.tibetan-lesson-container{display:flex;flex-direction:column;min-height:100vh}.lesson-header{background-color:#0d0d0d;border-bottom:1px solid #333;padding:2rem 1rem;text-align:center}.lesson-title{color:#fff;cursor:pointer;font-family:Arial Unicode MS,sans-serif;font-size:2rem;font-weight:600;margin-bottom:.5rem}.lesson-subtitle{color:#888;font-size:1rem;margin-bottom:1.5rem}.main-nav{display:flex;gap:.5rem;justify-content:center;margin-bottom:1rem}.nav-link{background-color:initial;border:1px solid #444;border-radius:4px;color:#aaa;cursor:pointer;font-size:.9rem;padding:.5rem 1.25rem;transition:all .2s ease}.nav-link:hover{background-color:#333;color:#fff}.nav-link.active{background-color:#c9302c;border-color:#c9302c;color:#fff}.lesson-footer{background-color:#0d0d0d;border-top:1px solid #333;color:#888;font-size:.9rem;padding:1.5rem;text-align:center}.footer-nav{display:flex;gap:1.5rem;justify-content:center;margin-bottom:1rem}.footer-link{background:none;border:none;color:#aaa;cursor:pointer;font-size:.9rem;padding:0;transition:color .2s ease}.footer-link:hover{color:#fff}.loading{align-items:center;color:#aaa;display:flex;font-size:1.1rem;justify-content:center;min-height:60vh}.cta-btn{background-color:#c9302c;border:1px solid #c9302c;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.75rem;transition:all .2s ease}.cta-btn:hover{background-color:#a8281f}.cta-btn-secondary{background-color:initial;border:1px solid #444;color:#ccc}.cta-btn-secondary:hover{background-color:#333;color:#fff}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#1a1a1a}::-webkit-scrollbar-thumb{background:#444;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.library-header{margin-bottom:2rem}.library-header h2{color:#fff;font-size:2rem;font-weight:600;margin-bottom:.75rem}.library-description{background-color:#252525;border-radius:6px;color:#aaa;font-size:.95rem;line-height:1.5;padding:1rem}.series-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.series-card{background-color:#252525;border:1px solid #333;border-radius:8px;cursor:pointer;overflow:hidden;transition:border-color .2s ease}.series-card:hover{border-color:#c9302c}.series-card-image{background-position:50%;background-size:cover;height:100px}.series-card-body{padding:1rem}.series-card-body h4{color:#fff;font-size:1rem;margin-bottom:.35rem}.series-card-body p{color:#888;font-size:.85rem}.attribution-section,.closing-section,.philosophy-section,.start-here-section{background-color:#252525;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.attribution-section h3,.closing-section h3,.demo-section h3,.philosophy-section h3,.series-section h3,.start-here-section h3{color:#fff;font-size:1.3rem;margin-bottom:.75rem}.attribution-section p,.closing-section p,.philosophy-section p,.start-here-section p{color:#ccc;line-height:1.6}.attribution-section p+p{margin-top:.75rem}.attribution-section a{color:#e0e0e0;text-decoration:underline}.demo-section{background-color:#252525;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.demo-section p{color:#ccc;line-height:1.6;margin-bottom:1rem}.demo-text{font-size:1.3rem}.closing-section{text-align:center}.closing-section p{margin-bottom:1rem}.closing-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.home-view{flex:1 1;margin:0 auto;max-width:900px;padding:2rem 1rem;width:100%}.hero-section{padding:2rem 1rem 3rem;text-align:center}.hero-title{color:#fff;font-size:2.25rem;font-weight:600;margin-bottom:1rem}.hero-text{color:#ccc;font-size:1.1rem;line-height:1.6;margin:0 auto 1.5rem;max-width:600px}.series-section{margin-bottom:1.5rem}.series-section h3{margin-bottom:1rem}.story-text{background-color:#252525;border-radius:8px;color:#e0e0e0;font-family:Arial Unicode MS,sans-serif;font-size:1.4rem;line-height:2;padding:2rem;white-space:pre-wrap}.story-line{word-spacing:.3em}.story-word{border-radius:3px;cursor:pointer;padding:.25rem .5rem;position:relative;transition:all .15s ease}.story-word:hover{background-color:#333;color:#c9302c}.story-word.selected{background-color:#c9302c;color:#fff}.word-tooltip{animation:slideUp .2s ease;bottom:2rem;left:50%;position:fixed;transform:translateX(-50%);z-index:1000}@keyframes slideUp{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.tooltip-content{background-color:#252525;border:2px solid #c9302c;border-radius:8px;box-shadow:0 4px 12px #00000080;max-width:300px;padding:1rem}.tooltip-header{margin-bottom:.75rem}.tooltip-wylie{color:#fff;font-family:monospace;font-size:1.4rem;font-weight:600;margin-bottom:.25rem}.tooltip-phonetics{color:#aaa;font-size:1rem;font-style:italic}.tooltip-meaning{border-top:1px solid #333;color:#e0e0e0;font-size:1rem;line-height:1.5;padding-top:.75rem}.start-here-view{flex:1 1;margin:0 auto;max-width:900px;padding:2rem 1rem;width:100%}.start-here-section a{color:#e0e0e0;text-decoration:underline}.library-view{flex:1 1;margin:0 auto;max-width:1200px;overflow-y:auto;padding:2rem 1rem;width:100%}.sort-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.sort-label{color:#888;font-size:.9rem;margin-right:.25rem}.series-filter{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem}.filter-btn{background-color:#333;border:1px solid #444;border-radius:20px;color:#aaa;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s ease}.filter-btn:hover{background-color:#444;border-color:#555;color:#fff}.filter-btn.active{background-color:#c9302c;border-color:#c9302c;color:#fff}.stories-table{border:1px solid #333;border-radius:8px;overflow:hidden}.table-header{background-color:#252525;color:#888;font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.table-header,.table-row{grid-gap:1rem;border-bottom:1px solid #333;display:grid;gap:1rem;grid-template-columns:80px 1fr 120px;padding:1rem}.table-row{align-items:center;cursor:pointer;transition:background-color .2s ease}.table-row:hover{background-color:#252525}.table-row:last-child{border-bottom:none}.table-cell{align-items:center;display:flex}.series-col{justify-content:center}.title-col{flex-direction:column;gap:.25rem}.words-col{color:#fff;font-weight:600;text-align:right}.series-badge{background-position:50%;background-size:cover;border:2px solid #444;border-radius:50%;height:60px;width:60px}.story-title{color:#fff;font-size:.95rem;font-weight:500}.story-subtitle{color:#888;font-size:.8rem}.story-view{flex:1 1;margin:0 auto;max-width:1200px;overflow-y:auto;padding:2rem 1rem;width:100%}.story-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.back-btn{background-color:#333;border:1px solid #444;border-radius:4px;color:#aaa;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s ease}.back-btn:hover{background-color:#444;color:#fff}.story-content{grid-gap:2rem;align-items:start;display:grid;gap:2rem;grid-template-columns:1fr 1fr}@media (max-width:1024px){.story-content{grid-template-columns:1fr}}.story-text-section{position:relative}.story-heading{color:#fff;font-family:Arial Unicode MS,sans-serif;font-size:1.8rem;font-weight:600;margin-bottom:.5rem}.story-subtitle-text{color:#888;font-size:.9rem;margin-bottom:2rem}.level-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.level-btn{background-color:#333;border:1px solid #444;border-radius:20px;color:#aaa;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s ease}.level-btn:hover{background-color:#444;border-color:#555;color:#fff}.level-btn.active{background-color:#c9302c;border-color:#c9302c;color:#fff}.story-line-group{margin-bottom:1rem}.story-nav{display:flex;gap:1rem;justify-content:space-between;margin-top:1.5rem}.nav-btn{background-color:#333;border:1px solid #444;border-radius:4px;color:#aaa;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s ease}.nav-btn:hover:not(:disabled){background-color:#444;color:#fff}.nav-btn:disabled{cursor:not-allowed;opacity:.4}.story-image-section{align-items:center;background-color:#252525;border-radius:8px;display:flex;justify-content:center;min-height:400px;overflow:hidden}.story-image{display:block;height:100%;object-fit:cover;width:100%}.toc-tibetan-title{color:#fff;font-family:Arial Unicode MS,sans-serif;font-size:1.3rem;margin-bottom:.25rem}.toc-transliteration{color:#888;font-style:italic;margin-bottom:.25rem}.toc-description{color:#ccc;margin-bottom:1.5rem}.book-toc{margin-top:2rem}.toc-heading{color:#fff;font-size:1.1rem;font-weight:600;margin-bottom:1rem}.chapter-toc{display:flex;flex-direction:column;gap:.75rem;list-style:none}.chapter-toc-item{align-items:center;background-color:#252525;border:1px solid #333;border-radius:6px;cursor:pointer;display:flex;gap:1rem;padding:.75rem 1rem;transition:all .2s ease}.chapter-toc-item:hover{background-color:#2e2e2e;border-color:#444}.chapter-toc-number{align-items:center;background-color:#333;border-radius:50%;color:#aaa;display:flex;flex-shrink:0;font-size:.9rem;font-weight:600;height:2rem;justify-content:center;width:2rem}.chapter-toc-titles{display:flex;flex-direction:column;gap:.15rem}.chapter-toc-tibetan{color:#fff;font-family:Arial Unicode MS,sans-serif;font-size:1.05rem}.chapter-toc-english{color:#888;font-size:.85rem}.toc-start-btn{background-color:#c9302c;border:1px solid #c9302c;border-radius:4px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;margin-top:1.5rem;padding:.6rem 1.5rem;transition:all .2s ease}.toc-start-btn:hover{background-color:#b32b27}
2
+ /*# sourceMappingURL=main.02bea46d.css.map*/
static/css/main.02bea46d.css.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"static/css/main.7c832f5e.css","mappings":"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","sources":["App.css","styles/shared.css","styles/ContentSections.css","styles/HomeView.css","styles/WordInteraction.css","styles/StartHereView.css","styles/LibraryView.css","styles/StoryView.css"],"sourcesContent":["* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n background-color: #1a1a1a;\n color: #e0e0e0;\n}\n\n#root {\n width: 100%;\n min-height: 100vh;\n}\n\n.app {\n width: 100%;\n}\n","/*\n * Global styles: reset, app shell (header/nav/footer), and design-system\n * primitives shared across views (.cta-btn, .cta-btn-secondary).\n * Imported once by TibetanLesson.jsx. View-specific styles live in\n * src/styles/<ViewName>.css and are imported by that view's component.\n */\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n background-color: #1a1a1a;\n color: #e0e0e0;\n}\n\n.tibetan-lesson-container {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n background-color: #1a1a1a;\n color: #e0e0e0;\n}\n\n/* Header */\n.lesson-header {\n background-color: #0d0d0d;\n padding: 2rem 1rem;\n border-bottom: 1px solid #333;\n text-align: center;\n}\n\n.lesson-title {\n font-size: 2rem;\n font-weight: 600;\n margin-bottom: 0.5rem;\n color: #fff;\n font-family: 'Arial Unicode MS', sans-serif;\n cursor: pointer;\n}\n\n.lesson-subtitle {\n font-size: 1rem;\n color: #888;\n margin-bottom: 1.5rem;\n}\n\n.main-nav {\n display: flex;\n gap: 0.5rem;\n justify-content: center;\n margin-bottom: 1rem;\n}\n\n.nav-link {\n padding: 0.5rem 1.25rem;\n background-color: transparent;\n border: 1px solid #444;\n color: #aaa;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9rem;\n transition: all 0.2s ease;\n}\n\n.nav-link:hover {\n background-color: #333;\n color: #fff;\n}\n\n.nav-link.active {\n background-color: #c9302c;\n color: #fff;\n border-color: #c9302c;\n}\n\n/* Footer */\n.lesson-footer {\n background-color: #0d0d0d;\n padding: 1.5rem;\n text-align: center;\n border-top: 1px solid #333;\n font-size: 0.9rem;\n color: #888;\n}\n\n.footer-nav {\n display: flex;\n justify-content: center;\n gap: 1.5rem;\n margin-bottom: 1rem;\n}\n\n.footer-link {\n background: none;\n border: none;\n color: #aaa;\n font-size: 0.9rem;\n cursor: pointer;\n padding: 0;\n transition: color 0.2s ease;\n}\n\n.footer-link:hover {\n color: #fff;\n}\n\n.loading {\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 60vh;\n font-size: 1.1rem;\n color: #aaa;\n}\n\n/* Shared call-to-action buttons (Home, Start Here) */\n.cta-btn {\n padding: 0.75rem 1.75rem;\n background-color: #c9302c;\n border: 1px solid #c9302c;\n color: #fff;\n border-radius: 4px;\n cursor: pointer;\n font-size: 1rem;\n font-weight: 500;\n transition: all 0.2s ease;\n}\n\n.cta-btn:hover {\n background-color: #a8281f;\n}\n\n.cta-btn-secondary {\n background-color: transparent;\n color: #ccc;\n border: 1px solid #444;\n}\n\n.cta-btn-secondary:hover {\n background-color: #333;\n color: #fff;\n}\n\n/* Scrollbar */\n::-webkit-scrollbar {\n width: 8px;\n}\n\n::-webkit-scrollbar-track {\n background: #1a1a1a;\n}\n\n::-webkit-scrollbar-thumb {\n background: #444;\n border-radius: 4px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: #555;\n}\n","/*\n * Reusable \"content page\" building blocks shared across Library, Home and\n * Start Here: page header blocks, boxed sections, and the demo/closing\n * sections used on Home and Start Here.\n */\n\n.library-header {\n margin-bottom: 2rem;\n}\n\n.library-header h2 {\n font-size: 2rem;\n font-weight: 600;\n margin-bottom: 0.75rem;\n color: #fff;\n}\n\n.library-description {\n color: #aaa;\n font-size: 0.95rem;\n line-height: 1.5;\n padding: 1rem;\n background-color: #252525;\n border-radius: 6px;\n}\n\n.series-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));\n gap: 1rem;\n}\n\n.series-card {\n background-color: #252525;\n border: 1px solid #333;\n border-radius: 8px;\n overflow: hidden;\n cursor: pointer;\n transition: border-color 0.2s ease;\n}\n\n.series-card:hover {\n border-color: #c9302c;\n}\n\n.series-card-image {\n height: 100px;\n background-size: cover;\n background-position: center;\n}\n\n.series-card-body {\n padding: 1rem;\n}\n\n.series-card-body h4 {\n color: #fff;\n font-size: 1rem;\n margin-bottom: 0.35rem;\n}\n\n.series-card-body p {\n color: #888;\n font-size: 0.85rem;\n}\n\n.philosophy-section,\n.start-here-section,\n.closing-section,\n.attribution-section {\n background-color: #252525;\n border-radius: 8px;\n padding: 1.5rem;\n margin-bottom: 1.5rem;\n}\n\n.philosophy-section h3,\n.series-section h3,\n.demo-section h3,\n.start-here-section h3,\n.closing-section h3,\n.attribution-section h3 {\n color: #fff;\n font-size: 1.3rem;\n margin-bottom: 0.75rem;\n}\n\n.philosophy-section p,\n.start-here-section p,\n.closing-section p,\n.attribution-section p {\n color: #ccc;\n line-height: 1.6;\n}\n\n.attribution-section p + p {\n margin-top: 0.75rem;\n}\n\n.attribution-section a {\n color: #e0e0e0;\n text-decoration: underline;\n}\n\n.demo-section {\n background-color: #252525;\n border-radius: 8px;\n padding: 1.5rem;\n margin-bottom: 1.5rem;\n}\n\n.demo-section p {\n color: #ccc;\n line-height: 1.6;\n margin-bottom: 1rem;\n}\n\n.demo-text {\n font-size: 1.3rem;\n}\n\n.closing-section {\n text-align: center;\n}\n\n.closing-section p {\n margin-bottom: 1rem;\n}\n\n.closing-actions {\n display: flex;\n gap: 1rem;\n justify-content: center;\n flex-wrap: wrap;\n}\n","/* Styles specific to HomeView.jsx (hero and series showcase). */\n\n.home-view {\n flex: 1;\n padding: 2rem 1rem;\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n.hero-section {\n text-align: center;\n padding: 2rem 1rem 3rem;\n}\n\n.hero-title {\n font-size: 2.25rem;\n font-weight: 600;\n color: #fff;\n margin-bottom: 1rem;\n}\n\n.hero-text {\n font-size: 1.1rem;\n color: #ccc;\n line-height: 1.6;\n max-width: 600px;\n margin: 0 auto 1.5rem;\n}\n\n.series-section {\n margin-bottom: 1.5rem;\n}\n\n.series-section h3 {\n margin-bottom: 1rem;\n}\n","/*\n * Click-word-for-definition styles shared by StoryView.jsx and WordDemo.jsx.\n * Edit here if you're changing how clickable words or the definition\n * tooltip look or behave in either place.\n */\n\n.story-text {\n font-size: 1.4rem;\n line-height: 2;\n color: #e0e0e0;\n padding: 2rem;\n background-color: #252525;\n border-radius: 8px;\n font-family: 'Arial Unicode MS', sans-serif;\n white-space: pre-wrap;\n}\n\n.story-line {\n word-spacing: 0.3em;\n}\n\n.story-word {\n cursor: pointer;\n padding: 0.25rem 0.5rem;\n border-radius: 3px;\n transition: all 0.15s ease;\n position: relative;\n}\n\n.story-word:hover {\n background-color: #333;\n color: #c9302c;\n}\n\n.story-word.selected {\n background-color: #c9302c;\n color: #fff;\n}\n\n.word-tooltip {\n position: fixed;\n bottom: 2rem;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1000;\n animation: slideUp 0.2s ease;\n}\n\n@keyframes slideUp {\n from {\n opacity: 0;\n transform: translateX(-50%) translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n}\n\n.tooltip-content {\n background-color: #252525;\n border: 2px solid #c9302c;\n border-radius: 8px;\n padding: 1rem;\n max-width: 300px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);\n}\n\n.tooltip-header {\n margin-bottom: 0.75rem;\n}\n\n.tooltip-wylie {\n font-size: 1.4rem;\n font-weight: 600;\n color: #fff;\n font-family: monospace;\n margin-bottom: 0.25rem;\n}\n\n.tooltip-phonetics {\n font-size: 1rem;\n color: #aaa;\n font-style: italic;\n}\n\n.tooltip-meaning {\n font-size: 1rem;\n color: #e0e0e0;\n line-height: 1.5;\n border-top: 1px solid #333;\n padding-top: 0.75rem;\n}\n","/* Styles specific to StartHereView.jsx. Section box styles shared with\n * HomeView live in ContentSections.css. */\n\n.start-here-view {\n flex: 1;\n padding: 2rem 1rem;\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n.start-here-section a {\n color: #e0e0e0;\n text-decoration: underline;\n}\n","/* Styles specific to LibraryView.jsx (sort/filter controls and story table). */\n\n.library-view {\n flex: 1;\n padding: 2rem 1rem;\n overflow-y: auto;\n max-width: 1200px;\n margin: 0 auto;\n width: 100%;\n}\n\n.sort-controls {\n display: flex;\n gap: 0.75rem;\n margin-bottom: 1rem;\n flex-wrap: wrap;\n align-items: center;\n}\n\n.sort-label {\n color: #888;\n font-size: 0.9rem;\n margin-right: 0.25rem;\n}\n\n.series-filter {\n display: flex;\n gap: 0.75rem;\n margin-bottom: 2rem;\n flex-wrap: wrap;\n}\n\n.filter-btn {\n padding: 0.5rem 1rem;\n background-color: #333;\n border: 1px solid #444;\n color: #aaa;\n border-radius: 20px;\n cursor: pointer;\n font-size: 0.9rem;\n transition: all 0.2s ease;\n}\n\n.filter-btn:hover {\n background-color: #444;\n border-color: #555;\n color: #fff;\n}\n\n.filter-btn.active {\n background-color: #c9302c;\n color: #fff;\n border-color: #c9302c;\n}\n\n.stories-table {\n border: 1px solid #333;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.table-header {\n display: grid;\n grid-template-columns: 80px 1fr 120px;\n gap: 1rem;\n padding: 1rem;\n background-color: #252525;\n border-bottom: 1px solid #333;\n font-weight: 600;\n font-size: 0.85rem;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #888;\n}\n\n.table-row {\n display: grid;\n grid-template-columns: 80px 1fr 120px;\n gap: 1rem;\n padding: 1rem;\n border-bottom: 1px solid #333;\n align-items: center;\n cursor: pointer;\n transition: background-color 0.2s ease;\n}\n\n.table-row:hover {\n background-color: #252525;\n}\n\n.table-row:last-child {\n border-bottom: none;\n}\n\n.table-cell {\n display: flex;\n align-items: center;\n}\n\n.series-col {\n justify-content: center;\n}\n\n.title-col {\n flex-direction: column;\n gap: 0.25rem;\n}\n\n.words-col {\n text-align: right;\n font-weight: 600;\n color: #fff;\n}\n\n.series-badge {\n width: 60px;\n height: 60px;\n border-radius: 50%;\n background-size: cover;\n background-position: center;\n border: 2px solid #444;\n}\n\n.story-title {\n color: #fff;\n font-weight: 500;\n font-size: 0.95rem;\n}\n\n.story-subtitle {\n color: #888;\n font-size: 0.8rem;\n}\n","/*\n * Styles specific to StoryView.jsx (toolbar, layout grid, line groups,\n * translations, prev/next nav, image). Word-click/tooltip styles shared\n * with WordDemo.jsx live in WordInteraction.css.\n */\n\n.story-view {\n flex: 1;\n padding: 2rem 1rem;\n overflow-y: auto;\n max-width: 1200px;\n margin: 0 auto;\n width: 100%;\n}\n\n.story-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n margin-bottom: 2rem;\n}\n\n.back-btn {\n padding: 0.5rem 1rem;\n background-color: #333;\n border: 1px solid #444;\n color: #aaa;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9rem;\n transition: all 0.2s ease;\n}\n\n.back-btn:hover {\n background-color: #444;\n color: #fff;\n}\n\n.story-content {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 2rem;\n align-items: start;\n}\n\n@media (max-width: 1024px) {\n .story-content {\n grid-template-columns: 1fr;\n }\n}\n\n.story-text-section {\n position: relative;\n}\n\n.story-heading {\n font-size: 1.8rem;\n font-weight: 600;\n margin-bottom: 0.5rem;\n color: #fff;\n font-family: 'Arial Unicode MS', sans-serif;\n}\n\n.story-subtitle-text {\n color: #888;\n font-size: 0.9rem;\n margin-bottom: 2rem;\n}\n\n.level-selector {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n margin-bottom: 1.5rem;\n}\n\n.level-btn {\n padding: 0.5rem 1rem;\n background-color: #333;\n border: 1px solid #444;\n color: #aaa;\n border-radius: 20px;\n cursor: pointer;\n font-size: 0.9rem;\n transition: all 0.2s ease;\n}\n\n.level-btn:hover {\n background-color: #444;\n border-color: #555;\n color: #fff;\n}\n\n.level-btn.active {\n background-color: #c9302c;\n color: #fff;\n border-color: #c9302c;\n}\n\n.story-line-group {\n margin-bottom: 1rem;\n}\n\n.story-nav {\n display: flex;\n justify-content: space-between;\n gap: 1rem;\n margin-top: 1.5rem;\n}\n\n.nav-btn {\n padding: 0.5rem 1rem;\n background-color: #333;\n border: 1px solid #444;\n color: #aaa;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9rem;\n transition: all 0.2s ease;\n}\n\n.nav-btn:hover:not(:disabled) {\n background-color: #444;\n color: #fff;\n}\n\n.nav-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.story-image-section {\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #252525;\n border-radius: 8px;\n overflow: hidden;\n min-height: 400px;\n}\n\n.story-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n.toc-tibetan-title {\n font-size: 1.3rem;\n color: #fff;\n font-family: 'Arial Unicode MS', sans-serif;\n margin-bottom: 0.25rem;\n}\n\n.toc-transliteration {\n color: #888;\n font-style: italic;\n margin-bottom: 0.25rem;\n}\n\n.toc-description {\n color: #ccc;\n margin-bottom: 1.5rem;\n}\n\n.book-toc {\n margin-top: 2rem;\n}\n\n.toc-heading {\n font-size: 1.1rem;\n font-weight: 600;\n color: #fff;\n margin-bottom: 1rem;\n}\n\n.chapter-toc {\n list-style: none;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.chapter-toc-item {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 0.75rem 1rem;\n background-color: #252525;\n border: 1px solid #333;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.chapter-toc-item:hover {\n background-color: #2e2e2e;\n border-color: #444;\n}\n\n.chapter-toc-number {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 2rem;\n height: 2rem;\n border-radius: 50%;\n background-color: #333;\n color: #aaa;\n font-size: 0.9rem;\n font-weight: 600;\n}\n\n.chapter-toc-titles {\n display: flex;\n flex-direction: column;\n gap: 0.15rem;\n}\n\n.chapter-toc-tibetan {\n color: #fff;\n font-family: 'Arial Unicode MS', sans-serif;\n font-size: 1.05rem;\n}\n\n.chapter-toc-english {\n color: #888;\n font-size: 0.85rem;\n}\n\n.toc-start-btn {\n margin-top: 1.5rem;\n padding: 0.6rem 1.5rem;\n background-color: #c9302c;\n border: 1px solid #c9302c;\n color: #fff;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.95rem;\n font-weight: 600;\n transition: all 0.2s ease;\n}\n\n.toc-start-btn:hover {\n background-color: #b32b27;\n}\n"],"names":[],"sourceRoot":""}
static/js/main.9e207bb7.js ADDED
The diff for this file is too large to render. See raw diff
 
static/js/main.9e207bb7.js.LICENSE.txt ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @license React
3
+ * react-dom.production.min.js
4
+ *
5
+ * Copyright (c) Facebook, Inc. and its affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+
11
+ /**
12
+ * @license React
13
+ * react-jsx-runtime.production.min.js
14
+ *
15
+ * Copyright (c) Facebook, Inc. and its affiliates.
16
+ *
17
+ * This source code is licensed under the MIT license found in the
18
+ * LICENSE file in the root directory of this source tree.
19
+ */
20
+
21
+ /**
22
+ * @license React
23
+ * react.production.min.js
24
+ *
25
+ * Copyright (c) Facebook, Inc. and its affiliates.
26
+ *
27
+ * This source code is licensed under the MIT license found in the
28
+ * LICENSE file in the root directory of this source tree.
29
+ */
30
+
31
+ /**
32
+ * @license React
33
+ * scheduler.production.min.js
34
+ *
35
+ * Copyright (c) Facebook, Inc. and its affiliates.
36
+ *
37
+ * This source code is licensed under the MIT license found in the
38
+ * LICENSE file in the root directory of this source tree.
39
+ */
static/js/main.9e207bb7.js.map ADDED
The diff for this file is too large to render. See raw diff