uilint-react 0.2.9 → 0.2.10

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 (50) hide show
  1. package/README.md +35 -31
  2. package/dist/DevTool.d.ts +3 -3
  3. package/dist/DevTool.d.ts.map +1 -1
  4. package/dist/components/ui-lint/ElementBadges.d.ts.map +1 -1
  5. package/dist/components/ui-lint/InspectionPanel.d.ts.map +1 -1
  6. package/dist/components/ui-lint/LocatorOverlay.d.ts.map +1 -1
  7. package/dist/components/ui-lint/ScanResultsPopover.d.ts.map +1 -1
  8. package/dist/components/ui-lint/UILintUI.d.ts +5 -0
  9. package/dist/components/ui-lint/UILintUI.d.ts.map +1 -0
  10. package/dist/components/ui-lint/hooks/index.d.ts +4 -0
  11. package/dist/components/ui-lint/hooks/index.d.ts.map +1 -0
  12. package/dist/components/ui-lint/hooks/useAutoScans.d.ts +5 -0
  13. package/dist/components/ui-lint/hooks/useAutoScans.d.ts.map +1 -0
  14. package/dist/components/ui-lint/hooks/useDevToolEventHandlers.d.ts +5 -0
  15. package/dist/components/ui-lint/hooks/useDevToolEventHandlers.d.ts.map +1 -0
  16. package/dist/components/ui-lint/hooks/useNavigationDetection.d.ts +6 -0
  17. package/dist/components/ui-lint/hooks/useNavigationDetection.d.ts.map +1 -0
  18. package/dist/components/ui-lint/index.d.ts +1 -2
  19. package/dist/components/ui-lint/index.d.ts.map +1 -1
  20. package/dist/components/ui-lint/store.d.ts +18 -6
  21. package/dist/components/ui-lint/store.d.ts.map +1 -1
  22. package/dist/components/ui-lint/toolbar/icons.d.ts +4 -0
  23. package/dist/components/ui-lint/toolbar/icons.d.ts.map +1 -1
  24. package/dist/components/ui-lint/toolbar/index.d.ts.map +1 -1
  25. package/dist/components/ui-lint/toolbar/tabs/ConfigureTab.d.ts.map +1 -1
  26. package/dist/components/ui-lint/toolbar/tabs/ESLintTab.d.ts.map +1 -1
  27. package/dist/components/ui-lint/toolbar/tabs/VisionTab.d.ts.map +1 -1
  28. package/dist/components/ui-lint/types.d.ts +80 -35
  29. package/dist/components/ui-lint/types.d.ts.map +1 -1
  30. package/dist/devtools-types.d.ts +31 -0
  31. package/dist/devtools.js +93 -93
  32. package/dist/devtools.js.map +1 -1
  33. package/dist/index.d.ts +2 -2
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +12953 -42
  36. package/dist/index.js.map +1 -1
  37. package/dist/scanner/vision-capture.d.ts +1 -1
  38. package/dist/scanner/vision-capture.d.ts.map +1 -1
  39. package/dist/{vision-capture-EIrYA_XF.js → vision-capture-l4ZJB8M8.js} +89 -76
  40. package/dist/vision-capture-l4ZJB8M8.js.map +1 -0
  41. package/package.json +5 -4
  42. package/dist/ElementBadges-H5_y7fLt.js +0 -672
  43. package/dist/ElementBadges-H5_y7fLt.js.map +0 -1
  44. package/dist/VisionIssueBadge-Bw_1zmLh.js +0 -154
  45. package/dist/VisionIssueBadge-Bw_1zmLh.js.map +0 -1
  46. package/dist/components/ui-lint/UILintProvider.d.ts +0 -11
  47. package/dist/components/ui-lint/UILintProvider.d.ts.map +0 -1
  48. package/dist/index-Cu1-cGo1.js +0 -12839
  49. package/dist/index-Cu1-cGo1.js.map +0 -1
  50. package/dist/vision-capture-EIrYA_XF.js.map +0 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@ React component for AI-powered UI consistency checking in running applications.
4
4
 
5
5
  ## Overview
6
6
 
7
- `uilint-react` provides the `UILintProvider` component that enables element inspection and LLM-powered code analysis in your React/Next.js application.
7
+ `uilint-react` provides the `<uilint-devtools>` web component that enables element inspection and LLM-powered code analysis in your React/Next.js application.
8
8
 
9
9
  ## Installation
10
10
 
@@ -20,27 +20,42 @@ npx uilint install
20
20
 
