version-pill-react 1.2.6 → 1.2.7

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/index.js CHANGED
@@ -306,7 +306,7 @@ function VersionPill({
306
306
  }, {});
307
307
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
308
308
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: (0, import_clsx.default)(positionStyles[position], className), style: { display: "inline-flex" }, children: renderBadge() }),
309
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: {
309
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: {
310
310
  position: "fixed",
311
311
  top: 0,
312
312
  left: 0,
@@ -316,311 +316,278 @@ function VersionPill({
316
316
  height: "100vh",
317
317
  zIndex: 2147483647,
318
318
  display: "flex",
319
- alignItems: "center",
320
- justifyContent: "center",
321
- padding: 20,
322
- boxSizing: "border-box"
323
- }, children: [
324
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
325
- "div",
326
- {
327
- onClick: () => setIsOpen(false),
328
- style: {
329
- position: "fixed",
330
- top: 0,
331
- left: 0,
332
- width: "100vw",
333
- height: "100vh",
334
- background: isLight ? "rgba(0,0,0,0.5)" : "rgba(0,0,0,0.7)",
335
- backdropFilter: "blur(4px)",
336
- WebkitBackdropFilter: "blur(4px)"
337
- }
338
- }
339
- ),
340
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
341
- "div",
342
- {
343
- style: {
344
- position: "relative",
345
- zIndex: 1,
346
- display: "flex",
347
- flexDirection: "column",
348
- width: "100%",
349
- maxWidth: 400,
350
- maxHeight: "min(480px, 70vh)",
351
- borderRadius: 12,
352
- boxShadow: isLight ? "0 20px 40px -10px rgba(0,0,0,0.15), 0 0 0 1px rgba(0,0,0,0.05)" : "0 20px 40px -10px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.1)",
353
- background: isLight ? "#fff" : "#1a1a1a",
354
- overflow: "hidden"
355
- },
356
- children: [
357
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
358
- "div",
359
- {
360
- style: {
361
- flexShrink: 0,
362
- padding: "14px 16px",
363
- borderBottom: `1px solid ${isLight ? "#e5e5e5" : "#2a2a2a"}`,
364
- display: "flex",
365
- alignItems: "center",
366
- justifyContent: "space-between"
367
- },
368
- children: [
369
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 10 }, children: [
370
- project?.icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 18 }, children: project.icon }),
371
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
372
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { style: { fontWeight: 600, fontSize: 15, color: isLight ? "#18181b" : "#fff", margin: 0 }, children: project?.name || "What's New" }),
373
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { style: { fontSize: 11, color: isLight ? "#71717a" : "#a1a1aa", margin: 0 }, children: [
374
- "v",
375
- currentVersion
376
- ] })
319
+ flexDirection: "column",
320
+ boxSizing: "border-box",
321
+ background: isLight ? "#fff" : "#0a0a0a"
322
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
323
+ "div",
324
+ {
325
+ style: {
326
+ display: "flex",
327
+ flexDirection: "column",
328
+ width: "100%",
329
+ height: "100%",
330
+ borderRadius: 12,
331
+ overflow: "hidden"
332
+ },
333
+ children: [
334
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
335
+ "div",
336
+ {
337
+ style: {
338
+ flexShrink: 0,
339
+ padding: "16px 20px",
340
+ borderBottom: `1px solid ${isLight ? "#e5e5e5" : "#1f1f1f"}`,
341
+ display: "flex",
342
+ alignItems: "center",
343
+ justifyContent: "space-between"
344
+ },
345
+ children: [
346
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 12 }, children: [
347
+ project?.icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 24 }, children: project.icon }),
348
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
349
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { style: { fontWeight: 600, fontSize: 18, color: isLight ? "#18181b" : "#fff", margin: 0 }, children: project?.name || "What's New" }),
350
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { style: { fontSize: 13, color: isLight ? "#71717a" : "#a1a1aa", margin: 0 }, children: [
351
+ "v",
352
+ currentVersion
377
353
  ] })
378
- ] }),
379
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
380
- "button",
381
- {
382
- onClick: () => setIsOpen(false),
383
- style: {
384
- width: 28,
385
- height: 28,
386
- display: "flex",
387
- alignItems: "center",
388
- justifyContent: "center",
389
- borderRadius: 6,
390
- background: isLight ? "#f5f5f5" : "#2a2a2a",
391
- border: "none",
392
- cursor: "pointer",
393
- color: isLight ? "#71717a" : "#a1a1aa",
394
- transition: "background 150ms"
395
- },
396
- onMouseEnter: (e) => e.currentTarget.style.background = isLight ? "#e5e5e5" : "#3a3a3a",
397
- onMouseLeave: (e) => e.currentTarget.style.background = isLight ? "#f5f5f5" : "#2a2a2a",
398
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M18 6L6 18M6 6l12 12" }) })
399
- }
400
- )
401
- ]
402
- }
403
- ),
404
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
405
- "div",
406
- {
407
- style: {
408
- flexShrink: 0,
409
- display: "flex",
410
- gap: 2,
411
- padding: "8px 12px",
412
- borderBottom: `1px solid ${isLight ? "#e5e5e5" : "#2a2a2a"}`,
413
- background: isLight ? "#fafafa" : "#151515"
414
- },
415
- children: ["changelog", "roadmap", "ideas"].map((tab) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
354
+ ] })
355
+ ] }),
356
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
416
357
  "button",
