uilint-react 0.1.42 → 0.1.44

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.
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  useUILintContext,
5
5
  useUILintStore
6
- } from "./chunk-LAL3JTAA.js";
6
+ } from "./chunk-HECINZHM.js";
7
7
 
8
8
  // src/components/ui-lint/ElementBadges.tsx
9
9
  import React, { useState, useEffect, useCallback, useMemo } from "react";
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ "use client";
3
+ import {
4
+ InspectionPanel
5
+ } from "./chunk-X4PRYONL.js";
6
+ import "./chunk-W42PI2OF.js";
7
+ import "./chunk-HECINZHM.js";
8
+ export {
9
+ InspectionPanel
10
+ };
@@ -3,8 +3,8 @@
3
3
  import {
4
4
  InspectedElementHighlight,
5
5
  LocatorOverlay
6
- } from "./chunk-UD6HPLEZ.js";
7
- import "./chunk-LAL3JTAA.js";
6
+ } from "./chunk-GCZ53K35.js";
7
+ import "./chunk-HECINZHM.js";
8
8
  export {
9
9
  InspectedElementHighlight,
10
10
  LocatorOverlay
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ "use client";
3
+ import {
4
+ UILintToolbar
5
+ } from "./chunk-RULQAXE4.js";
6
+ import "./chunk-W42PI2OF.js";
7
+ import "./chunk-HECINZHM.js";
8
+ export {
9
+ UILintToolbar
10
+ };
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  useUILintContext
4
- } from "./chunk-LAL3JTAA.js";
4
+ } from "./chunk-HECINZHM.js";
5
5
 
6
6
  // src/components/ui-lint/LocatorOverlay.tsx
7
7
  import { useState, useEffect, useMemo } from "react";
@@ -219,7 +219,7 @@ async function scanFileForIssues(sourceFile, store) {
219
219
  }
220
220
  return { issues };
221
221
  }
