All Versions
33
Latest Version
Avg Release Cycle
32 days
Latest Release
907 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v0.9.1 Changes
September 26, 2022- Fix dialyzer errors
-
v0.9.0 Changes
September 23, 2022- Support Liveview
v0.18
- Support Liveview
-
v0.8.4 Changes
September 26, 2022- Fix dialyzer errors
-
v0.8.3 Changes
September 22, 2022- Add
:global
pseudo-class to the Scoped CSS's API - Declare props
container
,session
andsticky
onSurface.LiveView
- Fix CSS tokenizer not handling empty strings
- Fix CSS parser for declarations with commas or variants
- Fix scoped styles on void elements
- Fix dialyzer issue in EExEngine (#655)
- Add
-
v0.8.2 Changes
September 16, 2022- Remove compile-time deps from components, avoiding unnecessary recompilation of extra files due to transitive deps (#653)
- Fix components oversized beam files (#651)
- Fix error on layout templates containing
<style>
-
v0.8.1 Changes
September 02, 2022- Fix surface compiler when setting a different
css_output_file
(#646) - Fix formatter for
:debug
- Fix surface compiler when setting a different
-
v0.8.0 Changes
September 01, 2022- Support scoped CSS styles for components using either inline
<style>
tags or colocated.css
files (#621) - Add
render_sface/1
to allow overridingrender/1
and compute/update assigns when using external.sface
files - Add
--tailwind
option tomix surface.init
to bootstrap a project with TailwindCSS support - Add
--layouts
option tomix surface.init
to replace.heex
layout files with corresponding.sface
files - Add
--web-module
option tomix surface.init
to override the default web module (#638) - Support using the
:hook
directive to point to thedefault
hook exported in the.hooks.js
file - Add option
from_context
toprop
anddata
to allow setting values directly from the context - Add
Context.put/3
andContext.get/2
to allow manipulating the context inside lifecycle callbacks andrender/1
- Add prop
context_put
to<#slot>
to pass context values directly to a slot without propagating context values to other components - Add config
:propagate_context_to_slots
to restrict context propagatiion, optimizing diff tracking - Add functions
Context.copy_assign/3
,Context.maybe_copy_assign/3
andContext.maybe_copy_assign!/3
- Add
catalogue_test/1
macro to generate basic tests for catalogue examples and playgrounds - Add module
Surface.Catalogue.Examples
to allow defining multiple stateless examples in a single module - Support editing slot values as text in playgrounds (Catalogue)
- Fix context propagation in dynamic components
- Fix context propagation in recursive components
- New API for Slot arguments and generator (#613)
๐ Deprecations
- Deprecate
<InputContext>
in favor of declarative optionfrom_context
- Slots (#613)
- Option
:args
has been deprecated, useslot arg: :string
instead ofslot args: [:name]
slot arg: %{name: :string, age: number}
instead ofslot args: [:name, :age]
- Attribute
for
has been deprecated, use<#slot {@header}>
instead of<#slot for={@header}>
- Attributes
name
andindex
have been deprecated, use<#slot {col}>
instead of<#slot name={"col"} index={index}>
- Directive
:args
has been deprecated, use<#slot {@default, name}>
instead of<#slot :args={name: name}>
<#slot {@default, name: name, age: age}>
instead of<#slot :args={name: name, age: age}>
- Option
๐ฅ Breaking Changes
- Drop support for Elixir <
v1.12
- Context values are no longer automatically propagated through slots. Components that need to
pass values to the parent scope via slots must explicitly set
propagate_context_to_slots: true
in their configuration - Slots (#613)
- New option
:generator_prop
useslot default, generator_prop: :items
instead ofslot default, args: [item: ^items]
, associated prop:items
must be of type:generator
- New attribute
generator_value
use<#slot generator_value={item} />
instead of<#slot :args={item: item} />
<#template slot="slot_name">
has been removed in favor of<:slot_name>
(#575)
- New option
- Support scoped CSS styles for components using either inline
-
v0.7.6 Changes
September 05, 2022- Support Elixir
v1.14
- Support Elixir
-
v0.7.5 Changes
July 21, 2022- Support using vanilla phoenix function components with slots in surface templates
-
v0.7.4 Changes
April 18, 2022- Optimize the surface compiler for assets generation
- Improve support for JS hooks in umbrella projects (#591)
- Suppress
Mix.Tasks.Format
behaviour warning on Elixir <v0.13