417
358
  {
418
- onClick: () => setActiveTab(tab),
359
+ onClick: () => setIsOpen(false),
419
360
  style: {
420
- padding: "6px 10px",
421
- borderRadius: 6,
361
+ width: 36,
362
+ height: 36,
363
+ display: "flex",
364
+ alignItems: "center",
365
+ justifyContent: "center",
366
+ borderRadius: 8,
367
+ background: isLight ? "#f5f5f5" : "#1f1f1f",
422
368
  border: "none",
423
369
  cursor: "pointer",
424
- fontSize: 12,
425
- fontWeight: 500,
426
- background: activeTab === tab ? isLight ? "#fff" : "#2a2a2a" : "transparent",
427
- color: activeTab === tab ? isLight ? "#18181b" : "#fff" : isLight ? "#71717a" : "#71717a",
428
- boxShadow: activeTab === tab ? isLight ? "0 1px 2px rgba(0,0,0,0.05)" : "0 1px 2px rgba(0,0,0,0.2)" : "none",
429
- transition: "all 150ms"
430
- },
431
- children: [
432
- tab === "changelog" && "Changelog",
433
- tab === "roadmap" && "Roadmap",
434
- tab === "ideas" && "Ideas"
435
- ]
436
- },
437
- tab
438
- ))
439
- }
440
- ),
441
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { flex: 1, overflowY: "auto", padding: 12, minHeight: 0 }, children: [
442
- activeTab === "changelog" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: versionsArray.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { textAlign: "center", padding: 30, color: isLight ? "#71717a" : "#a1a1aa" }, children: [
443
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 24, marginBottom: 6 }, children: "\u{1F680}" }),
444
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 13 }, children: "No releases yet" })
445
- ] }) : versionsArray.slice(0, 5).map((version, idx) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { marginBottom: 12, paddingBottom: 12, borderBottom: idx < versionsArray.length - 1 && idx < 4 ? `1px solid ${isLight ? "#f0f0f0" : "#252525"}` : "none" }, children: [
446
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 6, marginBottom: 3 }, children: [
447
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 14 }, children: version.emoji || "\u{1F4E6}" }),
448
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontWeight: 600, fontSize: 13, color: isLight ? "#18181b" : "#fff" }, children: version.title }),
449
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
450
- "span",
451
- {
452
- style: {
453
- padding: "1px 5px",
454
- fontSize: 9,
455
- fontWeight: 500,
456
- borderRadius: 3,
457
- background: version.type === "major" ? "#f3e8ff" : version.type === "minor" ? "#dbeafe" : isLight ? "#f4f4f5" : "#2a2a2a",
458
- color: version.type === "major" ? "#7c3aed" : version.type === "minor" ? "#2563eb" : isLight ? "#52525b" : "#a1a1aa"
459
- },
460
- children: version.type
461
- }
462
- )
463
- ] }),
464
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { fontSize: 11, color: isLight ? "#71717a" : "#71717a", marginBottom: 6 }, children: [
465
- "v",
466
- version.version,
467
- " \xB7 ",
468
- new Date(version.date).toLocaleDateString()
469
- ] }),
470
- version.description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { style: { fontSize: 12, color: isLight ? "#52525b" : "#a1a1aa", margin: "0 0 6px 0", lineHeight: 1.5 }, children: version.description }),
471
- version.features && version.features.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("ul", { style: { margin: 0, paddingLeft: 0, listStyle: "none" }, children: [
472
- version.features.slice(0, 4).map((feature, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("li", { style: { display: "flex", alignItems: "flex-start", gap: 6, fontSize: 12, color: isLight ? "#52525b" : "#a1a1aa", marginBottom: 2, lineHeight: 1.4 }, children: [
473
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { color: "#22c55e", fontSize: 11 }, children: "\u2713" }),
474
- feature
475
- ] }, i)),
476
- version.features.length > 4 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("li", { style: { fontSize: 11, color: isLight ? "#a1a1aa" : "#525252", marginTop: 2 }, children: [
477
- "+",
478
- version.features.length - 4,
479
- " more..."
480
- ] })
481
- ] })
482
- ] }, idx)) }),
483
- activeTab === "roadmap" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: Object.keys(groupedTasks).length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { textAlign: "center", padding: 30, color: isLight ? "#71717a" : "#a1a1aa" }, children: [
484
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 24, marginBottom: 6 }, children: "\u{1F5FA}\uFE0F" }),
485
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 13 }, children: "No public roadmap items" })
486
- ] }) : ["in-progress", "todo", "backlog"].map((col) => {
487
- const tasks = groupedTasks[col];
488
- if (!tasks || tasks.length === 0) return null;
489
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { marginBottom: 12 }, children: [
490
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("h3", { style: { fontSize: 10, fontWeight: 600, color: isLight ? "#a1a1aa" : "#71717a", marginBottom: 6, textTransform: "uppercase", letterSpacing: "0.5px" }, children: [
491
- COLUMN_LABELS[col] || col,
492
- " (",
493
- tasks.length,
494
- ")"
495
- ] }),
496
- tasks.slice(0, 4).map((task) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
497
- "div",
498
- {
499
- style: {
500
- padding: "8px 10px",
501
- marginBottom: 4,
502
- borderRadius: 5,
503
- background: isLight ? "#f5f5f5" : "#252525"
504
- },
505
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 6 }, children: [
506
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
507
- "span",
508
- {
509
- style: {
510
- width: 6,
511
- height: 6,
512
- borderRadius: "50%",
513
- background: TYPE_COLORS[task.type] || "#71717a",
514
- flexShrink: 0
515
- }
516
- }
517
- ),
518
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 12, color: isLight ? "#18181b" : "#fff", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: task.title })
519
- ] })
370
+ color: isLight ? "#71717a" : "#a1a1aa",
371
+ transition: "background 150ms"
520
372
  },
