@ytspar/devbar 1.0.0-canary.2b99e1e → 1.0.0-canary.2bfb9ad
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/README.md +4 -0
- package/dist/GlobalDevBar.d.ts +111 -227
- package/dist/GlobalDevBar.d.ts.map +1 -0
- package/dist/GlobalDevBar.js +155 -2959
- package/dist/GlobalDevBar.js.map +1 -0
- package/dist/accessibility.d.ts +1 -0
- package/dist/accessibility.d.ts.map +1 -0
- package/dist/accessibility.js +1 -0
- package/dist/accessibility.js.map +1 -0
- package/dist/constants.d.ts +38 -14
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +98 -123
- package/dist/constants.js.map +1 -0
- package/dist/debug.d.ts +4 -3
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +6 -4
- package/dist/debug.js.map +1 -0
- package/dist/earlyConsoleCapture.d.ts +4 -31
- package/dist/earlyConsoleCapture.d.ts.map +1 -0
- package/dist/earlyConsoleCapture.js +4 -74
- package/dist/earlyConsoleCapture.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -0
- package/dist/lazy/index.d.ts +1 -0
- package/dist/lazy/index.d.ts.map +1 -0
- package/dist/lazy/index.js +1 -0
- package/dist/lazy/index.js.map +1 -0
- package/dist/lazy/lazyHtml2Canvas.d.ts +5 -0
- package/dist/lazy/lazyHtml2Canvas.d.ts.map +1 -0
- package/dist/lazy/lazyHtml2Canvas.js +1 -0
- package/dist/lazy/lazyHtml2Canvas.js.map +1 -0
- package/dist/modules/index.d.ts +15 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/index.js +14 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/modules/keyboard.d.ts +15 -0
- package/dist/modules/keyboard.d.ts.map +1 -0
- package/dist/modules/keyboard.js +60 -0
- package/dist/modules/keyboard.js.map +1 -0
- package/dist/modules/performance.d.ts +26 -0
- package/dist/modules/performance.d.ts.map +1 -0
- package/dist/modules/performance.js +197 -0
- package/dist/modules/performance.js.map +1 -0
- package/dist/modules/rendering.d.ts +20 -0
- package/dist/modules/rendering.d.ts.map +1 -0
- package/dist/modules/rendering.js +2005 -0
- package/dist/modules/rendering.js.map +1 -0
- package/dist/modules/screenshot.d.ts +62 -0
- package/dist/modules/screenshot.d.ts.map +1 -0
- package/dist/modules/screenshot.js +350 -0
- package/dist/modules/screenshot.js.map +1 -0
- package/dist/modules/theme.d.ts +20 -0
- package/dist/modules/theme.d.ts.map +1 -0
- package/dist/modules/theme.js +60 -0
- package/dist/modules/theme.js.map +1 -0
- package/dist/modules/tooltips.d.ts +74 -0
- package/dist/modules/tooltips.d.ts.map +1 -0
- package/dist/modules/tooltips.js +553 -0
- package/dist/modules/tooltips.js.map +1 -0
- package/dist/modules/types.d.ts +118 -0
- package/dist/modules/types.d.ts.map +1 -0
- package/dist/modules/types.js +9 -0
- package/dist/modules/types.js.map +1 -0
- package/dist/modules/websocket.d.ts +16 -0
- package/dist/modules/websocket.d.ts.map +1 -0
- package/dist/modules/websocket.js +314 -0
- package/dist/modules/websocket.js.map +1 -0
- package/dist/network.d.ts +1 -0
- package/dist/network.d.ts.map +1 -0
- package/dist/network.js +5 -6
- package/dist/network.js.map +1 -0
- package/dist/outline.d.ts +1 -0
- package/dist/outline.d.ts.map +1 -0
- package/dist/outline.js +1 -0
- package/dist/outline.js.map +1 -0
- package/dist/presets.d.ts +9 -8
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +9 -8
- package/dist/presets.js.map +1 -0
- package/dist/schema.d.ts +1 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +3 -3
- package/dist/schema.js.map +1 -0
- package/dist/settings.d.ts +14 -8
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +23 -17
- package/dist/settings.js.map +1 -0
- package/dist/storage.d.ts +1 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +1 -0
- package/dist/storage.js.map +1 -0
- package/dist/types.d.ts +7 -4
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -2
- package/dist/types.js.map +1 -0
- package/dist/ui/buttons.d.ts +3 -2
- package/dist/ui/buttons.d.ts.map +1 -0
- package/dist/ui/buttons.js +3 -2
- package/dist/ui/buttons.js.map +1 -0
- package/dist/ui/cards.d.ts +37 -0
- package/dist/ui/cards.d.ts.map +1 -0
- package/dist/ui/cards.js +134 -0
- package/dist/ui/cards.js.map +1 -0
- package/dist/ui/icons.d.ts +71 -2
- package/dist/ui/icons.d.ts.map +1 -0
- package/dist/ui/icons.js +148 -2
- package/dist/ui/icons.js.map +1 -0
- package/dist/ui/index.d.ts +3 -1
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +3 -1
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/modals.d.ts +6 -3
- package/dist/ui/modals.d.ts.map +1 -0
- package/dist/ui/modals.js +24 -13
- package/dist/ui/modals.js.map +1 -0
- package/dist/utils.d.ts +7 -2
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +20 -2
- package/dist/utils.js.map +1 -0
- package/package.json +17 -14
package/dist/ui/icons.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* devbar Icons
|
|
3
3
|
*
|
|
4
|
-
* SVG icon creation utilities for the
|
|
4
|
+
* SVG icon creation utilities for the devbar UI.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
7
|
* Create an SVG icon element with the given path data
|
|
@@ -11,3 +11,72 @@ export declare function createSvgIcon(pathData: string, options: {
|
|
|
11
11
|
fill?: boolean;
|
|
12
12
|
stroke?: boolean;
|
|
13
13
|
}): SVGSVGElement;
|
|
14
|
+
/** devbar wordmark viewBox dimensions */
|
|
15
|
+
export declare const DEVBAR_LOGO_VIEWBOX = "0 0 580.43 167.62";
|
|
16
|
+
/** devbar logo colors */
|
|
17
|
+
export declare const DEVBAR_LOGO_COLORS: {
|
|
18
|
+
/** Emerald green for dark mode */
|
|
19
|
+
readonly dark: "#10b981";
|
|
20
|
+
/** Darker emerald for light mode */
|
|
21
|
+
readonly light: "#047857";
|
|
22
|
+
};
|
|
23
|
+
/** devbar wordmark letter path data */
|
|
24
|
+
export declare const DEVBAR_LOGO_PATHS: {
|
|
25
|
+
readonly d: "M73.46,161.67l-6.41-.16-.1-7.56-5.52-.09v-21.54s6.94-.1,6.94-.1l.03-29.61,7.14-.19.25-22.45,9.06-.26.22-8.19,8.82-.08.32-5.87,30.1-.03.26,5.83,7.76-.07.08-20.29,6.17-.14-.02-21.58h26.12s.03,11.73.03,11.73l-3.46.3-.05,22.8-6.68.14-.05,32.83-6.94.1-.04,34.47-7.86.33-.05,34.45h-26.66s-.13-6.81-.13-6.81l-3.2.08-.05,1.8-5.88.18-.27,5.94h-29.79s-.13-5.95-.13-5.95ZM109.74,139.54l6.11-.13.07-19.02,6.12-.26.16-12.27,2.82-.52v-12.89s-3.8-.49-3.8-.49l-.37-8.03-15.85.03-.2,6.24-6.19.14-.04,22.21-8.52.15v24.28s3.28.13,3.28.13l.05,7.83,16.17.05.19-7.45Z";
|
|
26
|
+
readonly e: "M200.68,148.2l.13-8.62,7.57-.15.25-5.78,26.28-.19.04,5.66-4.84.24-.1,11.5-4.74.06-.15,7.09-4.52.16-.33,4.81-9.7.28-.07,4.36-41.06.02-.18-6.21-8.02-.24-.27-7.17-6.21-.21.13-17.79,4.92-.37.02-32.36,8.3-.13.09-19.13,5.63-.15.36-6.19,5.74-.28.27-5.76,6.21-.22.18-5.85h45.06s.35,5.93.35,5.93l5.5.23.31,5.65,6.41.14v28.86s-5.29.2-5.29.2l-.09,15.01h-54.52s-.17,15.16-.17,15.16l-2.48.57v10.93M188.1,106.02l28.63-.03.07-22.28-21.6-.03-.33,10.73-6.93.27.16,11.34Z";
|
|
27
|
+
readonly v: "M325.06,99.7l-7.88.15-.03,14.96-7.72.07-.04,16.62-6.64.14-.12,16.18-5.95.06-.16,7.13-4.53.12-.29,11.35-30.22-.07v-29.09s-4.87-.31-4.87-.31l-.02-44.28-4.87-.18v-26.98s25.36,0,25.36,0l.17,63.22c3.26.33,6.23.24,9.58-.06l.02-14.7,6.71-.23.05-17.25,7.87-.42.2-16.13,6.28-.32.07-14.13,26.57-.03.18,5.94-2.99.18-.12,11.36-6.39.34-.23,16.35Z";
|
|
28
|
+
readonly b: "M390.29,158.27l-.23,8.17h-28.6s.2-5.07.2-5.07l-8.04-.22.02-1.68-7.02.08-.19,6.91-21.06-.08-.14-26.82,5.48-.22.27-21.16,5.39-.31.08-21.12,5.46-.18.22-26.59,6.2-.41.26-21.44,4.93-.15.2-18.51,24.28-.18v22.97s-6.52.12-6.52.12l.06,19.15,7.37-.12.16-5.88h28.13s.25,5.77.25,5.77l4.95.13.18,5.76,5.04.45-.07,30.61-4.86.44-.17,22.83-7.23.34-.11,16.6-6.12.39-.19,9.31-8.57.09ZM387.51,93.06l-.14-7.17c-3.48,0-15.85.05-19.09-.09l-.09,8-5.99.29-.02,28.81-6.95.14.03,16.09,4.11.23.12,7.77h16.31s0-7.6,0-7.6l6.41-.11.06-15.85,5.2-.06";
|
|
29
|
+
readonly a: "M417.64,131.33l5.08-.1.2-9.47,7.45-.4.08-9.51,11.77-.12.21-5.99c3.64-.42,13.39,1.12,16.29-1.73l11.65-.23.32-6.23,8.81-.24.09-15.84-19.56-.04-.18,5.74-5.19.25v7.51s-23.11.1-23.11.1l-.32-7.21,2.65-.48.06-9.69,8.57-.15.22-8.1,7.93-.09.21-5.92h42.51s.43,5.82.43,5.82l5.32.19.4,5.74,5.9.32.16,29.4-7.26.25v30.71s-6.5.14-6.5.14v19.98s5.11.32,5.11.32v8.03s-26.37.03-26.37.03l-.24-9.44-5.85-.1-.2,4.78-6.35.1-.16,5.78-29.43-.02-.09-4.57-5-.14-.15-5.88-5.51-.19.03-23.34ZM461.97,145.81l.23-3.91,5.51-.09.05-8.29,6.01-.1-.04-17.33-10,.04-.12,4.69-10.87.13-.39,6.02-5.98.34v18.47s15.61.04,15.61.04Z";
|
|
30
|
+
readonly r: "M506.46,149.81l5.3-.22.03-28.17,6.48-.13.15-25.67,6.65-.35.02-29.71,22.63.18c-.07,2.81-.13,8.82-.04,11.59l7.1.1.27-4.36,6.49-.41.17-7.1,18.69-.02.04,24.62-27.68.06-.14,6.53-7.65.21-.14,22.22-6,.42-.06,23.2-5.78.25-.02,23.4-26.5-.03";
|
|
31
|
+
readonly dLeftEdge: "M59.47,37.37l.06,5.59-8.51.05-.12,6.47-7.89-.1v2.81s-2.22.06-2.22.06l-.1,6.93-9.9.25-.11,6.27-7.16.17-.05,7.97-5.32.18v21.01s11.16.19,11.16.19l.19,6.35,9.28.08.16,6.01,20.67.19.13,6.5-46.46-.14-.48-7.41-7.36-.44-.24-6.74-5.19-.23.13-21.7,6.84-.44.06-8.58,6.33-.23.09-7.19h6.27s.12-5.64.12-5.64l6.01-.1.52-4.41,5.36-.32.34-3.85,5.9-.31.46-3.45,7.54-.18.14-5.53,9.44-.07";
|
|
32
|
+
};
|
|
33
|
+
/** devbar wordmark polyline/polygon data */
|
|
34
|
+
export declare const DEVBAR_LOGO_SHAPES: {
|
|
35
|
+
readonly topBar: "214.17 22.67 204.58 22.7 204.66 15.98 196.08 15.68 195.86 7.9 148.96 7.93 148.81 13.79 114.91 13.79 114.94 7.24 143.91 7.19 144.14 0 214.17 0";
|
|
36
|
+
readonly dStep1: "114.43 21.6 92.3 21.3 92.17 14.42 114.63 14.43 114.43 21.6";
|
|
37
|
+
readonly dStep2: "91.89 29.07 73.29 29.04 73.34 21.96 91.87 21.65 91.89 29.07";
|
|
38
|
+
readonly dStep3: "72.95 35.82 59.81 35.85 59.8 29.34 72.79 29.46 72.95 35.82";
|
|
39
|
+
readonly dCounter: "109.74 139.54 109.55 146.99 93.38 146.94 93.33 139.12 90.04 138.99 90.04 114.71 98.57 114.55 98.61 92.35 104.8 92.21 105 85.97 120.85 85.93 121.22 93.96 125.02 94.45 125.03 107.34 122.21 107.86 122.05 120.14 115.92 120.4 115.85 139.42 109.74 139.54";
|
|
40
|
+
readonly eCounter: "188.1 106.02 187.94 94.68 194.87 94.41 195.2 83.68 216.81 83.71 216.73 105.99 188.1 106.02";
|
|
41
|
+
};
|
|
42
|
+
export interface CreateLogoOptions {
|
|
43
|
+
/** Width in pixels (default: 32) */
|
|
44
|
+
width?: number;
|
|
45
|
+
/** Height in pixels (default: 32) */
|
|
46
|
+
height?: number;
|
|
47
|
+
/** Fill color or 'currentColor' (default: uses theme-aware colors) */
|
|
48
|
+
fill?: string;
|
|
49
|
+
/** CSS class name for the SVG element */
|
|
50
|
+
className?: string;
|
|
51
|
+
/** Whether to include CSS for theme-aware colors (default: true) */
|
|
52
|
+
themed?: boolean;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create a devbar logo SVG element.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* // Theme-aware logo (default)
|
|
60
|
+
* const logo = createDevBarLogo({ width: 48, height: 48 });
|
|
61
|
+
* document.body.appendChild(logo);
|
|
62
|
+
*
|
|
63
|
+
* // Custom color
|
|
64
|
+
* const customLogo = createDevBarLogo({ fill: '#ff0000' });
|
|
65
|
+
*
|
|
66
|
+
* // Use currentColor (inherits from parent)
|
|
67
|
+
* const inheritLogo = createDevBarLogo({ fill: 'currentColor' });
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function createDevBarLogo(options?: CreateLogoOptions): SVGSVGElement;
|
|
71
|
+
/**
|
|
72
|
+
* Get the devbar logo as an SVG string.
|
|
73
|
+
* Useful for SSR or when you need the raw SVG markup.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```ts
|
|
77
|
+
* const svgString = getDevBarLogoSvg({ width: 64 });
|
|
78
|
+
* // Use with a templating system or set via outerHTML
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function getDevBarLogoSvg(options?: CreateLogoOptions): string;
|
|
82
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/ui/icons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GACA,aAAa,CAmBf;AAMD,yCAAyC;AACzC,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAEvD,yBAAyB;AACzB,eAAO,MAAM,kBAAkB;IAC7B,kCAAkC;;IAElC,oCAAoC;;CAE5B,CAAC;AAEX,uCAAuC;AACvC,eAAO,MAAM,iBAAiB;;;;;;;;CASpB,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB;;;;;;;CAUrB,CAAC;AAEX,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,aAAa,CAkE/E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAmCxE"}
|
package/dist/ui/icons.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* devbar Icons
|
|
3
3
|
*
|
|
4
|
-
* SVG icon creation utilities for the
|
|
4
|
+
* SVG icon creation utilities for the devbar UI.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
7
|
* Create an SVG icon element with the given path data
|
|
@@ -23,3 +23,149 @@ export function createSvgIcon(pathData, options) {
|
|
|
23
23
|
svg.appendChild(path);
|
|
24
24
|
return svg;
|
|
25
25
|
}
|
|
26
|
+
// ============================================================================
|
|
27
|
+
// devbar Logo — Pixel-art wordmark
|
|
28
|
+
// ============================================================================
|
|
29
|
+
/** devbar wordmark viewBox dimensions */
|
|
30
|
+
export const DEVBAR_LOGO_VIEWBOX = '0 0 580.43 167.62';
|
|
31
|
+
/** devbar logo colors */
|
|
32
|
+
export const DEVBAR_LOGO_COLORS = {
|
|
33
|
+
/** Emerald green for dark mode */
|
|
34
|
+
dark: '#10b981',
|
|
35
|
+
/** Darker emerald for light mode */
|
|
36
|
+
light: '#047857',
|
|
37
|
+
};
|
|
38
|
+
/** devbar wordmark letter path data */
|
|
39
|
+
export const DEVBAR_LOGO_PATHS = {
|
|
40
|
+
d: 'M73.46,161.67l-6.41-.16-.1-7.56-5.52-.09v-21.54s6.94-.1,6.94-.1l.03-29.61,7.14-.19.25-22.45,9.06-.26.22-8.19,8.82-.08.32-5.87,30.1-.03.26,5.83,7.76-.07.08-20.29,6.17-.14-.02-21.58h26.12s.03,11.73.03,11.73l-3.46.3-.05,22.8-6.68.14-.05,32.83-6.94.1-.04,34.47-7.86.33-.05,34.45h-26.66s-.13-6.81-.13-6.81l-3.2.08-.05,1.8-5.88.18-.27,5.94h-29.79s-.13-5.95-.13-5.95ZM109.74,139.54l6.11-.13.07-19.02,6.12-.26.16-12.27,2.82-.52v-12.89s-3.8-.49-3.8-.49l-.37-8.03-15.85.03-.2,6.24-6.19.14-.04,22.21-8.52.15v24.28s3.28.13,3.28.13l.05,7.83,16.17.05.19-7.45Z',
|
|
41
|
+
e: 'M200.68,148.2l.13-8.62,7.57-.15.25-5.78,26.28-.19.04,5.66-4.84.24-.1,11.5-4.74.06-.15,7.09-4.52.16-.33,4.81-9.7.28-.07,4.36-41.06.02-.18-6.21-8.02-.24-.27-7.17-6.21-.21.13-17.79,4.92-.37.02-32.36,8.3-.13.09-19.13,5.63-.15.36-6.19,5.74-.28.27-5.76,6.21-.22.18-5.85h45.06s.35,5.93.35,5.93l5.5.23.31,5.65,6.41.14v28.86s-5.29.2-5.29.2l-.09,15.01h-54.52s-.17,15.16-.17,15.16l-2.48.57v10.93M188.1,106.02l28.63-.03.07-22.28-21.6-.03-.33,10.73-6.93.27.16,11.34Z',
|
|
42
|
+
v: 'M325.06,99.7l-7.88.15-.03,14.96-7.72.07-.04,16.62-6.64.14-.12,16.18-5.95.06-.16,7.13-4.53.12-.29,11.35-30.22-.07v-29.09s-4.87-.31-4.87-.31l-.02-44.28-4.87-.18v-26.98s25.36,0,25.36,0l.17,63.22c3.26.33,6.23.24,9.58-.06l.02-14.7,6.71-.23.05-17.25,7.87-.42.2-16.13,6.28-.32.07-14.13,26.57-.03.18,5.94-2.99.18-.12,11.36-6.39.34-.23,16.35Z',
|
|
43
|
+
b: 'M390.29,158.27l-.23,8.17h-28.6s.2-5.07.2-5.07l-8.04-.22.02-1.68-7.02.08-.19,6.91-21.06-.08-.14-26.82,5.48-.22.27-21.16,5.39-.31.08-21.12,5.46-.18.22-26.59,6.2-.41.26-21.44,4.93-.15.2-18.51,24.28-.18v22.97s-6.52.12-6.52.12l.06,19.15,7.37-.12.16-5.88h28.13s.25,5.77.25,5.77l4.95.13.18,5.76,5.04.45-.07,30.61-4.86.44-.17,22.83-7.23.34-.11,16.6-6.12.39-.19,9.31-8.57.09ZM387.51,93.06l-.14-7.17c-3.48,0-15.85.05-19.09-.09l-.09,8-5.99.29-.02,28.81-6.95.14.03,16.09,4.11.23.12,7.77h16.31s0-7.6,0-7.6l6.41-.11.06-15.85,5.2-.06',
|
|
44
|
+
a: 'M417.64,131.33l5.08-.1.2-9.47,7.45-.4.08-9.51,11.77-.12.21-5.99c3.64-.42,13.39,1.12,16.29-1.73l11.65-.23.32-6.23,8.81-.24.09-15.84-19.56-.04-.18,5.74-5.19.25v7.51s-23.11.1-23.11.1l-.32-7.21,2.65-.48.06-9.69,8.57-.15.22-8.1,7.93-.09.21-5.92h42.51s.43,5.82.43,5.82l5.32.19.4,5.74,5.9.32.16,29.4-7.26.25v30.71s-6.5.14-6.5.14v19.98s5.11.32,5.11.32v8.03s-26.37.03-26.37.03l-.24-9.44-5.85-.1-.2,4.78-6.35.1-.16,5.78-29.43-.02-.09-4.57-5-.14-.15-5.88-5.51-.19.03-23.34ZM461.97,145.81l.23-3.91,5.51-.09.05-8.29,6.01-.1-.04-17.33-10,.04-.12,4.69-10.87.13-.39,6.02-5.98.34v18.47s15.61.04,15.61.04Z',
|
|
45
|
+
r: 'M506.46,149.81l5.3-.22.03-28.17,6.48-.13.15-25.67,6.65-.35.02-29.71,22.63.18c-.07,2.81-.13,8.82-.04,11.59l7.1.1.27-4.36,6.49-.41.17-7.1,18.69-.02.04,24.62-27.68.06-.14,6.53-7.65.21-.14,22.22-6,.42-.06,23.2-5.78.25-.02,23.4-26.5-.03',
|
|
46
|
+
dLeftEdge: 'M59.47,37.37l.06,5.59-8.51.05-.12,6.47-7.89-.1v2.81s-2.22.06-2.22.06l-.1,6.93-9.9.25-.11,6.27-7.16.17-.05,7.97-5.32.18v21.01s11.16.19,11.16.19l.19,6.35,9.28.08.16,6.01,20.67.19.13,6.5-46.46-.14-.48-7.41-7.36-.44-.24-6.74-5.19-.23.13-21.7,6.84-.44.06-8.58,6.33-.23.09-7.19h6.27s.12-5.64.12-5.64l6.01-.1.52-4.41,5.36-.32.34-3.85,5.9-.31.46-3.45,7.54-.18.14-5.53,9.44-.07',
|
|
47
|
+
};
|
|
48
|
+
/** devbar wordmark polyline/polygon data */
|
|
49
|
+
export const DEVBAR_LOGO_SHAPES = {
|
|
50
|
+
topBar: '214.17 22.67 204.58 22.7 204.66 15.98 196.08 15.68 195.86 7.9 148.96 7.93 148.81 13.79 114.91 13.79 114.94 7.24 143.91 7.19 144.14 0 214.17 0',
|
|
51
|
+
dStep1: '114.43 21.6 92.3 21.3 92.17 14.42 114.63 14.43 114.43 21.6',
|
|
52
|
+
dStep2: '91.89 29.07 73.29 29.04 73.34 21.96 91.87 21.65 91.89 29.07',
|
|
53
|
+
dStep3: '72.95 35.82 59.81 35.85 59.8 29.34 72.79 29.46 72.95 35.82',
|
|
54
|
+
dCounter: '109.74 139.54 109.55 146.99 93.38 146.94 93.33 139.12 90.04 138.99 90.04 114.71 98.57 114.55 98.61 92.35 104.8 92.21 105 85.97 120.85 85.93 121.22 93.96 125.02 94.45 125.03 107.34 122.21 107.86 122.05 120.14 115.92 120.4 115.85 139.42 109.74 139.54',
|
|
55
|
+
eCounter: '188.1 106.02 187.94 94.68 194.87 94.41 195.2 83.68 216.81 83.71 216.73 105.99 188.1 106.02',
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Create a devbar logo SVG element.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* // Theme-aware logo (default)
|
|
63
|
+
* const logo = createDevBarLogo({ width: 48, height: 48 });
|
|
64
|
+
* document.body.appendChild(logo);
|
|
65
|
+
*
|
|
66
|
+
* // Custom color
|
|
67
|
+
* const customLogo = createDevBarLogo({ fill: '#ff0000' });
|
|
68
|
+
*
|
|
69
|
+
* // Use currentColor (inherits from parent)
|
|
70
|
+
* const inheritLogo = createDevBarLogo({ fill: 'currentColor' });
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export function createDevBarLogo(options = {}) {
|
|
74
|
+
const { width = 32, height = 32, fill, className, themed = true } = options;
|
|
75
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
76
|
+
svg.setAttribute('width', String(width));
|
|
77
|
+
svg.setAttribute('height', String(height));
|
|
78
|
+
svg.setAttribute('viewBox', DEVBAR_LOGO_VIEWBOX);
|
|
79
|
+
svg.setAttribute('fill', 'none');
|
|
80
|
+
svg.setAttribute('aria-label', 'devbar logo');
|
|
81
|
+
if (className) {
|
|
82
|
+
svg.setAttribute('class', className);
|
|
83
|
+
}
|
|
84
|
+
// Add style element for themed colors if not using a custom fill
|
|
85
|
+
if (themed && !fill) {
|
|
86
|
+
const style = document.createElementNS('http://www.w3.org/2000/svg', 'style');
|
|
87
|
+
style.textContent = `
|
|
88
|
+
.devbar-logo-fill { fill: ${DEVBAR_LOGO_COLORS.dark}; }
|
|
89
|
+
@media (prefers-color-scheme: light) {
|
|
90
|
+
.devbar-logo-fill { fill: ${DEVBAR_LOGO_COLORS.light}; }
|
|
91
|
+
}
|
|
92
|
+
`;
|
|
93
|
+
svg.appendChild(style);
|
|
94
|
+
}
|
|
95
|
+
const fillValue = fill || (themed ? undefined : DEVBAR_LOGO_COLORS.dark);
|
|
96
|
+
const fillClass = !fill && themed ? 'devbar-logo-fill' : undefined;
|
|
97
|
+
const g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
|
|
98
|
+
if (fillValue) {
|
|
99
|
+
g.setAttribute('fill', fillValue);
|
|
100
|
+
}
|
|
101
|
+
else if (fillClass) {
|
|
102
|
+
g.setAttribute('class', fillClass);
|
|
103
|
+
}
|
|
104
|
+
// Letter paths
|
|
105
|
+
for (const d of Object.values(DEVBAR_LOGO_PATHS)) {
|
|
106
|
+
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
107
|
+
path.setAttribute('d', d);
|
|
108
|
+
g.appendChild(path);
|
|
109
|
+
}
|
|
110
|
+
// Top bar (polyline)
|
|
111
|
+
const topBar = document.createElementNS('http://www.w3.org/2000/svg', 'polyline');
|
|
112
|
+
topBar.setAttribute('points', DEVBAR_LOGO_SHAPES.topBar);
|
|
113
|
+
g.appendChild(topBar);
|
|
114
|
+
// Staircase steps
|
|
115
|
+
for (const key of ['dStep1', 'dStep2', 'dStep3']) {
|
|
116
|
+
const poly = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');
|
|
117
|
+
poly.setAttribute('points', DEVBAR_LOGO_SHAPES[key]);
|
|
118
|
+
g.appendChild(poly);
|
|
119
|
+
}
|
|
120
|
+
// Letter counters (transparent holes)
|
|
121
|
+
for (const key of ['dCounter', 'eCounter']) {
|
|
122
|
+
const poly = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');
|
|
123
|
+
poly.setAttribute('points', DEVBAR_LOGO_SHAPES[key]);
|
|
124
|
+
poly.setAttribute('fill', 'none');
|
|
125
|
+
g.appendChild(poly);
|
|
126
|
+
}
|
|
127
|
+
svg.appendChild(g);
|
|
128
|
+
return svg;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get the devbar logo as an SVG string.
|
|
132
|
+
* Useful for SSR or when you need the raw SVG markup.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* const svgString = getDevBarLogoSvg({ width: 64 });
|
|
137
|
+
* // Use with a templating system or set via outerHTML
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
export function getDevBarLogoSvg(options = {}) {
|
|
141
|
+
const { width = 32, height = 32, fill, themed = true } = options;
|
|
142
|
+
const styleBlock = themed && !fill
|
|
143
|
+
? `<style>
|
|
144
|
+
.devbar-logo-fill { fill: ${DEVBAR_LOGO_COLORS.dark}; }
|
|
145
|
+
@media (prefers-color-scheme: light) {
|
|
146
|
+
.devbar-logo-fill { fill: ${DEVBAR_LOGO_COLORS.light}; }
|
|
147
|
+
}
|
|
148
|
+
</style>`
|
|
149
|
+
: '';
|
|
150
|
+
const gFillAttr = fill
|
|
151
|
+
? `fill="${fill}"`
|
|
152
|
+
: themed
|
|
153
|
+
? 'class="devbar-logo-fill"'
|
|
154
|
+
: `fill="${DEVBAR_LOGO_COLORS.dark}"`;
|
|
155
|
+
const paths = Object.values(DEVBAR_LOGO_PATHS)
|
|
156
|
+
.map((d) => `<path d="${d}"/>`)
|
|
157
|
+
.join('\n');
|
|
158
|
+
return `<svg width="${width}" height="${height}" viewBox="${DEVBAR_LOGO_VIEWBOX}" fill="none" xmlns="http://www.w3.org/2000/svg" aria-label="devbar logo">
|
|
159
|
+
${styleBlock}
|
|
160
|
+
<g ${gFillAttr}>
|
|
161
|
+
${paths}
|
|
162
|
+
<polyline points="${DEVBAR_LOGO_SHAPES.topBar}"/>
|
|
163
|
+
<polygon points="${DEVBAR_LOGO_SHAPES.dStep1}"/>
|
|
164
|
+
<polygon points="${DEVBAR_LOGO_SHAPES.dStep2}"/>
|
|
165
|
+
<polygon points="${DEVBAR_LOGO_SHAPES.dStep3}"/>
|
|
166
|
+
<polygon points="${DEVBAR_LOGO_SHAPES.dCounter}" fill="none"/>
|
|
167
|
+
<polygon points="${DEVBAR_LOGO_SHAPES.eCounter}" fill="none"/>
|
|
168
|
+
</g>
|
|
169
|
+
</svg>`;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/ui/icons.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* devbar UI Components
|
|
3
3
|
*
|
|
4
4
|
* Re-exports all UI utilities.
|
|
5
5
|
*/
|
|
6
6
|
export { createStyledButton, getButtonStyles } from './buttons.js';
|
|
7
|
+
export { type CardConfig, createCard, getCardContent, setCardEmpty } from './cards.js';
|
|
7
8
|
export { createSvgIcon } from './icons.js';
|
|
8
9
|
export { createEmptyMessage, createInfoBox, createModalBox, createModalContent, createModalHeader, createModalOverlay, type ModalConfig, } from './modals.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC"}
|
package/dist/ui/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* devbar UI Components
|
|
3
3
|
*
|
|
4
4
|
* Re-exports all UI utilities.
|
|
5
5
|
*/
|
|
6
6
|
export { createStyledButton, getButtonStyles } from './buttons.js';
|
|
7
|
+
export { createCard, getCardContent, setCardEmpty } from './cards.js';
|
|
7
8
|
export { createSvgIcon } from './icons.js';
|
|
8
9
|
export { createEmptyMessage, createInfoBox, createModalBox, createModalContent, createModalHeader, createModalOverlay, } from './modals.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAmB,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,aAAa,CAAC"}
|
package/dist/ui/modals.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* devbar Modals
|
|
3
3
|
*
|
|
4
|
-
* Modal creation utilities for the
|
|
4
|
+
* Modal creation utilities for the devbar UI.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
7
|
* Configuration for creating a modal
|
|
@@ -13,9 +13,11 @@ export interface ModalConfig {
|
|
|
13
13
|
onCopyMd: () => Promise<void>;
|
|
14
14
|
onSave?: () => void;
|
|
15
15
|
sweetlinkConnected: boolean;
|
|
16
|
+
/** Save location preference: 'local' (via sweetlink) or 'download' (browser) */
|
|
17
|
+
saveLocation?: 'local' | 'download';
|
|
16
18
|
/** Whether a save operation is in progress */
|
|
17
19
|
isSaving?: boolean;
|
|
18
|
-
/** Path where data was saved
|
|
20
|
+
/** Path where data was saved or download confirmation message */
|
|
19
21
|
savedPath?: string | null;
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
@@ -42,3 +44,4 @@ export declare function createEmptyMessage(text: string): HTMLDivElement;
|
|
|
42
44
|
* Create a colored info box (for error states, cost estimates, etc.)
|
|
43
45
|
*/
|
|
44
46
|
export declare function createInfoBox(color: string, title: string, content: string | HTMLElement[]): HTMLDivElement;
|
|
47
|
+
//# sourceMappingURL=modals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modals.d.ts","sourceRoot":"","sources":["../../src/ui/modals.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gFAAgF;IAChF,YAAY,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACpC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,cAAc,CAQtE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAQ5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAyHrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAQnD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAU/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,GAC9B,cAAc,CA6BhB"}
|
package/dist/ui/modals.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* devbar Modals
|
|
3
3
|
*
|
|
4
|
-
* Modal creation utilities for the
|
|
4
|
+
* Modal creation utilities for the devbar UI.
|
|
5
5
|
*/
|
|
6
6
|
import { MODAL_BOX_BASE_STYLES, MODAL_OVERLAY_STYLES } from '../constants.js';
|
|
7
7
|
import { createStyledButton } from './buttons.js';
|
|
@@ -34,7 +34,7 @@ export function createModalBox(color) {
|
|
|
34
34
|
* Create modal header with title, copy/save/close buttons
|
|
35
35
|
*/
|
|
36
36
|
export function createModalHeader(config) {
|
|
37
|
-
const { color, title, onClose, onCopyMd, onSave, sweetlinkConnected, isSaving, savedPath } = config;
|
|
37
|
+
const { color, title, onClose, onCopyMd, onSave, sweetlinkConnected, saveLocation = 'download', isSaving, savedPath } = config;
|
|
38
38
|
const header = document.createElement('div');
|
|
39
39
|
Object.assign(header.style, {
|
|
40
40
|
display: 'flex',
|
|
@@ -71,15 +71,24 @@ export function createModalHeader(config) {
|
|
|
71
71
|
}
|
|
72
72
|
};
|
|
73
73
|
headerButtons.appendChild(copyBtn);
|
|
74
|
-
// Save button
|
|
75
|
-
if (
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
});
|
|
74
|
+
// Save/Download button
|
|
75
|
+
if (onSave) {
|
|
76
|
+
const isLocalSave = saveLocation === 'local';
|
|
77
|
+
const canSave = !isLocalSave || sweetlinkConnected;
|
|
78
|
+
let buttonText;
|
|
80
79
|
if (isSaving) {
|
|
80
|
+
buttonText = isLocalSave ? 'Saving...' : 'Downloading...';
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
buttonText = isLocalSave ? 'Save' : 'Download';
|
|
84
|
+
}
|
|
85
|
+
const saveBtn = createStyledButton({ color, text: buttonText });
|
|
86
|
+
if (isSaving || !canSave) {
|
|
81
87
|
saveBtn.style.opacity = '0.6';
|
|
82
88
|
saveBtn.style.cursor = 'not-allowed';
|
|
89
|
+
if (!canSave) {
|
|
90
|
+
saveBtn.title = 'Sweetlink not connected. Switch to Download in settings.';
|
|
91
|
+
}
|
|
83
92
|
}
|
|
84
93
|
else {
|
|
85
94
|
saveBtn.onclick = onSave;
|
|
@@ -96,8 +105,9 @@ export function createModalHeader(config) {
|
|
|
96
105
|
closeBtn.onclick = onClose;
|
|
97
106
|
headerButtons.appendChild(closeBtn);
|
|
98
107
|
header.appendChild(headerButtons);
|
|
99
|
-
// Show saved
|
|
108
|
+
// Show saved/downloaded confirmation below buttons
|
|
100
109
|
if (savedPath) {
|
|
110
|
+
const isDownloaded = savedPath.endsWith('downloaded');
|
|
101
111
|
const savedConfirm = document.createElement('div');
|
|
102
112
|
Object.assign(savedConfirm.style, {
|
|
103
113
|
width: '100%',
|
|
@@ -114,10 +124,10 @@ export function createModalHeader(config) {
|
|
|
114
124
|
});
|
|
115
125
|
// Checkmark icon
|
|
116
126
|
const checkmark = document.createElement('span');
|
|
117
|
-
checkmark.textContent = '
|
|
127
|
+
checkmark.textContent = '\u2713';
|
|
118
128
|
Object.assign(checkmark.style, { fontWeight: '600' });
|
|
119
129
|
savedConfirm.appendChild(checkmark);
|
|
120
|
-
// Path text
|
|
130
|
+
// Path/status text
|
|
121
131
|
const pathText = document.createElement('span');
|
|
122
132
|
Object.assign(pathText.style, {
|
|
123
133
|
color: '#9ca3af',
|
|
@@ -125,7 +135,7 @@ export function createModalHeader(config) {
|
|
|
125
135
|
fontSize: '0.6875rem',
|
|
126
136
|
wordBreak: 'break-all',
|
|
127
137
|
});
|
|
128
|
-
pathText.textContent = `Saved to ${savedPath}`;
|
|
138
|
+
pathText.textContent = isDownloaded ? 'Downloaded' : `Saved to ${savedPath}`;
|
|
129
139
|
savedConfirm.appendChild(pathText);
|
|
130
140
|
header.appendChild(savedConfirm);
|
|
131
141
|
}
|
|
@@ -188,3 +198,4 @@ export function createInfoBox(color, title, content) {
|
|
|
188
198
|
}
|
|
189
199
|
return box;
|
|
190
200
|
}
|
|
201
|
+
//# sourceMappingURL=modals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modals.js","sourceRoot":"","sources":["../../src/ui/modals.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* devbar Utility Functions
|
|
3
3
|
*
|
|
4
|
-
* Re-exports shared utilities from @ytspar/sweetlink for use by
|
|
4
|
+
* Re-exports shared utilities from @ytspar/sweetlink for use by devbar components.
|
|
5
5
|
* This avoids code duplication between packages.
|
|
6
6
|
*
|
|
7
7
|
* NOTE: We import from specific sub-paths to avoid pulling in Node.js-only modules
|
|
@@ -9,3 +9,8 @@
|
|
|
9
9
|
*/
|
|
10
10
|
export { formatArg, formatArgs } from '@ytspar/sweetlink/browser/consoleCapture';
|
|
11
11
|
export { canvasToDataUrl, copyCanvasToClipboard, delay, prepareForCapture, } from '@ytspar/sweetlink/browser/screenshotUtils';
|
|
12
|
+
/** Trigger a browser file download from a string content. */
|
|
13
|
+
export declare function downloadFile(filename: string, content: string, mimeType: string): void;
|
|
14
|
+
/** Trigger a browser file download from a data URL (e.g. screenshot). */
|
|
15
|
+
export declare function downloadDataUrl(filename: string, dataUrl: string): void;
|
|
16
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAGjF,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,KAAK,EACL,iBAAiB,GAClB,MAAM,2CAA2C,CAAC;AAEnD,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQtF;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKvE"}
|
package/dist/utils.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* devbar Utility Functions
|
|
3
3
|
*
|
|
4
|
-
* Re-exports shared utilities from @ytspar/sweetlink for use by
|
|
4
|
+
* Re-exports shared utilities from @ytspar/sweetlink for use by devbar components.
|
|
5
5
|
* This avoids code duplication between packages.
|
|
6
6
|
*
|
|
7
7
|
* NOTE: We import from specific sub-paths to avoid pulling in Node.js-only modules
|
|
@@ -11,3 +11,21 @@
|
|
|
11
11
|
export { formatArg, formatArgs } from '@ytspar/sweetlink/browser/consoleCapture';
|
|
12
12
|
// Re-export screenshot utilities from sweetlink's browser module
|
|
13
13
|
export { canvasToDataUrl, copyCanvasToClipboard, delay, prepareForCapture, } from '@ytspar/sweetlink/browser/screenshotUtils';
|
|
14
|
+
/** Trigger a browser file download from a string content. */
|
|
15
|
+
export function downloadFile(filename, content, mimeType) {
|
|
16
|
+
const blob = new Blob([content], { type: mimeType });
|
|
17
|
+
const url = URL.createObjectURL(blob);
|
|
18
|
+
const a = document.createElement('a');
|
|
19
|
+
a.href = url;
|
|
20
|
+
a.download = filename;
|
|
21
|
+
a.click();
|
|
22
|
+
URL.revokeObjectURL(url);
|
|
23
|
+
}
|
|
24
|
+
/** Trigger a browser file download from a data URL (e.g. screenshot). */
|
|
25
|
+
export function downloadDataUrl(filename, dataUrl) {
|
|
26
|
+
const a = document.createElement('a');
|
|
27
|
+
a.href = dataUrl;
|
|
28
|
+
a.download = filename;
|
|
29
|
+
a.click();
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,yEAAyE;AACzE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAEjF,iEAAiE;AACjE,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,KAAK,EACL,iBAAiB,GAClB,MAAM,2CAA2C,CAAC;AAEnD,6DAA6D;AAC7D,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,OAAe,EAAE,QAAgB;IAC9E,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;IACb,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACtB,CAAC,CAAC,KAAK,EAAE,CAAC;IACV,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,OAAe;IAC/D,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;IACjB,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACtB,CAAC,CAAC,KAAK,EAAE,CAAC;AACZ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ytspar/devbar",
|
|
3
|
-
"version": "1.0.0-canary.
|
|
3
|
+
"version": "1.0.0-canary.2bfb9ad",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Development toolbar and utilities with Sweetlink integration - pure vanilla JS, no framework dependencies",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/ytspar/
|
|
9
|
+
"url": "git+https://github.com/ytspar/devbar.git",
|
|
10
10
|
"directory": "packages/devbar"
|
|
11
11
|
},
|
|
12
12
|
"keywords": [
|
|
13
13
|
"development",
|
|
14
14
|
"debug",
|
|
15
|
-
"
|
|
15
|
+
"devbar",
|
|
16
16
|
"sweetlink",
|
|
17
17
|
"vanilla-js"
|
|
18
18
|
],
|
|
19
19
|
"author": "ytspar",
|
|
20
20
|
"license": "MIT",
|
|
21
|
+
"sideEffects": [
|
|
22
|
+
"./dist/GlobalDevBar.js"
|
|
23
|
+
],
|
|
21
24
|
"main": "./dist/index.js",
|
|
22
25
|
"types": "./dist/index.d.ts",
|
|
23
26
|
"exports": {
|
|
@@ -37,26 +40,26 @@
|
|
|
37
40
|
"README.md",
|
|
38
41
|
"LICENSE"
|
|
39
42
|
],
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=20.0.0"
|
|
45
|
+
},
|
|
46
|
+
"bugs": {
|
|
47
|
+
"url": "https://github.com/ytspar/devbar/issues"
|
|
48
|
+
},
|
|
49
|
+
"homepage": "https://github.com/ytspar/devbar/tree/main/packages/devbar#readme",
|
|
40
50
|
"scripts": {
|
|
41
51
|
"build": "tsc",
|
|
52
|
+
"test": "vitest run",
|
|
42
53
|
"typecheck": "tsc --noEmit",
|
|
43
54
|
"clean": "rm -rf dist"
|
|
44
55
|
},
|
|
45
|
-
"peerDependencies": {
|
|
46
|
-
"@ytspar/sweetlink": "^1.0.0 || ^2.0.0"
|
|
47
|
-
},
|
|
48
|
-
"peerDependenciesMeta": {
|
|
49
|
-
"@ytspar/sweetlink": {
|
|
50
|
-
"optional": true
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
56
|
"dependencies": {
|
|
57
|
+
"@ytspar/sweetlink": "workspace:^",
|
|
54
58
|
"axe-core": "^4.10.2",
|
|
55
|
-
"html2canvas-pro": "^1.5.
|
|
59
|
+
"html2canvas-pro": "^1.5.13"
|
|
56
60
|
},
|
|
57
61
|
"devDependencies": {
|
|
58
|
-
"@
|
|
59
|
-
"@types/node": "^22.0.0",
|
|
62
|
+
"@types/node": "^24.0.0",
|
|
60
63
|
"typescript": "^5.0.0"
|
|
61
64
|
}
|
|
62
65
|
}
|