21
21
  ## Usage in a Running App
22
22
 
23
- Wrap your app with the `UILintProvider` component:
23
+ Add the devtools web component to your app:
24
24
 
25
25
  ### Next.js Setup
26
26
 
27
27
  ```tsx
28
28
  // app/layout.tsx
29
- import { UILintProvider } from "uilint-react";
29
+ import "uilint-react/devtools";
30
30
 
31
31
  export default function RootLayout({ children }) {
32
32
  return (
33
33
  <html>
34
34
  <body>
35
- <UILintProvider enabled={process.env.NODE_ENV !== "production"}>
36
- {children}
37
- </UILintProvider>
35
+ {children}
36
+ <uilint-devtools />
38
37
  </body>
39
38
  </html>
40
39
  );
41
40
  }
42
41
  ```
43
42
 
43
+ ### Vite Setup
44
+
45
+ ```tsx
46
+ // src/main.tsx
47
+ import "uilint-react/devtools";
48
+ import { createRoot } from "react-dom/client";
49
+ import App from "./App";
50
+
51
+ createRoot(document.getElementById("root")!).render(
52
+ <>
53
+ <App />
54
+ <uilint-devtools />
55
+ </>
56
+ );
57
+ ```
58
+
44
59
  ### Features
45
60
 
46
61
  - **Alt+Click** on any element to open the inspector sidebar
