Skip to content

Releases: joelmoss/proscenium

v0.16.0

11 Oct 16:49
Compare
Choose a tag to compare

What's Changed

  • feat: sideload_assets helper for fine grained control over what and how assets are side loaded.
  • feat: Cache asset path maps ("input::output") when building to path
  • feat: Experimental CSS Module rewriter
  • fix: lots! 😜
  • Require Ruby >= 3.2
  • Upgrade Go to 1.23

Full Changelog: v0.15.0...v0.16.0

v0.14.0

17 Nov 16:37
Compare
Choose a tag to compare

Full Changelog: v0.13.0...v0.14.0

Changes

  • In development CSS module names now include the path to the file for easier debugging and location of where styles are defined. So instead of tab-2f1f6523, it will be tab-2f1f6523__path-to-file-module-css.

v0.13.0

17 Nov 16:34
Compare
Choose a tag to compare

Full Changelog: v0.12.0...v0.13.0

Changes

  • The css_module helper now accepts a path keyword argument, which allows you to specify the path to the CSS file.

    css_module :my_module_name, path: Rails.root.join('app/components/button.css')

0.12.0

10 Nov 14:19
Compare
Choose a tag to compare

Full Changelog: v0.11.0...v0.12.0

Changes

  • Improved Phlex asset inclusion with Proscenium::Phlex::AssetInclusions
  • Added unbundle: prefix to enable unbundling, or externalising imports.
  • Re-added Etag and ConditionalGet middlewares after the Proscenium middleware to enable caching of assets.
  • Added class_names helper to Phlex components.

Fixes

  • Make sure injected styles are done so at the end of the head.

0.11.0

17 Oct 18:28
Compare
Choose a tag to compare

Features

Breaking Changes

  • Code splitting is now enabled by default.
  • Removed include_paths config in favour of ALLOWED_DIRECTORIES const.
  • Replaced side_load_gems config with engines config option.
  • CSS module names are no longer camelCased.

Changes

  • global now available as an alias to window.
  • Added instrumentation for building and resolving.
  • Better and more accurate handling of /public directory.
  • Improved error messages for build errors to take advantage of Rails error pages.
  • Support for Rails 7.1.
  • Renamed side_load_javascripts and side_load_stylesheets to include_javascripts and include_stylesheets respectively.
  • Massive improvements to Phlex and ViewComponent support.
  • Improvements to lazy loading components.

Fixes

  • Avoid processing escape sequences in CSS.
  • ...plus loads more!

Full Changelog: v0.10.0...v0.11.0

0.10.0

15 Jul 16:47
Compare
Choose a tag to compare

Features

  • Automatic code splitting for side loaded assets.
  • Support side loading of partials.
  • Added .jsx, .tsx and .module.css file extensions to those which are side loaded.
  • Modified and greatly improved environment variable usage, and moved to the proscenium.env.* object, with support for tree shaking.
  • The side_load_stylesheets helper now accepts and passes through additional arguments.
  • Further support for importmaps, including some basic functionality of the spec, along with URL values, extension-less values, and indexes.

Chores

  • Update esbuild and all other dependencies to the latest.
  • Improved and simplified test suite.

0.9.1

11 Jun 22:05
Compare
Choose a tag to compare

FIX - Added app/assets to include_paths configuration.

This provides a friendlier path when starting with a new Rails app, which assumes that your assets are all located in app/assets. Proscenium makes no such assumption, and you can actually put your assets anywhere you want. But at least this addition means it is a little easier to move to Proscenium.

DOCS - Created a guide to getting started with a new Rails app.


Full Changelog: v0.9.0...v0.9.1

0.9.0

07 Jun 22:34
Compare
Choose a tag to compare
  • FEAT - Typescript and TSX is now fully support out of the box with the .ts and .tsx file extensions. Also .ts files can now be side loaded.

Full Changelog: v0.8.2...v0.9.0

0.8.2

07 Jun 12:34
Compare
Choose a tag to compare
  • FIX - Debug option was being passed incorrectly, which resulted in minification not happenning in production

Full Changelog: v0.8.0...v0.8.2

0.8.0

06 Jun 20:24
Compare
Choose a tag to compare
  • FEAT: Added "proscenium" to the list of exports conditions, allowing you to respond to proscenium in your package exports. See https://esbuild.github.io/api/#conditions for more information. But as an example, you can do this:
{
  "name": "pkg",
  "exports": {
    "./foo": {
      "proscenium": "./index.js",
      "default": "./dist/index.js"
    }
  }
}

Because Proscenium bundles everything, and transforms down when needed, there is actually no need for libraries to be pre-built before being published. So a package that supports the "proscenium" exports condition, can simply export its source as-is. Then Proscenium will consume it and transform where necessary.

  • FIX: Ensure CSS nesting is transformed down for browsers that do not support it.

Full Changelog: v0.7.0...v0.8.0