@tanstack/devtools-ui 0.2.2

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.
Files changed (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/cjs/components/checkbox.cjs +55 -0
  4. package/dist/cjs/components/checkbox.cjs.map +1 -0
  5. package/dist/cjs/components/checkbox.d.cts +8 -0
  6. package/dist/cjs/components/input.cjs +57 -0
  7. package/dist/cjs/components/input.cjs.map +1 -0
  8. package/dist/cjs/components/input.d.cts +10 -0
  9. package/dist/cjs/components/logo.cjs +95 -0
  10. package/dist/cjs/components/logo.cjs.map +1 -0
  11. package/dist/cjs/components/logo.d.cts +1 -0
  12. package/dist/cjs/components/select.cjs +59 -0
  13. package/dist/cjs/components/select.cjs.map +1 -0
  14. package/dist/cjs/components/select.d.cts +13 -0
  15. package/dist/cjs/index.cjs +11 -0
  16. package/dist/cjs/index.cjs.map +1 -0
  17. package/dist/cjs/index.d.cts +4 -0
  18. package/dist/cjs/styles/tokens.cjs +35 -0
  19. package/dist/cjs/styles/tokens.cjs.map +1 -0
  20. package/dist/cjs/styles/tokens.d.cts +298 -0
  21. package/dist/cjs/styles/use-styles.cjs +212 -0
  22. package/dist/cjs/styles/use-styles.cjs.map +1 -0
  23. package/dist/cjs/styles/use-styles.d.cts +19 -0
  24. package/dist/esm/components/checkbox.d.ts +8 -0
  25. package/dist/esm/components/checkbox.js +55 -0
  26. package/dist/esm/components/checkbox.js.map +1 -0
  27. package/dist/esm/components/input.d.ts +10 -0
  28. package/dist/esm/components/input.js +57 -0
  29. package/dist/esm/components/input.js.map +1 -0
  30. package/dist/esm/components/logo.d.ts +1 -0
  31. package/dist/esm/components/logo.js +95 -0
  32. package/dist/esm/components/logo.js.map +1 -0
  33. package/dist/esm/components/select.d.ts +13 -0
  34. package/dist/esm/components/select.js +59 -0
  35. package/dist/esm/components/select.js.map +1 -0
  36. package/dist/esm/index.d.ts +4 -0
  37. package/dist/esm/index.js +11 -0
  38. package/dist/esm/index.js.map +1 -0
  39. package/dist/esm/styles/tokens.d.ts +298 -0
  40. package/dist/esm/styles/tokens.js +35 -0
  41. package/dist/esm/styles/tokens.js.map +1 -0
  42. package/dist/esm/styles/use-styles.d.ts +19 -0
  43. package/dist/esm/styles/use-styles.js +195 -0
  44. package/dist/esm/styles/use-styles.js.map +1 -0
  45. package/package.json +65 -0
  46. package/src/components/checkbox.tsx +43 -0
  47. package/src/components/input.tsx +42 -0
  48. package/src/components/logo.tsx +820 -0
  49. package/src/components/select.tsx +50 -0
  50. package/src/index.ts +4 -0
  51. package/src/styles/tokens.ts +305 -0
  52. package/src/styles/use-styles.ts +195 -0
@@ -0,0 +1,50 @@
1
+ import { createSignal } from 'solid-js'
2
+ import { useStyles } from '../styles/use-styles'
3
+
4
+ interface SelectOption<T extends string | number> {
5
+ value: T
6
+ label: string
7
+ }
8
+
9
+ interface SelectProps<T extends string | number> {
10
+ label?: string
11
+ options: Array<SelectOption<T>>
12
+ value?: T
13
+ onChange?: (value: T) => void
14
+ description?: string
15
+ }
16
+
17
+ export function Select<T extends string | number>(props: SelectProps<T>) {
18
+ const styles = useStyles()
19
+ const [selected, setSelected] = createSignal(
20
+ props.value || props.options[0]?.value,
21
+ )
22
+
23
+ const handleChange = (e: Event) => {
24
+ const value = (e.target as HTMLSelectElement).value as T
25
+ setSelected((prev) => (prev !== value ? value : prev))
26
+ props.onChange?.(value)
27
+ }
28
+
29
+ return (
30
+ <div class={styles().selectContainer}>
31
+ <div class={styles().selectWrapper}>
32
+ {props.label && (
33
+ <label class={styles().selectLabel}>{props.label}</label>
34
+ )}
35
+ {props.description && (
36
+ <p class={styles().selectDescription}>{props.description}</p>
37
+ )}
38
+ <select
39
+ class={styles().select}
40
+ value={selected()}
41
+ onInput={handleChange}
42
+ >
43
+ {props.options.map((opt) => (
44
+ <option value={opt.value}>{opt.label}</option>
45
+ ))}
46
+ </select>
47
+ </div>
48
+ </div>
49
+ )
50
+ }
package/src/index.ts ADDED
@@ -0,0 +1,4 @@
1
+ export { Checkbox } from './components/checkbox'
2
+ export { Input } from './components/input'
3
+ export { Select } from './components/select'
4
+ export { TanStackLogo } from './components/logo'
@@ -0,0 +1,305 @@
1
+ export const tokens = {
2
+ colors: {
3
+ inherit: 'inherit',
4
+ current: 'currentColor',
5
+ transparent: 'transparent',
6
+ black: '#000000',
7
+ white: '#ffffff',
8
+ neutral: {
9
+ 50: '#f9fafb',
10
+ 100: '#f2f4f7',
11
+ 200: '#eaecf0',
12
+ 300: '#d0d5dd',
13
+ 400: '#98a2b3',
14
+ 500: '#667085',
15
+ 600: '#475467',
16
+ 700: '#344054',
17
+ 800: '#1d2939',
18
+ 900: '#101828',
19
+ },
20
+ darkGray: {
21
+ 50: '#525c7a',
22
+ 100: '#49536e',
23
+ 200: '#414962',
24
+ 300: '#394056',
25
+ 400: '#313749',
26
+ 500: '#292e3d',
27
+ 600: '#212530',
28
+ 700: '#191c24',
29
+ 800: '#111318',
30
+ 900: '#0b0d10',
31
+ },
32
+ gray: {
33
+ 50: '#f9fafb',
34
+ 100: '#f2f4f7',
35
+ 200: '#eaecf0',
36
+ 300: '#d0d5dd',
37
+ 400: '#98a2b3',
38
+ 500: '#667085',
39
+ 600: '#475467',
40
+ 700: '#344054',
41
+ 800: '#1d2939',
42
+ 900: '#101828',
43
+ },
44
+ blue: {
45
+ 25: '#F5FAFF',
46
+ 50: '#EFF8FF',
47
+ 100: '#D1E9FF',
48
+ 200: '#B2DDFF',
49
+ 300: '#84CAFF',
50
+ 400: '#53B1FD',
51
+ 500: '#2E90FA',
52
+ 600: '#1570EF',
53
+ 700: '#175CD3',
54
+ 800: '#1849A9',
55
+ 900: '#194185',
56
+ },
57
+ green: {
58
+ 25: '#F6FEF9',
59
+ 50: '#ECFDF3',
60
+ 100: '#D1FADF',
61
+ 200: '#A6F4C5',
62
+ 300: '#6CE9A6',
63
+ 400: '#32D583',
64
+ 500: '#12B76A',
65
+ 600: '#039855',
66
+ 700: '#027A48',
67
+ 800: '#05603A',
68
+ 900: '#054F31',
69
+ },
70
+ red: {
71
+ 50: '#fef2f2',
72
+ 100: '#fee2e2',
73
+ 200: '#fecaca',
74
+ 300: '#fca5a5',
75
+ 400: '#f87171',
76
+ 500: '#ef4444',
77
+ 600: '#dc2626',
78
+ 700: '#b91c1c',
79
+ 800: '#991b1b',
80
+ 900: '#7f1d1d',
81
+ 950: '#450a0a',
82
+ },
83
+ yellow: {
84
+ 25: '#FFFCF5',
85
+ 50: '#FFFAEB',
86
+ 100: '#FEF0C7',
87
+ 200: '#FEDF89',
88
+ 300: '#FEC84B',
89
+ 400: '#FDB022',
90
+ 500: '#F79009',
91
+ 600: '#DC6803',
92
+ 700: '#B54708',
93
+ 800: '#93370D',
94
+ 900: '#7A2E0E',
95
+ },
96
+ purple: {
97
+ 25: '#FAFAFF',
98
+ 50: '#F4F3FF',
99
+ 100: '#EBE9FE',
100
+ 200: '#D9D6FE',
101
+ 300: '#BDB4FE',
102
+ 400: '#9B8AFB',
103
+ 500: '#7A5AF8',
104
+ 600: '#6938EF',
105
+ 700: '#5925DC',
106
+ 800: '#4A1FB8',
107
+ 900: '#3E1C96',
108
+ },
109
+ teal: {
110
+ 25: '#F6FEFC',
111
+ 50: '#F0FDF9',
112
+ 100: '#CCFBEF',
113
+ 200: '#99F6E0',
114
+ 300: '#5FE9D0',
115
+ 400: '#2ED3B7',
116
+ 500: '#15B79E',
117
+ 600: '#0E9384',
118
+ 700: '#107569',
119
+ 800: '#125D56',
120
+ 900: '#134E48',
121
+ },
122
+ pink: {
123
+ 25: '#fdf2f8',
124
+ 50: '#fce7f3',
125
+ 100: '#fbcfe8',
126
+ 200: '#f9a8d4',
127
+ 300: '#f472b6',
128
+ 400: '#ec4899',
129
+ 500: '#db2777',
130
+ 600: '#be185d',
131
+ 700: '#9d174d',
132
+ 800: '#831843',
133
+ 900: '#500724',
134
+ },
135
+ cyan: {
136
+ 25: '#ecfeff',
137
+ 50: '#cffafe',
138
+ 100: '#a5f3fc',
139
+ 200: '#67e8f9',
140
+ 300: '#22d3ee',
141
+ 400: '#06b6d4',
142
+ 500: '#0891b2',
143
+ 600: '#0e7490',
144
+ 700: '#155e75',
145
+ 800: '#164e63',
146
+ 900: '#083344',
147
+ },
148
+ },
149
+ alpha: {
150
+ 100: 'ff',
151
+ 90: 'e5',
152
+ 80: 'cc',
153
+ 70: 'b3',
154
+ 60: '99',
155
+ 50: '80',
156
+ 40: '66',
157
+ 30: '4d',
158
+ 20: '33',
159
+ 10: '1a',
160
+ 0: '00',
161
+ },
162
+ font: {
163
+ size: {
164
+ '2xs': 'calc(var(--tsrd-font-size) * 0.625)',
165
+ xs: 'calc(var(--tsrd-font-size) * 0.75)',
166
+ sm: 'calc(var(--tsrd-font-size) * 0.875)',
167
+ md: 'var(--tsrd-font-size)',
168
+ lg: 'calc(var(--tsrd-font-size) * 1.125)',
169
+ xl: 'calc(var(--tsrd-font-size) * 1.25)',
170
+ '2xl': 'calc(var(--tsrd-font-size) * 1.5)',
171
+ '3xl': 'calc(var(--tsrd-font-size) * 1.875)',
172
+ '4xl': 'calc(var(--tsrd-font-size) * 2.25)',
173
+ '5xl': 'calc(var(--tsrd-font-size) * 3)',
174
+ '6xl': 'calc(var(--tsrd-font-size) * 3.75)',
175
+ '7xl': 'calc(var(--tsrd-font-size) * 4.5)',
176
+ '8xl': 'calc(var(--tsrd-font-size) * 6)',
177
+ '9xl': 'calc(var(--tsrd-font-size) * 8)',
178
+ },
179
+ lineHeight: {
180
+ '3xs': 'calc(var(--tsrd-font-size) * 0.75)',
181
+ '2xs': 'calc(var(--tsrd-font-size) * 0.875)',
182
+ xs: 'calc(var(--tsrd-font-size) * 1)',
183
+ sm: 'calc(var(--tsrd-font-size) * 1.25)',
184
+ md: 'calc(var(--tsrd-font-size) * 1.5)',
185
+ lg: 'calc(var(--tsrd-font-size) * 1.75)',
186
+ xl: 'calc(var(--tsrd-font-size) * 2)',
187
+ '2xl': 'calc(var(--tsrd-font-size) * 2.25)',
188
+ '3xl': 'calc(var(--tsrd-font-size) * 2.5)',
189
+ '4xl': 'calc(var(--tsrd-font-size) * 2.75)',
190
+ '5xl': 'calc(var(--tsrd-font-size) * 3)',
191
+ '6xl': 'calc(var(--tsrd-font-size) * 3.25)',
192
+ '7xl': 'calc(var(--tsrd-font-size) * 3.5)',
193
+ '8xl': 'calc(var(--tsrd-font-size) * 3.75)',
194
+ '9xl': 'calc(var(--tsrd-font-size) * 4)',
195
+ },
196
+ weight: {
197
+ thin: '100',
198
+ extralight: '200',
199
+ light: '300',
200
+ normal: '400',
201
+ medium: '500',
202
+ semibold: '600',
203
+ bold: '700',
204
+ extrabold: '800',
205
+ black: '900',
206
+ },
207
+ fontFamily: {
208
+ sans: 'ui-sans-serif, Inter, system-ui, sans-serif, sans-serif',
209
+ mono: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`,
210
+ },
211
+ },
212
+ breakpoints: {
213
+ xs: '320px',
214
+ sm: '640px',
215
+ md: '768px',
216
+ lg: '1024px',
217
+ xl: '1280px',
218
+ '2xl': '1536px',
219
+ },
220
+ border: {
221
+ radius: {
222
+ none: '0px',
223
+ xs: 'calc(var(--tsrd-font-size) * 0.125)',
224
+ sm: 'calc(var(--tsrd-font-size) * 0.25)',
225
+ md: 'calc(var(--tsrd-font-size) * 0.375)',
226
+ lg: 'calc(var(--tsrd-font-size) * 0.5)',
227
+ xl: 'calc(var(--tsrd-font-size) * 0.75)',
228
+ '2xl': 'calc(var(--tsrd-font-size) * 1)',
229
+ '3xl': 'calc(var(--tsrd-font-size) * 1.5)',
230
+ full: '9999px',
231
+ },
232
+ },
233
+ size: {
234
+ 0: '0px',
235
+ 0.25: 'calc(var(--tsrd-font-size) * 0.0625)',
236
+ 0.5: 'calc(var(--tsrd-font-size) * 0.125)',
237
+ 1: 'calc(var(--tsrd-font-size) * 0.25)',
238
+ 1.5: 'calc(var(--tsrd-font-size) * 0.375)',
239
+ 2: 'calc(var(--tsrd-font-size) * 0.5)',
240
+ 2.5: 'calc(var(--tsrd-font-size) * 0.625)',
241
+ 3: 'calc(var(--tsrd-font-size) * 0.75)',
242
+ 3.5: 'calc(var(--tsrd-font-size) * 0.875)',
243
+ 4: 'calc(var(--tsrd-font-size) * 1)',
244
+ 4.5: 'calc(var(--tsrd-font-size) * 1.125)',
245
+ 5: 'calc(var(--tsrd-font-size) * 1.25)',
246
+ 5.5: 'calc(var(--tsrd-font-size) * 1.375)',
247
+ 6: 'calc(var(--tsrd-font-size) * 1.5)',
248
+ 6.5: 'calc(var(--tsrd-font-size) * 1.625)',
249
+ 7: 'calc(var(--tsrd-font-size) * 1.75)',
250
+ 8: 'calc(var(--tsrd-font-size) * 2)',
251
+ 9: 'calc(var(--tsrd-font-size) * 2.25)',
252
+ 10: 'calc(var(--tsrd-font-size) * 2.5)',
253
+ 11: 'calc(var(--tsrd-font-size) * 2.75)',
254
+ 12: 'calc(var(--tsrd-font-size) * 3)',
255
+ 14: 'calc(var(--tsrd-font-size) * 3.5)',
256
+ 16: 'calc(var(--tsrd-font-size) * 4)',
257
+ 20: 'calc(var(--tsrd-font-size) * 5)',
258
+ 24: 'calc(var(--tsrd-font-size) * 6)',
259
+ 28: 'calc(var(--tsrd-font-size) * 7)',
260
+ 32: 'calc(var(--tsrd-font-size) * 8)',
261
+ 36: 'calc(var(--tsrd-font-size) * 9)',
262
+ 40: 'calc(var(--tsrd-font-size) * 10)',
263
+ 44: 'calc(var(--tsrd-font-size) * 11)',
264
+ 48: 'calc(var(--tsrd-font-size) * 12)',
265
+ 52: 'calc(var(--tsrd-font-size) * 13)',
266
+ 56: 'calc(var(--tsrd-font-size) * 14)',
267
+ 60: 'calc(var(--tsrd-font-size) * 15)',
268
+ 64: 'calc(var(--tsrd-font-size) * 16)',
269
+ 72: 'calc(var(--tsrd-font-size) * 18)',
270
+ 80: 'calc(var(--tsrd-font-size) * 20)',
271
+ 96: 'calc(var(--tsrd-font-size) * 24)',
272
+ },
273
+ shadow: {
274
+ xs: (_: string = 'rgb(0 0 0 / 0.1)') =>
275
+ `0 1px 2px 0 rgb(0 0 0 / 0.05)` as const,
276
+ sm: (color: string = 'rgb(0 0 0 / 0.1)') =>
277
+ `0 1px 3px 0 ${color}, 0 1px 2px -1px ${color}` as const,
278
+ md: (color: string = 'rgb(0 0 0 / 0.1)') =>
279
+ `0 4px 6px -1px ${color}, 0 2px 4px -2px ${color}` as const,
280
+ lg: (color: string = 'rgb(0 0 0 / 0.1)') =>
281
+ `0 10px 15px -3px ${color}, 0 4px 6px -4px ${color}` as const,
282
+ xl: (color: string = 'rgb(0 0 0 / 0.1)') =>
283
+ `0 20px 25px -5px ${color}, 0 8px 10px -6px ${color}` as const,
284
+ '2xl': (color: string = 'rgb(0 0 0 / 0.25)') =>
285
+ `0 25px 50px -12px ${color}` as const,
286
+ inner: (color: string = 'rgb(0 0 0 / 0.05)') =>
287
+ `inset 0 2px 4px 0 ${color}` as const,
288
+ none: () => `none` as const,
289
+ },
290
+ zIndices: {
291
+ hide: -1,
292
+ auto: 'auto',
293
+ base: 0,
294
+ docked: 10,
295
+ dropdown: 1000,
296
+ sticky: 1100,
297
+ banner: 1200,
298
+ overlay: 1300,
299
+ modal: 1400,
300
+ popover: 1500,
301
+ skipLink: 1600,
302
+ toast: 1700,
303
+ tooltip: 1800,
304
+ },
305
+ } as const
@@ -0,0 +1,195 @@
1
+ import * as goober from 'goober'
2
+ import { createSignal } from 'solid-js'
3
+ import { tokens } from './tokens'
4
+
5
+ const stylesFactory = () => {
6
+ const { colors, font, size, alpha } = tokens
7
+ const { fontFamily } = font
8
+ const css = goober.css
9
+
10
+ return {
11
+ logo: css`
12
+ cursor: pointer;
13
+ display: flex;
14
+ flex-direction: column;
15
+ background-color: transparent;
16
+ border: none;
17
+ width: ${size[12]};
18
+ height: ${size[12]};
19
+ font-family: ${fontFamily.sans};
20
+ gap: ${tokens.size[0.5]};
21
+ padding: 0px;
22
+ &:hover {
23
+ opacity: 0.7;
24
+ }
25
+ `,
26
+
27
+ selectWrapper: css`
28
+ width: 100%;
29
+ max-width: 300px;
30
+ display: flex;
31
+ flex-direction: column;
32
+ gap: 0.375rem;
33
+ `,
34
+ selectContainer: css`
35
+ width: 100%;
36
+ `,
37
+ selectLabel: css`
38
+ font-size: 0.875rem;
39
+ font-weight: 500;
40
+ color: ${colors.gray[100]};
41
+ `,
42
+ selectDescription: css`
43
+ font-size: 0.8rem;
44
+ color: ${colors.gray[400]};
45
+ margin: 0;
46
+ line-height: 1.3;
47
+ `,
48
+ select: css`
49
+ appearance: none;
50
+ width: 100%;
51
+ padding: 0.75rem 3rem 0.75rem 0.75rem;
52
+ border-radius: 0.5rem;
53
+ background-color: ${colors.darkGray[800]};
54
+ color: ${colors.gray[100]};
55
+ border: 1px solid ${colors.gray[700]};
56
+ font-size: 0.875rem;
57
+ transition: all 0.2s ease;
58
+ cursor: pointer;
59
+
60
+ /* Custom arrow */
61
+ background-image: url("data:image/svg+xml;utf8,<svg fill='%236b7280' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>");
62
+ background-repeat: no-repeat;
63
+ background-position: right 0.75rem center;
64
+ background-size: 1.25rem;
65
+
66
+ &:hover {
67
+ border-color: ${colors.gray[600]};
68
+ }
69
+
70
+ &:focus {
71
+ outline: none;
72
+ border-color: ${colors.purple[400]};
73
+ box-shadow: 0 0 0 3px ${colors.purple[400]}${alpha[20]};
74
+ }
75
+ `,
76
+ inputWrapper: css`
77
+ width: 100%;
78
+ max-width: 300px;
79
+ display: flex;
80
+ flex-direction: column;
81
+ gap: 0.375rem;
82
+ `,
83
+ inputContainer: css`
84
+ width: 100%;
85
+ `,
86
+ inputLabel: css`
87
+ font-size: 0.875rem;
88
+ font-weight: 500;
89
+ color: ${colors.gray[100]};
90
+ `,
91
+ inputDescription: css`
92
+ font-size: 0.8rem;
93
+ color: ${colors.gray[400]};
94
+ margin: 0;
95
+ line-height: 1.3;
96
+ `,
97
+ input: css`
98
+ appearance: none;
99
+ width: 100%;
100
+ padding: 0.75rem;
101
+ border-radius: 0.5rem;
102
+ background-color: ${colors.darkGray[800]};
103
+ color: ${colors.gray[100]};
104
+ border: 1px solid ${colors.gray[700]};
105
+ font-size: 0.875rem;
106
+ font-family: ${fontFamily.mono};
107
+ transition: all 0.2s ease;
108
+
109
+ &::placeholder {
110
+ color: ${colors.gray[500]};
111
+ }
112
+
113
+ &:hover {
114
+ border-color: ${colors.gray[600]};
115
+ }
116
+
117
+ &:focus {
118
+ outline: none;
119
+ border-color: ${colors.purple[400]};
120
+ box-shadow: 0 0 0 3px ${colors.purple[400]}${alpha[20]};
121
+ }
122
+ `,
123
+ checkboxWrapper: css`
124
+ display: flex;
125
+ align-items: flex-start;
126
+ gap: 0.75rem;
127
+ cursor: pointer;
128
+ user-select: none;
129
+ padding: 0.5rem;
130
+ border-radius: 0.5rem;
131
+ transition: background-color 0.2s ease;
132
+
133
+ &:hover {
134
+ background-color: ${colors.darkGray[800]};
135
+ }
136
+ `,
137
+ checkboxContainer: css`
138
+ width: 100%;
139
+ `,
140
+ checkboxLabelContainer: css`
141
+ display: flex;
142
+ flex-direction: column;
143
+ gap: 0.25rem;
144
+ flex: 1;
145
+ `,
146
+ checkbox: css`
147
+ appearance: none;
148
+ width: 1.25rem;
149
+ height: 1.25rem;
150
+ border: 2px solid ${colors.gray[700]};
151
+ border-radius: 0.375rem;
152
+ background-color: ${colors.darkGray[800]};
153
+ display: grid;
154
+ place-items: center;
155
+ transition: all 0.2s ease;
156
+ flex-shrink: 0;
157
+ margin-top: 0.125rem;
158
+
159
+ &:hover {
160
+ border-color: ${colors.purple[400]};
161
+ }
162
+
163
+ &:checked {
164
+ background-color: ${colors.purple[500]};
165
+ border-color: ${colors.purple[500]};
166
+ }
167
+
168
+ &:checked::after {
169
+ content: '';
170
+ width: 0.4rem;
171
+ height: 0.6rem;
172
+ border: solid white;
173
+ border-width: 0 2px 2px 0;
174
+ transform: rotate(45deg);
175
+ margin-top: -3px;
176
+ }
177
+ `,
178
+ checkboxLabel: css`
179
+ color: ${colors.gray[100]};
180
+ font-size: 0.875rem;
181
+ font-weight: 500;
182
+ line-height: 1.4;
183
+ `,
184
+ checkboxDescription: css`
185
+ color: ${colors.gray[400]};
186
+ font-size: 0.8rem;
187
+ line-height: 1.3;
188
+ `,
189
+ }
190
+ }
191
+
192
+ export function useStyles() {
193
+ const [_styles] = createSignal(stylesFactory())
194
+ return _styles
195
+ }