diff --git a/Neon Vision Editor.xcodeproj/project.pbxproj b/Neon Vision Editor.xcodeproj/project.pbxproj
index 0ea2805..0273c26 100644
--- a/Neon Vision Editor.xcodeproj/project.pbxproj
+++ b/Neon Vision Editor.xcodeproj/project.pbxproj
@@ -358,7 +358,7 @@
CODE_SIGNING_ALLOWED = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 272;
+ CURRENT_PROJECT_VERSION = 273;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = CS727NF72U;
ENABLE_APP_SANDBOX = YES;
@@ -439,7 +439,7 @@
CODE_SIGNING_ALLOWED = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 272;
+ CURRENT_PROJECT_VERSION = 273;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = CS727NF72U;
ENABLE_APP_SANDBOX = YES;
diff --git a/Neon Vision Editor/Resources/AppIcon.icon/Assets/Angle Brackets 2.svg b/Neon Vision Editor/Resources/AppIcon.icon/Assets/Angle Brackets 2.svg
new file mode 100644
index 0000000..e44fc33
--- /dev/null
+++ b/Neon Vision Editor/Resources/AppIcon.icon/Assets/Angle Brackets 2.svg
@@ -0,0 +1,16 @@
+
+
+
diff --git a/Neon Vision Editor/Resources/AppIcon.icon/Assets/Pencil 2.svg b/Neon Vision Editor/Resources/AppIcon.icon/Assets/Pencil 2.svg
new file mode 100644
index 0000000..7b1ec23
--- /dev/null
+++ b/Neon Vision Editor/Resources/AppIcon.icon/Assets/Pencil 2.svg
@@ -0,0 +1,25 @@
+
+
+
diff --git a/Neon Vision Editor/Resources/AppIcon.icon/Assets/foreground.png b/Neon Vision Editor/Resources/AppIcon.icon/Assets/foreground.png
deleted file mode 100644
index f3a230e..0000000
Binary files a/Neon Vision Editor/Resources/AppIcon.icon/Assets/foreground.png and /dev/null differ
diff --git a/Neon Vision Editor/Resources/AppIcon.icon/icon.json b/Neon Vision Editor/Resources/AppIcon.icon/icon.json
index 2e3cb88..79d5e0a 100644
--- a/Neon Vision Editor/Resources/AppIcon.icon/icon.json
+++ b/Neon Vision Editor/Resources/AppIcon.icon/icon.json
@@ -20,50 +20,55 @@
},
{
"appearance" : "dark",
- "value" : {
- "linear-gradient" : [
- "srgb:0.10980,0.10980,0.11765,1.00000",
- "srgb:0.10980,0.10980,0.11765,1.00000"
- ],
- "orientation" : {
- "start" : {
- "x" : 0.5,
- "y" : 0
- },
- "stop" : {
- "x" : 0.5,
- "y" : 0.7
- }
- }
- }
+ "value" : "system-dark"
}
],
"groups" : [
{
- "blur-material" : null,
+ "hidden" : false,
"layers" : [
{
- "blend-mode" : "darken",
- "fill" : "none",
- "hidden" : false,
- "image-name" : "foreground.png",
- "name" : "foreground",
- "position" : {
- "scale" : 1.38,
- "translation-in-points" : [
- 0,
- -5
- ]
- }
+ "image-name" : "Pencil 2.svg",
+ "name" : "Pencil"
}
],
- "lighting" : "individual",
- "opacity" : 1,
+ "name" : "Pencil",
+ "position" : {
+ "scale" : 1.05,
+ "translation-in-points" : [
+ 0,
+ 0
+ ]
+ },
"shadow" : {
- "kind" : "layer-color",
+ "kind" : "neutral",
+ "opacity" : 0.5
+ },
+ "translucency" : {
+ "enabled" : true,
+ "value" : 0.25
+ }
+ },
+ {
+ "hidden" : false,
+ "layers" : [
+ {
+ "image-name" : "Angle Brackets 2.svg",
+ "name" : "Angle Brackets"
+ }
+ ],
+ "name" : "Angle Brackets",
+ "position" : {
+ "scale" : 1.05,
+ "translation-in-points" : [
+ 0,
+ 0
+ ]
+ },
+ "shadow" : {
+ "kind" : "neutral",
"opacity" : 0.5
},
- "specular" : true,
"translucency" : {
"enabled" : true,
"value" : 0.5
@@ -76,4 +81,4 @@
],
"squares" : "shared"
}
-}
+}
\ No newline at end of file
diff --git a/Neon Vision Editor/UI/ContentView.swift b/Neon Vision Editor/UI/ContentView.swift
index 25b52bc..a2c58a5 100644
--- a/Neon Vision Editor/UI/ContentView.swift
+++ b/Neon Vision Editor/UI/ContentView.swift
@@ -135,6 +135,12 @@ struct ContentView: View {
@State var droppedFileLoadProgress: Double = 0
@State var droppedFileLoadLabel: String = ""
@State var largeFileModeEnabled: Bool = false
+#if os(iOS)
+ @AppStorage("SettingsForceLargeFileMode") var forceLargeFileMode: Bool = false
+ @AppStorage("SettingsShowKeyboardAccessoryBarIOS") var showKeyboardAccessoryBarIOS: Bool = true
+ @AppStorage("SettingsShowBottomActionBarIOS") var showBottomActionBarIOS: Bool = true
+ @AppStorage("SettingsUseLiquidGlassToolbarIOS") var shouldUseLiquidGlass: Bool = true
+#endif
@AppStorage("HasSeenWelcomeTourV1") var hasSeenWelcomeTourV1: Bool = false
@AppStorage("WelcomeTourSeenRelease") var welcomeTourSeenRelease: String = ""
@State var showWelcomeTour: Bool = false
@@ -157,6 +163,11 @@ struct ContentView: View {
var activeProviderName: String { lastProviderUsed }
#if os(macOS)
private let bracketHelperTokens: [String] = ["(", ")", "{", "}", "[", "]", "<", ">", "'", "\"", "`", "()", "{}", "[]", "\"\"", "''"]
+#elseif os(iOS)
+ var primaryGlassMaterial: Material { .ultraThinMaterial }
+ var toolbarFallbackColor: Color { Color(.systemBackground) }
+ var toolbarDensityScale: CGFloat { 1.0 }
+ var toolbarDensityOpacity: Double { 1.0 }
#endif
var selectedModel: AIModel {
@@ -1096,14 +1107,24 @@ struct ContentView: View {
}
}
- private func updateLargeFileMode(for text: String) {
+ func updateLargeFileMode(for text: String) {
+#if os(iOS)
+ let isLarge = forceLargeFileMode || text.utf8.count >= 2_000_000
+#else
let isLarge = text.utf8.count >= 2_000_000
+#endif
if largeFileModeEnabled != isLarge {
largeFileModeEnabled = isLarge
scheduleHighlightRefresh()
}
}
+ func recordDiagnostic(_ message: String) {
+#if DEBUG
+ print("[NVE] \(message)")
+#endif
+ }
+
func adjustEditorFontSize(_ delta: Double) {
let clamped = min(28, max(10, editorFontSize + delta))
if clamped != editorFontSize {