All Versions
33
Latest Version
Avg Release Cycle
32 days
Latest Release
362 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v0.7.3 Changes
March 18, 2022- Fix loading component prop's default values
-
v0.7.2 Changes
March 17, 2022- Support more extensions other than
.js
as colocated hooks (jsx
,ts
andtsx
) (#576) - Update the
surface.init
task to set up the catalogue tov0.4
- Support more extensions other than
-
v0.7.1 Changes
February 17, 2022- Fix wrong target handling in forms
- Fix setting
@moduledoc false
in catalogue examples (#565) - Support Inputs' property
for
as string (#564)
-
v0.7.0 Changes
January 13, 2022- Support Liveview
v0.17
- Support rendering
.sface
templates for regular (dead) views (#543) - Support passing properties to slots using the shorthand format, e.g.
<:col label="Name">
- Add built-in formatter supporting integration with
mix format
(#535) - New
<LiveComponent>
component to inject dynamic live components (#518) - Optimize rendering of HTML class attributes literals so they can be treated as static text
- Add property
for
to<#slot/>
so it can render the slot content directly (without usingindex
)
- Support Liveview
-
v0.6.1 Changes
October 26, 2021- Add
surface_formatter
dependency tomix.exs
when runningmix surface.init
(#507) - Allow
Inputs
component inside theField
component (#492) - Fix using context with external
.sface
templates (#511) - Fix attribute name conversion (#512)
- Add
-
v0.6.0 Changes
October 21, 2021- Compatibility with Phoenix
v1.6
and Liveviewv0.16
- New
mix surface.init
task - Add support for function components
- Add support for dynamic function components via
<Component>
- Add support for recursive function components
- Optimize change tracking for contexts
- Fix race condition when compiling tests
- Fix recompilation of used components
- Compatibility with Phoenix
-
v0.5.1 Changes
July 13, 2021- Add property
values
to form inputs - Handle doctype as text
- Improve error message when
default_translator
is not configured forErrorTag
(#449) - Raise on invalid attribute/directive in
<#slot>
(#456) - Raise error on
{#case}
without{#match}
(#443) - Raise on blocks without expression
- Fix error line on missing closing tag
- Add property
-
v0.5.0 Changes
June 17, 2021- Add
<:slotname>
shorthand for<#template slot="slotname">
- Introduce block expressions for surface templates (e.g.,
{#if}..{/if}
) - Introduce
{#if}
block expression with support for{#elseif}
and{#else}
sub blocks - Introduce
{#for}
block expression with support for{#else}
sub block - Introduce
{#unless}
block expression - Introduce new shorthand notation for dynamic attributes/props using the
{... }
tagged expression - Introduce new shorthand notation for attribute assignment using the
{= }
tagged expression - Support private comments using
{!-- --}
for comments that are not supposed to hit the browser - Introduce
s-
prefix as an alternative to:
for directives (i.e.s-if
and:if
are now equivalent) - Introduce
:values
directive for generating multiplephx-value-
attributes - Added a convert task to aid migrating to the new syntax
- Evaluate literal attribute values at compile time instead of runtime
- Fix compile error when using single quotes as attribute value delimiters
- Add
quote_surface/2
macro to generate Surface AST from template snippets.
๐ฅ Breaking Changes
- Replace the sigil
~H
with~F
to avoid conflict withHEEx
- Replace interpolation delimiters
{{
and}}
with{
and}
- Remove support for interpolation inside
<style>...</style>
and<script>...</script>
nodes - ErrorTag: Renamed prop
phx_feedback_for
tofeedback_for
- Slot directive
:props
has been renamed to:args
- Option
:props
for theslot/2
macro has been renamed to:args
- The use of
<template>
has been removed in favor of<#template>
- The use of
<slot>
has been removed in favor of<#slot>
- The use of
<If>
has been removed in favor of{#if}...{/if}
- The use of
<For>
has been removed in favor of{#for}...{/for}
MacroComponent.eval_static_props!/3
evaluates and returns only props with optionstatic: true
๐ Deprecations
- Support for passing non-string attribute values as literals (i.e.
selected=true
ortabindex=3
) has been removed. Any non-string value should be passed as an expression (i.e.selected={true}
)
- Add
-
v0.4.1 Changes
May 26, 2021- Fix warning on Phoenix Live View >= 1.15.6
-
v0.4.0 Changes
May 01, 2021- Call render when defined in slotable components (#283)
- Support defining form fields as strings. Consequently, fields defined as literal strings will
no longer be auto-converted to
:atom
and will keep the original value (#319) - Deprecate auto-conversion of attribute values passed as string literals into atoms
- Do not encode HTML entities when passing attribute values as string literals (#323)
- Extract the Markdown macro component in its repository (#316)
- Renamed
Surface.Components.Button
toSurface.Components.Link.Button
(#350)