@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.
Files changed (122) hide show
  1. package/README.md +4 -0
  2. package/dist/GlobalDevBar.d.ts +111 -227
  3. package/dist/GlobalDevBar.d.ts.map +1 -0
  4. package/dist/GlobalDevBar.js +155 -2959
  5. package/dist/GlobalDevBar.js.map +1 -0
  6. package/dist/accessibility.d.ts +1 -0
  7. package/dist/accessibility.d.ts.map +1 -0
  8. package/dist/accessibility.js +1 -0
  9. package/dist/accessibility.js.map +1 -0
  10. package/dist/constants.d.ts +38 -14
  11. package/dist/constants.d.ts.map +1 -0
  12. package/dist/constants.js +98 -123
  13. package/dist/constants.js.map +1 -0
  14. package/dist/debug.d.ts +4 -3
  15. package/dist/debug.d.ts.map +1 -0
  16. package/dist/debug.js +6 -4
  17. package/dist/debug.js.map +1 -0
  18. package/dist/earlyConsoleCapture.d.ts +4 -31
  19. package/dist/earlyConsoleCapture.d.ts.map +1 -0
  20. package/dist/earlyConsoleCapture.js +4 -74
  21. package/dist/earlyConsoleCapture.js.map +1 -0
  22. package/dist/index.d.ts +3 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +6 -1
  25. package/dist/index.js.map +1 -0
  26. package/dist/lazy/index.d.ts +1 -0
  27. package/dist/lazy/index.d.ts.map +1 -0
  28. package/dist/lazy/index.js +1 -0
  29. package/dist/lazy/index.js.map +1 -0
  30. package/dist/lazy/lazyHtml2Canvas.d.ts +5 -0
  31. package/dist/lazy/lazyHtml2Canvas.d.ts.map +1 -0
  32. package/dist/lazy/lazyHtml2Canvas.js +1 -0
  33. package/dist/lazy/lazyHtml2Canvas.js.map +1 -0
  34. package/dist/modules/index.d.ts +15 -0
  35. package/dist/modules/index.d.ts.map +1 -0
  36. package/dist/modules/index.js +14 -0
  37. package/dist/modules/index.js.map +1 -0
  38. package/dist/modules/keyboard.d.ts +15 -0
  39. package/dist/modules/keyboard.d.ts.map +1 -0
  40. package/dist/modules/keyboard.js +60 -0
  41. package/dist/modules/keyboard.js.map +1 -0
  42. package/dist/modules/performance.d.ts +26 -0
  43. package/dist/modules/performance.d.ts.map +1 -0
  44. package/dist/modules/performance.js +197 -0
  45. package/dist/modules/performance.js.map +1 -0
  46. package/dist/modules/rendering.d.ts +20 -0
  47. package/dist/modules/rendering.d.ts.map +1 -0
  48. package/dist/modules/rendering.js +2005 -0
  49. package/dist/modules/rendering.js.map +1 -0
  50. package/dist/modules/screenshot.d.ts +62 -0
  51. package/dist/modules/screenshot.d.ts.map +1 -0
  52. package/dist/modules/screenshot.js +350 -0
  53. package/dist/modules/screenshot.js.map +1 -0
  54. package/dist/modules/theme.d.ts +20 -0
  55. package/dist/modules/theme.d.ts.map +1 -0
  56. package/dist/modules/theme.js +60 -0
  57. package/dist/modules/theme.js.map +1 -0
  58. package/dist/modules/tooltips.d.ts +74 -0
  59. package/dist/modules/tooltips.d.ts.map +1 -0
  60. package/dist/modules/tooltips.js +553 -0
  61. package/dist/modules/tooltips.js.map +1 -0
  62. package/dist/modules/types.d.ts +118 -0
  63. package/dist/modules/types.d.ts.map +1 -0
  64. package/dist/modules/types.js +9 -0
  65. package/dist/modules/types.js.map +1 -0
  66. package/dist/modules/websocket.d.ts +16 -0
  67. package/dist/modules/websocket.d.ts.map +1 -0
  68. package/dist/modules/websocket.js +314 -0
  69. package/dist/modules/websocket.js.map +1 -0
  70. package/dist/network.d.ts +1 -0
  71. package/dist/network.d.ts.map +1 -0
  72. package/dist/network.js +5 -6
  73. package/dist/network.js.map +1 -0
  74. package/dist/outline.d.ts +1 -0
  75. package/dist/outline.d.ts.map +1 -0
  76. package/dist/outline.js +1 -0
  77. package/dist/outline.js.map +1 -0
  78. package/dist/presets.d.ts +9 -8
  79. package/dist/presets.d.ts.map +1 -0
  80. package/dist/presets.js +9 -8
  81. package/dist/presets.js.map +1 -0
  82. package/dist/schema.d.ts +1 -0
  83. package/dist/schema.d.ts.map +1 -0
  84. package/dist/schema.js +3 -3
  85. package/dist/schema.js.map +1 -0
  86. package/dist/settings.d.ts +14 -8
  87. package/dist/settings.d.ts.map +1 -0
  88. package/dist/settings.js +23 -17
  89. package/dist/settings.js.map +1 -0
  90. package/dist/storage.d.ts +1 -0
  91. package/dist/storage.d.ts.map +1 -0
  92. package/dist/storage.js +1 -0
  93. package/dist/storage.js.map +1 -0
  94. package/dist/types.d.ts +7 -4
  95. package/dist/types.d.ts.map +1 -0
  96. package/dist/types.js +3 -2
  97. package/dist/types.js.map +1 -0
  98. package/dist/ui/buttons.d.ts +3 -2
  99. package/dist/ui/buttons.d.ts.map +1 -0
  100. package/dist/ui/buttons.js +3 -2
  101. package/dist/ui/buttons.js.map +1 -0
  102. package/dist/ui/cards.d.ts +37 -0
  103. package/dist/ui/cards.d.ts.map +1 -0
  104. package/dist/ui/cards.js +134 -0
  105. package/dist/ui/cards.js.map +1 -0
  106. package/dist/ui/icons.d.ts +71 -2
  107. package/dist/ui/icons.d.ts.map +1 -0
  108. package/dist/ui/icons.js +148 -2
  109. package/dist/ui/icons.js.map +1 -0
  110. package/dist/ui/index.d.ts +3 -1
  111. package/dist/ui/index.d.ts.map +1 -0
  112. package/dist/ui/index.js +3 -1
  113. package/dist/ui/index.js.map +1 -0
  114. package/dist/ui/modals.d.ts +6 -3
  115. package/dist/ui/modals.d.ts.map +1 -0
  116. package/dist/ui/modals.js +24 -13
  117. package/dist/ui/modals.js.map +1 -0
  118. package/dist/utils.d.ts +7 -2
  119. package/dist/utils.d.ts.map +1 -0
  120. package/dist/utils.js +20 -2
  121. package/dist/utils.js.map +1 -0
  122. package/package.json +17 -14
