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() + } }