Skip to content

Releases: sliemeobn/elementary

0.4.1

16 Oct 21:46
6d2d244
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.4.0...0.4.1

0.4.0

12 Oct 20:35
c1fdbe3
Compare
Choose a tag to compare

⚡️ More speed ⚡️

This release includes a few performance optimizations for faster and more efficient rendering.

Potentially Breaking Change

A few public underscored types around the _HTMLRenderToken had to be adjusted.
Unless you wrote you own renderer based on these types this should not affect you.

What's Changed

Full Changelog: 0.3.4...0.4.0

0.3.4

24 Sep 20:06
5ed7c2d
Compare
Choose a tag to compare

What's Changed

  • add 'placeholder' and 'accept' attributes to input tag by @alephao in #44

Full Changelog: 0.3.3...0.3.4

0.3.3

23 Sep 14:36
edcd533
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.3.2...0.3.3

0.3.2

21 Sep 18:33
4d9d137
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.3.1...0.3.2

0.3.1

17 Sep 21:27
41512d0
Compare
Choose a tag to compare

What's Changed

  • Add ability to specify the lang attribute for a HTMLDocument by @andreasley in #32
  • add benchmarks and performance improvements by @sliemeobn in #33

New Contributors

Full Changelog: 0.3.0...0.3.1

0.3.0

14 Sep 16:32
c8ec33c
Compare
Choose a tag to compare

🎉 Say hello to async/await, @Environment, and AsyncForEach 🎉

This release brings a few foundational capabilities to seamlessly work with async data sources directly in your HTML elements.

div {
    let text = await getMyData()
    p { "This totally works: \(text)" }
    MyComponent()
}

struct MyComponent: HTML {
    var content: some HTML {
        AsyncContent {
            "So does this: \(await getMoreData())"
        }
    }
}
ul {
    // the full result never needs to be stored in memory...
    let users = try await db.users.findAll()
    // ...as each async sequence element...
    AsyncForEach(users) { user in
        // ...is immediately streamed out as HTML
        li { "\(user.name) \(user.favoriteProgrammingLanguage)" }
    }
}
enum MyValues {
    // task-locals act as keys, ...
    @TaskLocal static var userName = "Anonymous"
}

struct MyComponent: HTML {
    // ... their values can be accessed ...
    @Environment(MyValues.$userName) var userName

    var content: some HTML {
        p { "Hello, \(userName)!" }
    }
}

div {
    // ... and provided in a familiar way
    MyComponent()
        .environment(Values.$userName, "Drax the Destroyer")
}

What's Changed

New Contributors

Full Changelog: 0.2.0...0.3.0

0.2.0

28 Aug 09:10
04bd2fc
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.1.3...0.2.0

0.1.3

12 Aug 09:16
1b2ee89
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.1.2...0.1.3

0.1.2

03 Jul 18:05
11616fa
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.1.1...0.1.2