2.9 KiB
2.9 KiB
humor-units Backlog
Items are roughly ordered by priority. Move to DONE when shipped.
TODO
Uniform font size
Get actual text measurements of output card values and render all cards in a group at a uniform font size. JS must be minimal — no heavy layout libraries. The requirement is real uniformity based on measurements, not "close enough."
Custom dropdown (typeahead fix)
Native <select> accumulates keystrokes into a browser-managed search string.
Switching letters requires backspace to clear the accumulated string first.
Fix requires replacing the native select with a custom dropdown component
that handles keyboard search with a clean reset-on-idle timer.
Auto-generated IDs in admin forms (new units/groups)
When the ID field is empty (or has only been auto-filled, not manually typed):
- Auto-fill priority: kebab(symbol) first, then kebab(label) if symbol is empty or a duplicate
- If symbol is typed first, symbol drives the ID. If label is typed first and symbol is empty, label drives the ID. If symbol is later typed, it overrides the label-derived ID.
- Auto-filled ID shown in a visually distinct style (e.g. washed-out color) to indicate it has not been customized by the user.
- If auto-filled ID is a duplicate, fall back to the other field. If both are duplicates, block save and show an error until a unique ID is manually entered.
- If the user types anything directly into the ID field, auto-generation is permanently disabled for that edit session (manual input wins).
- User cannot navigate away (except via Cancel/Escape) while ID is empty or duplicate.
DONE
- Hidden flag on Unit and Group (server-side filtered, admin checkbox)
- Description placeholders:
{id},{id:label},{id:plural},{id:symbol},{id:description}Two-pass resolver with cycle fallback to Label (symbol) - Drag handle contrast fix (opacity on --pico-color, primary-inverse on selected rows, magenta in Dan Mode)
- Custom tooltip (500ms hover delay, no mouse movement required, Dan Mode styled)
- ⓘ indicator on units with descriptions
- Enter to save / Escape to discard in admin forms
- Auto-save on unit/group selection in admin
- Domain-based branding (humorunits.com / dickloads.com) via src/lib/brand.ts
- YOLO toggle visibility: auto (show when >1 group) or never — admin Settings panel
- Group alwaysShowLabel flag
- Production server setup (npm run start / build:watch + serve with nodemon)
- Editable unit/group IDs with full cascade (group refs, baseUnitId refs, {id:*} in descriptions)
- Alpha sort tiebreak: labelPlural primary, symbol secondary
- Infinite loop fix: $effect → onMount + in-flight guards on loadData/loadConfig
- Sort-alpha button per group in admin tree (⇅)
- Settings button moved to admin header
- sortPosition pin: optional 1-based fixed slot per unit, inserts into float list
- Dropdown optgroup dividers matching group order and visibility rules