version-pill-react 1.2.7 → 1.3.0

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.d.mts CHANGED
@@ -19,6 +19,9 @@ interface RoadmapTask {
19
19
  type: string;
20
20
  priority: string;
21
21
  column: string;
22
+ columnId?: string;
23
+ columnName?: string;
24
+ description?: string | null;
22
25
  isPublic?: boolean;
23
26
  }
24
27
  interface Idea {
@@ -41,7 +44,10 @@ interface ChangelogAPIResponse {
41
44
  }
42
45
  interface RoadmapAPIResponse {
43
46
  project: ProjectInfo;
44
- tasks: RoadmapTask[];
47
+ tasks: RoadmapTask[] | {
48
+ inProgress?: RoadmapTask[];
49
+ planned?: RoadmapTask[];
50
+ };
45
51
  }
46
52
  interface BadgeAPIResponse {
47
53
  version: string | null;
package/dist/index.d.ts CHANGED
@@ -19,6 +19,9 @@ interface RoadmapTask {
19
19
  type: string;
20
20
  priority: string;
21
21
  column: string;
22
+ columnId?: string;
23
+ columnName?: string;
24
+ description?: string | null;
22
25
  isPublic?: boolean;
23
26
  }
24
27
  interface Idea {
@@ -41,7 +44,10 @@ interface ChangelogAPIResponse {
41
44
  }
42
45
  interface RoadmapAPIResponse {
43
46
  project: ProjectInfo;
44
- tasks: RoadmapTask[];
47
+ tasks: RoadmapTask[] | {
48
+ inProgress?: RoadmapTask[];
49
+ planned?: RoadmapTask[];
50
+ };
45
51
  }
46
52
  interface BadgeAPIResponse {
47
53
  version: string | null;
package/dist/index.js CHANGED
@@ -80,7 +80,11 @@ var COLUMN_LABELS = {
80
80
  backlog: "Backlog",
81
81
  todo: "Planned",
82
82
  "in-progress": "In Progress",
83
- done: "Shipped"
83
+ "in progress": "In Progress",
84
+ inProgress: "In Progress",
85
+ done: "Shipped",
86
+ shipped: "Shipped",
87
+ completed: "Shipped"
84
88
  };
85
89
  function useTheme(theme) {
86
90
  const [resolved, setResolved] = (0, import_react.useState)("light");
@@ -119,6 +123,13 @@ function VersionPill({
119
123
  const [isOpen, setIsOpen] = (0, import_react.useState)(false);
120
124
  const [activeTab, setActiveTab] = (0, import_react.useState)("changelog");
121
125
  const [hasNewVersion, setHasNewVersion] = (0, import_react.useState)(false);
126
+ const [showIdeaForm, setShowIdeaForm] = (0, import_react.useState)(false);
127
+ const [ideaTitle, setIdeaTitle] = (0, import_react.useState)("");
128
+ const [ideaDescription, setIdeaDescription] = (0, import_react.useState)("");
129
+ const [ideaAuthorName, setIdeaAuthorName] = (0, import_react.useState)("");
130
+ const [ideaAuthorEmail, setIdeaAuthorEmail] = (0, import_react.useState)("");
131
+ const [submittingIdea, setSubmittingIdea] = (0, import_react.useState)(false);
132
+ const [ideaSubmitMessage, setIdeaSubmitMessage] = (0, import_react.useState)(null);
122
133
  const resolvedTheme = useTheme(theme);
123
134
  const isLight = resolvedTheme === "light";
124
135
  const sizeConfig = SIZE_CONFIG[size];
@@ -164,7 +175,26 @@ function VersionPill({
164
175
  const response = await fetch(`${baseUrl}/api/roadmap/${projectId}`);
165
176
  if (!response.ok) return;
166
177
  const data = await response.json();
167
- setRoadmapTasks(data.tasks || []);
178
+ let tasks = [];
179
+ if (Array.isArray(data.tasks)) {
180
+ tasks = data.tasks;
181
+ } else if (data.tasks && typeof data.tasks === "object") {
182
+ const grouped = data.tasks;
183
+ const mapTask = (t, defaultColumn) => ({
184
+ id: t.id || t._id,
185
+ title: t.title,
186
+ description: t.description,
187
+ type: t.type || "feature",
188
+ priority: t.priority || "medium",
189
+ column: t.columnId || defaultColumn,
190
+ columnId: t.columnId,
191
+ columnName: t.columnName
192
+ });
193
+ const inProgress = (grouped.inProgress || []).map((t) => mapTask(t, "in-progress"));
194
+ const planned = (grouped.planned || []).map((t) => mapTask(t, "todo"));
195
+ tasks = [...inProgress, ...planned];
196
+ }
197
+ setRoadmapTasks(tasks);
168
198
  } catch {
169
199
  }
170
200
  }, [projectId, baseUrl]);
@@ -177,6 +207,36 @@ function VersionPill({
177
207
  } catch {
178
208
  }
179
209
  }, [projectId, baseUrl]);
210
+ const submitIdea = (0, import_react.useCallback)(async () => {
211
+ if (!ideaTitle.trim()) return;
212
+ setSubmittingIdea(true);
213
+ setIdeaSubmitMessage(null);
214
+ try {
215
+ const response = await fetch(`${baseUrl}/api/ideas/${projectId}`, {
216
+ method: "POST",
217
+ headers: { "Content-Type": "application/json" },
218
+ body: JSON.stringify({
219
+ title: ideaTitle.trim(),
220
+ description: ideaDescription.trim() || void 0,
221
+ authorName: ideaAuthorName.trim() || void 0,
222
+ authorEmail: ideaAuthorEmail.trim() || void 0
223
+ })
224
+ });
225
+ if (!response.ok) {
226
+ const error = await response.json().catch(() => ({ error: "Failed to submit" }));
227
+ throw new Error(error.error || "Failed to submit idea");
228
+ }
229
+ setIdeaSubmitMessage({ type: "success", text: "Thanks! Your idea has been submitted." });
230
+ setIdeaTitle("");
231
+ setIdeaDescription("");
232
+ setShowIdeaForm(false);
233
+ fetchIdeas();
234
+ } catch (err) {
235
+ setIdeaSubmitMessage({ type: "error", text: err.message || "Failed to submit idea" });
236
+ } finally {
237
+ setSubmittingIdea(false);
238
+ }
239
+ }, [baseUrl, projectId, ideaTitle, ideaDescription, ideaAuthorName, ideaAuthorEmail, fetchIdeas]);
180
240
  (0, import_react.useEffect)(() => {
181
241
  fetchVersion();
182
242
  }, [fetchVersion]);
@@ -448,92 +508,288 @@ function VersionPill({
448
508
  feature
449
509
  ] }, i)) })
450
510
  ] }, 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: [
511
+ activeTab === "roadmap" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { maxWidth: 640 }, children: Object.keys(groupedTasks).length === 0 || tasksArray.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { textAlign: "center", padding: 60, color: isLight ? "#71717a" : "#a1a1aa" }, children: [
452
512
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 48, marginBottom: 12 }, children: "\u{1F5FA}\uFE0F" }),
453
513
  /* @__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"}`
514
+ ] }) : (
515
+ // Show all columns that have tasks, prioritizing known columns first
516
+ [.../* @__PURE__ */ new Set([
517
+ ...["in-progress", "todo", "backlog"].filter((c) => groupedTasks[c]?.length > 0),
518
+ ...Object.keys(groupedTasks).filter((c) => !["in-progress", "todo", "backlog", "done"].includes(c))
519
+ ])].map((col) => {
520
+ const tasks = groupedTasks[col];
521
+ if (!tasks || tasks.length === 0) return null;
522
+ const columnLabel = tasks[0]?.columnName || COLUMN_LABELS[col] || col;
523
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { marginBottom: 24 }, children: [
524
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("h3", { style: { fontSize: 12, fontWeight: 600, color: isLight ? "#a1a1aa" : "#71717a", marginBottom: 12, textTransform: "uppercase", letterSpacing: "0.5px" }, children: [
525
+ columnLabel,
526
+ " (",
527
+ tasks.length,
528
+ ")"
529
+ ] }),
530
+ tasks.map((task) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
531
+ "div",
532
+ {
533
+ style: {
534
+ padding: "12px 16px",
535
+ marginBottom: 8,
536
+ borderRadius: 8,
537
+ background: isLight ? "#f5f5f5" : "#151515",
538
+ border: `1px solid ${isLight ? "#e5e5e5" : "#1f1f1f"}`
539
+ },
540
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "flex-start", gap: 10 }, children: [
541
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
542
+ "span",
543
+ {
544
+ style: {
545
+ width: 8,
546
+ height: 8,
547
+ borderRadius: "50%",
548
+ background: TYPE_COLORS[task.type] || "#71717a",
549
+ flexShrink: 0,
550
+ marginTop: 5
551
+ }
552
+ }
553
+ ),
554
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { flex: 1, minWidth: 0 }, children: [
555
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 14, color: isLight ? "#18181b" : "#fff" }, children: task.title }),
556
+ task.description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { style: { fontSize: 13, color: isLight ? "#71717a" : "#a1a1aa", margin: "4px 0 0 0", lineHeight: 1.5 }, children: task.description })
557
+ ] })
558
+ ] })
473
559
  },
474
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 10 }, children: [
560
+ task.id
561
+ ))
562
+ ] }, col);
563
+ })
564
+ ) }),
565
+ activeTab === "ideas" && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { maxWidth: 640 }, children: [
566
+ !showIdeaForm ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
567
+ "button",
568
+ {
569
+ onClick: () => setShowIdeaForm(true),
570
+ style: {
571
+ display: "flex",
572
+ alignItems: "center",
573
+ justifyContent: "center",
574
+ gap: 8,
575
+ width: "100%",
576
+ padding: "12px 16px",
577
+ marginBottom: 20,
578
+ borderRadius: 8,
579
+ border: `1px dashed ${isLight ? "#d4d4d8" : "#3f3f46"}`,
580
+ background: "transparent",
581
+ color: isLight ? "#71717a" : "#a1a1aa",
582
+ fontSize: 14,
583
+ fontWeight: 500,
584
+ cursor: "pointer",
585
+ transition: "all 150ms"
586
+ },
587
+ onMouseEnter: (e) => {
588
+ e.currentTarget.style.borderColor = isLight ? "#a1a1aa" : "#71717a";
589
+ e.currentTarget.style.color = isLight ? "#52525b" : "#d4d4d8";
590
+ },
591
+ onMouseLeave: (e) => {
592
+ e.currentTarget.style.borderColor = isLight ? "#d4d4d8" : "#3f3f46";
593
+ e.currentTarget.style.color = isLight ? "#71717a" : "#a1a1aa";
594
+ },
595
+ children: [
596
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 18 }, children: "\u{1F4A1}" }),
597
+ "Suggest a feature"
598
+ ]
599
+ }
600
+ ) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
601
+ "div",
602
+ {
603
+ style: {
604
+ padding: 16,
605
+ marginBottom: 20,
606
+ borderRadius: 8,
607
+ background: isLight ? "#f5f5f5" : "#151515",
608
+ border: `1px solid ${isLight ? "#e5e5e5" : "#1f1f1f"}`
609
+ },
610
+ children: [
611
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", marginBottom: 12 }, children: [
612
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontWeight: 600, color: isLight ? "#18181b" : "#fff" }, children: "Suggest a Feature" }),
475
613
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
476
- "span",
614
+ "button",
477
615
  {
616
+ onClick: () => {
617
+ setShowIdeaForm(false);
618
+ setIdeaSubmitMessage(null);
619
+ },
478
620
  style: {
479
- width: 8,
480
- height: 8,
481
- borderRadius: "50%",
482
- background: TYPE_COLORS[task.type] || "#71717a",
483
- flexShrink: 0
621
+ background: "transparent",
622
+ border: "none",
623
+ color: isLight ? "#71717a" : "#a1a1aa",
624
+ cursor: "pointer",
625
+ fontSize: 18
626
+ },
627
+ children: "\xD7"
628
+ }
629
+ )
630
+ ] }),
631
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
632
+ "input",
633
+ {
634
+ type: "text",
635
+ value: ideaTitle,
636
+ onChange: (e) => setIdeaTitle(e.target.value),
637
+ placeholder: "Feature title *",
638
+ style: {
639
+ width: "100%",
640
+ padding: "10px 12px",
641
+ marginBottom: 8,
642
+ borderRadius: 6,
643
+ border: `1px solid ${isLight ? "#e5e5e5" : "#2a2a2a"}`,
644
+ background: isLight ? "#fff" : "#0a0a0a",
645
+ color: isLight ? "#18181b" : "#fff",
646
+ fontSize: 14,
647
+ outline: "none",
648
+ boxSizing: "border-box"
649
+ }
650
+ }
651
+ ),
652
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
653
+ "textarea",
654
+ {
655
+ value: ideaDescription,
656
+ onChange: (e) => setIdeaDescription(e.target.value),
657
+ placeholder: "Describe your idea...",
658
+ rows: 3,
659
+ style: {
660
+ width: "100%",
661
+ padding: "10px 12px",
662
+ marginBottom: 8,
663
+ borderRadius: 6,
664
+ border: `1px solid ${isLight ? "#e5e5e5" : "#2a2a2a"}`,
665
+ background: isLight ? "#fff" : "#0a0a0a",
666
+ color: isLight ? "#18181b" : "#fff",
667
+ fontSize: 14,
668
+ outline: "none",
669
+ resize: "none",
670
+ boxSizing: "border-box"
671
+ }
672
+ }
673
+ ),
674
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "grid", gridTemplateColumns: "1fr 1fr", gap: 8, marginBottom: 12 }, children: [
675
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
676
+ "input",
677
+ {
678
+ type: "text",
679
+ value: ideaAuthorName,
680
+ onChange: (e) => setIdeaAuthorName(e.target.value),
681
+ placeholder: "Name (optional)",
682
+ style: {
683
+ width: "100%",
684
+ padding: "8px 12px",
685
+ borderRadius: 6,
686
+ border: `1px solid ${isLight ? "#e5e5e5" : "#2a2a2a"}`,
687
+ background: isLight ? "#fff" : "#0a0a0a",
688
+ color: isLight ? "#18181b" : "#fff",
689
+ fontSize: 13,
690
+ outline: "none",
691
+ boxSizing: "border-box"
484
692
  }
485
693
  }
486
694
  ),
