Repository navigation
v2.27.0
🚨 Breaking Changes
🐞 Bug Fixes
- logo: Render the same logo on server and client - by @kelsos (61665)
- menu: Put the popup ARIA on the activator, not its wrapper - by @kelsos (1baf1)
🏎 Performance
Migrating RuiLogo
RuiLogo no longer fetches anything, and the branch prop is gone. Configure where logos come from once, in createRui:
createRui({
logo: {
resolve: name => `/api/logo/${name}`, // return undefined to keep the bundled logo
},
});- Without a resolver,
<RuiLogo logo="...">shows the bundled logo. - To keep the seasonal logos from rotki/data, move the asset-mappings lookup into the resolver. The README section "Logo images" has a ready-made resolver with filename validation.
- Logo names are no longer camel-cased: use the keys from
asset-mappings.json(empty_screen, notemptyScreen). - Remove
:branchfromRuiLogousages.srcandunique-keyare unchanged.
Menu activators
aria-haspopup, aria-expanded and aria-controls now come through the activator slot's attrs instead of sitting on a wrapper div. An activator that binds attrs to a button needs no change. Two cases to check:
- An activator that sets its own
aria-haspopupbeforev-bind="attrs"now has it overridden. Pass the matchingroletoRuiMenu(for examplerole="dialog"), or bindactivatorHandlers(attrs). - An activator that binds
attrsto a plaindivnow puts the ARIA on thatdiv. BindactivatorHandlers(attrs)instead, or make the trigger abutton.
Tree-shaking and dayjs
The package now declares "sideEffects": ["**/*.css"], so bundlers ship only the components you import.
- Importing the library no longer registers the dayjs
utc,timezoneandcustomParseFormatplugins on your app's dayjs unlessRuiDateTimePickeris in your bundle. If your code relies on them, register them yourself. - Apps that worked around the missing
sideEffectsfield with a bundler override can remove it.