diff --git a/ui/js/src/main/scala/works/iterative/ui/components/laminar/GenericComponentsModule.scala b/ui/js/src/main/scala/works/iterative/ui/components/laminar/GenericComponentsModule.scala new file mode 100644 index 0000000..8acbe7f --- /dev/null +++ b/ui/js/src/main/scala/works/iterative/ui/components/laminar/GenericComponentsModule.scala @@ -0,0 +1,28 @@ +package works.iterative.ui.components.laminar + +import com.raquo.laminar.api.L.{*, given} +import works.iterative.ui.model.color.ColorKind +import works.iterative.ui.components.tailwind.ComponentContext +import works.iterative.ui.components.tailwind.laminar.LaminarExtensions.given +import works.iterative.ui.model.Tag + +trait GenericComponentsModule: + + def generic: GenericComponents + + trait GenericComponents: + def tag(name: String, color: ColorKind): HtmlElement + def tag(t: Tag): HtmlElement = tag(t.value, t.color) + +trait DefaultGenericComponentsModule(using ComponentContext) + extends GenericComponentsModule: + override val generic: GenericComponents = new GenericComponents: + override def tag(name: String, color: ColorKind): HtmlElement = + p( + cls( + "px-2 inline-flex text-xs leading-5 font-semibold rounded-full" + ), + color(800).text, + color(100).bg, + name + ) diff --git a/ui/js/src/main/scala/works/iterative/ui/components/laminar/GenericComponentsModule.scala b/ui/js/src/main/scala/works/iterative/ui/components/laminar/GenericComponentsModule.scala new file mode 100644 index 0000000..8acbe7f --- /dev/null +++ b/ui/js/src/main/scala/works/iterative/ui/components/laminar/GenericComponentsModule.scala @@ -0,0 +1,28 @@ +package works.iterative.ui.components.laminar + +import com.raquo.laminar.api.L.{*, given} +import works.iterative.ui.model.color.ColorKind +import works.iterative.ui.components.tailwind.ComponentContext +import works.iterative.ui.components.tailwind.laminar.LaminarExtensions.given +import works.iterative.ui.model.Tag + +trait GenericComponentsModule: + + def generic: GenericComponents + + trait GenericComponents: + def tag(name: String, color: ColorKind): HtmlElement + def tag(t: Tag): HtmlElement = tag(t.value, t.color) + +trait DefaultGenericComponentsModule(using ComponentContext) + extends GenericComponentsModule: + override val generic: GenericComponents = new GenericComponents: + override def tag(name: String, color: ColorKind): HtmlElement = + p( + cls( + "px-2 inline-flex text-xs leading-5 font-semibold rounded-full" + ), + color(800).text, + color(100).bg, + name + ) diff --git a/ui/js/src/main/scala/works/iterative/ui/components/laminar/ListComponentsModule.scala b/ui/js/src/main/scala/works/iterative/ui/components/laminar/ListComponentsModule.scala index 5de4d67..d00f80c 100644 --- a/ui/js/src/main/scala/works/iterative/ui/components/laminar/ListComponentsModule.scala +++ b/ui/js/src/main/scala/works/iterative/ui/components/laminar/ListComponentsModule.scala @@ -14,7 +14,7 @@ def list: ListComponents trait ListComponents(using ComponentContext): - def label(text: String, color: ColorKind): ReactiveHtmlElement[Paragraph] + def label(text: String, color: ColorKind): HtmlElement def item( title: String, subtitle: Option[String], @@ -29,19 +29,13 @@ trait DefaultListComponentsModule(using ComponentContext) extends ListComponentsModule: + self: GenericComponentsModule => + override val list: ListComponents = new ListComponents: override def label( text: String, color: ColorKind - ): ReactiveHtmlElement[Paragraph] = - p( - cls( - "px-2 inline-flex text-xs leading-5 font-semibold rounded-full" - ), - color(800).text, - color(100).bg, - text - ) + ): HtmlElement = generic.tag(text, color) override def item( title: String,