0 | module CyBy.UI.CSS.Classes
  1 |
  2 | import Chem.Elem
  3 | import Derive.Prelude
  4 | import Data.String
  5 | import IO.Async.Logging
  6 | import Text.HTML.Attribute
  7 | import Text.HTML.DomID
  8 | import public Text.CSS.Class
  9 |
 10 | %default total
 11 | %language ElabReflection
 12 |
 13 | --------------------------------------------------------------------------------
 14 | -- Attributes
 15 | --------------------------------------------------------------------------------
 16 |
 17 | public export
 18 | data DragMode = None | Rotating | Dragging
 19 |
 20 | %runElab derive "DragMode" [Show,Eq]
 21 |
 22 | export %inline
 23 | dragMode : DragMode -> Attribute t
 24 | dragMode = Str "data-dragmode" . toLower . show
 25 |
 26 | export %inline
 27 | active : Bool -> Attribute t
 28 | active = Bool "data-active"
 29 |
 30 | export %inline
 31 | invalid : Bool -> Attribute t
 32 | invalid = Bool "data-invalid"
 33 |
 34 | --------------------------------------------------------------------------------
 35 | -- IDs
 36 | --------------------------------------------------------------------------------
 37 |
 38 | export
 39 | CyByLog : DomID
 40 | CyByLog = "cyby-log"
 41 |
 42 | --------------------------------------------------------------------------------
 43 | -- Utility Classes
 44 | --------------------------------------------------------------------------------
 45 |
 46 | export %inline
 47 | sep : Class
 48 | sep = "cyby-sep"
 49 |
 50 | export %inline
 51 | spacer : Class
 52 | spacer = "cyby-spacer"
 53 |
 54 | --------------------------------------------------------------------------------
 55 | -- Components
 56 | --------------------------------------------------------------------------------
 57 |
 58 | export %inline
 59 | sketcher : Class
 60 | sketcher = "cyby-draw-sketcher"
 61 |
 62 | export %inline
 63 | drawUtils : Class
 64 | drawUtils = "cyby-draw-utils"
 65 |
 66 | export %inline
 67 | drawElems : Class
 68 | drawElems = "cyby-draw-elems"
 69 |
 70 | export %inline
 71 | drawInfo : Class
 72 | drawInfo = "cyby-draw-info"
 73 |
 74 | export %inline
 75 | drawTemplates : Class
 76 | drawTemplates = "cyby-draw-templates"
 77 |
 78 | export %inline
 79 | drawDetails : Class
 80 | drawDetails = "cyby-draw-details"
 81 |
 82 | export %inline
 83 | drawLog : Class
 84 | drawLog = "cyby-draw-log"
 85 |
 86 | export %inline
 87 | elem : Class
 88 | elem = "cyby-draw-elem"
 89 |
 90 | export %inline
 91 | pseIcon : Class
 92 | pseIcon = "cyby-draw-pse-icon"
 93 |
 94 | export %inline
 95 | moleculeCanvas : Class
 96 | moleculeCanvas = "cyby-draw-molecule-canvas"
 97 |
 98 | export
 99 | level : LogLevel -> Class
100 | level l = C "cyby-loglvl-\{l}"
101 |
102 | --------------------------------------------------------------------------------
103 | -- Interactive Elements
104 | --------------------------------------------------------------------------------
105 |
106 | export %inline
107 | widget : Class
108 | widget = "cyby-widget"
109 |
110 | ||| A button with an background image an therefore no padding
111 | export %inline
112 | icon : Class
113 | icon = "cyby-icon"
114 |
115 | ||| A round icon
116 | export %inline
117 | roundIcon : Class
118 | roundIcon = "cyby-round-icon"
119 |
120 | export %inline
121 | validatedInput : Class
122 | validatedInput = "cyby-validated-input"
123 |
124 | export %inline
125 | iconPlaceholder : Class
126 | iconPlaceholder = "cyby-icon-placeholder"
127 |
128 | export %inline
129 | iconMissing : Class
130 | iconMissing = "cyby-icon-missing"
131 |
132 | export %inline
133 | iconError : Class
134 | iconError = "cyby-icon-error"
135 |
136 | export %inline
137 | expandIcon : Class
138 | expandIcon = "cyby-expand-icon"
139 |
140 | export %inline
141 | deleteIcon : Class
142 | deleteIcon = "cyby-delete-icon"
143 |
144 | export %inline
145 | okIcon : Class
146 | okIcon = "cyby-ok-icon"
147 |
148 | export %inline
149 | addIcon : Class
150 | addIcon = "cyby-add-icon"
151 |
152 | export %inline
153 | trueIcon : Class
154 | trueIcon = "cyby-true-icon"
155 |
156 | export %inline
157 | falseIcon : Class
158 | falseIcon = "cyby-false-icon"
159 |