@ytspar/devbar 1.0.0-canary.e1f65d0 → 1.0.0-canary.f2afc5a

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 +9 -0
  2. package/dist/GlobalDevBar.d.ts +128 -130
  3. package/dist/GlobalDevBar.d.ts.map +1 -0
  4. package/dist/GlobalDevBar.js +223 -1732
  5. package/dist/GlobalDevBar.js.map +1 -0
  6. package/dist/accessibility.d.ts +85 -0
  7. package/dist/accessibility.d.ts.map +1 -0
  8. package/dist/accessibility.js +156 -0
  9. package/dist/accessibility.js.map +1 -0
  10. package/dist/constants.d.ts +132 -9
  11. package/dist/constants.d.ts.map +1 -0
  12. package/dist/constants.js +201 -120
  13. package/dist/constants.js.map +1 -0
  14. package/dist/debug.d.ts +40 -0
  15. package/dist/debug.d.ts.map +1 -0
  16. package/dist/debug.js +94 -0
  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 +14 -5
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +25 -8
  25. package/dist/index.js.map +1 -0
  26. package/dist/lazy/index.d.ts +7 -0
  27. package/dist/lazy/index.d.ts.map +1 -0
  28. package/dist/lazy/index.js +7 -0
  29. package/dist/lazy/index.js.map +1 -0
  30. package/dist/lazy/lazyHtml2Canvas.d.ts +34 -0
  31. package/dist/lazy/lazyHtml2Canvas.d.ts.map +1 -0
  32. package/dist/lazy/lazyHtml2Canvas.js +38 -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 +1997 -0
  49. package/dist/modules/rendering.js.map +1 -0
  50. package/dist/modules/screenshot.d.ts +54 -0
  51. package/dist/modules/screenshot.d.ts.map +1 -0
  52. package/dist/modules/screenshot.js +303 -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 +549 -0
  61. package/dist/modules/tooltips.js.map +1 -0
  62. package/dist/modules/types.d.ts +115 -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 +296 -0
  69. package/dist/modules/websocket.js.map +1 -0
  70. package/dist/network.d.ts +93 -0
  71. package/dist/network.d.ts.map +1 -0
  72. package/dist/network.js +175 -0
  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 +44 -10
  77. package/dist/outline.js.map +1 -0
  78. package/dist/presets.d.ts +58 -0
  79. package/dist/presets.d.ts.map +1 -0
  80. package/dist/presets.js +134 -0
  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 +7 -6
  85. package/dist/schema.js.map +1 -0
  86. package/dist/settings.d.ts +149 -0
  87. package/dist/settings.d.ts.map +1 -0
  88. package/dist/settings.js +296 -0
  89. package/dist/settings.js.map +1 -0
  90. package/dist/storage.d.ts +84 -0
  91. package/dist/storage.d.ts.map +1 -0
  92. package/dist/storage.js +183 -0
  93. package/dist/storage.js.map +1 -0
  94. package/dist/types.d.ts +29 -3
  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 +5 -3
  111. package/dist/ui/index.d.ts.map +1 -0
  112. package/dist/ui/index.js +5 -3
  113. package/dist/ui/index.js.map +1 -0
  114. package/dist/ui/modals.d.ts +7 -2
  115. package/dist/ui/modals.d.ts.map +1 -0
  116. package/dist/ui/modals.js +56 -9
  117. package/dist/ui/modals.js.map +1 -0
  118. package/dist/utils.d.ts +4 -3
  119. package/dist/utils.d.ts.map +1 -0
  120. package/dist/utils.js +4 -3
  121. package/dist/utils.js.map +1 -0
  122. package/package.json +17 -14
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @ytspar/devbar
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/@ytspar/devbar)](https://www.npmjs.com/package/@ytspar/devbar)
4
+
3
5
  Development toolbar with Sweetlink integration for browser-based development tools.
4
6
 
5
7
  ## Features
@@ -13,10 +15,17 @@ Development toolbar with Sweetlink integration for browser-based development too
13
15
  - **Page Schema**: View JSON-LD, Open Graph, and meta tag data
14
16
  - **Sweetlink integration**: Real-time connection to dev server
15
17
 
18
+ ## Requirements
19
+
20
+ This package is **ESM-only**. It requires `"type": "module"` in your `package.json` or an ESM-capable bundler (Vite, webpack, esbuild, etc.).
21
+
16
22
  ## Installation
17
23
 
18
24
  ```bash
19
25
  pnpm add @ytspar/devbar
26
+
27
+ # Or install canary (latest from main)
28
+ pnpm add @ytspar/devbar@canary
20
29
  ```
21
30
 
22
31
  ## Usage
@@ -4,76 +4,123 @@
4
4
  * A development toolbar that displays breakpoint info, performance stats,
5
5
  * console error/warning counts, and provides screenshot capabilities via Sweetlink.
6
6
  *
7
- * This is a vanilla JS replacement for the React-based GlobalDevBar component
8
- * to avoid React dependency conflicts in host applications.
7
+ * Framework-agnostic no React, Vue, or other framework dependencies.
8
+ *
9
+ * Implementation is split across focused modules in ./modules/:
10
+ * - websocket.ts — WebSocket connection, reconnection, port scanning, message handling
11
+ * - screenshot.ts — Screenshot capture, design review, clipboard operations
12
+ * - rendering.ts — renderBar(), renderConsolePopup(), renderModal(), all DOM creation
13
+ * - performance.ts — setupPerformanceMonitoring(), FCP/LCP/CLS/INP observers
14
+ * - theme.ts — setupTheme(), toggleTheme(), theme media query handling
15
+ * - keyboard.ts — setupKeyboardShortcuts(), handleKeydown()
16
+ * - tooltips.ts — tooltip creation, positioning, and management helpers
9
17
  */
10
- import type { ConsoleLog, SweetlinkCommand, OutlineNode, PageSchema, GlobalDevBarOptions, DevBarControl } from './types.js';
11
- export type { ConsoleLog, SweetlinkCommand, OutlineNode, PageSchema, GlobalDevBarOptions, DevBarControl };
12
- interface EarlyConsoleCapture {
13
- errorCount: number;
14
- warningCount: number;
15
- logs: ConsoleLog[];
16
- originalConsole: {
17
- log: typeof console.log;
18
- error: typeof console.error;
19
- warn: typeof console.warn;
20
- info: typeof console.info;
21
- } | null;
22
- isPatched: boolean;
23
- }
24
- declare const earlyConsoleCapture: EarlyConsoleCapture;
18
+ import { getThemeColors } from './constants.js';
19
+ import { DebugLogger } from './debug.js';
20
+ import { type DevBarSettings, type SettingsManager } from './settings.js';
21
+ import type { ConsoleLog, DebugConfig, DevBarControl, GlobalDevBarOptions, OutlineNode, PageSchema, SweetlinkCommand, ThemeMode } from './types.js';
22
+ import { ConsoleCapture } from '@ytspar/sweetlink/browser/consoleCapture';
23
+ export type { ConsoleLog, DebugConfig, SweetlinkCommand, OutlineNode, PageSchema, GlobalDevBarOptions, DevBarControl, ThemeMode, };
24
+ export type { DevBarPosition, DevBarSettings, MetricsVisibility } from './settings.js';
25
+ export { ACCENT_COLOR_PRESETS, DEFAULT_SETTINGS, getSettingsManager } from './settings.js';
26
+ declare const consoleCapture: ConsoleCapture;
25
27
  export declare class GlobalDevBar {
26
28
  private static customControls;
27
- private options;
28
- private container;
29
- private ws;
30
- private consoleLogs;
31
- private sweetlinkConnected;
32
- private collapsed;
33
- private capturing;
34
- private copiedToClipboard;
35
- private copiedPath;
36
- private lastScreenshot;
37
- private designReviewInProgress;
38
- private lastDesignReview;
39
- private designReviewError;
40
- private showDesignReviewConfirm;
41
- private apiKeyStatus;
42
- private lastOutline;
43
- private lastSchema;
44
- private consoleFilter;
45
- private showOutlineModal;
46
- private showSchemaModal;
47
- private breakpointInfo;
48
- private perfStats;
49
- private lcpValue;
50
- private reconnectAttempts;
51
- private reconnectTimeout;
52
- private screenshotTimeout;
53
- private copiedPathTimeout;
54
- private designReviewTimeout;
55
- private designReviewErrorTimeout;
56
- private outlineTimeout;
57
- private schemaTimeout;
58
- private resizeHandler;
59
- private keydownHandler;
60
- private fcpObserver;
61
- private lcpObserver;
62
- private destroyed;
63
- private overlayElement;
29
+ options: Required<Omit<GlobalDevBarOptions, 'sizeOverrides' | 'debug'>> & Pick<GlobalDevBarOptions, 'sizeOverrides'>;
30
+ private debugConfig;
31
+ debug: DebugLogger;
32
+ container: HTMLDivElement | null;
33
+ ws: WebSocket | null;
34
+ consoleLogs: ConsoleLog[];
35
+ sweetlinkConnected: boolean;
36
+ collapsed: boolean;
37
+ capturing: boolean;
38
+ copiedToClipboard: boolean;
39
+ copiedPath: boolean;
40
+ lastScreenshot: string | null;
41
+ designReviewInProgress: boolean;
42
+ lastDesignReview: string | null;
43
+ designReviewError: string | null;
44
+ showDesignReviewConfirm: boolean;
45
+ apiKeyStatus: {
46
+ configured: boolean;
47
+ model?: string;
48
+ pricing?: {
49
+ input: number;
50
+ output: number;
51
+ };
52
+ } | null;
53
+ lastOutline: string | null;
54
+ lastSchema: string | null;
55
+ savingOutline: boolean;
56
+ savingSchema: boolean;
57
+ consoleFilter: 'error' | 'warn' | 'info' | null;
58
+ showOutlineModal: boolean;
59
+ showSchemaModal: boolean;
60
+ activeTooltips: Set<HTMLDivElement>;
61
+ breakpointInfo: {
62
+ tailwindBreakpoint: string;
63
+ dimensions: string;
64
+ } | null;
65
+ perfStats: {
66
+ fcp: string;
67
+ lcp: string;
68
+ cls: string;
69
+ inp: string;
70
+ totalSize: string;
71
+ } | null;
72
+ lcpValue: number | null;
73
+ clsValue: number;
74
+ inpValue: number;
75
+ reconnectAttempts: number;
76
+ readonly currentAppPort: number;
77
+ readonly baseWsPort: number;
78
+ wsVerified: boolean;
79
+ serverProjectDir: string | null;
80
+ lastDotPosition: {
81
+ left: number;
82
+ top: number;
83
+ bottom: number;
84
+ } | null;
85
+ reconnectTimeout: ReturnType<typeof setTimeout> | null;
86
+ screenshotTimeout: ReturnType<typeof setTimeout> | null;
87
+ copiedPathTimeout: ReturnType<typeof setTimeout> | null;
88
+ designReviewTimeout: ReturnType<typeof setTimeout> | null;
89
+ designReviewErrorTimeout: ReturnType<typeof setTimeout> | null;
90
+ outlineTimeout: ReturnType<typeof setTimeout> | null;
91
+ schemaTimeout: ReturnType<typeof setTimeout> | null;
92
+ resizeHandler: (() => void) | null;
93
+ keydownHandler: ((e: KeyboardEvent) => void) | null;
94
+ fcpObserver: PerformanceObserver | null;
95
+ lcpObserver: PerformanceObserver | null;
96
+ clsObserver: PerformanceObserver | null;
97
+ inpObserver: PerformanceObserver | null;
98
+ destroyed: boolean;
99
+ themeMode: ThemeMode;
100
+ themeMediaQuery: MediaQueryList | null;
101
+ themeMediaHandler: ((e: MediaQueryListEvent) => void) | null;
102
+ compactMode: boolean;
103
+ showSettingsPopover: boolean;
104
+ overlayElement: HTMLDivElement | null;
105
+ settingsManager: SettingsManager;
106
+ private logChangeListener;
64
107
  constructor(options?: GlobalDevBarOptions);
65
108
  /**
66
- * Get tooltip class name(s) if tooltips are enabled, otherwise empty string
109
+ * Get current error, warning, and info counts from the log array
67
110
  */
68
- private tooltipClass;
111
+ getLogCounts(): {
112
+ errorCount: number;
113
+ warningCount: number;
114
+ infoCount: number;
115
+ };
69
116
  /**
70
- * Get current error and warning counts from the log array
117
+ * Reset position style properties on an element to clear stale values
71
118
  */
72
- private getLogCounts;
119
+ resetPositionStyles(element: HTMLElement): void;
73
120
  /**
74
121
  * Create a collapsed count badge (used for error/warning counts in minimized state)
75
122
  */
76
- private createCollapsedBadge;
123
+ createCollapsedBadge(count: number, bgColor: string, rightPos: string): HTMLSpanElement;
77
124
  /**
78
125
  * Register a custom control to be displayed in the devbar
79
126
  */
@@ -94,94 +141,44 @@ export declare class GlobalDevBar {
94
141
  * Initialize and mount the devbar
95
142
  */
96
143
  init(): void;
144
+ /**
145
+ * Get the current position
146
+ */
147
+ getPosition(): string;
97
148
  /**
98
149
  * Destroy the devbar and cleanup
99
150
  */
100
151
  destroy(): void;
101
152
  private injectStyles;
102
- private connectWebSocket;
103
- private handleSweetlinkCommand;
104
- /**
105
- * Handle notification state updates with auto-clear timeout
106
- */
107
- private handleNotification;
108
- private setupBreakpointDetection;
109
- private setupPerformanceMonitoring;
110
- private setupKeyboardShortcuts;
111
- private copyPathToClipboard;
112
- private handleScreenshot;
113
- private handleDesignReview;
114
- /**
115
- * Show the design review confirmation modal
116
- * Checks API key status first
117
- */
118
- private showDesignReviewConfirmation;
153
+ connectWebSocket(port?: number): void;
154
+ handleNotification(type: 'screenshot' | 'designReview' | 'outline' | 'schema', path: string | undefined, durationMs: number): void;
119
155
  /**
120
- * Calculate estimated cost for design review based on viewport size
156
+ * Apply settings to the DevBar state and options
121
157
  */
122
- private calculateCostEstimate;
123
- /**
124
- * Close the design review confirmation modal
125
- */
126
- private closeDesignReviewConfirm;
127
- /**
128
- * Proceed with design review after confirmation
129
- */
130
- private proceedWithDesignReview;
131
- private handleDocumentOutline;
132
- private handlePageSchema;
133
- private handleSaveOutline;
134
- private handleSaveSchema;
158
+ applySettings(settings: DevBarSettings): void;
135
159
  private clearConsoleLogs;
136
- private render;
137
- private renderOverlays;
138
- private renderDesignReviewConfirmModal;
139
- /**
140
- * Render content when API key is not configured
141
- */
142
- private renderApiKeyNotConfiguredContent;
143
- /**
144
- * Render content when API key is configured (cost estimate and model info)
145
- */
146
- private renderApiKeyConfiguredContent;
147
- private renderConsolePopup;
148
- /**
149
- * Render console log items into a container
150
- */
151
- private renderConsoleLogs;
152
- private renderOutlineModal;
153
- /**
154
- * Recursively render outline nodes into a container element
155
- */
156
- private renderOutlineNodes;
157
- private renderSchemaModal;
160
+ handleScreenshot(copyToClipboard: boolean): Promise<void>;
158
161
  /**
159
- * Render a section of schema data (either array or key-value object)
162
+ * Get the current theme mode
160
163
  */
161
- private renderSchemaSection;
164
+ getThemeMode(): ThemeMode;
162
165
  /**
163
- * Render JSON-LD items as formatted code blocks with syntax highlighting
166
+ * Set the theme mode
164
167
  */
165
- private renderJsonLdItems;
168
+ setThemeMode(mode: ThemeMode): void;
166
169
  /**
167
- * Append syntax-highlighted JSON to an element using safe DOM methods
168
- * Uses textContent for all text to prevent XSS
170
+ * Get the current effective theme colors
169
171
  */
170
- private appendHighlightedJson;
172
+ getColors(): ReturnType<typeof getThemeColors>;
171
173
  /**
172
- * Render key-value pairs as rows with ellipsis overflow and hover tooltip
174
+ * Toggle compact mode
173
175
  */
174
- private renderKeyValueItems;
175
- private renderCollapsed;
176
- private renderExpanded;
176
+ toggleCompactMode(): void;
177
177
  /**
178
- * Create a console badge for error/warning counts
178
+ * Check if compact mode is enabled
179
179
  */
180
- private createConsoleBadge;
181
- private createScreenshotButton;
182
- private createAIReviewButton;
183
- private createOutlineButton;
184
- private createSchemaButton;
180
+ isCompactMode(): boolean;
181
+ render(): void;
185
182
  }
186
183
  /**
187
184
  * Initialize and mount the GlobalDevBar
@@ -198,4 +195,5 @@ export declare function getGlobalDevBar(): GlobalDevBar | null;
198
195
  * Destroy the GlobalDevBar
199
196
  */
200
197
  export declare function destroyGlobalDevBar(): void;
201
- export { earlyConsoleCapture };
198
+ export { consoleCapture as earlyConsoleCapture };
199
+ //# sourceMappingURL=GlobalDevBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalDevBar.d.ts","sourceRoot":"","sources":["../src/GlobalDevBar.ts"],"names":[],"mappings":"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"}