521
- task.id
522
- )),
523
- tasks.length > 4 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { fontSize: 10, color: isLight ? "#a1a1aa" : "#525252", marginTop: 4 }, children: [
524
- "+",
525
- tasks.length - 4,
526
- " more..."
527
- ] })
528
- ] }, col);
529
- }) }),
530
- activeTab === "ideas" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: ideasArray.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { textAlign: "center", padding: 30, color: isLight ? "#71717a" : "#a1a1aa" }, children: [
531
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 24, marginBottom: 6 }, children: "\u{1F4A1}" }),
532
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 13 }, children: "No feature requests yet" })
533
- ] }) : ideasArray.slice(0, 5).map((idea) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
534
- "div",
373
+ onMouseEnter: (e) => e.currentTarget.style.background = isLight ? "#e5e5e5" : "#2a2a2a",
374
+ onMouseLeave: (e) => e.currentTarget.style.background = isLight ? "#f5f5f5" : "#1f1f1f",
375
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M18 6L6 18M6 6l12 12" }) })
376
+ }
377
+ )
378
+ ]
379
+ }
380
+ ),
381
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
382
+ "div",
383
+ {
384
+ style: {
385
+ flexShrink: 0,
386
+ display: "flex",
387
+ gap: 4,
388
+ padding: "12px 20px",
389
+ borderBottom: `1px solid ${isLight ? "#e5e5e5" : "#1f1f1f"}`
390
+ },
391
+ children: ["changelog", "roadmap", "ideas"].map((tab) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
392
+ "button",
535
393
  {
394
+ onClick: () => setActiveTab(tab),
536
395
  style: {
537
- padding: 10,
538
- marginBottom: 6,
539
- borderRadius: 6,
540
- background: isLight ? "#f5f5f5" : "#252525",
541
- display: "flex",
542
- alignItems: "flex-start",
543
- gap: 10
396
+ padding: "10px 16px",
397
+ borderRadius: 8,
398
+ border: "none",
399
+ cursor: "pointer",
400
+ fontSize: 14,
401
+ fontWeight: 500,
402
+ background: activeTab === tab ? isLight ? "#18181b" : "#fff" : "transparent",
403
+ color: activeTab === tab ? isLight ? "#fff" : "#18181b" : isLight ? "#71717a" : "#71717a",
404
+ transition: "all 150ms"
544
405
  },
545
406
  children: [
546
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
547
- "div",
548
- {
549
- style: {
550
- display: "flex",
551
- flexDirection: "column",
552
- alignItems: "center",
553
- padding: "3px 6px",
554
- borderRadius: 4,
555
- background: isLight ? "#fff" : "#1a1a1a",
556
- minWidth: 32
557
- },
558
- children: [
559
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 12, fontWeight: 600, color: isLight ? "#18181b" : "#fff" }, children: idea.votes }),
560
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 9, color: isLight ? "#71717a" : "#71717a" }, children: "votes" })
561
- ]
562
- }
563
- ),
564
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { flex: 1, minWidth: 0 }, children: [
565
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 12, fontWeight: 500, color: isLight ? "#18181b" : "#fff", marginBottom: 2 }, children: idea.title }),
566
- idea.description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 11, color: isLight ? "#71717a" : "#71717a", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: idea.description.slice(0, 80) })
567
- ] })
407
+ tab === "changelog" && "\u{1F680} Changelog",
408
+ tab === "roadmap" && "\u{1F5FA}\uFE0F Roadmap",
409
+ tab === "ideas" && "\u{1F4A1} Ideas"
568
410
  ]
