@gxp-dev/tools 2.0.5 → 2.0.6

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.
Files changed (169) hide show
  1. package/dist/tui/App.d.ts +13 -0
  2. package/dist/tui/App.d.ts.map +1 -0
  3. package/dist/tui/App.js +480 -0
  4. package/dist/tui/App.js.map +1 -0
  5. package/dist/tui/components/CommandInput.d.ts +13 -0
  6. package/dist/tui/components/CommandInput.d.ts.map +1 -0
  7. package/dist/tui/components/CommandInput.js +180 -0
  8. package/dist/tui/components/CommandInput.js.map +1 -0
  9. package/dist/tui/components/GeminiPanel.d.ts +7 -0
  10. package/dist/tui/components/GeminiPanel.d.ts.map +1 -0
  11. package/dist/tui/components/GeminiPanel.js +99 -0
  12. package/dist/tui/components/GeminiPanel.js.map +1 -0
  13. package/dist/tui/components/Header.d.ts +6 -0
  14. package/dist/tui/components/Header.d.ts.map +1 -0
  15. package/dist/tui/components/Header.js +6 -0
  16. package/dist/tui/components/Header.js.map +1 -0
  17. package/dist/tui/components/LogPanel.d.ts +8 -0
  18. package/dist/tui/components/LogPanel.d.ts.map +1 -0
  19. package/dist/tui/components/LogPanel.js +89 -0
  20. package/dist/tui/components/LogPanel.js.map +1 -0
  21. package/dist/tui/components/TabBar.d.ts +9 -0
  22. package/dist/tui/components/TabBar.d.ts.map +1 -0
  23. package/dist/tui/components/TabBar.js +23 -0
  24. package/dist/tui/components/TabBar.js.map +1 -0
  25. package/dist/tui/components/WelcomeScreen.d.ts +2 -0
  26. package/dist/tui/components/WelcomeScreen.d.ts.map +1 -0
  27. package/dist/tui/components/WelcomeScreen.js +14 -0
  28. package/dist/tui/components/WelcomeScreen.js.map +1 -0
  29. package/dist/tui/index.d.ts +8 -0
  30. package/dist/tui/index.d.ts.map +1 -0
  31. package/dist/tui/index.js +47 -0
  32. package/dist/tui/index.js.map +1 -0
  33. package/dist/tui/package.json +1 -0
  34. package/dist/tui/services/ExtensionService.d.ts +11 -0
  35. package/dist/tui/services/ExtensionService.d.ts.map +1 -0
  36. package/dist/tui/services/ExtensionService.js +101 -0
  37. package/dist/tui/services/ExtensionService.js.map +1 -0
  38. package/dist/tui/services/GeminiService.d.ts +40 -0
  39. package/dist/tui/services/GeminiService.d.ts.map +1 -0
  40. package/dist/tui/services/GeminiService.js +327 -0
  41. package/dist/tui/services/GeminiService.js.map +1 -0
  42. package/dist/tui/services/ServiceManager.d.ts +40 -0
  43. package/dist/tui/services/ServiceManager.d.ts.map +1 -0
  44. package/dist/tui/services/ServiceManager.js +283 -0
  45. package/dist/tui/services/ServiceManager.js.map +1 -0
  46. package/dist/tui/services/SocketService.d.ts +19 -0
  47. package/dist/tui/services/SocketService.d.ts.map +1 -0
  48. package/dist/tui/services/SocketService.js +163 -0
  49. package/dist/tui/services/SocketService.js.map +1 -0
  50. package/dist/tui/services/ViteService.d.ts +8 -0
  51. package/dist/tui/services/ViteService.d.ts.map +1 -0
  52. package/dist/tui/services/ViteService.js +89 -0
  53. package/dist/tui/services/ViteService.js.map +1 -0
  54. package/dist/tui/services/index.d.ts +6 -0
  55. package/dist/tui/services/index.d.ts.map +1 -0
  56. package/dist/tui/services/index.js +6 -0
  57. package/dist/tui/services/index.js.map +1 -0
  58. package/package.json +6 -1
  59. package/.github/workflows/npm-publish.yml +0 -48
  60. package/CLAUDE.md +0 -400
  61. package/REFACTOR_PLAN.md +0 -194
  62. package/browser-extensions/README.md +0 -1
  63. package/browser-extensions/chrome/background.js +0 -857
  64. package/browser-extensions/chrome/content.js +0 -51
  65. package/browser-extensions/chrome/devtools.html +0 -9
  66. package/browser-extensions/chrome/devtools.js +0 -23
  67. package/browser-extensions/chrome/icons/gx_off_128.png +0 -0
  68. package/browser-extensions/chrome/icons/gx_off_16.png +0 -0
  69. package/browser-extensions/chrome/icons/gx_off_32.png +0 -0
  70. package/browser-extensions/chrome/icons/gx_off_64.png +0 -0
  71. package/browser-extensions/chrome/icons/gx_on_128.png +0 -0
  72. package/browser-extensions/chrome/icons/gx_on_16.png +0 -0
  73. package/browser-extensions/chrome/icons/gx_on_32.png +0 -0
  74. package/browser-extensions/chrome/icons/gx_on_64.png +0 -0
  75. package/browser-extensions/chrome/inspector.js +0 -1087
  76. package/browser-extensions/chrome/manifest.json +0 -70
  77. package/browser-extensions/chrome/panel.html +0 -638
  78. package/browser-extensions/chrome/panel.js +0 -862
  79. package/browser-extensions/chrome/popup.html +0 -399
  80. package/browser-extensions/chrome/popup.js +0 -515
  81. package/browser-extensions/chrome/rules.json +0 -1
  82. package/browser-extensions/chrome/test-chrome.html +0 -145
  83. package/browser-extensions/chrome/test-mixed-content.html +0 -190
  84. package/browser-extensions/chrome/test-uri-pattern.html +0 -199
  85. package/browser-extensions/firefox/README.md +0 -134
  86. package/browser-extensions/firefox/background.js +0 -804
  87. package/browser-extensions/firefox/content.js +0 -120
  88. package/browser-extensions/firefox/debug-errors.html +0 -229
  89. package/browser-extensions/firefox/debug-https.html +0 -113
  90. package/browser-extensions/firefox/devtools.html +0 -9
  91. package/browser-extensions/firefox/devtools.js +0 -24
  92. package/browser-extensions/firefox/icons/gx_off_128.png +0 -0
  93. package/browser-extensions/firefox/icons/gx_off_16.png +0 -0
  94. package/browser-extensions/firefox/icons/gx_off_32.png +0 -0
  95. package/browser-extensions/firefox/icons/gx_off_64.png +0 -0
  96. package/browser-extensions/firefox/icons/gx_on_128.png +0 -0
  97. package/browser-extensions/firefox/icons/gx_on_16.png +0 -0
  98. package/browser-extensions/firefox/icons/gx_on_32.png +0 -0
  99. package/browser-extensions/firefox/icons/gx_on_64.png +0 -0
  100. package/browser-extensions/firefox/inspector.js +0 -1087
  101. package/browser-extensions/firefox/manifest.json +0 -67
  102. package/browser-extensions/firefox/panel.html +0 -638
  103. package/browser-extensions/firefox/panel.js +0 -862
  104. package/browser-extensions/firefox/popup.html +0 -525
  105. package/browser-extensions/firefox/popup.js +0 -536
  106. package/browser-extensions/firefox/test-gramercy.html +0 -126
  107. package/browser-extensions/firefox/test-imports.html +0 -58
  108. package/browser-extensions/firefox/test-masking.html +0 -147
  109. package/browser-extensions/firefox/test-uri-pattern.html +0 -199
  110. package/docs/DOCUSAURUS_IMPORT.md +0 -378
  111. package/docs/_category_.json +0 -8
  112. package/docs/app-manifest.md +0 -272
  113. package/docs/building-for-platform.md +0 -315
  114. package/docs/dev-tools.md +0 -291
  115. package/docs/getting-started.md +0 -180
  116. package/docs/gxp-store.md +0 -305
  117. package/docs/index.md +0 -44
  118. package/runtime/PortalContainer.vue +0 -326
  119. package/runtime/dev-tools/DevToolsModal.vue +0 -217
  120. package/runtime/dev-tools/LayoutSwitcher.vue +0 -221
  121. package/runtime/dev-tools/MockDataEditor.vue +0 -621
  122. package/runtime/dev-tools/SocketSimulator.vue +0 -562
  123. package/runtime/dev-tools/StoreInspector.vue +0 -644
  124. package/runtime/dev-tools/index.js +0 -6
  125. package/runtime/gxpStringsPlugin.js +0 -428
  126. package/runtime/index.html +0 -22
  127. package/runtime/main.js +0 -32
  128. package/runtime/mock-api/auth-middleware.js +0 -97
  129. package/runtime/mock-api/image-generator.js +0 -221
  130. package/runtime/mock-api/index.js +0 -197
  131. package/runtime/mock-api/response-generator.js +0 -394
  132. package/runtime/mock-api/route-generator.js +0 -323
  133. package/runtime/mock-api/socket-triggers.js +0 -371
  134. package/runtime/mock-api/spec-loader.js +0 -300
  135. package/runtime/server.js +0 -180
  136. package/runtime/stores/gxpPortalConfigStore.js +0 -554
  137. package/runtime/stores/index.js +0 -6
  138. package/runtime/vite-inspector-plugin.js +0 -749
  139. package/runtime/vite-source-tracker-plugin.js +0 -232
  140. package/runtime/vite.config.js +0 -402
  141. package/scripts/launch-chrome.js +0 -90
  142. package/scripts/pack-chrome.js +0 -91
  143. package/socket-events/AiSessionMessageCreated.json +0 -18
  144. package/socket-events/SocialStreamPostCreated.json +0 -24
  145. package/socket-events/SocialStreamPostVariantCompleted.json +0 -23
  146. package/template/README.md +0 -332
  147. package/template/app-manifest.json +0 -32
  148. package/template/dev-assets/images/avatar-placeholder.png +0 -0
  149. package/template/dev-assets/images/background-placeholder.jpg +0 -0
  150. package/template/dev-assets/images/banner-placeholder.jpg +0 -0
  151. package/template/dev-assets/images/icon-placeholder.png +0 -0
  152. package/template/dev-assets/images/logo-placeholder.png +0 -0
  153. package/template/dev-assets/images/product-placeholder.jpg +0 -0
  154. package/template/dev-assets/images/thumbnail-placeholder.jpg +0 -0
  155. package/template/env.example +0 -51
  156. package/template/gitignore +0 -53
  157. package/template/index.html +0 -22
  158. package/template/main.js +0 -28
  159. package/template/src/DemoPage.vue +0 -459
  160. package/template/src/Plugin.vue +0 -38
  161. package/template/src/stores/index.js +0 -9
  162. package/template/src/stores/test-data.json +0 -173
  163. package/template/theme-layouts/AdditionalStyling.css +0 -0
  164. package/template/theme-layouts/PrivateLayout.vue +0 -39
  165. package/template/theme-layouts/PublicLayout.vue +0 -39
  166. package/template/theme-layouts/SystemLayout.vue +0 -39
  167. package/template/vite.config.js +0 -333
  168. package/tsconfig.tui.json +0 -21
  169. package/vite.config.js +0 -164
