senangwebs-tour 1.0.2 → 1.0.3

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.
@@ -1,869 +1,898 @@
1
- /* SenangWebs Tour Editor - CSS Entry Point */
2
- /* This file bundles all editor styles for distribution */
3
- /* SenangWebs Tour Editor - Main Styles */
1
+
2
+
3
+ @import url("https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap");
4
+ /* SenangWebs Tour Editor - CSS Entry Point */
5
+ /* This file bundles all editor styles for distribution */
6
+ /* SenangWebs Tour Editor - Main Styles */
4
7
  * {
5
- margin: 0;
6
- padding: 0;
7
- box-sizing: border-box;
8
- }
8
+ margin: 0;
9
+ padding: 0;
10
+ box-sizing: border-box;
11
+ font-family: var(--font-family);
12
+ }
9
13
  :root {
10
- --bg-primary: #09090B; /* darker */
11
- --bg-secondary: #18181B; /* dark (brand.dark) */
12
- --bg-tertiary: #1F1F22; /* slightly lighter for panels */
13
- --bg-hover: #232426; /* hover state for dark surfaces */
14
- --border-color: #2A2A2D; /* subtle border on dark bg */
15
- --text-primary: #FFFFFF; /* readable on dark backgrounds */
16
- --text-secondary: #A7CFC6; /* soft mint/teal for secondary text */
17
- --text-muted: #7A8086; /* muted gray for helper text */
18
- --accent-primary: #00FF99; /* brand primary */
19
- --accent-hover: #00D882; /* ~15% darker than primary for hover */
20
- --accent-cyan: #00D1E6; /* cyan/teal accent (mix of primary + blue tone) */
21
- --success: #006045; /* green success tone (derived from primary) */
22
- --danger: #EF4444; /* standard danger red */
23
- --warning: #F59E0B; /* standard warning orange */
24
- }
14
+ --font-family: "Outfit", sans-serif;
15
+ --bg-primary: #09090b; /* darker */
16
+ --bg-secondary: #18181b; /* dark (brand.dark) */
17
+ --bg-tertiary: #1f1f22; /* slightly lighter for panels */
18
+ --bg-hover: #232426; /* hover state for dark surfaces */
19
+ --border-color: #2a2a2d; /* subtle border on dark bg */
20
+ --text-primary: #ffffff; /* readable on dark backgrounds */
21
+ --text-secondary: #d4d4d4; /* soft mint/teal for secondary text */
22
+ --text-muted: #7a8086; /* muted gray for helper text */
23
+ --accent-primary: #00ff99; /* brand primary */
24
+ --accent-hover: #00d882; /* ~15% darker than primary for hover */
25
+ --accent-cyan: #00d1e6; /* cyan/teal accent (mix of primary + blue tone) */
26
+ --success: #006045; /* green success tone (derived from primary) */
27
+ --danger: #ef4444; /* standard danger red */
28
+ --warning: #f59e0b; /* standard warning orange */
29
+ }
25
30
  body {
26
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
27
- background: var(--bg-primary);
28
- color: var(--text-primary);
29
- height: 100vh;
30
- overflow: hidden;
31
- }
32
- /* Header */
31
+ background: var(--bg-primary);
32
+ color: var(--text-primary);
33
+ height: 100vh;
34
+ overflow: hidden;
35
+ }
36
+ /* Header */
33
37
  .editor-header {
34
- background: var(--bg-secondary);
35
- border-bottom: 1px solid var(--border-color);
36
- padding: 12px 20px;
37
- display: flex;
38
- align-items: center;
39
- justify-content: space-between;
40
- height: 60px;
41
- }
38
+ background: var(--bg-secondary);
39
+ border-bottom: 1px solid var(--border-color);
40
+ padding: 12px 20px;
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: space-between;
44
+ height: 60px;
45
+ }
42
46
  .header-left {
43
- display: flex;
44
- align-items: center;
45
- gap: 16px;
46
- }
47
+ display: flex;
48
+ align-items: center;
49
+ gap: 16px;
50
+ }
47
51
  .logo {
48
- display: flex;
49
- align-items: center;
50
- gap: 8px;
51
- font-size: 18px;
52
- font-weight: 600;
53
- }
52
+ display: flex;
53
+ align-items: center;
54
+ gap: 8px;
55
+ font-size: 18px;
56
+ font-weight: 600;
57
+ }
54
58
  .logo-icon {
55
- width: 24px;
56
- height: 24px;
57
- background: linear-gradient(135deg, var(--accent-primary), var(--accent-cyan));
58
- border-radius: 4px;
59
- }
59
+ width: 24px;
60
+ height: 24px;
61
+ background: linear-gradient(
62
+ 135deg,
63
+ var(--accent-primary),
64
+ var(--accent-cyan)
65
+ );
66
+ border-radius: 4px;
67
+ }
60
68
  .project-info {
61
- display: flex;
62
- align-items: center;
63
- gap: 8px;
64
- padding-left: 16px;
65
- border-left: 1px solid var(--border-color);
66
- }
69
+ display: flex;
70
+ align-items: center;
71
+ gap: 8px;
72
+ padding-left: 16px;
73
+ border-left: 1px solid var(--border-color);
74
+ }
67
75
  .project-label {
68
- color: var(--text-muted);
69
- font-size: 12px;
70
- text-transform: uppercase;
71
- letter-spacing: 0.5px;
72
- }
76
+ color: var(--text-muted);
77
+ font-size: 12px;
78
+ text-transform: uppercase;
79
+ letter-spacing: 0.5px;
80
+ }
73
81
  .project-name {
74
- color: var(--text-primary);
75
- font-size: 14px;
76
- font-weight: 500;
77
- }
82
+ color: var(--text-primary);
83
+ font-size: 14px;
84
+ font-weight: 500;
85
+ }
78
86
  .header-actions {
79
- display: flex;
80
- align-items: center;
81
- gap: 8px;
82
- }
87
+ display: flex;
88
+ align-items: center;
89
+ gap: 8px;
90
+ }
83
91
  .btn {
84
- padding: 8px 16px;
85
- border: none;
86
- border-radius: 6px;
87
- font-size: 14px;
88
- font-weight: 500;
89
- cursor: pointer;
90
- transition: all 0.2s;
91
- display: flex;
92
- align-items: center;
93
- gap: 6px;
94
- }
92
+ padding: 8px 16px;
93
+ border: none;
94
+ border-radius: 6px;
95
+ font-size: 14px;
96
+ font-weight: 500;
97
+ cursor: pointer;
98
+ transition: all 0.2s;
99
+ display: flex;
100
+ align-items: center;
101
+ gap: 6px;
102
+ }
95
103
  .btn-secondary {
96
- background: var(--bg-tertiary);
97
- color: var(--text-primary);
98
- border: 1px solid var(--border-color);
99
- }
104
+ background: var(--bg-tertiary);
105
+ color: var(--text-primary);
106
+ border: 1px solid var(--border-color);
107
+ }
100
108
  .btn-secondary:hover {
101
- background: var(--bg-hover);
102
- }
109
+ background: var(--bg-hover);
110
+ }
103
111
  .btn-primary {
104
- background: var(--accent-primary);
105
- color: var(--bg-primary);
106
- }
112
+ background: var(--accent-primary);
113
+ color: var(--bg-primary);
114
+ }
107
115
  .btn-primary:hover {
108
- background: var(--accent-hover);
109
- }
116
+ background: var(--accent-hover);
117
+ }
110
118
  .btn-success {
111
- background: var(--success);
112
- color: white;
113
- }
119
+ background: var(--success);
120
+ color: white;
121
+ }
114
122
  .btn-success:hover {
115
- opacity: 0.9;
116
- }
123
+ opacity: 0.9;
124
+ }
117
125
  .btn-icon {
118
- width: 16px;
119
- height: 16px;
120
- }
121
- /* Main Layout */
126
+ width: 16px;
127
+ height: 16px;
128
+ }
129
+ /* Main Layout */
122
130
  .editor-main {
123
- display: flex;
124
- height: calc(100vh - 60px);
125
- position: relative;
126
- }
127
- /* Sidebar */
131
+ display: flex;
132
+ height: calc(100vh - 60px);
133
+ position: relative;
134
+ }
135
+ /* Sidebar */
128
136
  .sidebar {
129
- width: 280px;
130
- background: var(--bg-secondary);
131
- border-right: 1px solid var(--border-color);
132
- display: flex;
133
- flex-direction: column;
134
- }
137
+ width: 280px;
138
+ background: var(--bg-secondary);
139
+ border-right: 1px solid var(--border-color);
140
+ display: flex;
141
+ flex-direction: column;
142
+ }
135
143
  .sidebar-header {
136
- padding: 12px 16px;
137
- border-bottom: 1px solid var(--border-color);
138
- display: flex;
139
- align-items: center;
140
- justify-content: space-between;
141
- }
144
+ padding: 12px 16px;
145
+ border-bottom: 1px solid var(--border-color);
146
+ display: flex;
147
+ align-items: center;
148
+ justify-content: space-between;
149
+ }
142
150
  .sidebar-title {
143
- font-size: 14px;
144
- font-weight: 600;
145
- text-transform: uppercase;
146
- letter-spacing: 0.5px;
147
- color: var(--text-secondary);
148
- }
151
+ font-size: 14px;
152
+ font-weight: 600;
153
+ text-transform: uppercase;
154
+ letter-spacing: 0.5px;
155
+ color: var(--text-secondary);
156
+ }
149
157
  .btn-add {
150
- background: var(--accent-primary);
151
- color: var(--bg-primary);
152
- padding: 8px 16px;
153
- border: none;
154
- border-radius: 6px;
155
- font-size: 14px;
156
- font-weight: 500;
157
- cursor: pointer;
158
- transition: all 0.2s;
159
- display: flex;
160
- align-items: center;
161
- gap: 6px;
162
- }
158
+ background: var(--accent-primary);
159
+ color: var(--bg-primary);
160
+ padding: 8px 16px;
161
+ border: none;
162
+ border-radius: 6px;
163
+ font-size: 14px;
164
+ font-weight: 500;
165
+ cursor: pointer;
166
+ transition: all 0.2s;
167
+ display: flex;
168
+ align-items: center;
169
+ gap: 6px;
170
+ }
163
171
  .btn-add:hover {
164
- background: var(--accent-hover);
165
- }
172
+ background: var(--accent-hover);
173
+ }
166
174
  .scenes-list {
167
- flex: 1;
168
- overflow-y: auto;
169
- padding: 12px;
170
- }
175
+ flex: 1;
176
+ overflow-y: auto;
177
+ padding: 12px;
178
+ }
171
179
  .scene-card {
172
- background: var(--bg-tertiary);
173
- border: 2px solid transparent;
174
- border-radius: 8px;
175
- margin-bottom: 12px;
176
- cursor: pointer;
177
- transition: all 0.2s;
178
- position: relative;
179
- overflow: hidden;
180
- }
180
+ background: var(--bg-tertiary);
181
+ border: 2px solid transparent;
182
+ border-radius: 8px;
183
+ margin-bottom: 12px;
184
+ cursor: pointer;
185
+ transition: all 0.2s;
186
+ position: relative;
187
+ overflow: hidden;
188
+ }
181
189
  .scene-card img {
182
- width: 100%;
183
- aspect-ratio: 2/1;
184
- object-fit: cover;
185
- }
190
+ width: 100%;
191
+ aspect-ratio: 2/1;
192
+ object-fit: cover;
193
+ }
186
194
  .scene-card:hover {
187
- border-color: var(--border-color);
188
- }
195
+ border-color: var(--border-color);
196
+ }
189
197
  .scene-card.active {
190
- border-color: var(--accent-primary);
191
- background: rgba(59, 130, 246, 0.1);
192
- }
198
+ border-color: var(--accent-primary);
199
+ background: rgba(59, 130, 246, 0.1);
200
+ }
193
201
  .scene-thumbnail {
194
- width: 100%;
195
- height: 120px;
196
- background: var(--bg-primary);
197
- border-radius: 4px;
198
- margin-bottom: 8px;
199
- overflow: hidden;
200
- position: relative;
201
- }
202
+ width: 100%;
203
+ height: 120px;
204
+ background: var(--bg-primary);
205
+ border-radius: 4px;
206
+ margin-bottom: 8px;
207
+ overflow: hidden;
208
+ position: relative;
209
+ }
202
210
  .scene-thumbnail img {
203
- width: 100%;
204
- height: 100%;
205
- object-fit: cover;
206
- }
211
+ width: 100%;
212
+ height: 100%;
213
+ object-fit: cover;
214
+ }
207
215
  .scene-info {
208
- display: flex;
209
- flex-direction: column;
210
- gap: 4px;
211
- margin: 6px 8px;
212
- }
216
+ display: flex;
217
+ flex-direction: column;
218
+ gap: 4px;
219
+ margin: 6px 8px;
220
+ }
213
221
  .scene-name {
214
- font-size: 14px;
215
- font-weight: 500;
216
- color: var(--text-primary);
217
- }
222
+ font-size: 14px;
223
+ font-weight: 500;
224
+ color: var(--text-primary);
225
+ }
218
226
  .scene-meta {
219
- font-size: 12px;
220
- color: var(--text-muted);
221
- }
227
+ font-size: 12px;
228
+ color: var(--text-muted);
229
+ }
222
230
  .scene-actions {
223
- display: flex;
224
- gap: 4px;
225
- margin: 6px 8px;
226
- }
231
+ display: flex;
232
+ gap: 4px;
233
+ margin: 6px 8px;
234
+ }
227
235
  .btn-icon-small {
228
- padding: 4px 8px;
229
- background: var(--bg-hover);
230
- border: 1px solid var(--border-color);
231
- border-radius: 4px;
232
- cursor: pointer;
233
- font-size: 11px;
234
- color: var(--text-secondary);
235
- transition: all 0.2s;
236
- }
236
+ padding: 4px 8px;
237
+ background: var(--bg-hover);
238
+ border: 1px solid var(--border-color);
239
+ border-radius: 4px;
240
+ cursor: pointer;
241
+ font-size: 11px;
242
+ color: var(--text-secondary);
243
+ transition: all 0.2s;
244
+ }
237
245
  .btn-icon-small:hover {
238
- background: var(--bg-tertiary);
239
- color: var(--text-primary);
240
- }
246
+ background: var(--bg-tertiary);
247
+ color: var(--text-primary);
248
+ }
241
249
  .btn-icon {
242
- width: 32px;
243
- height: 32px;
244
- background: transparent;
245
- border: 1px solid var(--border-color);
246
- border-radius: 4px;
247
- cursor: pointer;
248
- font-size: 12px;
249
- color: var(--text-secondary);
250
- transition: all 0.2s;
251
- }
250
+ width: 32px;
251
+ height: 32px;
252
+ display: flex;
253
+ align-items: center;
254
+ justify-content: center;
255
+ background: transparent;
256
+ border: 1px solid var(--border-color);
257
+ border-radius: 4px;
258
+ cursor: pointer;
259
+ font-size: 16px;
260
+ color: var(--text-secondary);
261
+ transition: all 0.2s;
262
+ }
252
263
  .btn-icon:hover {
253
- background: var(--danger);
254
- color: white;
255
- border-color: var(--danger);
256
- }
264
+ background: var(--danger);
265
+ color: white;
266
+ border-color: var(--danger);
267
+ }
257
268
  .drag-handle {
258
- position: absolute;
259
- top: 8px;
260
- right: 8px;
261
- cursor: move;
262
- padding: 8px;
263
- background: rgba(0, 0, 0, 0.75);
264
- border-radius: 4px;
265
- z-index: 10;
266
- cursor: move;
267
- width: 32px;
268
- height: 32px;
269
- display: flex;
270
- align-items: center;
271
- justify-content: center;
272
- fill: var(--text-secondary);
273
- }
274
- /* Canvas Area */
269
+ position: absolute;
270
+ top: 8px;
271
+ right: 8px;
272
+ cursor: move;
273
+ padding: 8px;
274
+ background: rgba(0, 0, 0, 0.75);
275
+ border-radius: 4px;
276
+ z-index: 10;
277
+ cursor: move;
278
+ width: 32px;
279
+ height: 32px;
280
+ display: flex;
281
+ align-items: center;
282
+ justify-content: center;
283
+ fill: var(--text-secondary);
284
+ }
285
+ /* Canvas Area */
275
286
  .canvas-area {
276
- flex: 1;
277
- display: flex;
278
- flex-direction: column;
279
- background: var(--bg-primary);
280
- }
287
+ flex: 1;
288
+ display: flex;
289
+ flex-direction: column;
290
+ background: var(--bg-primary);
291
+ }
281
292
  .canvas-area.preview-active {
282
- position: absolute;
283
- top: 0px;
284
- left: 0px;
285
- width: 100vw;
286
- height: 100%;
287
- z-index: 100;
288
- }
293
+ position: absolute;
294
+ top: 0px;
295
+ left: 0px;
296
+ width: 100vw;
297
+ height: 100%;
298
+ z-index: 100;
299
+ }
289
300
  .toolbar {
290
- background: var(--bg-secondary);
291
- border-bottom: 1px solid var(--border-color);
292
- padding: 12px 16px;
293
- display: flex;
294
- align-items: center;
295
- justify-content: center;
296
- }
301
+ background: var(--bg-secondary);
302
+ border-bottom: 1px solid var(--border-color);
303
+ padding: 12px 16px;
304
+ display: flex;
305
+ align-items: center;
306
+ justify-content: center;
307
+ }
297
308
  .toolbar-tabs {
298
- display: flex;
299
- width: 100%;
300
- justify-content: space-evenly;
301
- gap: 4px;
302
- }
309
+ display: grid;
310
+ grid-template-columns: repeat(3, 1fr);
311
+ width: 100%;
312
+ justify-content: space-evenly;
313
+ gap: 8px;
314
+ }
303
315
  .tab {
304
- padding: 8px 16px;
305
- background: transparent;
306
- border: none;
307
- border-radius: 6px;
308
- color: var(--text-secondary);
309
- font-size: 14px;
310
- font-weight: 500;
311
- cursor: pointer;
312
- transition: all 0.2s;
313
- }
316
+ padding: 6px 8px;
317
+ display: flex;
318
+ flex-direction: column;
319
+ align-items: center;
320
+ justify-content: center;
321
+ background: transparent;
322
+ border: none;
323
+ border-radius: 6px;
324
+ color: var(--text-secondary);
325
+ font-size: 14px;
326
+ font-weight: 500;
327
+ cursor: pointer;
328
+ transition: all 0.2s;
329
+ }
330
+ .tab ss-icon {
331
+ font-size: 20px;
332
+ }
314
333
  .tab:hover {
315
- background: var(--bg-tertiary);
316
- color: var(--text-primary);
317
- }
334
+ background: var(--bg-tertiary);
335
+ color: var(--text-primary);
336
+ }
318
337
  .tab.active {
319
- background: var(--accent-primary);
320
- color: var(--bg-primary);
321
- }
338
+ background: var(--accent-primary);
339
+ color: var(--bg-primary);
340
+ }
322
341
  .toolbar-controls {
323
- display: flex;
324
- gap: 8px;
325
- align-items: center;
326
- }
342
+ display: flex;
343
+ gap: 8px;
344
+ align-items: center;
345
+ }
327
346
  .zoom-control {
328
- display: flex;
329
- align-items: center;
330
- gap: 8px;
331
- padding: 4px 12px;
332
- background: var(--bg-tertiary);
333
- border-radius: 6px;
334
- border: 1px solid var(--border-color);
335
- }
347
+ display: flex;
348
+ align-items: center;
349
+ gap: 8px;
350
+ padding: 4px 12px;
351
+ background: var(--bg-tertiary);
352
+ border-radius: 6px;
353
+ border: 1px solid var(--border-color);
354
+ }
336
355
  .zoom-btn {
337
- background: none;
338
- border: none;
339
- color: var(--text-secondary);
340
- cursor: pointer;
341
- padding: 4px;
342
- font-size: 16px;
343
- transition: color 0.2s;
344
- }
356
+ background: none;
357
+ border: none;
358
+ color: var(--text-secondary);
359
+ cursor: pointer;
360
+ padding: 4px;
361
+ font-size: 16px;
362
+ transition: color 0.2s;
363
+ }
345
364
  .zoom-btn:hover {
346
- color: var(--text-primary);
347
- }
365
+ color: var(--text-primary);
366
+ }
348
367
  .zoom-value {
349
- font-size: 12px;
350
- color: var(--text-secondary);
351
- min-width: 40px;
352
- text-align: center;
353
- }
368
+ font-size: 12px;
369
+ color: var(--text-secondary);
370
+ min-width: 40px;
371
+ text-align: center;
372
+ }
354
373
  .canvas-container {
355
- flex: 1;
356
- display: flex;
357
- align-items: center;
358
- justify-content: center;
359
- padding: 20px;
360
- overflow: hidden;
361
- position: relative;
362
- }
374
+ flex: 1;
375
+ display: flex;
376
+ align-items: center;
377
+ justify-content: center;
378
+ padding: 20px;
379
+ overflow: hidden;
380
+ position: relative;
381
+ }
363
382
  .preview-container {
364
- flex: 1;
365
- width: 100%;
366
- height: 100%;
367
- position: relative;
368
- }
383
+ flex: 1;
384
+ width: 100%;
385
+ height: 100%;
386
+ position: relative;
387
+ }
369
388
  .preview-area {
370
- width: 100%;
371
- height: 100%;
372
- position: relative;
373
- }
389
+ width: 100%;
390
+ height: 100%;
391
+ position: relative;
392
+ }
374
393
  #preview {
