fix error line

This commit is contained in:
2026-08-17 17:33:56 +05:30
parent 69b38abced
commit 7fa21a4513
105 changed files with 1296 additions and 323 deletions

View File

@@ -465,7 +465,8 @@ function Choice({ active, onClick, className, children }) {
}
/** A growable list of short text lines — training steps, evaluation criteria. */
function ListBuilder({ label, hint, placeholder, values, onChange, addLabel }) {
/** @param {any} props */
function ListBuilder({ label, hint = '', placeholder, values, onChange, addLabel }) {
const setAt = (i, v) => onChange(values.map((x, j) => (j === i ? v : x)));
const removeAt = (i) => onChange(values.length === 1 ? [''] : values.filter((_, j) => j !== i));

View File

@@ -13,7 +13,8 @@ import { Plus, Sparkles } from 'lucide-react';
* where a worker actually is one; putting it here made the console read as
* somebody's personal training dashboard.
*/
export function ForgeHeader({ onCreate }) {
/** @param {any} props */
export function ForgeHeader({ onCreate = null, _onBrowse = null }) {
return (
<header className="flex flex-col gap-4 border-b border-border/60 pb-6 sm:flex-row sm:items-end sm:justify-between">
<div className="min-w-0 space-y-1.5">

View File

@@ -19,7 +19,8 @@ const TIPS = [
'Keep training concise.',
];
export function ForgeRail({ recent = [], onCreate, onOpen, onAskOwliver }) {
/** @param {any} props */
export function ForgeRail({ recent = [], onCreate, onOpen, onAskOwliver: _onAskOwliver }) {
return (
<aside
className="grid grid-cols-1 gap-4 sm:grid-cols-3 lg:grid-cols-3 items-stretch"

View File

@@ -168,6 +168,7 @@ export function SkillDetail({ course, open, onOpenChange, usage }) {
}
/** A titled region of the record. */
/** @param {any} props */
function Block({ title, meta, icon: Icon, children }) {
return (
<section className="border-t border-border pt-4 first:border-0 first:pt-0">

View File

@@ -32,7 +32,8 @@ const STATUS_META = {
* of their ladder is the one thing this component exists to make obvious, and a
* stack of rows makes that a reading exercise instead of a glance.
*/
export function SkillLadder({ state, className }) {
/** @param {any} props */
export function SkillLadder({ state, className = '' }) {
return (
<ol className={cn('flex items-start', className)} aria-label={`${state.name} levels`}>
{state.levels.map((rung, i) => {
@@ -87,6 +88,7 @@ export function SkillLadder({ state, className }) {
}
/** One skill: where this person stands on it, and the next thing to do. */
/** @param {any} props */
export function SkillProgressCard({ state, onOpen }) {
const status = STATUS_META[state.status] || STATUS_META.not_started;
const atTop = !state.nextLevel;
@@ -163,6 +165,7 @@ export function SkillProgressCard({ state, onOpen }) {
* hidden: the evidence behind a level is the reason to trust the level, and
* folding it away would leave the label standing on nothing.
*/
/** @param {any} props */
export function SkillProgressDetail({ state, open, onOpenChange, onStartTraining }) {
if (!state) return null;