lapikit 0.7.2 → 0.7.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.
Files changed (73) hide show
  1. package/dist/@types/components.d.ts +1 -7
  2. package/dist/@types/dom.d.ts +4 -3
  3. package/dist/@types/props.d.ts +3 -3
  4. package/dist/animations/ripple.js +33 -17
  5. package/dist/components/accordion/accordion.svelte +192 -228
  6. package/dist/components/accordion/accordion.types.d.ts +5 -7
  7. package/dist/components/accordion/modules/accordion-item.svelte +144 -140
  8. package/dist/components/alert/alert.svelte +246 -293
  9. package/dist/components/alert/alert.types.d.ts +5 -5
  10. package/dist/components/app/app.svelte +29 -44
  11. package/dist/components/appbar/appbar.svelte +205 -190
  12. package/dist/components/appbar/appbar.types.d.ts +6 -6
  13. package/dist/components/aspect-ratio/aspect-ratio.svelte +43 -63
  14. package/dist/components/avatar/avatar.svelte +169 -161
  15. package/dist/components/avatar/avatar.types.d.ts +3 -4
  16. package/dist/components/btn/btn.svelte +431 -465
  17. package/dist/components/btn/btn.types.d.ts +5 -6
  18. package/dist/components/card/card.svelte +214 -176
  19. package/dist/components/card/card.types.d.ts +6 -3
  20. package/dist/components/card/modules/card-actions.svelte +11 -35
  21. package/dist/components/card/modules/card-container.svelte +9 -33
  22. package/dist/components/card/modules/card-content.svelte +18 -44
  23. package/dist/components/card/modules/card-media.svelte +10 -34
  24. package/dist/components/card/modules/card-title.svelte +22 -48
  25. package/dist/components/chip/chip.svelte +416 -464
  26. package/dist/components/chip/chip.types.d.ts +5 -5
  27. package/dist/components/dialog/dialog.svelte +174 -171
  28. package/dist/components/dialog/dialog.types.d.ts +6 -6
  29. package/dist/components/dropdown/dropdown.svelte +149 -144
  30. package/dist/components/dropdown/dropdown.types.d.ts +4 -11
  31. package/dist/components/field/field.svelte +474 -0
  32. package/dist/components/field/field.svelte.d.ts +4 -0
  33. package/dist/components/field/field.types.d.ts +46 -0
  34. package/dist/components/field/field.types.js +1 -0
  35. package/dist/components/icon/icon.svelte +67 -96
  36. package/dist/components/icon/icon.types.d.ts +2 -1
  37. package/dist/components/index.d.ts +2 -0
  38. package/dist/components/index.js +1 -0
  39. package/dist/components/list/list.svelte +193 -194
  40. package/dist/components/list/list.types.d.ts +5 -7
  41. package/dist/components/list/modules/list-item.svelte +134 -147
  42. package/dist/components/modal/modal.svelte +239 -222
  43. package/dist/components/modal/modal.types.d.ts +6 -6
  44. package/dist/components/popover/popover.svelte +125 -127
  45. package/dist/components/popover/popover.types.d.ts +4 -11
  46. package/dist/components/separator/separator.svelte +56 -87
  47. package/dist/components/separator/separator.types.d.ts +1 -1
  48. package/dist/components/spacer/spacer.svelte +6 -25
  49. package/dist/components/textfield/textfield.svelte +94 -543
  50. package/dist/components/textfield/textfield.types.d.ts +13 -33
  51. package/dist/components/toolbar/toolbar.svelte +216 -211
  52. package/dist/components/toolbar/toolbar.types.d.ts +8 -9
  53. package/dist/components/tooltip/tooltip.svelte +201 -266
  54. package/dist/components/tooltip/tooltip.types.d.ts +3 -10
  55. package/dist/constants.js +1 -0
  56. package/dist/html-mapped.d.ts +1 -15
  57. package/dist/html-mapped.js +0 -19
  58. package/dist/labs/sheet/sheet.svelte +145 -19
  59. package/dist/labs/sheet/sheet.svelte.d.ts +2 -10
  60. package/dist/labs/sheet/sheet.types.d.ts +16 -0
  61. package/dist/labs/sheet/sheet.types.js +1 -0
  62. package/dist/utils/color.d.ts +2 -2
  63. package/dist/utils/color.js +2 -1
  64. package/dist/utils/components.d.ts +10 -10
  65. package/dist/utils/components.js +16 -75
  66. package/dist/utils/floating.d.ts +58 -0
  67. package/dist/utils/floating.js +131 -0
  68. package/dist/utils/index.d.ts +1 -0
  69. package/dist/utils/index.js +1 -0
  70. package/package.json +3 -3
  71. package/dist/components/dropdown/dropdown.svelte.js +0 -148
  72. package/dist/components/popover/popover.svelte.js +0 -134
  73. package/dist/components/tooltip/tooltip.svelte.js +0 -131