@@ -1,7 +1,7 @@
1
1
  /**
2
- * DevBar Icons
2
+ * devbar Icons
3
3
  *
4
- * SVG icon creation utilities for the DevBar UI.
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
- * DevBar Icons
2
+ * devbar Icons
3
3
  *
4
- * SVG icon creation utilities for the DevBar UI.
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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"}
@@ -1,8 +1,10 @@
1
1
  /**
2
- * DevBar UI Components
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
- * DevBar UI Components
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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * DevBar Modals
2
+ * devbar Modals
3
3
  *
4
- * Modal creation utilities for the DevBar UI.
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 (shows confirmation) */
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
- * DevBar Modals
2
+ * devbar Modals
3
3
  *
4
- * Modal creation utilities for the DevBar UI.
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 (if Sweetlink connected)
75
- if (sweetlinkConnected && onSave) {
76
- const saveBtn = createStyledButton({
77
- color,
78
- text: isSaving ? 'Saving...' : 'Save',
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 path confirmation below buttons
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
- * DevBar Utility Functions
2
+ * devbar Utility Functions
3
3
  *
4
- * Re-exports shared utilities from @ytspar/sweetlink for use by DevBar components.
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
- * DevBar Utility Functions
2
+ * devbar Utility Functions
3
3
  *
4
- * Re-exports shared utilities from @ytspar/sweetlink for use by DevBar components.
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.2b99e1e",
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/devtools.git",
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
- "devtools",
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.8"
59
+ "html2canvas-pro": "^1.5.13"
56
60
  },
57
61
  "devDependencies": {
58
- "@ytspar/sweetlink": "workspace:*",
59
- "@types/node": "^22.0.0",
62
+ "@types/node": "^24.0.0",
60
63
  "typescript": "^5.0.0"
61
64
  }
62
65
  }