@purestack/ts-components 1.1.0
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/LICENSE +21 -0
- package/README.md +10 -0
- package/dist/ts-components.d.mts +1662 -0
- package/dist/ts-components.d.mts.map +1 -0
- package/dist/ts-components.mjs +9200 -0
- package/dist/ts-components.mjs.map +1 -0
- package/package.json +130 -0
- package/src/defineComponents.ts +87 -0
- package/src/index.ts +270 -0
- package/src/registerStyles.ts +63 -0
- package/src/standard/alertBox/alertBox.ts +64 -0
- package/src/standard/autoId.ts +25 -0
- package/src/standard/badge/badge.ts +41 -0
- package/src/standard/badge/badgeStyle.ts +21 -0
- package/src/standard/barChart/barChart.ts +338 -0
- package/src/standard/barChart/barChartStyle.ts +81 -0
- package/src/standard/btn/btn.ts +191 -0
- package/src/standard/btn/btnStyle.ts +59 -0
- package/src/standard/btnGroup/btnGroup.ts +208 -0
- package/src/standard/btnGroup/btnGroupStyle.ts +85 -0
- package/src/standard/chart/cartesianChart.ts +99 -0
- package/src/standard/chart/chartDefaults.ts +25 -0
- package/src/standard/chart/chartUtils.ts +84 -0
- package/src/standard/classicLogo/classicLogo.ts +429 -0
- package/src/standard/classicLogo/classicLogoStyle.ts +292 -0
- package/src/standard/componentVariant.ts +153 -0
- package/src/standard/composer/composer.ts +1035 -0
- package/src/standard/composer/composerCanvasInitialStyle.ts +225 -0
- package/src/standard/composer/composerCanvasRevertStyle.ts +14 -0
- package/src/standard/composer/composerCanvasSharedStyle.ts +60 -0
- package/src/standard/composer/composerCanvasStyleTypes.ts +8 -0
- package/src/standard/composer/composerCanvasThemeStyle.ts +53 -0
- package/src/standard/composer/composerStyle.ts +156 -0
- package/src/standard/composer/emailHtmlPolicy.ts +474 -0
- package/src/standard/consent/consent.ts +173 -0
- package/src/standard/consent/consentStyle.ts +44 -0
- package/src/standard/contactForm/contactForm.ts +135 -0
- package/src/standard/contactForm/contactFormStyle.ts +116 -0
- package/src/standard/doughnutChart/doughnutChart.ts +527 -0
- package/src/standard/doughnutChart/doughnutChartStyle.ts +64 -0
- package/src/standard/dropFiles/dropFiles.ts +480 -0
- package/src/standard/dropFiles/dropFilesStyle.ts +171 -0
- package/src/standard/expandablePanel/expandablePanel.ts +106 -0
- package/src/standard/expandablePanel/expandablePanelStyle.ts +56 -0
- package/src/standard/flex/flex.ts +269 -0
- package/src/standard/flex/flexStyle.ts +556 -0
- package/src/standard/footer/footer.ts +93 -0
- package/src/standard/footer/footerStyle.ts +39 -0
- package/src/standard/form/autoCompleteInput.ts +567 -0
- package/src/standard/form/form.ts +205 -0
- package/src/standard/form/formCheck.ts +96 -0
- package/src/standard/form/formInputField.ts +184 -0
- package/src/standard/form/formSelectField.ts +152 -0
- package/src/standard/form/formStyle.ts +585 -0
- package/src/standard/form/multiAutoCompleteInput.ts +880 -0
- package/src/standard/grid/grid.ts +177 -0
- package/src/standard/grid/gridStyle.ts +56 -0
- package/src/standard/icon/icon.ts +96 -0
- package/src/standard/icon/iconStyle.ts +50 -0
- package/src/standard/landing/codeShowcase.ts +54 -0
- package/src/standard/landing/comparisonColumn.ts +30 -0
- package/src/standard/landing/comparisonFeature.ts +22 -0
- package/src/standard/landing/comparisonTable.ts +38 -0
- package/src/standard/landing/ctaSection.ts +59 -0
- package/src/standard/landing/featureCard.ts +41 -0
- package/src/standard/landing/landing.ts +52 -0
- package/src/standard/landing/landingBand.ts +217 -0
- package/src/standard/landing/landingSection.ts +43 -0
- package/src/standard/landing/landingTypes.ts +141 -0
- package/src/standard/landing/metricItem.ts +25 -0
- package/src/standard/landing/metricStrip.ts +20 -0
- package/src/standard/lineChart/lineChart.ts +462 -0
- package/src/standard/lineChart/lineChartStyle.ts +91 -0
- package/src/standard/logo/logo.ts +192 -0
- package/src/standard/logo/logoStyle.ts +164 -0
- package/src/standard/modal/modal.ts +171 -0
- package/src/standard/modal/modalStore.ts +154 -0
- package/src/standard/modal/modalStyle.ts +190 -0
- package/src/standard/navMenu/navMenu.ts +278 -0
- package/src/standard/navMenu/navMenuStyle.ts +323 -0
- package/src/standard/pageLinks/pageLinks.ts +90 -0
- package/src/standard/pageScript/pageScript.ts +155 -0
- package/src/standard/pageToc/pageToc.ts +154 -0
- package/src/standard/pageToc/pageTocStyle.ts +372 -0
- package/src/standard/panel/panel.ts +55 -0
- package/src/standard/panel/panelStyle.ts +15 -0
- package/src/standard/pricing/pricing.ts +146 -0
- package/src/standard/searchBox/searchBox.ts +54 -0
- package/src/standard/searchBox/searchBoxStyle.ts +180 -0
- package/src/standard/sectionHeader/sectionHeader.ts +99 -0
- package/src/standard/signIn/signIn.ts +167 -0
- package/src/standard/signIn/signInStyle.ts +70 -0
- package/src/standard/tabs/tabs.ts +193 -0
- package/src/standard/tabs/tabsStyle.ts +231 -0
- package/src/standard/themeToggle/themeToggle.ts +33 -0
- package/src/standard/themeToggle/themeToggleStyle.ts +88 -0
- package/src/standard/toast/toastHost.ts +42 -0
- package/src/standard/toast/toastStore.ts +50 -0
- package/src/standard/topBar/topBar.ts +101 -0
- package/src/standard/topBar/topBarStyle.ts +169 -0
- package/src/standard/virtualList/variableVirtualTable.ts +371 -0
- package/src/standard/virtualList/virtualList.ts +423 -0
- package/src/standard/virtualList/virtualListStyle.ts +34 -0
- package/src/standard/virtualList/virtualTable.ts +179 -0
- package/src/standard/virtualList/virtualTableStyle.ts +24 -0
- package/tsconfig.json +23 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { styleBuilder } from '@purestack/ts-style'
|
|
2
|
+
import { registerComposerCanvasPreviewDefaults } from './composerCanvasSharedStyle'
|
|
3
|
+
import type { ComposerCanvasStyleContext } from './composerCanvasStyleTypes'
|
|
4
|
+
|
|
5
|
+
export function registerComposerInitialCanvasStyles(
|
|
6
|
+
context: ComposerCanvasStyleContext,
|
|
7
|
+
) {
|
|
8
|
+
styleBuilder
|
|
9
|
+
.select('.composer__editor, .composer__editor *', context.theme)
|
|
10
|
+
.all('initial')
|
|
11
|
+
.boxSizing('border-box')
|
|
12
|
+
|
|
13
|
+
styleBuilder
|
|
14
|
+
.select('.composer__editor *', context.theme)
|
|
15
|
+
.font('inherit')
|
|
16
|
+
.color('inherit')
|
|
17
|
+
.lineHeight('inherit')
|
|
18
|
+
.caretColor('inherit')
|
|
19
|
+
.textAlign('inherit')
|
|
20
|
+
|
|
21
|
+
registerComposerCanvasPreviewDefaults(context)
|
|
22
|
+
registerComposerInitialCanvasElementDefaults(context)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function registerComposerInitialCanvasElementDefaults({
|
|
26
|
+
theme,
|
|
27
|
+
}: ComposerCanvasStyleContext) {
|
|
28
|
+
styleBuilder
|
|
29
|
+
.select(
|
|
30
|
+
[
|
|
31
|
+
'.composer__editor b',
|
|
32
|
+
'.composer__editor cite',
|
|
33
|
+
'.composer__editor code',
|
|
34
|
+
'.composer__editor del',
|
|
35
|
+
'.composer__editor em',
|
|
36
|
+
'.composer__editor font',
|
|
37
|
+
'.composer__editor i',
|
|
38
|
+
'.composer__editor ins',
|
|
39
|
+
'.composer__editor kbd',
|
|
40
|
+
'.composer__editor s',
|
|
41
|
+
'.composer__editor samp',
|
|
42
|
+
'.composer__editor small',
|
|
43
|
+
'.composer__editor span',
|
|
44
|
+
'.composer__editor strong',
|
|
45
|
+
'.composer__editor sub',
|
|
46
|
+
'.composer__editor sup',
|
|
47
|
+
'.composer__editor tt',
|
|
48
|
+
'.composer__editor u',
|
|
49
|
+
'.composer__editor var',
|
|
50
|
+
].join(', '),
|
|
51
|
+
theme,
|
|
52
|
+
)
|
|
53
|
+
.display('inline')
|
|
54
|
+
.font('inherit')
|
|
55
|
+
.color('inherit')
|
|
56
|
+
|
|
57
|
+
styleBuilder
|
|
58
|
+
.select(
|
|
59
|
+
[
|
|
60
|
+
'.composer__editor address',
|
|
61
|
+
'.composer__editor blockquote',
|
|
62
|
+
'.composer__editor caption',
|
|
63
|
+
'.composer__editor center',
|
|
64
|
+
'.composer__editor dd',
|
|
65
|
+
'.composer__editor div',
|
|
66
|
+
'.composer__editor dl',
|
|
67
|
+
'.composer__editor dt',
|
|
68
|
+
'.composer__editor h1',
|
|
69
|
+
'.composer__editor h2',
|
|
70
|
+
'.composer__editor h3',
|
|
71
|
+
'.composer__editor h4',
|
|
72
|
+
'.composer__editor h5',
|
|
73
|
+
'.composer__editor h6',
|
|
74
|
+
'.composer__editor hr',
|
|
75
|
+
'.composer__editor ol',
|
|
76
|
+
'.composer__editor p',
|
|
77
|
+
'.composer__editor pre',
|
|
78
|
+
'.composer__editor ul',
|
|
79
|
+
].join(', '),
|
|
80
|
+
theme,
|
|
81
|
+
)
|
|
82
|
+
.display('block')
|
|
83
|
+
.font('inherit')
|
|
84
|
+
.color('inherit')
|
|
85
|
+
.lineHeight('inherit')
|
|
86
|
+
.caretColor('inherit')
|
|
87
|
+
|
|
88
|
+
styleBuilder
|
|
89
|
+
.select('.composer__editor div:empty, .composer__editor p:empty', theme)
|
|
90
|
+
.minHeight('1.55em')
|
|
91
|
+
|
|
92
|
+
styleBuilder
|
|
93
|
+
.select('.composer__editor br', theme)
|
|
94
|
+
.display('inline')
|
|
95
|
+
.font('inherit')
|
|
96
|
+
.lineHeight('inherit')
|
|
97
|
+
.caretColor('inherit')
|
|
98
|
+
|
|
99
|
+
styleBuilder
|
|
100
|
+
.select('.composer__editor strong, .composer__editor b', theme)
|
|
101
|
+
.fontWeight('bold')
|
|
102
|
+
|
|
103
|
+
styleBuilder
|
|
104
|
+
.select(
|
|
105
|
+
'.composer__editor em, .composer__editor i, .composer__editor cite',
|
|
106
|
+
theme,
|
|
107
|
+
)
|
|
108
|
+
.fontStyle('italic')
|
|
109
|
+
|
|
110
|
+
styleBuilder.select('.composer__editor small', theme).fontSize('80%')
|
|
111
|
+
|
|
112
|
+
styleBuilder
|
|
113
|
+
.select('.composer__editor sub', theme)
|
|
114
|
+
.fontSize('75%')
|
|
115
|
+
.verticalAlign('sub')
|
|
116
|
+
|
|
117
|
+
styleBuilder
|
|
118
|
+
.select('.composer__editor sup', theme)
|
|
119
|
+
.fontSize('75%')
|
|
120
|
+
.verticalAlign('super')
|
|
121
|
+
|
|
122
|
+
styleBuilder
|
|
123
|
+
.select('.composer__editor h1', theme)
|
|
124
|
+
.fontSize('2em')
|
|
125
|
+
.fontWeight('bold')
|
|
126
|
+
.margin('0.67em 0')
|
|
127
|
+
|
|
128
|
+
styleBuilder
|
|
129
|
+
.select('.composer__editor h2', theme)
|
|
130
|
+
.fontSize('1.5em')
|
|
131
|
+
.fontWeight('bold')
|
|
132
|
+
.margin('0.83em 0')
|
|
133
|
+
|
|
134
|
+
styleBuilder
|
|
135
|
+
.select('.composer__editor h3', theme)
|
|
136
|
+
.fontSize('1.17em')
|
|
137
|
+
.fontWeight('bold')
|
|
138
|
+
.margin('1em 0')
|
|
139
|
+
|
|
140
|
+
styleBuilder
|
|
141
|
+
.select('.composer__editor h4', theme)
|
|
142
|
+
.fontWeight('bold')
|
|
143
|
+
.margin('1.33em 0')
|
|
144
|
+
|
|
145
|
+
styleBuilder
|
|
146
|
+
.select('.composer__editor h5', theme)
|
|
147
|
+
.fontSize('0.83em')
|
|
148
|
+
.fontWeight('bold')
|
|
149
|
+
.margin('1.67em 0')
|
|
150
|
+
|
|
151
|
+
styleBuilder
|
|
152
|
+
.select('.composer__editor h6', theme)
|
|
153
|
+
.fontSize('0.67em')
|
|
154
|
+
.fontWeight('bold')
|
|
155
|
+
.margin('2.33em 0')
|
|
156
|
+
|
|
157
|
+
styleBuilder
|
|
158
|
+
.select('.composer__editor blockquote', theme)
|
|
159
|
+
.margin('1em 2.5rem')
|
|
160
|
+
|
|
161
|
+
styleBuilder
|
|
162
|
+
.select(
|
|
163
|
+
'.composer__editor pre, .composer__editor code, .composer__editor kbd, .composer__editor samp, .composer__editor tt',
|
|
164
|
+
theme,
|
|
165
|
+
)
|
|
166
|
+
.fontFamily('monospace')
|
|
167
|
+
|
|
168
|
+
styleBuilder
|
|
169
|
+
.select('.composer__editor ol, .composer__editor ul', theme)
|
|
170
|
+
.margin('1em 0')
|
|
171
|
+
.paddingLeft('2.5rem')
|
|
172
|
+
|
|
173
|
+
styleBuilder
|
|
174
|
+
.select('.composer__editor li', theme)
|
|
175
|
+
.display('list-item')
|
|
176
|
+
.listStyle('inherit')
|
|
177
|
+
|
|
178
|
+
styleBuilder
|
|
179
|
+
.select('.composer__editor u, .composer__editor ins', theme)
|
|
180
|
+
.textDecoration('underline')
|
|
181
|
+
|
|
182
|
+
styleBuilder
|
|
183
|
+
.select('.composer__editor s, .composer__editor del', theme)
|
|
184
|
+
.textDecoration('line-through')
|
|
185
|
+
|
|
186
|
+
styleBuilder.select('.composer__editor ul', theme).listStyle('disc')
|
|
187
|
+
|
|
188
|
+
styleBuilder.select('.composer__editor ol', theme).listStyle('decimal')
|
|
189
|
+
|
|
190
|
+
styleBuilder.select('.composer__editor table', theme).display('table')
|
|
191
|
+
|
|
192
|
+
styleBuilder
|
|
193
|
+
.select('.composer__editor caption', theme)
|
|
194
|
+
.display('table-caption')
|
|
195
|
+
|
|
196
|
+
styleBuilder
|
|
197
|
+
.select('.composer__editor colgroup', theme)
|
|
198
|
+
.display('table-column-group')
|
|
199
|
+
|
|
200
|
+
styleBuilder.select('.composer__editor col', theme).display('table-column')
|
|
201
|
+
|
|
202
|
+
styleBuilder
|
|
203
|
+
.select('.composer__editor thead', theme)
|
|
204
|
+
.display('table-header-group')
|
|
205
|
+
|
|
206
|
+
styleBuilder
|
|
207
|
+
.select('.composer__editor tbody', theme)
|
|
208
|
+
.display('table-row-group')
|
|
209
|
+
|
|
210
|
+
styleBuilder
|
|
211
|
+
.select('.composer__editor tfoot', theme)
|
|
212
|
+
.display('table-footer-group')
|
|
213
|
+
|
|
214
|
+
styleBuilder.select('.composer__editor tr', theme).display('table-row')
|
|
215
|
+
|
|
216
|
+
styleBuilder
|
|
217
|
+
.select('.composer__editor td, .composer__editor th', theme)
|
|
218
|
+
.display('table-cell')
|
|
219
|
+
.verticalAlign('inherit')
|
|
220
|
+
|
|
221
|
+
styleBuilder
|
|
222
|
+
.select('.composer__editor th', theme)
|
|
223
|
+
.fontWeight('bold')
|
|
224
|
+
.textAlign('center')
|
|
225
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { styleBuilder } from '@purestack/ts-style'
|
|
2
|
+
import { registerComposerCanvasPreviewDefaults } from './composerCanvasSharedStyle'
|
|
3
|
+
import type { ComposerCanvasStyleContext } from './composerCanvasStyleTypes'
|
|
4
|
+
|
|
5
|
+
export function registerComposerRevertCanvasStyles(
|
|
6
|
+
context: ComposerCanvasStyleContext,
|
|
7
|
+
) {
|
|
8
|
+
styleBuilder
|
|
9
|
+
.select('.composer__editor, .composer__editor *', context.theme)
|
|
10
|
+
.all('revert')
|
|
11
|
+
.boxSizing('border-box')
|
|
12
|
+
|
|
13
|
+
registerComposerCanvasPreviewDefaults(context)
|
|
14
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { styleBuilder } from '@purestack/ts-style'
|
|
2
|
+
import type { ComposerCanvasStyleContext } from './composerCanvasStyleTypes'
|
|
3
|
+
|
|
4
|
+
const EMAIL_FONT =
|
|
5
|
+
'0.9375rem/1.55 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif'
|
|
6
|
+
|
|
7
|
+
export function registerComposerCanvasPreviewDefaults({
|
|
8
|
+
theme,
|
|
9
|
+
}: ComposerCanvasStyleContext) {
|
|
10
|
+
styleBuilder
|
|
11
|
+
.select('.composer__editor', theme)
|
|
12
|
+
.display('block')
|
|
13
|
+
.width('100%')
|
|
14
|
+
.boxSizing('border-box')
|
|
15
|
+
.padding('0')
|
|
16
|
+
.border('none')
|
|
17
|
+
.borderRadius('0')
|
|
18
|
+
.outline('none')
|
|
19
|
+
.background('#fff')
|
|
20
|
+
.color('#182018')
|
|
21
|
+
.font(EMAIL_FONT)
|
|
22
|
+
.overflowY('auto')
|
|
23
|
+
.overflowWrap('anywhere')
|
|
24
|
+
.whiteSpace('normal')
|
|
25
|
+
.cursor('text')
|
|
26
|
+
.set('caret-color', '#182018')
|
|
27
|
+
.set('user-select', 'text')
|
|
28
|
+
.set('-webkit-user-select', 'text')
|
|
29
|
+
|
|
30
|
+
styleBuilder
|
|
31
|
+
.select('.composer__editor:empty::before', theme)
|
|
32
|
+
.content('attr(data-placeholder)')
|
|
33
|
+
.color('#777')
|
|
34
|
+
.pointerEvents('none')
|
|
35
|
+
|
|
36
|
+
styleBuilder
|
|
37
|
+
.select('.composer__editor [data-composer-body]:empty::before', theme)
|
|
38
|
+
.content('attr(data-placeholder)')
|
|
39
|
+
.color('#777')
|
|
40
|
+
.pointerEvents('none')
|
|
41
|
+
|
|
42
|
+
styleBuilder
|
|
43
|
+
.select('.composer__editor a', theme)
|
|
44
|
+
.color('#1368d8')
|
|
45
|
+
.textDecoration('underline')
|
|
46
|
+
|
|
47
|
+
styleBuilder
|
|
48
|
+
.select('.composer__editor img', theme)
|
|
49
|
+
.maxWidth('100%')
|
|
50
|
+
.height('auto')
|
|
51
|
+
|
|
52
|
+
styleBuilder
|
|
53
|
+
.select('.composer__editor table', theme)
|
|
54
|
+
.maxWidth('100%')
|
|
55
|
+
.borderCollapse('collapse')
|
|
56
|
+
|
|
57
|
+
styleBuilder.select('.composer__editor p:first-child', theme).marginTop('0')
|
|
58
|
+
|
|
59
|
+
styleBuilder.select('.composer__editor p:last-child', theme).marginBottom('0')
|
|
60
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { styleBuilder } from '@purestack/ts-style'
|
|
2
|
+
import type { ComposerCanvasStyleContext } from './composerCanvasStyleTypes'
|
|
3
|
+
|
|
4
|
+
export function registerComposerThemeCanvasStyles({
|
|
5
|
+
palette,
|
|
6
|
+
theme,
|
|
7
|
+
}: ComposerCanvasStyleContext) {
|
|
8
|
+
styleBuilder
|
|
9
|
+
.select('.composer__editor', theme)
|
|
10
|
+
.width('100%')
|
|
11
|
+
.boxSizing('border-box')
|
|
12
|
+
.padding('0.85em 0.95em')
|
|
13
|
+
.border('none')
|
|
14
|
+
.borderRadius('0')
|
|
15
|
+
.outline('none')
|
|
16
|
+
.background('transparent')
|
|
17
|
+
.color(palette.current.text.default)
|
|
18
|
+
.apply(palette.applyFont(palette.font.size.body))
|
|
19
|
+
.lineHeight('1.55')
|
|
20
|
+
.overflowY('auto')
|
|
21
|
+
.whiteSpace('normal')
|
|
22
|
+
|
|
23
|
+
styleBuilder
|
|
24
|
+
.select('.composer__editor:empty::before', theme)
|
|
25
|
+
.content('attr(data-placeholder)')
|
|
26
|
+
.color(palette.current.text.subtle)
|
|
27
|
+
.pointerEvents('none')
|
|
28
|
+
|
|
29
|
+
styleBuilder
|
|
30
|
+
.select('.composer__editor a', theme)
|
|
31
|
+
.color(palette.current.tone)
|
|
32
|
+
.textDecoration('underline')
|
|
33
|
+
|
|
34
|
+
styleBuilder
|
|
35
|
+
.select('.composer__editor img', theme)
|
|
36
|
+
.maxWidth('100%')
|
|
37
|
+
.height('auto')
|
|
38
|
+
.borderRadius('0.25rem')
|
|
39
|
+
|
|
40
|
+
styleBuilder
|
|
41
|
+
.select('.composer__editor table', theme)
|
|
42
|
+
.maxWidth('100%')
|
|
43
|
+
.borderCollapse('collapse')
|
|
44
|
+
|
|
45
|
+
styleBuilder.select('.composer__editor p', theme).margin('0 0 0.7em')
|
|
46
|
+
|
|
47
|
+
styleBuilder.select('.composer__editor p:last-child', theme).marginBottom('0')
|
|
48
|
+
|
|
49
|
+
styleBuilder
|
|
50
|
+
.select('.composer__editor ul, .composer__editor ol', theme)
|
|
51
|
+
.margin('0 0 0.7em')
|
|
52
|
+
.paddingLeft('1.4em')
|
|
53
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import type { ThemePalette } from '@purestack/ts-style'
|
|
2
|
+
import { styleBuilder, type ThemeMode, themes } from '@purestack/ts-style'
|
|
3
|
+
import { registerComposerInitialCanvasStyles } from './composerCanvasInitialStyle'
|
|
4
|
+
import { registerComposerRevertCanvasStyles } from './composerCanvasRevertStyle'
|
|
5
|
+
import type { ComposerCanvasStyleOption } from './composerCanvasStyleTypes'
|
|
6
|
+
import { registerComposerThemeCanvasStyles } from './composerCanvasThemeStyle'
|
|
7
|
+
|
|
8
|
+
const COMPOSER_CANVAS_STYLE: ComposerCanvasStyleOption = 'initial'
|
|
9
|
+
|
|
10
|
+
export function registerComposerStyles() {
|
|
11
|
+
themes.forEach((theme, palette) => {
|
|
12
|
+
registerComposerFieldStyles(theme, palette)
|
|
13
|
+
registerComposerShellStyles(theme, palette)
|
|
14
|
+
registerComposerToolbarStyles(theme, palette)
|
|
15
|
+
registerComposerSurfaceStyles(theme, palette)
|
|
16
|
+
})
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function registerComposerFieldStyles(theme: ThemeMode, palette: ThemePalette) {
|
|
20
|
+
styleBuilder
|
|
21
|
+
.select('.composer-field', theme)
|
|
22
|
+
.display('grid')
|
|
23
|
+
.minWidth('0')
|
|
24
|
+
.gap('0.6em')
|
|
25
|
+
styleBuilder
|
|
26
|
+
.select('.composer-field__label', theme)
|
|
27
|
+
.apply(palette.applyFont(palette.font.size.xxs, palette.font.weight.w700))
|
|
28
|
+
.color(palette.current.tone)
|
|
29
|
+
.lineHeight('1')
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function registerComposerShellStyles(theme: ThemeMode, palette: ThemePalette) {
|
|
33
|
+
styleBuilder
|
|
34
|
+
.select('.composer', theme)
|
|
35
|
+
.display('grid')
|
|
36
|
+
.width('100%')
|
|
37
|
+
.boxSizing('border-box')
|
|
38
|
+
.overflow('hidden')
|
|
39
|
+
.borderRadius(palette.radii.md)
|
|
40
|
+
.transition('border-color 160ms ease, box-shadow 160ms ease')
|
|
41
|
+
|
|
42
|
+
styleBuilder
|
|
43
|
+
.select('.composer:focus-within', theme)
|
|
44
|
+
.borderColor(palette.current.border.default)
|
|
45
|
+
.boxShadow(`0 0 0 3px ${palette.current.border.focus}`)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function registerComposerToolbarStyles(
|
|
49
|
+
theme: ThemeMode,
|
|
50
|
+
palette: ThemePalette,
|
|
51
|
+
) {
|
|
52
|
+
styleBuilder
|
|
53
|
+
.select('.composer__toolbar', theme)
|
|
54
|
+
.display('flex')
|
|
55
|
+
.flexWrap('wrap')
|
|
56
|
+
.alignItems('center')
|
|
57
|
+
.gap('0.25rem')
|
|
58
|
+
.padding('0.35em')
|
|
59
|
+
.borderBottom(`1px solid ${palette.current.border.default}`)
|
|
60
|
+
.background(palette.current.surfaceAlt.rest.background)
|
|
61
|
+
|
|
62
|
+
styleBuilder
|
|
63
|
+
.select('.composer__tool', theme)
|
|
64
|
+
.display('inline-flex')
|
|
65
|
+
.flexShrink('0')
|
|
66
|
+
.alignItems('center')
|
|
67
|
+
.justifyContent('center')
|
|
68
|
+
.width('2.1em')
|
|
69
|
+
.height('2.1em')
|
|
70
|
+
.padding('0')
|
|
71
|
+
.border('none')
|
|
72
|
+
.borderRadius('0.375rem')
|
|
73
|
+
.background('transparent')
|
|
74
|
+
.color(palette.current.text.default)
|
|
75
|
+
.cursor('pointer')
|
|
76
|
+
.transition('background 150ms ease, color 150ms ease')
|
|
77
|
+
|
|
78
|
+
styleBuilder
|
|
79
|
+
.select('.composer__tool:hover:not(:disabled)', theme)
|
|
80
|
+
.background(palette.current.button.hover.background)
|
|
81
|
+
.color(palette.current.button.hover.text)
|
|
82
|
+
|
|
83
|
+
styleBuilder
|
|
84
|
+
.select('.composer__tool[aria-pressed="true"]', theme)
|
|
85
|
+
.background(palette.current.button.active.background)
|
|
86
|
+
.color(palette.current.button.active.text)
|
|
87
|
+
|
|
88
|
+
styleBuilder
|
|
89
|
+
.select('.composer__tool:disabled', theme)
|
|
90
|
+
.cursor('not-allowed')
|
|
91
|
+
.opacity('0.55')
|
|
92
|
+
|
|
93
|
+
styleBuilder
|
|
94
|
+
.select('.composer__tool .icon', theme)
|
|
95
|
+
.width('1.1em')
|
|
96
|
+
.height('1.1em')
|
|
97
|
+
|
|
98
|
+
styleBuilder
|
|
99
|
+
.select('.composer__divider', theme)
|
|
100
|
+
.width('1px')
|
|
101
|
+
.height('1.4em')
|
|
102
|
+
.margin('0 0.2em')
|
|
103
|
+
.background(palette.current.border.default)
|
|
104
|
+
|
|
105
|
+
styleBuilder.select('.composer__tool--source', theme).marginLeft('auto')
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function registerComposerSurfaceStyles(
|
|
109
|
+
theme: ThemeMode,
|
|
110
|
+
palette: ThemePalette,
|
|
111
|
+
) {
|
|
112
|
+
styleBuilder
|
|
113
|
+
.select('.composer__surface', theme)
|
|
114
|
+
.position('relative')
|
|
115
|
+
.overflowX('auto')
|
|
116
|
+
|
|
117
|
+
registerComposerCanvasStyles(theme, palette)
|
|
118
|
+
|
|
119
|
+
styleBuilder
|
|
120
|
+
.select('.composer__source', theme)
|
|
121
|
+
.width('100%')
|
|
122
|
+
.boxSizing('border-box')
|
|
123
|
+
.padding('0.85em 0.95em')
|
|
124
|
+
.border('none')
|
|
125
|
+
.borderRadius('0')
|
|
126
|
+
.outline('none')
|
|
127
|
+
.background('transparent')
|
|
128
|
+
.color(palette.current.text.default)
|
|
129
|
+
.apply(palette.applyFont(palette.font.size.body))
|
|
130
|
+
.lineHeight('1.55')
|
|
131
|
+
|
|
132
|
+
styleBuilder
|
|
133
|
+
.select('.composer__source', theme)
|
|
134
|
+
.display('block')
|
|
135
|
+
.resize('vertical')
|
|
136
|
+
.fontFamily('ui-monospace, SFMono-Regular, Menlo, Consolas, monospace')
|
|
137
|
+
.background(palette.current.surface.rest.background)
|
|
138
|
+
.borderTop(`1px solid ${palette.current.border.default}`)
|
|
139
|
+
.borderBottomLeftRadius(palette.radii.md)
|
|
140
|
+
.borderBottomRightRadius(palette.radii.md)
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
function registerComposerCanvasStyles(theme: ThemeMode, palette: ThemePalette) {
|
|
144
|
+
const context = { palette, theme }
|
|
145
|
+
if (COMPOSER_CANVAS_STYLE === 'theme') {
|
|
146
|
+
registerComposerThemeCanvasStyles(context)
|
|
147
|
+
return
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if (COMPOSER_CANVAS_STYLE === 'initial') {
|
|
151
|
+
registerComposerInitialCanvasStyles(context)
|
|
152
|
+
return
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
registerComposerRevertCanvasStyles(context)
|
|
156
|
+
}
|