@@ -50,11 +65,13 @@ export default function RootLayout({ children }) {
50
65
  - **Scan with LLM** - analyze the component for style issues
51
66
  - **Copy fix prompt** - paste into Cursor agent for automatic fixes
52
67
 
53
- ### Props
68
+ ### Web Component Attributes
54
69
 
55
- | Prop | Type | Default | Description |
56
- | --------- | --------- | ------- | --------------------- |
57
- | `enabled` | `boolean` | `true` | Enable/disable UILint |
70
+ | Attribute | Type | Default | Description |
71
+ | ---------- | --------- | --------------- | ------------------------------------- |
72
+ | `enabled` | `string` | `"true"` | Enable/disable UILint ("true"/"false")|
73
+ | `position` | `string` | `"bottom-left"` | Toolbar position |
74
+ | `theme` | `string` | `"system"` | Theme ("light", "dark", "system") |
58
75
 
59
76
  ### API Routes
60
77
 
@@ -103,30 +120,17 @@ test("custom adapter usage", async () => {
103
120
 
104
121
  ## API
105
122
 
106
- ### UILintProvider
107
-
108
- ```tsx
109
- interface UILintProviderProps {
110
- enabled?: boolean;
111
- children: React.ReactNode;
112
- }
123
+ ### Zustand Store (Direct Access)
113
124
 
114
- function UILintProvider(props: UILintProviderProps): JSX.Element;
115
- ```
116
-
117
- ### useUILintContext
125
+ For advanced use cases, you can access the UILint state directly via the Zustand store:
118
126
 
119
127
  ```tsx
120
- function useUILintContext(): UILintContextValue;
121
-
122
- interface UILintContextValue {
123
- settings: UILintSettings;
124
- updateSettings: (settings: Partial<UILintSettings>) => void;
125
- altKeyHeld: boolean;
126
- locatorTarget: LocatorTarget | null;
127
- inspectedElement: InspectedElement | null;
128
- setInspectedElement: (element: InspectedElement | null) => void;
129
- // ... additional context values
128
+ import { useUILintStore } from "uilint-react";
129
+
130
+ function MyComponent() {
131
+ const settings = useUILintStore((s) => s.settings);
132
+ const inspectedElement = useUILintStore((s) => s.inspectedElement);
133
+ // ... use store state
130
134
  }
131
135
  ```
132
136
 
package/dist/DevTool.d.ts CHANGED
@@ -4,8 +4,8 @@ export type DevToolProps = {
4
4
  /**
5
5
  * Main devtool React root.
6
6
  *
7
- * NOTE: UILintProvider is responsible for rendering the actual UI (toolbar, panels)
8
- * via portals, so this component renders no visible children itself.
7
+ * Handles all UILint functionality including event handlers,
8
+ * WebSocket connection, auto-scans, and UI rendering.
9
9
  */
10
- export declare function DevTool({ enabled }: DevToolProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function DevTool({ enabled }: DevToolProps): import("react/jsx-runtime").JSX.Element | null;
11
11
  //# sourceMappingURL=DevTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DevTool.d.ts","sourceRoot":"","sources":["../src/DevTool.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EAAE,OAAc,EAAE,EAAE,YAAY,2CAMvD"}
1
+ {"version":3,"file":"DevTool.d.ts","sourceRoot":"","sources":["../src/DevTool.tsx"],"names":[],"mappings":"AA2BA,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AASF;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EAAE,OAAc,EAAE,EAAE,YAAY,kDAsFvD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ElementBadges.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/ElementBadges.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAoD,MAAM,OAAO,CAAC;AAkJzE;;GAEG;AACH,wBAAgB,aAAa,6BA4O5B"}
1
+ {"version":3,"file":"ElementBadges.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/ElementBadges.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAoD,MAAM,OAAO,CAAC;AAiJzE;;GAEG;AACH,wBAAgB,aAAa,6BAiP5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"InspectionPanel.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/InspectionPanel.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAMN,MAAM,OAAO,CAAC;AAgCf;;GAEG;AACH,wBAAgB,eAAe,6BAgX9B"}
1
+ {"version":3,"file":"InspectionPanel.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/InspectionPanel.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAMN,MAAM,OAAO,CAAC;AA+Bf;;GAEG;AACH,wBAAgB,eAAe,6BAoX9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"LocatorOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/LocatorOverlay.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAuC,MAAM,OAAO,CAAC;AAgB5D;;GAEG;AACH,wBAAgB,cAAc,6BA6D7B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,6BA+DnC;AA6DD;;GAEG;AACH,wBAAgB,yBAAyB,6BA4ExC"}
1
+ {"version":3,"file":"LocatorOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/LocatorOverlay.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAuC,MAAM,OAAO,CAAC;AAe5D;;GAEG;AACH,wBAAgB,cAAc,6BA6D7B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,6BA+DnC;AA6DD;;GAEG;AACH,wBAAgB,yBAAyB,6BA8ExC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScanResultsPopover.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/ScanResultsPopover.tsx"],"names":[],"mappings":"AAsDA,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,uBAAuB,2CA+VtE"}
1
+ {"version":3,"file":"ScanResultsPopover.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/ScanResultsPopover.tsx"],"names":[],"mappings":"AAqDA,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,uBAAuB,2CA8VtE"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * UI components rendered when UILint is active
3
+ */
4
+ export declare function UILintUI(): import("react/jsx-runtime").JSX.Element | null;
5
+ //# sourceMappingURL=UILintUI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UILintUI.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/UILintUI.tsx"],"names":[],"mappings":"AAUA;;GAEG;AACH,wBAAgB,QAAQ,mDAuEvB"}
@@ -0,0 +1,4 @@
1
+ export { useDevToolEventHandlers } from './useDevToolEventHandlers';
2
+ export { useNavigationDetection } from './useNavigationDetection';
3
+ export { useAutoScans } from './useAutoScans';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Hook for auto-scan initialization and navigation detection
3
+ */
4
+ export declare function useAutoScans(enabled: boolean, isMounted: boolean): void;
5
+ //# sourceMappingURL=useAutoScans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAutoScans.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/hooks/useAutoScans.ts"],"names":[],"mappings":"AAkBA;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,QAoHhE"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Hook for Alt key, mouse tracking, and escape key handling
3
+ */
4
+ export declare function useDevToolEventHandlers(enabled: boolean): void;
5
+ //# sourceMappingURL=useDevToolEventHandlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDevToolEventHandlers.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/hooks/useDevToolEventHandlers.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,QA6KvD"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Hook to detect navigation changes
3
+ * Monitors pathname changes and fires callback with debounce
4
+ */
5
+ export declare function useNavigationDetection(enabled: boolean, onNavigate: (route: string, previousRoute: string | null) => void): void;
6
+ //# sourceMappingURL=useNavigationDetection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNavigationDetection.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/hooks/useNavigationDetection.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,QAwDlE"}
@@ -4,7 +4,6 @@
4
4
  * A dev overlay for inspecting React components and analyzing code with LLM.
5
5
  * Use Alt+Click on any element to open the inspector sidebar.
6
6
  */
7
- export { UILintProvider, useUILintContext } from './UILintProvider';
8
7
  export { useUILintStore } from './store';
9
8
  export type { UILintStore } from './store';
10
9
  export { UILintToolbar } from './toolbar';
@@ -16,7 +15,7 @@ export { ScreenshotViewer } from './ScreenshotViewer';
16
15
  export { scanDOMForSources, groupBySourceFile, cleanupDataAttributes, getElementById, updateElementRects, buildEditorUrl, isNodeModulesPath, getDisplayName, getSourceFromDataLoc, } from './dom-utils';
17
16
  export { useDOMObserver, getDataLocElementCount } from './useDOMObserver';
18
17
  export { fetchSource, fetchSourceWithContext, clearSourceCache, getCachedSource, prefetchSources, } from './source-fetcher';
19
- export type { SourceLocation, ScannedElement, SourceFile, UILintSettings, UILintContextValue, UILintProviderProps, SourceApiResponse, CachedSource, LocatorTarget, InspectedElement, VisionIssue, VisionAnalysisResult, ElementManifest, } from './types';
18
+ export type { SourceLocation, ScannedElement, SourceFile, UILintSettings, SourceApiResponse, CachedSource, LocatorTarget, InspectedElement, VisionIssue, VisionAnalysisResult, ElementManifest, } from './types';
20
19
  export { FILE_COLORS, DEFAULT_SETTINGS, DATA_UILINT_ID } from './types';
21
20
  export { collectElementManifest, captureScreenshot, getCurrentRoute, matchIssuesToManifest, } from '../../scanner/vision-capture';
22
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG1E,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,eAAe,GAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGxE,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,GACtB,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG1E,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,eAAe,GAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGxE,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,GACtB,MAAM,8BAA8B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { UILintSettings, LocatorTarget, InspectedElement, AutoScanState, ElementIssue, ScannedElement, ESLintIssue } from './types';
1
+ import { UILintSettings, LocatorTarget, InspectedElement, AutoScanState, ElementIssue, ScannedElement, ESLintIssue, AutoScanSettings, ScreenshotCapture } from './types';
2
2
  import { VisionIssue, VisionAnalysisResult } from '../../scanner/vision-capture';
3
3
  type VisionStage = "capture" | "manifest" | "ws" | "vision";
4
4
  export type VisionErrorInfo = {
@@ -53,6 +53,13 @@ type ServerMessage = LintResultMessage | LintProgressMessage | FileChangedMessag
53
53
  export interface UILintStore {
54
54
  settings: UILintSettings;
55
55
  updateSettings: (partial: Partial<UILintSettings>) => void;
56
+ /** Auto-scan settings (persisted to localStorage) */
57
+ autoScanSettings: AutoScanSettings;
58
+ /** Update auto-scan settings (persists to localStorage) */
59
+ updateAutoScanSettings: (partial: Partial<{
60
+ eslint: Partial<AutoScanSettings["eslint"]>;
61
+ vision: Partial<AutoScanSettings["vision"]>;
62
+ }>) => void;
56
63
  altKeyHeld: boolean;
57
64
  setAltKeyHeld: (held: boolean) => void;
58
65
  locatorTarget: LocatorTarget | null;
@@ -126,11 +133,10 @@ export interface UILintStore {
126
133
  visionResult: VisionAnalysisResult | null;
127
134
  /** Vision issues cache by route */
128
135
  visionIssuesCache: Map<string, VisionIssue[]>;
129
- /** Screenshot history (route -> data URL) */
130
- screenshotHistory: Map<string, {
131
- dataUrl: string;
132
- timestamp: number;
133
- }>;
136
+ /** Screenshot gallery - captures with unique IDs, supports both full-page and region */
137
+ screenshotHistory: Map<string, ScreenshotCapture>;
138
+ /** Currently selected screenshot ID for gallery display */
139
+ selectedScreenshotId: string | null;
134
140
  /** Current route being analyzed or last analyzed */
135
141
  visionCurrentRoute: string | null;
136
142
  /** Highlighted vision issue element ID (for click-to-highlight) */
@@ -181,6 +187,12 @@ export interface UILintStore {
181
187
  width: number;
182
188
  height: number;
183
189
  } | null) => void;
190
+ /** Set selected screenshot ID for gallery display */
191
+ setSelectedScreenshotId: (id: string | null) => void;
192
+ /** Whether persisted screenshots are being loaded */
193
+ loadingPersistedScreenshots: boolean;
194
+ /** Fetch persisted screenshots from disk (via API) */
195
+ fetchPersistedScreenshots: () => Promise<void>;
184
196
  _setScanState: (state: Partial<AutoScanState>) => void;
185
197
  _runScanLoop: (elements: ScannedElement[]) => Promise<void>;
186
198
  _handleWsMessage: (data: ServerMessage) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/store.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,10 @@ export declare const Icons: {
24
24
  Grid: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
25
25
  Contrast: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
26
26
  AlertCircle: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
27
+ CheckCircle: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
28
+ Image: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
29
+ ChevronLeft: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
30
+ Plus: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
27
31
  };
28
32
  export {};
29
33
  //# sourceMappingURL=icons.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/toolbar/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,SAAU,SAAQ,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;CAAG;AAE5D;;GAEG;AACH,eAAO,MAAM,KAAK;iBACH,SAAS;sBAgBJ,SAAS;mBAgBZ,SAAS;2BAeD,SAAS;yBAiBX,SAAS;eAenB,SAAS;oBAgBJ,SAAS;kBAmBX,SAAS;oBAmBP,SAAS;kBAgBX,SAAS;qBAgBN,SAAS;kBAgBZ,SAAS;oBAeP,SAAS;kBAiBX,SAAS;qBAiBN,SAAS;uBAeP,SAAS;kBAkBd,SAAS;sBAkBL,SAAS;yBAgBN,SAAS;CAiB/B,CAAC"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/toolbar/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,SAAU,SAAQ,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;CAAG;AAE5D;;GAEG;AACH,eAAO,MAAM,KAAK;iBACH,SAAS;sBAgBJ,SAAS;mBAgBZ,SAAS;2BAeD,SAAS;yBAiBX,SAAS;eAenB,SAAS;oBAgBJ,SAAS;kBAmBX,SAAS;oBAmBP,SAAS;kBAgBX,SAAS;qBAgBN,SAAS;kBAgBZ,SAAS;oBAeP,SAAS;kBAiBX,SAAS;qBAiBN,SAAS;uBAeP,SAAS;kBAkBd,SAAS;sBAkBL,SAAS;yBAgBN,SAAS;yBAiBT,SAAS;mBAgBf,SAAS;yBAiBH,SAAS;kBAehB,SAAS;CAgBxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/toolbar/index.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AASxE,wBAAgB,aAAa,6BA2J5B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/toolbar/index.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAQxE,wBAAgB,aAAa,6BA6J5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigureTab.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui-lint/toolbar/tabs/ConfigureTab.tsx"],"names":[],"mappings":"AAQA,wBAAgB,YAAY,4CA+F3B"}
1
+ {"version":3,"file":"ConfigureTab.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui-lint/toolbar/tabs/ConfigureTab.tsx"],"names":[],"mappings":"AAgFA,wBAAgB,YAAY,4CA+I3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ESLintTab.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui-lint/toolbar/tabs/ESLintTab.tsx"],"names":[],"mappings":"AAuCA,wBAAgB,SAAS,4CAkOxB"}
1
+ {"version":3,"file":"ESLintTab.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui-lint/toolbar/tabs/ESLintTab.tsx"],"names":[],"mappings":"AAsCA,wBAAgB,SAAS,4CAuOxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"VisionTab.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui-lint/toolbar/tabs/VisionTab.tsx"],"names":[],"mappings":"AA+CA,wBAAgB,SAAS,4CAiLxB"}
1
+ {"version":3,"file":"VisionTab.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui-lint/toolbar/tabs/VisionTab.tsx"],"names":[],"mappings":"AA6fA,wBAAgB,SAAS,4CA2HxB"}
@@ -1,6 +1,4 @@
1
- /**
2
- * Types for UILint Source Visualization
3
- */
1
+ import { VisionIssue } from '../../scanner/vision-capture';
4
2
  /**
5
3
  * Source location from data-loc attribute
6
4
  */
@@ -42,6 +40,85 @@ export interface UILintSettings {
42
40
  hideNodeModules: boolean;
43
41
  autoScanEnabled: boolean;
44
42
  }
43
+ /**
44
+ * Auto-scan settings for ESLint and Vision analysis
45
+ * Persisted to localStorage
46
+ */
47
+ export interface AutoScanSettings {
48
+ eslint: {
49
+ /** Auto-scan when page first loads */
50
+ onPageLoad: boolean;
51
+ /** Re-scan when files change (existing behavior) */
52
+ onFileChange: boolean;
53
+ };
54
+ vision: {
55
+ /** Auto-capture and analyze on route change */
56
+ onRouteChange: boolean;
57
+ /** Auto-capture and analyze on initial page load */
58
+ onInitialLoad: boolean;
59
+ };
60
+ }
61
+ /**
62
+ * Default auto-scan settings
63
+ */
64
+ export declare const DEFAULT_AUTO_SCAN_SETTINGS: AutoScanSettings;
65
+ /**
66
+ * Screenshot capture entry for the gallery
67
+ */
68
+ export interface ScreenshotCapture {
69
+ /** Unique ID for this capture */
70
+ id: string;
71
+ /** Route where the capture was taken */
72
+ route: string;
73
+ /** Base64 data URL of the screenshot (for in-memory captures) */
74
+ dataUrl?: string;
75
+ /** Filename for persisted screenshots (used to fetch from API) */
76
+ filename?: string;
77
+ /** Unix timestamp when captured */
78
+ timestamp: number;
79
+ /** Type of capture */
80
+ type: "full" | "region";
81
+ /** Region bounds if type is 'region' */
82
+ region?: {
83
+ x: number;
84
+ y: number;
85
+ width: number;
86
+ height: number;
87
+ };
88
+ /** Whether this is a persisted screenshot loaded from disk */
89
+ persisted?: boolean;
90
+ /** Vision issues specific to this capture */
91
+ issues?: VisionIssue[];
92
+ }
93
+ /**
94
+ * Persisted screenshot metadata from the API
95
+ */
96
+ export interface PersistedScreenshotMetadata {
97
+ filename: string;
98
+ timestamp: number;
99
+ screenshotFile: string;
100
+ route: string | null;
101
+ issues: VisionIssue[] | null;
102
+ manifest: unknown | null;
103
+ analysisResult: {
104
+ route: string;
105
+ timestamp: number;
106
+ issues: VisionIssue[];
107
+ analysisTime: number;
108
+ error?: string;
109
+ } | null;
110
+ }
111
+ /**
112
+ * API response for listing screenshots
113
+ */
114
+ export interface ScreenshotListResponse {
115
+ screenshots: Array<{
116
+ filename: string;
117
+ metadata: PersistedScreenshotMetadata | null;
118
+ }>;
119
+ projectRoot: string;
120
+ screenshotsDir: string;
121
+ }
45
122
  /**
46
123
  * State for the auto-scan feature
47
124
  */
@@ -100,38 +177,6 @@ export interface FileIssue {
100
177
  filePath: string;
101
178
  issues: ESLintIssue[];
102
179
  }
103
- /**
104
- * Context value provided by UILintProvider
105
- */
106
- export interface UILintContextValue {
107
- settings: UILintSettings;
108
- updateSettings: (settings: Partial<UILintSettings>) => void;
109
- /** True when Alt/Option key is held down */
110
- altKeyHeld: boolean;
111
- /** Current element under cursor when Alt is held */
112
- locatorTarget: LocatorTarget | null;
113
- /** Element currently being inspected in sidebar */
114
- inspectedElement: InspectedElement | null;
115
- /** Set the element to inspect (opens sidebar) */
116
- setInspectedElement: (element: InspectedElement | null) => void;
117
- /** Whether live scanning is enabled */
118
- liveScanEnabled: boolean;
119
- /** Auto-scan state (for progress tracking) */
120
- autoScanState: AutoScanState;
121
- /** Cache of element issues from scanning */
122
- elementIssuesCache: Map<string, ElementIssue>;
123
- /** Enable live scanning */
124
- enableLiveScan: () => void;
125
- /** Disable live scanning */
126
- disableLiveScan: () => void;
127
- }
128
- /**
129
- * Props for the UILintProvider component
130
- */
131
- export interface UILintProviderProps {
132
- children: React.ReactNode;
133
- enabled?: boolean;
134
- }
135
180
  /**
136
181
  * Response from the source API
137
182
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Type declarations for the <uilint-devtools> custom element.
3
+ *
4
+ * This extends React.JSX.IntrinsicElements to allow using the web component in TSX.
5
+ * Works with React 19 and Next.js.
6
+ */
7
+
8
+ import type { DetailedHTMLProps, HTMLAttributes } from "react";
9
+
10
+ declare global {
11
+ namespace React {
12
+ namespace JSX {
13
+ interface IntrinsicElements {
14
+ "uilint-devtools": DetailedHTMLProps<
15
+ HTMLAttributes<HTMLElement> & {
16
+ enabled?: string;
17
+ position?:
18
+ | "bottom-left"
19
+ | "bottom-right"
20
+ | "top-left"
21
+ | "top-right";
22
+ theme?: "light" | "dark" | "system";
23
+ },
24
+ HTMLElement
25
+ >;
26
+ }
27
+ }
28
+ }
29
+ }
30
+
31
+ export {};