569
411
  },
570
- idea.id
571
- )) })
572
- ] }),
573
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
412
+ tab
413
+ ))
414
+ }
415
+ ),
416
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { flex: 1, overflowY: "auto", padding: "20px 24px", minHeight: 0 }, children: [
417
+ activeTab === "changelog" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { maxWidth: 640 }, children: versionsArray.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { textAlign: "center", padding: 60, color: isLight ? "#71717a" : "#a1a1aa" }, children: [
418
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 48, marginBottom: 12 }, children: "\u{1F680}" }),
419
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 16 }, children: "No releases yet" })
420
+ ] }) : versionsArray.slice(0, 10).map((version, idx) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { marginBottom: 24, paddingBottom: 24, borderBottom: idx < versionsArray.length - 1 && idx < 9 ? `1px solid ${isLight ? "#f0f0f0" : "#1f1f1f"}` : "none" }, children: [
421
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 6 }, children: [
422
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 20 }, children: version.emoji || "\u{1F4E6}" }),
423
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontWeight: 600, fontSize: 18, color: isLight ? "#18181b" : "#fff" }, children: version.title }),
424
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
425
+ "span",
426
+ {
427
+ style: {
428
+ padding: "3px 8px",
429
+ fontSize: 11,
430
+ fontWeight: 500,
431
+ borderRadius: 4,
432
+ background: version.type === "major" ? "#f3e8ff" : version.type === "minor" ? "#dbeafe" : isLight ? "#f4f4f5" : "#1f1f1f",
433
+ color: version.type === "major" ? "#7c3aed" : version.type === "minor" ? "#2563eb" : isLight ? "#52525b" : "#a1a1aa"
434
+ },
435
+ children: version.type
436
+ }
437
+ )
438
+ ] }),
439
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { fontSize: 13, color: isLight ? "#71717a" : "#71717a", marginBottom: 10 }, children: [
440
+ "v",
441
+ version.version,
442
+ " \xB7 ",
443
+ new Date(version.date).toLocaleDateString()
444
+ ] }),
445
+ version.description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { style: { fontSize: 15, color: isLight ? "#52525b" : "#a1a1aa", margin: "0 0 12px 0", lineHeight: 1.6 }, children: version.description }),
446
+ version.features && version.features.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { style: { margin: 0, paddingLeft: 0, listStyle: "none" }, children: version.features.map((feature, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("li", { style: { display: "flex", alignItems: "flex-start", gap: 10, fontSize: 14, color: isLight ? "#52525b" : "#a1a1aa", marginBottom: 6, lineHeight: 1.5 }, children: [
447
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { color: "#22c55e", fontSize: 14, marginTop: 2 }, children: "\u2713" }),
448
+ feature
449
+ ] }, i)) })
450
+ ] }, idx)) }),
451
+ activeTab === "roadmap" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { maxWidth: 640 }, children: Object.keys(groupedTasks).length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { textAlign: "center", padding: 60, color: isLight ? "#71717a" : "#a1a1aa" }, children: [
452
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 48, marginBottom: 12 }, children: "\u{1F5FA}\uFE0F" }),
453
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 16 }, children: "No public roadmap items" })
454
+ ] }) : ["in-progress", "todo", "backlog"].map((col) => {
455
+ const tasks = groupedTasks[col];
456
+ if (!tasks || tasks.length === 0) return null;
457
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { marginBottom: 24 }, children: [
458
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("h3", { style: { fontSize: 12, fontWeight: 600, color: isLight ? "#a1a1aa" : "#71717a", marginBottom: 12, textTransform: "uppercase", letterSpacing: "0.5px" }, children: [
459
+ COLUMN_LABELS[col] || col,
460
+ " (",
461
+ tasks.length,
462
+ ")"
463
+ ] }),
464
+ tasks.map((task) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
465
+ "div",
466
+ {
467
+ style: {
468
+ padding: "12px 16px",
469
+ marginBottom: 8,
470
+ borderRadius: 8,
471
+ background: isLight ? "#f5f5f5" : "#151515",
472
+ border: `1px solid ${isLight ? "#e5e5e5" : "#1f1f1f"}`
473
+ },
474
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 10 }, children: [
475
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
476
+ "span",
477
+ {
478
+ style: {
479
+ width: 8,
480
+ height: 8,
481
+ borderRadius: "50%",
482
+ background: TYPE_COLORS[task.type] || "#71717a",
483
+ flexShrink: 0
484
+ }
485
+ }
486
+ ),
487
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 14, color: isLight ? "#18181b" : "#fff" }, children: task.title })
488
+ ] })
489
+ },
490
+ task.id
491
+ ))
492
+ ] }, col);
493
+ }) }),
494
+ activeTab === "ideas" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { maxWidth: 640 }, children: ideasArray.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { textAlign: "center", padding: 60, color: isLight ? "#71717a" : "#a1a1aa" }, children: [
495
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 48, marginBottom: 12 }, children: "\u{1F4A1}" }),
496
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 16 }, children: "No feature requests yet" })
497
+ ] }) : ideasArray.map((idea) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
574
498
  "div",
575
499
  {
576
500
  style: {
577
- flexShrink: 0,
578
- padding: "10px 12px",
579
- borderTop: `1px solid ${isLight ? "#e5e5e5" : "#2a2a2a"}`,
580
- background: isLight ? "#fafafa" : "#151515",
501
+ padding: 16,
502
+ marginBottom: 12,
503
+ borderRadius: 8,
504
+ background: isLight ? "#f5f5f5" : "#151515",
505
+ border: `1px solid ${isLight ? "#e5e5e5" : "#1f1f1f"}`,
581
506
  display: "flex",
582
- alignItems: "center",
583
- justifyContent: "space-between"
507
+ alignItems: "flex-start",
508
+ gap: 16
584
509
  },
585
510
  children: [
586
- showBranding && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
587
- "a",
588
- {
589
- href: "https://versionpill.com",
590
- target: "_blank",
591
- rel: "noopener noreferrer",
592
- style: { fontSize: 10, color: isLight ? "#a1a1aa" : "#525252", textDecoration: "none" },
593
- children: "Powered by Version Pill"
594
- }
595
- ),
596
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
597
- "a",
511
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
512
+ "div",
598
513
  {
599
- href: `${baseUrl}/${projectId}/${activeTab === "ideas" ? "feature-requests" : activeTab}`,
600
- target: "_blank",
601
- rel: "noopener noreferrer",
602
514
  style: {
603
- padding: "5px 10px",
604
- fontSize: 11,
605
- fontWeight: 500,
606
- borderRadius: 5,
607
- background: "#22c55e",
608
- color: "#fff",
609
- textDecoration: "none",
610
- transition: "background 150ms"
515
+ display: "flex",
516
+ flexDirection: "column",
517
+ alignItems: "center",
518
+ padding: "8px 12px",
519
+ borderRadius: 6,
520
+ background: isLight ? "#fff" : "#0a0a0a",
521
+ minWidth: 50
611
522
  },
612
- onMouseEnter: (e) => e.currentTarget.style.background = "#16a34a",
613
- onMouseLeave: (e) => e.currentTarget.style.background = "#22c55e",
614
- children: "View All \u2192"
523
+ children: [
524
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 18, fontWeight: 600, color: isLight ? "#18181b" : "#fff" }, children: idea.votes }),
525
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 11, color: isLight ? "#71717a" : "#71717a" }, children: "votes" })
526
+ ]
615
527
  }
