@industry-theme/repository-composition-panels 0.2.14 → 0.2.15

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.
@@ -129,18 +129,18 @@ const createLucideIcon = (iconName, iconNode) => {
129
129
  * This source code is licensed under the ISC license.
130
130
  * See the LICENSE file in the root directory of this source tree.
131
131
  */
132
- const __iconNode$r = [
132
+ const __iconNode$s = [
133
133
  ["path", { d: "M5 12h14", key: "1ays0h" }],
134
134
  ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
135
135
  ];
136
- const ArrowRight = createLucideIcon("arrow-right", __iconNode$r);
136
+ const ArrowRight = createLucideIcon("arrow-right", __iconNode$s);
137
137
  /**
138
138
  * @license lucide-react v0.552.0 - ISC
139
139
  *
140
140
  * This source code is licensed under the ISC license.
141
141
  * See the LICENSE file in the root directory of this source tree.
142
142
  */
143
- const __iconNode$q = [
143
+ const __iconNode$r = [
144
144
  [
145
145
  "path",
146
146
  {
@@ -151,93 +151,93 @@ const __iconNode$q = [
151
151
  ["path", { d: "m3.3 7 8.7 5 8.7-5", key: "g66t2b" }],
152
152
  ["path", { d: "M12 22V12", key: "d0xqtd" }]
153
153
  ];
154
- const Box = createLucideIcon("box", __iconNode$q);
154
+ const Box = createLucideIcon("box", __iconNode$r);
155
155
  /**
156
156
  * @license lucide-react v0.552.0 - ISC
157
157
  *
158
158
  * This source code is licensed under the ISC license.
159
159
  * See the LICENSE file in the root directory of this source tree.
160
160
  */
161
- const __iconNode$p = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
162
- const Check = createLucideIcon("check", __iconNode$p);
161
+ const __iconNode$q = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
162
+ const Check = createLucideIcon("check", __iconNode$q);
163
163
  /**
164
164
  * @license lucide-react v0.552.0 - ISC
165
165
  *
166
166
  * This source code is licensed under the ISC license.
167
167
  * See the LICENSE file in the root directory of this source tree.
168
168
  */
169
- const __iconNode$o = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
170
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$o);
169
+ const __iconNode$p = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
170
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$p);
171
171
  /**
172
172
  * @license lucide-react v0.552.0 - ISC
173
173
  *
174
174
  * This source code is licensed under the ISC license.
175
175
  * See the LICENSE file in the root directory of this source tree.
176
176
  */
177
- const __iconNode$n = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
178
- const ChevronLeft = createLucideIcon("chevron-left", __iconNode$n);
177
+ const __iconNode$o = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
178
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$o);
179
179
  /**
180
180
  * @license lucide-react v0.552.0 - ISC
181
181
  *
182
182
  * This source code is licensed under the ISC license.
183
183
  * See the LICENSE file in the root directory of this source tree.
184
184
  */
185
- const __iconNode$m = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
186
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$m);
185
+ const __iconNode$n = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
186
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$n);
187
187
  /**
188
188
  * @license lucide-react v0.552.0 - ISC
189
189
  *
190
190
  * This source code is licensed under the ISC license.
191
191
  * See the LICENSE file in the root directory of this source tree.
192
192
  */
193
- const __iconNode$l = [
193
+ const __iconNode$m = [
194
194
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
195
195
  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
196
196
  ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
197
197
  ];
198
- const CircleAlert = createLucideIcon("circle-alert", __iconNode$l);
198
+ const CircleAlert = createLucideIcon("circle-alert", __iconNode$m);
199
199
  /**
200
200
  * @license lucide-react v0.552.0 - ISC
201
201
  *
202
202
  * This source code is licensed under the ISC license.
203
203
  * See the LICENSE file in the root directory of this source tree.
204
204
  */
205
- const __iconNode$k = [
205
+ const __iconNode$l = [
206
206
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
207
207
  ["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", key: "1u773s" }],
208
208
  ["path", { d: "M12 17h.01", key: "p32p05" }]
209
209
  ];
210
- const CircleQuestionMark = createLucideIcon("circle-question-mark", __iconNode$k);
210
+ const CircleQuestionMark = createLucideIcon("circle-question-mark", __iconNode$l);
211
211
  /**
212
212
  * @license lucide-react v0.552.0 - ISC
213
213
  *
214
214
  * This source code is licensed under the ISC license.
215
215
  * See the LICENSE file in the root directory of this source tree.
216
216
  */
217
- const __iconNode$j = [
217
+ const __iconNode$k = [
218
218
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
219
219
  ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
220
220
  ];
221
- const Copy = createLucideIcon("copy", __iconNode$j);
221
+ const Copy = createLucideIcon("copy", __iconNode$k);
222
222
  /**
223
223
  * @license lucide-react v0.552.0 - ISC
224
224
  *
225
225
  * This source code is licensed under the ISC license.
226
226
  * See the LICENSE file in the root directory of this source tree.
227
227
  */
228
- const __iconNode$i = [
228
+ const __iconNode$j = [
229
229
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
230
230
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
231
231
  ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
232
232
  ];
233
- const ExternalLink = createLucideIcon("external-link", __iconNode$i);
233
+ const ExternalLink = createLucideIcon("external-link", __iconNode$j);
234
234
  /**
235
235
  * @license lucide-react v0.552.0 - ISC
236
236
  *
237
237
  * This source code is licensed under the ISC license.
238
238
  * See the LICENSE file in the root directory of this source tree.
239
239
  */
240
- const __iconNode$h = [
240
+ const __iconNode$i = [
241
241
  [
242
242
  "path",
243
243
  {
@@ -249,14 +249,14 @@ const __iconNode$h = [
249
249
  ["path", { d: "M10 12.5 8 15l2 2.5", key: "1tg20x" }],
250
250
  ["path", { d: "m14 12.5 2 2.5-2 2.5", key: "yinavb" }]
251
251
  ];
252
- const FileCode = createLucideIcon("file-code", __iconNode$h);
252
+ const FileCode = createLucideIcon("file-code", __iconNode$i);
253
253
  /**
254
254
  * @license lucide-react v0.552.0 - ISC
255
255
  *
256
256
  * This source code is licensed under the ISC license.
257
257
  * See the LICENSE file in the root directory of this source tree.
258
258
  */
259
- const __iconNode$g = [
259
+ const __iconNode$h = [
260
260
  [
261
261
  "path",
262
262
  {
@@ -267,14 +267,14 @@ const __iconNode$g = [
267
267
  ["path", { d: "M12 17h.01", key: "p32p05" }],
268
268
  ["path", { d: "M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3", key: "mhlwft" }]
269
269
  ];
270
- const FileQuestionMark = createLucideIcon("file-question-mark", __iconNode$g);
270
+ const FileQuestionMark = createLucideIcon("file-question-mark", __iconNode$h);
271
271
  /**
272
272
  * @license lucide-react v0.552.0 - ISC
273
273
  *
274
274
  * This source code is licensed under the ISC license.
275
275
  * See the LICENSE file in the root directory of this source tree.
276
276
  */
277
- const __iconNode$f = [
277
+ const __iconNode$g = [
278
278
  [
279
279
  "path",
280
280
  {
@@ -285,14 +285,14 @@ const __iconNode$f = [
285
285
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
286
286
  ["path", { d: "m10 18 3-3-3-3", key: "18f6ys" }]
287
287
  ];
288
- const FileSymlink = createLucideIcon("file-symlink", __iconNode$f);
288
+ const FileSymlink = createLucideIcon("file-symlink", __iconNode$g);
289
289
  /**
290
290
  * @license lucide-react v0.552.0 - ISC
291
291
  *
292
292
  * This source code is licensed under the ISC license.
293
293
  * See the LICENSE file in the root directory of this source tree.
294
294
  */
295
- const __iconNode$e = [
295
+ const __iconNode$f = [
296
296
  [
297
297
  "path",
298
298
  {
@@ -305,14 +305,14 @@ const __iconNode$e = [
305
305
  ["path", { d: "M16 13H8", key: "t4e002" }],
306
306
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
307
307
  ];
308
- const FileText = createLucideIcon("file-text", __iconNode$e);
308
+ const FileText = createLucideIcon("file-text", __iconNode$f);
309
309
  /**
310
310
  * @license lucide-react v0.552.0 - ISC
311
311
  *
312
312
  * This source code is licensed under the ISC license.
313
313
  * See the LICENSE file in the root directory of this source tree.
314
314
  */
315
- const __iconNode$d = [
315
+ const __iconNode$e = [
316
316
  [
317
317
  "path",
318
318
  {
@@ -321,14 +321,14 @@ const __iconNode$d = [
321
321
  }
322
322
  ]
323
323
  ];
324
- const FolderOpen = createLucideIcon("folder-open", __iconNode$d);
324
+ const FolderOpen = createLucideIcon("folder-open", __iconNode$e);
325
325
  /**
326
326
  * @license lucide-react v0.552.0 - ISC
327
327
  *
328
328
  * This source code is licensed under the ISC license.
329
329
  * See the LICENSE file in the root directory of this source tree.
330
330
  */
331
- const __iconNode$c = [
331
+ const __iconNode$d = [
332
332
  [
333
333
  "path",
334
334
  {
@@ -337,27 +337,27 @@ const __iconNode$c = [
337
337
  }
338
338
  ]
339
339
  ];
340
- const Folder = createLucideIcon("folder", __iconNode$c);
340
+ const Folder = createLucideIcon("folder", __iconNode$d);
341
341
  /**
342
342
  * @license lucide-react v0.552.0 - ISC
343
343
  *
344
344
  * This source code is licensed under the ISC license.
345
345
  * See the LICENSE file in the root directory of this source tree.
346
346
  */
347
- const __iconNode$b = [
347
+ const __iconNode$c = [
348
348
  ["line", { x1: "6", x2: "6", y1: "3", y2: "15", key: "17qcm7" }],
349
349
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
350
350
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
351
351
  ["path", { d: "M18 9a9 9 0 0 1-9 9", key: "n2h4wq" }]
352
352
  ];
353
- const GitBranch = createLucideIcon("git-branch", __iconNode$b);
353
+ const GitBranch = createLucideIcon("git-branch", __iconNode$c);
354
354
  /**
355
355
  * @license lucide-react v0.552.0 - ISC
356
356
  *
357
357
  * This source code is licensed under the ISC license.
358
358
  * See the LICENSE file in the root directory of this source tree.
359
359
  */
360
- const __iconNode$a = [
360
+ const __iconNode$b = [
361
361
  [
362
362
  "path",
363
363
  {
@@ -380,35 +380,35 @@ const __iconNode$a = [
380
380
  }
381
381
  ]
382
382
  ];
383
- const Layers = createLucideIcon("layers", __iconNode$a);
383
+ const Layers = createLucideIcon("layers", __iconNode$b);
384
384
  /**
385
385
  * @license lucide-react v0.552.0 - ISC
386
386
  *
387
387
  * This source code is licensed under the ISC license.
388
388
  * See the LICENSE file in the root directory of this source tree.
389
389
  */
390
- const __iconNode$9 = [
390
+ const __iconNode$a = [
391
391
  ["rect", { width: "7", height: "7", x: "3", y: "3", rx: "1", key: "1g98yp" }],
392
392
  ["rect", { width: "7", height: "7", x: "14", y: "3", rx: "1", key: "6d4xhi" }],
393
393
  ["rect", { width: "7", height: "7", x: "14", y: "14", rx: "1", key: "nxv5o0" }],
394
394
  ["rect", { width: "7", height: "7", x: "3", y: "14", rx: "1", key: "1bb6yr" }]
395
395
  ];
396
- const LayoutGrid = createLucideIcon("layout-grid", __iconNode$9);
396
+ const LayoutGrid = createLucideIcon("layout-grid", __iconNode$a);
397
397
  /**
398
398
  * @license lucide-react v0.552.0 - ISC
399
399
  *
400
400
  * This source code is licensed under the ISC license.
401
401
  * See the LICENSE file in the root directory of this source tree.
402
402
  */
403
- const __iconNode$8 = [["path", { d: "M5 12h14", key: "1ays0h" }]];
404
- const Minus = createLucideIcon("minus", __iconNode$8);
403
+ const __iconNode$9 = [["path", { d: "M5 12h14", key: "1ays0h" }]];
404
+ const Minus = createLucideIcon("minus", __iconNode$9);
405
405
  /**
406
406
  * @license lucide-react v0.552.0 - ISC
407
407
  *
408
408
  * This source code is licensed under the ISC license.
409
409
  * See the LICENSE file in the root directory of this source tree.
410
410
  */
411
- const __iconNode$7 = [
411
+ const __iconNode$8 = [
412
412
  [
413
413
  "path",
414
414
  {
@@ -420,50 +420,50 @@ const __iconNode$7 = [
420
420
  ["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
421
421
  ["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }]
422
422
  ];
423
- const Package = createLucideIcon("package", __iconNode$7);
423
+ const Package = createLucideIcon("package", __iconNode$8);
424
424
  /**
425
425
  * @license lucide-react v0.552.0 - ISC
426
426
  *
427
427
  * This source code is licensed under the ISC license.
428
428
  * See the LICENSE file in the root directory of this source tree.
429
429
  */
430
- const __iconNode$6 = [
430
+ const __iconNode$7 = [
431
431
  ["path", { d: "M5 12h14", key: "1ays0h" }],
432
432
  ["path", { d: "M12 5v14", key: "s699le" }]
433
433
  ];
434
- const Plus = createLucideIcon("plus", __iconNode$6);
434
+ const Plus = createLucideIcon("plus", __iconNode$7);
435
435
  /**
436
436
  * @license lucide-react v0.552.0 - ISC
437
437
  *
438
438
  * This source code is licensed under the ISC license.
439
439
  * See the LICENSE file in the root directory of this source tree.
440
440
  */
441
- const __iconNode$5 = [
441
+ const __iconNode$6 = [
442
442
  ["path", { d: "m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z", key: "7g6ntu" }],
443
443
  ["path", { d: "m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z", key: "ijws7r" }],
444
444
  ["path", { d: "M7 21h10", key: "1b0cd5" }],
445
445
  ["path", { d: "M12 3v18", key: "108xh3" }],
446
446
  ["path", { d: "M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2", key: "3gwbw2" }]
447
447
  ];
448
- const Scale = createLucideIcon("scale", __iconNode$5);
448
+ const Scale = createLucideIcon("scale", __iconNode$6);
449
449
  /**
450
450
  * @license lucide-react v0.552.0 - ISC
451
451
  *
452
452
  * This source code is licensed under the ISC license.
453
453
  * See the LICENSE file in the root directory of this source tree.
454
454
  */
455
- const __iconNode$4 = [
455
+ const __iconNode$5 = [
456
456
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
457
457
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
458
458
  ];
459
- const Search = createLucideIcon("search", __iconNode$4);
459
+ const Search = createLucideIcon("search", __iconNode$5);
460
460
  /**
461
461
  * @license lucide-react v0.552.0 - ISC
462
462
  *
463
463
  * This source code is licensed under the ISC license.
464
464
  * See the LICENSE file in the root directory of this source tree.
465
465
  */
466
- const __iconNode$3 = [
466
+ const __iconNode$4 = [
467
467
  [
468
468
  "path",
469
469
  {
@@ -473,14 +473,14 @@ const __iconNode$3 = [
473
473
  ],
474
474
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
475
475
  ];
476
- const Settings = createLucideIcon("settings", __iconNode$3);
476
+ const Settings = createLucideIcon("settings", __iconNode$4);
477
477
  /**
478
478
  * @license lucide-react v0.552.0 - ISC
479
479
  *
480
480
  * This source code is licensed under the ISC license.
481
481
  * See the LICENSE file in the root directory of this source tree.
482
482
  */
483
- const __iconNode$2 = [
483
+ const __iconNode$3 = [
484
484
  ["path", { d: "M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7", key: "1m0v6g" }],
485
485
  [
486
486
  "path",
@@ -490,18 +490,36 @@ const __iconNode$2 = [
490
490
  }
491
491
  ]
492
492
  ];
493
- const SquarePen = createLucideIcon("square-pen", __iconNode$2);
493
+ const SquarePen = createLucideIcon("square-pen", __iconNode$3);
494
494
  /**
495
495
  * @license lucide-react v0.552.0 - ISC
496
496
  *
497
497
  * This source code is licensed under the ISC license.
498
498
  * See the LICENSE file in the root directory of this source tree.
499
499
  */
500
- const __iconNode$1 = [
500
+ const __iconNode$2 = [
501
501
  ["path", { d: "M12 19h8", key: "baeox8" }],
502
502
  ["path", { d: "m4 17 6-6-6-6", key: "1yngyt" }]
503
503
  ];
504
- const Terminal = createLucideIcon("terminal", __iconNode$1);
504
+ const Terminal = createLucideIcon("terminal", __iconNode$2);
505
+ /**
506
+ * @license lucide-react v0.552.0 - ISC
507
+ *
508
+ * This source code is licensed under the ISC license.
509
+ * See the LICENSE file in the root directory of this source tree.
510
+ */
511
+ const __iconNode$1 = [
512
+ [
513
+ "path",
514
+ {
515
+ d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
516
+ key: "wmoenq"
517
+ }
518
+ ],
519
+ ["path", { d: "M12 9v4", key: "juzpu7" }],
520
+ ["path", { d: "M12 17h.01", key: "p32p05" }]
521
+ ];
522
+ const TriangleAlert = createLucideIcon("triangle-alert", __iconNode$1);
505
523
  /**
506
524
  * @license lucide-react v0.552.0 - ISC
507
525
  *
@@ -9271,6 +9289,373 @@ const FilterBar = ({
9271
9289
  }
9272
9290
  );
9273
9291
  };
9292
+ const LensRow = ({ lens }) => {
9293
+ const { theme } = useTheme();
9294
+ const [isExpanded, setIsExpanded] = useState(false);
9295
+ const getStatusDisplay = () => {
9296
+ if (lens.ready) {
9297
+ return { icon: Check, color: "#10b981", label: "Ready" };
9298
+ }
9299
+ if (lens.partial) {
9300
+ return { icon: TriangleAlert, color: "#f59e0b", label: "Partial" };
9301
+ }
9302
+ if (lens.checks.some((c) => c.satisfied)) {
9303
+ return { icon: X, color: "#ef4444", label: "Missing" };
9304
+ }
9305
+ return { icon: Minus, color: theme.colors.textSecondary, label: "Not configured" };
9306
+ };
9307
+ const status = getStatusDisplay();
9308
+ const StatusIcon = status.icon;
9309
+ const hasDetails = lens.checks.length > 0;
9310
+ return /* @__PURE__ */ jsxs(
9311
+ "div",
9312
+ {
9313
+ style: {
9314
+ borderBottom: `1px solid ${theme.colors.border}`
9315
+ },
9316
+ children: [
9317
+ /* @__PURE__ */ jsxs(
9318
+ "button",
9319
+ {
9320
+ onClick: () => hasDetails && setIsExpanded(!isExpanded),
9321
+ disabled: !hasDetails,
9322
+ style: {
9323
+ width: "100%",
9324
+ display: "flex",
9325
+ alignItems: "center",
9326
+ gap: "8px",
9327
+ padding: "10px 12px",
9328
+ backgroundColor: "transparent",
9329
+ border: "none",
9330
+ cursor: hasDetails ? "pointer" : "default",
9331
+ textAlign: "left",
9332
+ color: theme.colors.text
9333
+ },
9334
+ children: [
9335
+ hasDetails && (isExpanded ? /* @__PURE__ */ jsx(ChevronDown, { size: 14, color: theme.colors.textSecondary }) : /* @__PURE__ */ jsx(ChevronRight, { size: 14, color: theme.colors.textSecondary })),
9336
+ !hasDetails && /* @__PURE__ */ jsx("div", { style: { width: 14 } }),
9337
+ /* @__PURE__ */ jsx(StatusIcon, { size: 16, color: status.color }),
9338
+ /* @__PURE__ */ jsx(
9339
+ "span",
9340
+ {
9341
+ style: {
9342
+ flex: 1,
9343
+ fontSize: theme.fontSizes[1],
9344
+ fontWeight: 500,
9345
+ color: lens.ready ? theme.colors.text : theme.colors.textSecondary
9346
+ },
9347
+ children: lens.displayName
9348
+ }
9349
+ ),
9350
+ lens.missing.length > 0 && /* @__PURE__ */ jsxs(
9351
+ "span",
9352
+ {
9353
+ style: {
9354
+ fontSize: theme.fontSizes[0],
9355
+ color: status.color,
9356
+ padding: "2px 6px",
9357
+ backgroundColor: status.color + "15",
9358
+ borderRadius: "4px"
9359
+ },
9360
+ children: [
9361
+ lens.missing.length,
9362
+ " missing"
9363
+ ]
9364
+ }
9365
+ )
9366
+ ]
9367
+ }
9368
+ ),
9369
+ isExpanded && hasDetails && /* @__PURE__ */ jsx(
9370
+ "div",
9371
+ {
9372
+ style: {
9373
+ padding: "0 12px 12px 34px",
9374
+ display: "flex",
9375
+ flexDirection: "column",
9376
+ gap: "4px"
9377
+ },
9378
+ children: lens.checks.map((check, idx) => /* @__PURE__ */ jsx(RequirementRow, { check }, idx))
9379
+ }
9380
+ )
9381
+ ]
9382
+ }
9383
+ );
9384
+ };
9385
+ const RequirementRow = ({ check }) => {
9386
+ const { theme } = useTheme();
9387
+ const { requirement, satisfied, foundValue } = check;
9388
+ const typeLabels = {
9389
+ devDependency: "dep",
9390
+ script: "script",
9391
+ config: "config"
9392
+ };
9393
+ return /* @__PURE__ */ jsxs(
9394
+ "div",
9395
+ {
9396
+ style: {
9397
+ display: "flex",
9398
+ alignItems: "center",
9399
+ gap: "8px",
9400
+ fontSize: theme.fontSizes[0],
9401
+ padding: "4px 0"
9402
+ },
9403
+ children: [
9404
+ satisfied ? /* @__PURE__ */ jsx(Check, { size: 12, color: "#10b981" }) : /* @__PURE__ */ jsx(X, { size: 12, color: "#ef4444" }),
9405
+ /* @__PURE__ */ jsx(
9406
+ "span",
9407
+ {
9408
+ style: {
9409
+ padding: "1px 4px",
9410
+ backgroundColor: theme.colors.backgroundTertiary,
9411
+ color: theme.colors.textSecondary,
9412
+ borderRadius: "3px",
9413
+ fontSize: "10px",
9414
+ fontWeight: 500,
9415
+ textTransform: "uppercase"
9416
+ },
9417
+ children: typeLabels[requirement.type] || requirement.type
9418
+ }
9419
+ ),
9420
+ /* @__PURE__ */ jsx(
9421
+ "span",
9422
+ {
9423
+ style: {
9424
+ color: satisfied ? theme.colors.text : theme.colors.textSecondary,
9425
+ fontFamily: "monospace"
9426
+ },
9427
+ children: requirement.name
9428
+ }
9429
+ ),
9430
+ satisfied && foundValue && /* @__PURE__ */ jsx(
9431
+ "span",
9432
+ {
9433
+ style: {
9434
+ color: theme.colors.textSecondary,
9435
+ marginLeft: "auto",
9436
+ fontFamily: "monospace"
9437
+ },
9438
+ children: foundValue.length > 30 ? foundValue.slice(0, 30) + "..." : foundValue
9439
+ }
9440
+ ),
9441
+ !satisfied && requirement.suggestedFix && /* @__PURE__ */ jsxs(
9442
+ "span",
9443
+ {
9444
+ style: {
9445
+ color: theme.colors.textSecondary,
9446
+ marginLeft: "auto",
9447
+ fontStyle: "italic"
9448
+ },
9449
+ children: [
9450
+ "(add: ",
9451
+ requirement.suggestedFix,
9452
+ ")"
9453
+ ]
9454
+ }
9455
+ )
9456
+ ]
9457
+ }
9458
+ );
9459
+ };
9460
+ const LensReadinessSection = ({
9461
+ lensReadiness
9462
+ }) => {
9463
+ const { theme } = useTheme();
9464
+ if (!lensReadiness || Object.keys(lensReadiness).length === 0) {
9465
+ return /* @__PURE__ */ jsx(
9466
+ "div",
9467
+ {
9468
+ style: {
9469
+ padding: "16px",
9470
+ textAlign: "center",
9471
+ color: theme.colors.textSecondary,
9472
+ fontSize: theme.fontSizes[1]
9473
+ },
9474
+ children: "No lens readiness data available"
9475
+ }
9476
+ );
9477
+ }
9478
+ const sortedLenses = Object.values(lensReadiness).sort((a, b) => {
9479
+ if (a.ready && !b.ready) return -1;
9480
+ if (!a.ready && b.ready) return 1;
9481
+ if (a.partial && !b.partial) return -1;
9482
+ if (!a.partial && b.partial) return 1;
9483
+ return a.displayName.localeCompare(b.displayName);
9484
+ });
9485
+ const readyCount = sortedLenses.filter((l) => l.ready).length;
9486
+ const totalCount = sortedLenses.length;
9487
+ return /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column" }, children: [
9488
+ /* @__PURE__ */ jsxs(
9489
+ "div",
9490
+ {
9491
+ style: {
9492
+ padding: "8px 12px",
9493
+ borderBottom: `1px solid ${theme.colors.border}`,
9494
+ backgroundColor: theme.colors.backgroundTertiary,
9495
+ display: "flex",
9496
+ alignItems: "center",
9497
+ justifyContent: "space-between"
9498
+ },
9499
+ children: [
9500
+ /* @__PURE__ */ jsx(
9501
+ "span",
9502
+ {
9503
+ style: {
9504
+ fontSize: theme.fontSizes[0],
9505
+ fontWeight: 600,
9506
+ color: theme.colors.textSecondary,
9507
+ textTransform: "uppercase",
9508
+ letterSpacing: "0.5px"
9509
+ },
9510
+ children: "Quality Lenses"
9511
+ }
9512
+ ),
9513
+ /* @__PURE__ */ jsxs(
9514
+ "span",
9515
+ {
9516
+ style: {
9517
+ fontSize: theme.fontSizes[0],
9518
+ color: readyCount === totalCount ? "#10b981" : theme.colors.textSecondary,
9519
+ fontWeight: 500
9520
+ },
9521
+ children: [
9522
+ readyCount,
9523
+ "/",
9524
+ totalCount,
9525
+ " ready"
9526
+ ]
9527
+ }
9528
+ )
9529
+ ]
9530
+ }
9531
+ ),
9532
+ /* @__PURE__ */ jsx("div", { children: sortedLenses.map((lens) => /* @__PURE__ */ jsx(LensRow, { lens }, lens.lensId)) })
9533
+ ] });
9534
+ };
9535
+ const OtherScriptsSection = ({
9536
+ commands,
9537
+ onCommandClick
9538
+ }) => {
9539
+ const { theme } = useTheme();
9540
+ const [isExpanded, setIsExpanded] = useState(false);
9541
+ const nonLensCommands = commands.filter((cmd) => !cmd.isLensCommand);
9542
+ if (nonLensCommands.length === 0) {
9543
+ return null;
9544
+ }
9545
+ return /* @__PURE__ */ jsxs("div", { style: { borderTop: `1px solid ${theme.colors.border}` }, children: [
9546
+ /* @__PURE__ */ jsxs(
9547
+ "button",
9548
+ {
9549
+ onClick: () => setIsExpanded(!isExpanded),
9550
+ style: {
9551
+ width: "100%",
9552
+ display: "flex",
9553
+ alignItems: "center",
9554
+ gap: "8px",
9555
+ padding: "8px 12px",
9556
+ backgroundColor: theme.colors.backgroundTertiary,
9557
+ border: "none",
9558
+ cursor: "pointer",
9559
+ textAlign: "left"
9560
+ },
9561
+ children: [
9562
+ isExpanded ? /* @__PURE__ */ jsx(ChevronDown, { size: 14, color: theme.colors.textSecondary }) : /* @__PURE__ */ jsx(ChevronRight, { size: 14, color: theme.colors.textSecondary }),
9563
+ /* @__PURE__ */ jsx(
9564
+ "span",
9565
+ {
9566
+ style: {
9567
+ fontSize: theme.fontSizes[0],
9568
+ fontWeight: 600,
9569
+ color: theme.colors.textSecondary,
9570
+ textTransform: "uppercase",
9571
+ letterSpacing: "0.5px"
9572
+ },
9573
+ children: "Other Scripts"
9574
+ }
9575
+ ),
9576
+ /* @__PURE__ */ jsx(
9577
+ "span",
9578
+ {
9579
+ style: {
9580
+ fontSize: theme.fontSizes[0],
9581
+ color: theme.colors.textSecondary,
9582
+ marginLeft: "auto"
9583
+ },
9584
+ children: nonLensCommands.length
9585
+ }
9586
+ )
9587
+ ]
9588
+ }
9589
+ ),
9590
+ isExpanded && /* @__PURE__ */ jsx(
9591
+ "div",
9592
+ {
9593
+ style: {
9594
+ padding: "8px 12px",
9595
+ display: "flex",
9596
+ flexDirection: "column",
9597
+ gap: "4px"
9598
+ },
9599
+ children: nonLensCommands.map((cmd, idx) => /* @__PURE__ */ jsxs(
9600
+ "button",
9601
+ {
9602
+ onClick: () => onCommandClick == null ? void 0 : onCommandClick(cmd),
9603
+ style: {
9604
+ display: "flex",
9605
+ alignItems: "center",
9606
+ gap: "8px",
9607
+ padding: "6px 10px",
9608
+ backgroundColor: theme.colors.backgroundSecondary,
9609
+ border: `1px solid ${theme.colors.border}`,
9610
+ borderRadius: "4px",
9611
+ color: theme.colors.text,
9612
+ cursor: "pointer",
9613
+ textAlign: "left",
9614
+ transition: "border-color 0.15s ease"
9615
+ },
9616
+ onMouseEnter: (e) => {
9617
+ e.currentTarget.style.borderColor = theme.colors.primary;
9618
+ },
9619
+ onMouseLeave: (e) => {
9620
+ e.currentTarget.style.borderColor = theme.colors.border;
9621
+ },
9622
+ children: [
9623
+ /* @__PURE__ */ jsx(Terminal, { size: 12, color: theme.colors.textSecondary }),
9624
+ /* @__PURE__ */ jsx(
9625
+ "span",
9626
+ {
9627
+ style: {
9628
+ fontWeight: 500,
9629
+ fontSize: theme.fontSizes[1],
9630
+ minWidth: "60px"
9631
+ },
9632
+ children: cmd.name
9633
+ }
9634
+ ),
9635
+ /* @__PURE__ */ jsx(
9636
+ "span",
9637
+ {
9638
+ style: {
9639
+ flex: 1,
9640
+ fontSize: theme.fontSizes[0],
9641
+ color: theme.colors.textSecondary,
9642
+ fontFamily: "monospace",
9643
+ overflow: "hidden",
9644
+ textOverflow: "ellipsis",
9645
+ whiteSpace: "nowrap"
9646
+ },
9647
+ children: cmd.command
9648
+ }
9649
+ ),
9650
+ /* @__PURE__ */ jsx(ExternalLink, { size: 10, color: theme.colors.textSecondary })
9651
+ ]
9652
+ },
9653
+ idx
9654
+ ))
9655
+ }
9656
+ )
9657
+ ] });
9658
+ };
9274
9659
  const dependencyTypeOrder = {
9275
9660
  peer: 0,
9276
9661
  production: 1,
@@ -9577,13 +9962,13 @@ const PackageCard = ({
9577
9962
  onPackageClick,
9578
9963
  standalone = false
9579
9964
  }) => {
9580
- var _a, _b;
9965
+ var _a, _b, _c, _d, _e, _f, _g, _h;
9581
9966
  const { theme } = useTheme();
9582
9967
  const [activeTab, setActiveTab] = useState("dependencies");
9583
9968
  const [activeFilters, setActiveFilters] = useState(/* @__PURE__ */ new Set());
9584
9969
  const [searchQuery, setSearchQuery] = useState("");
9585
9970
  const [showInfoModal, setShowInfoModal] = useState(false);
9586
- const configFiles = useMemo(() => {
9971
+ useMemo(() => {
9587
9972
  if (!pkg.configFiles) return [];
9588
9973
  return Object.entries(pkg.configFiles).filter(([, config]) => config == null ? void 0 : config.exists).map(([name, config]) => ({ name, ...config }));
9589
9974
  }, [pkg.configFiles]);
@@ -9753,8 +10138,7 @@ const PackageCard = ({
9753
10138
  },
9754
10139
  children: [
9755
10140
  { id: "dependencies", label: "Dependencies", count: dependencyItems.length },
9756
- { id: "configs", label: "Configs", count: configFiles.length },
9757
- { id: "commands", label: "Commands", count: commands.length }
10141
+ { id: "lenses", label: "Lenses", count: ((_c = pkg.qualityMetrics) == null ? void 0 : _c.lensReadiness) ? Object.values(pkg.qualityMetrics.lensReadiness).filter((l) => l.ready).length : 0, total: ((_d = pkg.qualityMetrics) == null ? void 0 : _d.lensReadiness) ? Object.keys(pkg.qualityMetrics.lensReadiness).length : 0 }
9758
10142
  ].map((tab) => /* @__PURE__ */ jsxs(
9759
10143
  "button",
9760
10144
  {
@@ -9784,7 +10168,7 @@ const PackageCard = ({
9784
10168
  borderRadius: "10px",
9785
10169
  fontSize: theme.fontSizes[0]
9786
10170
  },
9787
- children: tab.count
10171
+ children: "total" in tab ? `${tab.count}/${tab.total}` : tab.count
9788
10172
  }
9789
10173
  )
9790
10174
  ]
@@ -9793,109 +10177,17 @@ const PackageCard = ({
9793
10177
  ))
9794
10178
  }
9795
10179
  ),
9796
- /* @__PURE__ */ jsxs("div", { style: { flex: 1, padding: activeTab === "dependencies" ? "0" : "12px", overflow: "auto" }, children: [
9797
- activeTab === "commands" && /* @__PURE__ */ jsx("div", { style: { display: "flex", flexDirection: "column", gap: "6px" }, children: commands.length === 0 ? /* @__PURE__ */ jsx("div", { style: { color: theme.colors.textSecondary, fontSize: theme.fontSizes[1] }, children: "No commands available" }) : commands.map((cmd, idx) => /* @__PURE__ */ jsxs(
9798
- "button",
9799
- {
9800
- onClick: () => onCommandClick == null ? void 0 : onCommandClick(cmd, pkg.packageData.path),
9801
- style: {
9802
- display: "flex",
9803
- alignItems: "center",
9804
- gap: "8px",
9805
- padding: "8px 12px",
9806
- backgroundColor: theme.colors.backgroundTertiary,
9807
- border: `1px solid ${theme.colors.border}`,
9808
- borderRadius: "6px",
9809
- color: theme.colors.text,
9810
- cursor: "pointer",
9811
- textAlign: "left"
9812
- },
9813
- children: [
9814
- /* @__PURE__ */ jsx(Terminal, { size: 14, color: theme.colors.accent }),
9815
- /* @__PURE__ */ jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [
9816
- /* @__PURE__ */ jsx("div", { style: { fontWeight: 500, fontSize: theme.fontSizes[1] }, children: cmd.name }),
9817
- /* @__PURE__ */ jsx(
9818
- "div",
9819
- {
9820
- style: {
9821
- fontSize: theme.fontSizes[0],
9822
- color: theme.colors.textSecondary,
9823
- fontFamily: "monospace",
9824
- overflow: "hidden",
9825
- textOverflow: "ellipsis",
9826
- whiteSpace: "nowrap"
9827
- },
9828
- children: cmd.command
9829
- }
9830
- )
9831
- ] }),
9832
- cmd.isLensCommand && /* @__PURE__ */ jsx(
9833
- "span",
9834
- {
9835
- style: {
9836
- padding: "2px 6px",
9837
- backgroundColor: theme.colors.accent + "20",
9838
- color: theme.colors.accent,
9839
- borderRadius: "4px",
9840
- fontSize: theme.fontSizes[0]
9841
- },
9842
- children: cmd.lensId
9843
- }
9844
- ),
9845
- /* @__PURE__ */ jsx(ExternalLink, { size: 12, color: theme.colors.textSecondary })
9846
- ]
9847
- },
9848
- idx
9849
- )) }),
9850
- activeTab === "configs" && /* @__PURE__ */ jsx("div", { style: { display: "flex", flexDirection: "column", gap: "6px" }, children: configFiles.length === 0 ? /* @__PURE__ */ jsx("div", { style: { color: theme.colors.textSecondary, fontSize: theme.fontSizes[1] }, children: "No config files detected" }) : configFiles.map((config, idx) => /* @__PURE__ */ jsxs(
9851
- "button",
9852
- {
9853
- onClick: () => onConfigClick == null ? void 0 : onConfigClick(config),
9854
- style: {
9855
- display: "flex",
9856
- alignItems: "center",
9857
- gap: "8px",
9858
- padding: "8px 12px",
9859
- backgroundColor: theme.colors.backgroundTertiary,
9860
- border: `1px solid ${theme.colors.border}`,
9861
- borderRadius: "6px",
9862
- color: theme.colors.text,
9863
- cursor: "pointer",
9864
- textAlign: "left"
9865
- },
9866
- children: [
9867
- /* @__PURE__ */ jsx(Settings, { size: 14, color: theme.colors.textSecondary }),
9868
- /* @__PURE__ */ jsxs("div", { style: { flex: 1 }, children: [
9869
- /* @__PURE__ */ jsx("div", { style: { fontWeight: 500, fontSize: theme.fontSizes[1] }, children: config.name }),
9870
- /* @__PURE__ */ jsx(
9871
- "div",
9872
- {
9873
- style: {
9874
- fontSize: theme.fontSizes[0],
9875
- color: theme.colors.textSecondary,
9876
- fontFamily: "monospace"
9877
- },
9878
- children: config.path
9879
- }
9880
- )
9881
- ] }),
9882
- config.isInline && /* @__PURE__ */ jsx(
9883
- "span",
9884
- {
9885
- style: {
9886
- padding: "2px 6px",
9887
- backgroundColor: theme.colors.textSecondary + "20",
9888
- color: theme.colors.textSecondary,
9889
- borderRadius: "4px",
9890
- fontSize: theme.fontSizes[0]
9891
- },
9892
- children: "inline"
9893
- }
9894
- )
9895
- ]
9896
- },
9897
- idx
9898
- )) }),
10180
+ /* @__PURE__ */ jsxs("div", { style: { flex: 1, padding: activeTab === "dependencies" ? "0" : "0", overflow: "auto" }, children: [
10181
+ activeTab === "lenses" && /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", height: "100%" }, children: [
10182
+ /* @__PURE__ */ jsx(LensReadinessSection, { lensReadiness: (_e = pkg.qualityMetrics) == null ? void 0 : _e.lensReadiness }),
10183
+ /* @__PURE__ */ jsx(
10184
+ OtherScriptsSection,
10185
+ {
10186
+ commands,
10187
+ onCommandClick: (cmd) => onCommandClick == null ? void 0 : onCommandClick(cmd, pkg.packageData.path)
10188
+ }
10189
+ )
10190
+ ] }),
9899
10191
  activeTab === "dependencies" && /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", height: "100%" }, children: [
9900
10192
  dependencyItems.length === 0 ? /* @__PURE__ */ jsxs(
9901
10193
  "div",
@@ -10070,8 +10362,7 @@ const PackageCard = ({
10070
10362
  },
10071
10363
  children: [
10072
10364
  { id: "dependencies", label: "Deps", count: dependencyItems.length },
10073
- { id: "configs", label: "Configs", count: configFiles.length },
10074
- { id: "commands", label: "Commands", count: commands.length }
10365
+ { id: "lenses", label: "Lenses", count: ((_f = pkg.qualityMetrics) == null ? void 0 : _f.lensReadiness) ? Object.values(pkg.qualityMetrics.lensReadiness).filter((l) => l.ready).length : 0, total: ((_g = pkg.qualityMetrics) == null ? void 0 : _g.lensReadiness) ? Object.keys(pkg.qualityMetrics.lensReadiness).length : 0 }
10075
10366
  ].map((tab) => /* @__PURE__ */ jsxs(
10076
10367
  "button",
10077
10368
  {
@@ -10101,7 +10392,7 @@ const PackageCard = ({
10101
10392
  borderRadius: "10px",
10102
10393
  fontSize: theme.fontSizes[0]
10103
10394
  },
10104
- children: tab.count
10395
+ children: "total" in tab ? `${tab.count}/${tab.total}` : tab.count
10105
10396
  }
10106
10397
  )
10107
10398
  ]
@@ -10110,109 +10401,17 @@ const PackageCard = ({
10110
10401
  ))
10111
10402
  }
10112
10403
  ),
10113
- /* @__PURE__ */ jsxs("div", { style: { padding: activeTab === "dependencies" ? "0" : "12px", maxHeight: "300px", overflow: "auto" }, children: [
10114
- activeTab === "commands" && /* @__PURE__ */ jsx("div", { style: { display: "flex", flexDirection: "column", gap: "6px" }, children: commands.length === 0 ? /* @__PURE__ */ jsx("div", { style: { color: theme.colors.textSecondary, fontSize: theme.fontSizes[1] }, children: "No commands available" }) : commands.map((cmd, idx) => /* @__PURE__ */ jsxs(
10115
- "button",
10116
- {
10117
- onClick: () => onCommandClick == null ? void 0 : onCommandClick(cmd, pkg.packageData.path),
10118
- style: {
10119
- display: "flex",
10120
- alignItems: "center",
10121
- gap: "8px",
10122
- padding: "8px 12px",
10123
- backgroundColor: theme.colors.backgroundTertiary,
10124
- border: `1px solid ${theme.colors.border}`,
10125
- borderRadius: "6px",
10126
- color: theme.colors.text,
10127
- cursor: "pointer",
10128
- textAlign: "left"
10129
- },
10130
- children: [
10131
- /* @__PURE__ */ jsx(Terminal, { size: 14, color: theme.colors.accent }),
10132
- /* @__PURE__ */ jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [
10133
- /* @__PURE__ */ jsx("div", { style: { fontWeight: 500, fontSize: theme.fontSizes[1] }, children: cmd.name }),
10134
- /* @__PURE__ */ jsx(
10135
- "div",
10136
- {
10137
- style: {
10138
- fontSize: theme.fontSizes[0],
10139
- color: theme.colors.textSecondary,
10140
- fontFamily: "monospace",
10141
- overflow: "hidden",
10142
- textOverflow: "ellipsis",
10143
- whiteSpace: "nowrap"
10144
- },
10145
- children: cmd.command
10146
- }
10147
- )
10148
- ] }),
10149
- cmd.isLensCommand && /* @__PURE__ */ jsx(
10150
- "span",
10151
- {
10152
- style: {
10153
- padding: "2px 6px",
10154
- backgroundColor: theme.colors.accent + "20",
10155
- color: theme.colors.accent,
10156
- borderRadius: "4px",
10157
- fontSize: theme.fontSizes[0]
10158
- },
10159
- children: cmd.lensId
10160
- }
10161
- ),
10162
- /* @__PURE__ */ jsx(ExternalLink, { size: 12, color: theme.colors.textSecondary })
10163
- ]
10164
- },
10165
- idx
10166
- )) }),
10167
- activeTab === "configs" && /* @__PURE__ */ jsx("div", { style: { display: "flex", flexDirection: "column", gap: "6px" }, children: configFiles.length === 0 ? /* @__PURE__ */ jsx("div", { style: { color: theme.colors.textSecondary, fontSize: theme.fontSizes[1] }, children: "No config files detected" }) : configFiles.map((config, idx) => /* @__PURE__ */ jsxs(
10168
- "button",
10169
- {
10170
- onClick: () => onConfigClick == null ? void 0 : onConfigClick(config),
10171
- style: {
10172
- display: "flex",
10173
- alignItems: "center",
10174
- gap: "8px",
10175
- padding: "8px 12px",
10176
- backgroundColor: theme.colors.backgroundTertiary,
10177
- border: `1px solid ${theme.colors.border}`,
10178
- borderRadius: "6px",
10179
- color: theme.colors.text,
10180
- cursor: "pointer",
10181
- textAlign: "left"
10182
- },
10183
- children: [
10184
- /* @__PURE__ */ jsx(Settings, { size: 14, color: theme.colors.textSecondary }),
10185
- /* @__PURE__ */ jsxs("div", { style: { flex: 1 }, children: [
10186
- /* @__PURE__ */ jsx("div", { style: { fontWeight: 500, fontSize: theme.fontSizes[1] }, children: config.name }),
10187
- /* @__PURE__ */ jsx(
10188
- "div",
10189
- {
10190
- style: {
10191
- fontSize: theme.fontSizes[0],
10192
- color: theme.colors.textSecondary,
10193
- fontFamily: "monospace"
10194
- },
10195
- children: config.path
10196
- }
10197
- )
10198
- ] }),
10199
- config.isInline && /* @__PURE__ */ jsx(
10200
- "span",
10201
- {
10202
- style: {
10203
- padding: "2px 6px",
10204
- backgroundColor: theme.colors.textSecondary + "20",
10205
- color: theme.colors.textSecondary,
10206
- borderRadius: "4px",
10207
- fontSize: theme.fontSizes[0]
10208
- },
10209
- children: "inline"
10210
- }
10211
- )
10212
- ]
10213
- },
10214
- idx
10215
- )) }),
10404
+ /* @__PURE__ */ jsxs("div", { style: { padding: activeTab === "dependencies" ? "0" : "0", maxHeight: "300px", overflow: "auto" }, children: [
10405
+ activeTab === "lenses" && /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column" }, children: [
10406
+ /* @__PURE__ */ jsx(LensReadinessSection, { lensReadiness: (_h = pkg.qualityMetrics) == null ? void 0 : _h.lensReadiness }),
10407
+ /* @__PURE__ */ jsx(
10408
+ OtherScriptsSection,
10409
+ {
10410
+ commands,
10411
+ onCommandClick: (cmd) => onCommandClick == null ? void 0 : onCommandClick(cmd, pkg.packageData.path)
10412
+ }
10413
+ )
10414
+ ] }),
10216
10415
  activeTab === "dependencies" && /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", height: "100%" }, children: [
10217
10416
  dependencyItems.length === 0 ? /* @__PURE__ */ jsxs(
10218
10417
  "div",