No more Bulma module.
This commit is contained in:
parent
ca708999fc
commit
a3114ed235
10 changed files with 92 additions and 71 deletions
|
@ -22,7 +22,6 @@ import Data.Tuple (Tuple(..))
|
|||
|
||||
import Web as Web
|
||||
import Web.Button as Button
|
||||
import Bulma as Bulma
|
||||
import Halogen.HTML as HH
|
||||
import Halogen.HTML.Properties as HP
|
||||
import Data.String.CodePoints as CP
|
||||
|
@ -96,7 +95,7 @@ shared_domains domains_i_share action_enter_domain action_unshare_domain action_
|
|||
|
||||
-- | Render all Resource Records.
|
||||
resource_records :: forall w i. Array ResourceRecord -> (Int -> i) -> (Int -> i) -> (Int -> i) -> HH.HTML w i
|
||||
resource_records [] _ _ _ = Web.box [Bulma.zone_rr_title "Resource records", Bulma.subtitle "No records for now"]
|
||||
resource_records [] _ _ _ = Web.box [Web.title "Resource records", Web.subtitle "No records for now"]
|
||||
resource_records records action_create_or_update_rr action_delete_rr action_new_token
|
||||
= HH.div_ $
|
||||
(rr_box [bg_color_ro] tag_soa soa_table_header table_content all_soa_rr)
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
-- | The `Bulma` module is a wrapper around the BULMA css framework.
|
||||
module Bulma where
|
||||
import Prelude (map, ($), (<>))
|
||||
|
||||
import Halogen.HTML as HH
|
||||
import Halogen.HTML.Properties as HP
|
||||
import Halogen.HTML.Events as HE
|
||||
|
||||
import CSSClasses as C
|
||||
|
||||
import Halogen.HTML.Core (AttrName(..))
|
||||
-- import Web.Event.Event (type_, Event, EventType(..))
|
||||
-- import Web.UIEvent.MouseEvent (MouseEvent) -- package web-uievents
|
||||
|
||||
outside_link :: forall w i. Array HH.ClassName -> String -> String -> HH.HTML w i
|
||||
outside_link classes url title = HH.a [ HP.classes classes, HP.target "_blank", HP.href url ] [ HH.text title ]
|
||||
|
||||
zone_rr_title :: forall (w :: Type) (a :: Type). String -> HH.HTML w a
|
||||
zone_rr_title title
|
||||
= HH.h3 [ HP.classes [C.title, C.has_text_light, C.has_background_dark] ]
|
||||
[ HH.text title ]
|
||||
|
||||
subtitle :: forall (w :: Type) (a :: Type). String -> HH.HTML w a
|
||||
subtitle title = HH.h2 [ HP.classes [C.subtitle, C.is4] ] [ HH.text title ]
|
||||
|
||||
-- | Create a `level`, different components that should appear on the same horizontal line.
|
||||
-- | First argument, elements that should appear on the left, second on the right.
|
||||
level :: forall w i. Array (HH.HTML w i) -> Array (HH.HTML w i) -> HH.HTML w i
|
||||
level left right = HH.nav [ HP.classes [C.level] ]
|
||||
[ HH.div [ HP.classes [C.level_left] ] $ itemize left
|
||||
, HH.div [ HP.classes [C.level_right] ] $ itemize right
|
||||
]
|
||||
where itemize = map (\v -> HH.div [ HP.classes [C.level_item] ] [v])
|
||||
|
||||
section_small :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
|
||||
section_small = HH.section [ HP.classes [C.section, C.is_small] ]
|
||||
|
||||
section_medium :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
|
||||
section_medium = HH.section [ HP.classes [C.section, C.medium] ]
|
||||
|
||||
data_target :: forall r i. String -> HP.IProp r i
|
||||
data_target = HP.attr (AttrName "data-target")
|
||||
|
||||
tile :: forall w i. Array HH.ClassName -> Array (HH.HTML w i) -> HH.HTML w i
|
||||
tile classes = HH.div [HP.classes ([C.tile] <> classes)]
|
||||
|
||||
tile_ :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
|
||||
tile_ = tile []
|
||||
|
||||
tile_danger :: forall w i. Array HH.ClassName -> Array (HH.HTML w i) -> HH.HTML w i
|
||||
tile_danger classes = tile $ [C.is_danger, C.notification] <> classes
|
||||
|
||||
tile_warning :: forall w i. Array HH.ClassName -> Array (HH.HTML w i) -> HH.HTML w i
|
||||
tile_warning classes = tile $ [C.is_warning, C.notification] <> classes
|
||||
|
||||
tag_light_info :: forall w i. String -> HH.HTML w i
|
||||
tag_light_info str = HH.span [HP.classes [C.tag, C.is_info, C.is_light]] [HH.text str]
|
23
src/Web.purs
23
src/Web.purs
|
@ -1,36 +1,41 @@
|
|||
-- | `Web` module is an abstraction over most HTML-related code in order
|
||||
-- | to have a consistent style through all the website.
|
||||
module Web
|
||||
( module Bulma
|
||||
, module Web.Basics
|
||||
( module Web.Basics
|
||||
, module Web.Box
|
||||
, module Web.Button
|
||||
, module Web.Checkbox
|
||||
, module Web.Column
|
||||
, module Web.Data
|
||||
, module Web.Field
|
||||
, module Web.Header
|
||||
, module Web.Hero
|
||||
, module Web.Input
|
||||
, module Web.Level
|
||||
, module Web.Modal
|
||||
, module Web.Notification
|
||||
, module Web.Section
|
||||
, module Web.Tab
|
||||
, module Web.Table
|
||||
, module Web.Tag
|
||||
, module Web.Tile
|
||||
) where
|
||||
|
||||
import Web.Basics
|
||||
import Web.Box
|
||||
import Web.Basics (article, article_, code, container, div_content, div_large_content, error_message, explanation, hdiv, hr, p, p_, quote, simple_quote, strong, text, textarea, textarea_, outside_link)
|
||||
import Web.Box (box, box_, box_with_tag)
|
||||
import Web.Button (alert_btn, alert_btn_abbr, btn, btn_, btn_abbr, btn_abbr_, btn_add, btn_delete, btn_delete_ro, btn_modify, btn_modify_ro, btn_readonly, btn_ro, btn_save, btn_validation, btn_validation_, cancel_button, delete_btn)
|
||||
import Web.Checkbox (checkbox)
|
||||
import Web.Column (column, column_, columns, columns_)
|
||||
import Web.Data (data_target)
|
||||
import Web.Field (btn_labeled, div_field, div_field_, div_field_content, div_field_label, error_field_entry, field_entry, new_domain_field, option, select, selection, selection', selection_field, selection_field', selection_field'', side_text_above_input)
|
||||
import Web.Header (h1, h3, h4)
|
||||
import Web.Header (h1, h3, h4, title, subtitle)
|
||||
import Web.Hero (hero, hero_danger, hero_danger_txt, small_hero)
|
||||
import Web.Input (box_input, box_input_, box_password, box_password_, email_input, field_inner, input_classes, input_with_side_text, password_input, password_input_confirmation, password_input_new, render_input, token_input, username_input)
|
||||
import Web.Level (level)
|
||||
import Web.Modal (modal, modal_, modal_background, modal_body, modal_card_large, modal_foot, modal_header)
|
||||
import Web.Notification (error_box, notification, notification', notification_block', notification_danger, notification_danger', notification_danger_block', notification_primary, notification_primary', notification_success, notification_warning, notification_warning')
|
||||
import Web.Table (table, table_)
|
||||
import Web.Section (section_medium, section_small)
|
||||
import Web.Tab (fancy_tabs, tab_entry, tabs)
|
||||
import Web.Tag (tag, tag_ro, tags)
|
||||
|
||||
import Bulma
|
||||
import Web.Table (table, table_)
|
||||
import Web.Tag (tag, tag_ro, tags, tag_light_info)
|
||||
import Web.Tile (tile, tile_, tile_danger, tile_warning)
|
||||
|
|
|
@ -70,3 +70,6 @@ textarea_ classes placeholder value action
|
|||
|
||||
textarea :: forall w i. String -> String -> (String -> i) -> HH.HTML w i
|
||||
textarea placeholder value action = textarea_ [] placeholder value action
|
||||
|
||||
outside_link :: forall w a. Array HH.ClassName -> String -> String -> HH.HTML w a
|
||||
outside_link classes url str = HH.a [ HP.classes classes, HP.target "_blank", HP.href url ] [ HH.text str ]
|
||||
|
|
7
src/Web/Data.purs
Normal file
7
src/Web/Data.purs
Normal file
|
@ -0,0 +1,7 @@
|
|||
module Web.Data where
|
||||
|
||||
import Halogen.HTML.Properties as HP
|
||||
import Halogen.HTML.Core (AttrName(..))
|
||||
|
||||
data_target :: forall r i. String -> HP.IProp r i
|
||||
data_target = HP.attr (AttrName "data-target")
|
|
@ -6,10 +6,18 @@ import Halogen.HTML.Properties as HP
|
|||
import CSSClasses as C
|
||||
|
||||
h1 :: forall (w :: Type) (a :: Type). String -> HH.HTML w a
|
||||
h1 title = HH.h1 [ HP.classes [C.title] ] [ HH.text title ]
|
||||
h1 str = HH.h1 [ HP.classes [C.title] ] [ HH.text str ]
|
||||
|
||||
h3 :: forall (w :: Type) (a :: Type). String -> HH.HTML w a
|
||||
h3 title = HH.h3 [ HP.classes [C.title] ] [ HH.text title ]
|
||||
h3 str = HH.h3 [ HP.classes [C.title] ] [ HH.text str ]
|
||||
|
||||
h4 :: forall (w :: Type) (a :: Type). String -> HH.HTML w a
|
||||
h4 title = HH.h4 [ HP.classes [C.title] ] [ HH.text title ]
|
||||
h4 str = HH.h4 [ HP.classes [C.title] ] [ HH.text str ]
|
||||
|
||||
title :: forall w a. String -> HH.HTML w a
|
||||
title title_str
|
||||
= HH.h3 [ HP.classes [C.title, C.has_text_light, C.has_background_dark] ]
|
||||
[ HH.text title_str ]
|
||||
|
||||
subtitle :: forall w a. String -> HH.HTML w a
|
||||
subtitle str = HH.h2 [ HP.classes [C.subtitle, C.is4] ] [ HH.text str ]
|
||||
|
|
20
src/Web/Level.purs
Normal file
20
src/Web/Level.purs
Normal file
|
@ -0,0 +1,20 @@
|
|||
module Web.Level where
|
||||
|
||||
import Prelude (map, ($))
|
||||
|
||||
import Halogen.HTML as HH
|
||||
import Halogen.HTML.Properties as HP
|
||||
|
||||
import CSSClasses as C
|
||||
|
||||
-- import Web.Event.Event (type_, Event, EventType(..))
|
||||
-- import Web.UIEvent.MouseEvent (MouseEvent) -- package web-uievents
|
||||
|
||||
-- | Create a `level`, different components that should appear on the same horizontal line.
|
||||
-- | First argument, elements that should appear on the left, second on the right.
|
||||
level :: forall w a. Array (HH.HTML w a) -> Array (HH.HTML w a) -> HH.HTML w a
|
||||
level left right = HH.nav [ HP.classes [C.level] ]
|
||||
[ HH.div [ HP.classes [C.level_left] ] $ itemize left
|
||||
, HH.div [ HP.classes [C.level_right] ] $ itemize right
|
||||
]
|
||||
where itemize = map (\v -> HH.div [ HP.classes [C.level_item] ] [v])
|
12
src/Web/Section.purs
Normal file
12
src/Web/Section.purs
Normal file
|
@ -0,0 +1,12 @@
|
|||
module Web.Section where
|
||||
|
||||
import Halogen.HTML as HH
|
||||
import Halogen.HTML.Properties as HP
|
||||
|
||||
import CSSClasses as C
|
||||
|
||||
section_small :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
|
||||
section_small = HH.section [ HP.classes [C.section, C.is_small] ]
|
||||
|
||||
section_medium :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
|
||||
section_medium = HH.section [ HP.classes [C.section, C.medium] ]
|
|
@ -13,3 +13,6 @@ tag str = HH.span [HP.classes [C.tag, C.is_dark]] [HH.text str]
|
|||
|
||||
tag_ro :: forall w i. String -> HH.HTML w i
|
||||
tag_ro str = HH.span [HP.classes [C.tag, C.is_warning]] [HH.text str]
|
||||
|
||||
tag_light_info :: forall w i. String -> HH.HTML w i
|
||||
tag_light_info str = HH.span [HP.classes [C.tag, C.is_info, C.is_light]] [HH.text str]
|
||||
|
|
21
src/Web/Tile.purs
Normal file
21
src/Web/Tile.purs
Normal file
|
@ -0,0 +1,21 @@
|
|||
module Web.Tile where
|
||||
|
||||
import Prelude (($), (<>))
|
||||
|
||||
import Halogen.HTML as HH
|
||||
import Halogen.HTML.Properties as HP
|
||||
|
||||
import CSSClasses as C
|
||||
|
||||
tile :: forall w i. Array HH.ClassName -> Array (HH.HTML w i) -> HH.HTML w i
|
||||
tile classes = HH.div [HP.classes ([C.tile] <> classes)]
|
||||
|
||||
tile_ :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
|
||||
tile_ = tile []
|
||||
|
||||
tile_danger :: forall w i. Array HH.ClassName -> Array (HH.HTML w i) -> HH.HTML w i
|
||||
tile_danger classes = tile $ [C.is_danger, C.notification] <> classes
|
||||
|
||||
tile_warning :: forall w i. Array HH.ClassName -> Array (HH.HTML w i) -> HH.HTML w i
|
||||
tile_warning classes = tile $ [C.is_warning, C.notification] <> classes
|
||||
|
Loading…
Add table
Reference in a new issue