@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/src/index.ts CHANGED
@@ -1,59 +1,2 @@
1
- import type { Compile, Properties, Style, Target, TeilerComponent } from '@teiler/core'
2
- import type { ComponentType, SvelteComponent } from 'svelte'
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