@local-civics/hub-ui 0.1.256 → 0.1.258

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
@@ -4759,7 +4759,7 @@ const LearningForm = (props) => {
4759
4759
  }), /* @__PURE__ */ React.createElement(
4760
4760
  FormItem,
4761
4761
  {
4762
- displayName: /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("p", null, "Optional: What is one takeaway from this lesson?")),
4762
+ displayName: "Optional: What is one takeaway from this lesson?",
4763
4763
  description: "",
4764
4764
  format: "question",
4765
4765
  questionType: "text",
@@ -4767,7 +4767,7 @@ const LearningForm = (props) => {
4767
4767
  onResponseChange: onReflectionChange,
4768
4768
  paragraph: true,
4769
4769
  minText: MIN_REFLECTION_LENGTH,
4770
- responses: reflection ? [reflection] : ["My Reflection: "]
4770
+ responses: reflection ? [reflection] : []
4771
4771
  }
4772
4772
  ), /* @__PURE__ */ React.createElement(FormItem, null, /* @__PURE__ */ React.createElement(Rating, { disabled: !canReflect || !!props.preview, rating, setRating })), !props.preview && /* @__PURE__ */ React.createElement("div", { className: "w-max m-auto" }, /* @__PURE__ */ React.createElement(
4773
4773
  "button",
@@ -6147,7 +6147,7 @@ const PathwayTranscript = (props) => {
6147
6147
  })));
6148
6148
  }));
6149
6149
  };
