@x33025/sveltely 0.1.2 → 0.1.3
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/dist/components/Library/AnimatedNumber/AnimatedNumber.demo.svelte +1 -1
- package/dist/components/Library/AsyncButton/AsyncButton.svelte +42 -16
- package/dist/components/Library/Button/Button.svelte +21 -13
- package/dist/components/Library/Calendar/Calendar.svelte +16 -16
- package/dist/components/Library/Checkbox/Checkbox.svelte +13 -14
- package/dist/components/Library/ChipInput/ChipInput.demo.svelte +1 -1
- package/dist/components/Library/ChipInput/ChipInput.svelte +7 -4
- package/dist/components/Library/Dropdown/Action.svelte +60 -0
- package/dist/components/Library/Dropdown/Action.svelte.d.ts +11 -0
- package/dist/components/Library/Dropdown/Divider.svelte +5 -0
- package/dist/components/Library/Dropdown/Divider.svelte.d.ts +19 -0
- package/dist/components/Library/Dropdown/Dropdown.demo.svelte +182 -72
- package/dist/components/Library/Dropdown/Dropdown.demo.svelte.d.ts +2 -1
- package/dist/components/Library/Dropdown/Dropdown.svelte +78 -267
- package/dist/components/Library/Dropdown/Dropdown.svelte.d.ts +17 -16
- package/dist/components/Library/Dropdown/Item.svelte +68 -0
- package/dist/components/Library/Dropdown/Item.svelte.d.ts +31 -0
- package/dist/components/Library/Dropdown/Section.svelte +34 -0
- package/dist/components/Library/Dropdown/Section.svelte.d.ts +8 -0
- package/dist/components/Library/Dropdown/context.d.ts +34 -0
- package/dist/components/Library/Dropdown/context.js +6 -0
- package/dist/components/Library/Dropdown/index.d.ts +13 -2
- package/dist/components/Library/Dropdown/index.js +11 -1
- package/dist/components/Library/Floating/Floating.svelte +10 -7
- package/dist/components/Library/ImageMask/BrushPreview.svelte +6 -6
- package/dist/components/Library/ImageMask/ImageMask.demo.svelte +7 -7
- package/dist/components/Library/ImageMask/MaskLayer.svelte +3 -3
- package/dist/components/Library/Label/Label.svelte +2 -4
- package/dist/components/Library/NavigationStack/NavigationStack.svelte +17 -7
- package/dist/components/Library/NavigationStack/Toolbar.svelte +7 -2
- package/dist/components/Library/NumberField/NumberField.svelte +14 -9
- package/dist/components/Library/Pagination/Pagination.svelte +16 -20
- package/dist/components/Library/Popover/Popover.demo.svelte +2 -2
- package/dist/components/Library/Popover/Popover.svelte +7 -4
- package/dist/components/Library/ScrollView/ScrollView.svelte +140 -3
- package/dist/components/Library/ScrollView/ScrollView.svelte.d.ts +28 -0
- package/dist/components/Library/ScrollView/index.d.ts +1 -0
- package/dist/components/Library/{SearchInput/SearchInput.demo.svelte → SearchField/SearchField.demo.svelte} +4 -4
- package/dist/components/Library/SearchField/SearchField.demo.svelte.d.ts +8 -0
- package/dist/components/Library/{SearchInput/SearchInput.svelte → SearchField/SearchField.svelte} +26 -30
- package/dist/components/Library/{SearchInput/SearchInput.svelte.d.ts → SearchField/SearchField.svelte.d.ts} +3 -3
- package/dist/components/Library/SearchField/index.d.ts +1 -0
- package/dist/components/Library/SearchField/index.js +1 -0
- package/dist/components/Library/SegmentedPicker/SegmentedPicker.demo.svelte +1 -1
- package/dist/components/Library/SegmentedPicker/SegmentedPicker.svelte +9 -9
- package/dist/components/Library/Sheet/Sheet.demo.svelte +1 -1
- package/dist/components/Library/Sheet/Sheet.svelte +8 -5
- package/dist/components/Library/Slider/Slider.demo.svelte +1 -1
- package/dist/components/Library/Slider/Slider.svelte +11 -10
- package/dist/components/Library/Spinner/Spinner.demo.svelte +1 -1
- package/dist/components/Library/Switch/Switch.svelte +6 -11
- package/dist/components/Library/TextField/TextField.svelte +14 -9
- package/dist/components/Library/{TokenSearchInput/TokenSearchInput.demo.svelte → TokenSearchField/TokenSearchField.demo.svelte} +4 -4
- package/dist/components/Library/TokenSearchField/TokenSearchField.demo.svelte.d.ts +9 -0
- package/dist/components/Library/{TokenSearchInput/TokenSearchInput.svelte → TokenSearchField/TokenSearchField.svelte} +70 -66
- package/dist/components/Library/{TokenSearchInput/TokenSearchInput.svelte.d.ts → TokenSearchField/TokenSearchField.svelte.d.ts} +3 -3
- package/dist/components/Library/TokenSearchField/index.d.ts +1 -0
- package/dist/components/Library/TokenSearchField/index.js +1 -0
- package/dist/components/Library/WheelPicker/WheelColumn.svelte +4 -10
- package/dist/components/Library/WheelPicker/WheelPicker.svelte +5 -9
- package/dist/components/Local/HeroCard.svelte +5 -3
- package/dist/components/Local/StyleControls.svelte +58 -27
- package/dist/components/Local/StyleControls.svelte.d.ts +3 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -2
- package/dist/style/index.css +9 -5
- package/dist/style.css +60 -29
- package/package.json +1 -1
- package/dist/components/Library/Dropdown/types.d.ts +0 -30
- package/dist/components/Library/Dropdown/types.js +0 -1
- package/dist/components/Library/SearchInput/SearchInput.demo.svelte.d.ts +0 -8
- package/dist/components/Library/SearchInput/index.d.ts +0 -1
- package/dist/components/Library/SearchInput/index.js +0 -1
- package/dist/components/Library/TokenSearchInput/TokenSearchInput.demo.svelte.d.ts +0 -9
- package/dist/components/Library/TokenSearchInput/index.d.ts +0 -1
- package/dist/components/Library/TokenSearchInput/index.js +0 -1
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
tokenPlaceholder?: string;
|
|
12
12
|
normalizeToken?: (value: string) => string;
|
|
13
13
|
showIcon?: boolean;
|
|
14
|
-
} & StyleProps &
|
|
14
|
+
} & StyleProps &
|
|
15
|
+
Omit<HTMLInputAttributes, 'children' | 'type' | 'value' | 'placeholder' | 'class' | 'style'>;
|
|
15
16
|
|
|
16
17
|
const defaultNormalizeToken = (value: string) => value.trim().replace(/\s+/g, ' ');
|
|
17
18
|
|
|
@@ -30,7 +31,7 @@
|
|
|
30
31
|
const extractedStyleProps = $derived.by(() => extractStyleProps(restProps));
|
|
31
32
|
const styleProps = $derived(extractedStyleProps.styleProps);
|
|
32
33
|
const props = $derived(extractedStyleProps.restProps);
|
|
33
|
-
const rootStyle = $derived.by(() => surfaceStyle(styleProps, 'token-search-
|
|
34
|
+
const rootStyle = $derived.by(() => surfaceStyle(styleProps, 'token-search-field'));
|
|
34
35
|
|
|
35
36
|
const addToken = (rawValue: string) => {
|
|
36
37
|
const token = normalizeToken(rawValue);
|
|
@@ -68,12 +69,10 @@
|
|
|
68
69
|
event.preventDefault();
|
|
69
70
|
|
|
70
71
|
const nextTokens = [...tokens];
|
|
71
|
-
const seen = new Set(nextTokens);
|
|
72
72
|
for (const part of pasted.split(',')) {
|
|
73
73
|
const token = normalizeToken(part);
|
|
74
|
-
if (!token ||
|
|
74
|
+
if (!token || nextTokens.includes(token)) continue;
|
|
75
75
|
nextTokens.push(token);
|
|
76
|
-
seen.add(token);
|
|
77
76
|
}
|
|
78
77
|
|
|
79
78
|
tokens = nextTokens;
|
|
@@ -81,28 +80,28 @@
|
|
|
81
80
|
};
|
|
82
81
|
</script>
|
|
83
82
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
83
|
+
<div
|
|
84
|
+
class="token-search-field hstack w-full flex-nowrap items-center overflow-x-auto overflow-y-hidden whitespace-nowrap"
|
|
85
|
+
class:token-search-field-has-tokens={tokens.length > 0}
|
|
86
|
+
style={rootStyle}
|
|
87
|
+
data-disabled={disabled ? 'true' : 'false'}
|
|
88
|
+
>
|
|
90
89
|
{#if showIcon}
|
|
91
|
-
<span class="token-search-
|
|
92
|
-
<SearchIcon class="token-search-
|
|
90
|
+
<span class="token-search-field-icon" aria-hidden="true">
|
|
91
|
+
<SearchIcon class="token-search-field-search-icon" />
|
|
93
92
|
</span>
|
|
94
93
|
{/if}
|
|
95
94
|
|
|
96
95
|
{#each tokens as token, index (`${token}-${index}`)}
|
|
97
96
|
<button
|
|
98
97
|
type="button"
|
|
99
|
-
class="token-search-
|
|
98
|
+
class="token-search-field-token"
|
|
100
99
|
onclick={() => removeToken(index)}
|
|
101
100
|
aria-label={`Remove search token ${token}`}
|
|
102
101
|
{disabled}
|
|
103
102
|
>
|
|
104
103
|
<span>{token}</span>
|
|
105
|
-
<X class="token-search-
|
|
104
|
+
<X class="token-search-field-remove-icon" aria-hidden="true" />
|
|
106
105
|
</button>
|
|
107
106
|
{/each}
|
|
108
107
|
|
|
@@ -111,7 +110,7 @@
|
|
|
111
110
|
bind:value
|
|
112
111
|
{disabled}
|
|
113
112
|
placeholder={tokens.length === 0 ? placeholder : tokenPlaceholder}
|
|
114
|
-
class="token-search-input
|
|
113
|
+
class="token-search-field-input"
|
|
115
114
|
onkeydown={onKeydown}
|
|
116
115
|
onpaste={onPaste}
|
|
117
116
|
onblur={commitValue}
|
|
@@ -119,60 +118,63 @@
|
|
|
119
118
|
/>
|
|
120
119
|
|
|
121
120
|
{#if confirmText}
|
|
122
|
-
<span class="token-search-
|
|
121
|
+
<span class="token-search-field-confirm">
|
|
123
122
|
{confirmText}
|
|
124
123
|
</span>
|
|
125
124
|
{/if}
|
|
126
125
|
</div>
|
|
127
126
|
|
|
128
127
|
<style>
|
|
129
|
-
.token-search-
|
|
130
|
-
--token-search-
|
|
131
|
-
--token-search-
|
|
132
|
-
--token-search-
|
|
133
|
-
--token-search-
|
|
134
|
-
--token-search-
|
|
135
|
-
--token-search-
|
|
136
|
-
--token-search-
|
|
137
|
-
--sveltely-nested-inset: var(--token-search-
|
|
128
|
+
.token-search-field {
|
|
129
|
+
--token-search-field-inset: var(--sveltely-inset);
|
|
130
|
+
--token-search-field-font-size: calc(var(--sveltely-font-size) * 0.875);
|
|
131
|
+
--token-search-field-scale: calc(var(--token-search-field-font-size) / 0.875rem);
|
|
132
|
+
--token-search-field-line-height: calc(var(--token-search-field-font-size) * 1.429);
|
|
133
|
+
--token-search-field-search-icon-size: calc(var(--token-search-field-font-size) * 1.143);
|
|
134
|
+
--token-search-field-remove-icon-size: calc(var(--token-search-field-font-size) * 0.857);
|
|
135
|
+
--token-search-field-confirm-font-size: calc(var(--token-search-field-font-size) * 0.857);
|
|
136
|
+
--sveltely-nested-inset: var(--token-search-field-inset);
|
|
138
137
|
min-width: 0;
|
|
139
138
|
border: 1px solid var(--sveltely-border-color);
|
|
140
139
|
border-radius: var(--sveltely-border-radius);
|
|
141
|
-
color: var(--
|
|
142
|
-
gap: var(--token-search-
|
|
143
|
-
padding:
|
|
144
|
-
calc(var(--sveltely-padding-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
line-height: var(--token-search-input-line-height);
|
|
140
|
+
color: var(--sveltely-primary-color);
|
|
141
|
+
gap: var(--token-search-field-inset);
|
|
142
|
+
padding: calc(var(--sveltely-padding-y) * 0.58 * var(--token-search-field-scale))
|
|
143
|
+
calc(var(--sveltely-padding-x) * var(--token-search-field-scale));
|
|
144
|
+
font-size: var(--token-search-field-font-size);
|
|
145
|
+
line-height: var(--token-search-field-line-height);
|
|
148
146
|
outline: none;
|
|
149
|
-
transition:
|
|
147
|
+
transition:
|
|
148
|
+
color 150ms,
|
|
149
|
+
border-color 150ms,
|
|
150
|
+
background-color 150ms,
|
|
151
|
+
box-shadow 150ms;
|
|
150
152
|
}
|
|
151
153
|
|
|
152
|
-
.token-search-
|
|
153
|
-
border-color: color-mix(in oklab, var(--sveltely-
|
|
154
|
+
.token-search-field:focus-within {
|
|
155
|
+
border-color: color-mix(in oklab, var(--sveltely-active-color) 50%, white);
|
|
154
156
|
}
|
|
155
157
|
|
|
156
|
-
.token-search-
|
|
157
|
-
padding: var(--token-search-
|
|
158
|
+
.token-search-field-has-tokens {
|
|
159
|
+
padding: var(--token-search-field-inset);
|
|
158
160
|
}
|
|
159
161
|
|
|
160
|
-
.token-search-
|
|
162
|
+
.token-search-field[data-disabled='true'] {
|
|
161
163
|
cursor: not-allowed;
|
|
162
164
|
opacity: 0.6;
|
|
163
165
|
}
|
|
164
166
|
|
|
165
|
-
.token-search-
|
|
167
|
+
.token-search-field-icon {
|
|
166
168
|
flex-shrink: 0;
|
|
167
|
-
color: var(--
|
|
169
|
+
color: var(--sveltely-secondary-color);
|
|
168
170
|
}
|
|
169
171
|
|
|
170
|
-
:global(.token-search-
|
|
171
|
-
width: var(--token-search-
|
|
172
|
-
height: var(--token-search-
|
|
172
|
+
:global(.token-search-field-search-icon) {
|
|
173
|
+
width: var(--token-search-field-search-icon-size);
|
|
174
|
+
height: var(--token-search-field-search-icon-size);
|
|
173
175
|
}
|
|
174
176
|
|
|
175
|
-
.token-search-input
|
|
177
|
+
.token-search-field-input {
|
|
176
178
|
field-sizing: content;
|
|
177
179
|
min-width: 0;
|
|
178
180
|
flex: 1 1 auto;
|
|
@@ -180,50 +182,52 @@
|
|
|
180
182
|
outline: none;
|
|
181
183
|
}
|
|
182
184
|
|
|
183
|
-
.token-search-input
|
|
185
|
+
.token-search-field-input::-webkit-search-cancel-button {
|
|
184
186
|
appearance: none;
|
|
185
187
|
}
|
|
186
188
|
|
|
187
|
-
.token-search-
|
|
189
|
+
.token-search-field-token {
|
|
188
190
|
display: inline-flex;
|
|
189
191
|
flex-shrink: 0;
|
|
190
192
|
align-items: center;
|
|
191
193
|
border: 1px solid var(--sveltely-border-color);
|
|
192
194
|
border-radius: var(--sveltely-border-radius-nested);
|
|
193
|
-
background: var(--
|
|
194
|
-
color: var(--
|
|
195
|
+
background: var(--sveltely-inactive-color);
|
|
196
|
+
color: var(--sveltely-primary-color);
|
|
195
197
|
font-size: inherit;
|
|
196
198
|
line-height: inherit;
|
|
197
|
-
gap: calc(var(--sveltely-padding-x) * 0.66 * var(--token-search-
|
|
198
|
-
padding:
|
|
199
|
-
calc(var(--sveltely-padding-y) * 0.
|
|
200
|
-
calc(var(--sveltely-padding-y) * 0.
|
|
201
|
-
calc(var(--sveltely-padding-
|
|
202
|
-
|
|
203
|
-
|
|
199
|
+
gap: calc(var(--sveltely-padding-x) * 0.66 * var(--token-search-field-scale));
|
|
200
|
+
padding: calc(var(--sveltely-padding-y) * 0.17 * var(--token-search-field-scale))
|
|
201
|
+
calc(var(--sveltely-padding-y) * 0.33 * var(--token-search-field-scale))
|
|
202
|
+
calc(var(--sveltely-padding-y) * 0.17 * var(--token-search-field-scale))
|
|
203
|
+
calc(var(--sveltely-padding-x) * 0.66 * var(--token-search-field-scale));
|
|
204
|
+
transition:
|
|
205
|
+
color 150ms,
|
|
206
|
+
border-color 150ms,
|
|
207
|
+
background-color 150ms;
|
|
204
208
|
}
|
|
205
209
|
|
|
206
|
-
:global(.token-search-
|
|
207
|
-
width: var(--token-search-
|
|
208
|
-
height: var(--token-search-
|
|
210
|
+
:global(.token-search-field-remove-icon) {
|
|
211
|
+
width: var(--token-search-field-remove-icon-size);
|
|
212
|
+
height: var(--token-search-field-remove-icon-size);
|
|
209
213
|
}
|
|
210
214
|
|
|
211
|
-
.token-search-
|
|
212
|
-
border-color: var(--
|
|
215
|
+
.token-search-field-token:hover:not(:disabled) {
|
|
216
|
+
border-color: var(--sveltely-border-color);
|
|
213
217
|
background: var(--sveltely-hover-color);
|
|
214
218
|
}
|
|
215
219
|
|
|
216
|
-
.token-search-
|
|
220
|
+
.token-search-field-token:disabled {
|
|
217
221
|
cursor: not-allowed;
|
|
218
222
|
opacity: 0.6;
|
|
219
223
|
}
|
|
220
224
|
|
|
221
|
-
.token-search-
|
|
225
|
+
.token-search-field-confirm {
|
|
222
226
|
flex-shrink: 0;
|
|
223
|
-
color: var(--
|
|
224
|
-
font-size: var(--token-search-
|
|
227
|
+
color: var(--sveltely-secondary-color);
|
|
228
|
+
font-size: var(--token-search-field-confirm-font-size);
|
|
225
229
|
font-weight: 500;
|
|
226
|
-
line-height: calc(var(--token-search-
|
|
230
|
+
line-height: calc(var(--token-search-field-confirm-font-size) * 1.333);
|
|
227
231
|
letter-spacing: 0.18em;
|
|
228
232
|
text-transform: uppercase;
|
|
229
233
|
}
|
|
@@ -9,6 +9,6 @@ type Props = {
|
|
|
9
9
|
normalizeToken?: (value: string) => string;
|
|
10
10
|
showIcon?: boolean;
|
|
11
11
|
} & StyleProps & Omit<HTMLInputAttributes, 'children' | 'type' | 'value' | 'placeholder' | 'class' | 'style'>;
|
|
12
|
-
declare const
|
|
13
|
-
type
|
|
14
|
-
export default
|
|
12
|
+
declare const TokenSearchField: import("svelte").Component<Props, {}, "value" | "tokens">;
|
|
13
|
+
type TokenSearchField = ReturnType<typeof TokenSearchField>;
|
|
14
|
+
export default TokenSearchField;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './TokenSearchField.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './TokenSearchField.svelte';
|
|
@@ -20,11 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
const easeOutCubic = (t: number) => 1 - Math.pow(1 - t, 3);
|
|
22
22
|
|
|
23
|
-
const animateScrollTo = (
|
|
24
|
-
nextViewport: HTMLDivElement,
|
|
25
|
-
targetTop: number,
|
|
26
|
-
duration = 220
|
|
27
|
-
) => {
|
|
23
|
+
const animateScrollTo = (nextViewport: HTMLDivElement, targetTop: number, duration = 220) => {
|
|
28
24
|
if (scrollAnimationFrame) cancelAnimationFrame(scrollAnimationFrame);
|
|
29
25
|
|
|
30
26
|
const startTop = nextViewport.scrollTop;
|
|
@@ -264,12 +260,10 @@
|
|
|
264
260
|
display: flex;
|
|
265
261
|
align-items: center;
|
|
266
262
|
justify-content: center;
|
|
267
|
-
padding:
|
|
268
|
-
0
|
|
269
|
-
calc(var(--sveltely-padding-x) * 0.67 * var(--wheel-picker-scale));
|
|
263
|
+
padding: 0 calc(var(--sveltely-padding-x) * 0.67 * var(--wheel-picker-scale));
|
|
270
264
|
font-size: calc(var(--wheel-picker-font-size) * 0.875);
|
|
271
265
|
line-height: 1;
|
|
272
|
-
color: var(--
|
|
266
|
+
color: var(--sveltely-primary-color);
|
|
273
267
|
text-align: center;
|
|
274
268
|
appearance: none;
|
|
275
269
|
position: relative;
|
|
@@ -289,7 +283,7 @@
|
|
|
289
283
|
}
|
|
290
284
|
|
|
291
285
|
.wheel-column-option:focus-visible {
|
|
292
|
-
outline: 2px solid color-mix(in oklab, var(--sveltely-
|
|
286
|
+
outline: 2px solid color-mix(in oklab, var(--sveltely-active-color) 24%, white);
|
|
293
287
|
outline-offset: 2px;
|
|
294
288
|
}
|
|
295
289
|
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
type Props = {
|
|
7
7
|
columns: WheelColumnData[];
|
|
8
8
|
height?: number | string;
|
|
9
|
-
} & StyleProps &
|
|
9
|
+
} & StyleProps &
|
|
10
|
+
Record<string, unknown>;
|
|
10
11
|
|
|
11
12
|
const toCssLength = (value: number | string | undefined) =>
|
|
12
13
|
value === undefined ? undefined : typeof value === 'number' ? `${value}px` : value;
|
|
@@ -23,7 +24,6 @@
|
|
|
23
24
|
const heightStyle = `--wheel-picker-height: ${resolvedHeight};`;
|
|
24
25
|
return rootStyle ? `${rootStyle} ${heightStyle}` : heightStyle;
|
|
25
26
|
});
|
|
26
|
-
|
|
27
27
|
</script>
|
|
28
28
|
|
|
29
29
|
<div class="wheel-picker vstack" style={pickerStyle} {...props}>
|
|
@@ -47,11 +47,7 @@
|
|
|
47
47
|
class="wheel-picker-column"
|
|
48
48
|
style={`--wheel-picker-column-flex: ${column.options.length <= 3 ? 0.85 : 1};`}
|
|
49
49
|
>
|
|
50
|
-
<WheelColumn
|
|
51
|
-
options={column.options}
|
|
52
|
-
value={column.value}
|
|
53
|
-
onChange={column.onChange}
|
|
54
|
-
/>
|
|
50
|
+
<WheelColumn options={column.options} value={column.value} onChange={column.onChange} />
|
|
55
51
|
</div>
|
|
56
52
|
{/each}
|
|
57
53
|
</div>
|
|
@@ -99,7 +95,7 @@
|
|
|
99
95
|
height: var(--wheel-picker-option-height);
|
|
100
96
|
transform: translateY(-50%);
|
|
101
97
|
border-radius: var(--sveltely-border-radius);
|
|
102
|
-
background: color-mix(in oklab, var(--
|
|
98
|
+
background: color-mix(in oklab, var(--sveltely-inactive-color) 85%, white);
|
|
103
99
|
pointer-events: none;
|
|
104
100
|
z-index: 0;
|
|
105
101
|
}
|
|
@@ -109,6 +105,6 @@
|
|
|
109
105
|
font-size: calc(var(--wheel-picker-font-size) * 0.75);
|
|
110
106
|
line-height: 1;
|
|
111
107
|
font-weight: 500;
|
|
112
|
-
color: var(--
|
|
108
|
+
color: var(--sveltely-secondary-color);
|
|
113
109
|
}
|
|
114
110
|
</style>
|
|
@@ -20,14 +20,16 @@
|
|
|
20
20
|
gap={0.5}
|
|
21
21
|
border="1px solid var(--sveltely-border-color)"
|
|
22
22
|
borderRadius={0.75}
|
|
23
|
-
background="
|
|
23
|
+
background="var(--sveltely-background-color)"
|
|
24
24
|
paddingX={1.5}
|
|
25
25
|
paddingY={1.5}
|
|
26
26
|
>
|
|
27
27
|
{#if title}
|
|
28
|
-
<h1 class="text-3xl font-semibold tracking-tight text-
|
|
28
|
+
<h1 class="text-3xl font-semibold tracking-tight text-[var(--sveltely-primary-color)]">
|
|
29
|
+
{title}
|
|
30
|
+
</h1>
|
|
29
31
|
{#if description}
|
|
30
|
-
<p class="max-w-3xl text-sm text-
|
|
32
|
+
<p class="max-w-3xl text-sm text-[var(--sveltely-secondary-color)]">{description}</p>
|
|
31
33
|
{/if}
|
|
32
34
|
{/if}
|
|
33
35
|
<VStack grow shrink overflow="hidden" paddingX={0} paddingY={0}>
|
|
@@ -10,8 +10,10 @@
|
|
|
10
10
|
inset?: number;
|
|
11
11
|
borderColor?: string;
|
|
12
12
|
primaryColor?: string;
|
|
13
|
+
secondaryColor?: string;
|
|
13
14
|
activeColor?: string;
|
|
14
15
|
inactiveColor?: string;
|
|
16
|
+
backgroundColor?: string;
|
|
15
17
|
};
|
|
16
18
|
|
|
17
19
|
let {
|
|
@@ -23,81 +25,110 @@
|
|
|
23
25
|
inset = $bindable(0.25),
|
|
24
26
|
borderColor = $bindable('#e4e4e7'),
|
|
25
27
|
primaryColor = $bindable('#18181b'),
|
|
28
|
+
secondaryColor = $bindable('#71717a'),
|
|
26
29
|
activeColor = $bindable('#18181b'),
|
|
27
|
-
inactiveColor = $bindable('#
|
|
30
|
+
inactiveColor = $bindable('#18181b'),
|
|
31
|
+
backgroundColor = $bindable('#ffffff')
|
|
28
32
|
}: Props = $props();
|
|
29
33
|
</script>
|
|
30
34
|
|
|
31
|
-
<div
|
|
32
|
-
|
|
35
|
+
<div
|
|
36
|
+
class="vstack gap-3 text-sm text-[var(--sveltely-primary-color)]"
|
|
37
|
+
style="--sveltely-border-radius: 0.75rem;"
|
|
38
|
+
>
|
|
39
|
+
<div class="font-semibold tracking-wide text-[var(--sveltely-secondary-color)] uppercase">
|
|
40
|
+
Controls
|
|
41
|
+
</div>
|
|
33
42
|
<div class="vstack gap-2">
|
|
34
|
-
<div class="hstack items-center justify-between gap-3
|
|
43
|
+
<div class="hstack items-center justify-between gap-3">
|
|
35
44
|
<span class="font-medium">Font size</span>
|
|
36
|
-
<span class="text-
|
|
45
|
+
<span class="text-[var(--sveltely-secondary-color)]">{fontSize.toFixed(2)}rem</span>
|
|
37
46
|
</div>
|
|
38
47
|
<Slider bind:value={fontSize} min={0.5} max={2} step={0.05} />
|
|
39
48
|
</div>
|
|
40
49
|
<div class="vstack gap-2">
|
|
41
|
-
<div class="hstack items-center justify-between gap-3
|
|
50
|
+
<div class="hstack items-center justify-between gap-3">
|
|
42
51
|
<span class="font-medium">Border radius</span>
|
|
43
|
-
<span class="text-
|
|
52
|
+
<span class="text-[var(--sveltely-secondary-color)]">{borderRadius.toFixed(2)}rem</span>
|
|
44
53
|
</div>
|
|
45
54
|
<Slider bind:value={borderRadius} min={0} max={3} step={0.05} />
|
|
46
55
|
</div>
|
|
47
56
|
<div class="vstack gap-2">
|
|
48
|
-
<div class="hstack items-center justify-between gap-3
|
|
57
|
+
<div class="hstack items-center justify-between gap-3">
|
|
49
58
|
<span class="font-medium">Padding X</span>
|
|
50
|
-
<span class="text-
|
|
59
|
+
<span class="text-[var(--sveltely-secondary-color)]">{paddingX.toFixed(2)}rem</span>
|
|
51
60
|
</div>
|
|
52
61
|
<Slider bind:value={paddingX} min={0} max={2} step="any" />
|
|
53
62
|
</div>
|
|
54
63
|
<div class="vstack gap-2">
|
|
55
|
-
<div class="hstack items-center justify-between gap-3
|
|
64
|
+
<div class="hstack items-center justify-between gap-3">
|
|
56
65
|
<span class="font-medium">Padding Y</span>
|
|
57
|
-
<span class="text-
|
|
66
|
+
<span class="text-[var(--sveltely-secondary-color)]">{paddingY.toFixed(2)}rem</span>
|
|
58
67
|
</div>
|
|
59
68
|
<Slider bind:value={paddingY} min={0} max={2} step="any" />
|
|
60
69
|
</div>
|
|
61
70
|
<div class="vstack gap-2">
|
|
62
|
-
<div class="hstack items-center justify-between gap-3
|
|
71
|
+
<div class="hstack items-center justify-between gap-3">
|
|
63
72
|
<span class="font-medium">Gap</span>
|
|
64
|
-
<span class="text-
|
|
73
|
+
<span class="text-[var(--sveltely-secondary-color)]">{gap.toFixed(2)}rem</span>
|
|
65
74
|
</div>
|
|
66
75
|
<Slider bind:value={gap} min={0} max={2} step="any" />
|
|
67
76
|
</div>
|
|
68
77
|
<div class="vstack gap-2">
|
|
69
|
-
<div class="hstack items-center justify-between gap-3
|
|
78
|
+
<div class="hstack items-center justify-between gap-3">
|
|
70
79
|
<span class="font-medium">Inset</span>
|
|
71
|
-
<span class="text-
|
|
80
|
+
<span class="text-[var(--sveltely-secondary-color)]">{inset.toFixed(2)}rem</span>
|
|
72
81
|
</div>
|
|
73
82
|
<Slider bind:value={inset} min={0} max={1} step="any" />
|
|
74
83
|
</div>
|
|
75
84
|
<div class="vstack gap-2">
|
|
76
|
-
<div class="hstack items-center justify-between gap-3
|
|
77
|
-
<span class="font-medium">
|
|
78
|
-
<span class="text-
|
|
85
|
+
<div class="hstack items-center justify-between gap-3">
|
|
86
|
+
<span class="font-medium">Primary color</span>
|
|
87
|
+
<span class="text-[var(--sveltely-secondary-color)]">{primaryColor}</span>
|
|
79
88
|
</div>
|
|
80
89
|
<input
|
|
81
|
-
bind:value={
|
|
90
|
+
bind:value={primaryColor}
|
|
82
91
|
type="color"
|
|
83
92
|
class="h-10 w-full cursor-pointer rounded-md border border-zinc-200 bg-white p-1"
|
|
84
93
|
/>
|
|
85
94
|
</div>
|
|
86
95
|
<div class="vstack gap-2">
|
|
87
|
-
<div class="hstack items-center justify-between gap-3
|
|
88
|
-
<span class="font-medium">
|
|
89
|
-
<span class="text-
|
|
96
|
+
<div class="hstack items-center justify-between gap-3">
|
|
97
|
+
<span class="font-medium">Secondary color</span>
|
|
98
|
+
<span class="text-[var(--sveltely-secondary-color)]">{secondaryColor}</span>
|
|
90
99
|
</div>
|
|
91
100
|
<input
|
|
92
|
-
bind:value={
|
|
101
|
+
bind:value={secondaryColor}
|
|
102
|
+
type="color"
|
|
103
|
+
class="h-10 w-full cursor-pointer rounded-md border border-zinc-200 bg-white p-1"
|
|
104
|
+
/>
|
|
105
|
+
</div>
|
|
106
|
+
<div class="vstack gap-2">
|
|
107
|
+
<div class="hstack items-center justify-between gap-3">
|
|
108
|
+
<span class="font-medium">Background color</span>
|
|
109
|
+
<span class="text-[var(--sveltely-secondary-color)]">{backgroundColor}</span>
|
|
110
|
+
</div>
|
|
111
|
+
<input
|
|
112
|
+
bind:value={backgroundColor}
|
|
113
|
+
type="color"
|
|
114
|
+
class="h-10 w-full cursor-pointer rounded-md border border-zinc-200 bg-white p-1"
|
|
115
|
+
/>
|
|
116
|
+
</div>
|
|
117
|
+
<div class="vstack gap-2">
|
|
118
|
+
<div class="hstack items-center justify-between gap-3">
|
|
119
|
+
<span class="font-medium">Border color</span>
|
|
120
|
+
<span class="text-[var(--sveltely-secondary-color)]">{borderColor}</span>
|
|
121
|
+
</div>
|
|
122
|
+
<input
|
|
123
|
+
bind:value={borderColor}
|
|
93
124
|
type="color"
|
|
94
125
|
class="h-10 w-full cursor-pointer rounded-md border border-zinc-200 bg-white p-1"
|
|
95
126
|
/>
|
|
96
127
|
</div>
|
|
97
128
|
<div class="vstack gap-2">
|
|
98
|
-
<div class="hstack items-center justify-between gap-3
|
|
129
|
+
<div class="hstack items-center justify-between gap-3">
|
|
99
130
|
<span class="font-medium">Active color</span>
|
|
100
|
-
<span class="text-
|
|
131
|
+
<span class="text-[var(--sveltely-secondary-color)]">{activeColor}</span>
|
|
101
132
|
</div>
|
|
102
133
|
<input
|
|
103
134
|
bind:value={activeColor}
|
|
@@ -106,9 +137,9 @@
|
|
|
106
137
|
/>
|
|
107
138
|
</div>
|
|
108
139
|
<div class="vstack gap-2">
|
|
109
|
-
<div class="hstack items-center justify-between gap-3
|
|
140
|
+
<div class="hstack items-center justify-between gap-3">
|
|
110
141
|
<span class="font-medium">Inactive color</span>
|
|
111
|
-
<span class="text-
|
|
142
|
+
<span class="text-[var(--sveltely-secondary-color)]">{inactiveColor}</span>
|
|
112
143
|
</div>
|
|
113
144
|
<input
|
|
114
145
|
bind:value={inactiveColor}
|
|
@@ -7,9 +7,11 @@ type Props = {
|
|
|
7
7
|
inset?: number;
|
|
8
8
|
borderColor?: string;
|
|
9
9
|
primaryColor?: string;
|
|
10
|
+
secondaryColor?: string;
|
|
10
11
|
activeColor?: string;
|
|
11
12
|
inactiveColor?: string;
|
|
13
|
+
backgroundColor?: string;
|
|
12
14
|
};
|
|
13
|
-
declare const StyleControls: import("svelte").Component<Props, {}, "borderColor" | "borderRadius" | "fontSize" | "gap" | "inset" | "paddingX" | "paddingY" | "primaryColor" | "activeColor" | "inactiveColor">;
|
|
15
|
+
declare const StyleControls: import("svelte").Component<Props, {}, "backgroundColor" | "borderColor" | "borderRadius" | "fontSize" | "gap" | "inset" | "paddingX" | "paddingY" | "primaryColor" | "secondaryColor" | "activeColor" | "inactiveColor">;
|
|
14
16
|
type StyleControls = ReturnType<typeof StyleControls>;
|
|
15
17
|
export default StyleControls;
|
package/dist/index.d.ts
CHANGED
|
@@ -43,7 +43,8 @@ export { default as Popover } from './components/Library/Popover';
|
|
|
43
43
|
export { default as ChipInput } from './components/Library/ChipInput';
|
|
44
44
|
export { default as Calendar } from './components/Library/Calendar';
|
|
45
45
|
export { default as AsyncButton } from './components/Library/AsyncButton';
|
|
46
|
-
export { default as
|
|
46
|
+
export { default as SearchField } from './components/Library/SearchField';
|
|
47
47
|
export { default as ScrollView } from './components/Library/ScrollView';
|
|
48
|
-
export {
|
|
48
|
+
export type { ScrollGeometry } from './components/Library/ScrollView';
|
|
49
|
+
export { default as TokenSearchField } from './components/Library/TokenSearchField';
|
|
49
50
|
export { default as VStack } from './components/Library/VStack';
|
package/dist/index.js
CHANGED
|
@@ -36,7 +36,7 @@ export { default as Popover } from './components/Library/Popover';
|
|
|
36
36
|
export { default as ChipInput } from './components/Library/ChipInput';
|
|
37
37
|
export { default as Calendar } from './components/Library/Calendar';
|
|
38
38
|
export { default as AsyncButton } from './components/Library/AsyncButton';
|
|
39
|
-
export { default as
|
|
39
|
+
export { default as SearchField } from './components/Library/SearchField';
|
|
40
40
|
export { default as ScrollView } from './components/Library/ScrollView';
|
|
41
|
-
export { default as
|
|
41
|
+
export { default as TokenSearchField } from './components/Library/TokenSearchField';
|
|
42
42
|
export { default as VStack } from './components/Library/VStack';
|
package/dist/style/index.css
CHANGED
|
@@ -13,9 +13,11 @@
|
|
|
13
13
|
--sveltely-padding-y: 0.75rem;
|
|
14
14
|
--sveltely-gap: 0.5rem;
|
|
15
15
|
--sveltely-primary-color: var(--color-zinc-900);
|
|
16
|
-
--sveltely-
|
|
17
|
-
--sveltely-
|
|
18
|
-
--sveltely-
|
|
16
|
+
--sveltely-secondary-color: var(--color-zinc-500);
|
|
17
|
+
--sveltely-active-color: var(--color-zinc-900);
|
|
18
|
+
--sveltely-inactive-color: var(--sveltely-active-color);
|
|
19
|
+
--sveltely-background-color: white;
|
|
20
|
+
--sveltely-hover-color: color-mix(in oklab, var(--sveltely-active-color) 5%, transparent);
|
|
19
21
|
--sveltely-inactive-hover-color: color-mix(in oklab, var(--sveltely-inactive-color) 88%, white);
|
|
20
22
|
--sveltely-active-hover-color: color-mix(in oklab, var(--sveltely-active-color) 88%, white);
|
|
21
23
|
--sveltely-border-radius-nested: clamp(
|
|
@@ -29,6 +31,8 @@
|
|
|
29
31
|
html,
|
|
30
32
|
body {
|
|
31
33
|
@apply size-full overflow-hidden;
|
|
34
|
+
background: var(--sveltely-background-color);
|
|
35
|
+
color: var(--sveltely-primary-color);
|
|
32
36
|
-webkit-user-select: none;
|
|
33
37
|
user-select: none;
|
|
34
38
|
}
|
|
@@ -101,8 +105,8 @@
|
|
|
101
105
|
.segmented-picker,
|
|
102
106
|
.switch,
|
|
103
107
|
.checkbox,
|
|
104
|
-
.search-
|
|
105
|
-
.token-search-
|
|
108
|
+
.search-field,
|
|
109
|
+
.token-search-field,
|
|
106
110
|
.chip-input,
|
|
107
111
|
.dropdown,
|
|
108
112
|
.pagination,
|