vite-plugin-specter 0.3.3 → 0.3.4
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/client.js +7 -11
- package/dist/extension-chrome/background.js +4 -0
- package/dist/extension-chrome/content.js +982 -0
- package/dist/extension-chrome/icons/icon128.png +0 -0
- package/dist/extension-chrome/icons/icon16.png +0 -0
- package/dist/extension-chrome/icons/icon32.png +0 -0
- package/dist/extension-chrome/icons/icon48.png +0 -0
- package/dist/extension-chrome/manifest.json +38 -0
- package/dist/extension-firefox/content.js +7 -11
- package/dist/extension-firefox/manifest.json +8 -2
- package/dist/index.cjs +7 -11
- package/dist/index.js +7 -11
- package/extension/background.js +1 -5
- package/extension/content.js +7 -11
- package/extension/manifest.firefox.json +21 -7
- package/extension/manifest.json +8 -6
- package/package.json +1 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifest_version": 3,
|
|
3
|
+
"name": "Specter",
|
|
4
|
+
"version": "0.3.3",
|
|
5
|
+
"description": "Element inspector for AI-assisted development. Ctrl+Option+Z to activate.",
|
|
6
|
+
"icons": {
|
|
7
|
+
"16": "icons/icon16.png",
|
|
8
|
+
"32": "icons/icon32.png",
|
|
9
|
+
"48": "icons/icon48.png",
|
|
10
|
+
"128": "icons/icon128.png"
|
|
11
|
+
},
|
|
12
|
+
"action": {
|
|
13
|
+
"default_icon": {
|
|
14
|
+
"16": "icons/icon16.png",
|
|
15
|
+
"32": "icons/icon32.png",
|
|
16
|
+
"48": "icons/icon48.png",
|
|
17
|
+
"128": "icons/icon128.png"
|
|
18
|
+
},
|
|
19
|
+
"default_title": "Activate Specter on this page"
|
|
20
|
+
},
|
|
21
|
+
"background": {
|
|
22
|
+
"service_worker": "background.js"
|
|
23
|
+
},
|
|
24
|
+
"content_scripts": [
|
|
25
|
+
{
|
|
26
|
+
"matches": [
|
|
27
|
+
"<all_urls>"
|
|
28
|
+
],
|
|
29
|
+
"js": [
|
|
30
|
+
"content.js"
|
|
31
|
+
],
|
|
32
|
+
"run_at": "document_end"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"permissions": [
|
|
36
|
+
"activeTab"
|
|
37
|
+
]
|
|
38
|
+
}
|
|
@@ -273,17 +273,11 @@
|
|
|
273
273
|
return { hex: toHex(m[1], m[2], m[3]), alpha: m[4] !== undefined ? parseFloat(m[4]) : 1 };
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
-
function colorLabel(str) {
|
|
277
|
-
var c = parseColor(str);
|
|
278
|
-
if (!c) return null;
|
|
279
|
-
if (c.alpha < 1) return c.hex + ' (' + Math.round(c.alpha * 100) + '% opacity)';
|
|
280
|
-
return c.hex;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
276
|
function colorObj(str) {
|
|
284
277
|
var c = parseColor(str);
|
|
285
278
|
if (!c) return null;
|
|
286
|
-
|
|
279
|
+
var label = c.alpha < 1 ? c.hex + ' (' + Math.round(c.alpha * 100) + '% opacity)' : c.hex;
|
|
280
|
+
return { raw: str, hex: c.hex, alpha: c.alpha, label: label };
|
|
287
281
|
}
|
|
288
282
|
|
|
289
283
|
function edge(t, r, b, l) {
|
|
@@ -485,6 +479,7 @@
|
|
|
485
479
|
function clearHoverOutline() {
|
|
486
480
|
if (outlinedEl) {
|
|
487
481
|
outlinedEl.style.outline = prevOutline;
|
|
482
|
+
outlinedEl.style.outlineOffset = '';
|
|
488
483
|
outlinedEl = null;
|
|
489
484
|
}
|
|
490
485
|
}
|
|
@@ -561,7 +556,7 @@
|
|
|
561
556
|
}
|
|
562
557
|
|
|
563
558
|
function clearSelection() {
|
|
564
|
-
selectedEls.forEach(function (el) { el.style.outline = ''; });
|
|
559
|
+
selectedEls.forEach(function (el) { el.style.outline = ''; el.style.outlineOffset = ''; });
|
|
565
560
|
selectedEls.length = 0;
|
|
566
561
|
selectedBadges.forEach(function (b) { b.remove(); });
|
|
567
562
|
selectedBadges.length = 0;
|
|
@@ -976,8 +971,9 @@
|
|
|
976
971
|
|
|
977
972
|
window.__specterToggle = function() { if (fiActive) deactivate(); else activate(); };
|
|
978
973
|
|
|
979
|
-
|
|
980
|
-
|
|
974
|
+
var _rt = (typeof browser !== 'undefined' && browser.runtime) || (typeof chrome !== 'undefined' && chrome.runtime);
|
|
975
|
+
if (_rt && _rt.onMessage) {
|
|
976
|
+
_rt.onMessage.addListener(function(msg) {
|
|
981
977
|
if (msg && msg.type === 'specter-toggle') window.__specterToggle();
|
|
982
978
|
});
|
|
983
979
|
}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": 2,
|
|
3
3
|
"name": "Specter",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.3",
|
|
5
5
|
"description": "Element inspector for AI-assisted development. Ctrl+Option+Z to activate.",
|
|
6
6
|
"browser_specific_settings": {
|
|
7
7
|
"gecko": {
|
|
8
8
|
"id": "specter@setugk.com",
|
|
9
|
-
"strict_min_version": "109.0"
|
|
9
|
+
"strict_min_version": "109.0",
|
|
10
|
+
"data_collection_permissions": {
|
|
11
|
+
"required": [
|
|
12
|
+
"none"
|
|
13
|
+
],
|
|
14
|
+
"optional": []
|
|
15
|
+
}
|
|
10
16
|
}
|
|
11
17
|
},
|
|
12
18
|
"icons": {
|
package/dist/index.cjs
CHANGED
|
@@ -303,17 +303,11 @@ function getClientScript(options) {
|
|
|
303
303
|
return { hex: toHex(m[1], m[2], m[3]), alpha: m[4] !== undefined ? parseFloat(m[4]) : 1 };
|
|
304
304
|
}
|
|
305
305
|
|
|
306
|
-
function colorLabel(str) {
|
|
307
|
-
var c = parseColor(str);
|
|
308
|
-
if (!c) return null;
|
|
309
|
-
if (c.alpha < 1) return c.hex + ' (' + Math.round(c.alpha * 100) + '% opacity)';
|
|
310
|
-
return c.hex;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
306
|
function colorObj(str) {
|
|
314
307
|
var c = parseColor(str);
|
|
315
308
|
if (!c) return null;
|
|
316
|
-
|
|
309
|
+
var label = c.alpha < 1 ? c.hex + ' (' + Math.round(c.alpha * 100) + '% opacity)' : c.hex;
|
|
310
|
+
return { raw: str, hex: c.hex, alpha: c.alpha, label: label };
|
|
317
311
|
}
|
|
318
312
|
|
|
319
313
|
function edge(t, r, b, l) {
|
|
@@ -515,6 +509,7 @@ function getClientScript(options) {
|
|
|
515
509
|
function clearHoverOutline() {
|
|
516
510
|
if (outlinedEl) {
|
|
517
511
|
outlinedEl.style.outline = prevOutline;
|
|
512
|
+
outlinedEl.style.outlineOffset = '';
|
|
518
513
|
outlinedEl = null;
|
|
519
514
|
}
|
|
520
515
|
}
|
|
@@ -591,7 +586,7 @@ function getClientScript(options) {
|
|
|
591
586
|
}
|
|
592
587
|
|
|
593
588
|
function clearSelection() {
|
|
594
|
-
selectedEls.forEach(function (el) { el.style.outline = ''; });
|
|
589
|
+
selectedEls.forEach(function (el) { el.style.outline = ''; el.style.outlineOffset = ''; });
|
|
595
590
|
selectedEls.length = 0;
|
|
596
591
|
selectedBadges.forEach(function (b) { b.remove(); });
|
|
597
592
|
selectedBadges.length = 0;
|
|
@@ -1006,8 +1001,9 @@ function getClientScript(options) {
|
|
|
1006
1001
|
|
|
1007
1002
|
window.__specterToggle = function() { if (fiActive) deactivate(); else activate(); };
|
|
1008
1003
|
|
|
1009
|
-
|
|
1010
|
-
|
|
1004
|
+
var _rt = (typeof browser !== 'undefined' && browser.runtime) || (typeof chrome !== 'undefined' && chrome.runtime);
|
|
1005
|
+
if (_rt && _rt.onMessage) {
|
|
1006
|
+
_rt.onMessage.addListener(function(msg) {
|
|
1011
1007
|
if (msg && msg.type === 'specter-toggle') window.__specterToggle();
|
|
1012
1008
|
});
|
|
1013
1009
|
}
|
package/dist/index.js
CHANGED
|
@@ -276,17 +276,11 @@ function getClientScript(options) {
|
|
|
276
276
|
return { hex: toHex(m[1], m[2], m[3]), alpha: m[4] !== undefined ? parseFloat(m[4]) : 1 };
|
|
277
277
|
}
|
|
278
278
|
|
|
279
|
-
function colorLabel(str) {
|
|
280
|
-
var c = parseColor(str);
|
|
281
|
-
if (!c) return null;
|
|
282
|
-
if (c.alpha < 1) return c.hex + ' (' + Math.round(c.alpha * 100) + '% opacity)';
|
|
283
|
-
return c.hex;
|
|
284
|
-
}
|
|
285
|
-
|
|
286
279
|
function colorObj(str) {
|
|
287
280
|
var c = parseColor(str);
|
|
288
281
|
if (!c) return null;
|
|
289
|
-
|
|
282
|
+
var label = c.alpha < 1 ? c.hex + ' (' + Math.round(c.alpha * 100) + '% opacity)' : c.hex;
|
|
283
|
+
return { raw: str, hex: c.hex, alpha: c.alpha, label: label };
|
|
290
284
|
}
|
|
291
285
|
|
|
292
286
|
function edge(t, r, b, l) {
|
|
@@ -488,6 +482,7 @@ function getClientScript(options) {
|
|
|
488
482
|
function clearHoverOutline() {
|
|
489
483
|
if (outlinedEl) {
|
|
490
484
|
outlinedEl.style.outline = prevOutline;
|
|
485
|
+
outlinedEl.style.outlineOffset = '';
|
|
491
486
|
outlinedEl = null;
|
|
492
487
|
}
|
|
493
488
|
}
|
|
@@ -564,7 +559,7 @@ function getClientScript(options) {
|
|
|
564
559
|
}
|
|
565
560
|
|
|
566
561
|
function clearSelection() {
|
|
567
|
-
selectedEls.forEach(function (el) { el.style.outline = ''; });
|
|
562
|
+
selectedEls.forEach(function (el) { el.style.outline = ''; el.style.outlineOffset = ''; });
|
|
568
563
|
selectedEls.length = 0;
|
|
569
564
|
selectedBadges.forEach(function (b) { b.remove(); });
|
|
570
565
|
selectedBadges.length = 0;
|
|
@@ -979,8 +974,9 @@ function getClientScript(options) {
|
|
|
979
974
|
|
|
980
975
|
window.__specterToggle = function() { if (fiActive) deactivate(); else activate(); };
|
|
981
976
|
|
|
982
|
-
|
|
983
|
-
|
|
977
|
+
var _rt = (typeof browser !== 'undefined' && browser.runtime) || (typeof chrome !== 'undefined' && chrome.runtime);
|
|
978
|
+
if (_rt && _rt.onMessage) {
|
|
979
|
+
_rt.onMessage.addListener(function(msg) {
|
|
984
980
|
if (msg && msg.type === 'specter-toggle') window.__specterToggle();
|
|
985
981
|
});
|
|
986
982
|
}
|
package/extension/background.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
// Chrome MV3 service worker
|
|
2
|
-
// Toolbar click injects Specter on any page (not just localhost)
|
|
3
2
|
chrome.action.onClicked.addListener((tab) => {
|
|
4
|
-
chrome.
|
|
5
|
-
target: { tabId: tab.id },
|
|
6
|
-
files: ['content.js'],
|
|
7
|
-
});
|
|
3
|
+
chrome.tabs.sendMessage(tab.id, { type: 'specter-toggle' });
|
|
8
4
|
});
|
package/extension/content.js
CHANGED
|
@@ -273,17 +273,11 @@
|
|
|
273
273
|
return { hex: toHex(m[1], m[2], m[3]), alpha: m[4] !== undefined ? parseFloat(m[4]) : 1 };
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
-
function colorLabel(str) {
|
|
277
|
-
var c = parseColor(str);
|
|
278
|
-
if (!c) return null;
|
|
279
|
-
if (c.alpha < 1) return c.hex + ' (' + Math.round(c.alpha * 100) + '% opacity)';
|
|
280
|
-
return c.hex;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
276
|
function colorObj(str) {
|
|
284
277
|
var c = parseColor(str);
|
|
285
278
|
if (!c) return null;
|
|
286
|
-
|
|
279
|
+
var label = c.alpha < 1 ? c.hex + ' (' + Math.round(c.alpha * 100) + '% opacity)' : c.hex;
|
|
280
|
+
return { raw: str, hex: c.hex, alpha: c.alpha, label: label };
|
|
287
281
|
}
|
|
288
282
|
|
|
289
283
|
function edge(t, r, b, l) {
|
|
@@ -485,6 +479,7 @@
|
|
|
485
479
|
function clearHoverOutline() {
|
|
486
480
|
if (outlinedEl) {
|
|
487
481
|
outlinedEl.style.outline = prevOutline;
|
|
482
|
+
outlinedEl.style.outlineOffset = '';
|
|
488
483
|
outlinedEl = null;
|
|
489
484
|
}
|
|
490
485
|
}
|
|
@@ -561,7 +556,7 @@
|
|
|
561
556
|
}
|
|
562
557
|
|
|
563
558
|
function clearSelection() {
|
|
564
|
-
selectedEls.forEach(function (el) { el.style.outline = ''; });
|
|
559
|
+
selectedEls.forEach(function (el) { el.style.outline = ''; el.style.outlineOffset = ''; });
|
|
565
560
|
selectedEls.length = 0;
|
|
566
561
|
selectedBadges.forEach(function (b) { b.remove(); });
|
|
567
562
|
selectedBadges.length = 0;
|
|
@@ -976,8 +971,9 @@
|
|
|
976
971
|
|
|
977
972
|
window.__specterToggle = function() { if (fiActive) deactivate(); else activate(); };
|
|
978
973
|
|
|
979
|
-
|
|
980
|
-
|
|
974
|
+
var _rt = (typeof browser !== 'undefined' && browser.runtime) || (typeof chrome !== 'undefined' && chrome.runtime);
|
|
975
|
+
if (_rt && _rt.onMessage) {
|
|
976
|
+
_rt.onMessage.addListener(function(msg) {
|
|
981
977
|
if (msg && msg.type === 'specter-toggle') window.__specterToggle();
|
|
982
978
|
});
|
|
983
979
|
}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": 2,
|
|
3
3
|
"name": "Specter",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.3",
|
|
5
5
|
"description": "Element inspector for AI-assisted development. Ctrl+Option+Z to activate.",
|
|
6
6
|
"browser_specific_settings": {
|
|
7
7
|
"gecko": {
|
|
8
8
|
"id": "specter@setugk.com",
|
|
9
|
-
"strict_min_version": "109.0"
|
|
9
|
+
"strict_min_version": "109.0",
|
|
10
|
+
"data_collection_permissions": {
|
|
11
|
+
"required": [
|
|
12
|
+
"none"
|
|
13
|
+
],
|
|
14
|
+
"optional": []
|
|
15
|
+
}
|
|
10
16
|
}
|
|
11
17
|
},
|
|
12
18
|
"icons": {
|
|
@@ -24,15 +30,23 @@
|
|
|
24
30
|
"default_title": "Toggle Specter"
|
|
25
31
|
},
|
|
26
32
|
"background": {
|
|
27
|
-
"scripts": [
|
|
33
|
+
"scripts": [
|
|
34
|
+
"background.firefox.js"
|
|
35
|
+
],
|
|
28
36
|
"persistent": false
|
|
29
37
|
},
|
|
30
38
|
"content_scripts": [
|
|
31
39
|
{
|
|
32
|
-
"matches": [
|
|
33
|
-
|
|
40
|
+
"matches": [
|
|
41
|
+
"<all_urls>"
|
|
42
|
+
],
|
|
43
|
+
"js": [
|
|
44
|
+
"content.js"
|
|
45
|
+
],
|
|
34
46
|
"run_at": "document_end"
|
|
35
47
|
}
|
|
36
48
|
],
|
|
37
|
-
"permissions": [
|
|
38
|
-
|
|
49
|
+
"permissions": [
|
|
50
|
+
"activeTab"
|
|
51
|
+
]
|
|
52
|
+
}
|
package/extension/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": 3,
|
|
3
3
|
"name": "Specter",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.3",
|
|
5
5
|
"description": "Element inspector for AI-assisted development. Ctrl+Option+Z to activate.",
|
|
6
6
|
"icons": {
|
|
7
7
|
"16": "icons/icon16.png",
|
|
@@ -24,13 +24,15 @@
|
|
|
24
24
|
"content_scripts": [
|
|
25
25
|
{
|
|
26
26
|
"matches": [
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
"<all_urls>"
|
|
28
|
+
],
|
|
29
|
+
"js": [
|
|
30
|
+
"content.js"
|
|
30
31
|
],
|
|
31
|
-
"js": ["content.js"],
|
|
32
32
|
"run_at": "document_end"
|
|
33
33
|
}
|
|
34
34
|
],
|
|
35
|
-
"permissions": [
|
|
35
|
+
"permissions": [
|
|
36
|
+
"activeTab"
|
|
37
|
+
]
|
|
36
38
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-plugin-specter",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "Inspect elements and Figma-style measure spacing in your vibe-coded Vite projects. Give your AI exactly what it needs to make the right change.",
|
|
5
5
|
"author": "Setu Kathawate <dev@setugk.com>",
|
|
6
6
|
"homepage": "https://github.com/setugk/vite-plugin-specter#readme",
|