/*
* 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
import scalatags.generic.Bundle
class PureCssGeneric[Builder, Output <: FragT, FragT](
val bun: Bundle[Builder, Output, FragT]) {
import bun.all._
type A = PureAlert[Builder, Output, FragT]
type B = PureButtons[Builder, Output, FragT]
type C = PureCls[Builder, Output, FragT]
implicit val bundle: Bundle[Builder, Output, FragT] = bun
implicit def cls2mod(v: C): Modifier = v()
implicit def alert2cls(a: A#Alert): C = a.toCls
implicit def alert2mod(a: A#Alert): Modifier = a.toCls.apply()
implicit def btn2cls(b: B#Button): C = b.toCls
implicit def btn2mod(b: B#Button): Modifier = b.toCls.apply()
private def pc(c: String): C = PureCls(c)
// 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")
// 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
val pure_alert: C = pc("pure-alert")
val pure_alert_error: C = pc("pure-alert-error")
val pure_alert_warning: C = pc("pure-alert-warning")
val pure_alert_success: C = pc("pure-alert-success")
// 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")
// buttons
val pure_button: C = pc("pure-button")
val pure_button_disabled: C = pc("pure-button-disabled")
val pure_button_active: C = pc("pure-button-active")
val pure_button_primary: C = pc("pure-button-primary")
val pure_button_secondary: C = pc("pure-button-secondary")
val pure_button_success: C = pc("pure-button-success")
val pure_button_error: C = pc("pure-button-error")
val pure_button_warning: C = pc("pure-button-warning")
val pure_button_small: C = pc("pure-button-small")
val pure_button_large: C = pc("pure-button-large")
val pure_button_group: C = pc("pure-button-group")
object pureButtons extends PureButtons(this)
val pureButton: B#Button = pureButtons.Button()
// menus
val pure_menu: C = pc("pure-menu")
val pure_menu_heading: C = pc("pure-menu-heading")
val pure_menu_list: C = pc("pure-menu-list")
val pure_menu_item: C = pc("pure-menu-item")
val pure_menu_horizontal: C = pc("pure-menu-horizontal")
val pure_menu_link: C = pc("pure-menu-link")
val pure_menu_selected: C = pc("pure-menu-selected")
val pure_menu_disabled: C = pc("pure-menu-disabled")
val pure_menu_allow_hower: C = pc("pure-menu-allow-hover")
val pure_menu_has_children: C = pc("pure-menu-has-children")
val pure_menu_scrollable: C = pc("pure-menu-scrollable")
}