lapikit 0.6.3 → 0.6.4
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/accordion/accordion.svelte +172 -42
- package/dist/components/accordion/accordion.types.d.ts +8 -3
- package/dist/components/accordion/modules/accordion-item.svelte +71 -72
- package/dist/components/alert/alert.svelte +201 -118
- package/dist/components/alert/alert.types.d.ts +8 -6
- package/dist/components/app/app.svelte +4 -4
- package/dist/components/appbar/appbar.svelte +115 -64
- package/dist/components/appbar/appbar.types.d.ts +4 -4
- package/dist/components/aspect-ratio/aspect-ratio.svelte +4 -12
- package/dist/components/aspect-ratio/aspect-ratio.types.d.ts +2 -1
- package/dist/components/avatar/avatar.svelte +108 -66
- package/dist/components/avatar/avatar.types.d.ts +7 -5
- package/dist/components/btn/btn.svelte +167 -169
- package/dist/components/btn/btn.types.d.ts +5 -2
- package/dist/components/chip/chip.svelte +162 -140
- package/dist/components/chip/chip.types.d.ts +7 -3
- package/dist/components/dialog/dialog.svelte +84 -81
- package/dist/components/dialog/dialog.types.d.ts +7 -5
- package/dist/components/dropdown/dropdown.svelte +46 -36
- package/dist/components/dropdown/dropdown.types.d.ts +4 -2
- package/dist/components/icon/icon.svelte +28 -52
- package/dist/components/list/modules/list-item.svelte +0 -55
- package/dist/components/modal/modal.svelte +104 -98
- package/dist/components/modal/modal.types.d.ts +7 -5
- package/dist/components/popover/popover.svelte +46 -34
- package/dist/components/popover/popover.types.d.ts +3 -1
- package/dist/components/separator/separator.svelte +11 -30
- package/dist/components/separator/separator.types.d.ts +1 -2
- package/dist/components/textfield/textfield.svelte +180 -157
- package/dist/components/textfield/textfield.types.d.ts +4 -3
- package/dist/components/toolbar/toolbar.svelte +126 -108
- package/dist/components/toolbar/toolbar.types.d.ts +6 -7
- package/dist/components/tooltip/tooltip.svelte +39 -45
- package/dist/components/tooltip/tooltip.types.d.ts +3 -3
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { useClassName, useStyles } from '../../utils';
|
|
2
|
+
import { useClassName, useElevation, useStyles } from '../../utils';
|
|
3
3
|
import { makeComponentProps } from '../../html-mapped';
|
|
4
4
|
import Icon from '../icon/icon.svelte';
|
|
5
5
|
import type { TextfieldProps } from './textfield.types.js';
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
readonly = false,
|
|
35
35
|
color,
|
|
36
36
|
background,
|
|
37
|
-
rounded,
|
|
37
|
+
rounded = 'md',
|
|
38
38
|
class: className = '',
|
|
39
39
|
style: styleAttr = '',
|
|
40
40
|
's-class': sClass,
|
|
@@ -43,29 +43,16 @@
|
|
|
43
43
|
id,
|
|
44
44
|
autocomplete,
|
|
45
45
|
inputmode,
|
|
46
|
+
elevation,
|
|
46
47
|
...rest
|
|
47
48
|
}: TextfieldProps = $props();
|
|
48
49
|
|
|
49
|
-
let safeVariant = $derived(
|
|
50
|
-
variant === 'filled' || variant === 'outline' || variant === 'text' ? variant : 'filled'
|
|
51
|
-
);
|
|
52
|
-
let safeSize = $derived(
|
|
53
|
-
size === 'default'
|
|
54
|
-
? 'md'
|
|
55
|
-
: size === 'xs' || size === 'sm' || size === 'md' || size === 'lg' || size === 'xl'
|
|
56
|
-
? size
|
|
57
|
-
: 'md'
|
|
58
|
-
);
|
|
59
|
-
let safeDensity = $derived(
|
|
60
|
-
density === 'compact' || density === 'comfortable' || density === 'default'
|
|
61
|
-
? density
|
|
62
|
-
: 'default'
|
|
63
|
-
);
|
|
64
|
-
|
|
65
50
|
let { classProps, styleProps, restProps } = $derived(
|
|
66
51
|
makeComponentProps(rest as Record<string, unknown>)
|
|
67
52
|
);
|
|
68
53
|
|
|
54
|
+
let elevationState = $derived(useElevation(elevation));
|
|
55
|
+
|
|
69
56
|
let componentClass = $derived(
|
|
70
57
|
useClassName({
|
|
71
58
|
baseClass: 'kit-textfield',
|
|
@@ -83,18 +70,7 @@
|
|
|
83
70
|
})
|
|
84
71
|
);
|
|
85
72
|
|
|
86
|
-
let mergedStyle = $derived(
|
|
87
|
-
[
|
|
88
|
-
componentStyle,
|
|
89
|
-
background ? `--kit-textfield-bg:${background}` : '',
|
|
90
|
-
color ? `--kit-textfield-fg:${color}` : '',
|
|
91
|
-
typeof rounded === 'string' && rounded.includes('px')
|
|
92
|
-
? `--kit-textfield-radius:${rounded}`
|
|
93
|
-
: ''
|
|
94
|
-
]
|
|
95
|
-
.filter(Boolean)
|
|
96
|
-
.join('; ')
|
|
97
|
-
);
|
|
73
|
+
let mergedStyle = $derived([componentStyle].filter(Boolean).join('; '));
|
|
98
74
|
|
|
99
75
|
let counterValue = $state(0);
|
|
100
76
|
let displayMessage = $state(false);
|
|
@@ -148,14 +124,17 @@
|
|
|
148
124
|
class={componentClass}
|
|
149
125
|
style={mergedStyle}
|
|
150
126
|
{...restProps}
|
|
151
|
-
data-size={
|
|
152
|
-
data-variant={
|
|
153
|
-
data-density={
|
|
127
|
+
data-size={size}
|
|
128
|
+
data-variant={variant}
|
|
129
|
+
data-density={density}
|
|
154
130
|
data-disabled={disabled}
|
|
155
131
|
data-readonly={readonly}
|
|
156
132
|
data-error={error}
|
|
157
133
|
data-hide-spin-buttons={type === 'number' && hideSpinButtons}
|
|
158
134
|
data-rounded={rounded}
|
|
135
|
+
data-with-message={(messageValue || messagePrefix || messageSuffix || counter) && true}
|
|
136
|
+
style:--kit-textfield-fg={color && `var(--kit-color-${color})`}
|
|
137
|
+
style:--kit-textfield-bg={background && `var(--kit-color-${background})`}
|
|
159
138
|
>
|
|
160
139
|
{#if prepend}
|
|
161
140
|
<div class="kit-textfield__prepend">
|
|
@@ -164,11 +143,16 @@
|
|
|
164
143
|
{/if}
|
|
165
144
|
|
|
166
145
|
<div class="kit-textfield__control">
|
|
167
|
-
<div
|
|
168
|
-
|
|
146
|
+
<div
|
|
147
|
+
class="kit-textfield__field"
|
|
148
|
+
data-elevation={elevationState.base}
|
|
149
|
+
data-elevation-hover={elevationState.hover}
|
|
150
|
+
data-elevation-active={elevationState.active}
|
|
151
|
+
>
|
|
152
|
+
{#if variant === 'outline' || variant === 'filled'}
|
|
169
153
|
<span class="outline"></span>
|
|
170
154
|
{/if}
|
|
171
|
-
{#if
|
|
155
|
+
{#if variant === 'text'}
|
|
172
156
|
<span class="line"></span>
|
|
173
157
|
{/if}
|
|
174
158
|
|
|
@@ -234,29 +218,31 @@
|
|
|
234
218
|
</div>
|
|
235
219
|
{/if}
|
|
236
220
|
|
|
237
|
-
|
|
238
|
-
<div
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
{
|
|
253
|
-
|
|
254
|
-
{messageSuffix}
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
221
|
+
{#if messageValue || messagePrefix || messageSuffix || counter}
|
|
222
|
+
<div class="kit-textfield__message" data-visible={displayMessage}>
|
|
223
|
+
<div
|
|
224
|
+
class="kit-textfield__message-inner"
|
|
225
|
+
data-error={error || undefined}
|
|
226
|
+
id={messageValue ? `${id ?? name ?? 'textfield'}-message` : undefined}
|
|
227
|
+
>
|
|
228
|
+
{#if messagePrefix}
|
|
229
|
+
<div class="kit-textfield__message-prefix">{messagePrefix}</div>
|
|
230
|
+
{/if}
|
|
231
|
+
{#if messageValue}
|
|
232
|
+
<div class="kit-textfield__message-text">{messageValue}</div>
|
|
233
|
+
{/if}
|
|
234
|
+
{#if counter || messageSuffix}
|
|
235
|
+
<div class="kit-textfield__message-suffix">
|
|
236
|
+
{#if counter}
|
|
237
|
+
{counterValue}{max ? `/${max}` : ''}
|
|
238
|
+
{:else if messageSuffix}
|
|
239
|
+
{messageSuffix}
|
|
240
|
+
{/if}
|
|
241
|
+
</div>
|
|
242
|
+
{/if}
|
|
243
|
+
</div>
|
|
258
244
|
</div>
|
|
259
|
-
|
|
245
|
+
{/if}
|
|
260
246
|
</div>
|
|
261
247
|
|
|
262
248
|
<style>
|
|
@@ -284,151 +270,181 @@
|
|
|
284
270
|
}
|
|
285
271
|
|
|
286
272
|
.kit-textfield {
|
|
287
|
-
--kit-textfield-bg: var(--kit-surface-2);
|
|
288
|
-
--kit-textfield-fg: var(--kit-fg);
|
|
289
|
-
--kit-textfield-bd: color-mix(in oklab, var(--kit-textfield-fg), transparent 84%);
|
|
290
|
-
--kit-textfield-radius: 8px;
|
|
291
|
-
--kit-textfield-font-size: 14px;
|
|
292
|
-
--kit-textfield-gap-base: 8px;
|
|
293
|
-
--kit-textfield-px-base: 14px;
|
|
294
|
-
--kit-textfield-py-base: 12px;
|
|
295
|
-
--kit-textfield-message-offset-base: 8px;
|
|
296
|
-
--kit-textfield-density-gap-adjust: 0px;
|
|
297
|
-
--kit-textfield-density-px-adjust: 0px;
|
|
298
|
-
--kit-textfield-density-py-adjust: 0px;
|
|
299
|
-
--kit-textfield-density-message-adjust: 0px;
|
|
300
|
-
--kit-textfield-gap: calc(
|
|
301
|
-
var(--kit-textfield-gap-base) + var(--kit-textfield-density-gap-adjust)
|
|
302
|
-
);
|
|
303
|
-
--kit-textfield-px: calc(var(--kit-textfield-px-base) + var(--kit-textfield-density-px-adjust));
|
|
304
|
-
--kit-textfield-py: calc(var(--kit-textfield-py-base) + var(--kit-textfield-density-py-adjust));
|
|
305
|
-
--kit-textfield-message-offset: calc(
|
|
306
|
-
var(--kit-textfield-message-offset-base) + var(--kit-textfield-density-message-adjust)
|
|
307
|
-
);
|
|
308
|
-
|
|
309
273
|
display: grid;
|
|
274
|
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
275
|
+
align-items: start;
|
|
276
|
+
column-gap: var(--kit-textfield-gap);
|
|
277
|
+
width: 100%;
|
|
278
|
+
font-size: var(--kit-textfield-font);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.kit-textfield:not([data-with-message='true']) {
|
|
282
|
+
grid-template-areas: 'prepend control append';
|
|
283
|
+
grid-template-rows: auto;
|
|
284
|
+
}
|
|
285
|
+
.kit-textfield[data-with-message='true'] {
|
|
310
286
|
grid-template-areas:
|
|
311
287
|
'prepend control append'
|
|
312
288
|
'. message .';
|
|
313
|
-
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
314
289
|
grid-template-rows: auto auto;
|
|
315
|
-
align-items: start;
|
|
316
|
-
column-gap: 16px;
|
|
317
|
-
width: 100%;
|
|
318
|
-
font-size: var(--kit-textfield-font-size);
|
|
319
290
|
}
|
|
320
291
|
|
|
321
|
-
.kit-textfield[data-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
--kit-textfield-px-base: 10px;
|
|
325
|
-
--kit-textfield-py-base: 8px;
|
|
292
|
+
.kit-textfield[data-disabled='true'] {
|
|
293
|
+
opacity: 0.55;
|
|
294
|
+
pointer-events: none;
|
|
326
295
|
}
|
|
327
296
|
|
|
297
|
+
.kit-textfield[data-readonly='true'] input {
|
|
298
|
+
cursor: default;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
.kit-textfield[data-hide-spin-buttons='true'] input[type='number'] {
|
|
302
|
+
appearance: textfield;
|
|
303
|
+
-moz-appearance: textfield;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.kit-textfield[data-hide-spin-buttons='true'] input[type='number']::-webkit-inner-spin-button,
|
|
307
|
+
.kit-textfield[data-hide-spin-buttons='true'] input[type='number']::-webkit-outer-spin-button {
|
|
308
|
+
appearance: none;
|
|
309
|
+
-webkit-appearance: none;
|
|
310
|
+
margin: 0;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* size
|
|
315
|
+
* @link nothing...
|
|
316
|
+
*/
|
|
317
|
+
.kit-textfield[data-size='xs'] {
|
|
318
|
+
--kit-textfield-h: 28px;
|
|
319
|
+
--kit-textfield-px: 6px;
|
|
320
|
+
--kit-textfield-py: 10px;
|
|
321
|
+
--kit-textfield-gap: 8px;
|
|
322
|
+
--kit-textfield-font: 12px;
|
|
323
|
+
}
|
|
324
|
+
.kit-textfield[data-size='xs'] :global(.kit-icon[data-size='default']) {
|
|
325
|
+
--kit-icon-current-size: 0.875rem;
|
|
326
|
+
}
|
|
328
327
|
.kit-textfield[data-size='sm'] {
|
|
329
|
-
--kit-textfield-
|
|
330
|
-
--kit-textfield-
|
|
331
|
-
--kit-textfield-
|
|
332
|
-
--kit-textfield-
|
|
328
|
+
--kit-textfield-h: 32px;
|
|
329
|
+
--kit-textfield-px: 14px;
|
|
330
|
+
--kit-textfield-py: 12px;
|
|
331
|
+
--kit-textfield-gap: 6px;
|
|
332
|
+
--kit-textfield-font: 13px;
|
|
333
|
+
}
|
|
334
|
+
.kit-textfield[data-size='sm'] :global(.kit-icon[data-size='default']) {
|
|
335
|
+
--kit-icon-current-size: 1rem;
|
|
333
336
|
}
|
|
334
337
|
|
|
335
338
|
.kit-textfield[data-size='md'] {
|
|
336
|
-
--kit-textfield-
|
|
337
|
-
--kit-textfield-
|
|
338
|
-
--kit-textfield-
|
|
339
|
-
--kit-textfield-
|
|
339
|
+
--kit-textfield-h: 40px;
|
|
340
|
+
--kit-textfield-px: 14px;
|
|
341
|
+
--kit-textfield-py: 12px;
|
|
342
|
+
--kit-textfield-gap: 8px;
|
|
343
|
+
--kit-textfield-font: 14px;
|
|
344
|
+
}
|
|
345
|
+
.kit-textfield[data-size='md'] :global(.kit-icon[data-size='default']) {
|
|
346
|
+
--kit-icon-current-size: 1.125rem;
|
|
340
347
|
}
|
|
341
348
|
|
|
342
349
|
.kit-textfield[data-size='lg'] {
|
|
343
|
-
--kit-textfield-
|
|
344
|
-
--kit-textfield-
|
|
345
|
-
--kit-textfield-
|
|
346
|
-
--kit-textfield-
|
|
350
|
+
--kit-textfield-h: 48px;
|
|
351
|
+
--kit-textfield-px: 16px;
|
|
352
|
+
--kit-textfield-py: 14px;
|
|
353
|
+
--kit-textfield-gap: 10px;
|
|
354
|
+
--kit-textfield-font: 15px;
|
|
355
|
+
}
|
|
356
|
+
.kit-textfield[data-size='lg'] :global(.kit-icon[data-size='default']) {
|
|
357
|
+
--kit-icon-current-size: 1.25rem;
|
|
347
358
|
}
|
|
348
359
|
|
|
349
360
|
.kit-textfield[data-size='xl'] {
|
|
350
|
-
--kit-textfield-
|
|
351
|
-
--kit-textfield-
|
|
352
|
-
--kit-textfield-
|
|
353
|
-
--kit-textfield-
|
|
361
|
+
--kit-textfield-h: 56px;
|
|
362
|
+
--kit-textfield-px: 18px;
|
|
363
|
+
--kit-textfield-py: 16px;
|
|
364
|
+
--kit-textfield-gap: 12px;
|
|
365
|
+
--kit-textfield-font: 16px;
|
|
354
366
|
}
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
--kit-textfield-density-gap-adjust: -1px;
|
|
358
|
-
--kit-textfield-density-px-adjust: -2px;
|
|
359
|
-
--kit-textfield-density-py-adjust: -2px;
|
|
360
|
-
--kit-textfield-density-message-adjust: -2px;
|
|
367
|
+
.kit-textfield[data-size='xl'] :global(.kit-icon[data-size='default']) {
|
|
368
|
+
--kit-icon-current-size: 1.375rem;
|
|
361
369
|
}
|
|
362
370
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
371
|
+
/**
|
|
372
|
+
* variant
|
|
373
|
+
* @link no link
|
|
374
|
+
*/
|
|
375
|
+
.kit-textfield[data-variant='filled'] {
|
|
376
|
+
--kit-textfield-bg: var(--kit-color-surface-2);
|
|
377
|
+
--kit-textfield-fg: var(--kit-color-text);
|
|
369
378
|
|
|
370
|
-
|
|
371
|
-
|
|
379
|
+
--kit-textfield-hover-bg: color-mix(in oklab, var(---kit-textfield-bg), black 10%);
|
|
380
|
+
--kit-textfield-active-bg: color-mix(in oklab, var(--kit-textfield-bg), black 16%);
|
|
372
381
|
}
|
|
382
|
+
.kit-textfield[data-variant='outline'] {
|
|
383
|
+
--kit-textfield-bg: transparent;
|
|
384
|
+
--kit-textfield-fg: var(--kit-color-text);
|
|
385
|
+
--kit-textfield-bd: var(--kit-textfield-fg);
|
|
373
386
|
|
|
374
|
-
|
|
375
|
-
|
|
387
|
+
--kit-textfield-hover-bg: color-mix(in oklab, var(--kit-textfield-fg), transparent 80%);
|
|
388
|
+
--kit-textfield-active-bg: color-mix(in oklab, var(--kit-textfield-fg), transparent 92%);
|
|
376
389
|
}
|
|
390
|
+
.kit-textfield[data-variant='text'] {
|
|
391
|
+
--kit-textfield-bg: transparent;
|
|
392
|
+
--kit-textfield-fg: var(--kit-color-text);
|
|
393
|
+
--kit-textfield-bd: var(--kit-textfield-fg);
|
|
377
394
|
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
border-radius: 0;
|
|
395
|
+
--kit-textfield-hover-bg: color-mix(in oklab, var(--kit-textfield-fg), transparent 80%);
|
|
396
|
+
--kit-textfield-active-bg: color-mix(in oklab, var(--kit-textfield-fg), transparent 92%);
|
|
381
397
|
}
|
|
382
398
|
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
399
|
+
/**
|
|
400
|
+
* density
|
|
401
|
+
* @link ...
|
|
402
|
+
*/
|
|
403
|
+
.kit-textfield[data-density='none'] {
|
|
404
|
+
--kit-textfield-density-scale: 0;
|
|
405
|
+
--kit-textfield-density-h-scale: 0;
|
|
386
406
|
}
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
407
|
+
.kit-textfield[data-density='compact'] {
|
|
408
|
+
--kit-textfield-density-scale: 0.9;
|
|
409
|
+
--kit-textfield-density-h-scale: 0.92;
|
|
390
410
|
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
-moz-appearance: textfield;
|
|
411
|
+
.kit-textfield[data-density='default'] {
|
|
412
|
+
--kit-textfield-density-scale: 1;
|
|
413
|
+
--kit-textfield-density-h-scale: 1;
|
|
395
414
|
}
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
appearance: none;
|
|
400
|
-
-webkit-appearance: none;
|
|
401
|
-
margin: 0;
|
|
415
|
+
.kit-textfield[data-density='comfortable'] {
|
|
416
|
+
--kit-textfield-density-scale: 1.1;
|
|
417
|
+
--kit-textfield-density-h-scale: 1.15;
|
|
402
418
|
}
|
|
403
419
|
|
|
420
|
+
/**
|
|
421
|
+
* rounded
|
|
422
|
+
* @link ...
|
|
423
|
+
*/
|
|
404
424
|
.kit-textfield[data-rounded='0'] {
|
|
405
|
-
--kit-textfield-radius:
|
|
425
|
+
--kit-textfield-radius: var(--kit-shape-none);
|
|
406
426
|
}
|
|
407
|
-
|
|
408
427
|
.kit-textfield[data-rounded='xs'] {
|
|
409
|
-
--kit-textfield-radius:
|
|
428
|
+
--kit-textfield-radius: var(--kit-shape-xs);
|
|
410
429
|
}
|
|
411
|
-
|
|
412
430
|
.kit-textfield[data-rounded='sm'] {
|
|
413
|
-
--kit-textfield-radius:
|
|
431
|
+
--kit-textfield-radius: var(--kit-shape-sm);
|
|
414
432
|
}
|
|
415
|
-
|
|
416
433
|
.kit-textfield[data-rounded='md'] {
|
|
417
|
-
--kit-textfield-radius:
|
|
434
|
+
--kit-textfield-radius: var(--kit-shape-md);
|
|
418
435
|
}
|
|
419
|
-
|
|
420
436
|
.kit-textfield[data-rounded='lg'] {
|
|
421
|
-
--kit-textfield-radius:
|
|
437
|
+
--kit-textfield-radius: var(--kit-shape-lg);
|
|
422
438
|
}
|
|
423
|
-
|
|
424
439
|
.kit-textfield[data-rounded='xl'] {
|
|
425
|
-
--kit-textfield-radius:
|
|
440
|
+
--kit-textfield-radius: var(--kit-shape-xl);
|
|
426
441
|
}
|
|
427
442
|
|
|
428
443
|
.kit-textfield__prepend,
|
|
429
444
|
.kit-textfield__append {
|
|
430
445
|
display: flex;
|
|
431
446
|
align-items: center;
|
|
447
|
+
height: 100%;
|
|
432
448
|
}
|
|
433
449
|
|
|
434
450
|
.kit-textfield__prepend {
|
|
@@ -452,9 +468,12 @@
|
|
|
452
468
|
gap: var(--kit-textfield-gap);
|
|
453
469
|
width: 100%;
|
|
454
470
|
min-width: 0;
|
|
455
|
-
|
|
471
|
+
min-height: calc(var(--kit-textfield-h) * var(--kit-textfield-density-h-scale));
|
|
472
|
+
padding: 0 calc(var(--kit-textfield-px) * var(--kit-textfield-density-scale));
|
|
456
473
|
border-radius: var(--kit-textfield-radius);
|
|
474
|
+
background: var(--kit-textfield-bg);
|
|
457
475
|
color: var(--kit-textfield-fg);
|
|
476
|
+
font-size: var(--kit-textfield-font);
|
|
458
477
|
}
|
|
459
478
|
|
|
460
479
|
.kit-textfield__prepend-inner,
|
|
@@ -529,16 +548,15 @@
|
|
|
529
548
|
}
|
|
530
549
|
|
|
531
550
|
.kit-textfield[data-error='true'] .outline {
|
|
532
|
-
--outline-color: var(--kit-
|
|
551
|
+
--outline-color: var(--kit-color-error);
|
|
533
552
|
}
|
|
534
553
|
|
|
535
554
|
.kit-textfield[data-error='true'] .line {
|
|
536
|
-
|
|
555
|
+
--kit-textfield-bd: var(--kit-color-error);
|
|
537
556
|
}
|
|
538
557
|
|
|
539
558
|
.kit-textfield__message {
|
|
540
559
|
grid-area: message;
|
|
541
|
-
padding-top: var(--kit-textfield-message-offset);
|
|
542
560
|
padding-inline: var(--kit-textfield-px);
|
|
543
561
|
font-size: 12px;
|
|
544
562
|
opacity: 0;
|
|
@@ -557,7 +575,7 @@
|
|
|
557
575
|
}
|
|
558
576
|
|
|
559
577
|
.kit-textfield__message-inner[data-error='true'] {
|
|
560
|
-
color: var(--kit-
|
|
578
|
+
color: var(--kit-color-error);
|
|
561
579
|
}
|
|
562
580
|
|
|
563
581
|
.kit-textfield__message-prefix,
|
|
@@ -565,6 +583,11 @@
|
|
|
565
583
|
line-height: 1.2;
|
|
566
584
|
}
|
|
567
585
|
|
|
586
|
+
.kit-textfield__message-suffix {
|
|
587
|
+
align-items: end;
|
|
588
|
+
text-align: end;
|
|
589
|
+
}
|
|
590
|
+
|
|
568
591
|
.kit-textfield__message-text {
|
|
569
592
|
line-height: 1.2;
|
|
570
593
|
word-break: break-word;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Component, RoundedType, SizeType } from '../../@types';
|
|
1
|
+
import type { Component, DensityType, ElevationProps, RoundedType, SizeType } from '../../@types';
|
|
2
2
|
import type { Snippet } from 'svelte';
|
|
3
3
|
import type { HTMLInputAttributes } from 'svelte/elements';
|
|
4
4
|
export interface TextfieldProps extends Component {
|
|
@@ -10,14 +10,14 @@ export interface TextfieldProps extends Component {
|
|
|
10
10
|
min?: number;
|
|
11
11
|
max?: number;
|
|
12
12
|
variant?: 'outline' | 'text' | 'filled';
|
|
13
|
-
density?:
|
|
13
|
+
density?: DensityType;
|
|
14
14
|
error?: boolean;
|
|
15
15
|
errorMessage?: string;
|
|
16
16
|
disabled?: boolean;
|
|
17
17
|
color?: string;
|
|
18
18
|
background?: string;
|
|
19
19
|
size?: SizeType;
|
|
20
|
-
rounded?: RoundedType
|
|
20
|
+
rounded?: RoundedType;
|
|
21
21
|
readonly?: boolean;
|
|
22
22
|
hideSpinButtons?: boolean;
|
|
23
23
|
persistentMessage?: boolean;
|
|
@@ -36,4 +36,5 @@ export interface TextfieldProps extends Component {
|
|
|
36
36
|
id?: string;
|
|
37
37
|
autocomplete?: HTMLInputAttributes['autocomplete'];
|
|
38
38
|
inputmode?: HTMLInputAttributes['inputmode'];
|
|
39
|
+
elevation?: ElevationProps;
|
|
39
40
|
}
|