Skip to content

Commit

Permalink
Docs: Add new sponsor
Browse files Browse the repository at this point in the history
  • Loading branch information
raquo committed Mar 19, 2023
1 parent 09b8e50 commit f0a1016
Show file tree
Hide file tree
Showing 12 changed files with 241 additions and 10 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ yarn.lock
website/node_modules
website/build
website/i18n/*

websiteJS/package-lock.json
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@ Nikita Gazarov – [@raquo](https://twitter.com/raquo)

Laminar is provided under the [MIT license](https://github.com/raquo/laminar/blob/master/LICENSE.md).

The logos and avatars in the `website/static/img/sponsors` directory are not covered by the MIT license. No license is granted to you for these assets.
The logos and avatars in the `sponsors` directory are not covered by the MIT license. No license is granted to you for these assets.

Comments in the `defs` directory pertaining to individual DOM element tags, attributes, properties and event properties, as well as CSS properties and their special values / keywords, are taken or derived from content created by Mozilla Contributors and are licensed under Creative Commons Attribution-ShareAlike license (CC-BY-SA), v2.5.
2 changes: 1 addition & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.11")

addSbtPlugin("com.github.sbt" % "sbt-git" % "2.0.1")

addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.3.6")
addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.3.7")

// #TODO Removed pending https://github.com/typelevel/sbt-tpolecat/issues/102
// addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.4.11")
1 change: 1 addition & 0 deletions src/main/scala/com/raquo/laminar/modifiers/Modifier.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import com.raquo.laminar.nodes.ReactiveElement
*
* If you choose to extend this trait, make sure to understand how to use [[Transaction.onStart.shared]].
* In simple cases, wrapping your callback in it similarly to [[Modifier.apply]] below will probably work.
* See https://github.com/raquo/Airstream/#restarting-streams-that-depend-on-signals--signalchanges-
*/
trait Modifier[-El <: ReactiveElement.Base] {

Expand Down
2 changes: 2 additions & 0 deletions website/WEBSITE-LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
The documentation content of the website is licensed under the same MIT license as Laminar (see /LICENSE.md)

The website source code is partially derived from docusaurus templates copyrighted by Facebook and licensed by them under the MIT license.

The logos and avatars in the `sponsors` directory are not covered by the MIT license. No license is granted to you for these assets.
38 changes: 32 additions & 6 deletions website/blog/2023-02-20-laminar-v15.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ Huge release with better Airstream semantics and many new features.

<!--truncate-->

> Laminar is a Scala.js library for building web application interfaces. Learn more in [a few short examples](https://laminar.dev/examples/hello-world) or [one long video](https://www.youtube.com/watch?v=L_AHCkl6L-Q).
> Laminar is a Scala.js library for building web application interfaces and managing UI state. Learn more in [a few short examples](https://laminar.dev/examples/hello-world) or [one long video](https://www.youtube.com/watch?v=L_AHCkl6L-Q).

## News

Feast your eyes on the largest Laminar & Airstream release to date. It brings many new features, and improves ergonomics, performance, and correctness. After more than a year of development, and more than two months of milestone release testing, and more testing, more documenting, here we are now, with this mountain behind us.

With this release, Laminar's version is jumping an order of magnitude from 0.14.5 to 15.0.0 to reflect the level of stability and maturity of the project. Despite the massive size of this release, it has no special status to deserve a "1.0.0" label. Laminar isn't "done", and this version isn't some kind of fixed-scope milestone that we've been targeting for years. It's simply the latest of many stable releases over the years, and the version number reflects that. There is still a lot of work ahead of us.
With this release, Laminar's version is jumping an order of magnitude from 0.14.5 to 15.0.0 to reflect the level of stability and maturity of the project. Why not 1.0.0? Because it would give users the wrong idea – if it took 6 years to get to "1.0.0", will it take another six years before we see 2.0.0? I hope not, because Laminar isn't "done", there is still much work ahead. This new version is great, but it isn't special, it's simply the latest of many stable releases over the years, and the new version number reflects that.

---

Expand All @@ -27,9 +27,18 @@ I typically include Laminar ecosystem news on top of every release post, but thi



## New GOLD Sponsor

<a class="-newSponsorLogoLink" href="https://www.heartai.net/">
<img class="-logo x-heartai" src="/img/sponsors/heartai.svg" alt="HeartAI logo" />
</a>

**[HeartAI](https://www.heartai.net/)** is a data and analytics platform for digital health and clinical care. The HeartAI team are based in South Australia and have been working with SA Health and the public health system to modernise digital health. Their capabilities include real-time data integration, modern web applications, and operational artificial intelligence. Supporting the [SA Virtual Care Service](https://www.sahealth.sa.gov.au/wps/wcm/connect/public+content/sa+health+internet/services/primary+and+specialised+services/sa+virtual+care+service/statewide+virtual+care+service), they have deployed a web application that is built with Laminar, Scala.js, and also a novel implementation of the popular D3.js visualisation library. The Laminar and Airstream libraries have helped HeartAI create dynamic and scalable applications. See the **[demo application](https://www.heartai.net/demo/apps/savcs/)** and further information in the [application architecture](https://www.heartai.net/docs/platform/application-architecture/) documentation.


## Sponsors

The development of Laminar itself is kindly sponsored by [people](https://github.com/sponsors/raquo) who use it in their businesses and personal projects.
Laminar development (and documentation and testing and community support) is _a lot_ of work, and sponsorship revenue makes a huge difference in my ability to do all this. A sincere thank you to [all of my sponsors](https://github.com/sponsors/raquo) for making this corner of open source more sustainable, and an open invitation to anyone making good use of Laminar to join this fine club of supporters.

**GOLD** sponsors supporting Laminar:

Expand All @@ -46,14 +55,19 @@ The development of Laminar itself is kindly sponsored by [people](https://github
<div class="-tagline"><u>Aurinko</u> is an API platform for workplace addons and integrations.</div>
</a>
</div>
<div class="-sponsor x-company x-heartai">
<a class="x-noHover" href="https://www.heartai.net/">
<img class="-logo" src="/img/sponsors/heartai.svg" alt="" />
<div class="-tagline"><u>HeartAI</u> is a data and analytics platform for digital health and clinical care.</div>
</a>
</div>
</div>

Laminar development (and documentation and testing and community support) is _a lot_ of work, and sponsorship revenue makes a huge difference in my ability to do all this. A sincere thank you to all of my sponsors for making this corner of open source more sustainable, and an open invitation to everyone reading to join this fine club of supporters.



## Table of Contents

* [New Documentation Sections](#new-documentation-sections)
* [New Laminar Features](#new-laminar-features)
* [Improved Performance](#improved-performance)
* [`flatMap` and `compose` for DOM events](#flatmap-and-compose-for-dom-events)
Expand Down Expand Up @@ -87,6 +101,18 @@ Laminar development (and documentation and testing and community support) is _a
* [User-facing Renamings](#user-facing-renamings)



## New Documentation Sections

In addition to the very detailed release notes below, existing users of Laminar should read these new documentation sections:

* **[Laminar Anti-patterns](https://laminar.dev/documentation#anti-patterns)** – learn what not to do
* [Airstream – Restarting Observables](https://github.com/raquo/Airstream/#restarting-observables)
* [Laminar – Approaches to CSS](https://laminar.dev/documentation#approaches-to-css)
* [Laminar – Browser Compatibility](https://laminar.dev/documentation#browser-compatibility)



## New Laminar Features


Expand Down Expand Up @@ -139,7 +165,7 @@ input(
)
```

If you use this new `flatMap` method in IntelliJ IDEA, you'll be annoyed to find that it causes the IDE to incorrectly report a false type error, at least with Scala 2. Not going to hold my breath for the fix, so I added more specialized `flatMapStream` and `flatMapSignal` methods which use simpler types, and don't trigger the false error in the IDE.
If you use this new `flatMap` method in IntelliJ IDEA in a Scala 2 codebase, you'll be annoyed to find that it causes the IDE to incorrectly report a false type error. As a workaround, I added more specialized `flatMapStream` and `flatMapSignal` methods which use simpler types, and don't trigger the false error in the IDE.

Between `flatMap` and `compose`, obtaining observables' functionality from DOM events is much more natural now, so `composeEvents` is now deprecated. **Migration** is trivial: rewrite `composeEvents(a)(b)` to `a.compose(b)`.

Expand Down
2 changes: 1 addition & 1 deletion website/docs/examples/ajax.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ val app: HtmlElement = div(
input(
idAttr(option.name),
typ("radio"),
name("ajaxOption"),
nameAttr("ajaxOption"),
checked <-- selectedOptionVar.signal.map(_ == option),
onChange.mapTo(option) --> selectedOptionVar,
),
Expand Down
2 changes: 1 addition & 1 deletion website/docs/resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ title: Resources

* [Documentation](https://laminar.dev/documentation)

* [Laminar API doc](https://javadoc.io/doc/com.raquo/laminar_sjs1_2.13/latest/com/raquo/laminar/index.html)[Airstream API doc](https://javadoc.io/doc/com.raquo/airstream_sjs1_2.13/latest/index.html)
* [Laminar API doc](https://javadoc.io/doc/com.raquo/laminar_sjs1_3/latest/com/raquo/laminar/index.html)[Airstream API doc](https://javadoc.io/doc/com.raquo/airstream_sjs1_3/latest/index.html)

* [Changelog](https://github.com/raquo/Laminar/blob/master/CHANGELOG.md)

Expand Down
6 changes: 6 additions & 0 deletions website/pages/en/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,12 @@ class Index extends React.Component {
<div className="-tagline"><u>Aurinko</u> is an API platform for workplace addons and integrations.</div>
</a>
</div>
<div className="-sponsor x-company x-heartai">
<a className="x-noHover" href="https://www.heartai.net/">
<img className="-logo" src="/img/sponsors/heartai-dark.svg" alt="" />
<div className="-tagline"><u>HeartAI</u> is a data and analytics platform for digital health and clinical care.</div>
</a>
</div>
</div>
<p className="-narrower">Laminar is sponsored by people like you. If you enjoy using Laminar, please consider supporting the project on github. <span className="-emoji">🙏</span></p>
</div>
Expand Down
28 changes: 28 additions & 0 deletions website/static/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -299,12 +299,17 @@ textarea::placeholder {
flex-direction: row;
column-gap: 40px;
margin-bottom: 40px;
flex-wrap: wrap;
}

.post .-sponsorsList {
max-width: 700px;
}

.-sponsorsList .-sponsor {
min-width: 280px;
}

@media(max-width: 699px) {

.-sponsorsList {
Expand Down Expand Up @@ -431,6 +436,29 @@ textarea::placeholder {
top: 5px;
}

.-sponsorsList .-sponsor.x-heartai {
text-align: center;
}

.-homeSection .-sponsorsList .-sponsor.x-heartai {
position: relative;
top: 10px;
}

.-sponsorsList .-sponsor.x-heartai {
position: relative;
top: 5px;
max-width: max(300px, calc(50% - 20px));
}

.-sponsorsList .-sponsor.x-heartai .-logo {
width: 320px;
}

.post .-newSponsorLogoLink .-logo.x-heartai {
margin-top: 5px;
width: 320px;
}


/* Header */
Expand Down
Loading

0 comments on commit f0a1016

Please sign in to comment.