@@ -1,525 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <style>
6
- :root {
7
- --main-bg: #f8f9fa;
8
- --header-bg: #2563eb;
9
- --card-bg: #ffffff;
10
- --border-color: #e5e7eb;
11
- --text-primary: #1f2937;
12
- --text-secondary: #6b7280;
13
- --success-color: #10b981;
14
- --error-color: #ef4444;
15
- --warning-color: #f59e0b;
16
- --shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
17
- --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
18
- }
19
-
20
- * {
21
- box-sizing: border-box;
22
- margin: 0;
23
- padding: 0;
24
- }
25
-
26
- body {
27
- font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
28
- font-size: 14px;
29
- line-height: 1.5;
30
- color: var(--text-primary);
31
- background: var(--main-bg);
32
- width: 420px;
33
- min-height: 500px;
34
- }
35
-
36
- .header {
37
- background: linear-gradient(135deg, var(--header-bg) 0%, #1d4ed8 100%);
38
- color: white;
39
- padding: 20px;
40
- text-align: center;
41
- box-shadow: var(--shadow);
42
- }
43
-
44
- .header h1 {
45
- font-size: 18px;
46
- font-weight: 600;
47
- margin: 0 0 8px 0;
48
- }
49
-
50
- .header .subtitle {
51
- font-size: 12px;
52
- opacity: 0.9;
53
- font-weight: 400;
54
- }
55
-
56
- .main-container {
57
- padding: 20px;
58
- }
59
-
60
- /* Main Toggle Section */
61
- .main-toggle {
62
- background: var(--card-bg);
63
- border-radius: 12px;
64
- box-shadow: var(--shadow);
65
- overflow: hidden;
66
- margin-bottom: 20px;
67
- }
68
-
69
- .toggle-header {
70
- padding: 16px 20px;
71
- border-bottom: 1px solid var(--border-color);
72
- display: flex;
73
- align-items: center;
74
- justify-content: space-between;
75
- }
76
-
77
- .toggle-title {
78
- font-weight: 600;
79
- font-size: 15px;
80
- }
81
-
82
- .master-toggle {
83
- position: relative;
84
- width: 52px;
85
- height: 28px;
86
- }
87
-
88
- .master-toggle input {
89
- opacity: 0;
90
- width: 0;
91
- height: 0;
92
- }
93
-
94
- .master-slider {
95
- position: absolute;
96
- cursor: pointer;
97
- top: 0;
98
- left: 0;
99
- right: 0;
100
- bottom: 0;
101
- background-color: #cbd5e1;
102
- border-radius: 28px;
103
- transition: all 0.3s ease;
104
- }
105
-
106
- .master-slider:before {
107
- position: absolute;
108
- content: "";
109
- height: 22px;
110
- width: 22px;
111
- left: 3px;
112
- bottom: 3px;
113
- background-color: white;
114
- border-radius: 50%;
115
- transition: all 0.3s ease;
116
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
117
- }
118
-
119
- .master-toggle input:checked + .master-slider {
120
- background-color: var(--success-color);
121
- }
122
-
123
- .master-toggle input:checked + .master-slider:before {
124
- transform: translateX(24px);
125
- }
126
-
127
- .status-info {
128
- padding: 12px 20px;
129
- background: #f1f5f9;
130
- font-size: 13px;
131
- color: var(--text-secondary);
132
- }
133
-
134
- /* Rule Cards */
135
- .rule-container {
136
- background: var(--card-bg);
137
- border-radius: 12px;
138
- box-shadow: var(--shadow);
139
- overflow: hidden;
140
- margin-bottom: 16px;
141
- }
142
-
143
- .rule-header {
144
- padding: 16px 20px;
145
- border-bottom: 1px solid var(--border-color);
146
- display: flex;
147
- align-items: center;
148
- justify-content: space-between;
149
- background: #fafbfc;
150
- }
151
-
152
- .rule-title {
153
- font-weight: 600;
154
- font-size: 14px;
155
- color: var(--text-primary);
156
- }
157
-
158
- .rule-subtitle {
159
- font-size: 12px;
160
- color: var(--text-secondary);
161
- margin-top: 2px;
162
- }
163
-
164
- .rule-toggle {
165
- position: relative;
166
- width: 44px;
167
- height: 24px;
168
- }
169
-
170
- .rule-toggle input {
171
- opacity: 0;
172
- width: 0;
173
- height: 0;
174
- }
175
-
176
- .rule-slider {
177
- position: absolute;
178
- cursor: pointer;
179
- top: 0;
180
- left: 0;
181
- right: 0;
182
- bottom: 0;
183
- background-color: #cbd5e1;
184
- border-radius: 24px;
185
- transition: all 0.3s ease;
186
- }
187
-
188
- .rule-slider:before {
189
- position: absolute;
190
- content: "";
191
- height: 18px;
192
- width: 18px;
193
- left: 3px;
194
- bottom: 3px;
195
- background-color: white;
196
- border-radius: 50%;
197
- transition: all 0.3s ease;
198
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
199
- }
200
-
201
- .rule-toggle input:checked + .rule-slider {
202
- background-color: var(--success-color);
203
- }
204
-
205
- .rule-toggle input:checked + .rule-slider:before {
206
- transform: translateX(20px);
207
- }
208
-
209
- .rule-content {
210
- padding: 20px;
211
- }
212
-
213
- /* Form Fields */
214
- .form-group {
215
- margin-bottom: 16px;
216
- }
217
-
218
- .form-group:last-child {
219
- margin-bottom: 0;
220
- }
221
-
222
- .form-group label {
223
- display: block;
224
- font-weight: 500;
225
- margin-bottom: 6px;
226
- font-size: 13px;
227
- color: var(--text-primary);
228
- }
229
-
230
- .form-group input,
231
- .form-group textarea {
232
- width: 100%;
233
- padding: 10px 12px;
234
- border: 1px solid var(--border-color);
235
- border-radius: 8px;
236
- font-size: 13px;
237
- transition: all 0.2s ease;
238
- background: white;
239
- }
240
-
241
- .form-group input:focus,
242
- .form-group textarea:focus {
243
- outline: none;
244
- border-color: var(--header-bg);
245
- box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
246
- }
247
-
248
- .form-group textarea {
249
- resize: vertical;
250
- min-height: 65px;
251
- font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
252
- }
253
-
254
- /* Checkbox */
255
- .checkbox-group {
256
- display: flex;
257
- align-items: center;
258
- margin-bottom: 16px;
259
- }
260
-
261
- .checkbox-group input[type="checkbox"] {
262
- width: auto;
263
- margin-right: 8px;
264
- cursor: pointer;
265
- }
266
-
267
- .checkbox-group label {
268
- margin-bottom: 0;
269
- cursor: pointer;
270
- font-size: 13px;
271
- }
272
-
273
- /* Action Buttons */
274
- .action-buttons {
275
- display: flex;
276
- gap: 8px;
277
- margin-top: 20px;
278
- }
279
-
280
- .btn {
281
- flex: 1;
282
- padding: 10px 16px;
283
- border: none;
284
- border-radius: 8px;
285
- font-size: 13px;
286
- font-weight: 500;
287
- cursor: pointer;
288
- transition: all 0.2s ease;
289
- text-align: center;
290
- }
291
-
292
- .btn-primary {
293
- background: var(--header-bg);
294
- color: white;
295
- }
296
-
297
- .btn-primary:hover {
298
- background: #1d4ed8;
299
- transform: translateY(-1px);
300
- box-shadow: var(--shadow-lg);
301
- }
302
-
303
- .btn-secondary {
304
- background: #f3f4f6;
305
- color: var(--text-primary);
306
- border: 1px solid var(--border-color);
307
- }
308
-
309
- .btn-secondary:hover {
310
- background: #e5e7eb;
311
- transform: translateY(-1px);
312
- }
313
-
314
- .btn:disabled {
315
- opacity: 0.6;
316
- cursor: not-allowed;
317
- transform: none !important;
318
- }
319
-
320
- /* Status Messages */
321
- .status-message {
322
- padding: 12px 16px;
323
- border-radius: 8px;
324
- margin-bottom: 16px;
325
- font-size: 13px;
326
- font-weight: 500;
327
- }
328
-
329
- .status-success {
330
- background: #ecfdf5;
331
- color: #065f46;
332
- border: 1px solid #a7f3d0;
333
- }
334
-
335
- .status-error {
336
- background: #fef2f2;
337
- color: #991b1b;
338
- border: 1px solid #fca5a5;
339
- }
340
-
341
- /* Hidden class */
342
- .hidden {
343
- display: none !important;
344
- }
345
-
346
- /* Disabled state for rule containers */
347
- .rule-container.disabled {
348
- opacity: 0.6;
349
- }
350
-
351
- .rule-container.disabled .rule-content {
352
- pointer-events: none;
353
- }
354
-
355
- /* Pattern info */
356
- .pattern-info {
357
- font-size: 11px;
358
- color: var(--text-secondary);
359
- margin-top: 4px;
360
- font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
361
- }
362
-
363
- /* Advanced Settings */
364
- .advanced-settings {
365
- background: var(--card-bg);
366
- border-radius: 12px;
367
- box-shadow: var(--shadow);
368
- overflow: hidden;
369
- margin-top: 20px;
370
- }
371
-
372
- .advanced-header {
373
- padding: 16px 20px;
374
- background: #fafbfc;
375
- border-bottom: 1px solid var(--border-color);
376
- cursor: pointer;
377
- display: flex;
378
- align-items: center;
379
- justify-content: space-between;
380
- }
381
-
382
- .advanced-header:hover {
383
- background: #f1f5f9;
384
- }
385
-
386
- .advanced-title {
387
- font-weight: 600;
388
- font-size: 14px;
389
- }
390
-
391
- .advanced-toggle {
392
- font-size: 12px;
393
- color: var(--text-secondary);
394
- }
395
-
396
- .advanced-content {
397
- padding: 20px;
398
- }
399
- </style>
400
- </head>
401
- <body>
402
- <div class="header">
403
- <h1>JavaScript Proxy</h1>
404
- <div class="subtitle">Intercept & redirect web requests</div>
405
- </div>
406
-
407
- <div class="main-container">
408
- <!-- Status Messages -->
409
- <div id="statusMessage" class="status-message hidden"></div>
410
-
411
- <!-- Main Toggle -->
412
- <div class="main-toggle">
413
- <div class="toggle-header">
414
- <div class="toggle-title">Proxy Extension</div>
415
- <label class="master-toggle">
416
- <input type="checkbox" id="masterToggle">
417
- <span class="master-slider"></span>
418
- </label>
419
- </div>
420
- <div class="status-info" id="statusInfo">
421
- Extension is currently disabled
422
- </div>
423
- </div>
424
-
425
- <!-- JavaScript Rule -->
426
- <div class="rule-container" id="jsRuleContainer">
427
- <div class="rule-header">
428
- <div>
429
- <div class="rule-title">JavaScript Files (.js)</div>
430
- <div class="rule-subtitle">Redirect JavaScript files to development server</div>
431
- </div>
432
- <label class="rule-toggle">
433
- <input type="checkbox" id="jsRuleToggle">
434
- <span class="rule-slider"></span>
435
- </label>
436
- </div>
437
- <div class="rule-content">
438
- <div class="form-group">
439
- <label for="jsRedirectUrl">Redirect URL:</label>
440
- <input type="url" id="jsRedirectUrl" placeholder="https://localhost:3060/src/Plugin.vue">
441
- </div>
442
-
443
- <div class="checkbox-group">
444
- <input type="checkbox" id="jsUseCustomPattern">
445
- <label for="jsUseCustomPattern">Use custom URL pattern</label>
446
- </div>
447
-
448
- <div class="form-group" id="jsPatternGroup">
449
- <label for="jsPattern">URL Pattern (RegEx):</label>
450
- <textarea id="jsPattern" placeholder="uploads\/plugin-version\/\d+\/file_name\/.*\.js(\?.*)?"></textarea>
451
- <div class="pattern-info">Matches JavaScript files in plugin uploads</div>
452
- </div>
453
- </div>
454
- </div>
455
-
456
- <!-- CSS Rule -->
457
- <div class="rule-container" id="cssRuleContainer">
458
- <div class="rule-header">
459
- <div>
460
- <div class="rule-title">CSS Files (.css)</div>
461
- <div class="rule-subtitle">Handle CSS files with redirect or blank return</div>
462
- </div>
463
- <label class="rule-toggle">
464
- <input type="checkbox" id="cssRuleToggle">
465
- <span class="rule-slider"></span>
466
- </label>
467
- </div>
468
- <div class="rule-content">
469
- <div class="checkbox-group">
470
- <input type="checkbox" id="cssReturnBlank">
471
- <label for="cssReturnBlank">Return blank CSS document instead of redirecting</label>
472
- </div>
473
-
474
- <div class="form-group" id="cssRedirectGroup">
475
- <label for="cssRedirectUrl">Redirect URL:</label>
476
- <input type="url" id="cssRedirectUrl" placeholder="https://localhost:3060/src/styles.css">
477
- </div>
478
-
479
- <div class="checkbox-group">
480
- <input type="checkbox" id="cssUseCustomPattern">
481
- <label for="cssUseCustomPattern">Use custom URL pattern</label>
482
- </div>
483
-
484
- <div class="form-group" id="cssPatternGroup">
485
- <label for="cssPattern">URL Pattern (RegEx):</label>
486
- <textarea id="cssPattern" placeholder="uploads\/plugin-version\/\d+\/style_file_name\/.*\.css(\?.*)?"></textarea>
487
- <div class="pattern-info">Matches CSS files in plugin uploads</div>
488
- </div>
489
- </div>
490
- </div>
491
-
492
- <!-- Advanced Settings -->
493
- <div class="advanced-settings">
494
- <div class="advanced-header" id="advancedHeader">
495
- <div class="advanced-title">Advanced Settings</div>
496
- <div class="advanced-toggle" id="advancedToggle">Show ▼</div>
497
- </div>
498
- <div class="advanced-content hidden" id="advancedContent">
499
- <div class="checkbox-group">
500
- <input type="checkbox" id="maskingMode">
501
- <label for="maskingMode">URL Masking Mode (experimental)</label>
502
- </div>
503
-
504
- <div class="checkbox-group">
505
- <input type="checkbox" id="clearCacheOnEnable">
506
- <label for="clearCacheOnEnable">Clear cache when enabling proxy</label>
507
- </div>
508
-
509
- <div class="checkbox-group">
510
- <input type="checkbox" id="disableCacheForRedirects">
511
- <label for="disableCacheForRedirects">Disable cache for redirected requests</label>
512
- </div>
513
- </div>
514
- </div>
515
-
516
- <!-- Action Buttons -->
517
- <div class="action-buttons">
518
- <button class="btn btn-secondary" id="clearCacheBtn">Clear Cache</button>
519
- <button class="btn btn-primary" id="saveBtn">Save Changes</button>
520
- </div>
521
- </div>
522
-
523
- <script src="popup.js"></script>
524
- </body>
525
- </html>