222
- function distributeIssuesToElements(issues, elements, updateElementIssue, hasError) {
222
+ function distributeIssuesToElements(issues, elements, filePath, updateElementIssue, updateFileIssues, hasError) {
223
223
  const dataLocToElementIds = /* @__PURE__ */ new Map();
224
224
  for (const el of elements) {
225
225
  const dataLoc = getDataLocFromId(el.id);
@@ -230,16 +230,21 @@ function distributeIssuesToElements(issues, elements, updateElementIssue, hasErr
230
230
  }
231
231
  }
232
232
  const issuesByElement = /* @__PURE__ */ new Map();
233
+ const unmappedIssues = [];
233
234
  for (const issue of issues) {
234
235
  if (issue.dataLoc) {
235
236
  const elementIds = dataLocToElementIds.get(issue.dataLoc);
236
- if (elementIds) {
237
+ if (elementIds && elementIds.length > 0) {
237
238
  for (const elementId of elementIds) {
238
239
  const existing = issuesByElement.get(elementId) || [];
239
240
  existing.push(issue);
240
241
  issuesByElement.set(elementId, existing);
241
242
  }
243
+ } else {
244
+ unmappedIssues.push(issue);
242
245
  }
246
+ } else {
247
+ unmappedIssues.push(issue);
243
248
  }
244
249
  }
245
250
  for (const el of elements) {
@@ -250,6 +255,11 @@ function distributeIssuesToElements(issues, elements, updateElementIssue, hasErr
250
255
  status: hasError ? "error" : "complete"
251
256
  });
252
257
  }
258
+ if (unmappedIssues.length > 0) {
259
+ updateFileIssues(filePath, unmappedIssues);
260
+ } else {
261
+ updateFileIssues(filePath, []);
262
+ }
253
263
  }
254
264
  var DEFAULT_WS_URL = "ws://localhost:9234";
255
265
  var MAX_RECONNECT_ATTEMPTS = 5;
@@ -282,6 +292,7 @@ var useUILintStore = create()((set, get) => ({
282
292
  liveScanEnabled: false,
283
293
  autoScanState: DEFAULT_AUTO_SCAN_STATE,
284
294
  elementIssuesCache: /* @__PURE__ */ new Map(),
295
+ fileIssuesCache: /* @__PURE__ */ new Map(),
285
296
  scanLock: false,
286
297
  _setScanState: (partial) => set((state) => ({
287
298
  autoScanState: { ...state.autoScanState, ...partial }
@@ -291,6 +302,15 @@ var useUILintStore = create()((set, get) => ({
291
302
  newCache.set(id, issue);
292
303
  return { elementIssuesCache: newCache };
293
304
  }),
305
+ updateFileIssues: (filePath, issues) => set((state) => {
306
+ const newCache = new Map(state.fileIssuesCache);
307
+ if (issues.length > 0) {
308
+ newCache.set(filePath, issues);
309
+ } else {
310
+ newCache.delete(filePath);
311
+ }
312
+ return { fileIssuesCache: newCache };
313
+ }),
294
314
  enableLiveScan: async (hideNodeModules) => {
295
315
  const state = get();
296
316
  if (state.scanLock) {
@@ -326,7 +346,8 @@ var useUILintStore = create()((set, get) => ({
326
346
  liveScanEnabled: false,
327
347
  scanLock: false,
328
348
  autoScanState: DEFAULT_AUTO_SCAN_STATE,
329
- elementIssuesCache: /* @__PURE__ */ new Map()
349
+ elementIssuesCache: /* @__PURE__ */ new Map(),
350
+ fileIssuesCache: /* @__PURE__ */ new Map()
330
351
  });
331
352
  },
332
353
  scanNewElements: async (newElements) => {
@@ -365,7 +386,9 @@ var useUILintStore = create()((set, get) => ({
365
386
  distributeIssuesToElements(
366
387
  issues,
367
388
  sourceFile.elements,
389
+ sourceFile.path,
368
390
  get().updateElementIssue,
391
+ get().updateFileIssues,
369
392
  error ?? false
370
393
  );
371
394
  if (get().wsConnected && get().wsConnection) {
@@ -398,7 +421,9 @@ var useUILintStore = create()((set, get) => ({
398
421
  distributeIssuesToElements(
399
422
  issues,
400
423
  sourceFile.elements,
424
+ sourceFile.path,
401
425
  get().updateElementIssue,
426
+ get().updateFileIssues,
402
427
  error ?? false
403
428
  );
404
429
  if (get().wsConnected && get().wsConnection) {
@@ -611,9 +636,16 @@ var useUILintStore = create()((set, get) => ({
611
636
  distributeIssuesToElements(
612
637
  issues,
613
638
  sf.elements,
639
+ filePath,
614
640
  state.updateElementIssue,
641
+ state.updateFileIssues,
615
642
  false
616
643
  );
644
+ } else {
645
+ const unmappedIssues = issues.filter((i) => !i.dataLoc);
646
+ if (unmappedIssues.length > 0) {
647
+ state.updateFileIssues(filePath, unmappedIssues);
648
+ }
617
649
  }
618
650
  }
619
651
  set((state2) => {
@@ -1031,10 +1063,10 @@ function UILintUI() {
1031
1063
  const [components, setComponents] = useState(null);
1032
1064
  useEffect2(() => {
1033
1065
  Promise.all([
1034
- import("./UILintToolbar-MJH7RUZK.js"),
1035
- import("./InspectionPanel-4LOWGHW7.js"),
1036
- import("./LocatorOverlay-ERRFPXKK.js"),
1037
- import("./ElementBadges-2I25HN6W.js")
1066
+ import("./UILintToolbar-G5AVKNXA.js"),
1067
+ import("./InspectionPanel-UW5UBZIK.js"),
1068
+ import("./LocatorOverlay-RMU6JIFI.js"),
1069
+ import("./ElementBadges-OQC6YCQD.js")
1038
1070
  ]).then(([toolbar, panel, locator, badges]) => {
1039
1071
  setComponents({
1040
1072
  Toolbar: toolbar.UILintToolbar,