@teiler/svelte 0.0.6 → 0.0.7
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.
- package/CHANGELOG.md +8 -0
- package/dist/teiler-svelte.cjs.js +1 -1
- package/dist/teiler-svelte.cjs.js.map +1 -1
- package/dist/teiler-svelte.d.ts +80 -11
- package/dist/teiler-svelte.esm.js +1 -1
- package/dist/teiler-svelte.esm.js.map +1 -1
- package/dist/teiler-svelte.umd.js +1 -1
- package/dist/teiler-svelte.umd.js.map +1 -1
- package/package.json +2 -2
- package/src/component.ts +59 -0
- package/src/index.ts +2 -59
- package/src/tags.ts +0 -140
package/src/index.ts
CHANGED
|
@@ -1,59 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { component, global, keyframes, styled } from '@teiler/core'
|
|
5
|
-
import Styled from './Styled.svelte'
|
|
6
|
-
import tags from './tags'
|
|
7
|
-
|
|
8
|
-
type SvelteTeilerComponent<Target, Props> = TeilerComponent<Target, Props> & ComponentType<SvelteComponent>
|
|
9
|
-
|
|
10
|
-
const createComponent = <Target, Props>(compile: Compile, tag: Target, styles: Array<Style<Props>>): SvelteTeilerComponent<Target, Props> => {
|
|
11
|
-
return class extends Styled {
|
|
12
|
-
static styles = styles
|
|
13
|
-
static tag = tag
|
|
14
|
-
|
|
15
|
-
constructor(options) {
|
|
16
|
-
super({
|
|
17
|
-
...options,
|
|
18
|
-
props: {
|
|
19
|
-
...options.props,
|
|
20
|
-
compile,
|
|
21
|
-
tag,
|
|
22
|
-
styles,
|
|
23
|
-
},
|
|
24
|
-
})
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
type InferProps<Component, Props> = Component extends SvelteTeilerComponent<Target, infer P> ? P & Props : Props
|
|
30
|
-
type InferComponent<Component, Props> = Component extends SvelteTeilerComponent<infer E, infer P> ? SvelteTeilerComponent<E, Props & P> : SvelteTeilerComponent<Target, Props>
|
|
31
|
-
|
|
32
|
-
type Component<Target> = {
|
|
33
|
-
<Props extends object = {}>(string: TemplateStringsArray, ...properties: Properties<Props>[]): SvelteTeilerComponent<Target, Props>
|
|
34
|
-
<Component>(binded: Component): <Props extends object = {}>(string: TemplateStringsArray, ...properties: Properties<InferProps<Component, Props>>[]) => InferComponent<Component, Props>
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
type Global = {
|
|
38
|
-
<Props extends object = {}>(string: TemplateStringsArray, ...properties: Properties<Props>[]): SvelteTeilerComponent<unknown, Props>
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
type ComponentWithTags = Component<'div'> & { [K in (typeof tags)[number]]: Component<K> }
|
|
42
|
-
|
|
43
|
-
const construct = (tag: string, compile: Compile) => {
|
|
44
|
-
return <Props extends object = {}>(stringOrBinded: TeilerComponent<Target, Props> | TemplateStringsArray, ...properties: Properties<Props>[]) => {
|
|
45
|
-
const binded = createComponent.bind(null, compile, (stringOrBinded as TeilerComponent<Target, Props>).tag || tag)
|
|
46
|
-
return styled<Props, SvelteTeilerComponent<Target, Props>>(binded, stringOrBinded, ...properties)
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const svelteComponent = construct('div', component)
|
|
51
|
-
|
|
52
|
-
tags.forEach((tag) => {
|
|
53
|
-
svelteComponent[tag] = construct(tag, component)
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
const svelteGlobal = construct(null, global) as Global
|
|
57
|
-
|
|
58
|
-
export { svelteGlobal as global, keyframes, createComponent }
|
|
59
|
-
export default svelteComponent as ComponentWithTags
|
|
1
|
+
export { component, global, keyframes, createComponent } from './component'
|
|
2
|
+
export { default as ThemeProvider } from './ThemeProvider.svelte'
|
package/src/tags.ts
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
const tags = [
|
|
2
|
-
'a',
|
|
3
|
-
'abbr',
|
|
4
|
-
'address',
|
|
5
|
-
'area',
|
|
6
|
-
'article',
|
|
7
|
-
'aside',
|
|
8
|
-
'audio',
|
|
9
|
-
'b',
|
|
10
|
-
'base',
|
|
11
|
-
'bdi',
|
|
12
|
-
'bdo',
|
|
13
|
-
'big',
|
|
14
|
-
'blockquote',
|
|
15
|
-
'body',
|
|
16
|
-
'br',
|
|
17
|
-
'button',
|
|
18
|
-
'canvas',
|
|
19
|
-
'caption',
|
|
20
|
-
'cite',
|
|
21
|
-
'code',
|
|
22
|
-
'col',
|
|
23
|
-
'colgroup',
|
|
24
|
-
'data',
|
|
25
|
-
'datalist',
|
|
26
|
-
'dd',
|
|
27
|
-
'del',
|
|
28
|
-
'details',
|
|
29
|
-
'dfn',
|
|
30
|
-
'dialog',
|
|
31
|
-
'div',
|
|
32
|
-
'dl',
|
|
33
|
-
'dt',
|
|
34
|
-
'em',
|
|
35
|
-
'embed',
|
|
36
|
-
'fieldset',
|
|
37
|
-
'figcaption',
|
|
38
|
-
'figure',
|
|
39
|
-
'footer',
|
|
40
|
-
'form',
|
|
41
|
-
'h1',
|
|
42
|
-
'h2',
|
|
43
|
-
'h3',
|
|
44
|
-
'h4',
|
|
45
|
-
'h5',
|
|
46
|
-
'h6',
|
|
47
|
-
'head',
|
|
48
|
-
'header',
|
|
49
|
-
'hgroup',
|
|
50
|
-
'hr',
|
|
51
|
-
'html',
|
|
52
|
-
'i',
|
|
53
|
-
'iframe',
|
|
54
|
-
'img',
|
|
55
|
-
'input',
|
|
56
|
-
'ins',
|
|
57
|
-
'kbd',
|
|
58
|
-
'keygen',
|
|
59
|
-
'label',
|
|
60
|
-
'legend',
|
|
61
|
-
'li',
|
|
62
|
-
'link',
|
|
63
|
-
'main',
|
|
64
|
-
'map',
|
|
65
|
-
'mark',
|
|
66
|
-
'marquee',
|
|
67
|
-
'menu',
|
|
68
|
-
'menuitem',
|
|
69
|
-
'meta',
|
|
70
|
-
'meter',
|
|
71
|
-
'nav',
|
|
72
|
-
'noscript',
|
|
73
|
-
'object',
|
|
74
|
-
'ol',
|
|
75
|
-
'optgroup',
|
|
76
|
-
'option',
|
|
77
|
-
'output',
|
|
78
|
-
'p',
|
|
79
|
-
'param',
|
|
80
|
-
'picture',
|
|
81
|
-
'pre',
|
|
82
|
-
'progress',
|
|
83
|
-
'q',
|
|
84
|
-
'rp',
|
|
85
|
-
'rt',
|
|
86
|
-
'ruby',
|
|
87
|
-
's',
|
|
88
|
-
'samp',
|
|
89
|
-
'script',
|
|
90
|
-
'section',
|
|
91
|
-
'select',
|
|
92
|
-
'small',
|
|
93
|
-
'source',
|
|
94
|
-
'span',
|
|
95
|
-
'strong',
|
|
96
|
-
'style',
|
|
97
|
-
'sub',
|
|
98
|
-
'summary',
|
|
99
|
-
'sup',
|
|
100
|
-
'table',
|
|
101
|
-
'tbody',
|
|
102
|
-
'td',
|
|
103
|
-
'textarea',
|
|
104
|
-
'tfoot',
|
|
105
|
-
'th',
|
|
106
|
-
'thead',
|
|
107
|
-
'time',
|
|
108
|
-
'title',
|
|
109
|
-
'tr',
|
|
110
|
-
'track',
|
|
111
|
-
'u',
|
|
112
|
-
'ul',
|
|
113
|
-
'var',
|
|
114
|
-
'video',
|
|
115
|
-
'wbr',
|
|
116
|
-
|
|
117
|
-
// SVG
|
|
118
|
-
'circle',
|
|
119
|
-
'clipPath',
|
|
120
|
-
'defs',
|
|
121
|
-
'ellipse',
|
|
122
|
-
'foreignObject',
|
|
123
|
-
'g',
|
|
124
|
-
'image',
|
|
125
|
-
'line',
|
|
126
|
-
'linearGradient',
|
|
127
|
-
'mask',
|
|
128
|
-
'path',
|
|
129
|
-
'pattern',
|
|
130
|
-
'polygon',
|
|
131
|
-
'polyline',
|
|
132
|
-
'radialGradient',
|
|
133
|
-
'rect',
|
|
134
|
-
'stop',
|
|
135
|
-
'svg',
|
|
136
|
-
'text',
|
|
137
|
-
'tspan'
|
|
138
|
-
] as const
|
|
139
|
-
|
|
140
|
-
export default tags
|