9elements / 9elements/single-line-strong-plugin
Per-field config: placeholder + max-length counter with hard-block
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
What to build
Add per-field configuration and length handling on top of the Lexical editor.
A config screen (rendered via the SDK's manual-field-extension config parameters) exposes:
- Placeholder text — shown when the field is empty
- Optional max character count
Length behavior in the editor:
- Live "X/Y" counter that counts visible text only (bold markup does not count toward the limit)
- Hard-block input once the limit is reached — further typing and paste beyond the max are rejected
Note: a field-editor plugin cannot hook Dato's save-time validation, so the limit is enforced at the input level, not by blocking record save.
Type: AFK
Acceptance criteria
- Config screen lets an admin set a placeholder and an optional max length per field
- Placeholder renders in the editor when the value is empty
- Live counter shows visible-text length as "X/Y" (bold markup excluded)
- Typing is hard-blocked at the max; paste is truncated/rejected so the value never exceeds the limit
- With no max configured, the counter/limit behavior is disabled gracefully
Blocked by
- #3
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by resolving the dependency on issue #3, then inspect the SDK's manual-field-extension config parameters and the Lexical editor integration. Done means the config screen, placeholder, visible-text counter, input and paste hard limit, and disabled no-max behavior all satisfy the listed acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100