Skip to content

Commit

Permalink
remove runtime logic handler since we are all about compile-time
Browse files Browse the repository at this point in the history
  • Loading branch information
nguyenyou committed May 29, 2024
1 parent 339b684 commit 7de2a7d
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 22 deletions.
5 changes: 5 additions & 0 deletions .changeset/lemon-turkeys-remember.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"scalawind": minor
---

remove runtime logic since we're all about compile-time
33 changes: 11 additions & 22 deletions packages/scalawind/src/templates/scalawind.hbs
Original file line number Diff line number Diff line change
@@ -1,28 +1,17 @@
package {{package}}

import scala.quoted.*
import scala.annotation.unused

case class TwStyle(style: String = "") {
def addClasses(classNames: String): TwStyle = {
val newStyle = s"$style ${classNames}".trim
TwStyle(newStyle)
}
def addClass(className: String): TwStyle = addClasses(className)
def addClasses(@unused classNames: String): TwStyle = TwStyle()
def addClass(@unused className: String): TwStyle = TwStyle()

{{#each modifiers}}
def {{this.name}}(styles: TwStyle): TwStyle = {
val classes = styles.style.split("\\s+").map(clx => s"{{this.value}}:$clx").mkString(" ")
addClasses(classes)
}
def {{this.name}}(@unused styles: TwStyle): TwStyle = TwStyle()
{{/each}}
def important(styles: TwStyle): TwStyle = {
val classes = styles.style.split("\\s+").map(clx => s"!$clx").mkString(" ")
addClasses(classes)
}
def i(styles: TwStyle): TwStyle = {
val classes = styles.style.split("\\s+").map(clx => s"!$clx").mkString(" ")
addClasses(classes)
}
def important(@unused styles: TwStyle): TwStyle = TwStyle()
def i(@unused styles: TwStyle): TwStyle = TwStyle()

override def toString: String = style
}
Expand All @@ -31,19 +20,19 @@ object tw {
def apply(): TwStyle = TwStyle()

{{#each standard}}
def {{this.prop}}: TwStyle = TwStyle().addClass("{{this.raw}}")
def {{this.prop}}: TwStyle = TwStyle()
{{/each}}

{{#each modifiers}}
def {{this.name}}(styles: TwStyle): TwStyle = TwStyle().{{this.name}}(styles)
def {{this.name}}(@unused styles: TwStyle): TwStyle = TwStyle()
{{/each}}
def important(styles: TwStyle): TwStyle = TwStyle().important(styles)
def i(styles: TwStyle): TwStyle = TwStyle().i(styles)
def important(@unused styles: TwStyle): TwStyle = TwStyle()
def i(@unused styles: TwStyle): TwStyle = TwStyle()
}

extension (twStyle: TwStyle)
{{#each standard}}
def {{this.prop}}: TwStyle = twStyle.addClass("{{this.raw}}")
def {{this.prop}}: TwStyle = TwStyle()
{{/each}}

inline implicit def sw(inline twStyle: TwStyle): String =
Expand Down

0 comments on commit 7de2a7d

Please sign in to comment.