diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9c155c98..c137aab1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,24 +24,24 @@ concurrency: jobs: build: - name: Build and Test + name: Test strategy: matrix: - os: [ubuntu-latest] + os: [ubuntu-22.04] scala: [3] java: [temurin@21] project: [rootJS, rootJVM] runs-on: ${{ matrix.os }} timeout-minutes: 60 steps: - - name: Install sbt - uses: sbt/setup-sbt@v1 - - name: Checkout current branch (full) uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Setup sbt + uses: sbt/setup-sbt@v1 + - name: Setup Java (temurin@21) id: setup-java-temurin-21 if: matrix.java == 'temurin@21' @@ -59,11 +59,11 @@ jobs: run: sbt githubWorkflowCheck - name: Check headers and formatting - if: matrix.java == 'temurin@21' && matrix.os == 'ubuntu-latest' + if: matrix.java == 'temurin@21' && matrix.os == 'ubuntu-22.04' run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' headerCheckAll scalafmtCheckAll 'project /' scalafmtSbtCheck - name: Check scalafix lints - if: matrix.java == 'temurin@21' && matrix.os == 'ubuntu-latest' + if: matrix.java == 'temurin@21' && matrix.os == 'ubuntu-22.04' run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' 'scalafixAll --check' - name: scalaJSLink @@ -74,11 +74,11 @@ jobs: run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' test - name: Check binary compatibility - if: matrix.java == 'temurin@21' && matrix.os == 'ubuntu-latest' + if: matrix.java == 'temurin@21' && matrix.os == 'ubuntu-22.04' run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' mimaReportBinaryIssues - name: Generate API documentation - if: matrix.java == 'temurin@21' && matrix.os == 'ubuntu-latest' + if: matrix.java == 'temurin@21' && matrix.os == 'ubuntu-22.04' run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' doc - name: Monitor artifact size @@ -106,18 +106,18 @@ jobs: if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/series/0.1') strategy: matrix: - os: [ubuntu-latest] + os: [ubuntu-22.04] java: [temurin@21] runs-on: ${{ matrix.os }} steps: - - name: Install sbt - uses: sbt/setup-sbt@v1 - - name: Checkout current branch (full) uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Setup sbt + uses: sbt/setup-sbt@v1 + - name: Setup Java (temurin@21) id: setup-java-temurin-21 if: matrix.java == 'temurin@21' @@ -180,18 +180,18 @@ jobs: if: github.event.repository.fork == false && github.event_name != 'pull_request' strategy: matrix: - os: [ubuntu-latest] + os: [ubuntu-22.04] java: [temurin@21] runs-on: ${{ matrix.os }} steps: - - name: Install sbt - uses: sbt/setup-sbt@v1 - - name: Checkout current branch (full) uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Setup sbt + uses: sbt/setup-sbt@v1 + - name: Setup Java (temurin@21) id: setup-java-temurin-21 if: matrix.java == 'temurin@21' @@ -215,7 +215,7 @@ jobs: name: Validate Steward Config strategy: matrix: - os: [ubuntu-latest] + os: [ubuntu-22.04] java: [temurin@11] runs-on: ${{ matrix.os }} steps: @@ -240,18 +240,18 @@ jobs: name: Generate Site strategy: matrix: - os: [ubuntu-latest] + os: [ubuntu-22.04] java: [temurin@21] runs-on: ${{ matrix.os }} steps: - - name: Install sbt - uses: sbt/setup-sbt@v1 - - name: Checkout current branch (full) uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Setup sbt + uses: sbt/setup-sbt@v1 + - name: Setup Java (temurin@21) id: setup-java-temurin-21 if: matrix.java == 'temurin@21' diff --git a/.scalafmt.conf b/.scalafmt.conf index 76eb9889..10f2cb55 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version = 3.8.1 +version = 3.9.2 runner.dialect = scala3 diff --git a/README.md b/README.md index 99674478..26eb6097 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Build reactive web applications in Scala.js with Cats Effect, FS2, and friends! ```scala -libraryDependencies += "com.armanbilge" %%% "calico" % "0.2.2" +libraryDependencies += "com.armanbilge" %%% "calico" % "0.2.3" ``` Please explore the documentation and examples at https://armanbilge.github.io/calico. diff --git a/build.sbt b/build.sbt index 30cb9c5b..52bf0283 100644 --- a/build.sbt +++ b/build.sbt @@ -11,16 +11,16 @@ ThisBuild / tlCiReleaseBranches ++= Seq("series/0.1") ThisBuild / tlSitePublishBranch := Some("main") ThisBuild / tlSonatypeUseLegacyHost := false -ThisBuild / crossScalaVersions := Seq("3.3.4") +ThisBuild / crossScalaVersions := Seq("3.3.5") ThisBuild / scalacOptions ++= Seq("-new-syntax", "-indent", "-source:future") ThisBuild / githubWorkflowJavaVersions := Seq(JavaSpec.temurin("21")) -val CatsVersion = "2.12.0" +val CatsVersion = "2.13.0" val CatsEffectVersion = "3.5.7" val Fs2Version = "3.11.0" val Fs2DomVersion = "0.2.1" -val Http4sVersion = "0.23.29" +val Http4sVersion = "0.23.30" val Http4sDomVersion = "0.2.11" val MonocleVersion = "3.3.0" @@ -41,7 +41,7 @@ lazy val frp = crossProject(JVMPlatform, JSPlatform) "org.typelevel" %%% "cats-effect-testkit" % CatsEffectVersion % Test, "org.typelevel" %%% "discipline-munit" % "2.0.0" % Test, "org.typelevel" %%% "munit-cats-effect" % "2.0.0" % Test, - "org.scalameta" %%% "munit-scalacheck" % "1.0.0" % Test + "org.scalameta" %%% "munit-scalacheck" % "1.1.0" % Test ) ) @@ -54,7 +54,7 @@ lazy val calico = project name := "calico", libraryDependencies ++= Seq( "com.armanbilge" %%% "fs2-dom" % Fs2DomVersion, - "org.typelevel" %%% "shapeless3-deriving" % "3.4.3", + "org.typelevel" %%% "shapeless3-deriving" % "3.5.0", "dev.optics" %%% "monocle-core" % MonocleVersion, "org.scala-js" %%% "scalajs-dom" % "2.8.0" ), diff --git a/calico/src/main/scala/calico/html/Html.scala b/calico/src/main/scala/calico/html/Html.scala index 4b3271db..44dedcab 100644 --- a/calico/src/main/scala/calico/html/Html.scala +++ b/calico/src/main/scala/calico/html/Html.scala @@ -62,3 +62,6 @@ sealed class Html[F[_]](using F: Async[F]) def styleAttr: HtmlAttr[F, String] = HtmlAttr("style", encoders.identity) + + def valueAttr: HtmlAttr[F, String] = + HtmlAttr("value", encoders.identity) diff --git a/project/build.properties b/project/build.properties index e88a0d81..e97b2722 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.6 +sbt.version=1.10.10 diff --git a/project/plugins.sbt b/project/plugins.sbt index 3d83aaad..ae6541ff 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,7 @@ -val sbtTypelevelVersion = "0.7.4" +val sbtTypelevelVersion = "0.7.7" addSbtPlugin("org.typelevel" % "sbt-typelevel" % sbtTypelevelVersion) addSbtPlugin("org.typelevel" % "sbt-typelevel-scalafix" % sbtTypelevelVersion) addSbtPlugin("org.typelevel" % "sbt-typelevel-site" % sbtTypelevelVersion) -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.17.0") -addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.6.1") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.18.2") +addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.6.4") addSbtPlugin("com.armanbilge" % "sbt-bundlemon" % "0.1.4") diff --git a/sandbox/index.html b/sandbox/index.html index 23ff9d11..2bee0310 100644 --- a/sandbox/index.html +++ b/sandbox/index.html @@ -3,6 +3,6 @@
- +
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载
diff --git a/todo-mvc/index.html b/todo-mvc/index.html index bc882c39..e85aa74c 100644 --- a/todo-mvc/index.html +++ b/todo-mvc/index.html @@ -5,6 +5,6 @@
- +
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载
diff --git a/todo-mvc/src/main/scala/todomvc/TodoMvc.scala b/todo-mvc/src/main/scala/todomvc/TodoMvc.scala index 6294c19c..0b29e878 100644 --- a/todo-mvc/src/main/scala/todomvc/TodoMvc.scala +++ b/todo-mvc/src/main/scala/todomvc/TodoMvc.scala @@ -164,8 +164,7 @@ object TodoMvc extends IOWebApp: li( a( cls <-- filter.map(_ == f).map(Option.when(_)("selected").toList), - onClick(router.navigate(Uri(fragment = f.fragment.some))), - href := s"/#${f.fragment}", + href := s"#${f.fragment}", f.toString ) )