Skip to content

feature/ramp#103

Draft
graphicore wants to merge 37 commits into
FontBureau:mainfrom
graphicore:feature/ramp
Draft

feature/ramp#103
graphicore wants to merge 37 commits into
FontBureau:mainfrom
graphicore:feature/ramp

Conversation

@graphicore

@graphicore graphicore commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

This branch is based on the branch eomine:create-simple-ramp-layout (#92) it will continue by renaming the layout "TypeSpec -- Ramp" to just "Type SpecStage", which will become the "do it all" Layout, similar to the relationship of "Stage and Actors" (will be Motion Stage) to "Videoproof".

"Simple Ramp" will become just "Ramp" and be developed to resemble more closely the Legacy Ramp layout.

@graphicore graphicore changed the title Feature/ramp feature/ramp Jun 18, 2026
The default toggleMark from prosemirror-commands only removes an
exclusive mark when called with different attrs, requiring a second
click to apply the new style. Add a local replacement that removes
the old mark and adds the new one in a single atomic transaction.

- Add lib/js/components/prosemirror/commands.ts with toggleMark replacement
- Update import in type-spec.typeroof.jsx to use local toggleMark

model: deepseek/deepseek-v4-pro
provider: openrouter
agent: goose v1.38.0
…o work as intended.

The previous commit fixed the `toggleMark` command for our use case, this commit fixes
the handling of the newStyle processing. NOTE: having hard coded styles
among other things makes UIBoldItalicMenu complicated, but this commit
only tries to fix the status quo, not the bigger issue.
…ing Path.RELATIVE, so there's no ambiguity if the caller doesn't specify an explicit anchoring.
…lution

Introduce `lineHeightAfter` and `emAfter` margin units that resolve
the gap between adjacent type-spec nodes by reading the following
element's fontSize and line-height-em from its typeSpecnion.

- Add `lineHeightAfter`, `emAfter` to MarginUnitModel enum
- Change default blockMargins to {end: {value: 1, unit: lineHeightAfter}}
- createMargin returns null for *After units (renderer resolves them)
- UIDocumentTypeSpecStyler resolves *After margins from next sibling's typeSpecnion
- ProseMirror node view computes next sibling's typeSpecProperties from document position
- Dormant UIDocumentElement computes next sibling via collection index
- Next-sibling dependency wired conditionally (absent for last child)
- Update CSS comment to reflect the margin-end/lineHeightAfter model

model: deepseek/deepseek-v4-pro
provider: openrouter
agent: goose v1.38.0
…rops

Prevent dependency reverse mapping corruption when the next sibling
resolves to the same TypeSpec (duplicate external name overwrites the
internal→external mapping). When nextProperties@ is absent, the renderer
falls back to current propertyValuesMap — same-TypeSpec siblings share
the same fontSize/line-height-em. CSS :not(:last-child) handles the
last-child case.

model: deepseek/deepseek-v4-pro
provider: openrouter
agent: goose v1.38.0
UIProseMirrorMenuBlocks now displays button labels as
"<typeSpecLabel> [<blockName>]" instead of just the block name.

- Added _getTypeSpecLabel helper using getEntry() for model traversal
- update() also reacts to typeSpec changes for label refresh
- Subscribed UIProseMirrorMenuBlocks to "typeSpec" dependency

model: deepseek/deepseek-v4-pro
provider: openrouter
agent: goose v1.38.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants