@rokkit/core 1.0.0-next.56 → 1.0.0-next.57

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rokkit/core",
3
- "version": "1.0.0-next.56",
3
+ "version": "1.0.0-next.57",
4
4
  "description": "Core components, actions and stores for svelte apps.",
5
5
  "author": "Jerry Thomas <me@jerrythomas.name>",
6
6
  "license": "MIT",
@@ -24,7 +24,7 @@
24
24
  "validators": "latest",
25
25
  "vite": "^4.5.0",
26
26
  "vitest": "~0.34.6",
27
- "shared-config": "1.0.0-next.56"
27
+ "shared-config": "1.0.0-next.57"
28
28
  },
29
29
  "files": [
30
30
  "src/**/*.js",
@@ -0,0 +1,7 @@
1
+ import { defaultTailwindColors } from './tailwind'
2
+
3
+ export * from './syntax'
4
+
5
+ export const defaultColors = {
6
+ ...defaultTailwindColors
7
+ }
@@ -0,0 +1,44 @@
1
+ export const syntaxColors = {
2
+ 'one-dark': {
3
+ dark: {
4
+ '--tab-size': '2',
5
+ // '--code-bg': '#282c34',
6
+ '--code-fill': '#282c34',
7
+ '--code-normal': '#e06c75',
8
+ '--code-string': '#98c379',
9
+ '--code-number': '#d19a66',
10
+ '--code-atrule': 'var(--code-string)',
11
+ '--code-keyword': '#c678dd',
12
+ '--code-comment': '#5c6370',
13
+ '--code-property': '#d19a66',
14
+ '--code-selector': 'var(--code-keyword)',
15
+ '--code-operator': '#56b6c2',
16
+ '--code-function': '#61afef',
17
+ '--code-gutter-marker': 'black',
18
+ '--code-gutter-subtle': '#999',
19
+ '--code-cursor': '#24292e',
20
+ '--code-cursor-block': 'rgba(20, 255, 20, 0.5)',
21
+ '--code-linenumbers': 'rgba(27, 31, 35, 0.3)'
22
+ },
23
+ light: {
24
+ '--tab-size': '2',
25
+ // '--code-bg': '#f3f4f6',
26
+ '--code-fill': '#f3f4f6',
27
+ '--code-normal': '#333333',
28
+ '--code-string': '#9D8248',
29
+ '--code-number': '#71A15D',
30
+ '--code-atrule': 'var(--code-string)',
31
+ '--code-keyword': '#3080B5',
32
+ '--code-comment': '#969896',
33
+ '--code-property': '#63a35c',
34
+ '--code-selector': 'var(--code-keyword)',
35
+ '--code-operator': '#bf5625',
36
+ '--code-function': '#a71d5d',
37
+ '--code-gutter-marker': 'black',
38
+ '--code-gutter-subtle': '#999',
39
+ '--code-cursor': '#24292e',
40
+ '--code-cursor-block': 'rgba(20, 255, 20, 0.5)',
41
+ '--code-linenumbers': 'rgba(27, 31, 35, 0.3)'
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,275 @@
1
+ export const defaultTailwindColors = {
2
+ amber: {
3
+ 50: '#fffbeb',
4
+ 100: '#fef3c7',
5
+ 200: '#fde68a',
6
+ 300: '#fcd34d',
7
+ 400: '#fbbf24',
8
+ 500: '#f59e0b',
9
+ 600: '#d97706',
10
+ 700: '#b45309',
11
+ 800: '#92400e',
12
+ 900: '#78350f',
13
+ 950: '#451a03'
14
+ },
15
+ blue: {
16
+ 50: '#eff6ff',
17
+ 100: '#dbeafe',
18
+ 200: '#bfdbfe',
19
+ 300: '#93c5fd',
20
+ 400: '#60a5fa',
21
+ 500: '#3b82f6',
22
+ 600: '#2563eb',
23
+ 700: '#1d4ed8',
24
+ 800: '#1e40af',
25
+ 900: '#1e3a8a',
26
+ 950: '#172554'
27
+ },
28
+ cyan: {
29
+ 50: '#ecfeff',
30
+ 100: '#cffafe',
31
+ 200: '#a5f3fc',
32
+ 300: '#67e8f9',
33
+ 400: '#22d3ee',
34
+ 500: '#06b6d4',
35
+ 600: '#0891b2',
36
+ 700: '#0e7490',
37
+ 800: '#155e75',
38
+ 900: '#164e63',
39
+ 950: '#083344'
40
+ },
41
+ emerald: {
42
+ 50: '#ecfdf5',
43
+ 100: '#d1fae5',
44
+ 200: '#a7f3d0',
45
+ 300: '#6ee7b7',
46
+ 400: '#34d399',
47
+ 500: '#10b981',
48
+ 600: '#059669',
49
+ 700: '#047857',
50
+ 800: '#065f46',
51
+ 900: '#064e3b',
52
+ 950: '#022c22'
53
+ },
54
+ fuscia: {
55
+ 50: '#fdf4ff',
56
+ 100: '#fae8ff',
57
+ 200: '#f5d0fe',
58
+ 300: '#f0abfc',
59
+ 400: '#e879f9',
60
+ 500: '#d946ef',
61
+ 600: '#c026d3',
62
+ 700: '#a21caf',
63
+ 800: '#86198f',
64
+ 900: '#701a75',
65
+ 950: '#4a044e'
66
+ },
67
+ gray: {
68
+ 50: '#f9fafb',
69
+ 100: '#f3f4f6',
70
+ 200: '#e5e7eb',
71
+ 300: '#d1d5db',
72
+ 400: '#9ca3af',
73
+ 500: '#6b7280',
74
+ 600: '#4b5563',
75
+ 700: '#374151',
76
+ 800: '#1f2937',
77
+ 900: '#111827',
78
+ 950: '#00060c'
79
+ },
80
+ green: {
81
+ 50: '#f0fdf4',
82
+ 100: '#dcfce7',
83
+ 200: '#bbf7d0',
84
+ 300: '#86efac',
85
+ 400: '#4ade80',
86
+ 500: '#22c55e',
87
+ 600: '#16a34a',
88
+ 700: '#15803d',
89
+ 800: '#166534',
90
+ 900: '#14532d',
91
+ 950: '#052e16'
92
+ },
93
+ indigo: {
94
+ 50: '#eef2ff',
95
+ 100: '#e0e7ff',
96
+ 200: '#c7d2fe',
97
+ 300: '#a5b4fc',
98
+ 400: '#818cf8',
99
+ 500: '#6366f1',
100
+ 600: '#4f46e5',
101
+ 700: '#4338ca',
102
+ 800: '#3730a3',
103
+ 900: '#312e81',
104
+ 950: '#1e1b4b'
105
+ },
106
+ lime: {
107
+ 50: '#f7fee7',
108
+ 100: '#ecfccb',
109
+ 200: '#d9f99d',
110
+ 300: '#bef264',
111
+ 400: '#a3e635',
112
+ 500: '#84cc16',
113
+ 600: '#65a30d',
114
+ 700: '#4d7c0f',
115
+ 800: '#3f6212',
116
+ 900: '#365314',
117
+ 950: '#1a2e05'
118
+ },
119
+ orange: {
120
+ 50: '#fff7ed',
121
+ 100: '#ffedd5',
122
+ 200: '#fed7aa',
123
+ 300: '#fdba74',
124
+ 400: '#fb923c',
125
+ 500: '#f97316',
126
+ 600: '#ea580c',
127
+ 700: '#c2410c',
128
+ 800: '#9a3412',
129
+ 900: '#7c2d12',
130
+ 950: '#431407'
131
+ },
132
+ pink: {
133
+ 50: '#fdf2f8',
134
+ 100: '#fce7f3',
135
+ 200: '#fbcfe8',
136
+ 300: '#f9a8d4',
137
+ 400: '#f472b6',
138
+ 500: '#ec4899',
139
+ 600: '#db2777',
140
+ 700: '#be185d',
141
+ 800: '#9d174d',
142
+ 900: '#831843',
143
+ 950: '#500724'
144
+ },
145
+ purple: {
146
+ 50: '#faf5ff',
147
+ 100: '#f3e8ff',
148
+ 200: '#e9d5ff',
149
+ 300: '#d8b4fe',
150
+ 400: '#c084fc',
151
+ 500: '#a855f7',
152
+ 600: '#9333ea',
153
+ 700: '#7e22ce',
154
+ 800: '#6b21a8',
155
+ 900: '#581c87',
156
+ 950: '#3b0764'
157
+ },
158
+ red: {
159
+ 50: '#fef2f2',
160
+ 100: '#fee2e2',
161
+ 200: '#fecaca',
162
+ 300: '#fca5a5',
163
+ 400: '#f87171',
164
+ 500: '#ef4444',
165
+ 600: '#dc2626',
166
+ 700: '#b91c1c',
167
+ 800: '#991b1b',
168
+ 900: '#7f1d1d',
169
+ 950: '#450a0a'
170
+ },
171
+ rose: {
172
+ 50: '#fff1f2',
173
+ 100: '#ffe4e6',
174
+ 200: '#fecdd3',
175
+ 300: '#fda4af',
176
+ 400: '#fb7185',
177
+ 500: '#f43f5e',
178
+ 600: '#e11d48',
179
+ 700: '#be123c',
180
+ 800: '#9f1239',
181
+ 900: '#881337',
182
+ 950: '#4c0519'
183
+ },
184
+ sky: {
185
+ 50: '#f0f9ff',
186
+ 100: '#e0f2fe',
187
+ 200: '#bae6fd',
188
+ 300: '#7dd3fc',
189
+ 400: '#38bdf8',
190
+ 500: '#0ea5e9',
191
+ 600: '#0284c7',
192
+ 700: '#0369a1',
193
+ 800: '#075985',
194
+ 900: '#0c4a6e',
195
+ 950: '#082f49'
196
+ },
197
+ slate: {
198
+ 50: '#f8fafc',
199
+ 100: '#f1f5f9',
200
+ 200: '#e2e8f0',
201
+ 300: '#cbd5e0',
202
+ 400: '#94a3b8',
203
+ 500: '#64748b',
204
+ 600: '#475569',
205
+ 700: '#334155',
206
+ 800: '#1e293b',
207
+ 900: '#0f172a',
208
+ 950: '#020617'
209
+ },
210
+ stone: {
211
+ 50: '#fafaf9',
212
+ 100: '#f5f5f4',
213
+ 200: '#e7e5e4',
214
+ 300: '#d6d3d1',
215
+ 400: '#a8a29e',
216
+ 500: '#78716c',
217
+ 600: '#57534e',
218
+ 700: '#44403c',
219
+ 800: '#292524',
220
+ 900: '#1c1917',
221
+ 950: '#0c0a09'
222
+ },
223
+ teal: {
224
+ 50: '#f0fdfa',
225
+ 100: '#ccfbf1',
226
+ 200: '#99f6e4',
227
+ 300: '#5eead4',
228
+ 400: '#2dd4bf',
229
+ 500: '#14b8a6',
230
+ 600: '#0d9488',
231
+ 700: '#0f766e',
232
+ 800: '#115e59',
233
+ 900: '#134e4a',
234
+ 950: '#042f2e'
235
+ },
236
+ violet: {
237
+ 50: '#f5f3ff',
238
+ 100: '#ede9fe',
239
+ 200: '#ddd6fe',
240
+ 300: '#c4b5fd',
241
+ 400: '#a78bfa',
242
+ 500: '#8b5cf6',
243
+ 600: '#7c3aed',
244
+ 700: '#6d28d9',
245
+ 800: '#5b21b6',
246
+ 900: '#4c1d95',
247
+ 950: '#2e1065'
248
+ },
249
+ yellow: {
250
+ 50: '#fefce8',
251
+ 100: '#fef9c3',
252
+ 200: '#fef08a',
253
+ 300: '#fde047',
254
+ 400: '#facc15',
255
+ 500: '#eab308',
256
+ 600: '#ca8a04',
257
+ 700: '#a16207',
258
+ 800: '#854d0e',
259
+ 900: '#713f12',
260
+ 950: '#422006'
261
+ },
262
+ zinc: {
263
+ 50: '#fafafa',
264
+ 100: '#f4f4f5',
265
+ 200: '#e4e4e7',
266
+ 300: '#d4d4d8',
267
+ 400: '#a1a1aa',
268
+ 500: '#71717a',
269
+ 600: '#52525b',
270
+ 700: '#3f3f46',
271
+ 800: '#27272a',
272
+ 900: '#18181b',
273
+ 950: '#000000'
274
+ }
275
+ }
package/src/constants.js CHANGED
@@ -1,3 +1,5 @@
1
+ export { defaultColors, syntaxColors } from './colors'
2
+
1
3
  /**
2
4
  * @type {import('./types).FieldMapping} Fields
3
5
  */
@@ -29,7 +31,6 @@ export const defaultIcons = [
29
31
  'action-clear',
30
32
  'action-search',
31
33
  'action-close',
32
- 'action-close-filled',
33
34
  'node-opened',
34
35
  'node-closed',
35
36
  'selector-opened',
@@ -74,6 +75,18 @@ export const defaultKeyMap = {
74
75
  Escape: 'deselect'
75
76
  }
76
77
 
78
+ export const defaultThemeMapping = {
79
+ neutral: 'slate',
80
+ primary: 'orange',
81
+ secondary: 'pink',
82
+ accent: 'sky',
83
+ success: 'green',
84
+ warning: 'yellow',
85
+ error: 'red',
86
+ info: 'cyan',
87
+ pass: 'green'
88
+ }
89
+
77
90
  export function stateIconsFromNames(icons) {
78
91
  return icons
79
92
  .map((k) => [...k.split('-')])
package/src/utils.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { defaultThemeMapping, defaultColors, syntaxColors } from './constants'
2
+
1
3
  const modifiers = {
2
4
  hsl: (value) => `hsl(${value})`,
3
5
  rgb: (value) => `rgb(${value})`,
@@ -89,3 +91,48 @@ export function scaledPath(size, x) {
89
91
  if (Array.isArray(x)) return x.map((x) => scaledPath(size, x)).join(' ')
90
92
  return typeof x === 'number' ? x * size : x
91
93
  }
94
+
95
+ export function themeRules(name = 'rokkit', mapping = defaultThemeMapping, colors = defaultColors) {
96
+ const shades = ['50', 100, 200, 300, 400, 500, 600, 700, 800, 900, 950]
97
+ mapping = { ...defaultThemeMapping, ...mapping }
98
+ const variants = Object.keys(mapping)
99
+
100
+ const rules = variants
101
+ .flatMap((variant) => [
102
+ shades.map((shade) => ({
103
+ key: `--${variant}-${shade}`,
104
+ value: colors[mapping[variant]][shade],
105
+ mode: 'light'
106
+ })),
107
+ shades.map((shade, i) => ({
108
+ key: `--${variant}-${shade}`,
109
+ value: colors[mapping[variant]][shades[shades.length - i - 1]],
110
+ mode: 'dark'
111
+ }))
112
+ ])
113
+ .reduce((acc, item) => [...acc, ...item], [])
114
+
115
+ const light = rules
116
+ .filter((rule) => rule.mode === 'light')
117
+ .reduce((acc, item) => ({ ...acc, [item.key]: item.value }), {})
118
+ const dark = rules
119
+ .filter((rule) => rule.mode === 'dark')
120
+ .reduce((acc, item) => ({ ...acc, [item.key]: item.value }), {})
121
+
122
+ return [
123
+ [
124
+ `${name}-mode-light`,
125
+ {
126
+ ...light,
127
+ ...syntaxColors['one-dark'].light
128
+ }
129
+ ],
130
+ [
131
+ `${name}-mode-dark`,
132
+ {
133
+ ...dark,
134
+ ...syntaxColors['one-dark'].dark
135
+ }
136
+ ]
137
+ ]
138
+ }