diff --git a/ClickIt/ClickIt.entitlements b/ClickIt/ClickIt.entitlements
index 3c8ef88..728f2c4 100644
--- a/ClickIt/ClickIt.entitlements
+++ b/ClickIt/ClickIt.entitlements
@@ -7,6 +7,10 @@
com.apple.security.app-sandbox
+
+ com.apple.security.automation.apple-events
+
+
com.apple.security.files.user-selected.read-only
diff --git a/Sources/ClickIt/UI/Components/ActiveTimerView.swift b/Sources/ClickIt/UI/Components/ActiveTimerView.swift
index 690bcb8..14011d4 100644
--- a/Sources/ClickIt/UI/Components/ActiveTimerView.swift
+++ b/Sources/ClickIt/UI/Components/ActiveTimerView.swift
@@ -100,15 +100,17 @@ struct ActiveTimerView: View {
}
}
-#Preview {
- ActiveTimerView(viewModel: {
- let vm = ClickItViewModel()
- vm.isCountingDown = true
- vm.remainingTime = 123 // 2:03
- vm.timerDurationMinutes = 2
- vm.timerDurationSeconds = 30
- return vm
- }())
- .frame(width: 350)
- .padding()
+struct ActiveTimerView_Previews: PreviewProvider {
+ static var previews: some View {
+ ActiveTimerView(viewModel: {
+ let vm = ClickItViewModel()
+ vm.isCountingDown = true
+ vm.remainingTime = 123 // 2:03
+ vm.timerDurationMinutes = 2
+ vm.timerDurationSeconds = 30
+ return vm
+ }())
+ .frame(width: 350)
+ .padding()
+ }
}
\ No newline at end of file
diff --git a/Sources/ClickIt/UI/Components/AdvancedSettingsButton.swift b/Sources/ClickIt/UI/Components/AdvancedSettingsButton.swift
index 45dedb6..75dc0ed 100644
--- a/Sources/ClickIt/UI/Components/AdvancedSettingsButton.swift
+++ b/Sources/ClickIt/UI/Components/AdvancedSettingsButton.swift
@@ -46,8 +46,10 @@ struct AdvancedSettingsButton: View {
}
}
-#Preview {
- AdvancedSettingsButton(viewModel: ClickItViewModel())
- .frame(width: 400)
- .padding()
+struct AdvancedSettingsButton_Previews: PreviewProvider {
+ static var previews: some View {
+ AdvancedSettingsButton(viewModel: ClickItViewModel())
+ .frame(width: 400)
+ .padding()
+ }
}
diff --git a/Sources/ClickIt/UI/Components/ClickPointSelector.swift b/Sources/ClickIt/UI/Components/ClickPointSelector.swift
index 8dd3c27..0d00760 100644
--- a/Sources/ClickIt/UI/Components/ClickPointSelector.swift
+++ b/Sources/ClickIt/UI/Components/ClickPointSelector.swift
@@ -224,9 +224,11 @@ struct ClickCoordinateCapture {
}
}
-#Preview {
- ClickPointSelector { point in
- print("Selected point: \(point)")
+struct ClickPointSelector_Previews: PreviewProvider {
+ static var previews: some View {
+ ClickPointSelector { point in
+ print("Selected point: \(point)")
+ }
+ .frame(width: 400, height: 500)
}
- .frame(width: 400, height: 500)
}
diff --git a/Sources/ClickIt/UI/Components/ConfigurationPanel.swift b/Sources/ClickIt/UI/Components/ConfigurationPanel.swift
index ad9ce14..71ad587 100644
--- a/Sources/ClickIt/UI/Components/ConfigurationPanel.swift
+++ b/Sources/ClickIt/UI/Components/ConfigurationPanel.swift
@@ -394,8 +394,10 @@ struct ConfigurationPanel: View {
}
}
-#Preview {
- ConfigurationPanel(selectedClickPoint: CGPoint(x: 100, y: 100))
- .environmentObject(ClickCoordinator.shared)
- .frame(width: 400, height: 600)
+struct ConfigurationPanel_Previews: PreviewProvider {
+ static var previews: some View {
+ ConfigurationPanel(selectedClickPoint: CGPoint(x: 100, y: 100))
+ .environmentObject(ClickCoordinator.shared)
+ .frame(width: 400, height: 600)
+ }
}
diff --git a/Sources/ClickIt/UI/Components/ConfigurationPanelCard.swift b/Sources/ClickIt/UI/Components/ConfigurationPanelCard.swift
index b943071..ee5f0c0 100644
--- a/Sources/ClickIt/UI/Components/ConfigurationPanelCard.swift
+++ b/Sources/ClickIt/UI/Components/ConfigurationPanelCard.swift
@@ -184,13 +184,15 @@ struct TimeInputField: View {
}
}
-#Preview {
- ConfigurationPanelCard(viewModel: {
- let vm = ClickItViewModel()
- vm.intervalSeconds = 1
- vm.intervalMilliseconds = 500
- return vm
- }())
- .frame(width: 400)
- .padding()
+struct ConfigurationPanelCard_Previews: PreviewProvider {
+ static var previews: some View {
+ ConfigurationPanelCard(viewModel: {
+ let vm = ClickItViewModel()
+ vm.intervalSeconds = 1
+ vm.intervalMilliseconds = 500
+ return vm
+ }())
+ .frame(width: 400)
+ .padding()
+ }
}
diff --git a/Sources/ClickIt/UI/Components/DeveloperUpdateButton.swift b/Sources/ClickIt/UI/Components/DeveloperUpdateButton.swift
index d922c14..625786c 100644
--- a/Sources/ClickIt/UI/Components/DeveloperUpdateButton.swift
+++ b/Sources/ClickIt/UI/Components/DeveloperUpdateButton.swift
@@ -54,6 +54,8 @@ struct DeveloperUpdateButton: View {
}
}
-#Preview {
- DeveloperUpdateButton(updaterManager: UpdaterManager())
+struct DeveloperUpdateButton_Previews: PreviewProvider {
+ static var previews: some View {
+ DeveloperUpdateButton(updaterManager: UpdaterManager())
+ }
}
\ No newline at end of file
diff --git a/Sources/ClickIt/UI/Components/FooterInfoCard.swift b/Sources/ClickIt/UI/Components/FooterInfoCard.swift
index f71e714..e09c3a0 100644
--- a/Sources/ClickIt/UI/Components/FooterInfoCard.swift
+++ b/Sources/ClickIt/UI/Components/FooterInfoCard.swift
@@ -29,8 +29,10 @@ struct FooterInfoCard: View {
}
}
-#Preview {
- FooterInfoCard()
- .frame(width: 400)
- .padding()
+struct FooterInfoCard_Previews: PreviewProvider {
+ static var previews: some View {
+ FooterInfoCard()
+ .frame(width: 400)
+ .padding()
+ }
}
diff --git a/Sources/ClickIt/UI/Components/PermissionStatusIndicator.swift b/Sources/ClickIt/UI/Components/PermissionStatusIndicator.swift
index cabcdc6..0b8625a 100644
--- a/Sources/ClickIt/UI/Components/PermissionStatusIndicator.swift
+++ b/Sources/ClickIt/UI/Components/PermissionStatusIndicator.swift
@@ -196,12 +196,14 @@ struct PermissionHealthBadge: View {
}
}
-#Preview("Permission Status Indicator") {
- VStack(spacing: 16) {
- PermissionStatusIndicator()
- CompactPermissionStatus()
- PermissionHealthBadge()
+struct PermissionStatusIndicator_Previews: PreviewProvider {
+ static var previews: some View {
+ VStack(spacing: 16) {
+ PermissionStatusIndicator()
+ CompactPermissionStatus()
+ PermissionHealthBadge()
+ }
+ .padding()
+ .environmentObject(PermissionManager.shared)
}
- .padding()
- .environmentObject(PermissionManager.shared)
}
diff --git a/Sources/ClickIt/UI/Components/RealTimeElapsedView.swift b/Sources/ClickIt/UI/Components/RealTimeElapsedView.swift
index 44f6e31..fd19abf 100644
--- a/Sources/ClickIt/UI/Components/RealTimeElapsedView.swift
+++ b/Sources/ClickIt/UI/Components/RealTimeElapsedView.swift
@@ -45,45 +45,47 @@ struct ElapsedTimeStatisticView: View {
}
}
-#Preview("Real Time Elapsed View") {
- VStack(spacing: 20) {
- Text("Real-Time Elapsed Time Display")
- .font(.headline)
-
- RealTimeElapsedView(timeManager: {
- let manager = ElapsedTimeManager.shared
- manager.startTracking()
- return manager
- }())
-
- Button("Start/Stop Tracking") {
- let manager = ElapsedTimeManager.shared
- if manager.isTracking {
- manager.stopTracking()
- } else {
+struct RealTimeElapsedView_Previews: PreviewProvider {
+ static var previews: some View {
+ VStack(spacing: 20) {
+ Text("Real-Time Elapsed Time Display")
+ .font(.headline)
+
+ RealTimeElapsedView(timeManager: {
+ let manager = ElapsedTimeManager.shared
manager.startTracking()
+ return manager
+ }())
+
+ Button("Start/Stop Tracking") {
+ let manager = ElapsedTimeManager.shared
+ if manager.isTracking {
+ manager.stopTracking()
+ } else {
+ manager.startTracking()
+ }
}
+ .buttonStyle(.borderedProminent)
}
- .buttonStyle(.borderedProminent)
- }
- .padding()
- .frame(width: 300)
-}
-
-#Preview("Elapsed Time Statistic") {
- ElapsedTimeStatisticView(
- timeManager: ElapsedTimeManager.shared,
- fallbackStatistics: SessionStatistics(
- duration: 125,
- totalClicks: 50,
- successfulClicks: 48,
- failedClicks: 2,
- successRate: 0.96,
- averageClickTime: 0.05,
- clicksPerSecond: 2.4,
- isActive: false
+ .padding()
+ .frame(width: 300)
+ .previewDisplayName("Real Time Elapsed View")
+
+ ElapsedTimeStatisticView(
+ timeManager: ElapsedTimeManager.shared,
+ fallbackStatistics: SessionStatistics(
+ duration: 125,
+ totalClicks: 50,
+ successfulClicks: 48,
+ failedClicks: 2,
+ successRate: 0.96,
+ averageClickTime: 0.05,
+ clicksPerSecond: 2.4,
+ isActive: false
+ )
)
- )
- .frame(width: 120, height: 100)
- .padding()
+ .frame(width: 120, height: 100)
+ .padding()
+ .previewDisplayName("Elapsed Time Statistic")
+ }
}
\ No newline at end of file
diff --git a/Sources/ClickIt/UI/Components/StatisticsView.swift b/Sources/ClickIt/UI/Components/StatisticsView.swift
index 4bb2e98..10c80e7 100644
--- a/Sources/ClickIt/UI/Components/StatisticsView.swift
+++ b/Sources/ClickIt/UI/Components/StatisticsView.swift
@@ -60,8 +60,10 @@ struct StatisticsView: View {
}
}
-#Preview {
- StatisticsView()
- .environmentObject(ClickCoordinator.shared)
- .frame(width: 300, height: 100)
+struct StatisticsView_Previews: PreviewProvider {
+ static var previews: some View {
+ StatisticsView()
+ .environmentObject(ClickCoordinator.shared)
+ .frame(width: 300, height: 100)
+ }
}
diff --git a/Sources/ClickIt/UI/Components/StatusHeaderCard.swift b/Sources/ClickIt/UI/Components/StatusHeaderCard.swift
index f761c48..f2e8cdf 100644
--- a/Sources/ClickIt/UI/Components/StatusHeaderCard.swift
+++ b/Sources/ClickIt/UI/Components/StatusHeaderCard.swift
@@ -123,8 +123,10 @@ struct StatisticView: View {
}
}
-#Preview {
- StatusHeaderCard(viewModel: ClickItViewModel())
- .frame(width: 400)
- .padding()
+struct StatusHeaderCard_Previews: PreviewProvider {
+ static var previews: some View {
+ StatusHeaderCard(viewModel: ClickItViewModel())
+ .frame(width: 400)
+ .padding()
+ }
}
diff --git a/Sources/ClickIt/UI/Components/TargetPointSelectionCard.swift b/Sources/ClickIt/UI/Components/TargetPointSelectionCard.swift
index 002e3f8..940ff79 100644
--- a/Sources/ClickIt/UI/Components/TargetPointSelectionCard.swift
+++ b/Sources/ClickIt/UI/Components/TargetPointSelectionCard.swift
@@ -291,12 +291,14 @@ struct CoordinateDisplay: View {
}
}
-#Preview {
- TargetPointSelectionCard(viewModel: {
- let vm = ClickItViewModel()
- vm.setTargetPoint(CGPoint(x: 1007, y: 260))
- return vm
- }())
- .frame(width: 400)
- .padding()
+struct TargetPointSelectionCard_Previews: PreviewProvider {
+ static var previews: some View {
+ TargetPointSelectionCard(viewModel: {
+ let vm = ClickItViewModel()
+ vm.setTargetPoint(CGPoint(x: 1007, y: 260))
+ return vm
+ }())
+ .frame(width: 400)
+ .padding()
+ }
}
diff --git a/Sources/ClickIt/UI/Components/TimerConfigurationView.swift b/Sources/ClickIt/UI/Components/TimerConfigurationView.swift
index b859b62..b319eb3 100644
--- a/Sources/ClickIt/UI/Components/TimerConfigurationView.swift
+++ b/Sources/ClickIt/UI/Components/TimerConfigurationView.swift
@@ -148,13 +148,15 @@ struct TimerConfigurationView: View {
}
}
-#Preview {
- TimerConfigurationView(viewModel: {
- let vm = ClickItViewModel()
- vm.timerDurationMinutes = 0
- vm.timerDurationSeconds = 15
- return vm
- }())
- .frame(width: 350)
- .padding()
+struct TimerConfigurationView_Previews: PreviewProvider {
+ static var previews: some View {
+ TimerConfigurationView(viewModel: {
+ let vm = ClickItViewModel()
+ vm.timerDurationMinutes = 0
+ vm.timerDurationSeconds = 15
+ return vm
+ }())
+ .frame(width: 350)
+ .padding()
+ }
}
\ No newline at end of file
diff --git a/Sources/ClickIt/UI/Components/UpdateNotificationCard.swift b/Sources/ClickIt/UI/Components/UpdateNotificationCard.swift
index 1eaf232..b20d4f2 100644
--- a/Sources/ClickIt/UI/Components/UpdateNotificationCard.swift
+++ b/Sources/ClickIt/UI/Components/UpdateNotificationCard.swift
@@ -204,6 +204,8 @@ struct InfoRow: View {
}
}
-#Preview {
- UpdateNotificationCard(updaterManager: UpdaterManager())
+struct UpdateNotificationCard_Previews: PreviewProvider {
+ static var previews: some View {
+ UpdateNotificationCard(updaterManager: UpdaterManager())
+ }
}
\ No newline at end of file
diff --git a/Sources/ClickIt/UI/Views/AdvancedSettingsWindow.swift b/Sources/ClickIt/UI/Views/AdvancedSettingsWindow.swift
index 05f2911..82932a6 100644
--- a/Sources/ClickIt/UI/Views/AdvancedSettingsWindow.swift
+++ b/Sources/ClickIt/UI/Views/AdvancedSettingsWindow.swift
@@ -106,6 +106,8 @@ struct AdvancedSettingsWindow: View {
}
}
-#Preview {
- AdvancedSettingsWindow(viewModel: ClickItViewModel())
+struct AdvancedSettingsWindow_Previews: PreviewProvider {
+ static var previews: some View {
+ AdvancedSettingsWindow(viewModel: ClickItViewModel())
+ }
}
diff --git a/Sources/ClickIt/UI/Views/ContentView.swift b/Sources/ClickIt/UI/Views/ContentView.swift
index 0137768..b1100af 100644
--- a/Sources/ClickIt/UI/Views/ContentView.swift
+++ b/Sources/ClickIt/UI/Views/ContentView.swift
@@ -149,9 +149,11 @@ struct ContentView: View {
}
}
-#Preview {
- ContentView()
- .environmentObject(PermissionManager.shared)
- .environmentObject(HotkeyManager.shared)
- .environmentObject(ClickItViewModel())
+struct ContentView_Previews: PreviewProvider {
+ static var previews: some View {
+ ContentView()
+ .environmentObject(PermissionManager.shared)
+ .environmentObject(HotkeyManager.shared)
+ .environmentObject(ClickItViewModel())
+ }
}
diff --git a/Sources/ClickIt/UI/Views/PermissionRequestView.swift b/Sources/ClickIt/UI/Views/PermissionRequestView.swift
index 8f33173..e85fc4e 100644
--- a/Sources/ClickIt/UI/Views/PermissionRequestView.swift
+++ b/Sources/ClickIt/UI/Views/PermissionRequestView.swift
@@ -342,7 +342,9 @@ struct PermissionInstructionsView: View {
}
}
-#Preview {
- PermissionRequestView()
- .environmentObject(PermissionManager.shared)
+struct PermissionRequestView_Previews: PreviewProvider {
+ static var previews: some View {
+ PermissionRequestView()
+ .environmentObject(PermissionManager.shared)
+ }
}
diff --git a/Sources/ClickIt/UI/Views/PermissionsGateView.swift b/Sources/ClickIt/UI/Views/PermissionsGateView.swift
index 2f20e06..e08c48c 100644
--- a/Sources/ClickIt/UI/Views/PermissionsGateView.swift
+++ b/Sources/ClickIt/UI/Views/PermissionsGateView.swift
@@ -251,6 +251,8 @@ struct PermissionGateRow: View {
}
}
-#Preview {
- PermissionsGateView()
+struct PermissionsGateView_Previews: PreviewProvider {
+ static var previews: some View {
+ PermissionsGateView()
+ }
}
diff --git a/Sources/ClickIt/UI/Views/WindowDetectionTestView.swift b/Sources/ClickIt/UI/Views/WindowDetectionTestView.swift
index 81fdb8d..2f6933f 100644
--- a/Sources/ClickIt/UI/Views/WindowDetectionTestView.swift
+++ b/Sources/ClickIt/UI/Views/WindowDetectionTestView.swift
@@ -263,6 +263,8 @@ struct TestResultRowView: View {
}
}
-#Preview {
- WindowDetectionTestView()
+struct WindowDetectionTestView_Previews: PreviewProvider {
+ static var previews: some View {
+ WindowDetectionTestView()
+ }
}