616
- )
528
+ ),
529
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { flex: 1, minWidth: 0 }, children: [
530
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 16, fontWeight: 500, color: isLight ? "#18181b" : "#fff", marginBottom: 4 }, children: idea.title }),
531
+ idea.description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 14, color: isLight ? "#71717a" : "#71717a", lineHeight: 1.5 }, children: idea.description })
532
+ ] })
617
533
  ]
618
- }
619
- )
620
- ]
621
- }
622
- )
623
- ] })
534
+ },
535
+ idea.id
536
+ )) })
537
+ ] }),
538
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
539
+ "div",
540
+ {
541
+ style: {
542
+ flexShrink: 0,
543
+ padding: "16px 24px",
544
+ borderTop: `1px solid ${isLight ? "#e5e5e5" : "#1f1f1f"}`,
545
+ display: "flex",
546
+ alignItems: "center",
547
+ justifyContent: "space-between"
548
+ },
549
+ children: [
550
+ showBranding && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
551
+ "a",
552
+ {
553
+ href: "https://versionpill.com",
554
+ target: "_blank",
555
+ rel: "noopener noreferrer",
556
+ style: { fontSize: 12, color: isLight ? "#a1a1aa" : "#525252", textDecoration: "none" },
557
+ children: "Powered by Version Pill"
558
+ }
559
+ ),
560
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
561
+ "a",
562
+ {
563
+ href: `${baseUrl}/${projectId}/${activeTab === "ideas" ? "feature-requests" : activeTab}`,
564
+ target: "_blank",
565
+ rel: "noopener noreferrer",
566
+ style: {
567
+ padding: "10px 20px",
568
+ fontSize: 14,
569
+ fontWeight: 500,
570
+ borderRadius: 8,
571
+ background: "#22c55e",
572
+ color: "#fff",
573
+ textDecoration: "none",
574
+ transition: "background 150ms"
575
+ },
576
+ onMouseEnter: (e) => e.currentTarget.style.background = "#16a34a",
577
+ onMouseLeave: (e) => e.currentTarget.style.background = "#22c55e",
578
+ children: [
579
+ "View Full ",
580
+ activeTab === "changelog" ? "Changelog" : activeTab === "roadmap" ? "Roadmap" : "Ideas",
581
+ " \u2192"
582
+ ]
583
+ }
584
+ )
585
+ ]
586
+ }
587
+ )
588
+ ]
589
+ }
590
+ ) })
624
591
  ] });
625
592
  }
626
593
  function VersionBadge({