arche 0.3.9 → 0.3.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (7) hide show
  1. package/README.md +114 -17
  2. package/es.js +391 -160
  3. package/index.js +391 -160
  4. package/index.mjs +391 -160
  5. package/package.json +1 -1
  6. package/test.html +52 -10
  7. package/test.js +28 -6
package/README.md CHANGED
@@ -76,7 +76,7 @@ render(Example())
76
76
  // </div>
77
77
  ```
78
78
 
79
- # Installation
79
+ ## Installation
80
80
  with `npm`
81
81
  ```bash
82
82
  npm i arche
@@ -92,23 +92,9 @@ browser module
92
92
  import Arche from 'https://unpkg.com/arche/es.js'
93
93
  ```
94
94
 
95
- # Syntax
96
- ```coffeescript [specscript]
97
- Arche(React {
98
- createElement: (type, props?, children?)=>ReactElement,
99
- }, options? {
100
- styled?: {
101
- div: function,
102
- p: funcion,
103
- span: function,
104
- // etc
105
- },
106
- styledMemoizationCap?: number, // defaults to 1000
107
- }) -> ReactElement
108
- ```
95
+ ## Usage
96
+ Set Arche elements globally for a better developer experience.
109
97
 
110
- # Usage
111
- Set Arche elements globally for a great developer experience.
112
98
  ```javascript
113
99
  // global.js
114
100
 
@@ -127,6 +113,77 @@ window.Svg = ReactElement('svg')
127
113
  window.Path = ReactElement('path')
128
114
  ```
129
115
 
116
+ ## Syntax
117
+ ```coffeescript [specscript]
118
+ Arche() -> DocumentElement
119
+ Arche(document Document) -> DocumentElement
120
+
121
+ DocumentElement(elementType string) -> Element
122
+ DocumentElement(elementType string, props object, text string) -> Element
123
+
124
+ Arche(React {
125
+ createElement: (
126
+ elementType string,
127
+ props? object,
128
+ children? string|Array<React.Element|string>
129
+ )=>ReactElement
130
+ }) -> ReactElement
131
+
132
+ ReactElement(elementType string, props object, text string) -> React.Element
133
+
134
+ ReactElement(
135
+ elementType string,
136
+ props object,
137
+ children Array<React.Element|string>
138
+ ) -> React.Element
139
+
140
+ ReactElement(elementType string) -> TypedReactElement function
141
+
142
+ TypedReactElement(props object, text string) -> React.Element
143
+ TypedReactElement(text string)-> React.Element
144
+ TypedReactElement(children Array<React.Element|string>)-> React.Element
145
+
146
+ ReactElement.A -> TypedReactElement
147
+ ReactElement.P -> TypedReactElement
148
+ ReactElement.B -> TypedReactElement
149
+ ReactElement.Q -> TypedReactElement
150
+ ReactElement.I -> TypedReactElement
151
+ ReactElement.Ul -> TypedReactElement
152
+ ReactElement.Ol -> TypedReactElement
153
+ ReactElement.Li -> TypedReactElement
154
+ ReactElement.H1 -> TypedReactElement
155
+ ReactElement.H2 -> TypedReactElement
156
+ ReactElement.H3 -> TypedReactElement
157
+ ReactElement.H4 -> TypedReactElement
158
+ ReactElement.H5 -> TypedReactElement
159
+ ReactElement.H6 -> TypedReactElement
160
+ ReactElement.Hr -> TypedReactElement
161
+ ReactElement.Br -> TypedReactElement
162
+ ReactElement.Script -> TypedReactElement
163
+ ReactElement.Html -> TypedReactElement
164
+ ReactElement.Body -> TypedReactElement
165
+ ReactElement.Nav -> TypedReactElement
166
+ ReactElement.Section -> TypedReactElement
167
+ ReactElement.Article -> TypedReactElement
168
+ ReactElement.Footer -> TypedReactElement
169
+ ReactElement.Span -> TypedReactElement
170
+ ReactElement.Div -> TypedReactElement
171
+ ReactElement.Img -> TypedReactElement
172
+ ReactElement.Video -> TypedReactElement
173
+ ReactElement.Form -> TypedReactElement
174
+ ReactElement.Fieldset -> TypedReactElement
175
+ ReactElement.Input -> TypedReactElement
176
+ ReactElement.Label -> TypedReactElement
177
+ ReactElement.Textarea -> TypedReactElement
178
+ ReactElement.Select -> TypedReactElement
179
+ ReactElement.Option -> TypedReactElement
180
+ ReactElement.Button -> TypedReactElement
181
+ ReactElement.Iframe -> TypedReactElement
182
+ ReactElement.Blockquote -> TypedReactElement
183
+ ReactElement.Code -> TypedReactElement
184
+ ReactElement.Pre -> TypedReactElement
185
+ ```
186
+
130
187
  ## Using styled
131
188
  Arche accepts a `styled` option from css-in-js libraries like [Styled Components](https://styled-components.com/) to enable a `css` prop on the base elements. This does not apply to composite components (those created with `ReactElement(props => {...})` syntax)
132
189
 
@@ -149,6 +206,46 @@ const MyComponent = ReactElement(props => {
149
206
  })
150
207
  ```
151
208
 
209
+ ## Syntax with styled
210
+ ```coffeescript [specscript]
211
+ strings Array<string>
212
+ values Array<any>
213
+ tagFunctionArgs Array<strings, ...values>
214
+
215
+ type Styled = {
216
+ h1: (...tagFunctionArgs)=>React.Element,
217
+ h2: (...tagFunctionArgs)=>React.Element,
218
+ h3: (...tagFunctionArgs)=>React.Element,
219
+ h4: (...tagFunctionArgs)=>React.Element,
220
+ h5: (...tagFunctionArgs)=>React.Element,
221
+ div: (...tagFunctionArgs)=>React.Element,
222
+ button: (...tagFunctionArgs)=>React.Element,
223
+ a: (...tagFunctionArgs)=>React.Element,
224
+ p: (...tagFunctionArgs)=>React.Element,
225
+ span: (...tagFunctionArgs)=>React.Element,
226
+ img: (...tagFunctionArgs)=>React.Element,
227
+ ul: (...tagFunctionArgs)=>React.Element,
228
+ ol: (...tagFunctionArgs)=>React.Element,
229
+ li: (...tagFunctionArgs)=>React.Element,
230
+ form: (...tagFunctionArgs)=>React.Element,
231
+ article: (...tagFunctionArgs)=>React.Element,
232
+ main: (...tagFunctionArgs)=>React.Element,
233
+ section: (...tagFunctionArgs)=>React.Element,
234
+ nav: (...tagFunctionArgs)=>React.Element,
235
+ }
236
+
237
+ Arche(React {
238
+ createElement: (
239
+ elementType string,
240
+ props? object,
241
+ children? string|Array<React.Element|string>,
242
+ )=>ReactElement
243
+ }, options {
244
+ styled: Styled,
245
+ styledMemoizationCap?: number
246
+ }) -> ReactElement
247
+ ```
248
+
152
249
  ## Using React Context
153
250
  To use React Context with Arche, wrap `YourContext.Provider` with `ReactElement` and supply `value` as a prop, specifying children in the next argument.
154
251