- Add explicit props for the main opts of Checkbox, Select, MultipleSelect, FileInput and Form (#215).
- Add new
slot_assigned?/1
macro to check if a slot has been filled in (#211). - Fix attribute value encoding
- Update liveview to v0.15
- Add new
Surface.Components.Form.ErrorTag
to render error messages in forms (#199). - Disable validation for required props if
:props
is passed (#204)
- Update liveview to latest v0.15-dev (f986171)
- New wrapper components
Surface.Components.{For, If}
for when the:for
and:if
directives aren't sufficient (#184) - Allow double braces within interpolation (#171)
- Add new
Surface.Components.FieldContext
to support form fields without wrapping divs (#172) - Improve error message for unloaded modules (#174)
- Fix issue with
:for
modifiers on components (#176) - Expose form instance as slot prop on
Surface.Components.Form
(#183) - Don't initialize data assigns without default value (#195)
- Fix support for Elixir >= v1.11
- Update liveview to latest v0.15-dev (597c5dd)
- Add undefined assign check for
Surface.{LiveComponent,Component,LiveView}
- New form controls wrappers:
<DateTimeSelect>
and<TimeSelect>
. - Force recompilation of the parent component after fixing errors on any of its children.
- Update LiveView to v0.15-dev (0f592a4).
- Make
<slot>
mandatory instead ofinner_content
. - Add attribute
index
to<slot>
to allow rendering individual named slot items. - Rename macro
property
toprop
. - Remove macro
context
and add a<Context>
component to be used instead. - Rename directives
:on-phx-[event]
to:on-[event]
. - Add support for co-located template files using
.sface
suffix. - Add
Surface.init/1
to initialize internal assigns when not usingSurface.LiveView
. - Add
:props
directive to pass dynamic props to a component. - Add
:attrs
directive to pass dynamic attributes to a tag. - Add new modifiers
index
andwith_index
for:for
. - Update html tag generation to remove the tag if it's value computes to
nil
. - Add support for a
transform/1
callback to allow components to manipulate its own node at compile-time. - New form controls:
<Inputs>
,<Checkbox>
,<Select>
,<MultipleSelect>
,<HiddenInputs>
,<FileInput>
and<OptionsForSelect>
.
- New Markdown component
- New Link component
- New form components Form, Field, TextArea, Label, TextInput, RadioButton, HiddenInput, ColorInput, DateInput, DateTimeLocalInput, EmailInput, NumberInput, PasswordInput, RangeInput, SearchInput, TelephoneInput, TimeInput, UrlInput, Reset and Submit.
- Automatically define a required :id property for live components that implement
handle_event/3
- New config API for components
- Update LiveView to v0.13
- Add support for slots
- Add built-in LivePath and LiveRedirect components
- Drop automatic camel-to-kebab conversion for CSS class name
- Drop support for
inner_content.()
. Useinner_content.([])
instead - Update LiveView to v0.11.1
- Initial alpha release