@@ -0,0 +1,474 @@
1
+ <script lang="ts">
2
+ import { useComponentAttrs, useElevation } from '../../utils';
3
+ import type { FieldControlProps, FieldProps } from './field.types.js';
4
+
5
+ let {
6
+ ref = $bindable(),
7
+ children,
8
+ class: className,
9
+ style: styleAttr,
10
+ 's-class': sClass,
11
+ 's-style': sStyle,
12
+ id,
13
+ variant = 'filled',
14
+ size = 'md',
15
+ density = 'default',
16
+ rounded = 'md',
17
+ color,
18
+ elevation,
19
+ disabled = false,
20
+ readonly = false,
21
+ error = false,
22
+ errorMessage,
23
+ message,
24
+ messagePrefix,
25
+ messageSuffix,
26
+ persistentMessage = false,
27
+ counter,
28
+ clearable = false,
29
+ persistentClear = false,
30
+ dirty = false,
31
+ onclear,
32
+ prefix,
33
+ suffix,
34
+ prepend,
35
+ append,
36
+ prependInner,
37
+ appendInner,
38
+ ...rest
39
+ }: FieldProps = $props();
40
+
41
+ const generatedId = $props.id();
42
+
43
+ let attrs = $derived(
44
+ useComponentAttrs('kit-field', { className, sClass, styleAttr, sStyle, color }, rest)
45
+ );
46
+ let elevationState = $derived(useElevation(elevation));
47
+ let hasOutline = $derived(variant === 'outline' || variant === 'surface');
48
+
49
+ let focused = $state(false);
50
+ let controlId = $derived(id || generatedId);
51
+ let messageValue = $derived(error ? errorMessage || message : message);
52
+ let hasMessage = $derived(!!(messageValue || messagePrefix || messageSuffix || counter));
53
+ let messageId = $derived(hasMessage ? `${controlId}-message` : undefined);
54
+ let showMessage = $derived(error || persistentMessage || focused);
55
+ let showClear = $derived(persistentClear || dirty);
56
+
57
+ let control: FieldControlProps = $derived({
58
+ id: controlId,
59
+ 'aria-describedby': messageId,
60
+ 'aria-invalid': error || undefined,
61
+ disabled,
62
+ readonly
63
+ });
64
+ </script>
65
+
66
+ <div
67
+ bind:this={ref}
68
+ class={attrs.class}
69
+ style={attrs.style}
70
+ data-variant={variant}
71
+ data-size={size}
72
+ data-density={density}
73
+ data-rounded={rounded}
74
+ data-disabled={disabled}
75
+ data-readonly={readonly}
76
+ data-error={error}
77
+ data-focused={focused}
78
+ data-with-message={hasMessage}
79
+ onfocusin={() => (focused = true)}
80
+ onfocusout={() => (focused = false)}
81
+ {...attrs.rest}
82
+ >
83
+ {#if prepend}
84
+ <div class="kit-field__prepend">{@render prepend()}</div>
85
+ {/if}
86
+
87
+ <div
88
+ class="kit-field__box"
89
+ data-elevation={elevationState.base}
90
+ data-elevation-hover={elevationState.hover}
91
+ data-elevation-active={elevationState.active}
92
+ >
93
+ {#if hasOutline}
94
+ <span class="outline"></span>
95
+ {:else if variant === 'text'}
96
+ <span class="kit-field__line"></span>
97
+ {/if}
98
+
99
+ {#if prependInner}
100
+ <div class="kit-field__prepend-inner">{@render prependInner()}</div>
101
+ {/if}
102
+
103
+ <div class="kit-field__control">
104
+ {#if prefix}
105
+ <span class="kit-field__prefix">{prefix}</span>
106
+ {/if}
107
+
108
+ {@render children?.(control)}
109
+
110
+ {#if suffix}
111
+ <span class="kit-field__suffix">{suffix}</span>
112
+ {/if}
113
+ </div>
114
+
115
+ {#if clearable}
116
+ <button
117
+ type="button"
118
+ class="kit-field__clear"
119
+ data-visible={showClear}
120
+ aria-label="Clear"
121
+ tabindex={showClear ? undefined : -1}
122
+ {disabled}
123
+ onclick={() => onclear?.()}
124
+ >
125
+ <svg viewBox="0 0 24 24" aria-hidden="true">
126
+ <path
127
+ d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm4.3 12.9-1.4 1.4L12 13.4l-2.9 2.9-1.4-1.4 2.9-2.9-2.9-2.9 1.4-1.4 2.9 2.9 2.9-2.9 1.4 1.4-2.9 2.9z"
128
+ fill="currentColor"
129
+ ></path>
130
+ </svg>
131
+ </button>
132
+ {/if}
133
+
134
+ {#if appendInner}
135
+ <div class="kit-field__append-inner">{@render appendInner()}</div>
136
+ {/if}
137
+ </div>
138
+
139
+ {#if append}
140
+ <div class="kit-field__append">{@render append()}</div>
141
+ {/if}
142
+
143
+ {#if hasMessage}
144
+ <div class="kit-field__message" id={messageId} data-visible={showMessage}>
145
+ {#if messagePrefix}
146
+ <span class="kit-field__message-prefix">{messagePrefix}</span>
147
+ {/if}
148
+ <span class="kit-field__message-text">{messageValue ?? ''}</span>
149
+ {#if counter || messageSuffix}
150
+ <span class="kit-field__message-suffix">{counter ?? messageSuffix}</span>
151
+ {/if}
152
+ </div>
153
+ {/if}
154
+ </div>
155
+
156
+ <style>:where(.kit-field) {
157
+ --kit-field-color: initial;
158
+ --kit-field-on-color: initial;
159
+ --kit-field-active-fg: initial;
160
+ --kit-field-active-shade: initial;
161
+ --kit-field-hover-fg: initial;
162
+ --kit-field-pressed-fg: initial;
163
+ --kit-field-bg: var(--kit-field-color, var(--kit-color-surface-2));
164
+ --kit-field-fg: var(--kit-field-on-color, var(--kit-field-contrast, var(--kit-color-text)));
165
+ --kit-field-ink: var(--kit-field-color, var(--kit-color-text));
166
+ --kit-field-hover: color-mix(in oklab, var(--kit-field-bg), var(--kit-field-fg) 8%);
167
+ --kit-field-pressed: color-mix(in oklab, var(--kit-field-bg), var(--kit-field-fg) 14%);
168
+ --kit-field-soft: color-mix(in oklab, var(--kit-field-bg) 16%, transparent);
169
+ --kit-field-border: color-mix(in oklab, var(--kit-field-bg), var(--kit-field-fg) 20%);
170
+ --kit-field-active: color-mix(
171
+ in oklab,
172
+ var(--kit-field-color),
173
+ var(--kit-field-fg) var(--kit-field-active-shade, 14%)
174
+ );
175
+ }
176
+ @supports (color: color(from red srgb-linear r g b)) {
177
+ :where(.kit-field) {
178
+ --kit-field-contrast: color(from var(--kit-field-color) srgb-linear clamp(0, (0.1791 - (0.2126 * r + 0.7152 * g + 0.0722 * b)) * 100000, 1) clamp(0, (0.1791 - (0.2126 * r + 0.7152 * g + 0.0722 * b)) * 100000, 1) clamp(0, (0.1791 - (0.2126 * r + 0.7152 * g + 0.0722 * b)) * 100000, 1)/1);
179
+ }
180
+ }
181
+ :where(.kit-field) {
182
+ --kit-field-padding: calc(var(--kit-field-p) + var(--kit-field-density-offset) / 2);
183
+ }
184
+
185
+ .kit-field {
186
+ display: grid;
187
+ grid-template-areas: "prepend box append";
188
+ grid-template-columns: auto minmax(0, 1fr) auto;
189
+ align-items: start;
190
+ column-gap: var(--kit-field-gap);
191
+ width: 100%;
192
+ font-size: var(--kit-field-font);
193
+ }
194
+ .kit-field[data-with-message=true] {
195
+ grid-template-areas: "prepend box append" ". message .";
196
+ }
197
+ .kit-field[data-disabled=true] {
198
+ opacity: var(--kit-disabled-opacity, 0.55);
199
+ pointer-events: none;
200
+ }
201
+ .kit-field__prepend, .kit-field__append {
202
+ display: flex;
203
+ align-items: center;
204
+ height: 100%;
205
+ }
206
+ .kit-field__prepend {
207
+ grid-area: prepend;
208
+ }
209
+ .kit-field__append {
210
+ grid-area: append;
211
+ }
212
+ .kit-field__box {
213
+ position: relative;
214
+ grid-area: box;
215
+ display: flex;
216
+ align-items: center;
217
+ gap: var(--kit-field-gap);
218
+ box-sizing: border-box;
219
+ min-width: 0;
220
+ min-height: calc(var(--kit-field-h) + var(--kit-field-density-offset) / 2);
221
+ padding-inline: var(--kit-field-padding);
222
+ border-radius: var(--kit-field-radius);
223
+ background-color: var(--kit-field-bg);
224
+ color: var(--kit-field-fg);
225
+ transition-property: background-color, color, box-shadow;
226
+ transition-duration: var(--kit-animation-component);
227
+ transition-timing-function: ease;
228
+ }
229
+ @media (prefers-reduced-motion: reduce) {
230
+ .kit-field__box {
231
+ transition: none;
232
+ }
233
+ }
234
+ .kit-field[data-focused=true] .kit-field__box {
235
+ outline: 2px solid var(--kit-color-focus);
236
+ outline-offset: 2px;
237
+ }
238
+ .kit-field__prepend-inner, .kit-field__append-inner, .kit-field__clear {
239
+ position: relative;
240
+ z-index: 1;
241
+ display: inline-flex;
242
+ flex: none;
243
+ align-items: center;
244
+ }
245
+ .kit-field__control {
246
+ position: relative;
247
+ z-index: 1;
248
+ display: flex;
249
+ flex: 1 1 auto;
250
+ align-items: center;
251
+ gap: 0.375rem;
252
+ min-width: 0;
253
+ }
254
+ .kit-field__prefix, .kit-field__suffix {
255
+ display: inline-flex;
256
+ align-items: center;
257
+ white-space: nowrap;
258
+ color: color-mix(in oklab, currentColor, transparent 20%);
259
+ }
260
+ .kit-field__clear {
261
+ appearance: none;
262
+ justify-content: center;
263
+ padding: 0;
264
+ border: 0;
265
+ background: none;
266
+ color: inherit;
267
+ cursor: pointer;
268
+ opacity: 0;
269
+ pointer-events: none;
270
+ }
271
+ .kit-field__clear[data-visible=true] {
272
+ opacity: 1;
273
+ pointer-events: auto;
274
+ }
275
+ .kit-field__clear svg {
276
+ display: block;
277
+ width: var(--kit-field-icon);
278
+ height: var(--kit-field-icon);
279
+ }
280
+ .kit-field__line {
281
+ position: absolute;
282
+ right: 0;
283
+ bottom: 0;
284
+ left: 0;
285
+ height: var(--kit-outline-weight);
286
+ background-color: var(--kit-field-border);
287
+ pointer-events: none;
288
+ }
289
+ .kit-field[data-error=true] {
290
+ --kit-field-border: var(--kit-color-error);
291
+ }
292
+ .kit-field__message {
293
+ grid-area: message;
294
+ display: grid;
295
+ grid-template-columns: max-content minmax(0, 1fr) max-content;
296
+ gap: var(--kit-field-gap);
297
+ align-items: start;
298
+ min-height: 0.875rem;
299
+ padding-inline: var(--kit-field-padding);
300
+ font-size: 0.75rem;
301
+ line-height: 1.2;
302
+ opacity: 0;
303
+ }
304
+ .kit-field__message[data-visible=true] {
305
+ opacity: 1;
306
+ }
307
+ .kit-field[data-error=true] .kit-field__message {
308
+ color: var(--kit-color-error);
309
+ }
310
+ .kit-field__message-text {
311
+ word-break: break-word;
312
+ }
313
+ .kit-field__message-suffix {
314
+ text-align: end;
315
+ }
316
+
317
+ :where(.kit-field .outline) {
318
+ --outline-color: var(--kit-field-border);
319
+ }
320
+
321
+ /**
322
+ * size
323
+ * @link https://lapikit.dev/docs/components/field#size
324
+ */
325
+ :where(.kit-field[data-size=xs]) {
326
+ --kit-field-h: 1.5rem;
327
+ --kit-field-p: 0.5rem;
328
+ --kit-field-gap: 0.125rem;
329
+ --kit-field-font: var(--kit-font-xs);
330
+ --kit-field-icon: 0.875rem;
331
+ }
332
+ :where(.kit-field[data-size=xs]) :global(.kit-icon[data-size='default']) {
333
+ --kit-icon-current-size: var(--kit-field-icon);
334
+ }
335
+
336
+ :where(.kit-field[data-size=sm]) {
337
+ --kit-field-h: 2rem;
338
+ --kit-field-p: 0.625rem;
339
+ --kit-field-gap: 0.25rem;
340
+ --kit-field-font: var(--kit-font-sm);
341
+ --kit-field-icon: 1rem;
342
+ }
343
+ :where(.kit-field[data-size=sm]) :global(.kit-icon[data-size='default']) {
344
+ --kit-icon-current-size: var(--kit-field-icon);
345
+ }
346
+
347
+ :where(.kit-field[data-size=md]) {
348
+ --kit-field-h: 2.5rem;
349
+ --kit-field-p: 0.75rem;
350
+ --kit-field-gap: 0.25rem;
351
+ --kit-field-font: var(--kit-font-lg);
352
+ --kit-field-icon: 1.125rem;
353
+ }
354
+ :where(.kit-field[data-size=md]) :global(.kit-icon[data-size='default']) {
355
+ --kit-icon-current-size: var(--kit-field-icon);
356
+ }
357
+
358
+ :where(.kit-field[data-size=lg]) {
359
+ --kit-field-h: 3rem;
360
+ --kit-field-p: 0.875rem;
361
+ --kit-field-gap: 0.25rem;
362
+ --kit-field-font: var(--kit-font-lg);
363
+ --kit-field-icon: 1.25rem;
364
+ }
365
+ :where(.kit-field[data-size=lg]) :global(.kit-icon[data-size='default']) {
366
+ --kit-icon-current-size: var(--kit-field-icon);
367
+ }
368
+
369
+ :where(.kit-field[data-size=xl]) {
370
+ --kit-field-h: 3.5rem;
371
+ --kit-field-p: 1rem;
372
+ --kit-field-gap: 0.375rem;
373
+ --kit-field-font: var(--kit-font-xl);
374
+ --kit-field-icon: 1.375rem;
375
+ }
376
+ :where(.kit-field[data-size=xl]) :global(.kit-icon[data-size='default']) {
377
+ --kit-icon-current-size: var(--kit-field-icon);
378
+ }
379
+
380
+ /**
381
+ * variant
382
+ * @link https://lapikit.dev/docs/components/field#variants
383
+ */
384
+ :where(.kit-field[data-variant=tonal]) {
385
+ --kit-field-bg: color-mix(in oklab, var(--kit-field-ink) 16%, transparent);
386
+ --kit-field-fg: var(--kit-field-ink);
387
+ --kit-field-border: transparent;
388
+ --kit-field-active: color-mix(in oklab, var(--kit-field-ink) 28%, transparent);
389
+ --kit-field-active-fg: var(--kit-field-ink);
390
+ }
391
+
392
+ :where(.kit-field[data-variant=outline]) {
393
+ --kit-field-bg: transparent;
394
+ --kit-field-fg: var(--kit-field-ink);
395
+ --kit-field-border: var(--kit-field-color, var(--kit-color-border));
396
+ --kit-field-active: color-mix(in oklab, var(--kit-field-ink) 14%, transparent);
397
+ --kit-field-active-fg: var(--kit-field-ink);
398
+ }
399
+
400
+ :where(.kit-field[data-variant=surface]) {
401
+ --kit-field-bg: color-mix(in oklab, var(--kit-field-ink) 8%, transparent);
402
+ --kit-field-fg: var(--kit-field-ink);
403
+ --kit-field-border: color-mix(in oklab, var(--kit-field-ink) 35%, transparent);
404
+ --kit-field-active: color-mix(in oklab, var(--kit-field-ink) 18%, transparent);
405
+ --kit-field-active-fg: var(--kit-field-ink);
406
+ }
407
+
408
+ :where(.kit-field[data-variant=text]) {
409
+ --kit-field-bg: transparent;
410
+ --kit-field-fg: var(--kit-field-ink);
411
+ --kit-field-border: transparent;
412
+ --kit-field-active: color-mix(in oklab, var(--kit-field-ink) 14%, transparent);
413
+ --kit-field-active-fg: var(--kit-field-ink);
414
+ }
415
+
416
+ :where(.kit-field[data-variant=text]) {
417
+ --kit-field-border: var(--kit-field-color, var(--kit-color-border));
418
+ }
419
+
420
+ /**
421
+ * rounded
422
+ * @link https://lapikit.dev/docs/customize
423
+ */
424
+ :where(.kit-field[data-rounded="0"]) {
425
+ --kit-field-radius: var(--kit-shape-none);
426
+ }
427
+
428
+ :where(.kit-field[data-rounded=xs]) {
429
+ --kit-field-radius: var(--kit-shape-xs);
430
+ }
431
+
432
+ :where(.kit-field[data-rounded=sm]) {
433
+ --kit-field-radius: var(--kit-shape-sm);
434
+ }
435
+
436
+ :where(.kit-field[data-rounded=md]) {
437
+ --kit-field-radius: var(--kit-shape-md);
438
+ }
439
+
440
+ :where(.kit-field[data-rounded=lg]) {
441
+ --kit-field-radius: var(--kit-shape-lg);
442
+ }
443
+
444
+ :where(.kit-field[data-rounded=xl]) {
445
+ --kit-field-radius: var(--kit-shape-xl);
446
+ }
447
+
448
+ :where(.kit-field[data-rounded=full]) {
449
+ --kit-field-radius: var(--kit-shape-full);
450
+ }
451
+
452
+ /**
453
+ * density
454
+ * @link https://lapikit.dev/docs/components/field#density
455
+ */
456
+ :where(.kit-field[data-density=dense]) {
457
+ --kit-field-density-offset: var(--kit-density-dense);
458
+ }
459
+
460
+ :where(.kit-field[data-density=compact]) {
461
+ --kit-field-density-offset: var(--kit-density-compact);
462
+ }
463
+
464
+ :where(.kit-field[data-density=default]) {
465
+ --kit-field-density-offset: var(--kit-density-default);
466
+ }
467
+
468
+ :where(.kit-field[data-density=comfortable]) {
469
+ --kit-field-density-offset: var(--kit-density-comfortable);
470
+ }
471
+
472
+ :where(.kit-field[data-density=spacious]) {
473
+ --kit-field-density-offset: var(--kit-density-spacious);
474
+ }</style>
@@ -0,0 +1,4 @@
1
+ import type { FieldProps } from './field.types.ts';
2
+ declare const Field: import("svelte").Component<FieldProps, {}, "ref">;
3
+ type Field = ReturnType<typeof Field>;
4
+ export default Field;
@@ -0,0 +1,46 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { ColorProps, Component, ElevationProps, RoundedType, SizeType } from '../../@types';
3
+ export type FieldVariant = 'filled' | 'tonal' | 'outline' | 'surface' | 'text';
4
+ /** The attributes to spread on the control (input, textarea, select...) */
5
+ export interface FieldControlProps {
6
+ id: string;
7
+ 'aria-describedby': string | undefined;
8
+ 'aria-invalid': true | undefined;
9
+ disabled: boolean;
10
+ readonly: boolean;
11
+ }
12
+ export interface FieldBaseProps {
13
+ variant?: FieldVariant;
14
+ size?: SizeType;
15
+ density?: 'dense' | 'compact' | 'default' | 'comfortable' | 'spacious';
16
+ rounded?: RoundedType | 'full';
17
+ color?: ColorProps;
18
+ elevation?: ElevationProps;
19
+ disabled?: boolean;
20
+ readonly?: boolean;
21
+ error?: boolean;
22
+ errorMessage?: string;
23
+ message?: string;
24
+ messagePrefix?: string;
25
+ messageSuffix?: string;
26
+ persistentMessage?: boolean;
27
+ clearable?: boolean;
28
+ persistentClear?: boolean;
29
+ prefix?: string;
30
+ suffix?: string;
31
+ append?: Snippet;
32
+ prepend?: Snippet;
33
+ prependInner?: Snippet;
34
+ appendInner?: Snippet;
35
+ }
36
+ export interface FieldProps extends Omit<Component, 'children'>, FieldBaseProps {
37
+ ref?: HTMLElement | null;
38
+ /** id of the control, generated when empty */
39
+ id?: string;
40
+ /** the field holds a value: shows the clear button */
41
+ dirty?: boolean;
42
+ /** text at the end of the message line, the counter of a textfield */
43
+ counter?: string;
44
+ onclear?: () => void;
45
+ children?: Snippet<[FieldControlProps]>;
46
+ }
@@ -0,0 +1 @@
1
+ export {};