Skip to content

Commit 448b9a8

Browse files
committed
Create default elements
1 parent 32211bf commit 448b9a8

File tree

4 files changed

+385
-26
lines changed

4 files changed

+385
-26
lines changed

packages.dhall

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ let additions =
2727
, "unordered-collections"
2828
, "cssom"
2929
]
30-
"../purescript-stylesheet"
30+
"https://github.com/danieljharvey/purescript-stylesheet.git"
3131
"v0.0.1"
3232
}
3333

src/Internal/StyleContext.purs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,24 @@ import Data.Maybe (Maybe(..))
44
import Data.Symbol (class IsSymbol, SProxy)
55
import React as React
66
import Stylesheet (Stylesheet)
7-
import React.Stylesheet.Internal.Types
7+
import React.Stylesheet.Internal.Types (StyleConsumer, StyleContext)
88
import React.Stylesheet.Internal.Provider (styleProvider)
99
import React.Stylesheet.Internal.Consumer (styleConsumer)
10+
import React.Stylesheet.Styled.Div
1011

1112
-- | Takes a CombinedReducer and a default state, and returns both a root-level
1213
-- | provider and connect component for using the Radox store
1314
createStyleContext
14-
:: forall label
15+
:: forall label
1516
. IsSymbol label
1617
=> SProxy label
17-
-> StyleContext label
18+
-> StyleContext
1819
createStyleContext label =
1920
let myContext = React.createContext (Nothing :: Maybe (Stylesheet label))
21+
(myConsumer :: StyleConsumer) = styleConsumer myContext
2022
in { provider : styleProvider myContext
21-
, consumer : styleConsumer myContext
23+
, consumer : myConsumer
24+
, withChildren: withChildren myConsumer
25+
, noChildren: noChildren myConsumer
2226
}
2327

24-

src/Internal/Types.purs

Lines changed: 133 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,139 @@ type StyleRenderMethod props localState
1111
} -> React.ReactElement
1212
)
1313

14-
type StyleContext (label :: Symbol)
15-
= { provider :: React.ReactClass { children :: Array React.ReactElement }
16-
, consumer :: (forall props localState
17-
. props
18-
-> localState
19-
-> CSSRuleSet props
20-
-> StyleRenderMethod props localState
21-
-> React.ReactElement)
14+
type StyleProvider
15+
= React.ReactClass
16+
{ children :: Array React.ReactElement }
17+
18+
type StyleConsumer
19+
= forall props localState
20+
. props
21+
-> localState
22+
-> CSSRuleSet props
23+
-> StyleRenderMethod props localState
24+
-> React.ReactElement
25+
26+
type StyleContext
27+
= { provider :: StyleProvider
28+
, consumer :: StyleConsumer
29+
, noChildren :: NoChildren
30+
, withChildren :: WithChildren
2231
}
2332

33+
type NoChildren
34+
= forall props
35+
. { br :: CSSRuleSet props -> props -> React.ReactElement
36+
, col :: CSSRuleSet props -> props -> React.ReactElement
37+
, embed :: CSSRuleSet props -> props -> React.ReactElement
38+
, hr :: CSSRuleSet props -> props -> React.ReactElement
39+
, img :: CSSRuleSet props -> props -> React.ReactElement
40+
, input :: CSSRuleSet props -> props -> React.ReactElement
41+
, keygen :: CSSRuleSet props -> props -> React.ReactElement
42+
, link :: CSSRuleSet props -> props -> React.ReactElement
43+
, menuitem :: CSSRuleSet props -> props -> React.ReactElement
44+
, meta :: CSSRuleSet props -> props -> React.ReactElement
45+
, param :: CSSRuleSet props -> props -> React.ReactElement
46+
, source :: CSSRuleSet props -> props -> React.ReactElement
47+
, track :: CSSRuleSet props -> props -> React.ReactElement
48+
, wbr :: CSSRuleSet props -> props -> React.ReactElement
49+
}
2450

51+
type WithChildren
52+
= forall props
53+
. { _data :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
54+
, a :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
55+
, abbr :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
56+
, address :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
57+
, article :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
58+
, aside :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
59+
, audio :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
60+
, b :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
61+
, bdi :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
62+
, bdo :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
63+
, big :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
64+
, blockquote :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
65+
, body :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
66+
, button :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
67+
, canvas :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
68+
, caption :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
69+
, cite :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
70+
, code :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
71+
, colgroup :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
72+
, datalist :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
73+
, dd :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
74+
, del :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
75+
, details :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
76+
, dfn :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
77+
, dialog :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
78+
, div :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
79+
, dl :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
80+
, dt :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
81+
, em :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
82+
, fieldset :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
83+
, figcaption :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
84+
, figure :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
85+
, footer :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
86+
, form :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
87+
, h1 :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
88+
, h2 :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
89+
, h3 :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
90+
, h4 :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
91+
, h5 :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
92+
, h6 :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
93+
, head :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
94+
, header :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
95+
, html :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
96+
, i :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
97+
, iframe :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
98+
, ins :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
99+
, kbd :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
100+
, label :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
101+
, legend :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
102+
, li :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
103+
, main :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
104+
, map :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
105+
, mark :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
106+
, menu :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
107+
, meter :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
108+
, nav :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
109+
, noscript :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
110+
, object :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
111+
, ol :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
112+
, optgroup :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
113+
, option :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
114+
, output :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
115+
, p :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
116+
, picture :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
117+
, pre :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
118+
, progress :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
119+
, q :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
120+
, rp :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
121+
, rt :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
122+
, ruby :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
123+
, s :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
124+
, samp :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
125+
, script :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
126+
, section :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
127+
, select :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
128+
, small :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
129+
, span :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
130+
, strong :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
131+
, style :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
132+
, sub :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
133+
, summary :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
134+
, sup :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
135+
, table :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
136+
, tbody :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
137+
, td :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
138+
, textarea :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
139+
, tfoot :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
140+
, th :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
141+
, thead :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
142+
, time :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
143+
, title :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
144+
, tr :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
145+
, u :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
146+
, ul :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
147+
, var :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
148+
, video :: CSSRuleSet props -> props -> Array React.ReactElement -> React.ReactElement
149+
}

0 commit comments

Comments
 (0)