@usefy/screen-recorder 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2122,7 +2122,143 @@ ScreenRecorder.displayName = "ScreenRecorder";
2122
2122
  if (document.getElementById(id)) return;
2123
2123
  var style = document.createElement('style');
2124
2124
  style.id = id;
2125
- style.textContent = `/* components/Status/StatusBadge.module.scss */
2125
+ style.textContent = `/* components/Trigger/Trigger.module.scss */
2126
+ @keyframes pulse {
2127
+ 0%, 100% {
2128
+ opacity: 1;
2129
+ }
2130
+ 50% {
2131
+ opacity: 0.5;
2132
+ }
2133
+ }
2134
+ @keyframes pulse-record {
2135
+ 0%, 100% {
2136
+ opacity: 1;
2137
+ }
2138
+ 50% {
2139
+ opacity: 0.5;
2140
+ }
2141
+ }
2142
+ @keyframes spin {
2143
+ from {
2144
+ transform: rotate(0deg);
2145
+ }
2146
+ to {
2147
+ transform: rotate(360deg);
2148
+ }
2149
+ }
2150
+ @keyframes fade-in {
2151
+ 0% {
2152
+ opacity: 0;
2153
+ }
2154
+ 100% {
2155
+ opacity: 1;
2156
+ }
2157
+ }
2158
+ @keyframes slide-up {
2159
+ 0% {
2160
+ transform: translateY(10px);
2161
+ opacity: 0;
2162
+ }
2163
+ 100% {
2164
+ transform: translateY(0);
2165
+ opacity: 1;
2166
+ }
2167
+ }
2168
+ @keyframes countdown-scale {
2169
+ 0% {
2170
+ transform: scale(0.5);
2171
+ opacity: 0;
2172
+ }
2173
+ 50% {
2174
+ transform: scale(1.2);
2175
+ opacity: 1;
2176
+ }
2177
+ 100% {
2178
+ transform: scale(1);
2179
+ opacity: 1;
2180
+ }
2181
+ }
2182
+ .Trigger_trigger__dtqfb {
2183
+ -webkit-appearance: none;
2184
+ -moz-appearance: none;
2185
+ appearance: none;
2186
+ background: none;
2187
+ border: none;
2188
+ padding: 0;
2189
+ margin: 0;
2190
+ font: inherit;
2191
+ color: inherit;
2192
+ cursor: pointer;
2193
+ }
2194
+ .Trigger_trigger__dtqfb:disabled {
2195
+ cursor: not-allowed;
2196
+ }
2197
+ .Trigger_trigger__dtqfb {
2198
+ position: fixed;
2199
+ display: flex;
2200
+ align-items: center;
2201
+ justify-content: center;
2202
+ gap: 0.5rem;
2203
+ padding: 0.625rem 1rem;
2204
+ border-radius: 9999px;
2205
+ font-weight: 500;
2206
+ font-size: 0.875rem;
2207
+ line-height: 1.5;
2208
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
2209
+ background-color: #dc2626;
2210
+ color: white;
2211
+ transition-property: all;
2212
+ transition-duration: 200ms;
2213
+ transition-timing-function: ease-out;
2214
+ }
2215
+ .Trigger_trigger__dtqfb:hover:not(:disabled) {
2216
+ background-color: #b91c1c;
2217
+ transform: scale(1.05);
2218
+ }
2219
+ .Trigger_trigger__dtqfb:active:not(:disabled) {
2220
+ background-color: #991b1b;
2221
+ transform: scale(0.95);
2222
+ }
2223
+ .Trigger_trigger__dtqfb:focus {
2224
+ outline: none;
2225
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1), 0 0 0 2px white, 0 0 0 4px #ef4444;
2226
+ }
2227
+ .Trigger_trigger__dtqfb:disabled {
2228
+ opacity: 0.5;
2229
+ cursor: not-allowed;
2230
+ }
2231
+ .Trigger_trigger__dtqfb:disabled:hover {
2232
+ background-color: #dc2626;
2233
+ transform: none;
2234
+ }
2235
+
2236
+ .Trigger_topLeft__dtqfb {
2237
+ top: 1rem;
2238
+ left: 1rem;
2239
+ }
2240
+
2241
+ .Trigger_topRight__dtqfb {
2242
+ top: 1rem;
2243
+ right: 1rem;
2244
+ }
2245
+
2246
+ .Trigger_bottomLeft__dtqfb {
2247
+ bottom: 1rem;
2248
+ left: 1rem;
2249
+ }
2250
+
2251
+ .Trigger_bottomRight__dtqfb {
2252
+ bottom: 1rem;
2253
+ right: 1rem;
2254
+ }
2255
+
2256
+ .Trigger_icon__dtqfb {
2257
+ width: 1.25rem;
2258
+ height: 1.25rem;
2259
+ }
2260
+
2261
+ /* components/Status/StatusBadge.module.scss */
2126
2262
  @keyframes pulse {
2127
2263
  0%, 100% {
2128
2264
  opacity: 1;
@@ -2781,7 +2917,7 @@ ScreenRecorder.displayName = "ScreenRecorder";
2781
2917
  color: #6b7280;
2782
2918
  }
2783
2919
 
2784
- /* components/Trigger/Trigger.module.scss */
2920
+ /* components/Controls/RecordingControls.module.scss */
2785
2921
  @keyframes pulse {
2786
2922
  0%, 100% {
2787
2923
  opacity: 1;
@@ -2838,211 +2974,126 @@ ScreenRecorder.displayName = "ScreenRecorder";
2838
2974
  opacity: 1;
2839
2975
  }
2840
2976
  }
2841
- .Trigger_trigger__dtqfb {
2842
- -webkit-appearance: none;
2843
- -moz-appearance: none;
2844
- appearance: none;
2845
- background: none;
2846
- border: none;
2847
- padding: 0;
2848
- margin: 0;
2849
- font: inherit;
2850
- color: inherit;
2851
- cursor: pointer;
2852
- }
2853
- .Trigger_trigger__dtqfb:disabled {
2854
- cursor: not-allowed;
2855
- }
2856
- .Trigger_trigger__dtqfb {
2977
+ .RecordingControls_controls__aqrrv {
2857
2978
  position: fixed;
2858
2979
  display: flex;
2859
2980
  align-items: center;
2860
2981
  justify-content: center;
2861
- gap: 0.5rem;
2982
+ gap: 0.75rem;
2862
2983
  padding: 0.625rem 1rem;
2863
2984
  border-radius: 9999px;
2864
- font-weight: 500;
2865
- font-size: 0.875rem;
2866
- line-height: 1.5;
2985
+ background-color: white;
2867
2986
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
2868
- background-color: #dc2626;
2869
- color: white;
2870
- transition-property: all;
2871
- transition-duration: 200ms;
2872
- transition-timing-function: ease-out;
2873
- }
2874
- .Trigger_trigger__dtqfb:hover:not(:disabled) {
2875
- background-color: #b91c1c;
2876
- transform: scale(1.05);
2877
- }
2878
- .Trigger_trigger__dtqfb:active:not(:disabled) {
2879
- background-color: #991b1b;
2880
- transform: scale(0.95);
2881
- }
2882
- .Trigger_trigger__dtqfb:focus {
2883
- outline: none;
2884
- box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1), 0 0 0 2px white, 0 0 0 4px #ef4444;
2885
- }
2886
- .Trigger_trigger__dtqfb:disabled {
2887
- opacity: 0.5;
2888
- cursor: not-allowed;
2987
+ border: 1px solid #e5e7eb;
2988
+ animation: slide-up 300ms ease-out;
2889
2989
  }
2890
- .Trigger_trigger__dtqfb:disabled:hover {
2891
- background-color: #dc2626;
2892
- transform: none;
2990
+ .dark .RecordingControls_controls__aqrrv {
2991
+ background-color: #1f2937;
2992
+ border-color: #374151;
2893
2993
  }
2894
2994
 
2895
- .Trigger_topLeft__dtqfb {
2995
+ .RecordingControls_topLeft__aqrrv {
2896
2996
  top: 1rem;
2897
2997
  left: 1rem;
2898
2998
  }
2899
2999
 
2900
- .Trigger_topRight__dtqfb {
3000
+ .RecordingControls_topRight__aqrrv {
2901
3001
  top: 1rem;
2902
3002
  right: 1rem;
2903
3003
  }
2904
3004
 
2905
- .Trigger_bottomLeft__dtqfb {
3005
+ .RecordingControls_bottomLeft__aqrrv {
2906
3006
  bottom: 1rem;
2907
3007
  left: 1rem;
2908
3008
  }
2909
3009
 
2910
- .Trigger_bottomRight__dtqfb {
3010
+ .RecordingControls_bottomRight__aqrrv {
2911
3011
  bottom: 1rem;
2912
3012
  right: 1rem;
2913
3013
  }
2914
3014
 
2915
- .Trigger_icon__dtqfb {
2916
- width: 1.25rem;
2917
- height: 1.25rem;
3015
+ .RecordingControls_statusSection__aqrrv {
3016
+ display: flex;
3017
+ align-items: center;
3018
+ justify-content: center;
3019
+ gap: 0.5rem;
2918
3020
  }
2919
3021
 
2920
- /* components/Preview/VideoPlayer.module.scss */
2921
- @keyframes pulse {
2922
- 0%, 100% {
2923
- opacity: 1;
2924
- }
2925
- 50% {
2926
- opacity: 0.5;
2927
- }
3022
+ .RecordingControls_statusIndicator__aqrrv {
3023
+ display: flex;
3024
+ align-items: center;
3025
+ justify-content: center;
3026
+ gap: 0.375rem;
2928
3027
  }
2929
- @keyframes pulse-record {
2930
- 0%, 100% {
2931
- opacity: 1;
2932
- }
2933
- 50% {
2934
- opacity: 0.5;
2935
- }
3028
+
3029
+ .RecordingControls_statusRecording__aqrrv {
3030
+ color: #ef4444;
2936
3031
  }
2937
- @keyframes spin {
2938
- from {
2939
- transform: rotate(0deg);
2940
- }
2941
- to {
2942
- transform: rotate(360deg);
2943
- }
3032
+
3033
+ .RecordingControls_statusPaused__aqrrv {
3034
+ color: #f59e0b;
2944
3035
  }
2945
- @keyframes fade-in {
2946
- 0% {
2947
- opacity: 0;
2948
- }
2949
- 100% {
2950
- opacity: 1;
2951
- }
2952
- }
2953
- @keyframes slide-up {
2954
- 0% {
2955
- transform: translateY(10px);
2956
- opacity: 0;
2957
- }
2958
- 100% {
2959
- transform: translateY(0);
2960
- opacity: 1;
2961
- }
2962
- }
2963
- @keyframes countdown-scale {
2964
- 0% {
2965
- transform: scale(0.5);
2966
- opacity: 0;
2967
- }
2968
- 50% {
2969
- transform: scale(1.2);
2970
- opacity: 1;
2971
- }
2972
- 100% {
2973
- transform: scale(1);
2974
- opacity: 1;
2975
- }
2976
- }
2977
- .VideoPlayer_container__4wok5 {
2978
- position: relative;
2979
- background-color: black;
2980
- border-radius: 0.5rem;
2981
- overflow: hidden;
3036
+
3037
+ .RecordingControls_recordingIcon__aqrrv {
3038
+ width: 0.75rem;
3039
+ height: 0.75rem;
3040
+ animation: pulse-record 1s ease-in-out infinite;
2982
3041
  }
2983
3042
 
2984
- .VideoPlayer_video__4wok5 {
2985
- width: 100%;
2986
- height: auto;
3043
+ .RecordingControls_pauseIconSmall__aqrrv {
3044
+ width: 0.75rem;
3045
+ height: 0.75rem;
2987
3046
  }
2988
3047
 
2989
- .VideoPlayer_controlsOverlay__4wok5 {
2990
- position: absolute;
2991
- bottom: 0;
2992
- left: 0;
2993
- right: 0;
2994
- background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
2995
- padding: 0.75rem;
3048
+ .RecordingControls_statusLabel__aqrrv {
3049
+ font-size: 0.75rem;
3050
+ line-height: 1.5;
3051
+ font-weight: 600;
3052
+ text-transform: uppercase;
2996
3053
  }
2997
3054
 
2998
- .VideoPlayer_progressWrapper__4wok5 {
3055
+ .RecordingControls_buttonGroup__aqrrv {
2999
3056
  display: flex;
3000
3057
  align-items: center;
3001
3058
  justify-content: center;
3002
- gap: 0.5rem;
3003
- margin-bottom: 0.5rem;
3059
+ gap: 0.25rem;
3060
+ margin-left: 0.5rem;
3004
3061
  }
3005
3062
 
3006
- .VideoPlayer_progressSlider__4wok5 {
3007
- flex: 1;
3008
- height: 0.25rem;
3009
- border-radius: 9999px;
3063
+ .RecordingControls_controlButton__aqrrv {
3010
3064
  -webkit-appearance: none;
3011
3065
  -moz-appearance: none;
3012
3066
  appearance: none;
3067
+ background: none;
3068
+ border: none;
3069
+ padding: 0;
3070
+ margin: 0;
3071
+ font: inherit;
3072
+ color: inherit;
3013
3073
  cursor: pointer;
3014
- background-color: rgba(255, 255, 255, 0.3);
3015
3074
  }
3016
- .VideoPlayer_progressSlider__4wok5::-webkit-slider-thumb {
3017
- -webkit-appearance: none;
3018
- appearance: none;
3019
- width: 0.75rem;
3020
- height: 0.75rem;
3021
- border-radius: 9999px;
3022
- background-color: white;
3075
+ .RecordingControls_controlButton__aqrrv:disabled {
3076
+ cursor: not-allowed;
3023
3077
  }
3024
- .VideoPlayer_progressSlider__4wok5::-moz-range-thumb {
3025
- width: 0.75rem;
3026
- height: 0.75rem;
3078
+ .RecordingControls_controlButton__aqrrv {
3079
+ padding: 0.5rem;
3027
3080
  border-radius: 9999px;
3028
- background-color: white;
3029
- border: none;
3081
+ transition-property: color, background-color, border-color;
3082
+ transition-duration: 200ms;
3083
+ transition-timing-function: ease-out;
3030
3084
  }
3031
-
3032
- .VideoPlayer_bottomControls__4wok5 {
3033
- display: flex;
3034
- align-items: center;
3035
- justify-content: space-between;
3085
+ .RecordingControls_controlButton__aqrrv:hover:not(:disabled) {
3086
+ background-color: #f3f4f6;
3036
3087
  }
3037
-
3038
- .VideoPlayer_leftControls__4wok5 {
3039
- display: flex;
3040
- align-items: center;
3041
- justify-content: center;
3042
- gap: 0.5rem;
3088
+ .RecordingControls_controlButton__aqrrv:focus {
3089
+ outline: none;
3090
+ box-shadow: 0 0 0 2px white, 0 0 0 4px #3b82f6;
3091
+ }
3092
+ .dark .RecordingControls_controlButton__aqrrv:hover:not(:disabled) {
3093
+ background-color: #374151;
3043
3094
  }
3044
3095
 
3045
- .VideoPlayer_playButton__4wok5 {
3096
+ .RecordingControls_stopButton__aqrrv {
3046
3097
  -webkit-appearance: none;
3047
3098
  -moz-appearance: none;
3048
3099
  appearance: none;
@@ -3054,39 +3105,46 @@ ScreenRecorder.displayName = "ScreenRecorder";
3054
3105
  color: inherit;
3055
3106
  cursor: pointer;
3056
3107
  }
3057
- .VideoPlayer_playButton__4wok5:disabled {
3108
+ .RecordingControls_stopButton__aqrrv:disabled {
3058
3109
  cursor: not-allowed;
3059
3110
  }
3060
- .VideoPlayer_playButton__4wok5 {
3061
- padding: 0.375rem;
3111
+ .RecordingControls_stopButton__aqrrv {
3112
+ padding: 0.5rem;
3062
3113
  border-radius: 9999px;
3063
3114
  transition-property: color, background-color, border-color;
3064
3115
  transition-duration: 200ms;
3065
3116
  transition-timing-function: ease-out;
3066
3117
  }
3067
- .VideoPlayer_playButton__4wok5:hover {
3068
- background-color: rgba(255, 255, 255, 0.2);
3118
+ .RecordingControls_stopButton__aqrrv:hover:not(:disabled) {
3119
+ background-color: #fee2e2;
3069
3120
  }
3070
- .VideoPlayer_playButton__4wok5:focus {
3121
+ .RecordingControls_stopButton__aqrrv:focus {
3071
3122
  outline: none;
3072
- box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5);
3123
+ box-shadow: 0 0 0 2px white, 0 0 0 4px #ef4444;
3124
+ }
3125
+ .dark .RecordingControls_stopButton__aqrrv:hover:not(:disabled) {
3126
+ background-color: rgba(127, 29, 29, 0.3);
3073
3127
  }
3074
3128
 
3075
- .VideoPlayer_playIcon__4wok5 {
3129
+ .RecordingControls_buttonIcon__aqrrv {
3076
3130
  width: 1rem;
3077
3131
  height: 1rem;
3078
- color: white;
3132
+ color: #4b5563;
3133
+ }
3134
+ .dark .RecordingControls_buttonIcon__aqrrv {
3135
+ color: #d1d5db;
3079
3136
  }
3080
3137
 
3081
- .VideoPlayer_timeDisplay__4wok5 {
3082
- color: rgba(255, 255, 255, 0.8);
3083
- font-size: 0.75rem;
3084
- line-height: 1.5;
3085
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
3086
- font-variant-numeric: tabular-nums;
3138
+ .RecordingControls_stopIcon__aqrrv {
3139
+ width: 1rem;
3140
+ height: 1rem;
3141
+ color: #dc2626;
3142
+ }
3143
+ .dark .RecordingControls_stopIcon__aqrrv {
3144
+ color: #f87171;
3087
3145
  }
3088
3146
 
3089
- /* components/Controls/RecordingControls.module.scss */
3147
+ /* ScreenRecorder.module.scss */
3090
3148
  @keyframes pulse {
3091
3149
  0%, 100% {
3092
3150
  opacity: 1;
@@ -3143,177 +3201,32 @@ ScreenRecorder.displayName = "ScreenRecorder";
3143
3201
  opacity: 1;
3144
3202
  }
3145
3203
  }
3146
- .RecordingControls_controls__aqrrv {
3147
- position: fixed;
3148
- display: flex;
3149
- align-items: center;
3150
- justify-content: center;
3151
- gap: 0.75rem;
3152
- padding: 0.625rem 1rem;
3153
- border-radius: 9999px;
3154
- background-color: white;
3155
- box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
3156
- border: 1px solid #e5e7eb;
3157
- animation: slide-up 300ms ease-out;
3158
- }
3159
- .dark .RecordingControls_controls__aqrrv {
3160
- background-color: #1f2937;
3161
- border-color: #374151;
3162
- }
3163
-
3164
- .RecordingControls_topLeft__aqrrv {
3165
- top: 1rem;
3166
- left: 1rem;
3167
- }
3168
-
3169
- .RecordingControls_topRight__aqrrv {
3170
- top: 1rem;
3171
- right: 1rem;
3204
+ .ScreenRecorder_spinner__l636w {
3205
+ animation: spin 1s linear infinite;
3206
+ width: 1rem;
3207
+ height: 1rem;
3172
3208
  }
3173
3209
 
3174
- .RecordingControls_bottomLeft__aqrrv {
3175
- bottom: 1rem;
3176
- left: 1rem;
3210
+ .ScreenRecorder_spinnerTrack__l636w {
3211
+ opacity: 0.25;
3177
3212
  }
3178
3213
 
3179
- .RecordingControls_bottomRight__aqrrv {
3180
- bottom: 1rem;
3181
- right: 1rem;
3214
+ .ScreenRecorder_spinnerHead__l636w {
3215
+ opacity: 0.75;
3182
3216
  }
3183
3217
 
3184
- .RecordingControls_statusSection__aqrrv {
3218
+ .ScreenRecorder_requestingContent__l636w {
3185
3219
  display: flex;
3186
3220
  align-items: center;
3187
3221
  justify-content: center;
3188
3222
  gap: 0.5rem;
3189
3223
  }
3190
3224
 
3191
- .RecordingControls_statusIndicator__aqrrv {
3192
- display: flex;
3193
- align-items: center;
3194
- justify-content: center;
3195
- gap: 0.375rem;
3196
- }
3197
-
3198
- .RecordingControls_statusRecording__aqrrv {
3199
- color: #ef4444;
3200
- }
3201
-
3202
- .RecordingControls_statusPaused__aqrrv {
3203
- color: #f59e0b;
3204
- }
3205
-
3206
- .RecordingControls_recordingIcon__aqrrv {
3207
- width: 0.75rem;
3208
- height: 0.75rem;
3209
- animation: pulse-record 1s ease-in-out infinite;
3210
- }
3211
-
3212
- .RecordingControls_pauseIconSmall__aqrrv {
3213
- width: 0.75rem;
3214
- height: 0.75rem;
3215
- }
3216
-
3217
- .RecordingControls_statusLabel__aqrrv {
3218
- font-size: 0.75rem;
3219
- line-height: 1.5;
3220
- font-weight: 600;
3221
- text-transform: uppercase;
3222
- }
3223
-
3224
- .RecordingControls_buttonGroup__aqrrv {
3225
- display: flex;
3226
- align-items: center;
3227
- justify-content: center;
3228
- gap: 0.25rem;
3229
- margin-left: 0.5rem;
3230
- }
3231
-
3232
- .RecordingControls_controlButton__aqrrv {
3233
- -webkit-appearance: none;
3234
- -moz-appearance: none;
3235
- appearance: none;
3236
- background: none;
3237
- border: none;
3238
- padding: 0;
3239
- margin: 0;
3240
- font: inherit;
3241
- color: inherit;
3242
- cursor: pointer;
3243
- }
3244
- .RecordingControls_controlButton__aqrrv:disabled {
3245
- cursor: not-allowed;
3246
- }
3247
- .RecordingControls_controlButton__aqrrv {
3248
- padding: 0.5rem;
3249
- border-radius: 9999px;
3250
- transition-property: color, background-color, border-color;
3251
- transition-duration: 200ms;
3252
- transition-timing-function: ease-out;
3253
- }
3254
- .RecordingControls_controlButton__aqrrv:hover:not(:disabled) {
3255
- background-color: #f3f4f6;
3256
- }
3257
- .RecordingControls_controlButton__aqrrv:focus {
3258
- outline: none;
3259
- box-shadow: 0 0 0 2px white, 0 0 0 4px #3b82f6;
3260
- }
3261
- .dark .RecordingControls_controlButton__aqrrv:hover:not(:disabled) {
3262
- background-color: #374151;
3263
- }
3264
-
3265
- .RecordingControls_stopButton__aqrrv {
3266
- -webkit-appearance: none;
3267
- -moz-appearance: none;
3268
- appearance: none;
3269
- background: none;
3270
- border: none;
3271
- padding: 0;
3272
- margin: 0;
3273
- font: inherit;
3274
- color: inherit;
3275
- cursor: pointer;
3276
- }
3277
- .RecordingControls_stopButton__aqrrv:disabled {
3278
- cursor: not-allowed;
3279
- }
3280
- .RecordingControls_stopButton__aqrrv {
3281
- padding: 0.5rem;
3282
- border-radius: 9999px;
3283
- transition-property: color, background-color, border-color;
3284
- transition-duration: 200ms;
3285
- transition-timing-function: ease-out;
3286
- }
3287
- .RecordingControls_stopButton__aqrrv:hover:not(:disabled) {
3288
- background-color: #fee2e2;
3289
- }
3290
- .RecordingControls_stopButton__aqrrv:focus {
3291
- outline: none;
3292
- box-shadow: 0 0 0 2px white, 0 0 0 4px #ef4444;
3293
- }
3294
- .dark .RecordingControls_stopButton__aqrrv:hover:not(:disabled) {
3295
- background-color: rgba(127, 29, 29, 0.3);
3296
- }
3297
-
3298
- .RecordingControls_buttonIcon__aqrrv {
3299
- width: 1rem;
3300
- height: 1rem;
3301
- color: #4b5563;
3302
- }
3303
- .dark .RecordingControls_buttonIcon__aqrrv {
3304
- color: #d1d5db;
3305
- }
3306
-
3307
- .RecordingControls_stopIcon__aqrrv {
3308
- width: 1rem;
3309
- height: 1rem;
3310
- color: #dc2626;
3311
- }
3312
- .dark .RecordingControls_stopIcon__aqrrv {
3313
- color: #f87171;
3225
+ .ScreenRecorder_opacityReduced__l636w {
3226
+ opacity: 0.75;
3314
3227
  }
3315
3228
 
3316
- /* ScreenRecorder.module.scss */
3229
+ /* components/Preview/VideoPlayer.module.scss */
3317
3230
  @keyframes pulse {
3318
3231
  0%, 100% {
3319
3232
  opacity: 1;
@@ -3370,29 +3283,116 @@ ScreenRecorder.displayName = "ScreenRecorder";
3370
3283
  opacity: 1;
3371
3284
  }
3372
3285
  }
3373
- .ScreenRecorder_spinner__l636w {
3374
- animation: spin 1s linear infinite;
3375
- width: 1rem;
3376
- height: 1rem;
3286
+ .VideoPlayer_container__4wok5 {
3287
+ position: relative;
3288
+ background-color: black;
3289
+ border-radius: 0.5rem;
3290
+ overflow: hidden;
3377
3291
  }
3378
3292
 
3379
- .ScreenRecorder_spinnerTrack__l636w {
3380
- opacity: 0.25;
3293
+ .VideoPlayer_video__4wok5 {
3294
+ width: 100%;
3295
+ height: auto;
3381
3296
  }
3382
3297
 
3383
- .ScreenRecorder_spinnerHead__l636w {
3384
- opacity: 0.75;
3298
+ .VideoPlayer_controlsOverlay__4wok5 {
3299
+ position: absolute;
3300
+ bottom: 0;
3301
+ left: 0;
3302
+ right: 0;
3303
+ background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
3304
+ padding: 0.75rem;
3385
3305
  }
3386
3306
 
3387
- .ScreenRecorder_requestingContent__l636w {
3307
+ .VideoPlayer_progressWrapper__4wok5 {
3388
3308
  display: flex;
3389
3309
  align-items: center;
3390
3310
  justify-content: center;
3391
3311
  gap: 0.5rem;
3312
+ margin-bottom: 0.5rem;
3392
3313
  }
3393
3314
 
3394
- .ScreenRecorder_opacityReduced__l636w {
3395
- opacity: 0.75;
3315
+ .VideoPlayer_progressSlider__4wok5 {
3316
+ flex: 1;
3317
+ height: 0.25rem;
3318
+ border-radius: 9999px;
3319
+ -webkit-appearance: none;
3320
+ -moz-appearance: none;
3321
+ appearance: none;
3322
+ cursor: pointer;
3323
+ background-color: rgba(255, 255, 255, 0.3);
3324
+ }
3325
+ .VideoPlayer_progressSlider__4wok5::-webkit-slider-thumb {
3326
+ -webkit-appearance: none;
3327
+ appearance: none;
3328
+ width: 0.75rem;
3329
+ height: 0.75rem;
3330
+ border-radius: 9999px;
3331
+ background-color: white;
3332
+ }
3333
+ .VideoPlayer_progressSlider__4wok5::-moz-range-thumb {
3334
+ width: 0.75rem;
3335
+ height: 0.75rem;
3336
+ border-radius: 9999px;
3337
+ background-color: white;
3338
+ border: none;
3339
+ }
3340
+
3341
+ .VideoPlayer_bottomControls__4wok5 {
3342
+ display: flex;
3343
+ align-items: center;
3344
+ justify-content: space-between;
3345
+ }
3346
+
3347
+ .VideoPlayer_leftControls__4wok5 {
3348
+ display: flex;
3349
+ align-items: center;
3350
+ justify-content: center;
3351
+ gap: 0.5rem;
3352
+ }
3353
+
3354
+ .VideoPlayer_playButton__4wok5 {
3355
+ -webkit-appearance: none;
3356
+ -moz-appearance: none;
3357
+ appearance: none;
3358
+ background: none;
3359
+ border: none;
3360
+ padding: 0;
3361
+ margin: 0;
3362
+ font: inherit;
3363
+ color: inherit;
3364
+ cursor: pointer;
3365
+ }
3366
+ .VideoPlayer_playButton__4wok5:disabled {
3367
+ cursor: not-allowed;
3368
+ }
3369
+ .VideoPlayer_playButton__4wok5 {
3370
+ padding: 0.375rem;
3371
+ border-radius: 9999px;
3372
+ transition-property: color, background-color, border-color;
3373
+ transition-duration: 200ms;
3374
+ transition-timing-function: ease-out;
3375
+ }
3376
+ .VideoPlayer_playButton__4wok5:hover {
3377
+ background-color: rgba(255, 255, 255, 0.2);
3378
+ }
3379
+ .VideoPlayer_playButton__4wok5:focus {
3380
+ outline: none;
3381
+ box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5);
3382
+ }
3383
+
3384
+ .VideoPlayer_playIcon__4wok5 {
3385
+ width: 1rem;
3386
+ height: 1rem;
3387
+ color: white;
3388
+ }
3389
+
3390
+ .VideoPlayer_timeDisplay__4wok5 {
3391
+ color: rgba(255, 255, 255, 0.8);
3392
+ font-size: 0.75rem;
3393
+ line-height: 1.5;
3394
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
3395
+ font-variant-numeric: tabular-nums;
3396
3396
  }
3397
3397
 
3398
3398
  /* components/Preview/PreviewModal.module.scss */