@vandenberghinc/volt 1.1.5 → 1.1.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/backend/dist/cjs/database.d.ts +41 -68
- package/backend/dist/cjs/database.js +127 -76
- package/backend/dist/cjs/endpoint.d.ts +23 -9
- package/backend/dist/cjs/endpoint.js +98 -21
- package/backend/dist/cjs/frontend.d.ts +0 -2
- package/backend/dist/cjs/frontend.js +9 -9
- package/backend/dist/cjs/image_endpoint.d.ts +3 -1
- package/backend/dist/cjs/image_endpoint.js +2 -1
- package/backend/dist/cjs/payments/paddle.js +10 -2
- package/backend/dist/cjs/plugins/css.d.ts +6 -5
- package/backend/dist/cjs/plugins/css.js +32 -7
- package/backend/dist/cjs/plugins/ts/compiler.d.ts +6 -1
- package/backend/dist/cjs/plugins/ts/compiler.js +26 -2
- package/backend/dist/cjs/plugins/ts/preprocessing.js +5 -3
- package/backend/dist/cjs/server.d.ts +7 -13
- package/backend/dist/cjs/server.js +184 -303
- package/backend/dist/cjs/status.d.ts +1 -0
- package/backend/dist/cjs/status.js +2 -1
- package/backend/dist/cjs/stream.d.ts +5 -3
- package/backend/dist/cjs/stream.js +13 -4
- package/backend/dist/cjs/users.d.ts +1 -1
- package/backend/dist/cjs/users.js +87 -72
- package/backend/dist/cjs/utils.d.ts +17 -9
- package/backend/dist/cjs/utils.js +22 -64
- package/backend/dist/cjs/view.d.ts +2 -2
- package/backend/dist/cjs/view.js +38 -40
- package/backend/dist/cjs/volt.d.ts +3 -2
- package/backend/dist/cjs/volt.js +2 -2
- package/backend/dist/css/volt.css +5 -0
- package/backend/dist/esm/database.d.ts +41 -68
- package/backend/dist/esm/database.js +127 -76
- package/backend/dist/esm/endpoint.d.ts +23 -9
- package/backend/dist/esm/endpoint.js +99 -22
- package/backend/dist/esm/frontend.d.ts +0 -2
- package/backend/dist/esm/frontend.js +9 -9
- package/backend/dist/esm/image_endpoint.d.ts +3 -1
- package/backend/dist/esm/image_endpoint.js +2 -1
- package/backend/dist/esm/payments/paddle.js +11 -3
- package/backend/dist/esm/plugins/css.d.ts +6 -5
- package/backend/dist/esm/plugins/css.js +32 -6
- package/backend/dist/esm/plugins/ts/compiler.d.ts +6 -1
- package/backend/dist/esm/plugins/ts/compiler.js +26 -2
- package/backend/dist/esm/plugins/ts/preprocessing.js +5 -3
- package/backend/dist/esm/server.d.ts +7 -13
- package/backend/dist/esm/server.js +182 -301
- package/backend/dist/esm/status.d.ts +1 -0
- package/backend/dist/esm/status.js +1 -0
- package/backend/dist/esm/stream.d.ts +5 -3
- package/backend/dist/esm/stream.js +13 -4
- package/backend/dist/esm/users.d.ts +1 -1
- package/backend/dist/esm/users.js +87 -72
- package/backend/dist/esm/utils.d.ts +17 -9
- package/backend/dist/esm/utils.js +21 -62
- package/backend/dist/esm/view.d.ts +2 -2
- package/backend/dist/esm/view.js +38 -40
- package/backend/dist/esm/volt.d.ts +3 -2
- package/backend/dist/esm/volt.js +2 -1
- package/backend/dist/esm-dev/blacklist.js +1 -1
- package/backend/dist/esm-dev/cli.js +2 -2
- package/backend/dist/esm-dev/database.d.ts +41 -68
- package/backend/dist/esm-dev/database.js +128 -77
- package/backend/dist/esm-dev/endpoint.d.ts +23 -9
- package/backend/dist/esm-dev/endpoint.js +100 -23
- package/backend/dist/esm-dev/file_watcher.js +1 -1
- package/backend/dist/esm-dev/frontend.d.ts +0 -2
- package/backend/dist/esm-dev/frontend.js +9 -9
- package/backend/dist/esm-dev/image_endpoint.d.ts +3 -1
- package/backend/dist/esm-dev/image_endpoint.js +2 -1
- package/backend/dist/esm-dev/logger.js +1 -1
- package/backend/dist/esm-dev/payments/paddle.js +12 -4
- package/backend/dist/esm-dev/plugins/css.d.ts +6 -5
- package/backend/dist/esm-dev/plugins/css.js +33 -7
- package/backend/dist/esm-dev/plugins/ts/compiler.d.ts +6 -1
- package/backend/dist/esm-dev/plugins/ts/compiler.js +27 -3
- package/backend/dist/esm-dev/plugins/ts/preprocessing.js +7 -5
- package/backend/dist/esm-dev/rate_limit.js +1 -1
- package/backend/dist/esm-dev/server.d.ts +7 -13
- package/backend/dist/esm-dev/server.js +184 -303
- package/backend/dist/esm-dev/status.d.ts +1 -0
- package/backend/dist/esm-dev/status.js +1 -0
- package/backend/dist/esm-dev/stream.d.ts +5 -3
- package/backend/dist/esm-dev/stream.js +13 -4
- package/backend/dist/esm-dev/users.d.ts +1 -1
- package/backend/dist/esm-dev/users.js +88 -73
- package/backend/dist/esm-dev/utils.d.ts +17 -9
- package/backend/dist/esm-dev/utils.js +22 -63
- package/backend/dist/esm-dev/view.d.ts +2 -2
- package/backend/dist/esm-dev/view.js +39 -41
- package/backend/dist/esm-dev/volt.d.ts +3 -2
- package/backend/dist/esm-dev/volt.js +2 -1
- package/backend/src/database.ts +163 -152
- package/backend/src/endpoint.ts +123 -31
- package/backend/src/frontend.ts +9 -8
- package/backend/src/image_endpoint.ts +4 -0
- package/backend/src/payments/paddle.ts +11 -3
- package/backend/src/plugins/css.ts +36 -8
- package/backend/src/plugins/ts/compiler.ts +37 -1
- package/backend/src/plugins/ts/preprocessing.ts +5 -3
- package/backend/src/server.ts +167 -306
- package/backend/src/status.ts +1 -0
- package/backend/src/stream.ts +28 -8
- package/backend/src/users.ts +87 -72
- package/backend/src/utils.ts +58 -25
- package/backend/src/view.ts +30 -28
- package/backend/src/{volt.js → volt.ts} +2 -1
- package/backend/tsconfig.cjs.json +3 -3
- package/backend/tsconfig.esm.json +3 -3
- package/frontend/dist/elements/base.d.ts +397 -415
- package/frontend/dist/elements/base.js +565 -328
- package/frontend/dist/elements/module.d.ts +26 -12
- package/frontend/dist/elements/module.js +69 -32
- package/frontend/dist/elements/register_element.d.ts +3 -0
- package/frontend/dist/elements/register_element.js +22 -0
- package/frontend/dist/modules/auth.d.ts +1 -0
- package/frontend/dist/modules/auth.js +6 -5
- package/frontend/dist/modules/color.d.ts +159 -0
- package/frontend/dist/modules/color.js +315 -0
- package/frontend/dist/modules/colors.d.ts +1 -26
- package/frontend/dist/modules/colors.js +417 -338
- package/frontend/dist/modules/cookies.d.ts +1 -0
- package/frontend/dist/modules/cookies.js +1 -0
- package/frontend/dist/modules/events.d.ts +1 -0
- package/frontend/dist/modules/events.js +1 -0
- package/frontend/dist/modules/google.d.ts +1 -0
- package/frontend/dist/modules/google.js +1 -0
- package/frontend/dist/modules/meta.d.ts +1 -0
- package/frontend/dist/modules/meta.js +1 -0
- package/frontend/dist/modules/mutex.d.ts +1 -2
- package/frontend/dist/modules/mutex.js +3 -4
- package/frontend/dist/modules/paddle.d.ts +1 -0
- package/frontend/dist/modules/paddle.js +14 -13
- package/frontend/dist/modules/scheme.d.ts +1 -0
- package/frontend/dist/modules/scheme.js +4 -2
- package/frontend/dist/modules/statics.d.ts +1 -0
- package/frontend/dist/modules/statics.js +1 -0
- package/frontend/dist/modules/support.d.ts +1 -0
- package/frontend/dist/modules/support.js +3 -2
- package/frontend/dist/modules/theme.d.ts +56 -0
- package/frontend/dist/{ui → modules}/theme.js +186 -75
- package/frontend/dist/modules/themes.d.ts +1 -1
- package/frontend/dist/modules/themes.js +1 -0
- package/frontend/dist/modules/user.d.ts +1 -0
- package/frontend/dist/modules/user.js +11 -10
- package/frontend/dist/modules/utils.d.ts +23 -2
- package/frontend/dist/modules/utils.js +93 -1
- package/frontend/dist/types/gradient.js +4 -0
- package/frontend/dist/ui/border_button.d.ts +0 -25
- package/frontend/dist/ui/border_button.js +50 -51
- package/frontend/dist/ui/button.d.ts +0 -21
- package/frontend/dist/ui/button.js +41 -46
- package/frontend/dist/ui/canvas.js +15 -15
- package/frontend/dist/ui/checkbox.d.ts +3 -17
- package/frontend/dist/ui/checkbox.js +36 -30
- package/frontend/dist/ui/code.d.ts +15 -82
- package/frontend/dist/ui/code.js +150 -125
- package/frontend/dist/ui/color.d.ts +0 -1
- package/frontend/dist/ui/color.js +1 -1
- package/frontend/dist/ui/context_menu.d.ts +4 -2
- package/frontend/dist/ui/context_menu.js +16 -17
- package/frontend/dist/ui/css.js +2 -0
- package/frontend/dist/ui/divider.d.ts +0 -7
- package/frontend/dist/ui/divider.js +21 -25
- package/frontend/dist/ui/dropdown.d.ts +13 -7
- package/frontend/dist/ui/dropdown.js +65 -30
- package/frontend/dist/ui/for_each.d.ts +0 -5
- package/frontend/dist/ui/for_each.js +17 -22
- package/frontend/dist/ui/form.d.ts +17 -12
- package/frontend/dist/ui/form.js +21 -18
- package/frontend/dist/ui/frame_modes.d.ts +9 -12
- package/frontend/dist/ui/frame_modes.js +8 -10
- package/frontend/dist/ui/google_map.d.ts +0 -11
- package/frontend/dist/ui/google_map.js +23 -28
- package/frontend/dist/ui/gradient.d.ts +0 -5
- package/frontend/dist/ui/gradient.js +17 -22
- package/frontend/dist/ui/image.d.ts +27 -58
- package/frontend/dist/ui/image.js +99 -93
- package/frontend/dist/ui/input.d.ts +20 -97
- package/frontend/dist/ui/input.js +192 -170
- package/frontend/dist/ui/link.d.ts +0 -18
- package/frontend/dist/ui/link.js +42 -48
- package/frontend/dist/ui/list.js +36 -37
- package/frontend/dist/ui/loader_button.d.ts +4 -19
- package/frontend/dist/ui/loader_button.js +35 -37
- package/frontend/dist/ui/loaders.d.ts +0 -8
- package/frontend/dist/ui/loaders.js +20 -25
- package/frontend/dist/ui/popup.d.ts +11 -8
- package/frontend/dist/ui/popup.js +183 -24
- package/frontend/dist/ui/pseudo.d.ts +3 -3
- package/frontend/dist/ui/pseudo.js +14 -17
- package/frontend/dist/ui/scroller.d.ts +10 -48
- package/frontend/dist/ui/scroller.js +306 -300
- package/frontend/dist/ui/slider.d.ts +9 -3
- package/frontend/dist/ui/slider.js +31 -17
- package/frontend/dist/ui/spacer.d.ts +0 -9
- package/frontend/dist/ui/spacer.js +21 -26
- package/frontend/dist/ui/span.js +13 -15
- package/frontend/dist/ui/stack.d.ts +14 -75
- package/frontend/dist/ui/stack.js +166 -169
- package/frontend/dist/ui/steps.d.ts +10 -23
- package/frontend/dist/ui/steps.js +47 -34
- package/frontend/dist/ui/style.d.ts +4 -3
- package/frontend/dist/ui/style.js +13 -18
- package/frontend/dist/ui/switch.d.ts +10 -4
- package/frontend/dist/ui/switch.js +24 -16
- package/frontend/dist/ui/table.d.ts +0 -23
- package/frontend/dist/ui/table.js +113 -119
- package/frontend/dist/ui/tabs.d.ts +3 -19
- package/frontend/dist/ui/tabs.js +35 -29
- package/frontend/dist/ui/text.d.ts +0 -8
- package/frontend/dist/ui/text.js +20 -25
- package/frontend/dist/ui/title.d.ts +0 -15
- package/frontend/dist/ui/title.js +39 -45
- package/frontend/dist/ui/ui.d.ts +0 -2
- package/frontend/dist/ui/ui.js +0 -2
- package/frontend/dist/ui/view.d.ts +3 -17
- package/frontend/dist/ui/view.js +27 -32
- package/frontend/dist/volt.d.ts +2 -1
- package/frontend/dist/volt.js +3 -1
- package/frontend/examples/dashboard/dashboard.ts +774 -0
- package/frontend/examples/theme/theme.ts +58 -0
- package/frontend/src/css/volt.css +5 -0
- package/frontend/src/elements/base.ts +767 -545
- package/frontend/src/elements/module.ts +90 -29
- package/frontend/src/elements/register_element.ts +24 -0
- package/frontend/src/modules/auth.ts +7 -6
- package/frontend/src/modules/color.ts +348 -0
- package/frontend/src/modules/colors.ts +468 -449
- package/frontend/src/modules/cookies.ts +1 -0
- package/frontend/src/modules/events.ts +1 -0
- package/frontend/src/modules/google.ts +1 -0
- package/frontend/src/modules/meta.ts +2 -1
- package/frontend/src/modules/mutex.ts +2 -4
- package/frontend/src/modules/paddle.ts +21 -20
- package/frontend/src/modules/scheme.ts +4 -3
- package/frontend/src/modules/statics.ts +2 -1
- package/frontend/src/modules/support.ts +3 -2
- package/frontend/src/modules/theme.ts +413 -0
- package/frontend/src/modules/themes.ts +2 -1
- package/frontend/src/modules/user.ts +12 -11
- package/frontend/src/modules/utils.ts +125 -2
- package/frontend/src/ui/border_button.ts +41 -37
- package/frontend/src/ui/button.ts +33 -32
- package/frontend/src/ui/canvas.ts +5 -2
- package/frontend/src/ui/checkbox.ts +21 -22
- package/frontend/src/ui/code.ts +92 -86
- package/frontend/src/ui/context_menu.ts +7 -5
- package/frontend/src/ui/css.ts +1 -1
- package/frontend/src/ui/divider.ts +15 -10
- package/frontend/src/ui/dropdown.ts +38 -21
- package/frontend/src/ui/for_each.ts +9 -8
- package/frontend/src/ui/form.ts +26 -21
- package/frontend/src/ui/frame_modes.ts +13 -17
- package/frontend/src/ui/google_map.ts +15 -13
- package/frontend/src/ui/gradient.ts +9 -8
- package/frontend/src/ui/image.ts +108 -86
- package/frontend/src/ui/input.ts +145 -144
- package/frontend/src/ui/link.ts +25 -23
- package/frontend/src/ui/list.ts +12 -6
- package/frontend/src/ui/loader_button.ts +26 -25
- package/frontend/src/ui/loaders.ts +12 -11
- package/frontend/src/ui/popup.ts +168 -14
- package/frontend/src/ui/pseudo.ts +5 -3
- package/frontend/src/ui/scroller.ts +303 -294
- package/frontend/src/ui/slider.ts +15 -10
- package/frontend/src/ui/spacer.ts +14 -11
- package/frontend/src/ui/span.ts +6 -2
- package/frontend/src/ui/stack.ts +196 -183
- package/frontend/src/ui/steps.ts +38 -22
- package/frontend/src/ui/style.ts +7 -4
- package/frontend/src/ui/switch.ts +16 -11
- package/frontend/src/ui/table.ts +42 -34
- package/frontend/src/ui/tabs.ts +20 -19
- package/frontend/src/ui/text.ts +12 -11
- package/frontend/src/ui/title.ts +22 -20
- package/frontend/src/ui/ui.ts +0 -2
- package/frontend/src/ui/view.ts +20 -19
- package/frontend/src/volt.ts +3 -1
- package/frontend/{compile.js → tools/compile.old.js} +2 -2
- package/frontend/tools/embed_scripts.js +69 -0
- package/frontend/tsconfig.json +26 -0
- package/package.json +8 -8
- package/frontend/dist/ui/theme.d.ts +0 -25
- package/frontend/exports.json +0 -1340
- package/frontend/src/modules/date.js +0 -535
- package/frontend/src/ui/color.ts +0 -117
- package/frontend/src/ui/theme.ts +0 -279
- /package/backend/src/{vinc.dev.js → vinc.dev.ts} +0 -0
|
@@ -1,449 +1,468 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
type
|
|
12
|
-
type
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
//
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
//
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
//
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
1
|
+
/** @deprecated Use `Color` from modules/color.ts instead */
|
|
2
|
+
|
|
3
|
+
// type ColorFunction = (data: any) => string;
|
|
4
|
+
// type ColorObject = Record<'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white', string>;
|
|
5
|
+
// type ColorFunctionObject = Record<'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white', ColorFunction>;
|
|
6
|
+
|
|
7
|
+
// // Colors module
|
|
8
|
+
// export namespace Colors {
|
|
9
|
+
|
|
10
|
+
// // Types.
|
|
11
|
+
// export type Color = string;
|
|
12
|
+
// export type RGBArray = number[];
|
|
13
|
+
// export interface RGBAObject {
|
|
14
|
+
// r: number;
|
|
15
|
+
// g: number;
|
|
16
|
+
// b: number;
|
|
17
|
+
// a?: number;
|
|
18
|
+
// }
|
|
19
|
+
|
|
20
|
+
// // ---------------------------------------------------------
|
|
21
|
+
// // Attributes.
|
|
22
|
+
// export const black = "\u001b[30m";
|
|
23
|
+
// export const red = "\u001b[31m";
|
|
24
|
+
// export const red_bold = "\u001b[31m\u001b[1m";
|
|
25
|
+
// export const green = "\u001b[32m";
|
|
26
|
+
// export const yellow = "\u001b[33m";
|
|
27
|
+
// export const blue = "\u001b[34m";
|
|
28
|
+
// export const magenta = "\u001b[35m";
|
|
29
|
+
// export const cyan = "\u001b[36m";
|
|
30
|
+
// export const light_gray = "\u001b[37m";
|
|
31
|
+
// export const gray = "\u001b[90m";
|
|
32
|
+
// export const bold = "\u001b[1m";
|
|
33
|
+
// export const italic = "\u001b[3m";
|
|
34
|
+
// export const end = "\u001b[0m";
|
|
35
|
+
// export const purple = "\u001b[94m";
|
|
36
|
+
// export const bg: ColorObject = {
|
|
37
|
+
// black: "\u001b[40m",
|
|
38
|
+
// red: "\u001b[41m",
|
|
39
|
+
// green: "\u001b[42m",
|
|
40
|
+
// yellow: "\u001b[43m",
|
|
41
|
+
// blue: "\u001b[44m",
|
|
42
|
+
// magenta: "\u001b[45m",
|
|
43
|
+
// cyan: "\u001b[46m",
|
|
44
|
+
// white: "\u001b[47m",
|
|
45
|
+
// };
|
|
46
|
+
// export const bright_bg: ColorObject = {
|
|
47
|
+
// black: "\u001b[100m",
|
|
48
|
+
// red: "\u001b[101m",
|
|
49
|
+
// green: "\u001b[102m",
|
|
50
|
+
// yellow: "\u001b[103m",
|
|
51
|
+
// blue: "\u001b[104m",
|
|
52
|
+
// magenta: "\u001b[105m",
|
|
53
|
+
// cyan: "\u001b[106m",
|
|
54
|
+
// white: "\u001b[107m",
|
|
55
|
+
// };
|
|
56
|
+
|
|
57
|
+
// // Hex module
|
|
58
|
+
// export namespace hex {
|
|
59
|
+
// // Get the brightness of a hex color (0.0 white, 1.0 dark)
|
|
60
|
+
// export function get_brightness(color: string): number {
|
|
61
|
+
// color = color.replace(/^#/, '');
|
|
62
|
+
|
|
63
|
+
// const bigint = parseInt(color, 16);
|
|
64
|
+
// const r = (bigint >> 16) & 255;
|
|
65
|
+
// const g = (bigint >> 8) & 255;
|
|
66
|
+
// const b = bigint & 255;
|
|
67
|
+
|
|
68
|
+
// const brightness = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
|
|
69
|
+
// return brightness;
|
|
70
|
+
// }
|
|
71
|
+
|
|
72
|
+
// // Convert hex to RGBA;
|
|
73
|
+
// export function to_rgb(hex: string, as_array: true): number[];
|
|
74
|
+
// export function to_rgb(hex: string, as_array?: false): RGBAObject;
|
|
75
|
+
// export function to_rgb(hex: string, as_array: boolean = false): RGBAObject | number[] {
|
|
76
|
+
// const index = hex.indexOf("#");
|
|
77
|
+
// if (index !== -1) {
|
|
78
|
+
// hex = hex.substr(index + 1);
|
|
79
|
+
// }
|
|
80
|
+
|
|
81
|
+
// let r = parseInt(hex.substring(0, 2), 16);
|
|
82
|
+
// let g = parseInt(hex.substring(2, 4), 16);
|
|
83
|
+
// let b = parseInt(hex.substring(4, 6), 16);
|
|
84
|
+
// let a = 1;
|
|
85
|
+
|
|
86
|
+
// if (hex.length > 6) {
|
|
87
|
+
// a = parseInt(hex.substring(6, 8), 16) / 255;
|
|
88
|
+
// }
|
|
89
|
+
|
|
90
|
+
// if (isNaN(r)) { r = 0; }
|
|
91
|
+
// if (isNaN(g)) { g = 0; }
|
|
92
|
+
// if (isNaN(b)) { b = 0; }
|
|
93
|
+
// if (isNaN(a)) { a = 1; }
|
|
94
|
+
|
|
95
|
+
// if (as_array) {
|
|
96
|
+
// return [r, g, b, a];
|
|
97
|
+
// }
|
|
98
|
+
|
|
99
|
+
// return { r, g, b, a };
|
|
100
|
+
// }
|
|
101
|
+
// export const to_rgba = to_rgb;
|
|
102
|
+
|
|
103
|
+
// // Adjust brightness of a hex color
|
|
104
|
+
// export function adjust_brightness(color: string, adjust: number = 0): string {
|
|
105
|
+
// const rgba = hex.to_rgb(color);
|
|
106
|
+
// if (Array.isArray(rgba)) {
|
|
107
|
+
// rgba[0] += adjust;
|
|
108
|
+
// rgba[1] += adjust;
|
|
109
|
+
// rgba[2] += adjust;
|
|
110
|
+
// return Colors.rgb.to_hex(rgba[0], rgba[1], rgba[2], rgba[3]);
|
|
111
|
+
// } else {
|
|
112
|
+
// rgba.r += adjust;
|
|
113
|
+
// rgba.g += adjust;
|
|
114
|
+
// rgba.b += adjust;
|
|
115
|
+
// return Colors.rgb.to_hex(rgba.r, rgba.g, rgba.b, rgba.a);
|
|
116
|
+
// }
|
|
117
|
+
// }
|
|
118
|
+
|
|
119
|
+
// // Placeholder for aliasing
|
|
120
|
+
// // export const to_rgba = null as unknown as (hex: string, as_array?: boolean) => RGBA | number[];
|
|
121
|
+
// };
|
|
122
|
+
// // hex.to_rgba = hex.to_rgb;
|
|
123
|
+
|
|
124
|
+
// // RGB module
|
|
125
|
+
// export const rgb = {
|
|
126
|
+
// // RGB(a) to hex
|
|
127
|
+
// to_hex(r: number, g: number, b: number, a: number = 1): string {
|
|
128
|
+
// const hexR = Math.round(r).toString(16).padStart(2, '0');
|
|
129
|
+
// const hexG = Math.round(g).toString(16).padStart(2, '0');
|
|
130
|
+
// const hexB = Math.round(b).toString(16).padStart(2, '0');
|
|
131
|
+
// const hexA = a === 1 ? "" : Math.round(a * 255).toString(16).padStart(2, '0');
|
|
132
|
+
|
|
133
|
+
// return `#${hexR}${hexG}${hexB}${hexA}`;
|
|
134
|
+
// },
|
|
135
|
+
|
|
136
|
+
// // Convert a color string (e.g., "rgb(255, 0, 0)") to an RGBA object
|
|
137
|
+
// to_obj(color: string): RGBAObject {
|
|
138
|
+
// if (!color.startsWith("rgba(") && !color.startsWith("rgb(")) {
|
|
139
|
+
// throw new Error("Invalid color format");
|
|
140
|
+
// }
|
|
141
|
+
|
|
142
|
+
// const split = color.trim().split("(")[1].slice(0, -1).split(",");
|
|
143
|
+
// const obj: RGBAObject = { r: 0, g: 0, b: 0, a: 1 };
|
|
144
|
+
|
|
145
|
+
// obj.r = parseInt(split[0].trim());
|
|
146
|
+
// obj.g = parseInt(split[1].trim());
|
|
147
|
+
// obj.b = parseInt(split[2].trim());
|
|
148
|
+
// if (split[3]) {
|
|
149
|
+
// obj.a = parseFloat(split[3].trim());
|
|
150
|
+
// }
|
|
151
|
+
|
|
152
|
+
// return obj;
|
|
153
|
+
// },
|
|
154
|
+
|
|
155
|
+
// // Convert RGBA values to a color string
|
|
156
|
+
// to_str(r: number, g: number, b: number, a: number = 1): string {
|
|
157
|
+
// if (a !== 1) {
|
|
158
|
+
// return `rgba(${isNaN(r) ? 0 : r}, ${isNaN(g) ? 0 : g}, ${isNaN(b) ? 0 : b}, ${isNaN(a) ? 1 : a})`;
|
|
159
|
+
// } else {
|
|
160
|
+
// return `rgb(${isNaN(r) ? 0 : r}, ${isNaN(g) ? 0 : g}, ${isNaN(b) ? 0 : b})`;
|
|
161
|
+
// }
|
|
162
|
+
// },
|
|
163
|
+
|
|
164
|
+
// // Adjust brightness of an RGB color
|
|
165
|
+
// adjust_brightness(color: string, adjust: number = 0): string {
|
|
166
|
+
// const rgba = this.to_obj(color);
|
|
167
|
+
// rgba.r += adjust;
|
|
168
|
+
// rgba.g += adjust;
|
|
169
|
+
// rgba.b += adjust;
|
|
170
|
+
// return this.to_str(rgba.r, rgba.g, rgba.b, rgba.a);
|
|
171
|
+
// },
|
|
172
|
+
// };
|
|
173
|
+
|
|
174
|
+
// // Placeholder for aliasing
|
|
175
|
+
// export const rgba = rgb;
|
|
176
|
+
|
|
177
|
+
// // Utility function to adjust brightness
|
|
178
|
+
// export function adjust_brightness(color: string, adjust: number = 0): string {
|
|
179
|
+
// if (color.startsWith("rgb")) {
|
|
180
|
+
// return Colors.rgb.adjust_brightness(color, adjust);
|
|
181
|
+
// } else if (color.startsWith("#")) {
|
|
182
|
+
// return Colors.hex.adjust_brightness(color, adjust);
|
|
183
|
+
// } else {
|
|
184
|
+
// throw new Error("Invalid color format");
|
|
185
|
+
// }
|
|
186
|
+
// }
|
|
187
|
+
|
|
188
|
+
// // Set the opacity of a color
|
|
189
|
+
// export function set_opacity(color: string, opacity: number = 1.0): string {
|
|
190
|
+
// if (typeof opacity !== "number" || opacity < 0 || opacity > 1) {
|
|
191
|
+
// throw new Error("Invalid opacity [0...1]: " + opacity + ".");
|
|
192
|
+
// }
|
|
193
|
+
|
|
194
|
+
// let rgba: RGBAObject;
|
|
195
|
+
// let type: 'rgb' | 'hex';
|
|
196
|
+
|
|
197
|
+
// if (color.startsWith("rgb")) {
|
|
198
|
+
// type = "rgb";
|
|
199
|
+
// rgba = Colors.rgb.to_obj(color);
|
|
200
|
+
// } else if (color.startsWith("#")) {
|
|
201
|
+
// type = "hex";
|
|
202
|
+
// const result = Colors.hex.to_rgb(color);
|
|
203
|
+
// rgba = Array.isArray(result) ? { r: result[0], g: result[1], b: result[2], a: result[3] } : result;
|
|
204
|
+
// } else {
|
|
205
|
+
// throw new Error("Invalid color format");
|
|
206
|
+
// }
|
|
207
|
+
|
|
208
|
+
// rgba.a = opacity;
|
|
209
|
+
|
|
210
|
+
// if (type === "hex") {
|
|
211
|
+
// return Colors.rgb.to_hex(rgba.r, rgba.g, rgba.b, rgba.a);
|
|
212
|
+
// } else {
|
|
213
|
+
// return Colors.rgb.to_str(rgba.r, rgba.g, rgba.b, rgba.a);
|
|
214
|
+
// }
|
|
215
|
+
// }
|
|
216
|
+
|
|
217
|
+
// // Initialize a color wrapper.
|
|
218
|
+
// function init_rgb(color: string): RGBAObject {
|
|
219
|
+
// if (color.startsWith("#")) {
|
|
220
|
+
// return Colors.hex.to_rgb(color);
|
|
221
|
+
// } else if (color.startsWith("rgb")) {
|
|
222
|
+
// return Colors.rgb.to_obj(color);
|
|
223
|
+
// } else {
|
|
224
|
+
// throw new Error(`Invalid input color "${color}", only hex and rgb(a) colors are supported.`);
|
|
225
|
+
// }
|
|
226
|
+
// }
|
|
227
|
+
|
|
228
|
+
// // Darken the color by interpolating toward black (#000000)
|
|
229
|
+
// export function darken(color: Color /*| RGBArray*/, percent: number = 0.5) {
|
|
230
|
+
// if (typeof percent !== "number" || percent < 0 || percent > 1) {
|
|
231
|
+
// throw new Error("Invalid percentage [0...1]: " + percent + ".");
|
|
232
|
+
// }
|
|
233
|
+
|
|
234
|
+
// // Convert input to RGB object
|
|
235
|
+
// const rgb = init_rgb(color);
|
|
236
|
+
// // const rgb = typeof color === 'string' ? Colors.hex.to_rgb(color) as RGBAObject : {
|
|
237
|
+
// // r: color[0],
|
|
238
|
+
// // g: color[1],
|
|
239
|
+
// // b: color[2],
|
|
240
|
+
// // a: color.length > 3 ? color[3] : 1
|
|
241
|
+
// // };
|
|
242
|
+
|
|
243
|
+
// // Interpolate toward black (0,0,0)
|
|
244
|
+
// const darkened = {
|
|
245
|
+
// r: Math.round(rgb.r * (1 - percent)),
|
|
246
|
+
// g: Math.round(rgb.g * (1 - percent)),
|
|
247
|
+
// b: Math.round(rgb.b * (1 - percent)),
|
|
248
|
+
// a: rgb.a
|
|
249
|
+
// };
|
|
250
|
+
|
|
251
|
+
// // Return in same format as input
|
|
252
|
+
// // if (typeof color === 'string') {
|
|
253
|
+
// return Colors.rgb.to_str(darkened.r, darkened.g, darkened.b, darkened.a);
|
|
254
|
+
// // } else {
|
|
255
|
+
// // return color.length > 3
|
|
256
|
+
// // ? [darkened.r, darkened.g, darkened.b, darkened.a]
|
|
257
|
+
// // : [darkened.r, darkened.g, darkened.b];
|
|
258
|
+
// // }
|
|
259
|
+
// }
|
|
260
|
+
|
|
261
|
+
// // Lighten the color by interpolating toward white (#FFFFFF)
|
|
262
|
+
// export function lighten(color: Color /*| RGBArray*/, percent: number = 0.5) {
|
|
263
|
+
// if (typeof percent !== "number" || percent < 0 || percent > 1) {
|
|
264
|
+
// throw new Error("Invalid percentage [0...1]: " + percent + ".");
|
|
265
|
+
// }
|
|
266
|
+
|
|
267
|
+
// // Convert input to RGB object
|
|
268
|
+
// const rgb = init_rgb(color);
|
|
269
|
+
// // const rgb = typeof color === 'string' ? Colors.hex.to_rgb(color) as RGBA : {
|
|
270
|
+
// // r: color[0],
|
|
271
|
+
// // g: color[1],
|
|
272
|
+
// // b: color[2],
|
|
273
|
+
// // a: color.length > 3 ? color[3] : 1
|
|
274
|
+
// // };
|
|
275
|
+
|
|
276
|
+
// // Interpolate toward white (255,255,255)
|
|
277
|
+
// const lightened = {
|
|
278
|
+
// r: Math.round(rgb.r + (255 - rgb.r) * percent),
|
|
279
|
+
// g: Math.round(rgb.g + (255 - rgb.g) * percent),
|
|
280
|
+
// b: Math.round(rgb.b + (255 - rgb.b) * percent),
|
|
281
|
+
// a: rgb.a
|
|
282
|
+
// };
|
|
283
|
+
|
|
284
|
+
// // Return in same format as input
|
|
285
|
+
// // if (typeof color === 'string') {
|
|
286
|
+
// return Colors.rgb.to_str(lightened.r, lightened.g, lightened.b, lightened.a);
|
|
287
|
+
// // } else {
|
|
288
|
+
// // return color.length > 3
|
|
289
|
+
// // ? [lightened.r, lightened.g, lightened.b, lightened.a]
|
|
290
|
+
// // : [lightened.r, lightened.g, lightened.b];
|
|
291
|
+
// // }
|
|
292
|
+
// }
|
|
293
|
+
|
|
294
|
+
// // Interpolate.
|
|
295
|
+
// export function interpolate(start: Color /*| RGBArray*/, end: Color /*| RGBArray*/, percent: number = 0.5, alpha: number = 1.0) {
|
|
296
|
+
// if (typeof percent !== "number" || percent < 0 || percent > 1) {
|
|
297
|
+
// throw new Error("Invalid percentage [0...1]: " + percent + ".");
|
|
298
|
+
// }
|
|
299
|
+
// if (typeof alpha !== "number" || alpha < 0 || alpha > 1) {
|
|
300
|
+
// throw new Error("Invalid alpha [0...1]: " + alpha + ".");
|
|
301
|
+
// }
|
|
302
|
+
// return new ColorRangeClass(start, end).interpolate(percent, alpha)
|
|
303
|
+
// }
|
|
304
|
+
|
|
305
|
+
// // Determine the opposite (contrasting) color.
|
|
306
|
+
// // Returns black (#000000) if the input color is bright, or white (#ffffff) if it is dark.
|
|
307
|
+
// export function opposite(color: Color): "#000000" | "#ffffff" {
|
|
308
|
+
// let brightness: number;
|
|
309
|
+
// if (color.startsWith("#")) {
|
|
310
|
+
// brightness = Colors.hex.get_brightness(color);
|
|
311
|
+
// } else if (color.startsWith("rgb")) {
|
|
312
|
+
// const rgba = Colors.rgb.to_obj(color);
|
|
313
|
+
// brightness = (0.299 * rgba.r + 0.587 * rgba.g + 0.114 * rgba.b) / 255;
|
|
314
|
+
// } else {
|
|
315
|
+
// throw new Error("Invalid color format for opposite color");
|
|
316
|
+
// }
|
|
317
|
+
// // Return black for bright colors, white for dark colors.
|
|
318
|
+
// return brightness > 0.5 ? "#000000" : "#ffffff";
|
|
319
|
+
// }
|
|
320
|
+
// export function opposite_func(color: Color): typeof lighten | typeof darken {
|
|
321
|
+
// return opposite(color) === "#000000" ? darken : lighten;
|
|
322
|
+
// }
|
|
323
|
+
// };
|
|
324
|
+
|
|
325
|
+
// import { Elements } from "../elements/module.js"
|
|
326
|
+
|
|
327
|
+
// /* @docs:
|
|
328
|
+
// @nav: Frontend
|
|
329
|
+
// @chapter: Styling
|
|
330
|
+
// @title: Color range
|
|
331
|
+
// @description: Used to create a range between two different colors. Can be initialized using alias function `ColorRange`.
|
|
332
|
+
// @param:
|
|
333
|
+
// @name: start
|
|
334
|
+
// @descr: The start color (lightest). May either be a HEX string or an rgb(a) array.
|
|
335
|
+
// @type: string, array
|
|
336
|
+
// @param:
|
|
337
|
+
// @name: end
|
|
338
|
+
// @descr: The end color (darkest). May either be a HEX string or an rgb(a) array.
|
|
339
|
+
// @type: string, array
|
|
340
|
+
// */
|
|
341
|
+
// export class ColorRangeClass {
|
|
342
|
+
|
|
343
|
+
// public start: Colors.RGBAObject;
|
|
344
|
+
// public end: Colors.RGBAObject;
|
|
345
|
+
|
|
346
|
+
// constructor(start: Colors.Color | Colors.RGBArray, end: Colors.Color | Colors.RGBArray) {
|
|
347
|
+
// if (Array.isArray(start)) {
|
|
348
|
+
// this.start = this.array_to_rgba(start);
|
|
349
|
+
// } else if (typeof start === "string") {
|
|
350
|
+
// this.start = Colors.hex.to_rgb(start);
|
|
351
|
+
// } else {
|
|
352
|
+
// throw new Error(`Invalid type "${typeof start}" for parameter "start", the valid types are "string" or "array".`);
|
|
353
|
+
// }
|
|
354
|
+
// if (Array.isArray(end)) {
|
|
355
|
+
// this.end = this.array_to_rgba(end);
|
|
356
|
+
// } else if (typeof end === "string") {
|
|
357
|
+
// this.end = Colors.hex.to_rgb(end) as Colors.RGBAObject;
|
|
358
|
+
// } else {
|
|
359
|
+
// throw new Error(`Invalid type "${typeof end}" for parameter "end", the valid types are "string" or "array".`);
|
|
360
|
+
// }
|
|
361
|
+
// }
|
|
362
|
+
|
|
363
|
+
// // Array to rgba.
|
|
364
|
+
// array_to_rgba(array: Colors.RGBArray): Colors.RGBAObject {
|
|
365
|
+
// return {
|
|
366
|
+
// r: isNaN(array[0]) ? 0 : array[0],
|
|
367
|
+
// g: isNaN(array[1]) ? 0 : array[1],
|
|
368
|
+
// b: isNaN(array[2]) ? 0 : array[2],
|
|
369
|
+
// a: array.length < 4 ? 1.0 : isNaN(array[3]) ? 1.0 : array[3],
|
|
370
|
+
// }
|
|
371
|
+
// }
|
|
372
|
+
|
|
373
|
+
// /* @docs:
|
|
374
|
+
// @title: Interpolate
|
|
375
|
+
// @description: Interpolate between the start and end colors. When `percent` is 0 it will return the `start` color and when percent is `1` it will return the end color without computations.
|
|
376
|
+
// @param:
|
|
377
|
+
// @name: percent
|
|
378
|
+
// @descr: The percentage to interpolate from start to end, the valid range is `0.0` till `1.0`.
|
|
379
|
+
// @type: number
|
|
380
|
+
// @param:
|
|
381
|
+
// @name: alpha
|
|
382
|
+
// @descr: The alpha channel, the valid range is `0.0` till `1.0`.
|
|
383
|
+
// @type: number
|
|
384
|
+
// @default: 1
|
|
385
|
+
// */
|
|
386
|
+
// interpolate(percent: number = 0.5, alpha: number = 1.0): Colors.Color {
|
|
387
|
+
// // Validate inputs
|
|
388
|
+
// percent = Math.max(0, Math.min(1, percent)); // Clamp percent between 0 and 1
|
|
389
|
+
// alpha = Math.max(0, Math.min(1, alpha)); // Clamp alpha between 0 and 1
|
|
390
|
+
|
|
391
|
+
// // Handle edge cases
|
|
392
|
+
// if (percent <= 0) {
|
|
393
|
+
// return Colors.rgb.to_str(
|
|
394
|
+
// this.start.r,
|
|
395
|
+
// this.start.g,
|
|
396
|
+
// this.start.b,
|
|
397
|
+
// this.start.a,
|
|
398
|
+
// );
|
|
399
|
+
// } else if (percent >= 1) {
|
|
400
|
+
// console.log("END:", this.end)
|
|
401
|
+
// return Colors.rgb.to_str(
|
|
402
|
+
// this.end.r,
|
|
403
|
+
// this.end.g,
|
|
404
|
+
// this.end.b,
|
|
405
|
+
// this.end.a,
|
|
406
|
+
// );
|
|
407
|
+
// }
|
|
408
|
+
|
|
409
|
+
// // Ensure all RGB values are valid numbers (default to 0 if invalid)
|
|
410
|
+
// const startR = isNaN(this.start.r) ? 0 : this.start.r;
|
|
411
|
+
// const startG = isNaN(this.start.g) ? 0 : this.start.g;
|
|
412
|
+
// const startB = isNaN(this.start.b) ? 0 : this.start.b;
|
|
413
|
+
|
|
414
|
+
// const endR = isNaN(this.end.r) ? 0 : this.end.r;
|
|
415
|
+
// const endG = isNaN(this.end.g) ? 0 : this.end.g;
|
|
416
|
+
// const endB = isNaN(this.end.b) ? 0 : this.end.b;
|
|
417
|
+
|
|
418
|
+
// // Perform interpolation with validated values
|
|
419
|
+
// return Colors.rgba.to_str(
|
|
420
|
+
// Math.round(startR + (endR - startR) * percent),
|
|
421
|
+
// Math.round(startG + (endG - startG) * percent),
|
|
422
|
+
// Math.round(startB + (endB - startB) * percent),
|
|
423
|
+
// alpha,
|
|
424
|
+
// );
|
|
425
|
+
// }
|
|
426
|
+
// // interpolate(percent: number = 0.5, alpha: number = 1.0): Hex {
|
|
427
|
+
// // if (percent <= 0) {
|
|
428
|
+
// // return Colors.rgb.to_str(
|
|
429
|
+
// // this.start.r,
|
|
430
|
+
// // this.start.g,
|
|
431
|
+
// // this.start.b,
|
|
432
|
+
// // this.start.a,
|
|
433
|
+
// // )
|
|
434
|
+
// // } else if (percent >= 1) {
|
|
435
|
+
// // return Colors.rgb.to_str(
|
|
436
|
+
// // this.end.r,
|
|
437
|
+
// // this.end.g,
|
|
438
|
+
// // this.end.b,
|
|
439
|
+
// // this.end.a,
|
|
440
|
+
// // )
|
|
441
|
+
// // }
|
|
442
|
+
// // return Colors.rgba.to_str(
|
|
443
|
+
// // Math.round(this.start.r + (this.end.r - this.start.r) * percent),
|
|
444
|
+
// // Math.round(this.start.g + (this.end.g - this.start.g) * percent),
|
|
445
|
+
// // Math.round(this.start.b + (this.end.b - this.start.b) * percent),
|
|
446
|
+
// // alpha,
|
|
447
|
+
// // )
|
|
448
|
+
// // }
|
|
449
|
+
|
|
450
|
+
// // RGBA to hex.
|
|
451
|
+
// // rgb_to_hex(r, g, b, a = 1) {
|
|
452
|
+
// // const hex = [r, g, b].map(x => {
|
|
453
|
+
// // const hex = x.toString(16);
|
|
454
|
+
// // return hex.length === 1 ? '0' + hex : hex;
|
|
455
|
+
// // })
|
|
456
|
+
// // if (a != null && a < 1) {
|
|
457
|
+
// // let a = a / 100;
|
|
458
|
+
// // if (a < 10) {
|
|
459
|
+
// // hex.push("0" + a.toString())
|
|
460
|
+
// // } else {
|
|
461
|
+
// // hex.push(a.toString())
|
|
462
|
+
// // }
|
|
463
|
+
// // }
|
|
464
|
+
// // return '#' + hex.join('');
|
|
465
|
+
// // }
|
|
466
|
+
// }
|
|
467
|
+
// export const ColorRange = Elements.wrapper(ColorRangeClass);
|
|
468
|
+
// export const NullColorRange = Elements.create_null(ColorRangeClass);
|