Skip to content

Releases: joelmoss/proscenium

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

v0.7.0

01 Jun 08:27
Compare
Choose a tag to compare
v0.7.0 Pre-release
Pre-release

Huge changes here, primarily consisting of replacing Deno and the Javascript based Esbuild plugins, with pure Go. This makes everything so insanely fast, that Proscenium now bundles everything by default, but still on-demand.

Full documentation is forthcoming, and there are still some rough edges, and one or two incomplete features.

Note that this release only includes precompiled binaries for MacOS and Linux. Future releases will hopefully support windows.