Releases: linyows/rotion
Release list
v3.6.1
A code block containing a comment is no longer split into several blocks, and a \\ line break in an equation is now rendered as a new line.
What's Changed
Full Changelog: v3.6.0...v3.6.1
v3.6.0
FetchDatabase now tells which part of a database query is invalid before the notion api rejects it, and the exported database property types match the api. DatabasePropertyConfigResponse describes the data source schema it was always used for, and DatabaseProperty points at the new DatabasePropertyValue.
What's Changed
- Report which part of a database query is invalid by @linyows in #255
- Match the database property types to the notion api by @linyows in #256
Full Changelog: v3.5.7...v3.6.0
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
What's Changed
Security
- Fix npm audit advisories via overrides and bump to v3.5.3 by @linyows in #219
- Pin
uuidto^14.0.0to resolve GHSA-w5hq-g745-h8pq (mermaid still depends onuuid@^11) - Pin
postcssto^8.5.10in next-based projects (website/,examples/nextjs-pagerouter,examples/nextjs-approuter) to resolve GHSA-qx2v-qp2m-jg93 (next pinspostcss@8.4.31in its CSS pipeline) rotiondoes not bundle its dependencies, so this override only hardens the repo's own audit. Consumers ofrotionstill rely on the upstreammermaidfix because npmoverridesare not transitive
- Pin
Full Changelog: v3.5.2...v3.5.3
v3.5.2
What's Changed
Bug Fixes
- Fix
Cannot read properties of undefined (reading 'getBBox')and intermittent hydration failures in mermaid code blocks on Next.js static-export sites by @linyows in #218- Disable mermaid's auto-render with
mermaid.startOnLoad = falseso the library no longer mutates the DOM (and inserts its temporary<div id=\"dmermaid-...\">workspace) before React hydration runs - Switch from
mermaid.run()tomermaid.render(id, source)and inject the returned SVG string viauseState+dangerouslySetInnerHTML, keeping the rendered DOM under React's control - Capture the original diagram source once into
sourceRefso re-runs (Strict Mode, HMR, language change) do not re-parse an already-replaced node - Skip
mermaid.renderwhenmermaidSvgis already populated, removing the race that produced duplicated{id}workspace divs andFailed to execute 'removeChild' on 'Node'errors - Use distinct keys on the source vs rendered
<pre>so React unmount → mount instead of reconciling differing children - Pin
securityLevel: 'strict'explicitly inmermaid.initialize(matches mermaid v11's default but documents the XSS posture for diagram source coming from Notion)
- Disable mermaid's auto-render with
Full Changelog: v3.5.1...v3.5.2
v3.5.1
What's Changed
Bug Fixes
- Fix unhandled
Uncaught (in promise)in mermaid rendering —mermaid.init()was deprecated and its returned Promise was not awaited, and the asynchighlight()call fromuseEffectalso dropped its Promise. Switched tomermaid.run({ nodes })withawait+try/catch, and attached.catch()on theuseEffectcall site so failures are logged instead of becoming unhandled rejections by @linyows in #217 - Fix Storybook
Syntax error in textfor the Mermaid code block —mermaid.runreads each node'sinnerHTML(nottextContent) as the diagram source, so passing<pre>made it try to parse the wrapping<code>tags. The<code>element is now passed instead, andcodeRefis typed asHTMLElement(was the mismatchedHTMLPreElement) by @linyows in #217
Internal
- Enable biome
nursery/noFloatingPromisesrule onsrc/ui/componentsso unawaited Promises (forgottenawait, dropped Promises in effects) are caught at lint time. Verified the rule flags the original two floating-Promise sites by @linyows in #217 - Exclude
website/andexamples/from the rootbiome.json'sfiles.includesso type-aware project resolution no longer discovers nested root configs, allowing the sub-project biome configs to remain independent by @linyows in #217
Full Changelog: v3.5.0...v3.5.1
v3.5.0
What's Changed
Features
-
Add
Calendardatabase view — a Notion-style monthly calendar for databases with a date property. Renders events in a 7-column grid with weekday/header navigation (prev / today / next),weekStart('sunday' | 'monday'),locale, andinitialDateoptions. Supports the samehref/link/queryAPI asGallery/Table/List. by @linyows in #215import { Calendar } from 'rotion/ui' <Calendar db={db} date="Date" keys={['Name', 'Tags']} options={{ initialDate: '2026-04-01', weekStart: 'monday', locale: 'ja-JP' }} />
-
Multi-day spanning event bars — events with both
startandendare drawn as a single continuous bar across cells, with squared-off continuation edges at week boundaries (Notion-style). Per-week slot allocation stacks overlapping events in vertical lanes. -
Localized header and weekday labels — month label and weekday short names use
Intl.DateTimeFormat(locale, ...)so any locale (fr-FR, de-DE, etc.) gets native names. Today / Previous month / Next month controls and aria-labels are localized via a small ja/en map. -
Weekend cell tinting — Saturday/Sunday cells are tinted via new
--rotion-calendar-weekend-bg/--rotion-dark-calendar-weekend-bgtokens (#f9f8f7/#202020).
Internal
- New components under
src/ui/components/Calendar/:Calendar,CalendarHeader,CalendarWeek,CalendarCell,CalendarEvent, plus a small sharedlib.tsfor the date-key helper. - One-pass event parsing: pages are parsed and sorted once per
db.resultschange, then placed per week, instead of re-scanning all events for every week. - Storybook stories include
ThisMonthMultiDaySpans(and a linked variant) that mutate the fixture so the spanning layout is visible in the current month.
Full Changelog: v3.4.2...v3.5.0