487
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 14, color: isLight ? "#18181b" : "#fff" }, children: task.title })
488
- ] })
695
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
696
+ "input",
697
+ {
698
+ type: "email",
699
+ value: ideaAuthorEmail,
700
+ onChange: (e) => setIdeaAuthorEmail(e.target.value),
701
+ placeholder: "Email (optional)",
702
+ style: {
703
+ width: "100%",
704
+ padding: "8px 12px",
705
+ borderRadius: 6,
706
+ border: `1px solid ${isLight ? "#e5e5e5" : "#2a2a2a"}`,
707
+ background: isLight ? "#fff" : "#0a0a0a",
708
+ color: isLight ? "#18181b" : "#fff",
709
+ fontSize: 13,
710
+ outline: "none",
711
+ boxSizing: "border-box"
712
+ }
713
+ }
714
+ )
715
+ ] }),
716
+ ideaSubmitMessage && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: {
717
+ padding: "8px 12px",
718
+ marginBottom: 12,
719
+ borderRadius: 6,
720
+ background: ideaSubmitMessage.type === "success" ? isLight ? "#dcfce7" : "#14532d" : isLight ? "#fee2e2" : "#450a0a",
721
+ color: ideaSubmitMessage.type === "success" ? isLight ? "#166534" : "#86efac" : isLight ? "#dc2626" : "#fca5a5",
722
+ fontSize: 13
723
+ }, children: ideaSubmitMessage.text }),
724
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
725
+ "button",
726
+ {
727
+ onClick: submitIdea,
728
+ disabled: submittingIdea || !ideaTitle.trim(),
729
+ style: {
730
+ width: "100%",
731
+ padding: "10px 16px",
732
+ borderRadius: 6,
733
+ border: "none",
734
+ background: "#22c55e",
735
+ color: "#fff",
736
+ fontSize: 14,
737
+ fontWeight: 500,
738
+ cursor: submittingIdea || !ideaTitle.trim() ? "not-allowed" : "pointer",
739
+ opacity: submittingIdea || !ideaTitle.trim() ? 0.6 : 1,
740
+ transition: "opacity 150ms"
741
+ },
742
+ children: submittingIdea ? "Submitting..." : "Submit Idea"
743
+ }
744
+ )
745
+ ]
746
+ }
747
+ ),
748
+ ideasArray.length === 0 && !showIdeaForm ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { textAlign: "center", padding: 60, color: isLight ? "#71717a" : "#a1a1aa" }, children: [
749
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 48, marginBottom: 12 }, children: "\u{1F4A1}" }),
750
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 16 }, children: "No feature requests yet" }),
751
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 14, marginTop: 8 }, children: "Be the first to suggest one!" })
752
+ ] }) : ideasArray.map((idea) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
753
+ "div",
754
+ {
755
+ style: {
756
+ padding: 16,
757
+ marginBottom: 12,
758
+ borderRadius: 8,
759
+ background: isLight ? "#f5f5f5" : "#151515",
760
+ border: `1px solid ${isLight ? "#e5e5e5" : "#1f1f1f"}`,
761
+ display: "flex",
762
+ alignItems: "flex-start",
763
+ gap: 16
489
764
  },
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)(
498
- "div",
499
- {
500
- style: {
501
- padding: 16,
502
- marginBottom: 12,
503
- borderRadius: 8,
504
- background: isLight ? "#f5f5f5" : "#151515",
505
- border: `1px solid ${isLight ? "#e5e5e5" : "#1f1f1f"}`,
506
- display: "flex",
507
- alignItems: "flex-start",
508
- gap: 16
765
+ children: [
766
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
767
+ "div",
768
+ {
769
+ style: {
770
+ display: "flex",
771
+ flexDirection: "column",
772
+ alignItems: "center",
773
+ padding: "8px 12px",
774
+ borderRadius: 6,
775
+ background: isLight ? "#fff" : "#0a0a0a",
776
+ minWidth: 50
777
+ },
778
+ children: [
779
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 18, fontWeight: 600, color: isLight ? "#18181b" : "#fff" }, children: idea.votes }),
780
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 11, color: isLight ? "#71717a" : "#71717a" }, children: "votes" })
781
+ ]
782
+ }
783
+ ),
784
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { flex: 1, minWidth: 0 }, children: [
785
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 16, fontWeight: 500, color: isLight ? "#18181b" : "#fff", marginBottom: 4 }, children: idea.title }),
786
+ idea.description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 14, color: isLight ? "#71717a" : "#71717a", lineHeight: 1.5 }, children: idea.description })
787
+ ] })
788
+ ]
509
789
  },
510
- children: [
511
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
512
- "div",
513
- {
514
- style: {
515
- display: "flex",
516
- flexDirection: "column",
517
- alignItems: "center",
518
- padding: "8px 12px",
519
- borderRadius: 6,
520
- background: isLight ? "#fff" : "#0a0a0a",
521
- minWidth: 50
522
- },
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
- ]
527
- }
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
- ] })
533
- ]
534
- },
535
- idea.id
536
- )) })
790
+ idea.id
791
+ ))
792
+ ] })
537
793
  ] }),
538
794
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
539
795
  "div",