From 7cbd1125852e4ea421bc6fed1024136ff1466ea9 Mon Sep 17 00:00:00 2001 From: Yuri Karamian Date: Wed, 3 Jun 2026 14:11:10 +0200 Subject: [PATCH] Cross-platform groundwork: platform detection, iOS config, Windows drag-drop fix, Android 10 storage fix (#72), bundled fonts --- .gitignore | 10 +- src-tauri/Cargo.toml | 2 +- src-tauri/gen/android/.editorconfig | 12 ++ src-tauri/gen/android/.gitignore | 19 ++ src-tauri/gen/android/app/.gitignore | 6 + src-tauri/gen/android/app/build.gradle.kts | 92 +++++++++ src-tauri/gen/android/app/proguard-rules.pro | 22 +++ .../android/app/src/main/AndroidManifest.xml | 42 ++++ .../java/com/helixnotes/app/MainActivity.kt | 150 ++++++++++++++ .../drawable-v24/ic_launcher_foreground.xml | 30 +++ .../res/drawable/ic_launcher_background.xml | 10 + .../app/src/main/res/layout/activity_main.xml | 18 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2209 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 7263 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 2035 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1990 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 4661 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 1974 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4080 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 10148 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 4623 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6428 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 15891 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 7458 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 8976 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 22432 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 10025 bytes .../app/src/main/res/values-night/themes.xml | 8 + .../app/src/main/res/values/colors.xml | 10 + .../res/values/ic_launcher_background.xml | 4 + .../app/src/main/res/values/strings.xml | 4 + .../app/src/main/res/values/themes.xml | 9 + .../app/src/main/res/xml/file_paths.xml | 5 + src-tauri/gen/android/build.gradle.kts | 22 +++ .../gen/android/buildSrc/build.gradle.kts | 23 +++ .../com/helixnotes/app/kotlin/BuildTask.kt | 68 +++++++ .../com/helixnotes/app/kotlin/RustPlugin.kt | 85 ++++++++ src-tauri/gen/android/gradle.properties | 24 +++ .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + src-tauri/gen/android/gradlew | 185 ++++++++++++++++++ src-tauri/gen/android/gradlew.bat | 89 +++++++++ src-tauri/gen/android/settings.gradle | 3 + src-tauri/src/commands.rs | 36 ++-- src-tauri/src/lib.rs | 30 +-- src-tauri/src/search/mod.rs | 14 +- src-tauri/src/vault/operations.rs | 10 +- src-tauri/tauri.ios.conf.json | 8 + src-tauri/tauri.windows.conf.json | 18 ++ src/app.css | 43 ++++ src/lib/components/AppLayout.svelte | 2 +- src/lib/components/Editor.svelte | 70 +++++-- src/lib/components/GraphView.svelte | 2 +- src/lib/components/InfoPanel.svelte | 2 +- src/lib/components/NoteList.svelte | 2 +- src/lib/components/SearchPanel.svelte | 2 +- src/lib/components/SettingsPanel.svelte | 4 +- src/lib/components/Sidebar.svelte | 2 +- src/lib/components/VaultPicker.svelte | 42 +++- src/lib/platform.ts | 7 + src/routes/+layout.svelte | 21 +- .../jetbrains-mono/JetBrainsMono-Bold.woff2 | Bin 0 -> 21908 bytes .../JetBrainsMono-BoldItalic.woff2 | Bin 0 -> 23116 bytes .../jetbrains-mono/JetBrainsMono-Italic.woff2 | Bin 0 -> 22228 bytes .../JetBrainsMono-Regular.woff2 | Bin 0 -> 21168 bytes static/fonts/jetbrains-mono/OFL.txt | 93 +++++++++ 67 files changed, 1294 insertions(+), 77 deletions(-) create mode 100644 src-tauri/gen/android/.editorconfig create mode 100644 src-tauri/gen/android/.gitignore create mode 100644 src-tauri/gen/android/app/.gitignore create mode 100644 src-tauri/gen/android/app/build.gradle.kts create mode 100644 src-tauri/gen/android/app/proguard-rules.pro create mode 100644 src-tauri/gen/android/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/gen/android/app/src/main/java/com/helixnotes/app/MainActivity.kt create mode 100644 src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/gen/android/app/src/main/res/layout/activity_main.xml create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/values-night/themes.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/colors.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/strings.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/themes.xml create mode 100644 src-tauri/gen/android/app/src/main/res/xml/file_paths.xml create mode 100644 src-tauri/gen/android/build.gradle.kts create mode 100644 src-tauri/gen/android/buildSrc/build.gradle.kts create mode 100644 src-tauri/gen/android/buildSrc/src/main/java/com/helixnotes/app/kotlin/BuildTask.kt create mode 100644 src-tauri/gen/android/buildSrc/src/main/java/com/helixnotes/app/kotlin/RustPlugin.kt create mode 100644 src-tauri/gen/android/gradle.properties create mode 100644 src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 src-tauri/gen/android/gradlew create mode 100644 src-tauri/gen/android/gradlew.bat create mode 100644 src-tauri/gen/android/settings.gradle create mode 100644 src-tauri/tauri.ios.conf.json create mode 100644 src-tauri/tauri.windows.conf.json create mode 100644 src/lib/platform.ts create mode 100644 static/fonts/jetbrains-mono/JetBrainsMono-Bold.woff2 create mode 100644 static/fonts/jetbrains-mono/JetBrainsMono-BoldItalic.woff2 create mode 100644 static/fonts/jetbrains-mono/JetBrainsMono-Italic.woff2 create mode 100644 static/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2 create mode 100644 static/fonts/jetbrains-mono/OFL.txt diff --git a/.gitignore b/.gitignore index 639be47..38d6db9 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,15 @@ node_modules # Tauri /src-tauri/target -/src-tauri/gen + +# Track Android source (MainActivity.kt, manifest, proguard, gradle); Tauri's nested +# gen/android/.gitignore + app/.gitignore keep build/, .gradle/, .cxx/, generated/, *.so out. +/src-tauri/gen/* +!/src-tauri/gen/android/ + +# Never commit signing secrets (nested ignore misses keystore.properties) +/src-tauri/gen/android/keystore.properties +/src-tauri/gen/android/key.properties # OS .DS_Store diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index df6bcbc..58ce254 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -39,7 +39,7 @@ reqwest = { version = "0.12", default-features = false, features = ["json", "str futures = "0.3" rayon = "1" rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std", "tls12"] } -[target.'cfg(not(target_os = "android"))'.dependencies] +[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies] tauri-plugin-updater = "2" tauri-plugin-single-instance = "2" tauri-plugin-window-state = "2" diff --git a/src-tauri/gen/android/.editorconfig b/src-tauri/gen/android/.editorconfig new file mode 100644 index 0000000..ebe51d3 --- /dev/null +++ b/src-tauri/gen/android/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = false \ No newline at end of file diff --git a/src-tauri/gen/android/.gitignore b/src-tauri/gen/android/.gitignore new file mode 100644 index 0000000..b248203 --- /dev/null +++ b/src-tauri/gen/android/.gitignore @@ -0,0 +1,19 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +build +/captures +.externalNativeBuild +.cxx +local.properties +key.properties + +/.tauri +/tauri.settings.gradle \ No newline at end of file diff --git a/src-tauri/gen/android/app/.gitignore b/src-tauri/gen/android/app/.gitignore new file mode 100644 index 0000000..ea4c18b --- /dev/null +++ b/src-tauri/gen/android/app/.gitignore @@ -0,0 +1,6 @@ +/src/main/java/com/helixnotes/app/generated +/src/main/jniLibs/**/*.so +/src/main/assets/tauri.conf.json +/tauri.build.gradle.kts +/proguard-tauri.pro +/tauri.properties \ No newline at end of file diff --git a/src-tauri/gen/android/app/build.gradle.kts b/src-tauri/gen/android/app/build.gradle.kts new file mode 100644 index 0000000..3fa2f70 --- /dev/null +++ b/src-tauri/gen/android/app/build.gradle.kts @@ -0,0 +1,92 @@ +import java.util.Properties + +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("rust") +} + +val tauriProperties = Properties().apply { + val propFile = file("tauri.properties") + if (propFile.exists()) { + propFile.inputStream().use { load(it) } + } +} + +val keystoreProperties = Properties().apply { + val propFile = rootProject.file("keystore.properties") + if (propFile.exists()) { + propFile.inputStream().use { load(it) } + } +} + +android { + compileSdk = 36 + namespace = "com.helixnotes.app" + + if (keystoreProperties.containsKey("storeFile")) { + signingConfigs { + create("release") { + storeFile = file(keystoreProperties["storeFile"] as String) + storePassword = keystoreProperties["storePassword"] as String + keyAlias = keystoreProperties["keyAlias"] as String + keyPassword = keystoreProperties["keyPassword"] as String + } + } + } + + defaultConfig { + manifestPlaceholders["usesCleartextTraffic"] = "false" + applicationId = "com.helixnotes.app" + minSdk = 24 + targetSdk = 36 + versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() + versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") + } + buildTypes { + getByName("debug") { + manifestPlaceholders["usesCleartextTraffic"] = "true" + isDebuggable = true + isJniDebuggable = true + isMinifyEnabled = false + packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so") + jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so") + jniLibs.keepDebugSymbols.add("*/x86/*.so") + jniLibs.keepDebugSymbols.add("*/x86_64/*.so") + } + } + getByName("release") { + isMinifyEnabled = true + proguardFiles( + *fileTree(".") { include("**/*.pro") } + .plus(getDefaultProguardFile("proguard-android-optimize.txt")) + .toList().toTypedArray() + ) + if (signingConfigs.names.contains("release")) { + signingConfig = signingConfigs.getByName("release") + } + } + } + kotlinOptions { + jvmTarget = "1.8" + } + buildFeatures { + buildConfig = true + } +} + +rust { + rootDirRel = "../../../" +} + +dependencies { + implementation("androidx.webkit:webkit:1.14.0") + implementation("androidx.appcompat:appcompat:1.7.1") + implementation("androidx.activity:activity-ktx:1.10.1") + implementation("com.google.android.material:material:1.12.0") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.4") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") +} + +apply(from = "tauri.build.gradle.kts") \ No newline at end of file diff --git a/src-tauri/gen/android/app/proguard-rules.pro b/src-tauri/gen/android/app/proguard-rules.pro new file mode 100644 index 0000000..569ca18 --- /dev/null +++ b/src-tauri/gen/android/app/proguard-rules.pro @@ -0,0 +1,22 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Preserve JS interface annotations +-keepattributes JavascriptInterface + +# Keep our custom WebView JS bridge and all its public methods +-keep class com.helixnotes.app.StorageBridge { + public *; +} + +# Keep MainActivity public methods (called from StorageBridge) +-keep class com.helixnotes.app.MainActivity { + public *; +} + +# Ignore missing java.beans classes (referenced by Jackson but not available on Android) +-dontwarn java.beans.** diff --git a/src-tauri/gen/android/app/src/main/AndroidManifest.xml b/src-tauri/gen/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..3d56096 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src-tauri/gen/android/app/src/main/java/com/helixnotes/app/MainActivity.kt b/src-tauri/gen/android/app/src/main/java/com/helixnotes/app/MainActivity.kt new file mode 100644 index 0000000..5b64a56 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/java/com/helixnotes/app/MainActivity.kt @@ -0,0 +1,150 @@ +package com.helixnotes.app + +import android.Manifest +import android.content.Intent +import android.content.pm.PackageManager +import android.net.Uri +import android.os.Build +import android.os.Environment +import android.provider.Settings +import android.webkit.JavascriptInterface +import android.webkit.WebView +import android.webkit.MimeTypeMap +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat +import androidx.core.content.FileProvider +import java.io.File + +class MainActivity : TauriActivity() { + private var webView: WebView? = null + + companion object { + private const val STORAGE_PERMISSION_REQUEST_CODE = 1001 + } + + override fun onWebViewCreate(webView: WebView) { + super.onWebViewCreate(webView) + this.webView = webView + webView.addJavascriptInterface(StorageBridge(this), "Android") + } + + override fun onResume() { + super.onResume() + if (hasStoragePermission()) { + webView?.evaluateJavascript( + "window.__storagePermissionGranted && window.__storagePermissionGranted()", + null + ) + } + } + + fun hasStoragePermission(): Boolean { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + // Android 11+ (API 30+): "All files access" special permission. + Environment.isExternalStorageManager() + } else { + // Android 7-10 (API 24-29): legacy runtime storage permission. + ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == + PackageManager.PERMISSION_GRANTED + } + } + + fun requestStoragePermission() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + if (Environment.isExternalStorageManager()) return + try { + val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION) + intent.data = Uri.parse("package:$packageName") + startActivity(intent) + } catch (e: Exception) { + try { + val fallback = Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION) + startActivity(fallback) + } catch (_: Exception) { + val details = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) + details.data = Uri.parse("package:$packageName") + startActivity(details) + } + } + } else { + // Android 7-10: request the legacy runtime permission directly. + ActivityCompat.requestPermissions( + this, + arrayOf( + Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE + ), + STORAGE_PERMISSION_REQUEST_CODE + ) + } + } + + override fun onRequestPermissionsResult( + requestCode: Int, + permissions: Array, + grantResults: IntArray + ) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults) + if (requestCode == STORAGE_PERMISSION_REQUEST_CODE && hasStoragePermission()) { + webView?.evaluateJavascript( + "window.__storagePermissionGranted && window.__storagePermissionGranted()", + null + ) + } + } + + fun prepareVaultDir(path: String): Boolean { + return try { + val dir = File(path) + dir.mkdirs() + File(dir, ".helixnotes/trash").mkdirs() + File(dir, ".helixnotes/attachments").mkdirs() + dir.exists() && dir.canWrite() + } catch (e: Exception) { + false + } + } + + fun openFile(path: String) { + try { + val file = File(path) + if (!file.exists()) return + val uri = FileProvider.getUriForFile(this, "${packageName}.fileprovider", file) + val ext = MimeTypeMap.getFileExtensionFromUrl(path) + val mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext) ?: "*/*" + val intent = Intent(Intent.ACTION_VIEW).apply { + setDataAndType(uri, mime) + addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + } + startActivity(intent) + } catch (e: Exception) { + android.util.Log.e("HelixNotes", "Failed to open file: $path", e) + } + } +} + +class StorageBridge(private val activity: MainActivity) { + @JavascriptInterface + fun hasStoragePermission(): Boolean { + return activity.hasStoragePermission() + } + + @JavascriptInterface + fun requestStoragePermission() { + activity.runOnUiThread { + activity.requestStoragePermission() + } + } + + @JavascriptInterface + fun prepareVaultDir(path: String): Boolean { + return activity.prepareVaultDir(path) + } + + @JavascriptInterface + fun openFile(path: String) { + activity.runOnUiThread { + activity.openFile(path) + } + } +} diff --git a/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml b/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..069d0d5 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,10 @@ + + + + diff --git a/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml b/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..4fc2444 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..2ffbf24 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f19fd59b994201c1601b100b8405b32b529b1d6e GIT binary patch literal 2209 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..83a807f6be42b4d4e57c351af9dd9ed701d369f0 GIT binary patch literal 2035 zcmVu*#=6hHUw-hH**rMrDoD{Y}gYK=7p<5wYQB8ml+NCTftjEeC?)x^KRX!L`zq9$rg zv=~6FC=k*JG10_8h()y07D}N&p^x2mxBGtF@%(1nVoJNa-EL{3OmcU2=AM~z&dix} ze)o)#{sYB$SBd|c5)~B>E7^=28agAERf*lZ_86?zmq^#WSxyxvRdrA(^fB$((@g6h z*^tOa4&{GoP9>!c_ZODb)jjsi+coi6JWnGt2@+YZhu~2P#VA5X%@{cO{aXX$BYnLi z!`*)^*-q?!?bi<+g|(X^LC;#>#E=vs`7E|5^0BX|AakCx$Ls0uJbAEn@3o;*y*X3j z=@$<^d2iK*_r|ZCTdR`}!Q-l`>OyWoE-aFFgttW3g$nCX6$2HnZ0xx*c;fXRK7ID+ zqLqLGrM5NugJE|bDQZLrof# zB4OWXSc%kGWo?oC?Oi(zSkaar27D5lc z;P3NZr;S_QuSQ?z@%?&QB>*KPAmBg-*Ei)x=VcX%Bq+~jr0RPMWF3y^DV4zcf74@p zDm8>qqy#Y$&PPw%haFT_UZtdr*uX+eN{GZX6N$x~D+&SD)fLjtt+iBAWTlbO5Vd#o z)A_z}GMf!pfH~<~nwh?s>D?jPcc`EKo`ZgN95LugE3(>NX6rb^{|4vZi6oe#DJYTJ zBnt9Pv~yc6)zvyE8r7+8wS!u=t|o`WOwpLm%#sU+8g2Bqu)?5|^feB-0GKBeQ=E}c zB<44#B%C&86bBOtom@^cmAI@lJQ}8iE@;dhA$x&F`Boz{6SJ5L*>5i}NjlJD9CpxE zXqNM33-_{iod$zSZcl_p#zItDY$21Tl9Ppj5>6?Un5DFsdT-*|B!;p}UKT>3u0O}>Z>pkI_Z0AVLY$07Rn};u|7`ad)43%* z#$i0>!F)p8;g2FPG@Dd;h~NF_92FN?=;m;cR2J^VU2EyNEj9G{*F7}Gt6ao8fOa&R zpwHTSN#|WDE49(+SePdLQJ%+;wE~MWr|AN(;t$5?!X+<7<2w0#G5V(C64~=L+P1lx z^7D+cMjQQj4?56e9L6uUsEdaNBv&%erje2DI-ft22Cw<)+aCvLWqBUG`N{*bMjQQj z4?55v7J{APsg*!-7rD_S zhE>vHCqRaMjD7n0y?hQ->XTULB6+m zlDjBKEzb8rG_42@Fg|GBX*(xP0xJqHG*=|PML&_GXFLV;3I$AQBey~cHI|ewxR)2@ zMrw0Hc3Nu3xly?va!clC0qhe9#%bWnq^#j(QWd0p3M{*arQC-(nk>WFN+O#YdLq;aC5PI+hf4gHP{dBl>0DYUD*r9fHb%~5z zEV9#Po3n>^!+6{G;2eTYKbeBY%;>>aF+z^<(Y`)uAw}y%#&H7a^@;KRPDVIvQmRhN zP{0@bAqV8yvANwacHx)!g3_3ttK9<+ZEW2b^4%!InUbl+JD2|B+^?`WDP?!NEDf+IHW2L`YH+-kFy;!s%ul{mE+}hl<-am` zvUMoUJw@6GbNG|3$3}v`?{HQ&@cB@YjN;u8oE222m?=4UD3Y8Hi=$|YP|eQDrk>%z zMNaE)KeqnScP%-&DXOSws^7S6?@NxN>c=AicaCq0a8tlojJ*&Jv3LB|O%W70{o9-2 zoL)SZmfqj6qGU~dZtv{EWKwPZ6Fv4$Z)@wI z+}&e8BLf-Yz+7&0$#$ZwtV&T0<>_K!+A9b>af8asT{Jrq-@S~#tHd&te*o;s6PPa) RtcCyp002ovPDHLkV1h$<>(BrI literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..48ad3c9970f08943501aff9863455dd4e7931ae5 GIT binary patch literal 1990 zcmV;%2RZnOP)RMX(FDfD6QmxPglBpwUFMMj{9r5~Do%q=_U}qffqwFCs`> zs)8FvjdhDCqEcgH6ewG*3Z=BPK+AMGbMM@H{J%3ZQe--9r$sdOHYam?&cB`i{M-4j zLI3f`7~jD72F5p#*%Mr`T2wWK#qqvFLerRxlp`Y`1bJSJ&I^{v=Gg(+w{fk^L=G`h zgyNdDdeyYg#5XgpawBUVm1Chrf88_UnqA-N&8;`fw#J9uv$BE7MPxzdvvoMYkvswT*m(H>*xydO#nJJ;23e0=+~#gB=J&F^a` ze&6Md`UD_62$faeGU3|AYo0Z9YbDtBhq}mWB0KS3LbjmSIcn3ad{uovBRF@ zM4*!^$|@Jm?dd)Ip1=J1XjbU32!)OhDx;Qe1F-qlhNmSoA9eZ{c&;5`otey3$0;OK zI0l0aiD`m1cz_ppf;VJH_h{*&4ICCW53_MuKddhQSr6>Y1H8Z!ydeW*8Sw@XD)9@4 zRoa%GHbht-NeURkxxq_lao(q78MY4~N&Q|~Eo%;!7?sy8c`6#}E)a_AnXECR^Wnpv zHBBhH9xSIN*WvTPNw>k69To+p6;`0D|AielUhev)Rtx8+#^Id+GAxo5;yglSJldqz z8-xw@In*C<)vputQbJ-5YXe~iPu@a+r^&n_17v|r!_EUJ5Ads!6ykh}eJVxDxKLNu z6w&NidDPY(rq8#vDFH1*<1ibSkUf-ahRgEnbjwXssCaUKntth~9Zj8N8rom9&d@FM zh71E`8rB9>ZIg`df>OqLm;BZOgDvabwNEP5E-E(^xEu3FW zjw9)+IfZI%d*czx4w~e;GDVg<#W^X{@SJ#v!VH3W%#bZwX&%BKIU1(klMYpu<!u_(YMlFfqVWLp%A zA;Xdyv6xhI&@^BG3mo8r253on4(U^b)v~>B zsNbVtYildXGBsMeez$V^iMbYa9gA=%)fiqVTA4oDXm*cdN3`+#4C+1}C4=81wo9*U zK0s57gS7a@QZ?}Y%3BB28ejkm9Nc!xsnD!27a0%gN7c2(N$z zjy*`(@sF4g5|NWA5AMFbLWR+TEGUFR65F(;ML8@Uyx+fcI;~oE@n2!|=jLPd=9XVo zs72(;G!l*K1ftCRrfZ97(fkq$227P%t12ea+aLURP1v{DyznV!H9 zh6zTv080KtRf*#-EC{HKyRW5(dU+G3i5M@{Fil;}?K{w;U;qmo;DUytB{RDP8L6{u zj7~2^MaoPJEutjGGq9Xi7Z;Tyl94LzGq1BRbaqEhE2lvtwf&1kL8_f5)37#xb{{30 zPAIg{`uO`{B{c?`lrv zEE7Vn674>8%+PewR0AS48=NevOhhC6nuC-Fn8VsY*ugDTN|fPIY4-%XqDLVMWE%FJ z7b4UW(sKo>Y39vCW-x&3s+)6wZQiu}h?*O|X5m}7xf^EQ-EDj2 zsJ{>7aF=)*x7UB>Ugc%?Jvpzivv5_>%$gei7_`@sBpi-(2X^lG0saP)MSJ~t^ZQ~< z+Uv=uh&$CmZnU=i%RX>q@QLYpy?WZGV%u5y#I#VRbJ#K2z<>TDAB}$}9^b(D2L4sg YpIDI$Cv2@cq5uE@07*qoM6N<$f_LJ{`2YX_ literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..38d584748ad1ebfdc70232b7fc07ebf9de9b0b80 GIT binary patch literal 4661 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 IM6N<$g4W5>p8x;= literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..9ce72047d304e2b8ed2edad563ef63dd948e6862 GIT binary patch literal 4080 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 OFtSogl3;O@;Qs-jrI%Fz literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..55f776d02fa147380f3290e7744f86c58381f584 GIT binary patch literal 4623 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d63d54040bfea95359b79b054ff4ef4c5dae11a8 GIT binary patch literal 6428 zcmb7}Wl$SH_wGZ0Qe27`2^v~Lk>CU<(&9~kV#OgyarZ)Tf?KhMB1MW@DHL~#7uO=e zDelhg`~L5pd%xZfyF2sDv%52U&dk~Q9Teh?0x3 zsRsaPSC!;t-g?dL84|iBPiD3*nOh1Zc>?h(SYX)i6cOHRAYf$sCP5+hRBa>SkHW&T z`7iHAX3MqrzU*&Lef53Q=wMhQW3;142#1ZXA0<`Y!(XZZ0m}ERXm?jAUeZJy zpKLxckhPg8)pj)YPQ6-)f~RfY#6BLuFuHms84g^!#n5b?0sdk z_nSs#0+TEJwPhu6(Qz$eR0j!-+I${~F&%W_D<}{JS8vr6sSkU9EV9vYT`l}`)SB#7 z#|4JlPZp|PMeAtU3$uT`mKh(I`nJdqo$T*tjw1dnXm857nO;L}a96V(+tjh0k?TYC zidRE)#Pqo<|L{a|Ph1D&+BnVs8ZxX;Ibdz=`bz4-t`mDQa`NgZq1EnUwK_6V%cs-1 zd(QYSk^{@_QHHv(UZ$=O*w_6|&Mdfp^N-|*WY6}Dqa<$X&oG0zRa?k+qB$!qwl1#H zRF0#G4e6sNZKP3B(H7~0G8wP51M4!=c5~+B^rfuDt8PMfNV7_N-0LcQbju`fVe>kM z=1PF>Z`N}z&FgLRL92s}_bb(CbnXpU^_>wp$<=XCpf+ZgzU*!H5^CHv$Fblmg&H#| z$-00!vV%u+a{=i9$8v3Ok@y?ycWDXNxvTJKIWw8u_VwrkTF)HLephduo}25B9@tpW zM0iYQURZ3!GH(y7>SQ;De*Bt&gQhh}cEcGGYwN3p_@>h;xvZ+Uv%RyZ$|`&uN0YBD#0 zNkz*&ln?v#TPm%WnX%nby4Efh%AP6aQmMn)&{edYN&0=Ca%VJCX^EcaX@f=UZ~b}F z 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 M>WzH4tVz)S0-f4&w*UYD literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..56cf5aace44da82b1c34933589791517ade0c08c GIT binary patch literal 15891 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..da7a48e39301e168600888da53e03aa57ecd05bb GIT binary patch literal 7458 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 Fe*wpFWcdI9 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d2059074857d714cd02938184149dedf40fdf6b9 GIT binary patch literal 8976 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..18b1f312e2d56231799cf17602d9e71549f0428a GIT binary patch literal 22432 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..25a20333e07def298ce8efc324188fbcb9dfaf12 GIT binary patch literal 10025 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 PZ~!SWdC@9iegFRh#b}S8 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/values-night/themes.xml b/src-tauri/gen/android/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..911a468 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values-night/themes.xml @@ -0,0 +1,8 @@ + + + + diff --git a/src-tauri/gen/android/app/src/main/res/values/colors.xml b/src-tauri/gen/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml b/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..ea9c223 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #fff + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/values/strings.xml b/src-tauri/gen/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..457996c --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + HelixNotes + HelixNotes + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/values/themes.xml b/src-tauri/gen/android/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..16272ed --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/themes.xml @@ -0,0 +1,9 @@ + + + + diff --git a/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml b/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..782d63b --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src-tauri/gen/android/build.gradle.kts b/src-tauri/gen/android/build.gradle.kts new file mode 100644 index 0000000..607240b --- /dev/null +++ b/src-tauri/gen/android/build.gradle.kts @@ -0,0 +1,22 @@ +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle:8.11.0") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +tasks.register("clean").configure { + delete("build") +} + diff --git a/src-tauri/gen/android/buildSrc/build.gradle.kts b/src-tauri/gen/android/buildSrc/build.gradle.kts new file mode 100644 index 0000000..5c55bba --- /dev/null +++ b/src-tauri/gen/android/buildSrc/build.gradle.kts @@ -0,0 +1,23 @@ +plugins { + `kotlin-dsl` +} + +gradlePlugin { + plugins { + create("pluginsForCoolKids") { + id = "rust" + implementationClass = "RustPlugin" + } + } +} + +repositories { + google() + mavenCentral() +} + +dependencies { + compileOnly(gradleApi()) + implementation("com.android.tools.build:gradle:8.11.0") +} + diff --git a/src-tauri/gen/android/buildSrc/src/main/java/com/helixnotes/app/kotlin/BuildTask.kt b/src-tauri/gen/android/buildSrc/src/main/java/com/helixnotes/app/kotlin/BuildTask.kt new file mode 100644 index 0000000..f764e2a --- /dev/null +++ b/src-tauri/gen/android/buildSrc/src/main/java/com/helixnotes/app/kotlin/BuildTask.kt @@ -0,0 +1,68 @@ +import java.io.File +import org.apache.tools.ant.taskdefs.condition.Os +import org.gradle.api.DefaultTask +import org.gradle.api.GradleException +import org.gradle.api.logging.LogLevel +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction + +open class BuildTask : DefaultTask() { + @Input + var rootDirRel: String? = null + @Input + var target: String? = null + @Input + var release: Boolean? = null + + @TaskAction + fun assemble() { + val executable = """pnpm"""; + try { + runTauriCli(executable) + } catch (e: Exception) { + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + // Try different Windows-specific extensions + val fallbacks = listOf( + "$executable.exe", + "$executable.cmd", + "$executable.bat", + ) + + var lastException: Exception = e + for (fallback in fallbacks) { + try { + runTauriCli(fallback) + return + } catch (fallbackException: Exception) { + lastException = fallbackException + } + } + throw lastException + } else { + throw e; + } + } + } + + fun runTauriCli(executable: String) { + val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null") + val target = target ?: throw GradleException("target cannot be null") + val release = release ?: throw GradleException("release cannot be null") + val args = listOf("tauri", "android", "android-studio-script"); + + project.exec { + workingDir(File(project.projectDir, rootDirRel)) + executable(executable) + args(args) + if (project.logger.isEnabled(LogLevel.DEBUG)) { + args("-vv") + } else if (project.logger.isEnabled(LogLevel.INFO)) { + args("-v") + } + if (release) { + args("--release") + } + args(listOf("--target", target)) + }.assertNormalExitValue() + } +} \ No newline at end of file diff --git a/src-tauri/gen/android/buildSrc/src/main/java/com/helixnotes/app/kotlin/RustPlugin.kt b/src-tauri/gen/android/buildSrc/src/main/java/com/helixnotes/app/kotlin/RustPlugin.kt new file mode 100644 index 0000000..4aa7fca --- /dev/null +++ b/src-tauri/gen/android/buildSrc/src/main/java/com/helixnotes/app/kotlin/RustPlugin.kt @@ -0,0 +1,85 @@ +import com.android.build.api.dsl.ApplicationExtension +import org.gradle.api.DefaultTask +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.get + +const val TASK_GROUP = "rust" + +open class Config { + lateinit var rootDirRel: String +} + +open class RustPlugin : Plugin { + private lateinit var config: Config + + override fun apply(project: Project) = with(project) { + config = extensions.create("rust", Config::class.java) + + val defaultAbiList = listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64"); + val abiList = (findProperty("abiList") as? String)?.split(',') ?: defaultAbiList + + val defaultArchList = listOf("arm64", "arm", "x86", "x86_64"); + val archList = (findProperty("archList") as? String)?.split(',') ?: defaultArchList + + val targetsList = (findProperty("targetList") as? String)?.split(',') ?: listOf("aarch64", "armv7", "i686", "x86_64") + + extensions.configure { + @Suppress("UnstableApiUsage") + flavorDimensions.add("abi") + productFlavors { + create("universal") { + dimension = "abi" + ndk { + abiFilters += abiList + } + } + defaultArchList.forEachIndexed { index, arch -> + create(arch) { + dimension = "abi" + ndk { + abiFilters.add(defaultAbiList[index]) + } + } + } + } + } + + afterEvaluate { + for (profile in listOf("debug", "release")) { + val profileCapitalized = profile.replaceFirstChar { it.uppercase() } + val buildTask = tasks.maybeCreate( + "rustBuildUniversal$profileCapitalized", + DefaultTask::class.java + ).apply { + group = TASK_GROUP + description = "Build dynamic library in $profile mode for all targets" + } + + tasks["mergeUniversal${profileCapitalized}JniLibFolders"].dependsOn(buildTask) + + for (targetPair in targetsList.withIndex()) { + val targetName = targetPair.value + val targetArch = archList[targetPair.index] + val targetArchCapitalized = targetArch.replaceFirstChar { it.uppercase() } + val targetBuildTask = project.tasks.maybeCreate( + "rustBuild$targetArchCapitalized$profileCapitalized", + BuildTask::class.java + ).apply { + group = TASK_GROUP + description = "Build dynamic library in $profile mode for $targetArch" + rootDirRel = config.rootDirRel + target = targetName + release = profile == "release" + } + + buildTask.dependsOn(targetBuildTask) + tasks["merge$targetArchCapitalized${profileCapitalized}JniLibFolders"].dependsOn( + targetBuildTask + ) + } + } + } + } +} \ No newline at end of file diff --git a/src-tauri/gen/android/gradle.properties b/src-tauri/gen/android/gradle.properties new file mode 100644 index 0000000..2a7ec69 --- /dev/null +++ b/src-tauri/gen/android/gradle.properties @@ -0,0 +1,24 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true +android.nonFinalResIds=false \ No newline at end of file diff --git a/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar b/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties b/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c5f9a53 --- /dev/null +++ b/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue May 10 19:22:52 CST 2022 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/src-tauri/gen/android/gradlew b/src-tauri/gen/android/gradlew new file mode 100755 index 0000000..4f906e0 --- /dev/null +++ b/src-tauri/gen/android/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/src-tauri/gen/android/gradlew.bat b/src-tauri/gen/android/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/src-tauri/gen/android/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/src-tauri/gen/android/settings.gradle b/src-tauri/gen/android/settings.gradle new file mode 100644 index 0000000..3939116 --- /dev/null +++ b/src-tauri/gen/android/settings.gradle @@ -0,0 +1,3 @@ +include ':app' + +apply from: 'tauri.settings.gradle' diff --git a/src-tauri/src/commands.rs b/src-tauri/src/commands.rs index ce45fe8..efc2396 100644 --- a/src-tauri/src/commands.rs +++ b/src-tauri/src/commands.rs @@ -11,18 +11,18 @@ use tauri::{AppHandle, Manager, State}; pub fn open_vault(app: AppHandle, state: State<'_, AppState>, path: String) -> Result<(), String> { operations::ensure_vault_structure(&path)?; - // Initialize search index - rebuild in background on Android (FUSE is slow) + // Initialize search index - rebuild in background on mobile (sandboxed FS is slow) let search = std::sync::Arc::new(SearchIndex::new(&path)?); - #[cfg(target_os = "android")] + #[cfg(mobile)] { let search_bg = search.clone(); let vault = path.clone(); std::thread::spawn(move || { let _ = search_bg.rebuild(&vault); - log::info!("Android: search index rebuild complete"); + log::info!("mobile: search index rebuild complete"); }); } - #[cfg(not(target_os = "android"))] + #[cfg(desktop)] { search.rebuild(&path)?; } @@ -670,7 +670,7 @@ pub fn save_vault_state(state: State<'_, AppState>, vault_state: VaultState) -> /// Read image from system clipboard (bypasses WebKitGTK clipboard bug). /// Returns PNG bytes as Vec, or error if no image on clipboard. -#[cfg(not(target_os = "android"))] +#[cfg(desktop)] #[tauri::command] pub fn read_clipboard_image() -> Result, String> { let mut clipboard = @@ -695,14 +695,14 @@ pub fn read_clipboard_image() -> Result, String> { Ok(buf) } -#[cfg(target_os = "android")] +#[cfg(mobile)] #[tauri::command] pub fn read_clipboard_image() -> Result, String> { Err("Clipboard image reading not supported on Android".to_string()) } /// Copy an image file to the system clipboard. -#[cfg(not(target_os = "android"))] +#[cfg(desktop)] #[tauri::command] pub fn copy_image_to_clipboard(path: String) -> Result<(), String> { let data = std::fs::read(&path).map_err(|e| format!("Failed to read image: {}", e))?; @@ -722,14 +722,14 @@ pub fn copy_image_to_clipboard(path: String) -> Result<(), String> { Ok(()) } -#[cfg(target_os = "android")] +#[cfg(mobile)] #[tauri::command] pub fn copy_image_to_clipboard(_path: String) -> Result<(), String> { Err("Clipboard image copy not supported on Android".to_string()) } /// Copy PNG bytes directly to the system clipboard. -#[cfg(not(target_os = "android"))] +#[cfg(desktop)] #[tauri::command] pub fn copy_png_to_clipboard(data: Vec) -> Result<(), String> { let img = image::load_from_memory(&data) @@ -748,7 +748,7 @@ pub fn copy_png_to_clipboard(data: Vec) -> Result<(), String> { Ok(()) } -#[cfg(target_os = "android")] +#[cfg(mobile)] #[tauri::command] pub fn copy_png_to_clipboard(_data: Vec) -> Result<(), String> { Err("Clipboard image copy not supported on Android".to_string()) @@ -1798,17 +1798,21 @@ pub fn ai_ask( // ── Helpers ── -static ANDROID_CONFIG_DIR: std::sync::OnceLock = std::sync::OnceLock::new(); +// On mobile (Android + iOS) the OS config dir is injected at startup via the Tauri +// path resolver, since dirs::config_dir() is not reliable in the app sandbox. +static MOBILE_CONFIG_DIR: std::sync::OnceLock = std::sync::OnceLock::new(); -pub fn set_android_config_dir(path: std::path::PathBuf) { - let _ = ANDROID_CONFIG_DIR.set(path); +pub fn set_mobile_config_dir(path: std::path::PathBuf) { + let _ = MOBILE_CONFIG_DIR.set(path); } fn app_config_path() -> Result { - let app_dir = if let Some(config_dir) = dirs::config_dir() { + // Prefer the injected mobile dir when present (set only on mobile); fall back to + // the platform config dir on desktop. + let app_dir = if let Some(mobile_dir) = MOBILE_CONFIG_DIR.get() { + mobile_dir.join("helixnotes") + } else if let Some(config_dir) = dirs::config_dir() { config_dir.join("helixnotes") - } else if let Some(android_dir) = ANDROID_CONFIG_DIR.get() { - android_dir.join("helixnotes") } else { return Err("Config directory not available yet".to_string()); }; diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 3db775b..6be7ad1 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -11,7 +11,7 @@ use state::AppState; #[allow(unused_imports)] use tauri::{Emitter, Manager}; -#[cfg(not(target_os = "android"))] +#[cfg(desktop)] use tauri::{ image::Image, menu::{MenuBuilder, MenuItemBuilder}, @@ -20,14 +20,20 @@ use tauri::{ #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { + // Work around blank window from WebKitGTK DMABUF/GBM allocation failures on some Linux GPUs. + #[cfg(target_os = "linux")] + if std::env::var_os("WEBKIT_DISABLE_DMABUF_RENDERER").is_none() { + std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1"); + } + rustls::crypto::ring::default_provider() .install_default() .expect("Failed to install rustls crypto provider"); let config = commands::load_app_config(); - #[cfg(not(target_os = "android"))] + #[cfg(desktop)] let show_tray = config.show_tray_icon; - #[cfg(not(target_os = "android"))] + #[cfg(desktop)] let close_to_tray = config.close_to_tray && show_tray; let app_state = AppState::new(config); @@ -44,28 +50,28 @@ pub fn run() { )?; } - // On Android, set config dir from Tauri's path resolver, then reload config - #[cfg(target_os = "android")] + // On mobile, set config dir from Tauri's path resolver, then reload config + #[cfg(mobile)] { if let Ok(config_dir) = app.path().config_dir() { - commands::set_android_config_dir(config_dir); + commands::set_mobile_config_dir(config_dir); } else if let Ok(data_dir) = app.path().data_dir() { - commands::set_android_config_dir(data_dir); + commands::set_mobile_config_dir(data_dir); } - // Reload config now that the Android config dir is available + // Reload config now that the mobile config dir is available let reloaded = commands::load_app_config(); let _ = app.state::().config.lock().map(|mut cfg| { *cfg = reloaded; }); } - #[cfg(not(target_os = "android"))] + #[cfg(desktop)] if show_tray { setup_tray(app)?; } // Check CLI args for a .md file path on initial launch - #[cfg(not(target_os = "android"))] + #[cfg(desktop)] { let file_arg = std::env::args().skip(1).find(|a| { let a = a.trim(); @@ -229,7 +235,7 @@ pub fn run() { }); }); - #[cfg(not(target_os = "android"))] + #[cfg(desktop)] { builder = builder.plugin(tauri_plugin_single_instance::init(|app, args, cwd| { // Always show/focus the main window @@ -290,7 +296,7 @@ pub fn run() { .expect("error while running tauri application"); } -#[cfg(not(target_os = "android"))] +#[cfg(desktop)] fn setup_tray(app: &mut tauri::App) -> Result<(), Box> { let show = MenuItemBuilder::with_id("show", "Show HelixNotes").build(app)?; let quit = MenuItemBuilder::with_id("quit", "Quit").build(app)?; diff --git a/src-tauri/src/search/mod.rs b/src-tauri/src/search/mod.rs index 4454fa3..1bc2a70 100644 --- a/src-tauri/src/search/mod.rs +++ b/src-tauri/src/search/mod.rs @@ -5,9 +5,9 @@ use std::fs; use std::path::Path; use std::sync::Mutex; use tantivy::collector::TopDocs; -#[cfg(not(target_os = "android"))] +#[cfg(desktop)] use tantivy::directory::MmapDirectory; -#[cfg(target_os = "android")] +#[cfg(mobile)] use tantivy::directory::RamDirectory; use tantivy::query::{BooleanQuery, FuzzyTermQuery, Occur, PhrasePrefixQuery, Query}; use tantivy::schema::*; @@ -34,14 +34,14 @@ impl SearchIndex { let tags_field = schema_builder.add_text_field("tags", TEXT | STORED); let schema = schema_builder.build(); - // Android: use in-memory index (flock doesn't work on /storage/emulated FUSE filesystem) + // Mobile: use in-memory index (flock is unreliable on the sandboxed/FUSE filesystem) // Desktop: use mmap directory for persistent index on disk - #[cfg(target_os = "android")] + #[cfg(mobile)] let index = { let dir = RamDirectory::create(); Index::open_or_create(dir, schema.clone()).map_err(|e| e.to_string())? }; - #[cfg(not(target_os = "android"))] + #[cfg(desktop)] let index = { let index_dir = helixnotes_dir(vault_path).join("search_index"); fs::create_dir_all(&index_dir).map_err(|e| e.to_string())?; @@ -49,9 +49,9 @@ impl SearchIndex { Index::open_or_create(dir, schema.clone()).map_err(|e| e.to_string())? }; - #[cfg(target_os = "android")] + #[cfg(mobile)] let heap_size = 15_000_000; - #[cfg(not(target_os = "android"))] + #[cfg(desktop)] let heap_size = 50_000_000; let writer = index.writer(heap_size).map_err(|e| e.to_string())?; diff --git a/src-tauri/src/vault/operations.rs b/src-tauri/src/vault/operations.rs index 7513116..9a0156e 100644 --- a/src-tauri/src/vault/operations.rs +++ b/src-tauri/src/vault/operations.rs @@ -194,8 +194,8 @@ pub fn scan_notes(vault_path: &str, notebook_path: Option<&str>) -> Result) -> Result = if notebook_path.is_some() { fs::read_dir(root) @@ -279,7 +279,7 @@ fn read_note_entry(path: &Path, vault_root: &Path) -> Result /// Android-only: reads just the frontmatter (first 2KB) for tags/title/pinned, /// uses filesystem timestamps for dates. No preview text. -#[cfg(target_os = "android")] +#[cfg(mobile)] fn read_note_entry_metadata_only(path: &Path, vault_root: &Path) -> Result { // Read first 2KB - enough for frontmatter with tags, title, pinned let mut file = fs::File::open(path).map_err(|e| e.to_string())?; diff --git a/src-tauri/tauri.ios.conf.json b/src-tauri/tauri.ios.conf.json new file mode 100644 index 0000000..7440caa --- /dev/null +++ b/src-tauri/tauri.ios.conf.json @@ -0,0 +1,8 @@ +{ + "$schema": "../node_modules/@tauri-apps/cli/config.schema.json", + "bundle": { + "iOS": { + "minimumSystemVersion": "14.0" + } + } +} diff --git a/src-tauri/tauri.windows.conf.json b/src-tauri/tauri.windows.conf.json new file mode 100644 index 0000000..5d87657 --- /dev/null +++ b/src-tauri/tauri.windows.conf.json @@ -0,0 +1,18 @@ +{ + "app": { + "windows": [ + { + "title": "HelixNotes", + "label": "main", + "width": 1200, + "height": 800, + "minWidth": 800, + "minHeight": 500, + "resizable": true, + "fullscreen": false, + "decorations": false, + "dragDropEnabled": false + } + ] + } +} diff --git a/src/app.css b/src/app.css index d938f01..20bd6e5 100644 --- a/src/app.css +++ b/src/app.css @@ -5,6 +5,37 @@ src: local("Inter"); } +/* JetBrains Mono - self-hosted (see static/fonts/jetbrains-mono/, OFL-1.1). + Used for code blocks, inline code, the raw source editor, and the "Mono" font option. */ +@font-face { + font-family: "JetBrains Mono"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url("/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2") format("woff2"); +} +@font-face { + font-family: "JetBrains Mono"; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url("/fonts/jetbrains-mono/JetBrainsMono-Italic.woff2") format("woff2"); +} +@font-face { + font-family: "JetBrains Mono"; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url("/fonts/jetbrains-mono/JetBrainsMono-Bold.woff2") format("woff2"); +} +@font-face { + font-family: "JetBrains Mono"; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url("/fonts/jetbrains-mono/JetBrainsMono-BoldItalic.woff2") format("woff2"); +} + :root { /* Light theme */ --bg-primary: #ffffff; @@ -32,6 +63,9 @@ --sidebar-width: 220px; --notelist-width: 280px; --panel-resize-handle: 3px; + /* Monospace / code font (self-hosted JetBrains Mono, see @font-face above) */ + --font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", ui-monospace, + monospace; } :root.dark { @@ -155,6 +189,15 @@ body.resizing .ProseMirror { contain: strict; } +/* Skip layout/paint of off-screen blocks in very large (math-heavy) notes. */ +.tiptap-wrapper.large-doc .ProseMirror > * { + content-visibility: auto; + contain-intrinsic-size: auto 2rem; +} +.tiptap-wrapper.large-doc .ProseMirror > .math-block { + contain-intrinsic-size: auto 3.5rem; +} + body.resizing { user-select: none; } diff --git a/src/lib/components/AppLayout.svelte b/src/lib/components/AppLayout.svelte index 26cb226..0ba938e 100644 --- a/src/lib/components/AppLayout.svelte +++ b/src/lib/components/AppLayout.svelte @@ -45,7 +45,7 @@ const appWindow = getCurrentWindow(); const isMac = navigator.platform.startsWith('Mac'); - const isMobile = /android|ios/i.test(navigator.userAgent); + const isMobile = /android|iphone|ipad|ipod/i.test(navigator.userAgent); const isAndroid = /android/i.test(navigator.userAgent); import { loadVaultState, saveVaultState, readNote, createDailyNote, createBackup, getPendingOpenFile, addQuickAccess, removeQuickAccess, getQuickAccess, setTheme } from '$lib/api'; import { debounce } from '$lib/utils/debounce'; diff --git a/src/lib/components/Editor.svelte b/src/lib/components/Editor.svelte index c352404..3d6e8c0 100644 --- a/src/lib/components/Editor.svelte +++ b/src/lib/components/Editor.svelte @@ -46,7 +46,7 @@ import GraphView from './GraphView.svelte'; const modKey = navigator.platform.startsWith('Mac') ? '⌘' : 'Ctrl'; - const isMobile = /android|ios/i.test(navigator.userAgent); + const isMobile = /android|iphone|ipad|ipod/i.test(navigator.userAgent); // Track virtual keyboard height on mobile via visualViewport let keyboardHeight = $state(0); @@ -59,6 +59,8 @@ let editorElement = $state(null!); let sourceElement = $state(null!); + const LARGE_DOC_CHARS = 100_000; + let isLargeDoc = $state(false); let editor: Editor | null = null; let editorReady = $state(false); let sourceContent = $state(''); @@ -245,6 +247,38 @@ editor.chain().focus().insertContent({ type: nodeType, attrs: { tex: trimmed } }).run(); } } + const katexCache = new Map(); + function renderKatex(tex: string, displayMode: boolean): string { + const key = (displayMode ? 'B:' : 'I:') + tex; + let html = katexCache.get(key); + if (html === undefined) { + try { + html = katex.renderToString(tex, { displayMode, throwOnError: false }); + } catch { + html = `${tex}`; + } + katexCache.set(key, html); + } + return html; + } + + let mathObserver: IntersectionObserver | null = null; + const mathPending = new WeakMap void>(); + function observeMath(dom: HTMLElement, render: () => void) { + if (!mathObserver) { + const root = (editorElement?.closest('.editor-body') as Element) ?? null; + mathObserver = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + const fn = mathPending.get(e.target); + if (fn) { mathPending.delete(e.target); mathObserver!.unobserve(e.target); fn(); } + } + }, { root, rootMargin: '1000px 0px' }); + } + mathPending.set(dom, render); + mathObserver.observe(dom); + } + function renderMathPreview(tex: string, displayMode: boolean): string { if (!tex.trim()) return ''; try { @@ -453,7 +487,7 @@ }, renderHTML({ HTMLAttributes }) { const tex = HTMLAttributes.tex || ''; - const rendered = katex.renderToString(tex, { displayMode: true, throwOnError: false }); + const rendered = renderKatex(tex, true); return ['div', { 'data-math-block': encodeURIComponent(tex), class: 'math-block', contenteditable: 'false' }, ['div', { innerHTML: rendered }]]; }, addNodeView() { @@ -462,14 +496,15 @@ dom.classList.add('math-block'); dom.contentEditable = 'false'; dom.setAttribute('data-math-block', encodeURIComponent(node.attrs.tex)); - dom.innerHTML = katex.renderToString(node.attrs.tex, { displayMode: true, throwOnError: false }); + const render = () => { dom.innerHTML = renderKatex(node.attrs.tex, true); }; + if (isLargeDoc) { dom.textContent = node.attrs.tex; observeMath(dom, render); } else { render(); } dom.addEventListener('dblclick', (e) => { e.preventDefault(); e.stopPropagation(); const pos = typeof getPos === 'function' ? getPos() : null; if (pos !== null && pos !== undefined) openMathEdit(pos, 'block', node.attrs.tex); }); - return { dom }; + return { dom, destroy() { mathObserver?.unobserve(dom); mathPending.delete(dom); } }; }; }, }); @@ -490,7 +525,7 @@ }, renderHTML({ HTMLAttributes }) { const tex = HTMLAttributes.tex || ''; - const rendered = katex.renderToString(tex, { displayMode: false, throwOnError: false }); + const rendered = renderKatex(tex, false); return ['span', { 'data-math-inline': encodeURIComponent(tex), class: 'math-inline', contenteditable: 'false' }, ['span', { innerHTML: rendered }]]; }, addNodeView() { @@ -499,14 +534,15 @@ dom.classList.add('math-inline'); dom.contentEditable = 'false'; dom.setAttribute('data-math-inline', encodeURIComponent(node.attrs.tex)); - dom.innerHTML = katex.renderToString(node.attrs.tex, { displayMode: false, throwOnError: false }); + const render = () => { dom.innerHTML = renderKatex(node.attrs.tex, false); }; + if (isLargeDoc) { dom.textContent = node.attrs.tex; observeMath(dom, render); } else { render(); } dom.addEventListener('dblclick', (e) => { e.preventDefault(); e.stopPropagation(); const pos = typeof getPos === 'function' ? getPos() : null; if (pos !== null && pos !== undefined) openMathEdit(pos, 'inline', node.attrs.tex); }); - return { dom }; + return { dom, destroy() { mathObserver?.unobserve(dom); mathPending.delete(dom); } }; }; }, }); @@ -1912,6 +1948,7 @@ loadedPath = path; lastSourceMode = $sourceMode; isLoadingNote = true; + isLargeDoc = content.length > LARGE_DOC_CHARS; // Apply default view mode when switching notes - but new notes always open in edit mode. // Viewer mode (external file) always forces read-only. const isViewer = !!get(viewerNote); @@ -2633,9 +2670,7 @@ if (!mathBlock) { mathBlock = []; continue; } const tex = mathBlock.join('\n').trim(); mathBlock = null; - try { - outLines.push(`

${katex.renderToString(tex, { displayMode: true, throwOnError: false })}
`); - } catch { outLines.push('$$', tex, '$$'); } + outLines.push(`
`); continue; } if (mathBlock) { mathBlock.push(line); continue; } @@ -2645,11 +2680,9 @@ let offset = 0; for (const m of processed.matchAll(/(?${katex.renderToString(tex, { displayMode: false, throwOnError: false })}`; - result = result.slice(0, m.index! + offset) + html + result.slice(m.index! + m[0].length + offset); - offset += html.length - m[0].length; - } catch { /* leave as-is */ } + const html = ``; + result = result.slice(0, m.index! + offset) + html + result.slice(m.index! + m[0].length + offset); + offset += html.length - m[0].length; } outLines.push(result); } @@ -2769,6 +2802,8 @@ editor.destroy(); editor = null; } + mathObserver?.disconnect(); + mathObserver = null; editorReady = false; closeSlashMenu(); } @@ -2777,6 +2812,7 @@ if (!editorElement) return; destroyEditor(); + isLargeDoc = content.length > LARGE_DOC_CHARS; const html = markdownToHtml(content); editor = new Editor({ @@ -4312,7 +4348,7 @@ spellcheck="false" > -
{ closeLinkContextMenu(); handleEditorClick(e); showOutline = false; }}>
+
{ closeLinkContextMenu(); handleEditorClick(e); showOutline = false; }}>
{:else} {#if $sourceMode} @@ -4420,7 +4456,7 @@ > {:else} -
{ closeLinkContextMenu(); handleEditorClick(e); showOutline = false; }} oncontextmenu={handleEditorContextMenu}>
+
{ closeLinkContextMenu(); handleEditorClick(e); showOutline = false; }} oncontextmenu={handleEditorContextMenu}>
{/if} {/if} diff --git a/src/lib/components/GraphView.svelte b/src/lib/components/GraphView.svelte index 458bb65..bde8ad9 100644 --- a/src/lib/components/GraphView.svelte +++ b/src/lib/components/GraphView.svelte @@ -8,7 +8,7 @@ onnavigate: (path: string, title: string) => void; } = $props(); - const isMobile = /android|ios/i.test(navigator.userAgent); + const isMobile = /android|iphone|ipad|ipod/i.test(navigator.userAgent); let canvas = $state(null!); let loading = $state(true); diff --git a/src/lib/components/InfoPanel.svelte b/src/lib/components/InfoPanel.svelte index 40f3739..0462d72 100644 --- a/src/lib/components/InfoPanel.svelte +++ b/src/lib/components/InfoPanel.svelte @@ -6,7 +6,7 @@ import type { VaultStats } from '$lib/types'; const modKey = navigator.platform.startsWith('Mac') ? '⌘' : 'Ctrl'; - const isMobile = /android|ios/i.test(navigator.userAgent); + const isMobile = /android|iphone|ipad|ipod/i.test(navigator.userAgent); let stats = $state(null); let activeTab = $state<'about' | 'shortcuts'>(isMobile ? 'about' : 'shortcuts'); diff --git a/src/lib/components/NoteList.svelte b/src/lib/components/NoteList.svelte index e33e066..ce84bbe 100644 --- a/src/lib/components/NoteList.svelte +++ b/src/lib/components/NoteList.svelte @@ -47,7 +47,7 @@ } = $props(); const modKey = navigator.platform.startsWith('Mac') ? '⌘' : 'Ctrl'; - const isMobile = /android|ios/i.test(navigator.userAgent); + const isMobile = /android|iphone|ipad|ipod/i.test(navigator.userAgent); const isAndroid = /android/i.test(navigator.userAgent); let multiSelectMode = $state(false); let trashNotebooks = $state([]); diff --git a/src/lib/components/SearchPanel.svelte b/src/lib/components/SearchPanel.svelte index b16ac8f..0e00f77 100644 --- a/src/lib/components/SearchPanel.svelte +++ b/src/lib/components/SearchPanel.svelte @@ -83,7 +83,7 @@ return str.replace(/&/g, '&').replace(//g, '>'); } - const isMobile = /android|ios/i.test(navigator.userAgent); + const isMobile = /android|iphone|ipad|ipod/i.test(navigator.userAgent); async function openResult(result: SearchResult) { try { diff --git a/src/lib/components/SettingsPanel.svelte b/src/lib/components/SettingsPanel.svelte index f1c1eb0..47f8460 100644 --- a/src/lib/components/SettingsPanel.svelte +++ b/src/lib/components/SettingsPanel.svelte @@ -7,7 +7,7 @@ import { openUrl } from '$lib/api'; import type { ImportResult, BackupEntry } from '$lib/types'; - const isMobile = /android|ios/i.test(navigator.userAgent); + const isMobile = /android|iphone|ipad|ipod/i.test(navigator.userAgent); type Tab = 'general' | 'editor' | 'styling' | 'import' | 'backup' | 'ai' | 'updates'; let activeTab = $state('styling'); @@ -301,7 +301,7 @@ ]; const fontFamilyPresets = [ - { name: 'System', value: 'system', stack: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif' }, + { name: 'System', value: 'system', stack: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif' }, { name: 'Inter', value: 'inter', stack: '"Inter", -apple-system, BlinkMacSystemFont, sans-serif' }, { name: 'Georgia', value: 'georgia', stack: 'Georgia, "Times New Roman", serif' }, { name: 'Merriweather', value: 'merriweather', stack: '"Merriweather", Georgia, serif' }, diff --git a/src/lib/components/Sidebar.svelte b/src/lib/components/Sidebar.svelte index 2b8d263..368894f 100644 --- a/src/lib/components/Sidebar.svelte +++ b/src/lib/components/Sidebar.svelte @@ -31,7 +31,7 @@ } = $props(); const modKey = navigator.platform.startsWith('Mac') ? '⌘' : 'Ctrl'; - const isMobile = /android|ios/i.test(navigator.userAgent); + const isMobile = /android|iphone|ipad|ipod/i.test(navigator.userAgent); let editingNotebook = $state(null); let editValue = $state(''); diff --git a/src/lib/components/VaultPicker.svelte b/src/lib/components/VaultPicker.svelte index 312df61..f65bca3 100644 --- a/src/lib/components/VaultPicker.svelte +++ b/src/lib/components/VaultPicker.svelte @@ -1,20 +1,22 @@ { if (!isMobile) e.preventDefault(); }} /> diff --git a/static/fonts/jetbrains-mono/JetBrainsMono-Bold.woff2 b/static/fonts/jetbrains-mono/JetBrainsMono-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3a4e333fc9316f9989e16af6788bf1fc788c7084 GIT binary patch literal 21908 zcmV)HK)t_rPew8T0RR9109BL#5C8xG0O5oH097vl0RR9100000000000000000000 z0000QfessnRvdwvat2^OQ&d4zOaO%<5eN!_+!%qYFbjqj00A}vBm;~Z1Rw>3Xa}PV z3s!Fxw0ZR zCOa(4`f1alyIZ&9@FgpUw=%Nj3>{T0k=~Jdrji*L{>VGth_;72y*j9M)pop{{-j09 z8~Uz{;j2klPt0^NP;SdHWSy7%fqzf`+?$9b4I&~G)rg2RA|g$RG>ud$%=rvEh4tf9CN zRB#~kj;*X?oCt_A1yN8zw!)#tB%r%SlWj~>Gv;qrx7xMRmG#pk9onQTu`{z{r-lFT z_p5j9b1uKv%>yWdJre>o_=QYGAzD%&T&rI`;38x+mJi!}m5M^@A)=P8XJ4UEI+w>{ z5e|!_JQ5=*RLnkvtnt`m+4<&ro0Kqs6B-Nv?0(|5Le-fQrmsRB2w~9P9j>XlrpI~U zrUOPh;eg$&>(IIa7aE^brT9jl6;90U@6(w-V;SDtkt{=qsp6eooppB+BykWNsgYaz zcLx+8pFc2H!QVB1a!so@Wk{&8@w57Yu)s;m5V%sf?Jtzgngqc=_tO{q({jQ^*e0hO zkpmK@N&|zX^Mj*#z5iG%fSddi=3l4&ulGuJtFoQ+0r9Xj?*qUx(-m28rCOHN)(~_G za#C>Of)99TcyPNzwz>*`+GjcvY(>v$59GM~S{K#2e5~-A48VH_hZ_D;8 z{#5l4%Hu*dE=&K}+{-q#Lv~ms$PkjWsXY0zI(5dL->cS+kmNP7N@Zc+qb>Zbkq0ap znb5^trZj)%g4RpXKzCIOP}I%4NnUAj6>5V2(8Gh^&6yT6-o4h$p@%U+2qBD9uGMD` z3)V6+RD#~5FDQl$&2Sj=!CMmzV`h_nmo~|FA)IcOMF_JPVTAFwwyjx{(6(TWU|)z5 z{N3w@{eIP=WAn=9(KgkjDJdcX3JMA(+T3^T?)_2)1OO5M001bC5bz)nVME~HK;R0I zgq%VWVKkCZ(n%tcRT435l8DtLiDZ6Bq>4!56igDQt&_xG{(@j)f+#@=%u%9}n4|ZV z&Kzl#!yM)7Logr!5MdHP&n_v{u0OWhk zpn|+9`83lMfPABo%BO(&saCZF1R-XR4-56_j=IziAn)6Q0$`^FhFgFr32^ENpiq{d z^M#P@B^)|Qo_9+DNGaZd3O@iA*dMZN;HM>klZg3Hy4tY=(qHl~VHC2{kQoeFC-I~= zSxAaWDXAn?q@JuIZDcLkKsJ(zEt4z*Anw3uRb?E4NhpA!hsgjCb6}RkNwSTK!{0f$ zet;#CMX(q|uvNl-q9>55v=1HkS>*)IN%!Ho?~&ZWsoWkHdU~v;gZsqKK{}9k7lD02 zFjy5N7GfNz@E9T+#y$OHY8FT)kEdk-?_Ki$$Kn*gnwlL?g%V5-jZ;9r57Psv;x_^S z!;io5Vg&(P>^X4cWGh$h7?`|qaPbK25@a{25DKUYT6zX17B+R98hH2wgtWr6S!bh! zZUywtGbr(?iz;1Kqt;bTTC{4@?w`8caz~GE+&5^*6VD7A@q=-b{^J+_^*?jwEn4!Y zRe#&?I)J!kN~-EL)PzE3f?No}1R|+irO_Eo7Mp_;GIB~NH4PoTYDQ*OHnr+FH4xo$ z&|FcfzNP+H{l40&R_DO?%U>uz#ojIpfPRf$LpP!g=nBH*c}4kx(xcQUzE)gQ zysI!PP!ivj-;$q`E9Ed_Le3)3BFB(a**~(FtU;RhuI!yX9dDvun!PtkW|A$0eu|e% zv@)vfRj}z;6r2N%izrI>?Geu~RxhNw$aDMAD1!^T=a#*Zq_)nFbL1BwFDdvia#YkZfgmmOHb7GdSi zjdt;8{m$GreNk=|0#h?BC=q1V6aIbvVKtB6&+ph%%IEN%_x(X{^)vXn_yKRFDCK1p z3?7w-^R4pL?`x(~ebIf*B}rLSx{}UjPl_UyA{vT^Io+O*$V9qhamVD2q8-^WWe1kM z9@VkS*ad6~`^VzzVZC>uH;rWqidfl3_^j8{z1_c&r>)9;rAE`Z>2Gx*08_5_%3|(`~o+Zg1PJ^5uSj`>6XJ_b^ZVpyxbn zo8LCPE!RyiRvfdlxUV@Y*Gbt+T{rA`1JSnpYRKq!>ENVN7w)d{t-V{@T;i?ly`1kj zx5V1`#M^oz1W^k?j%>y3dwR&U}v<4?OeNKc0}9dye@ytmTa?bHCqPDg|un5nPsMw z#N5(NRV3fSA@<&h*4LDcPnfQQHM2%n9DcFX6kTECZLNEAW0qPoaii%@(j-OPh{l)^ zRS~e?g>W~y$$Pxa%RJXb7!Jk_H6Ga)2rd*FA_!P6z;MMm$=HIUxTwi9ybw+T-Ot{n zFDq1-ZwECcbPG(g>hKX8(F^+lqI&~ zbtfv&N7CzK73#c-+?{Ta86E(S)E5V))Cr`-1M&jNpc4=TM3LZueD%rRV)c=b-`5w( zGW;)EhE6I|rqj>G0Jk#DaCasWf_Rb>9( zx+Ax)W*yBQluo7w$Y3RxBrTklx_gH!FX8E%b++8CN&8EU3LvSD@1iZNZXfV479e55 zTW{;ri*z1u&g|srpHqPY^1`HK9teyHvZ+@AIuNq#851Dm=@Ia`o1MDd2FOaCL`Me5 zhP@=+8dQo%V%wsR(RmU@WA@*tU-i+9qO6dIZ~BP-6}AsGD`PVvqK7x>+%I$Q*0yGt}8>3bWxg*DxQc zW?SAU&Ddr!ZMdS3X4yt$e9>lR%*^9ylvhO?qoe3QqfSG(n~Sg7JZgBiUE`$z0MIOcR9JJ71L*CTPwO`i?-;=c6P|c z)CSpOTUZdw3eq?yEoPuQ@NhTMfLoN(p*&o_j9=uKL!=s37Met+R78cIvrz9yNADI* zLFYak)VQRe1s>-5BsL2iWLJsp^Ut)@nz?f$^Ffq05*{h)bJHDi{NFe-Iq3+nVB9E= zuMWK5=VNU=x;XQyE5GblxOK8b=ei9$v_~=V&-E+7UsmTki{k-M8}|y)fTtVQ5`CHF zs@-f|bW@EPMoEst&)jdU*NggfK4$N zZR>GTyDN%_)K=-=(8RDyj#oI(09}Lcj=H*PkG03h!!VayB?IKkFuIIy#l}M&yJ%U6 zNOicDXiLqAljzR-0slfgCXJB>g{|Uq^Gt!lnMca_=8mxuS1+1oM5MS-OSCD^m_ee zNk%91AjHV146gxvug#4r=Ukks6r17Q1a#u59tG~)67XgTS#JXp(cVHxalDK^OWRn+ z^IY>8JV}BDIgyD+X^93Cjyh1fBXhy?fHnf0?t(`8h*s!>GV>8^^Myfv*_L{7H~qZ= zJ+%`T#PRgcv>7NP=rA3$x(i@6oWybiy+_jyR_Fpey_2ST19sKC1B+vY8`FAs3MzDi z58q3xzn)k-?>KX(iZ`00ur7OCyq?o!eAaDVgHEx+txsg4PpQz8+%!5%x<(*DtEw!9 zR?$n;t;j+hEua@tSC;WK-M&yUlDWT}mO4y@Nk+;D&g`w>hjc{0P*K9z8N`xe0C>5AXy12)kJ+!({9%uP#7qRL5}9H&Lr zcpK@QByR5%6L^U-1qptVj!wWNWt8FS`*;~lNZTYfzHHkwU9GAm9?rF%)rr4o`G zkwLyTLTLL>fyTLFt7xPvgdR8-|5vn|z`-oyBrwJdw;%#dJPPo`nH$(;LMtaQlhXE) z-$NA%v@SHG5gE#7MN)uW(702W?E|M{775J9;*!)xoMx~FT(og^rs;t`%e*|DI~GpzhnLl zzlGt6JoKwLa{8Oxd_Xy-;A%KL4e4jZ>)BN?Kob(r7_LD|^AlVSpQ%MA*O?0CL?R47 zc5#3SXTwz==Wb^K?EC#*l)>zbS%7{-tnto(8H3Zw@I;40r=FwL|E4em5U0f)a(EX2 z7+qhXK6EzE5#pHa4Y(TUDAs#EgkX;0X?ZZtQHu4-T8v~NXm*rK-y_QP)Wv*{KqnO6 znWM^hH8DY9e?%K(-u@Pa1KDm$;B0O2og#W$W4}|jud&tED7aZ{c_T7k(%H6fw;s?( z-~&0?gLktFh6EG%7NG&WenQw2cq(D`hU?o@fX6{_EgzmtfQf6UFoKsdic!j3?fwA# zHGhZil3hI3IOXQxF?uAyN*E87<`LK`A5Mm1CN@Kb5f^qwECuWu%mE43;mk~Wh@jA$ zN6bSogP6*+9(|5BO{wYnU61F1>}s%3Hkm}w0|ahh0%xq#fCTtuyfI@2z=*6k4JQ&L z9Mr_gMlTYbgF?@CYD)P=?=Z70`f|lwMtgS{d5XkxNgT7^}wz6rHn#bQ^TYTMTm>N^E739ZRRBRvf}s z?_Q!!b9rEG!31&JP;5Co4e2JRD$5%TP`6O2jF;!k4alSHl#xm9r$RZ`o1<>M@s7yo z>vtzl-{H>ZgHQhzkp=Lo*n$Z`-OjSD0@MMb_R^;L3eo~|=w<|@Nror#PLjaZ5?r9O@ln!5M_;A{Qotg^ejJbsv zd^aaUrUj@DewK$6^En_?5bPz)>kw-h7*FJ(W#kC%Re9{okMO_%IlqS0XD(5-c#<;SoHW%iheR^GoXBK$Yl%u)$62P0M**Ym zkmQxAbJo!%xWlEHTBK5yxIGQnXmbe?eqqWHk;HW^%@pMR(OY&GQ&s~Dcv>!6S;4!Yv`$8izN5EafSqB1xW-pDp(5ZPkH8=Xo+-8p|7oqN1C z4f)yUX}V!1Mg?9dUhCTI3`bwVEJxp!-c`83BRD66J`pFN;TmFTK7kV^Q1r611WvU? zABdTp; zOM$*-)o=SPvQYQPWqe_dg$mD2KpEyj<{c*>!(`)JS%?h_} zWEr*SvfM@+eTc0hzfo;IL>DO=g^m7L)8tOJcj%%tj$0ls``3n+)gvJ%D298CtG zmKdIf-$u$bM`K6F@T`3&CK}t77RthU4@%|zsytoj{!uB2bz(IwnAf>F8)Hlx@5a83 z9qb0hKTSwEGwJRVf|!nuwQh|_R2`eL8I*~2GHR;J3v^P}HaA?uIL%2^IUmUbwqZH} z6?)CO^RDBUbU^uC>$>}YMzS8mQCr+ytLco3GG1kMR_~|peVzFXgQn3?mGiU1|a zY+)Hc1(S%eR3?jjC({X3n!7iNHcscFB|3SWRp%wz|0o3)Ll{jhCI&X37TM)=mnX=)U|mp@2` z?LxA3p@fdgv`)qctvQO}%5j_v@kFGdQ5T_cEU1E5RZTO7^;JI}D8*sLL_gr%TpXU0 zWxOxg!z%u`ukmqOXq8fZdSB#&d~YLyXlKRX!_$!7!=xn-Z5g0gnUu@;!G<}6!5lkf zWEzZ7p_~z`K@aadmo-{mRwy18>I!|m-3h=yP)=Aw>6Z@CA718??032@pwy}J)Qz5H zSH2f((aIp}6o`=yB)D#__xDZ{?=ye_)*+`Tj13-viQ4FmS4X)Yu^Dbu>Son7Ea=Of zVGFf#_FA!OmHuiOW$fd4o<_1~5AIZJTD^18yT8RK-YFOgy@gRdMoO{G&K8#F$iST- zHm8P4#hHw4w0LNNA6>o78pb`8j1%KShRyI$csSRoN)?aEdY)Y7oTB~W` zpmErQxP!tm=s=@65$S*oYL@Y=n**pz!TC%gQ=OtlPmJI%bIV*BZAk5ls3mVfAsros zVqgn0DpL32&}Dq-F#8bjtl(=BnS7lJ-6%!)8+?jDXZR3@ry=b{HsFxDxH)d4 z9oo9BngWN1ze(kGD`0&NIf>E6Jpv=%u$pn5&0sTJs(2Pin!vZ$NCO<6h9p8u&8dR{ z3X~Qt<5P_ZKq_RXj7%wuDw#9lpQaeL70;-kq}iNA3Xl+W)+d(Pi9}_1TCaU9N4GzX z4_)_Bx*I=OWL(Jwgwa66XsggP4O)i?({CQ?TRi?~lICk{&u8{kZ3Oy8{;B0KaD@ajQxUt&^;%j;X@}&J1}w+0OV{qv&<5!=V&_;_oNnGPeuwkfgbagN$Zoq%QV+;W zGJYAa7UKn5WkuzQ{*Vqf!^zTB$wr{i^OQbJieJ~da-j^XbP|v!Qh^uUc)~JXC0oQ6 zm|;gQW6l=I4VJKtiQumFi^y~1Fx=oA=S*@z zM7>iU>2h>@G{A6s%f&Yz`)VB2ptC-5MyT@EZk<)VSWR0DWjf8^Q}pjN1pXg9jmqWn z(9e|6n4^|x2n>(G(4fvEwB5B=RLv2`7VMhVUsBl1I{i|B-8d0_3?_wXhEvpx?OWYB zi0GsvDm>aN-B34}OGIW|t6*Jg)I(HmC$xe+7+U+TeWKlGsMiRHiO8oFuBPu#gN^?c(3mdV`sPpPh+^`LXAld zKR)v6j^0X7_=F9m@|iwrNH$O_6vg2*BvLa}zm7;|Q__}&a&L?m#}FYZ8yT4dRG2Bp z=YuU~9TAP5`V$TQ61sx?E{c z4leIP$YZb~1E2r_007W|L;z9%zyko`V*sF@&FTX4-)am1^PjkMfV}rD13+&=Cjp?d z0%=wlfVu?C4zE9-l!XAmtv;-R*Z~4na)+TJ17LL5l+a#)mqq9g0Aw!4dazqJ)=DMW zfahuH9mh|QeE%Va_#1|5CxgYd0Y*efAY)%I0yh(kPA9sUNC=Ut}$ORC$5qJ=J6Zl z0072mV~X(?;~Ase82-zPU$TEWJ^kDCEb!P)N$jzgh>VPaMme<#X4MRgR2&-Ab86!9&~XuAEn2l} z)}cs35|qXnUuo6mOV=SF7Z!E^0I~!CFmnL30l0Sn>_Y&neE`hc003Nqv-Zni17H@~ zG9>B);`}JEZ}A0x*vNiQfH6E;01`FXg8bdlJmsf+r5*4s8pR)hF2|#LSxC$iBQA&w zO7J%L6iVW?mqsrJzV-J5q7a6C3e64N-3`L#Vp6g}Cn1IN*eSTVqfrW+M)%+&$B z-bfjgL<{ADGAJvrs1_EcMd48Rf*Uz?9%&m3TkRrG^iQB5<1(MJk{W!bR2M3{+o{HL}fV z04(`q*!PqErcBIz#44>c!x!-f{}QWS(=4yYK{T-xJj7_0!HMx3yEbzYj5MLmgnh&- zL?<(WnmQylY$U-@2w5@h@hns7ON(<0&%X1_iPZp=$C3y~Ef0zZri=`J9%_I8>qI}L zixtaPQZqUX;zXaOX9NMX)=f;^ks&BUO#+wkQ-Qycov4xn?^wSH4`}N*=yNpc?1c;& zsr|NUT)>iRmPF+gBS;f>Leq-Y_8UO-EFF)fiHz4Ola1h2yJ&#}r6^;Vuoez^rlFuWN!VR22D8~!6MaM|gku%R zka?&TDWkP$MukVDC&L@*tGNx%puO$^t^`7P_<#_y3=L?UMG1)qX6uwykN{?(uXKRR z)3wZppE44b(~EG1(tzC|EZI#Rcge&NHr=JpNXH>N4c`1R_PRB)kF(USilXYqC{9fz5Ejdf2F|$ip2?5O@=5p zJvpNA0Vwv$K-61r-=Q>69+9I6Nb-L*qpJu@?%rjhH`}RZi4buSB=Hp%t48G(3J@6r zNek+<{3KoKKmg$j(wcYgl!i{v`aGTbPyRYL$2kL!hucUYrJH6;4{4@J;EN6S&$cOv zTG37ovXfX@1nSL$12~JY*Z2%DDNWf=p6im6b??C>G7)Sr0*G>o@d!ewE6)}@Ax$UQ zl@%rlIX28Up>uq{q-}r3;fO^*=!gn8027oGp#}B(L+Earu;a=DNoE8X6dP)m zhO%9iDtJv6o}<$`TVj=up)-uktUxg|r7o4^A!hCcZDA$%N)`$Rm%>Yq1X{oB`jwZLh-8hEar&jPiUPHunuz-i4#>vI zsb}@ok~sB^&|Waue-RqWQTQnB!4UR)HL&X?bpxV0!c73lSdlj@QB#_LQ2+D-!v*by z#6nV95)jTmoF{8;=SftAQWlz6r4v9%ZL?U>-DAE38+{>M#Z&|G1>e)-R=ebkeT#qO^vf7z%k=9?$*%ItFR+inlN#Iofc%n5yciij$ENgn<3a3I`b!!b$z@^$H zfW(*^V>EA&1l6;y0(6Y2aiu__b(GH0X{$;}TML2XF_;8lpa-3_D-|QeJ*AOG=94QbjY?2xBj%lCErwRxfxfKEgfQ-&LH-lNSE{B$NiGZkqHt-zvU2;swRR!^( z(j?hj95d94SehIR>w{TUNC2$wa2KHk1>#bqAf40W)Zqv{Ao2*~eu1%(N86xmn!A8S zS-n)0uuQYqccXtdp4V3>gIS+9-$ zYPFNXY_D^a^>P-NPA$EAgr!EpldP0k%VdLC(2cfMuj71zvoLIjyuTX>(1)7V<*2A> znwtFb6||w&`)VtV)4_LOUN!lFcF+QoB6)dUOALWg)T^Kkd2knG@x%(-NLvtKFKd+F zvVqbgXdCSr zab{JlnU1)7Qybtu?PgjzvQg*}p}BG~*qe*!Dfuzzzw6kri94#t)-)gp{R{KOta50=O);Ay+unX59wqLjyxYiQ>vYr}aggTLmlCNTA( zda_6^{A!+5de}jAS1Zl!H8npp%OM*QOK{NKe>6Ku*t`!(z4y_rtSFhT#d+>a1PPu^ zKO5mWtX)PV;Adl+4eVQf6h9tAa^36XhXvA_^B7JzKTIHeh9ly>$)|+v^G{fBZZ-o% z=S=N#-goUog8!al!Kn*??5$JGL>Fir?FK=s0WgrV%A2n=lAf}%v^~)-1*i8LyeDna z*9rTCL{=gZJN58?({^d-96M3LwSx-x5O~)SC$teLAH50QrrWQok|hf8#Vl1AiLa=QYG^ zF*&)+RLm=ElLAaFL2FA05x7%r&V59U0WOdN`zO3RCtdN83+EiPLUo)k*=2-!s+#-7 z>PePgH3;jJz1Z9ei=%Mc$t?F4#=Y|tQ z-pxS`-b2KCli?G;2v;2!)6OrQEWQ6jd*To3 zD1G2~<}Sw=Mra>S=jE;qrt|cvK7}vqL0&3HDI4;sC_~^fdes>6^Z@DhCI&gmO0+U2 z`Lg-lQyv3AjZFf3#4B(a!}f^x4~p4Gshsg_Ygr#cg&q!q@lIaJQi3JoReLec~;=6TYUw4z8Cu%~EJ zW?scI)PTG2@fW~Cts?>G7)wRg?x!bNQ9%1}rAt_*x0KGlc}SJ8SO5ws+Dqf?k%3OecXb|R}Wp`|o=9R;v0k1%fSK&$a zbH853U+Jcc6%NuO;~Em~pSk&ZMbjUAGZrhhgWhr$m>gqy%xQ6LvIDW(q}s_b5?;hh zuR#L_jF>tp7qo@drel^^#Tf0-Vpt@eI8TXnONuUyV=55z4W*zAOBSs|uqmZWhcUp= z2ah(-4Zeuf03|jTRO*TLJIqNKoW_|nzSV1Xm+qC^oqP8@aJ2%h)hyuQVRf%on}s-l zvNQEehJXJphuNCxpAsSX1!4-E5uu+gZ9 z+*%t<8!HIe+GT;&(Q01egB0jE3(#x?>^4!Re{UMusKpJrihK)vpyKhj} zSmZO|avUuW`Fj0IQvVY@6YDH|2wYt{U@*vK1;`f0R2RuiBTlu0npDH9>QdM~V0d0>7$l7QV1)CP&6b_nu72`S&@fx-EoWE$MN zOV_lqbFH$%x8APG&Qrm{OGVMa9{f03F*6+=&#S0_!=&V`&bwP`k8mLD&A(s=ycXWN2z8=y)pRLl#K86h{cSP&XVGx zob;>|*uuO1tq336+&jS1MJIIYy>adhHv2kv+o@Q=9G`9-(9FaOEJNg>BaTxWMz%>z zQqVjT_i$o>H#w^O_Q-Tr*7Q!~+tHb}o2+?l)@?*zpvxLKNOyu7c?npcG}G2MVdP-sG51aTk{%!VK~EP|Av zIV&&KOT#{sogaFD8@jIx516vzg;4V>Wld#yW*Lo^fBn(b^Yu=F6K`z`Zu{s&FwHoB z)s^dWeI9kiO-1!YVtr9}y8_yopAQ7N!X`OV>JD(r+i{!P;oA`WBis&jGx05h%0?Ea zR_a{W>K#0t+QB)_U>@UifJbkHCTiv$!i6TX`3+J5!gn^amHv2LGJ%ZOz+ZRvXD8ST z3E&|XYX}xV0{tu7w+H-ep;LyUp^vvin-j#E-0gn$ixB)0+YhLOiZrI6c3Iq4!s2n> zEFt}`(~xRfTN|koaqS+a(!U`H>~Tsf#B>ys`~BuL^IChWK_sjTK;Vw%_1HhL*FAtj z2xw#OMF|2N#A24iDG8$cObmQ>d%8FDS?}@)5pQYbso+fF`Dt)SJsqSxBom0MS1~0k zgb$Os59yMsRmm&qD~cb!ubUob2e431+6WSIH)Z)B+|F-&bG+oxt%_fQcKlNjd#mVG z=M!y-=1E0HEdIA5@d>=>`|-1nu55m{b^rMGyVo`ge!LKXe-IHJ`FHWL6CI?x%ow;! zFdePYR0S-Jo9Kn5)FOj!{X*?od%Zi>WNzzpt`U^gsE7`>j7>ovA%B)%paG`{d%`Pa z9I-`>^0dT5ndxufn-!XB2^n`ZXFk1RAuB{@P(Jo?5Pu~-^I~SRv{El6-giabJtyprWxKNEj!PQkWUkV=i*&=_&;b~Z*5 z0fq%0hAj-b6&i-DfHt@QzhW5SkJ7urpKQ-74l`I|&d3<&edWD z3OSi?;=)dtYlHq*JdvEl$dcD^H=V&eKtB`TY#I1u^YN5c*KGqgEw_L!Ku@9S+0Q>6p%&tE@&AhenB`HgO`-)B zl`vFg`rJ2ZTnZ$tkRA;m$V{ZAZpk`eJCGGmOABQk0B@4l`{+j~c%{am)(pvbRtE4Y zHpzHekdJJGj^#@Qudt)n=*6uw$fC5I(^gW}Se)HVAGILX<|ue5KML z)82}Ya0TvtANxz-uBS9(BuZUbL9k~|6E01A3%_jien!R>{CxcA)bA%MLqqeNYH(_M z8s~0FNnI7hQ=CDX)~fJZLVfbf^jsf90r- zkekQ_b>wzmPG!yTHzZw+JLD?t%VGN%%yPCBq~gWz6~M}zc=|nZ3GHf5cK0zP#X+(h zP-~lwZgOp?YK}aQbUKer3FEUeOv)6OO|7CrAGG>G`C@6H%gvUnyflGP2$fVA3Wdwx zsG+iqe378e3#kMFh$}sUC)t#*Ff@8^`-L_G;)eU0_j~W zeQAo4m9|jn!_YUGNImpwVT#;~v`~JKSq<{qoiF$CuMIP@)z%;n!*_1xlt#xA? zZ=k#z8=Yg|iyN8`FIaC%z_l-z2<6Kq+4Z>og+Bvj1g}gDpNJ5Z)G+YA%bl~C@-{B@ zjcmDFQo`g)8AWgJpUXW_Q1BX5L#tWSxO&xODzPqOF?GwhMS72~5VJ&(Ld54QM39K3 z5D#T6PnTva&2U+oAx&QndWOq#2H?+F0@i2nG9LOMTY<+zpFh3W zz!-k*Vc(Yi$JdPp_l7}b=gnKozPe&)9fSP}Ck_;XrT`aJxFN1XipUcc=$=tl1mqJ` zNf6&5NiYXtxP!rGw!_ttL!;?|MbY-XxhMwl=?wSMl7&myFxtJ$B@P*`LI4MCTxaed2OO6BRLrQvcoH}ci# z)R9jN1`(1|EHrWHjfkq$7Zj*{Ttvwi62;|GLjGMDj9Vux_~W17%KoQQrftl&1>JX9+F!h6Lpmq0-Wj8X`s?oKBtJQN7A#=jRL@uo6@unH&dFHzI{yJL7=TX5?DwWHEa?gZg@2*{vleO^^=E12IwN={xUq#3s zTU{vw+saTrUAyL+4BV${*M6FY7s)we!mowy%GGQMm&Q;DhqmFw`w%D|6iV*r*ok2G z)k@Bx9uAm)Z$_)nM5nv5xEEo26*grTU-I@UVi?6Or@={dnE83Asxw-WhSM& zJ$Mg%P#vq{cXEu`*~T0^0l{Me0epL7$69BtH+Sgmgr>xd64D6` zc#)e3;Ef67y-L<(33US6-L_2~fQ9w4GM2rD{j^PS10Uuf7(39OEDu1Xb>dQHjSYI* z){^|5o^_~%a=0pflb+Co$2Sm!_}5GMov%{y*H;{PHOej?p8ep#E625cr#fV5WS=yx zL;TgleZ~c^x}dFS#;d<)$sT?goIWCw)_e*}UHkXolQBchsBaAwRL`&W9{L3;2$R)j z7xB$Tb2Mkte!!bIDUSoR#hcGc!4jX@W90P-C+akC#;DTM2 zECw_d^aWOAS@m{=#gQ)~0KQtuIoQK#0s&Aw0%B;xV;ztD zgMB+#SkQfM^4`#kw-cD)je-~N4W)aZzx(oi*yjDh-B<1x9&HRHKCz_rqeS20*1cN| z){~Jxt?k;k_*3B8#jeI4B@HZFo4$$F0}x&_u@_=sJY(0Fq}4m-WV6w_^U35#mC*5Febmvmt?D2wn9a1?thQmamBSbr zgQSciLSZqnsEAlxNGL2Uq8~sm$PLnO-MPDT0q)4|Ds0@?bN`f}@v(U0V>Q@OL(lK0 zWX|2-AlES9wH}a%ZdxN9oJ_IZN#@_$+)CU;b`CGEx znMQy{Gb*x+ORcjno?X1gvHxU;lSuNBU_18kw0bBf@fa>*^GQsPDwsly_1NJ8SzyPn zPt{<=0bcO%;q`^$8yYM%C$3g=*JC+se)`#k8@g)}$C$HEy5=1YRd7=d{aSl`&QBMbkp7g0R_tF`*uKv-4x!VS zepfX#@8`+bG?c!{?g`wMf{3h{o6IZ;}B{}n=GHol3FeqMXgjRbIybmsMg{V6NC zz}s(5h46KUH<`WP`+NTDkbXXEC18X4%RiM@50V+cFRU^Z=bBVM)#(vwF;9H5 z`{?ocmwrAes2Y2E&Vw?Bg9|O^u&c70x!0VUeOtl}=^LIjqqLCXnv5DWp-)EbhY4+3 zaw%F6{rHztpJ1Y%KSu^dgJ3MvatLHrANutaEeEHX4*%&W_|`(rx$BcW$(|p-ccqOu zfWGv`n@>frT>8BRv|NhDqpZv2i>a9GnT4v@e)RzM7>6U+f`m185@Z%fcoDGbf=DdN z?YRbW?(U>p%(af}Y)8;!lF1B)Z~kz{|2FrIS%z3FK`y53pSKNCsir=jy<)!kCdxcl z<01Npn0rk`B ze$E7o{Q;CZZWy=XZ6+0Zkqu4cB$6eP`eq1JJQ7bQrWbW)3*2Nr&+KKY6mBNpmerNk z&tOK2GOe=@BN&t->Gb=V*oXPvuonoe9Y)6&<7OyY;D@sgFAhyS7kh4E<0b}N&(v3S z^|3vAeRp?n?~Z6t@pwF~q{Jid{T@mx*B4HyP8qb(6s4Pz77bHDiY zf(q`Lz_*wi(2Gw48#)YteRWSxK8Mjo>cUK(r~^!Mgs8GyT4YzfKSNzjUQ_O`EYqoF z@ms+v_S$kV)-zCrUHAhK!Wvu(%I)8A>Un+4&|&BU$nd`OTATjN%DYqXK} z_kQVuq|dJdatpxB`PtScG|ZJmq9Uotg#l6(t?DF_svUwDv6j!53aErY%Kus^u2zYq zKo?i}2sDu*mzTDsFzb3!9zxuRdQ5H9KA>a_=2foZ+ zv_vA>MANxhf2;!ev$h_Es>f!qAw6-0RUa)a3!=}|oAKWl9$|{*25nR;H;9>si>~6A zBSfkvf{>Y}T5r9<(crF8*3V@#|MUwNXXNH)6i2CP;5<c%#*U$V}7c7U)%lEV|lM zEGV^78G3FE2g%ZLOkx^tlVj6c9B-%pT+6;VO{%D{da`pehhA5~*^a_9VC}gdOkRgZ zul3fN8n)`THf#m1HDV`;ujuMpS5LyTyu|GPeQIB=TW*UI3Q%-*!P{S5W#}R{58i?4 z7Anrkmyq0PziiJKY<8{DudK0@3ChcVS}^*6D}gFIYJ>Bg4<`~tVr2g9$^H;APj(IX zq-ml;aR41d#et|$qm8UUWJ}D_8XD8YALBEPHT2R_LNnuuCMH2*6slyLcFyDz3YH?; z^b0uL_4M}i>-NojAzjN+%1FNZR*#6r%cbM}HD%w*xHWa_crpQ#DdX}Oo6a)QPNk-v zN@IYQ2-PKAAdIJWdrf$^Zc}!4r!L!F?Jb*H4J+3mKge)KUWTdqTiHrO-s+ct&wZr2 zQYxh&BCnbe>`*Qs{hwTLDWCLO0r_=sX=HAiV#=W3P8+GVT)dx~*chizn*ghdZ9O{G zunngok5^%tHBN!21|zE;2;5VlM{dFo{Bu>j;Y^RcxC=3T;M_iqUv{!KT%If=jmY$i z-o&dib^3#L+Uu6DXb#fCw*u!|Yah?bIM@l}N6^`8s>r5gq@2RcIVBTJxs#UF*k?oY zJ>_9^XNpJV4}|I>fp8>~fwp+J?CXdDzY$6Jcf@wM0V2uM#qa350V5iE{Q8{iUDIy| zFF=wW>zv9yex2Beehg@jUywE>3hg}e+M|50Dsv(>;Vzk@2;g^`H1jr*Z;`mFDWR$# z8NIKN_U>c~cmIkOy+4Uf_7eUPbt=@K#qlb3?vxV#h8@_BUQ~Xp$3pD1CE5Tqe~F#O zzNtP0_7zBWAjVydilXZ60JKJWZ$iO^KIg*7x$}Z8>aS-v*6i4uSDN?T?>kJ7WF zxbWVu!_z0v|8W`J+Z>J5gEuz)sr22O%QRaa?Slwlox8*^3Hv2rm#p@g^DMEBAhhJ> z7g=B2%nb)+EILoMDKKCR%+viV_~^grVa=h>+rSK9q(qe$c+U=pV7OW&E-2k|1ttY3 zm_V5{V|^q7GI};|r**&k{(^CaC2Ar7%&|hG4GsXX3@>vwyWlUZ^JSfN*kACyGqA_x zCz2mE$crAuGVCY%8fa+EGVB|sWC(nNiFW_alaqUNlVcw!_l|S-X6$2Q4+U$Ro}OeY z_NlRligjrA40+Rz4`s+Kxv~?tFK1nzyba!1k#`Dm;4eE*Tp!I@qx6!kVBGvmZD+TT zCYKUyZg`#D7IR(ga!s|muC!vlov-u1E*!N)YjjMsy$hb4?FB3Kuq1#LnXALZ?XR=G zp1l2fgh3Ucs3IW7z84`E_#Tt&$tU~K7>tCKF$HhW2SgcpkP++vMC>a-Ub38B7}s|v z-hYkm#V2F(c3$>d`5VFk%Nu2%G;fe@6pW%|gZb~>Fa68P_9J<@XOBF7eg5rOQmi)i zO3dC}pfH=+E3%7)*4Y=Y{XIhmu1RzdIp)RR<5^2T6d~%;vA0h`T733JF#X!2>z`%T zjKTD;M42ys1|lq){68XJNpt6wJLre8e)X+%S*@y1sG8!)#^K`KzwT!4?5!#VZX=RF z;8Y?bpOO>jEn(cY>!;nWBS&1tqrVp^n-YSRE~PV}Y}&r-cOMV*AJ@-m2iGUogWpH` zdfaQabAIHke1QA*v$u6iAB;1NYaQkX+9%RyTM$Sw#q&etbKga+wYM0}5rYFy6YoP7 zn0|FsBYhE1X@KgeE3=?Kc;M&oRHl!ThZjQgAM5Fdnf7dEi&1{M?6`MCrZ33qSC4jl zR-3#H$DoPZ%s1|2ablilR?G#np4zv;8y0nV*6}RZo>se!igC$xrOS1-?d)dK(Pe~@ zW2Cb?YK~&do6~as5}?G-3Y&RyR!;!Ekqq!(24~B<*bad|_)=T95fkc(ln*|NJdWc$fQq%R9bjfHGCYl*eXf!nut^UmKJww!mN zowlF9xbcmpE zx%BRf52AlU7HtoS$Oiu{rll(!5fRbnrTu9q83cqG*4a_jf7vm7gnA#efqXyb1OW zW6iB^(IWjnrnt0}iSYnm5>eEo?``SI)8s}J~p{cu0>!>_Ry)64OlyQxsV zXb`OGeza&41;@1PG(z+GuAKJJvk(5*anHUsM0!4hmt6CJIqp%v9wype;Ls9a+f#n1 zfAhmjfQYMnc&awf)eYPvDVN+G`)*l$-t@QHJlAcQ?e=zA_n$&NA#rqk%*~>H@crLN z140XR{?54nh9mGA3i*1E>eS{WPB{ry-OE|yd%MOo`pYCVRrhaSyb;FcMUYQ1XWOgy!HwCc*GC{r47BjF_nw0C6(o_hJW%i2*7?90Ej_VWJq zzZU~9Md^Qv)wUF!KGy4%X$8sA$Q~f_@IKSAb%^^#8l*M4=fGu<&v8-gyBeh`fnr(tiyilu<;q9rmnQ>(p}{Y%a| zzZ*fGlpcu(h#N5s>H}k<)>L`QN*wsCtzqX2;00kexVXOB z08XB)Z3zEdvi;=Q{hapu%wozm<>O($TCeRvzT5W)4FCZEI3dTqoK-IH18Q}4MtP9@ z*eOS#52)0Rv+J)@{~J$FI?<`=eVP#?gA6jrAfJ5l$!`KYM7Sk+7A0FTL5aV1iZe{KWj&-a%>psZ)9f~o;5JTPOCEnX+ zyOL#wk^oXc4!QIn4gl?qXo99a@CgNWW_iyNKRgB2W!m3%k^&9&emn>j{Z&OteYrO! z8-VJrvx=h?F6F(Sa(F$v0gHJJ?7-3ZUFr7%LZt#1ONnN}eFKqjv6GGOt3m;it$K<~rcI?Z*rb}qPkh?a)55?(SwIdvyS}J-eT)}Dz696G`m<3s?=K_b8iI#x>qEzz-?}K*RhOC{S=J?num7}yKMCDRJG9Dvs>UW) z2F3~wF?+g#Q2yq<#BbOs0pI8?adjQmQPWx=y44DcQ@gp&+-vz;a%*}dT1vcYR!yES z|2qcN!}b{T^olYqcL#rz`0$ zA8NuKA(wv0));JTwL_KGVa^uWDSqO%mV=berOrS#*dMeKP8s!b}05d0uB@a00j8k<0ks3p=SH3y@MA` z`_p4Hf1{7D}%36>{DV zyM1pj0+G0^aEWq17j;I$kzuO%p3m4BCeV7U&6l|2QkS3;z%s!iaE((Q0q$}>l<+3t zl0HaXDE!1lcVsBxoGhqW7++0EqncyqUT>5tlNnFM(olctwH)9lkK(3Q5~4ZV-yU)g ziCq`y7Rqpj3hC9?CVf@kVZK1LDQH!?-6y7r42W^|RnfC^ALFYOnO!iWEgQt?#aHuS z8w_g^AS*!meuPaBw(P?RCA%r%AH<(mJw}nbAc|ZLMoV>K!UG>fh=VV7p$cjCBEEhi zoBHZ@G~3vv!ZWU01LV1Gmd|b6mK^5?ZMwjUi@tg}|9W!yIjgtvf%~#V)6tg1{+T$6 z&cCng9xUaw8Si2Fl4__qFTIrM{9nFQbFpqFrHvDGW6#U(*fZZpOIo#!33*=H+86s} zUq&;7MZ>2;TU!P1Ntv4Ye~6421CR#5B!DIW0|1f%Xa%6l{>-WkG7%z2c?%yWvhJKE z9&B-CJ_^Y9rff^rTXcf_CuGS*c)H=S-|AOfJ$BE%)ET#QSQPa_LApJraM zobL^9g%R+xQdtaT6ij)I{%#V3g7gs5h85tKC4++t*+TztYXS}np_P=#m_)Wpm! z3gg?05(x0JD!2P~CSUfhDn z5&)(rLE({Oo^afg%6MUkSKv2n3EubAw|3z0!S&2{hJC+oz&ZD)!7}2xL|0w(Pn~vp zLAav8NMnAK})I#M4VOnnwHS%ZuZ8biTrCkS?ou&UPsDw_Vq! z&plQUwFMy|HqU^u4v9>m(&!8(3uJS+JU#>?D25A!BC$j&lPi=ewMMJc8;mBi#cH!V zI65IEgOF2%ajBr`y=sBi$Hs!P?VkH?1VlM@anVewits*do>CezXvDD1`a-MhF!Nzm zsb*kgVrF4g!^WA<>TK8*c>hU^K|S;?5nZCM)BQ={n>-V6Nn@- zg-W9{m@GDj%i{}#BC!NWWpag5rPgS5ZH4fOPu(zW#^>n`Mw1z~SZ#KP)8+PfeSX&r zd+nvS^@ONCo;l;cpV!OHG-|dx1KF*4Gjg_#PG&c`RcH0vBWH_*Zm<9TAKdaFaIRSF z^&JQg^AHsNg_^Z|9tBqF*nn=64tG25gIc>|Tk%aWdm)oVc&+z01nyT&EFd-ckF|25 zXdR7RFSrHlI|}db;+rcU(ea;&w|?BNMr%s?8v*wSEzH%fWy6Wzba=O?Y2_s0#J@;{ zaE#D46~rgB9Bx$HKh=i6g>w><|3gPR?KdP4I@)oXEV_bN!9pgfbc$NI0+_whxDoHz z%9}(<-V@&Y-rgBo6TYI_(LsVWnvk#?h&K@A1XHlloE&zL4{I_PEI)d8+rG?wpLGU9 zQ!|9jtMQh?t`_Q$`2TTDuR1z3C}{xAOi(Qj8yM;(ARxe!y<&5Vbg1g25O@K!11g>EcfD)5Y!5{}ov4 zavw8mGCyCln9TS7tzEWHH;}0Lb?t9~=`Uzp83=;~ExmqxV_}W273cs= zfr)ZTg|6c$A~+q{r(672%IWVjf8@XEG(|D#3@ngHMXJ3_G)*^irLL!dtNJa5GBJ+Z zX-uz>dO4*ORqYcjgl)5sN#a{dMXU~=0F)$x$6y^0C@h=JU_LA!nT%0Io!x;0;-v!W zE{_0KBXoC4w!$)-SjaqT5FwA4kCS>>)l~qE-+KBOJ*O~Nl>t33IFp88ha;P{AQYg&E<59HvaRCq=0CSbK&Opey2Iy z&I94u=hoJ9W)oYm#Bse3@TtALbuCZ;==WX4JDVkzJ;Qn`yR-G53n8Abv+Eah*?c<~H fH(~gF6sz{HvotBbyqrz{b^7~t`_D3f;S&G={CxZq literal 0 HcmV?d00001 diff --git a/static/fonts/jetbrains-mono/JetBrainsMono-BoldItalic.woff2 b/static/fonts/jetbrains-mono/JetBrainsMono-BoldItalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..69e029cda341b47d976a15c407c0bde63e65e0f7 GIT binary patch literal 23116 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 z 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 ()4c_%1fu{Pl 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 literal 0 HcmV?d00001 diff --git a/static/fonts/jetbrains-mono/JetBrainsMono-Italic.woff2 b/static/fonts/jetbrains-mono/JetBrainsMono-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3d3c5d77ef4a435884c544b04b00e8fd78cb22f5 GIT binary patch literal 22228 zcmV)FK)=6tPew8T0RR9109Moh5C8xG0Org909J4S0RR9100000000000000000000 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 T=ND-DucNQ`tADQ-AuI&|D5jKI literal 0 HcmV?d00001 diff --git a/static/fonts/jetbrains-mono/OFL.txt b/static/fonts/jetbrains-mono/OFL.txt new file mode 100644 index 0000000..5ceee00 --- /dev/null +++ b/static/fonts/jetbrains-mono/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE.