--- a/shared/src/main/scala/purecss/generic/Component.scala Thu Dec 14 14:48:43 2017 +0100
+++ b/shared/src/main/scala/purecss/generic/Component.scala Thu Dec 14 15:32:50 2017 +0100
@@ -28,4 +28,10 @@
implicit def cls2mod(v: C): Modifier = v()
protected def pc(c: String): C = PureCls(c)
+
+ trait Element {
+ def toCls: C
+ def & (next: C): C = toCls & next
+ def & (next: String): C = toCls & next
+ }
}
--- a/shared/src/main/scala/purecss/generic/PureButtons.scala Thu Dec 14 14:48:43 2017 +0100
+++ b/shared/src/main/scala/purecss/generic/PureButtons.scala Thu Dec 14 15:32:50 2017 +0100
@@ -36,7 +36,7 @@
implicit def btn2mod(b: Button): Modifier = b.toCls.apply()
case class Button(role: Option[C] = None, state: Option[C] = None,
- level: Option[C] = None, size: Option[C] = None) {
+ level: Option[C] = None, size: Option[C] = None) extends Element {
type B = Button
def primary: B = copy(role = Some(pure_button_primary))
@@ -55,8 +55,6 @@
def toCls: C =
pure_button.copy(chain = (role ++ state ++ level ++ size) toList)
- def & (next: C): C = toCls & next
- def & (next: String): C = toCls & next
}
}
--- a/shared/src/main/scala/purecss/generic/PureCssGeneric.scala Thu Dec 14 14:48:43 2017 +0100
+++ b/shared/src/main/scala/purecss/generic/PureCssGeneric.scala Thu Dec 14 15:32:50 2017 +0100
@@ -20,126 +20,24 @@
class PureCssGeneric[Builder, Output <: FragT, FragT](
bun: Bundle[Builder, Output, FragT]) extends
+ PureGrid[Builder, Output, FragT] with
+ PureInputs[Builder, Output, FragT] with
PureButtons[Builder, Output, FragT] with
+ PureTable[Builder, Output, FragT] with
+ PureForm[Builder, Output, FragT] with
PureAlerts[Builder, Output, FragT] {
implicit val bundle: Bundle[Builder, Output, FragT] = bun
- // grid
- val pure_g: C = pc("pure-g")
- val pure_u_1: C = pc("pure-u-1")
-
- // 5ths-based
- val pure_u_1_5: C = pc("pure-u-1-5")
- val pure_u_2_5: C = pc("pure-u-2-5")
- val pure_u_3_5: C = pc("pure-u-3-5")
- val pure_u_4_5: C = pc("pure-u-4-5")
-
- // 24ths-based
- val pure_u_1_24: C = pc("pure-u-1-24")
- val pure_u_1_12: C = pc("pure-u-1-12")
- val pure_u_2_24: C = pc("pure-u-2-24")
- val pure_u_3_24: C = pc("pure-u-3-24")
- val pure_u_1_8: C = pc("pure-u-1-8")
- val pure_u_4_24: C = pc("pure-u-4-24")
- val pure_u_1_6: C = pc("pure-u-1-6")
- val pure_u_5_24: C = pc("pure-u-5-24")
- val pure_u_1_4: C = pc("pure-u-1-4")
- val pure_u_6_24: C = pc("pure-u-6-24")
- val pure_u_7_24: C = pc("pure-u-7-24")
- val pure_u_1_3: C = pc("pure-u-1-3")
- val pure_u_8_24: C = pc("pure-u-8-24")
- val pure_u_3_8: C = pc("pure-u-3-8")
- val pure_u_9_24: C = pc("pure-u-9-24")
- val pure_u_5_12: C = pc("pure-u-5-12")
- val pure_u_10_24: C = pc("pure-u-10-24")
- val pure_u_11_24: C = pc("pure-u-11-24")
- val pure_u_1_2: C = pc("pure-u-1-2")
- val pure_u_13_24: C = pc("pure-u-13-24")
- val pure_u_7_12: C = pc("pure-u-7-12")
- val pure_u_14_24: C = pc("pure-u-14-24")
- val pure_u_5_8: C = pc("pure-u-5-8")
- val pure_u_15_24: C = pc("pure-u-15-24")
- val pure_u_2_3: C = pc("pure-u-2-3")
- val pure_u_16_24: C = pc("pure-u-16-24")
- val pure_u_17_24: C = pc("pure-u-17-24")
- val pure_u_3_4: C = pc("pure-u-3-4")
- val pure_u_18_24: C = pc("pure-u-18-24")
- val pure_u_19_24: C = pc("pure-u-19-24")
- val pure_u_5_6: C = pc("pure-u-5-6")
- val pure_u_20_24: C = pc("pure-u-20-24")
- val pure_u_7_8: C = pc("pure-u-7-8")
- val pure_u_21_24: C = pc("pure-u-21-24")
- val pure_u_11_12: C = pc("pure-u-11-12")
- val pure_u_22_24: C = pc("pure-u-22-24")
- val pure_u_23_24: C = pc("pure-u-23-24")
+ object pure extends PureGrid with PureInput {
+ val button = Button()
+ val table = Table()
+ val img: C = pc("pure-img")
+ val form = Form()
+ }
// generic
val pull_right: C = pc("pull-right")
- val pure_img: C = pc("pure-img")
-
- // tables
- val pure_table: C = pc("pure-table")
- val pure_table_bordered: C = pc("pure-table-bordered")
- val pure_table_horizontal: C = pc("pure-table-horizontal")
- val pure_table_striped: C = pc("pure-table-striped")
-
- // alerts
-
- // forms
- val pure_form: C = pc("pure-form")
- val pure_form_stacked: C = pc("pure-form-stacked")
- val pure_form_aligned: C = pc("pure-form-aligned")
- val pure_group: C = pc("pure-group")
-
- // inputs
- val pure_input_1: C = pc("pure-input-1")
- val pure_input_1_5: C = pc("pure-input-1-5")
- val pure_input_2_5: C = pc("pure-input-2-5")
- val pure_input_3_5: C = pc("pure-input-3-5")
- val pure_input_4_5: C = pc("pure-input-4-5")
- val pure_input_1_24: C = pc("pure-input-1-24")
- val pure_input_1_12: C = pc("pure-input-1-12")
- val pure_input_2_24: C = pc("pure-input-2-24")
- val pure_input_3_24: C = pc("pure-input-3-24")
- val pure_input_1_8: C = pc("pure-input-1-8")
- val pure_input_4_24: C = pc("pure-input-4-24")
- val pure_input_1_6: C = pc("pure-input-1-6")
- val pure_input_5_24: C = pc("pure-input-5-24")
- val pure_input_1_4: C = pc("pure-input-1-4")
- val pure_input_6_24: C = pc("pure-input-6-24")
- val pure_input_7_24: C = pc("pure-input-7-24")
- val pure_input_1_3: C = pc("pure-input-1-3")
- val pure_input_8_24: C = pc("pure-input-8-24")
- val pure_input_3_8: C = pc("pure-input-3-8")
- val pure_input_9_24: C = pc("pure-input-9-24")
- val pure_input_5_12: C = pc("pure-input-5-12")
- val pure_input_10_24: C = pc("pure-input-10-24")
- val pure_input_11_24: C = pc("pure-input-11-24")
- val pure_input_1_2: C = pc("pure-input-1-2")
- val pure_input_13_24: C = pc("pure-input-13-24")
- val pure_input_7_12: C = pc("pure-input-7-12")
- val pure_input_14_24: C = pc("pure-input-14-24")
- val pure_input_5_8: C = pc("pure-input-5-8")
- val pure_input_15_24: C = pc("pure-input-15-24")
- val pure_input_2_3: C = pc("pure-input-2-3")
- val pure_input_16_24: C = pc("pure-input-16-24")
- val pure_input_17_24: C = pc("pure-input-17-24")
- val pure_input_3_4: C = pc("pure-input-3-4")
- val pure_input_18_24: C = pc("pure-input-18-24")
- val pure_input_19_24: C = pc("pure-input-19-24")
- val pure_input_5_6: C = pc("pure-input-5-6")
- val pure_input_20_24: C = pc("pure-input-20-24")
- val pure_input_7_8: C = pc("pure-input-7-8")
- val pure_input_21_24: C = pc("pure-input-21-24")
- val pure_input_11_12: C = pc("pure-input-11-12")
- val pure_input_22_24: C = pc("pure-input-22-24")
- val pure_input_23_24: C = pc("pure-input-23-24")
- val pure_input_rounded: C = pc("pure-input-rounded")
- val pure_checkbox: C = pc("pure-checkbox")
- val pure_radio: C = pc("pure-radio")
-
- val pureButton: Button = Button()
// menus
val pure_menu: C = pc("pure-menu")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/shared/src/main/scala/purecss/generic/PureForm.scala Thu Dec 14 15:32:50 2017 +0100
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2017 Tomas Zeman <tzeman@volny.cz>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package purecss.generic
+
+import scala.language.{implicitConversions, postfixOps}
+
+trait PureForm[B, O <: F, F] extends Component[B, O, F] {
+
+ import bundle.all._
+
+ val pure_form: C = pc("pure-form")
+ val pure_form_stacked: C = pc("pure-form-stacked")
+ val pure_form_aligned: C = pc("pure-form-aligned")
+ val pure_group: C = pc("pure-group")
+ val pure_control_group: C = pc("pure-control-group")
+ val pure_form_message: C = pc("pure-form-message")
+ val pure_form_message_inline: C = pc("pure-form-message-inline")
+
+ implicit def f2cls(f: Form): C = f.toCls
+ implicit def f2mod(f: Form): Modifier = f.toCls.apply()
+
+ case class Form(opt: Option[C] = None) extends Element {
+ def stacked: Form = copy(opt = Some(pure_form_stacked))
+ def aligned: Form = copy(opt = Some(pure_form_aligned))
+ override def toCls: C = pure_form.copy(chain = opt toList)
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/shared/src/main/scala/purecss/generic/PureGrid.scala Thu Dec 14 15:32:50 2017 +0100
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2017 Tomas Zeman <tzeman@volny.cz>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package purecss.generic
+
+trait PureGrid[B, O <: F, F] extends Component[B, O, F] {
+
+ trait PureGrid {
+
+ // grid
+ val g: C = pc("pure-g")
+ val u_1: C = pc("pure-u-1")
+
+ // 5ths-based
+ val u_1_5: C = pc("pure-u-1-5")
+ val u_2_5: C = pc("pure-u-2-5")
+ val u_3_5: C = pc("pure-u-3-5")
+ val u_4_5: C = pc("pure-u-4-5")
+
+ // 24ths-based
+ val u_1_24: C = pc("pure-u-1-24")
+ val u_1_12: C = pc("pure-u-1-12")
+ val u_2_24: C = pc("pure-u-2-24")
+ val u_3_24: C = pc("pure-u-3-24")
+ val u_1_8: C = pc("pure-u-1-8")
+ val u_4_24: C = pc("pure-u-4-24")
+ val u_1_6: C = pc("pure-u-1-6")
+ val u_5_24: C = pc("pure-u-5-24")
+ val u_1_4: C = pc("pure-u-1-4")
+ val u_6_24: C = pc("pure-u-6-24")
+ val u_7_24: C = pc("pure-u-7-24")
+ val u_1_3: C = pc("pure-u-1-3")
+ val u_8_24: C = pc("pure-u-8-24")
+ val u_3_8: C = pc("pure-u-3-8")
+ val u_9_24: C = pc("pure-u-9-24")
+ val u_5_12: C = pc("pure-u-5-12")
+ val u_10_24: C = pc("pure-u-10-24")
+ val u_11_24: C = pc("pure-u-11-24")
+ val u_1_2: C = pc("pure-u-1-2")
+ val u_13_24: C = pc("pure-u-13-24")
+ val u_7_12: C = pc("pure-u-7-12")
+ val u_14_24: C = pc("pure-u-14-24")
+ val u_5_8: C = pc("pure-u-5-8")
+ val u_15_24: C = pc("pure-u-15-24")
+ val u_2_3: C = pc("pure-u-2-3")
+ val u_16_24: C = pc("pure-u-16-24")
+ val u_17_24: C = pc("pure-u-17-24")
+ val u_3_4: C = pc("pure-u-3-4")
+ val u_18_24: C = pc("pure-u-18-24")
+ val u_19_24: C = pc("pure-u-19-24")
+ val u_5_6: C = pc("pure-u-5-6")
+ val u_20_24: C = pc("pure-u-20-24")
+ val u_7_8: C = pc("pure-u-7-8")
+ val u_21_24: C = pc("pure-u-21-24")
+ val u_11_12: C = pc("pure-u-11-12")
+ val u_22_24: C = pc("pure-u-22-24")
+ val u_23_24: C = pc("pure-u-23-24")
+
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/shared/src/main/scala/purecss/generic/PureInputs.scala Thu Dec 14 15:32:50 2017 +0100
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2017 Tomas Zeman <tzeman@volny.cz>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package purecss.generic
+
+trait PureInputs[B, O <: F, F] extends Component[B, O, F] {
+
+ trait PureInput {
+ val input_rounded: C = pc("pure-input-rounded")
+ val input_checkbox: C = pc("pure-checkbox")
+ val input_radio: C = pc("pure-radio")
+
+ val input_1: C = pc("pure-input-1")
+ val input_1_5: C = pc("pure-input-1-5")
+ val input_2_5: C = pc("pure-input-2-5")
+ val input_3_5: C = pc("pure-input-3-5")
+ val input_4_5: C = pc("pure-input-4-5")
+ val input_1_24: C = pc("pure-input-1-24")
+ val input_1_12: C = pc("pure-input-1-12")
+ val input_2_24: C = pc("pure-input-2-24")
+ val input_3_24: C = pc("pure-input-3-24")
+ val input_1_8: C = pc("pure-input-1-8")
+ val input_4_24: C = pc("pure-input-4-24")
+ val input_1_6: C = pc("pure-input-1-6")
+ val input_5_24: C = pc("pure-input-5-24")
+ val input_1_4: C = pc("pure-input-1-4")
+ val input_6_24: C = pc("pure-input-6-24")
+ val input_7_24: C = pc("pure-input-7-24")
+ val input_1_3: C = pc("pure-input-1-3")
+ val input_8_24: C = pc("pure-input-8-24")
+ val input_3_8: C = pc("pure-input-3-8")
+ val input_9_24: C = pc("pure-input-9-24")
+ val input_5_12: C = pc("pure-input-5-12")
+ val input_10_24: C = pc("pure-input-10-24")
+ val input_11_24: C = pc("pure-input-11-24")
+ val input_1_2: C = pc("pure-input-1-2")
+ val input_13_24: C = pc("pure-input-13-24")
+ val input_7_12: C = pc("pure-input-7-12")
+ val input_14_24: C = pc("pure-input-14-24")
+ val input_5_8: C = pc("pure-input-5-8")
+ val input_15_24: C = pc("pure-input-15-24")
+ val input_2_3: C = pc("pure-input-2-3")
+ val input_16_24: C = pc("pure-input-16-24")
+ val input_17_24: C = pc("pure-input-17-24")
+ val input_3_4: C = pc("pure-input-3-4")
+ val input_18_24: C = pc("pure-input-18-24")
+ val input_19_24: C = pc("pure-input-19-24")
+ val input_5_6: C = pc("pure-input-5-6")
+ val input_20_24: C = pc("pure-input-20-24")
+ val input_7_8: C = pc("pure-input-7-8")
+ val input_21_24: C = pc("pure-input-21-24")
+ val input_11_12: C = pc("pure-input-11-12")
+ val input_22_24: C = pc("pure-input-22-24")
+ val input_23_24: C = pc("pure-input-23-24")
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/shared/src/main/scala/purecss/generic/PureTable.scala Thu Dec 14 15:32:50 2017 +0100
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2017 Tomas Zeman <tzeman@volny.cz>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package purecss.generic
+
+import scala.language.{implicitConversions, postfixOps}
+
+trait PureTable[B, O <: F, F] extends Component[B, O, F] {
+
+ import bundle.all._
+
+ val pure_table: C = pc("pure-table")
+ val pure_table_bordered: C = pc("pure-table-bordered")
+ val pure_table_horizontal: C = pc("pure-table-horizontal")
+ val pure_table_striped: C = pc("pure-table-striped")
+
+ implicit def tbl2cls(t: Table): C = t.toCls
+ implicit def tbl2mod(t: Table): Modifier = t.toCls.apply()
+
+ case class Table(opt: Option[C] = None) extends Element {
+ def bordered: Table = copy(opt = Some(pure_table_bordered))
+ def horizontal: Table = copy(opt = Some(pure_table_horizontal))
+ def striped: Table = copy(opt = Some(pure_table_striped))
+
+ def toCls: C = pure_table.copy(chain = opt toList)
+ }
+}