6150
- return /* @__PURE__ */ React__namespace.createElement("div", { className: "space-y-8 p-6" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-3 gap-4 rounded-2xl border border-slate-200 bg-white p-5 text-sm shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-1 text-[9px] font-black uppercase tracking-widest text-slate-400" }, "Student"), /* @__PURE__ */ React__namespace.createElement("p", { className: "font-bold text-dark-blue-400" }, safeRender(props.studentName) || "Guest User"), /* @__PURE__ */ React__namespace.createElement("p", { className: "mt-0.5 text-[11px] text-slate-500" }, safeRender(props.studentEmail))), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-1 text-[9px] font-black uppercase tracking-widest text-slate-400" }, "Organization"), /* @__PURE__ */ React__namespace.createElement("p", { className: "font-bold text-dark-blue-400" }, safeRender(props.schoolName) || "Not Provided"), /* @__PURE__ */ React__namespace.createElement("p", { className: "mt-0.5 text-[11px] text-slate-500" }, props.gradeLevel ? `Grade ${safeRender(props.gradeLevel)}` : "")), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-1 text-[9px] font-black uppercase tracking-widest text-slate-400" }, "Record Status"), /* @__PURE__ */ React__namespace.createElement(Pill, { label: "Verified", accent: "mint" }), /* @__PURE__ */ React__namespace.createElement("p", { className: "mt-1 text-[10px] text-slate-400" }, today))), /* @__PURE__ */ React__namespace.createElement("section", { className: "space-y-4" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React__namespace.createElement("h1", { className: "text-2xl font-extrabold tracking-tight text-dark-blue-400" }, props.title || "Untitled Pathway"), /* @__PURE__ */ React__namespace.createElement("p", { className: "max-w-3xl text-sm leading-relaxed text-slate-500" }, props.description || "No description provided for this pathway.")), /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-3 gap-3" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col items-center justify-center rounded-xl border border-slate-200 bg-white p-4 text-center shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "text-2xl font-black text-dark-blue-400" }, totalPointsEarned.toLocaleString()), /* @__PURE__ */ React__namespace.createElement("span", { className: "mt-1 text-[10px] font-bold uppercase tracking-widest text-slate-400" }, "Total Points")), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col items-center justify-center rounded-xl border border-slate-200 bg-white p-4 text-center shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "text-2xl font-black text-dark-blue-400" }, badgesEarnedCount), /* @__PURE__ */ React__namespace.createElement("span", { className: "mt-1 text-[10px] font-bold uppercase tracking-widest text-slate-400" }, "Badges Earned")), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col items-center justify-center rounded-xl border border-slate-200 bg-white p-4 text-center shadow-sm" }, /* @__PURE__ */ React__namespace.createElement(Pill, { label: status, accent: STATUS_PILL_ACCENT[status] }), /* @__PURE__ */ React__namespace.createElement("span", { className: "mt-1.5 text-[10px] font-bold uppercase tracking-widest text-slate-400" }, "Pathway Status")))), /* @__PURE__ */ React__namespace.createElement("section", { className: "space-y-3" }, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-[10px] font-black uppercase tracking-widest text-slate-400" }, "Criteria & Progress"), /* @__PURE__ */ React__namespace.createElement("div", { className: "rounded-xl border border-slate-200 bg-white p-5 shadow-sm" }, /* @__PURE__ */ React__namespace.createElement(PathwayProgressBarChart, { targets: mappedTargets, points: mappedPoints, height: "md" }))), /* @__PURE__ */ React__namespace.createElement("section", { className: "space-y-6" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center justify-between border-b border-slate-200 pb-3" }, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-[10px] font-black uppercase tracking-widest text-slate-400" }, "Activity History"), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex gap-1" }, /* @__PURE__ */ React__namespace.createElement(
6150
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: "space-y-8 p-6" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-3 gap-4 rounded-2xl border border-slate-200 bg-white p-5 text-sm shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-1 text-[9px] font-black uppercase tracking-widest text-slate-400" }, "Student"), /* @__PURE__ */ React__namespace.createElement("p", { className: "font-bold text-dark-blue-400" }, safeRender(props.studentName) || "Guest User"), /* @__PURE__ */ React__namespace.createElement("p", { className: "mt-0.5 text-[11px] text-slate-500" }, safeRender(props.studentEmail))), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-1 text-[9px] font-black uppercase tracking-widest text-slate-400" }, "Organization"), /* @__PURE__ */ React__namespace.createElement("p", { className: "font-bold text-dark-blue-400" }, safeRender(props.schoolName) || "Not Provided"), /* @__PURE__ */ React__namespace.createElement("p", { className: "mt-0.5 text-[11px] text-slate-500" }, props.gradeLevel ? `Grade ${safeRender(props.gradeLevel)}` : "")), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-1 text-[9px] font-black uppercase tracking-widest text-slate-400" }, "Generated"), /* @__PURE__ */ React__namespace.createElement("p", { className: "font-bold text-dark-blue-400" }, today))), /* @__PURE__ */ React__namespace.createElement("section", { className: "space-y-4" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React__namespace.createElement("h1", { className: "text-2xl font-extrabold tracking-tight text-dark-blue-400" }, props.title || "Untitled Pathway"), /* @__PURE__ */ React__namespace.createElement("p", { className: "max-w-3xl text-sm leading-relaxed text-slate-500" }, props.description || "No description provided for this pathway.")), /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-3 gap-3" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col items-center justify-center rounded-xl border border-slate-200 bg-white p-4 text-center shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "text-2xl font-black text-dark-blue-400" }, totalPointsEarned.toLocaleString()), /* @__PURE__ */ React__namespace.createElement("span", { className: "mt-1 text-[10px] font-bold uppercase tracking-widest text-slate-400" }, "Total Points")), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col items-center justify-center rounded-xl border border-slate-200 bg-white p-4 text-center shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "text-2xl font-black text-dark-blue-400" }, badgesEarnedCount), /* @__PURE__ */ React__namespace.createElement("span", { className: "mt-1 text-[10px] font-bold uppercase tracking-widest text-slate-400" }, "Badges Earned")), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col items-center justify-center rounded-xl border border-slate-200 bg-white p-4 text-center shadow-sm" }, /* @__PURE__ */ React__namespace.createElement(Pill, { label: status, accent: STATUS_PILL_ACCENT[status] }), /* @__PURE__ */ React__namespace.createElement("span", { className: "mt-1.5 text-[10px] font-bold uppercase tracking-widest text-slate-400" }, "Pathway Status")))), /* @__PURE__ */ React__namespace.createElement("section", { className: "space-y-3" }, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-[10px] font-black uppercase tracking-widest text-slate-400" }, "Criteria & Progress"), /* @__PURE__ */ React__namespace.createElement("div", { className: "rounded-xl border border-slate-200 bg-white p-5 shadow-sm" }, /* @__PURE__ */ React__namespace.createElement(PathwayProgressBarChart, { targets: mappedTargets, points: mappedPoints, height: "md" }))), /* @__PURE__ */ React__namespace.createElement("section", { className: "space-y-6" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center justify-between border-b border-slate-200 pb-3" }, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-[10px] font-black uppercase tracking-widest text-slate-400" }, "Activity History"), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex gap-1" }, /* @__PURE__ */ React__namespace.createElement(
6151
6151
  "button",
