uilint-react 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DevTool.d.ts +11 -0
- package/dist/DevTool.d.ts.map +1 -0
- package/dist/ElementBadges-BNRIjtRW.js +672 -0
- package/dist/ElementBadges-BNRIjtRW.js.map +1 -0
- package/dist/VisionIssueBadge-C6vfwtec.js +154 -0
- package/dist/VisionIssueBadge-C6vfwtec.js.map +1 -0
- package/dist/components/Highlighter.d.ts +6 -0
- package/dist/components/Highlighter.d.ts.map +1 -0
- package/dist/components/ui-lint/ElementBadges.d.ts +6 -0
- package/dist/components/ui-lint/ElementBadges.d.ts.map +1 -0
- package/dist/components/ui-lint/InspectionPanel.d.ts +6 -0
- package/dist/components/ui-lint/InspectionPanel.d.ts.map +1 -0
- package/dist/components/ui-lint/LocatorOverlay.d.ts +14 -0
- package/dist/components/ui-lint/LocatorOverlay.d.ts.map +1 -0
- package/dist/components/ui-lint/RegionSelector.d.ts +18 -0
- package/dist/components/ui-lint/RegionSelector.d.ts.map +1 -0
- package/dist/components/ui-lint/ScanResultsPopover.d.ts +6 -0
- package/dist/components/ui-lint/ScanResultsPopover.d.ts.map +1 -0
- package/dist/components/ui-lint/ScreenshotViewer.d.ts +11 -0
- package/dist/components/ui-lint/ScreenshotViewer.d.ts.map +1 -0
- package/dist/components/ui-lint/UILintProvider.d.ts +11 -0
- package/dist/components/ui-lint/UILintProvider.d.ts.map +1 -0
- package/dist/components/ui-lint/VisionIssueBadge.d.ts +6 -0
- package/dist/components/ui-lint/VisionIssueBadge.d.ts.map +1 -0
- package/dist/components/ui-lint/VisionIssuesPanel.d.ts +12 -0
- package/dist/components/ui-lint/VisionIssuesPanel.d.ts.map +1 -0
- package/dist/components/ui-lint/badge-layout.d.ts +91 -0
- package/dist/components/ui-lint/badge-layout.d.ts.map +1 -0
- package/dist/components/ui-lint/code-formatting.d.ts +14 -0
- package/dist/components/ui-lint/code-formatting.d.ts.map +1 -0
- package/dist/components/ui-lint/dom-utils.d.ts +43 -0
- package/dist/components/ui-lint/dom-utils.d.ts.map +1 -0
- package/dist/components/ui-lint/index.d.ts +22 -0
- package/dist/components/ui-lint/index.d.ts.map +1 -0
- package/dist/components/ui-lint/inspection-panel-positioning.d.ts +41 -0
- package/dist/components/ui-lint/inspection-panel-positioning.d.ts.map +1 -0
- package/dist/components/ui-lint/portal-host.d.ts +3 -0
- package/dist/components/ui-lint/portal-host.d.ts.map +1 -0
- package/dist/components/ui-lint/scan-results/FileTree.d.ts +25 -0
- package/dist/components/ui-lint/scan-results/FileTree.d.ts.map +1 -0
- package/dist/components/ui-lint/scan-results/IssueRow.d.ts +16 -0
- package/dist/components/ui-lint/scan-results/IssueRow.d.ts.map +1 -0
- package/dist/components/ui-lint/scan-results/SearchFilter.d.ts +8 -0
- package/dist/components/ui-lint/scan-results/SearchFilter.d.ts.map +1 -0
- package/dist/components/ui-lint/source-fetcher.d.ts +40 -0
- package/dist/components/ui-lint/source-fetcher.d.ts.map +1 -0
- package/dist/components/ui-lint/store.d.ts +194 -0
- package/dist/components/ui-lint/store.d.ts.map +1 -0
- package/dist/components/ui-lint/toolbar/TabbedToolbar.d.ts +2 -0
- package/dist/components/ui-lint/toolbar/TabbedToolbar.d.ts.map +1 -0
- package/dist/components/ui-lint/toolbar/icons.d.ts +29 -0
- package/dist/components/ui-lint/toolbar/icons.d.ts.map +1 -0
- package/dist/components/ui-lint/toolbar/index.d.ts +3 -0
- package/dist/components/ui-lint/toolbar/index.d.ts.map +1 -0
- package/dist/components/ui-lint/toolbar/tabs/ConfigureTab.d.ts +2 -0
- package/dist/components/ui-lint/toolbar/tabs/ConfigureTab.d.ts.map +1 -0
- package/dist/components/ui-lint/toolbar/tabs/ESLintTab.d.ts +2 -0
- package/dist/components/ui-lint/toolbar/tabs/ESLintTab.d.ts.map +1 -0
- package/dist/components/ui-lint/toolbar/tabs/VisionTab.d.ts +2 -0
- package/dist/components/ui-lint/toolbar/tabs/VisionTab.d.ts.map +1 -0
- package/dist/components/ui-lint/toolbar/tokens.d.ts +45 -0
- package/dist/components/ui-lint/toolbar/tokens.d.ts.map +1 -0
- package/dist/components/ui-lint/types.d.ts +170 -0
- package/dist/components/ui-lint/types.d.ts.map +1 -0
- package/dist/components/ui-lint/useDOMObserver.d.ts +11 -0
- package/dist/components/ui-lint/useDOMObserver.d.ts.map +1 -0
- package/dist/components/ui-lint/visibility-utils.d.ts +41 -0
- package/dist/components/ui-lint/visibility-utils.d.ts.map +1 -0
- package/dist/consistency/highlights.d.ts +14 -0
- package/dist/consistency/highlights.d.ts.map +1 -0
- package/dist/consistency/index.d.ts +7 -0
- package/dist/consistency/index.d.ts.map +1 -0
- package/dist/consistency/snapshot.d.ts +14 -0
- package/dist/consistency/snapshot.d.ts.map +1 -0
- package/dist/consistency/types.d.ts +5 -0
- package/dist/consistency/types.d.ts.map +1 -0
- package/dist/devtools.d.ts +8 -0
- package/dist/devtools.d.ts.map +1 -0
- package/dist/devtools.js +259 -0
- package/dist/devtools.js.map +1 -0
- package/dist/environment-DVxa60C6.js +26 -0
- package/dist/environment-DVxa60C6.js.map +1 -0
- package/dist/index-BGzkrD0y.js +12304 -0
- package/dist/index-BGzkrD0y.js.map +1 -0
- package/dist/index-L3Zm-CoX.js +513 -0
- package/dist/index-L3Zm-CoX.js.map +1 -0
- package/dist/index.d.ts +13 -339
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -482
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +11 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/node.d.ts +7 -38
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +32 -79
- package/dist/node.js.map +1 -0
- package/dist/scanner/dom-scanner.d.ts +7 -0
- package/dist/scanner/dom-scanner.d.ts.map +1 -0
- package/dist/scanner/environment.d.ts +16 -0
- package/dist/scanner/environment.d.ts.map +1 -0
- package/dist/scanner/jsdom-adapter.d.ts +30 -0
- package/dist/scanner/jsdom-adapter.d.ts.map +1 -0
- package/dist/scanner/vision-capture.d.ts +131 -0
- package/dist/scanner/vision-capture.d.ts.map +1 -0
- package/dist/styles/inject-styles.d.ts +2 -0
- package/dist/styles/inject-styles.d.ts.map +1 -0
- package/dist/vision-capture-EIrYA_XF.js +216 -0
- package/dist/vision-capture-EIrYA_XF.js.map +1 -0
- package/dist/web-component.d.ts +2 -0
- package/dist/web-component.d.ts.map +1 -0
- package/package.json +36 -7
- package/dist/ElementBadges-2CTPMJ6L.js +0 -825
- package/dist/InspectionPanel-NXSE7CMH.js +0 -10
- package/dist/LocatorOverlay-3TKK74BD.js +0 -11
- package/dist/UILintToolbar-CLVXQHCZ.js +0 -10
- package/dist/chunk-552GIJIQ.js +0 -1109
- package/dist/chunk-K46BWHFU.js +0 -271
- package/dist/chunk-KKNPFLL2.js +0 -1853
- package/dist/chunk-S4IWHBOQ.js +0 -178
- package/dist/chunk-Z4AAGFIN.js +0 -933
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-utils.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/dom-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAiC1E;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAsC5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AA0BD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,GAAE,OAAuB,EAC7B,eAAe,GAAE,OAAc,GAC9B,cAAc,EAAE,CA2ClB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CA6B1E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAEzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,cAAc,EAAE,GACzB,cAAc,EAAE,CAKlB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,GAAE,QAAQ,GAAG,QAAmB,EACtC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAC5B,MAAM,CAuBR"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UILint Source Visualization Components
|
|
3
|
+
*
|
|
4
|
+
* A dev overlay for inspecting React components and analyzing code with LLM.
|
|
5
|
+
* Use Alt+Click on any element to open the inspector sidebar.
|
|
6
|
+
*/
|
|
7
|
+
export { UILintProvider, useUILintContext } from './UILintProvider';
|
|
8
|
+
export { useUILintStore } from './store';
|
|
9
|
+
export type { UILintStore } from './store';
|
|
10
|
+
export { UILintToolbar } from './toolbar';
|
|
11
|
+
export { InspectionPanel } from './InspectionPanel';
|
|
12
|
+
export { LocatorOverlay } from './LocatorOverlay';
|
|
13
|
+
export { VisionIssueBadges } from './VisionIssueBadge';
|
|
14
|
+
export { VisionIssuesPanel } from './VisionIssuesPanel';
|
|
15
|
+
export { ScreenshotViewer } from './ScreenshotViewer';
|
|
16
|
+
export { scanDOMForSources, groupBySourceFile, cleanupDataAttributes, getElementById, updateElementRects, buildEditorUrl, isNodeModulesPath, getDisplayName, getSourceFromDataLoc, } from './dom-utils';
|
|
17
|
+
export { useDOMObserver, getDataLocElementCount } from './useDOMObserver';
|
|
18
|
+
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';
|
|
20
|
+
export { FILE_COLORS, DEFAULT_SETTINGS, DATA_UILINT_ID } from './types';
|
|
21
|
+
export { collectElementManifest, captureScreenshot, getCurrentRoute, matchIssuesToManifest, } from '../../scanner/vision-capture';
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export type RectLike = {
|
|
2
|
+
top: number;
|
|
3
|
+
left: number;
|
|
4
|
+
right: number;
|
|
5
|
+
bottom: number;
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
};
|
|
9
|
+
export type Size = {
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
};
|
|
13
|
+
export type Viewport = {
|
|
14
|
+
width: number;
|
|
15
|
+
height: number;
|
|
16
|
+
};
|
|
17
|
+
export type PopoverPosition = {
|
|
18
|
+
top: number;
|
|
19
|
+
left: number;
|
|
20
|
+
placement: "right" | "left" | "bottom" | "top";
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Compute a robust popover position anchored to the element's badge area.
|
|
24
|
+
*
|
|
25
|
+
* Strategy:
|
|
26
|
+
* - Treat the badge anchor as (rect.right, rect.top)
|
|
27
|
+
* - Evaluate 4 placements (right/left/bottom/top)
|
|
28
|
+
* - Clamp each candidate into the viewport (with padding)
|
|
29
|
+
* - Pick the candidate with the lowest overflow; tie-break by closeness to badge
|
|
30
|
+
*
|
|
31
|
+
* Note: The popover is constrained to the browser viewport, NOT to modal boundaries.
|
|
32
|
+
* If an element is inside a modal, the popover can extend beyond the modal's edges
|
|
33
|
+
* as long as it stays within the viewport.
|
|
34
|
+
*/
|
|
35
|
+
export declare function computeInspectionPanelPosition(params: {
|
|
36
|
+
rect: RectLike;
|
|
37
|
+
popover: Size;
|
|
38
|
+
viewport: Viewport;
|
|
39
|
+
padding?: number;
|
|
40
|
+
}): PopoverPosition;
|
|
41
|
+
//# sourceMappingURL=inspection-panel-positioning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspection-panel-positioning.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/inspection-panel-positioning.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACrD,MAAM,MAAM,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CAChD,CAAC;AAsCF;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE;IACrD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,eAAe,CAuFlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-host.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/portal-host.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD,wBAAgB,mBAAmB,IAAI,WAAW,CAOjD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ScannedElement, ESLintIssue } from '../types';
|
|
2
|
+
export interface FileWithIssues {
|
|
3
|
+
path: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
disambiguatedName: string;
|
|
6
|
+
issueCount: number;
|
|
7
|
+
elementsWithIssues: ElementWithIssues[];
|
|
8
|
+
fileLevelIssues: ESLintIssue[];
|
|
9
|
+
}
|
|
10
|
+
export interface ElementWithIssues {
|
|
11
|
+
element: ScannedElement;
|
|
12
|
+
issueCount: number;
|
|
13
|
+
ruleIds: string[];
|
|
14
|
+
}
|
|
15
|
+
interface FileTreeProps {
|
|
16
|
+
files: FileWithIssues[];
|
|
17
|
+
expandedFiles: Set<string>;
|
|
18
|
+
onToggleFile: (path: string) => void;
|
|
19
|
+
onElementHover: (element: ScannedElement | null) => void;
|
|
20
|
+
onElementClick: (element: ScannedElement) => void;
|
|
21
|
+
onFileLevelIssueClick: (filePath: string, issue: ESLintIssue) => void;
|
|
22
|
+
}
|
|
23
|
+
export declare function FileTree({ files, expandedFiles, onToggleFile, onElementHover, onElementClick, onFileLevelIssueClick, }: FileTreeProps): import("react/jsx-runtime").JSX.Element | null;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=FileTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileTree.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/scan-results/FileTree.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,eAAe,EAAE,WAAW,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,cAAc,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACzD,cAAc,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACvE;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,aAAa,EACb,YAAY,EACZ,cAAc,EACd,cAAc,EACd,qBAAqB,GACtB,EAAE,aAAa,kDAwFf"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ScannedElement, ESLintIssue } from '../types';
|
|
2
|
+
interface IssueRowProps {
|
|
3
|
+
element?: ScannedElement;
|
|
4
|
+
issue?: ESLintIssue;
|
|
5
|
+
issueCount: number;
|
|
6
|
+
tagName: string;
|
|
7
|
+
lineNumber: number;
|
|
8
|
+
columnNumber?: number;
|
|
9
|
+
onHover?: (element: ScannedElement | null) => void;
|
|
10
|
+
onClick?: (element: ScannedElement) => void;
|
|
11
|
+
onFileLevelIssueClick?: () => void;
|
|
12
|
+
isFileLevel?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function IssueRow({ element, issue, issueCount, tagName, lineNumber, columnNumber, onHover, onClick, onFileLevelIssueClick, isFileLevel, }: IssueRowProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=IssueRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueRow.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/scan-results/IssueRow.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5D,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,KAAK,EACL,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAY,EACZ,OAAO,EACP,OAAO,EACP,qBAAqB,EACrB,WAAmB,GACpB,EAAE,aAAa,2CA8Cf"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface SearchFilterProps {
|
|
2
|
+
value: string;
|
|
3
|
+
onChange: (value: string) => void;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function SearchFilter({ value, onChange, placeholder, }: SearchFilterProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=SearchFilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/scan-results/SearchFilter.tsx"],"names":[],"mappings":"AAgBA,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,WAAwC,GACzC,EAAE,iBAAiB,2CA6CnB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { SourceApiResponse, SourceLocation } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Fetch source code for a file
|
|
4
|
+
*/
|
|
5
|
+
export declare function fetchSource(filePath: string): Promise<SourceApiResponse | null>;
|
|
6
|
+
/**
|
|
7
|
+
* Fetch source and extract lines around a specific location
|
|
8
|
+
*/
|
|
9
|
+
export declare function fetchSourceWithContext(source: SourceLocation, contextLines?: number): Promise<{
|
|
10
|
+
lines: string[];
|
|
11
|
+
startLine: number;
|
|
12
|
+
highlightLine: number;
|
|
13
|
+
relativePath: string;
|
|
14
|
+
} | null>;
|
|
15
|
+
/**
|
|
16
|
+
* Fetch source and extract an asymmetric window around a specific location.
|
|
17
|
+
* This supports expanding above/below independently in the UI.
|
|
18
|
+
*/
|
|
19
|
+
export declare function fetchSourceWithWindow(source: SourceLocation, window: {
|
|
20
|
+
linesAbove: number;
|
|
21
|
+
linesBelow: number;
|
|
22
|
+
}): Promise<{
|
|
23
|
+
lines: string[];
|
|
24
|
+
startLine: number;
|
|
25
|
+
highlightLine: number;
|
|
26
|
+
relativePath: string;
|
|
27
|
+
} | null>;
|
|
28
|
+
/**
|
|
29
|
+
* Clear the source cache
|
|
30
|
+
*/
|
|
31
|
+
export declare function clearSourceCache(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Get cached source without fetching
|
|
34
|
+
*/
|
|
35
|
+
export declare function getCachedSource(filePath: string): SourceApiResponse | null;
|
|
36
|
+
/**
|
|
37
|
+
* Prefetch source files for a list of paths
|
|
38
|
+
*/
|
|
39
|
+
export declare function prefetchSources(filePaths: string[]): Promise<void>;
|
|
40
|
+
//# sourceMappingURL=source-fetcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-fetcher.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/source-fetcher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAgB,cAAc,EAAE,MAAM,SAAS,CAAC;AAa/E;;GAEG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAiCnC;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,cAAc,EACtB,YAAY,GAAE,MAAU,GACvB,OAAO,CAAC;IACT,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,IAAI,CAAC,CAeR;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAAC;IACT,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,IAAI,CAAC,CAkBR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAW1E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxE"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { UILintSettings, LocatorTarget, InspectedElement, AutoScanState, ElementIssue, ScannedElement, ESLintIssue } from './types';
|
|
2
|
+
import { VisionIssue, VisionAnalysisResult } from '../../scanner/vision-capture';
|
|
3
|
+
type VisionStage = "capture" | "manifest" | "ws" | "vision";
|
|
4
|
+
export type VisionErrorInfo = {
|
|
5
|
+
stage: VisionStage;
|
|
6
|
+
message: string;
|
|
7
|
+
route: string;
|
|
8
|
+
timestamp: number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* WebSocket message types (server -> client)
|
|
12
|
+
*/
|
|
13
|
+
interface LintResultMessage {
|
|
14
|
+
type: "lint:result";
|
|
15
|
+
filePath: string;
|
|
16
|
+
issues: ESLintIssue[];
|
|
17
|
+
requestId?: string;
|
|
18
|
+
}
|
|
19
|
+
interface LintProgressMessage {
|
|
20
|
+
type: "lint:progress";
|
|
21
|
+
filePath: string;
|
|
22
|
+
phase: string;
|
|
23
|
+
requestId?: string;
|
|
24
|
+
}
|
|
25
|
+
interface FileChangedMessage {
|
|
26
|
+
type: "file:changed";
|
|
27
|
+
filePath: string;
|
|
28
|
+
}
|
|
29
|
+
interface WorkspaceInfoMessage {
|
|
30
|
+
type: "workspace:info";
|
|
31
|
+
appRoot: string;
|
|
32
|
+
workspaceRoot: string;
|
|
33
|
+
serverCwd: string;
|
|
34
|
+
}
|
|
35
|
+
interface VisionResultMessage {
|
|
36
|
+
type: "vision:result";
|
|
37
|
+
route: string;
|
|
38
|
+
issues: VisionIssue[];
|
|
39
|
+
analysisTime: number;
|
|
40
|
+
error?: string;
|
|
41
|
+
requestId?: string;
|
|
42
|
+
}
|
|
43
|
+
interface VisionProgressMessage {
|
|
44
|
+
type: "vision:progress";
|
|
45
|
+
route: string;
|
|
46
|
+
phase: string;
|
|
47
|
+
requestId?: string;
|
|
48
|
+
}
|
|
49
|
+
type ServerMessage = LintResultMessage | LintProgressMessage | FileChangedMessage | WorkspaceInfoMessage | VisionResultMessage | VisionProgressMessage;
|
|
50
|
+
/**
|
|
51
|
+
* UILint Store State and Actions
|
|
52
|
+
*/
|
|
53
|
+
export interface UILintStore {
|
|
54
|
+
settings: UILintSettings;
|
|
55
|
+
updateSettings: (partial: Partial<UILintSettings>) => void;
|
|
56
|
+
altKeyHeld: boolean;
|
|
57
|
+
setAltKeyHeld: (held: boolean) => void;
|
|
58
|
+
locatorTarget: LocatorTarget | null;
|
|
59
|
+
setLocatorTarget: (target: LocatorTarget | null) => void;
|
|
60
|
+
inspectedElement: InspectedElement | null;
|
|
61
|
+
setInspectedElement: (el: InspectedElement | null) => void;
|
|
62
|
+
/** Whether live scanning mode is enabled */
|
|
63
|
+
liveScanEnabled: boolean;
|
|
64
|
+
/** Enable live scanning and run initial scan */
|
|
65
|
+
enableLiveScan: (hideNodeModules: boolean) => Promise<void>;
|
|
66
|
+
/** Disable live scanning and clear all results */
|
|
67
|
+
disableLiveScan: () => void;
|
|
68
|
+
/** Scan newly-detected elements (called by DOM observer) */
|
|
69
|
+
scanNewElements: (elements: ScannedElement[]) => Promise<void>;
|
|
70
|
+
autoScanState: AutoScanState;
|
|
71
|
+
elementIssuesCache: Map<string, ElementIssue>;
|
|
72
|
+
/** File-level issues (not mapped to specific DOM elements) */
|
|
73
|
+
fileIssuesCache: Map<string, ESLintIssue[]>;
|
|
74
|
+
scanLock: boolean;
|
|
75
|
+
updateElementIssue: (id: string, issue: ElementIssue) => void;
|
|
76
|
+
updateFileIssues: (filePath: string, issues: ESLintIssue[]) => void;
|
|
77
|
+
/** Remove scan results for elements that no longer exist in DOM */
|
|
78
|
+
removeStaleResults: (elementIds: string[]) => void;
|
|
79
|
+
/** Currently hovered file path in scan results */
|
|
80
|
+
hoveredFilePath: string | null;
|
|
81
|
+
/** Currently selected file path in scan results */
|
|
82
|
+
selectedFilePath: string | null;
|
|
83
|
+
/** Currently selected element ID in elements panel */
|
|
84
|
+
selectedElementId: string | null;
|
|
85
|
+
/** Currently hovered element ID in scan results (for overlay highlighting) */
|
|
86
|
+
hoveredElementId: string | null;
|
|
87
|
+
setHoveredFilePath: (path: string | null) => void;
|
|
88
|
+
setSelectedFilePath: (path: string | null) => void;
|
|
89
|
+
setSelectedElementId: (id: string | null) => void;
|
|
90
|
+
setHoveredElementId: (id: string | null) => void;
|
|
91
|
+
wsConnection: WebSocket | null;
|
|
92
|
+
wsConnected: boolean;
|
|
93
|
+
wsUrl: string;
|
|
94
|
+
wsReconnectAttempts: number;
|
|
95
|
+
eslintIssuesCache: Map<string, ESLintIssue[]>;
|
|
96
|
+
wsProgressPhase: Map<string, string>;
|
|
97
|
+
wsLastActivity: {
|
|
98
|
+
filePath: string;
|
|
99
|
+
phase: string;
|
|
100
|
+
updatedAt: number;
|
|
101
|
+
} | null;
|
|
102
|
+
wsRecentResults: Array<{
|
|
103
|
+
filePath: string;
|
|
104
|
+
issueCount: number;
|
|
105
|
+
updatedAt: number;
|
|
106
|
+
}>;
|
|
107
|
+
/** Workspace root path from the server (for building absolute file paths) */
|
|
108
|
+
workspaceRoot: string | null;
|
|
109
|
+
/** Next.js app root path from the server (preferred for building absolute file paths) */
|
|
110
|
+
appRoot: string | null;
|
|
111
|
+
/** Server working directory from the server */
|
|
112
|
+
serverCwd: string | null;
|
|
113
|
+
connectWebSocket: (url?: string) => void;
|
|
114
|
+
disconnectWebSocket: () => void;
|
|
115
|
+
requestFileLint: (filePath: string) => Promise<ESLintIssue[]>;
|
|
116
|
+
requestElementLint: (filePath: string, dataLoc: string) => Promise<ESLintIssue[]>;
|
|
117
|
+
subscribeToFile: (filePath: string) => void;
|
|
118
|
+
invalidateCache: (filePath?: string) => void;
|
|
119
|
+
/** Whether vision analysis is in progress */
|
|
120
|
+
visionAnalyzing: boolean;
|
|
121
|
+
/** Current vision analysis progress phase */
|
|
122
|
+
visionProgressPhase: string | null;
|
|
123
|
+
/** Last vision error (if any), with stage for user-friendly UI */
|
|
124
|
+
visionLastError: VisionErrorInfo | null;
|
|
125
|
+
/** Latest vision analysis result */
|
|
126
|
+
visionResult: VisionAnalysisResult | null;
|
|
127
|
+
/** Vision issues cache by route */
|
|
128
|
+
visionIssuesCache: Map<string, VisionIssue[]>;
|
|
129
|
+
/** Screenshot history (route -> data URL) */
|
|
130
|
+
screenshotHistory: Map<string, {
|
|
131
|
+
dataUrl: string;
|
|
132
|
+
timestamp: number;
|
|
133
|
+
}>;
|
|
134
|
+
/** Current route being analyzed or last analyzed */
|
|
135
|
+
visionCurrentRoute: string | null;
|
|
136
|
+
/** Highlighted vision issue element ID (for click-to-highlight) */
|
|
137
|
+
highlightedVisionElementId: string | null;
|
|
138
|
+
/** Hovered vision issue (for hover-to-highlight) */
|
|
139
|
+
hoveredVisionIssue: VisionIssue | null;
|
|
140
|
+
/** Capture mode: full page or region selection */
|
|
141
|
+
captureMode: "full" | "region";
|
|
142
|
+
/** Whether region selection is currently active */
|
|
143
|
+
regionSelectionActive: boolean;
|
|
144
|
+
/** Selected region for capture (null if full page) */
|
|
145
|
+
selectedRegion: {
|
|
146
|
+
x: number;
|
|
147
|
+
y: number;
|
|
148
|
+
width: number;
|
|
149
|
+
height: number;
|
|
150
|
+
} | null;
|
|
151
|
+
/** Whether the results panel is visible */
|
|
152
|
+
showResultsPanel: boolean;
|
|
153
|
+
/** Active tab in the results panel */
|
|
154
|
+
activeResultsTab: "eslint" | "vision";
|
|
155
|
+
/** Active tab in the main toolbar */
|
|
156
|
+
activeToolbarTab: "configure" | "eslint" | "vision";
|
|
157
|
+
/** Trigger vision analysis for current page */
|
|
158
|
+
triggerVisionAnalysis: () => Promise<void>;
|
|
159
|
+
/** Clear last vision error */
|
|
160
|
+
clearVisionLastError: () => void;
|
|
161
|
+
/** Set highlighted vision element */
|
|
162
|
+
setHighlightedVisionElementId: (id: string | null) => void;
|
|
163
|
+
/** Set hovered vision issue */
|
|
164
|
+
setHoveredVisionIssue: (issue: VisionIssue | null) => void;
|
|
165
|
+
/** Set results panel visibility */
|
|
166
|
+
setShowResultsPanel: (show: boolean) => void;
|
|
167
|
+
/** Set active results tab */
|
|
168
|
+
setActiveResultsTab: (tab: "eslint" | "vision") => void;
|
|
169
|
+
/** Set active toolbar tab */
|
|
170
|
+
setActiveToolbarTab: (tab: "configure" | "eslint" | "vision") => void;
|
|
171
|
+
/** Clear vision results */
|
|
172
|
+
clearVisionResults: () => void;
|
|
173
|
+
/** Set capture mode */
|
|
174
|
+
setCaptureMode: (mode: "full" | "region") => void;
|
|
175
|
+
/** Set region selection active state */
|
|
176
|
+
setRegionSelectionActive: (active: boolean) => void;
|
|
177
|
+
/** Set selected region for capture */
|
|
178
|
+
setSelectedRegion: (region: {
|
|
179
|
+
x: number;
|
|
180
|
+
y: number;
|
|
181
|
+
width: number;
|
|
182
|
+
height: number;
|
|
183
|
+
} | null) => void;
|
|
184
|
+
_setScanState: (state: Partial<AutoScanState>) => void;
|
|
185
|
+
_runScanLoop: (elements: ScannedElement[]) => Promise<void>;
|
|
186
|
+
_handleWsMessage: (data: ServerMessage) => void;
|
|
187
|
+
_reconnectWebSocket: () => void;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Create the UILint store
|
|
191
|
+
*/
|
|
192
|
+
export declare const useUILintStore: import('zustand').UseBoundStore<import('zustand').StoreApi<UILintStore>>;
|
|
193
|
+
export {};
|
|
194
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/components/ui-lint/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabbedToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/toolbar/TabbedToolbar.tsx"],"names":[],"mappings":"AAWA,wBAAgB,aAAa,4CAwE5B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface IconProps extends React.SVGProps<SVGSVGElement> {
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Icon components for toolbar
|
|
6
|
+
*/
|
|
7
|
+
export declare const Icons: {
|
|
8
|
+
Eye: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
Settings: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
Check: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
AlertTriangle: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
ChevronDown: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
X: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
Unplug: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
Scan: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
Camera: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
Crop: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
Spinner: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
Play: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
Layout: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
Type: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
Palette: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
AlignLeft: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
Grid: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
Contrast: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
AlertCircle: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
};
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ESLintTab.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui-lint/toolbar/tabs/ESLintTab.tsx"],"names":[],"mappings":"AAuCA,wBAAgB,SAAS,4CAkOxB"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design tokens for toolbar components
|
|
3
|
+
*
|
|
4
|
+
* Uses CSS custom properties for theming support.
|
|
5
|
+
* Variables are defined in globals.css and support light/dark modes.
|
|
6
|
+
*/
|
|
7
|
+
export declare const TOKENS: {
|
|
8
|
+
readonly bgBase: "var(--uilint-backdrop)";
|
|
9
|
+
readonly bgElevated: "var(--uilint-background-elevated)";
|
|
10
|
+
readonly bgHover: "var(--uilint-hover)";
|
|
11
|
+
readonly bgActive: "var(--uilint-active)";
|
|
12
|
+
readonly border: "var(--uilint-border)";
|
|
13
|
+
readonly borderFocus: "var(--uilint-border-focus)";
|
|
14
|
+
readonly textPrimary: "var(--uilint-text-primary)";
|
|
15
|
+
readonly textSecondary: "var(--uilint-text-secondary)";
|
|
16
|
+
readonly textMuted: "var(--uilint-text-muted)";
|
|
17
|
+
readonly textDisabled: "var(--uilint-text-disabled)";
|
|
18
|
+
readonly accent: "var(--uilint-accent)";
|
|
19
|
+
readonly success: "var(--uilint-success)";
|
|
20
|
+
readonly warning: "var(--uilint-warning)";
|
|
21
|
+
readonly error: "var(--uilint-error)";
|
|
22
|
+
readonly fontFamily: "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif";
|
|
23
|
+
readonly fontMono: "\"SF Mono\", Monaco, \"Cascadia Code\", monospace";
|
|
24
|
+
readonly pillHeight: "40px";
|
|
25
|
+
readonly pillRadius: "20px";
|
|
26
|
+
readonly buttonMinWidth: "40px";
|
|
27
|
+
readonly blur: "blur(16px)";
|
|
28
|
+
readonly shadowMd: "var(--uilint-shadow)";
|
|
29
|
+
readonly shadowGlow: (color: string) => string;
|
|
30
|
+
readonly transitionFast: "150ms cubic-bezier(0.4, 0, 0.2, 1)";
|
|
31
|
+
readonly transitionBase: "200ms cubic-bezier(0.4, 0, 0.2, 1)";
|
|
32
|
+
readonly transitionSlow: "300ms cubic-bezier(0.4, 0, 0.2, 1)";
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Status badge colors using CSS variables
|
|
36
|
+
*/
|
|
37
|
+
export declare const BADGE_COLORS: {
|
|
38
|
+
readonly success: "var(--uilint-success)";
|
|
39
|
+
readonly successBg: "var(--uilint-success-bg)";
|
|
40
|
+
readonly warning: "var(--uilint-warning)";
|
|
41
|
+
readonly warningBg: "var(--uilint-warning-bg)";
|
|
42
|
+
readonly error: "var(--uilint-error)";
|
|
43
|
+
readonly errorBg: "var(--uilint-error-bg)";
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/components/ui-lint/toolbar/tokens.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;iCA6BG,MAAM;;;;CAKlB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;CAOf,CAAC"}
|