fix error line
This commit is contained in:
@@ -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));
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user