Skip to content

v2.27.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 12:33
· 139 commits to main since this release
d8f1a91

   🚨 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, not emptyScreen).
  • Remove :branch from RuiLogo usages. src and unique-key are 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-haspopup before v-bind="attrs" now has it overridden. Pass the matching role to RuiMenu (for example role="dialog"), or bind activatorHandlers(attrs).
  • An activator that binds attrs to a plain div now puts the ARIA on that div. Bind activatorHandlers(attrs) instead, or make the trigger a button.

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, timezone and customParseFormat plugins on your app's dayjs unless RuiDateTimePicker is in your bundle. If your code relies on them, register them yourself.
  • Apps that worked around the missing sideEffects field with a bundler override can remove it.
    View changes on GitHub