6152
6152
  {
6153
6153
  type: "button",
@@ -7329,13 +7329,14 @@ const CommentCard = (props) => {
7329
7329
  onClick: props.onBadgeClick ? () => props.onBadgeClick(comment.badgeId) : void 0
7330
7330
  } : { label: "General", kind: "general", onClick: void 0 };
7331
7331
  const needsAttention = comment.requireValidation && !comment.resolvedAt;
7332
- const actionLabel = needsAttention && target.kind === "badge" ? "Resubmit this badge" : target.kind === "badge" ? "View this badge" : target.kind === "lesson" ? "View this lesson" : void 0;
7332
+ const canResubmit = !!comment.needsSubmission;
7333
+ const actionLabel = target.kind === "badge" ? canResubmit ? "Resubmit this badge" : "View this badge" : target.kind === "lesson" ? canResubmit ? "Resubmit this lesson" : "View this lesson" : void 0;
7333
7334
  return /* @__PURE__ */ React__namespace.createElement("div", { className: `rounded-2xl border bg-white p-4 ${needsAttention ? "border-gold-400/40" : "border-slate-200"}` }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-start justify-between gap-3" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs font-extrabold text-dark-blue-400" }, target.label), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-0.5 flex items-center gap-1.5 text-[11px] text-slate-400" }, comment.commenterName && /* @__PURE__ */ React__namespace.createElement("span", null, "Commenter: ", comment.commenterName), comment.commenterName && comment.createdAt && /* @__PURE__ */ React__namespace.createElement("span", null, "\xB7"), comment.createdAt && /* @__PURE__ */ React__namespace.createElement("span", null, formatDate(comment.createdAt)))), comment.requireValidation && (!comment.resolvedAt ? /* @__PURE__ */ React__namespace.createElement("span", { className: "shrink-0 rounded-full bg-gold-400/15 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, "Needs validation") : comment.needsSubmission ? /* @__PURE__ */ React__namespace.createElement("span", { className: "shrink-0 rounded-full bg-sky-blue-400/15 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, "Needs submission") : /* @__PURE__ */ React__namespace.createElement("span", { className: "flex shrink-0 items-center gap-1 rounded-full bg-mint-400/15 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, /* @__PURE__ */ React__namespace.createElement(icons$1.IconCheck, { size: 11, stroke: 3, className: "text-mint-400" }), "Resolved"))), /* @__PURE__ */ React__namespace.createElement("p", { className: "mt-2.5 text-xs text-slate-600" }, comment.commentText), actionLabel && target.onClick && /* @__PURE__ */ React__namespace.createElement(
7334
7335
  "button",
7335
7336
  {
7336
7337
  type: "button",
7337
7338
  onClick: target.onClick,
7338
- className: `mt-3 flex items-center gap-1 rounded-lg px-3 py-1.5 text-[11px] font-extrabold ${needsAttention ? "bg-gold-400/15 text-dark-blue-400 hover:bg-gold-400/25" : "border border-slate-200 text-dark-blue-400 hover:bg-slate-50"}`
7339
+ className: `mt-3 flex items-center gap-1 rounded-lg px-3 py-1.5 text-[11px] font-extrabold ${canResubmit ? "bg-gold-400/15 text-dark-blue-400 hover:bg-gold-400/25" : "border border-slate-200 text-dark-blue-400 hover:bg-slate-50"}`
7339
7340
  },
7340
7341
  actionLabel,
7341
7342
  /* @__PURE__ */ React__namespace.createElement(icons$1.IconArrowRight, { size: 12, stroke: 2.5 })