375
- width: 100%;
376
- height: 100%;
377
- }
394
+ width: 100%;
395
+ height: 100%;
396
+ }
378
397
  .preview-empty {
379
- display: flex;
380
- flex-direction: column;
381
- align-items: center;
382
- justify-content: center;
383
- height: 100%;
384
- color: var(--text-muted);
385
- }
398
+ display: flex;
399
+ flex-direction: column;
400
+ align-items: center;
401
+ justify-content: center;
402
+ height: 100%;
403
+ color: var(--text-muted);
404
+ }
386
405
  .preview-empty p {
387
- margin: 4px 0;
388
- }
406
+ margin: 4px 0;
407
+ }
389
408
  .canvas-viewport {
390
- width: 100%;
391
- max-width: 1200px;
392
- aspect-ratio: 16/9;
393
- background: var(--bg-secondary);
394
- border-radius: 8px;
395
- border: 1px solid var(--border-color);
396
- position: relative;
397
- overflow: hidden;
398
- }
409
+ width: 100%;
410
+ max-width: 1200px;
411
+ aspect-ratio: 16/9;
412
+ background: var(--bg-secondary);
413
+ border-radius: 8px;
414
+ border: 1px solid var(--border-color);
415
+ position: relative;
416
+ overflow: hidden;
417
+ }
399
418
  .canvas-viewport img {
400
- width: 100%;
401
- height: 100%;
402
- object-fit: cover;
403
- }
419
+ width: 100%;
420
+ height: 100%;
421
+ object-fit: cover;
422
+ }
404
423
  .hotspot-marker {
405
- position: absolute;
406
- width: 40px;
407
- height: 40px;
408
- border-radius: 50%;
409
- border: 3px solid white;
410
- cursor: pointer;
411
- transition: all 0.2s;
412
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
413
- }
424
+ position: absolute;
425
+ width: 40px;
426
+ height: 40px;
427
+ border-radius: 50%;
428
+ border: 3px solid white;
429
+ cursor: pointer;
430
+ transition: all 0.2s;
431
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
432
+ }
414
433
  .hotspot-marker:hover {
415
- transform: scale(1.2);
416
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
417
- }
434
+ transform: scale(1.2);
435
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
436
+ }
418
437
  .hotspot-marker.selected {
419
- border-width: 4px;
420
- box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.3);
421
- }
438
+ border-width: 4px;
439
+ box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.3);
440
+ }
422
441
  .empty-state {
423
- text-align: center;
424
- padding: 40px 20px;
425
- color: var(--text-muted);
426
- }
442
+ text-align: center;
443
+ padding: 40px 20px;
444
+ color: var(--text-muted);
445
+ }
427
446
  .empty-state p {
428
- margin: 8px 0;
429
- }
447
+ margin: 8px 0;
448
+ }
430
449
  .empty-state .hint {
431
- font-size: 12px;
432
- color: var(--text-muted);
433
- }
434
- /* Properties Panel */
450
+ font-size: 12px;
451
+ color: var(--text-muted);
452
+ }
453
+ /* Properties Panel */
435
454
  .properties-panel {
436
- width: 320px;
437
- background: var(--bg-secondary);
438
- border-left: 1px solid var(--border-color);
439
- display: flex;
440
- flex-direction: column;
441
- }
455
+ width: 320px;
456
+ background: var(--bg-secondary);
457
+ border-left: 1px solid var(--border-color);
458
+ display: flex;
459
+ flex-direction: column;
460
+ }
442
461
  .panel-header {
443
- padding: 16px;
444
- border-bottom: 1px solid var(--border-color);
445
- }
462
+ padding: 16px;
463
+ border-bottom: 1px solid var(--border-color);
464
+ }
446
465
  .panel-title {
447
- font-size: 14px;
448
- font-weight: 600;
449
- text-transform: uppercase;
450
- letter-spacing: 0.5px;
451
- color: var(--text-secondary);
452
- }
466
+ font-size: 14px;
467
+ font-weight: 600;
468
+ text-transform: uppercase;
469
+ letter-spacing: 0.5px;
470
+ color: var(--text-secondary);
471
+ }
453
472
  .panel-content {
454
- flex: 1;
455
- overflow-y: auto;
456
- padding: 16px;
457
- }
473
+ flex: 1;
474
+ overflow-y: auto;
475
+ padding: 16px;
476
+ }
458
477
  .form-group {
459
- margin-bottom: 20px;
460
- }
478
+ margin-bottom: 20px;
479
+ }
461
480
  .form-label {
462
- display: block;
463
- font-size: 12px;
464
- font-weight: 500;
465
- color: var(--text-secondary);
466
- margin-bottom: 8px;
467
- text-transform: uppercase;
468
- letter-spacing: 0.5px;
469
- }
481
+ display: block;
482
+ font-size: 12px;
483
+ font-weight: 500;
484
+ color: var(--text-secondary);
485
+ margin-bottom: 8px;
486
+ text-transform: uppercase;
487
+ letter-spacing: 0.5px;
488
+ }
470
489
  .form-input {
471
- width: 100%;
472
- padding: 10px 12px;
473
- background: var(--bg-tertiary);
474
- border: 1px solid var(--border-color);
475
- border-radius: 6px;
476
- color: var(--text-primary);
477
- font-size: 14px;
478
- transition: all 0.2s;
479
- }
490
+ width: 100%;
491
+ padding: 10px 12px;
492
+ background: var(--bg-tertiary);
493
+ border: 1px solid var(--border-color);
494
+ border-radius: 6px;
495
+ color: var(--text-primary);
496
+ font-size: 14px;
497
+ transition: all 0.2s;
498
+ }
480
499
  .form-input:focus {
481
- outline: none;
482
- border-color: var(--accent-primary);
483
- background: var(--bg-primary);
484
- }
500
+ outline: none;
501
+ border-color: var(--accent-primary);
502
+ background: var(--bg-primary);
503
+ }
485
504
  .form-textarea {
486
- min-height: 80px;
487
- resize: vertical;
488
- font-family: inherit;
489
- }
505
+ min-height: 80px;
506
+ resize: vertical;
507
+ font-family: inherit;
508
+ }
490
509
  .form-select {
491
- width: 100%;
492
- padding: 10px 12px;
493
- background: var(--bg-tertiary);
494
- border: 1px solid var(--border-color);
495
- border-radius: 6px;
496
- color: var(--text-primary);
497
- font-size: 14px;
498
- cursor: pointer;
499
- }
510
+ width: 100%;
511
+ padding: 10px 12px;
512
+ background: var(--bg-tertiary);
513
+ border: 1px solid var(--border-color);
514
+ border-radius: 6px;
515
+ color: var(--text-primary);
516
+ font-size: 14px;
517
+ cursor: pointer;
518
+ }
500
519
  .form-checkbox {
501
- display: flex;
502
- align-items: center;
503
- gap: 8px;
504
- cursor: pointer;
505
- }
520
+ display: flex;
521
+ align-items: center;
522
+ gap: 8px;
523
+ cursor: pointer;
524
+ }
506
525
  .form-checkbox input {
507
- width: 18px;
508
- height: 18px;
509
- cursor: pointer;
510
- }
526
+ width: 18px;
527
+ height: 18px;
528
+ cursor: pointer;
529
+ }
511
530
  .form-checkbox label {
512
- font-size: 14px;
513
- color: var(--text-primary);
514
- cursor: pointer;
515
- }
531
+ font-size: 14px;
532
+ color: var(--text-primary);
533
+ cursor: pointer;
534
+ }
516
535
  .color-picker-group {
517
- display: flex;
518
- gap: 12px;
519
- align-items: center;
520
- }
536
+ display: flex;
537
+ gap: 12px;
538
+ align-items: center;
539
+ }
521
540
  .color-preview {
522
- width: 40px;
523
- height: 40px;
524
- border-radius: 6px;
525
- border: 2px solid var(--border-color);
526
- cursor: pointer;
527
- }
541
+ width: 40px;
542
+ height: 40px;
543
+ border-radius: 6px;
544
+ border: 2px solid var(--border-color);
545
+ cursor: pointer;
546
+ }
528
547
  .color-input {
529
- flex: 1;
530
- }
548
+ flex: 1;
549
+ }
531
550
  .position-grid {
532
- display: grid;
533
- grid-template-columns: repeat(3, 1fr);
534
- gap: 8px;
535
- }
551
+ display: grid;
552
+ grid-template-columns: repeat(3, 1fr);
553
+ gap: 8px;
554
+ }
536
555
  .position-input {
537
- padding: 8px;
538
- background: var(--bg-tertiary);
539
- border: 1px solid var(--border-color);
540
- border-radius: 4px;
541
- color: var(--text-primary);
542
- font-size: 12px;
543
- text-align: center;
544
- }
556
+ padding: 8px;
557
+ background: var(--bg-tertiary);
558
+ border: 1px solid var(--border-color);
559
+ border-radius: 4px;
560
+ color: var(--text-primary);
561
+ font-size: 12px;
562
+ text-align: center;
563
+ }
545
564
  .hotspot-controls {
546
- display: flex;
547
- gap: 8px;
548
- margin-bottom: 20px;
549
- justify-content: space-between;
550
- }
565
+ display: flex;
566
+ gap: 8px;
567
+ margin-bottom: 20px;
568
+ justify-content: space-between;
569
+ }
551
570
  .hotspot-list {
552
- display: flex;
553
- flex-direction: column;
554
- gap: 8px;
555
- margin-bottom: 16px;
556
- }
571
+ display: flex;
572
+ flex-direction: column;
573
+ gap: 8px;
574
+ margin-bottom: 16px;
575
+ }
557
576
  .hotspot-item {
558
- display: flex;
559
- align-items: center;
560
- gap: 12px;
561
- padding: 12px;
562
- background: var(--bg-tertiary);
563
- border: 2px solid transparent;
564
- border-radius: 6px;
565
- cursor: pointer;
566
- transition: all 0.2s;
567
- }
577
+ display: flex;
578
+ align-items: center;
579
+ gap: 12px;
580
+ padding: 12px;
581
+ background: var(--bg-tertiary);
582
+ border: 2px solid transparent;
583
+ border-radius: 6px;
584
+ cursor: pointer;
585
+ transition: all 0.2s;
586
+ }
568
587
  .hotspot-item:hover {
569
- border-color: var(--border-color);
570
- }
588
+ border-color: var(--border-color);
589
+ }
571
590
  .hotspot-item.active {
572
- border-color: var(--accent-primary);
573
- background: rgba(59, 130, 246, 0.1);
574
- }
591
+ border-color: var(--accent-primary);
592
+ background: rgba(59, 130, 246, 0.1);
593
+ }
575
594
  .hotspot-color {
576
- width: 24px;
577
- height: 24px;
578
- border-radius: 4px;
579
- border: 2px solid var(--border-color);
580
- flex-shrink: 0;
581
- }
595
+ width: 24px;
596
+ height: 24px;
597
+ border-radius: 4px;
598
+ border: 2px solid var(--border-color);
599
+ flex-shrink: 0;
600
+ }
582
601
  .hotspot-info {
583
- flex: 1;
584
- min-width: 0;
585
- }
602
+ flex: 1;
603
+ min-width: 0;
604
+ }
586
605
  .hotspot-title {
587
- font-size: 14px;
588
- font-weight: 500;
589
- color: var(--text-primary);
590
- white-space: nowrap;
591
- overflow: hidden;
592
- text-overflow: ellipsis;
593
- }
606
+ font-size: 14px;
607
+ font-weight: 500;
608
+ color: var(--text-primary);
609
+ white-space: nowrap;
610
+ overflow: hidden;
611
+ text-overflow: ellipsis;
612
+ }
594
613
  .hotspot-target {
595
- font-size: 12px;
596
- color: var(--text-muted);
597
- white-space: nowrap;
598
- overflow: hidden;
599
- text-overflow: ellipsis;
600
- }
614
+ font-size: 12px;
615
+ color: var(--text-muted);
616
+ white-space: nowrap;
617
+ overflow: hidden;
618
+ text-overflow: ellipsis;
619
+ }
601
620
  .hotspot-actions {
602
- display: flex;
603
- gap: 4px;
604
- }
621
+ display: flex;
622
+ gap: 4px;
623
+ }
605
624
  .btn-delete {
606
- padding: 4px 8px;
607
- background: transparent;
608
- border: 1px solid var(--border-color);
609
- border-radius: 4px;
610
- color: var(--danger);
611
- cursor: pointer;
612
- font-size: 12px;
613
- transition: all 0.2s;
614
- }
625
+ width: 32px;
626
+ height: 32px;
627
+ display: flex;
628
+ align-items: center;
629
+ justify-content: center;
630
+ background: transparent;
631
+ border: 1px solid var(--danger);
632
+ border-radius: 4px;
633
+ color: var(--danger);
634
+ cursor: pointer;
635
+ font-size: 16px;
636
+ transition: all 0.2s;
637
+ }
615
638
  .btn-delete:hover {
616
- background: var(--danger);
617
- color: white;
618
- }
639
+ background: var(--danger);
640
+ color: white;
641
+ }
619
642
  .section {
620
- margin-bottom: 20px;
621
- }
643
+ margin-bottom: 20px;
644
+ }
622
645
  .section h3 {
623
- font-size: 14px;
624
- font-weight: 600;
625
- color: var(--text-secondary);
626
- margin-bottom: 16px;
627
- text-transform: uppercase;
628
- letter-spacing: 0.5px;
629
- }
646
+ font-size: 14px;
647
+ font-weight: 600;
648
+ color: var(--text-secondary);
649
+ margin-bottom: 16px;
650
+ text-transform: uppercase;
651
+ letter-spacing: 0.5px;
652
+ }
630
653
  .btn-block {
631
- width: 100%;
632
- }
633
- /* Toast Notification */
654
+ width: 100%;
655
+ }
656
+ /* Toast Notification */
634
657
  .toast {
635
- position: fixed;
636
- bottom: 20px;
637
- right: 20px;
638
- background: var(--bg-secondary);
639
- color: var(--text-primary);
640
- padding: 12px 20px;
641
- border-radius: 8px;
642
- border: 1px solid var(--border-color);
643
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
644
- opacity: 0;
645
- transform: translateY(20px);
646
- transition: all 0.3s;
647
- pointer-events: none;
648
- z-index: 10000;
649
- }
658
+ position: fixed;
659
+ bottom: 20px;
660
+ right: 20px;
661
+ background: var(--bg-secondary);
662
+ color: var(--text-primary);
663
+ padding: 12px 20px;
664
+ border-radius: 8px;
665
+ border: 1px solid var(--border-color);
666
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
667
+ opacity: 0;
668
+ transform: translateY(20px);
669
+ transition: all 0.3s;
670
+ pointer-events: none;
671
+ z-index: 10000;
672
+ }
650
673
  .toast.show {
651
- opacity: 1;
652
- transform: translateY(0);
653
- pointer-events: auto;
654
- }
674
+ opacity: 1;
675
+ transform: translateY(0);
676
+ pointer-events: auto;
677
+ }
655
678
  .toast.success {
656
- border-color: var(--success);
657
- background: rgba(16, 185, 129, 0.1);
658
- }
679
+ border-color: var(--success);
680
+ background: rgba(16, 185, 129, 0.1);
681
+ }
659
682
  .toast.error {
660
- border-color: var(--danger);
661
- background: rgba(239, 68, 68, 0.1);
662
- }
683
+ border-color: var(--danger);
684
+ background: rgba(239, 68, 68, 0.1);
685
+ }
663
686
  .toast.info {
664
- border-color: var(--accent-cyan);
665
- background: rgba(6, 182, 212, 0.1);
666
- }
667
- /* Modal */
687
+ border-color: var(--accent-cyan);
688
+ background: rgba(6, 182, 212, 0.1);
689
+ }
690
+ /* Modal */
668
691
  .modal {
669
- display: none;
670
- position: fixed;
671
- top: 0;
672
- left: 0;
673
- width: 100%;
674
- height: 100%;
675
- background: rgba(0, 0, 0, 0.7);
676
- z-index: 9999;
677
- align-items: center;
678
- justify-content: center;
679
- }
692
+ display: none;
693
+ position: fixed;
694
+ top: 0;
695
+ left: 0;
696
+ width: 100%;
697
+ height: 100%;
698
+ background: rgba(0, 0, 0, 0.7);
699
+ z-index: 9999;
700
+ align-items: center;
701
+ justify-content: center;
702
+ }
680
703
  .modal.show {
681
- display: flex;
682
- }
704
+ display: flex;
705
+ }
683
706
  .modal-content {
684
- background: var(--bg-secondary);
685
- border-radius: 12px;
686
- border: 1px solid var(--border-color);
687
- max-width: 600px;
688
- width: 90%;
689
- max-height: 90vh;
690
- overflow: hidden;
691
- display: flex;
692
- flex-direction: column;
693
- }
707
+ background: var(--bg-secondary);
708
+ border-radius: 12px;
709
+ border: 1px solid var(--border-color);
710
+ max-width: 600px;
711
+ width: 90%;
712
+ max-height: 90vh;
713
+ overflow: hidden;
714
+ display: flex;
715
+ flex-direction: column;
716
+ }
694
717
  .modal-header {
695
- padding: 20px;
696
- border-bottom: 1px solid var(--border-color);
697
- display: flex;
698
- align-items: center;
699
- justify-content: space-between;
700
- }
718
+ padding: 20px;
719
+ border-bottom: 1px solid var(--border-color);
720
+ display: flex;
721
+ align-items: center;
722
+ justify-content: space-between;
723
+ }
701
724
  .modal-header h3 {
702
- font-size: 18px;
703
- font-weight: 600;
704
- color: var(--text-primary);
705
- }
725
+ font-size: 18px;
726
+ font-weight: 600;
727
+ color: var(--text-primary);
728
+ }
706
729
  .modal-close {
707
- background: none;
708
- border: none;
709
- color: var(--text-secondary);
710
- font-size: 24px;
711
- cursor: pointer;
712
- padding: 0;
713
- width: 32px;
714
- height: 32px;
715
- display: flex;
716
- align-items: center;
717
- justify-content: center;
718
- border-radius: 4px;
719
- transition: all 0.2s;
720
- }
730
+ background: none;
731
+ border: none;
732
+ color: var(--text-secondary);
733
+ font-size: 24px;
734
+ cursor: pointer;
735
+ padding: 0;
736
+ width: 32px;
737
+ height: 32px;
738
+ display: flex;
739
+ align-items: center;
740
+ justify-content: center;
741
+ border-radius: 4px;
742
+ transition: all 0.2s;
743
+ }
721
744
  .modal-close:hover {
722
- background: var(--bg-hover);
723
- color: var(--text-primary);
724
- }
745
+ background: var(--bg-hover);
746
+ color: var(--text-primary);
747
+ }
725
748
  .modal-body {
726
- padding: 20px;
727
- overflow-y: auto;
728
- flex: 1;
729
- }
749
+ padding: 20px;
750
+ overflow-y: auto;
751
+ flex: 1;
752
+ }
730
753
  .modal-body h4 {
731
- font-size: 16px;
732
- font-weight: 600;
733
- margin-top: 20px;
734
- margin-bottom: 12px;
735
- color: var(--text-primary);
736
- }
754
+ font-size: 16px;
755
+ font-weight: 600;
756
+ margin-top: 20px;
757
+ margin-bottom: 12px;
758
+ color: var(--text-primary);
759
+ }
737
760
  .modal-body h4:first-child {
738
- margin-top: 0;
739
- }
761
+ margin-top: 0;
762
+ }
740
763
  .modal-body p {
741
- margin-bottom: 12px;
742
- line-height: 1.6;
743
- color: var(--text-secondary);
744
- }
745
- .modal-body ul, .modal-body ol {
746
- margin-bottom: 12px;
747
- padding-left: 24px;
748
- line-height: 1.8;
749
- color: var(--text-secondary);
750
- }
764
+ margin-bottom: 12px;
765
+ line-height: 1.6;
766
+ color: var(--text-secondary);
767
+ }
768
+ .modal-body ul,
769
+ .modal-body ol {
770
+ margin-bottom: 12px;
771
+ padding-left: 24px;
772
+ line-height: 1.8;
773
+ color: var(--text-secondary);
774
+ }
751
775
  .modal-body li {
752
- margin-bottom: 8px;
753
- }
776
+ margin-bottom: 8px;
777
+ }
754
778
  .modal-body kbd {
755
- background: var(--bg-tertiary);
756
- border: 1px solid var(--border-color);
757
- border-radius: 4px;
758
- padding: 2px 6px;
759
- font-family: monospace;
760
- font-size: 12px;
761
- }
779
+ background: var(--bg-tertiary);
780
+ border: 1px solid var(--border-color);
781
+ border-radius: 4px;
782
+ padding: 2px 6px;
783
+ font-family: monospace;
784
+ font-size: 12px;
785
+ }
762
786
  .modal-footer {
763
- padding: 16px 20px;
764
- border-top: 1px solid var(--border-color);
765
- display: flex;
766
- gap: 8px;
767
- justify-content: flex-end;
768
- }
787
+ padding: 16px 20px;
788
+ border-top: 1px solid var(--border-color);
789
+ display: flex;
790
+ gap: 8px;
791
+ justify-content: flex-end;
792
+ }
769
793
  .export-info {
770
- background: var(--bg-tertiary);
771
- border: 1px solid var(--border-color);
772
- border-radius: 6px;
773
- padding: 16px;
774
- margin-bottom: 16px;
775
- }
794
+ background: var(--bg-tertiary);
795
+ border: 1px solid var(--border-color);
796
+ border-radius: 6px;
797
+ padding: 16px;
798
+ margin-bottom: 16px;
799
+ }
776
800
  .export-info p {
777
- margin-bottom: 8px;
778
- font-size: 13px;
779
- }
801
+ margin-bottom: 8px;
802
+ font-size: 13px;
803
+ }
780
804
  .export-info p:last-child {
781
- margin-bottom: 0;
782
- }
805
+ margin-bottom: 0;
806
+ }
783
807
  .export-preview {
784
- width: 100%;
785
- height: 200px;
786
- background: var(--bg-tertiary);
787
- border: 1px solid var(--border-color);
788
- border-radius: 6px;
789
- padding: 12px;
790
- font-family: monospace;
791
- font-size: 12px;
792
- color: var(--text-primary);
793
- resize: vertical;
794
- }
808
+ width: 100%;
809
+ height: 200px;
810
+ background: var(--bg-tertiary);
811
+ border: 1px solid var(--border-color);
812
+ border-radius: 6px;
813
+ padding: 12px;
814
+ font-family: monospace;
815
+ font-size: 12px;
816
+ color: var(--text-primary);
817
+ resize: vertical;
818
+ }
795
819
  .btn-active {
796
- animation: pulse 2s infinite;
797
- }
820
+ animation: pulse 2s infinite;
821
+ }
798
822
  @keyframes pulse {
799
- 0%, 100% { opacity: 1; }
800
- 50% { opacity: 0.7; }
801
- }
823
+ 0%,
824
+ 100% {
825
+ opacity: 1;
826
+ }
827
+ 50% {
828
+ opacity: 0.7;
829
+ }
830
+ }
802
831
  .dragging {
803
- opacity: 0.5;
804
- }
805
- /* Scrollbar Styling */
832
+ opacity: 0.5;
833
+ }
834
+ /* Scrollbar Styling */
806
835
  ::-webkit-scrollbar {
807
- width: 8px;
808
- height: 8px;
809
- }
836
+ width: 8px;
837
+ height: 8px;
838
+ }
810
839
  ::-webkit-scrollbar-track {
811
- background: var(--bg-primary);
812
- }
840
+ background: var(--bg-primary);
841
+ }
813
842
  ::-webkit-scrollbar-thumb {
814
- background: var(--bg-tertiary);
815
- border-radius: 4px;
816
- }
843
+ background: var(--bg-tertiary);
844
+ border-radius: 4px;
845
+ }
817
846
  ::-webkit-scrollbar-thumb:hover {
818
- background: var(--bg-hover);
819
- }
820
- /* Loading Overlay */
847
+ background: var(--bg-hover);
848
+ }
849
+ /* Loading Overlay */
821
850
  .preview-loading {
822
- position: absolute;
823
- top: 0;
824
- left: 0;
825
- right: 0;
826
- bottom: 0;
827
- background: rgba(9, 9, 11, 0.85);
828
- backdrop-filter: blur(4px);
829
- display: flex;
830
- flex-direction: column;
831
- align-items: center;
832
- justify-content: center;
833
- z-index: 1000;
834
- transition: opacity 0.3s ease;
835
- }
851
+ position: absolute;
852
+ top: 0;
853
+ left: 0;
854
+ right: 0;
855
+ bottom: 0;
856
+ background: rgba(9, 9, 11, 0.85);
857
+ backdrop-filter: blur(4px);
858
+ display: flex;
859
+ flex-direction: column;
860
+ align-items: center;
861
+ justify-content: center;
862
+ z-index: 1000;
863
+ transition: opacity 0.3s ease;
864
+ }
836
865
  .preview-loading.hidden {
837
- opacity: 0;
838
- pointer-events: none;
839
- }
866
+ opacity: 0;
867
+ pointer-events: none;
868
+ }
840
869
  .loading-spinner {
841
- width: 48px;
842
- height: 48px;
843
- border: 3px solid var(--border-color);
844
- border-top-color: var(--accent-primary);
845
- border-radius: 50%;
846
- animation: spin 0.8s linear infinite;
847
- }
870
+ width: 48px;
871
+ height: 48px;
872
+ border: 3px solid var(--border-color);
873
+ border-top-color: var(--accent-primary);
874
+ border-radius: 50%;
875
+ animation: spin 0.8s linear infinite;
876
+ }
848
877
  .loading-text {
849
- margin-top: 16px;
850
- color: var(--text-secondary);
851
- font-size: 14px;
852
- font-weight: 500;
853
- }
878
+ margin-top: 16px;
879
+ color: var(--text-secondary);
880
+ font-size: 14px;
881
+ font-weight: 500;
882
+ }
854
883
  @keyframes spin {
855
- to {
856
- transform: rotate(360deg);
857
- }
858
- }
859
- /* Responsive */
884
+ to {
885
+ transform: rotate(360deg);
886
+ }
887
+ }
888
+ /* Responsive */
860
889
  @media (max-width: 1024px) {
861
- .sidebar {
862
- width: 240px;
863
- }
864
- .properties-panel {
865
- width: 280px;
866
- }
890
+ .sidebar {
891
+ width: 240px;
892
+ }
893
+ .properties-panel {
894
+ width: 280px;
895
+ }
867
896
  }
868
897
 
869
898
  /*# sourceMappingURL=swt-editor.css.map */