lapikit 0.0.0-insiders.e877f7f → 0.0.0-insiders.ee9a471

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 (186) hide show
  1. package/bin/configuration.js +304 -0
  2. package/bin/helper.js +23 -0
  3. package/bin/index.js +41 -0
  4. package/bin/lapikit.js +37 -5
  5. package/bin/legacy.js +34 -0
  6. package/bin/modules/adapter.js +3 -3
  7. package/bin/modules/plugin.js +223 -0
  8. package/bin/presets.js +26 -0
  9. package/bin/prompts.js +100 -0
  10. package/dist/actions/index.d.ts +1 -0
  11. package/dist/actions/index.js +1 -0
  12. package/dist/assets/icons/arrow-down.svelte +12 -0
  13. package/dist/assets/icons/arrow-down.svelte.d.ts +18 -0
  14. package/dist/assets/icons/arrow-up.svelte +12 -0
  15. package/dist/assets/icons/arrow-up.svelte.d.ts +18 -0
  16. package/dist/assets/icons/close-fill.svelte +12 -0
  17. package/dist/assets/icons/close-fill.svelte.d.ts +18 -0
  18. package/dist/assets/icons/loading-fill.svelte +2 -0
  19. package/dist/assets/icons/loading-fill.svelte.d.ts +6 -14
  20. package/dist/colors.css +0 -0
  21. package/dist/components/accordion/accordion.css +113 -0
  22. package/dist/components/accordion/accordion.svelte +155 -0
  23. package/dist/components/accordion/accordion.svelte.d.ts +4 -0
  24. package/dist/components/accordion/accordion.svelte.js +24 -0
  25. package/dist/components/accordion/modules/accordion-item.svelte +94 -0
  26. package/dist/components/accordion/modules/accordion-item.svelte.d.ts +4 -0
  27. package/dist/components/accordion/types.d.ts +33 -0
  28. package/dist/components/accordion/types.js +1 -0
  29. package/dist/components/alert/alert.css +137 -0
  30. package/dist/components/alert/alert.svelte +211 -0
  31. package/dist/components/alert/alert.svelte.d.ts +4 -0
  32. package/dist/components/alert/types.d.ts +28 -0
  33. package/dist/components/alert/types.js +1 -0
  34. package/dist/components/app/app.css +16 -0
  35. package/dist/components/app/app.svelte +55 -3
  36. package/dist/components/appbar/appbar.css +48 -0
  37. package/dist/components/appbar/appbar.svelte +85 -0
  38. package/dist/components/appbar/appbar.svelte.d.ts +4 -0
  39. package/dist/components/appbar/types.d.ts +15 -0
  40. package/dist/components/appbar/types.js +1 -0
  41. package/dist/components/aspect-ratio/aspect-ratio.css +19 -0
  42. package/dist/components/aspect-ratio/aspect-ratio.svelte +66 -0
  43. package/dist/components/aspect-ratio/aspect-ratio.svelte.d.ts +4 -0
  44. package/dist/components/aspect-ratio/types.d.ts +5 -0
  45. package/dist/components/aspect-ratio/types.js +1 -0
  46. package/dist/components/avatar/avatar.css +109 -0
  47. package/dist/components/avatar/avatar.svelte +160 -0
  48. package/dist/components/avatar/avatar.svelte.d.ts +4 -0
  49. package/dist/components/avatar/types.d.ts +22 -0
  50. package/dist/components/avatar/types.js +1 -0
  51. package/dist/components/button/button.css +165 -194
  52. package/dist/components/button/button.svelte +269 -31
  53. package/dist/components/button/button.svelte.d.ts +2 -2
  54. package/dist/components/button/types.d.ts +7 -5
  55. package/dist/components/card/card.css +115 -0
  56. package/dist/components/card/card.svelte +171 -0
  57. package/dist/components/card/card.svelte.d.ts +4 -0
  58. package/dist/components/card/types.d.ts +18 -0
  59. package/dist/components/card/types.js +1 -0
  60. package/dist/components/chip/chip.css +231 -0
  61. package/dist/components/chip/chip.svelte +342 -0
  62. package/dist/components/chip/chip.svelte.d.ts +4 -0
  63. package/dist/components/chip/types.d.ts +32 -0
  64. package/dist/components/chip/types.js +1 -0
  65. package/dist/components/dialog/dialog.css +136 -0
  66. package/dist/components/dialog/dialog.svelte +211 -0
  67. package/dist/components/dialog/dialog.svelte.d.ts +4 -0
  68. package/dist/components/dialog/types.d.ts +24 -0
  69. package/dist/components/dialog/types.js +1 -0
  70. package/dist/components/dropdown/dropdown.css +4 -4
  71. package/dist/components/dropdown/dropdown.svelte +24 -0
  72. package/dist/components/icon/icon.css +16 -11
  73. package/dist/components/icon/icon.svelte +89 -0
  74. package/dist/components/index.d.ts +17 -1
  75. package/dist/components/index.js +17 -1
  76. package/dist/components/list/list.css +221 -0
  77. package/dist/components/list/list.svelte +243 -0
  78. package/dist/components/list/list.svelte.d.ts +4 -0
  79. package/dist/components/list/modules/list-item.svelte +275 -0
  80. package/dist/components/list/modules/list-item.svelte.d.ts +4 -0
  81. package/dist/components/list/types.d.ts +33 -0
  82. package/dist/components/list/types.js +1 -0
  83. package/dist/components/modal/modal.css +145 -0
  84. package/dist/components/modal/modal.svelte +248 -0
  85. package/dist/components/modal/modal.svelte.d.ts +4 -0
  86. package/dist/components/modal/types.d.ts +26 -0
  87. package/dist/components/modal/types.js +1 -0
  88. package/dist/components/popover/popover.css +4 -4
  89. package/dist/components/popover/popover.svelte +24 -0
  90. package/dist/components/separator/separator.css +46 -0
  91. package/dist/components/separator/separator.svelte +85 -0
  92. package/dist/components/separator/separator.svelte.d.ts +4 -0
  93. package/dist/components/separator/types.d.ts +11 -0
  94. package/dist/components/separator/types.js +1 -0
  95. package/dist/components/spacer/spacer.css +3 -0
  96. package/dist/components/spacer/spacer.svelte +12 -0
  97. package/dist/components/spacer/spacer.svelte.d.ts +4 -0
  98. package/dist/components/spacer/types.d.ts +4 -0
  99. package/dist/components/spacer/types.js +1 -0
  100. package/dist/components/textfield/textfield.css +305 -0
  101. package/dist/components/textfield/textfield.svelte +463 -0
  102. package/dist/components/textfield/textfield.svelte.d.ts +4 -0
  103. package/dist/components/textfield/types.d.ts +37 -0
  104. package/dist/components/textfield/types.js +1 -0
  105. package/dist/components/toolbar/toolbar.css +129 -0
  106. package/dist/components/toolbar/toolbar.svelte +182 -0
  107. package/dist/components/toolbar/toolbar.svelte.d.ts +4 -0
  108. package/dist/components/toolbar/types.d.ts +27 -0
  109. package/dist/components/toolbar/types.js +1 -0
  110. package/dist/components/tooltip/tooltip.css +4 -4
  111. package/dist/components/tooltip/tooltip.svelte +127 -0
  112. package/dist/index.d.ts +27 -1
  113. package/dist/index.js +27 -3
  114. package/dist/internal/assets.svelte.d.ts +1 -0
  115. package/dist/internal/assets.svelte.js +13 -0
  116. package/dist/internal/config/presets.d.ts +136 -0
  117. package/dist/internal/config/presets.js +121 -0
  118. package/dist/internal/config/variables.d.ts +20 -0
  119. package/dist/internal/config/variables.js +20 -0
  120. package/dist/internal/core/formatter/component.d.ts +5 -0
  121. package/dist/internal/core/formatter/component.js +63 -0
  122. package/dist/internal/core/formatter/index.d.ts +6 -0
  123. package/dist/internal/core/formatter/index.js +30 -0
  124. package/dist/internal/core/formatter/styles.d.ts +4 -0
  125. package/dist/internal/core/formatter/styles.js +15 -0
  126. package/dist/internal/core/formatter/theme.d.ts +5 -0
  127. package/dist/internal/core/formatter/theme.js +28 -0
  128. package/dist/internal/core/formatter/typography.d.ts +5 -0
  129. package/dist/internal/core/formatter/typography.js +12 -0
  130. package/dist/internal/deepMerge.d.ts +44 -0
  131. package/dist/internal/deepMerge.js +80 -0
  132. package/dist/internal/helpers/parser.d.ts +10 -0
  133. package/dist/internal/helpers/parser.js +92 -0
  134. package/dist/internal/index.d.ts +1 -0
  135. package/dist/internal/index.js +1 -0
  136. package/dist/internal/plugins/vite.d.ts +8 -0
  137. package/dist/internal/plugins/vite.js +25 -0
  138. package/dist/internal/ripple.d.ts +12 -0
  139. package/dist/internal/ripple.js +93 -0
  140. package/dist/internal/scroll.d.ts +1 -0
  141. package/dist/internal/scroll.js +6 -0
  142. package/dist/internal/types/configuration.d.ts +40 -0
  143. package/dist/internal/types/configuration.js +1 -0
  144. package/dist/internal/types/index.d.ts +1 -0
  145. package/dist/internal/types/index.js +1 -0
  146. package/dist/internal/unit.d.ts +1 -0
  147. package/dist/internal/unit.js +11 -0
  148. package/dist/labs/index.d.ts +4 -0
  149. package/dist/labs/index.js +5 -0
  150. package/dist/labs/my-component-style-global.svelte +6 -0
  151. package/dist/labs/my-component-style-global.svelte.d.ts +18 -0
  152. package/dist/labs/my-component-style-import.svelte +15 -0
  153. package/dist/labs/my-component-style-import.svelte.d.ts +18 -0
  154. package/dist/labs/my-component-style-mixed.svelte +23 -0
  155. package/dist/labs/my-component-style-mixed.svelte.d.ts +18 -0
  156. package/dist/labs/my-component.svelte +16 -0
  157. package/dist/labs/my-component.svelte.d.ts +18 -0
  158. package/dist/labs/style-mixed.css +7 -0
  159. package/dist/labs/style.css +7 -0
  160. package/dist/labs.css +25 -0
  161. package/dist/plugin/css.d.ts +1 -0
  162. package/dist/plugin/css.js +73 -0
  163. package/dist/plugin/preset-v2.d.ts +108 -0
  164. package/dist/plugin/preset-v2.js +126 -0
  165. package/dist/plugin/vitejs.d.ts +5 -1
  166. package/dist/plugin/vitejs.js +32 -3
  167. package/dist/preset.js +2 -2
  168. package/dist/stores/breakpoints.d.ts +6 -0
  169. package/dist/stores/breakpoints.js +14 -0
  170. package/dist/stores/components.d.ts +8 -0
  171. package/dist/stores/components.js +26 -0
  172. package/dist/stores/devices.d.ts +6 -0
  173. package/dist/stores/devices.js +9 -0
  174. package/dist/stores/index.d.ts +4 -4
  175. package/dist/stores/index.js +4 -23
  176. package/dist/stores/themes.d.ts +8 -0
  177. package/dist/stores/themes.js +34 -0
  178. package/dist/style/animation.css +42 -0
  179. package/dist/style/css.js +3 -0
  180. package/dist/style/normalize.css +2 -0
  181. package/dist/style/parser/color.js +2 -2
  182. package/dist/style/parser/device.js +31 -19
  183. package/dist/style/variable.css +12 -0
  184. package/dist/utils/convert.d.ts +1 -0
  185. package/dist/utils/convert.js +17 -0
  186. package/package.json +21 -5
@@ -0,0 +1,463 @@
1
+ <script lang="ts">
2
+ import { getAssets } from '../../internal/index.js';
3
+ import type { TextfieldProps } from './types.js';
4
+
5
+ //external
6
+ import { Icon } from '../index.js';
7
+
8
+ let {
9
+ ref = $bindable(),
10
+ prepend,
11
+ append,
12
+ prependInner,
13
+ appendInner,
14
+ value = $bindable(),
15
+ type = 'text',
16
+ density = 'default',
17
+ size = 'md',
18
+ variant = 'filled',
19
+ placeholder,
20
+ light,
21
+ dark,
22
+ counter,
23
+ min,
24
+ max,
25
+ prefix,
26
+ suffix,
27
+ message,
28
+ messagePrefix,
29
+ messageSuffix,
30
+ clearable,
31
+ persistentClear,
32
+ disabled,
33
+ error,
34
+ errorMessage,
35
+ persistentMessage,
36
+ hideSpinButtons, // only type="number"
37
+ readonly,
38
+ color,
39
+ background,
40
+ rounded,
41
+ ...rest
42
+ }: TextfieldProps = $props();
43
+
44
+ const assets = getAssets();
45
+
46
+ let counterValue: number = $state(0);
47
+ let displayMessage: boolean = $state(false);
48
+ let displayClear: boolean = $state(false);
49
+
50
+ const inputClear = () => {
51
+ value = undefined;
52
+ };
53
+
54
+ const handleFocus = () => {
55
+ if (!error && !persistentMessage) displayMessage = true;
56
+ };
57
+
58
+ const handleBlur = () => {
59
+ if (!error && !persistentMessage) displayMessage = false;
60
+ };
61
+
62
+ $effect(() => {
63
+ if (persistentClear) displayClear = true;
64
+ if (persistentMessage) displayMessage = true;
65
+ else if (error) displayMessage = true;
66
+ else if (!error) displayMessage = false;
67
+ });
68
+
69
+ $effect(() => {
70
+ const valueStr = value?.toString() || '';
71
+
72
+ if (valueStr && typeof max === 'number' && max > 0 && valueStr.length > max) {
73
+ const truncated = valueStr.slice(0, max);
74
+ if (typeof value === 'number') {
75
+ const numValue = Number(truncated);
76
+ value = isNaN(numValue) ? undefined : numValue;
77
+ } else {
78
+ value = truncated;
79
+ }
80
+ }
81
+
82
+ counterValue = valueStr.length;
83
+ });
84
+
85
+ $effect(() => {
86
+ if (!persistentClear) {
87
+ if (value) displayClear = true;
88
+ else displayClear = false;
89
+ }
90
+ });
91
+ </script>
92
+
93
+ <div
94
+ bind:this={ref}
95
+ {...rest}
96
+ class={[
97
+ 'kit-textfield',
98
+ light && 'light',
99
+ dark && 'dark',
100
+ size && assets.className('textfield', 'size', size),
101
+ variant && assets.className('textfield', 'variant', variant),
102
+ density && assets.className('textfield', 'density', density),
103
+ disabled && 'kit-textfield--disabled',
104
+ readonly && 'kit-textfield--readonly',
105
+ error && 'kit-textfield--error',
106
+ type === 'number' && hideSpinButtons && 'kit-textfield--hide-spin-buttons',
107
+ rest.class
108
+ ]}
109
+ style:--base={assets.color(background)}
110
+ style:--on={assets.color(color)}
111
+ style:--shape={assets.shape(rounded)}
112
+ >
113
+ {#if prepend}
114
+ <div class="kit-textfield-prepend">
115
+ {@render prepend?.()}
116
+ </div>
117
+ {/if}
118
+ <div class="kit-textfield-control">
119
+ <div class="kit-field">
120
+ {#if prependInner}
121
+ <div class="kit-textfield-prepend-inner">
122
+ {@render prependInner?.()}
123
+ </div>
124
+ {/if}
125
+ <div class="kit-field--field">
126
+ {#if prefix}
127
+ <span class="kit-field--field-prefix">
128
+ <span class="kit-textfield--field-prefix--text">{prefix}</span>
129
+ </span>
130
+ {/if}
131
+ <input
132
+ {type}
133
+ size="1"
134
+ {placeholder}
135
+ bind:value
136
+ onfocus={handleFocus}
137
+ onblur={handleBlur}
138
+ {...max && { maxlength: max }}
139
+ {...min && { minlength: min }}
140
+ {...disabled && { disabled: true }}
141
+ {...readonly && { readonly: true }}
142
+ />
143
+ {#if suffix}
144
+ <span class="kit-field--field-suffix">
145
+ <span class="kit-textfield--field-suffix--text">{suffix}</span>
146
+ </span>
147
+ {/if}
148
+ </div>
149
+ {#if clearable}
150
+ <div
151
+ class={['kit-textfield-clearable', displayClear && 'kit-textfield-clearable--visible']}
152
+ >
153
+ <Icon icon="mgc_close_circle_fill" onclick={() => inputClear()} />
154
+ </div>
155
+ {/if}
156
+
157
+ {#if appendInner}
158
+ <div class="kit-textfield-append-inner">
159
+ {@render appendInner?.()}
160
+ </div>
161
+ {/if}
162
+
163
+ <div class="kit-textfield-outline"></div>
164
+ </div>
165
+ </div>
166
+ {#if append}
167
+ <div class="kit-textfield-append">
168
+ {@render append?.()}
169
+ </div>
170
+ {/if}
171
+
172
+ <div class={['kit-textfield-message', displayMessage && 'kit-textfield-message--visible']}>
173
+ <div class={['kit-message', error && 'kit-message--message-error']}>
174
+ {#if messagePrefix}
175
+ <div class="kit-message--prepend">{messagePrefix}</div>
176
+ {/if}
177
+ {#if message || error}
178
+ <div class="kit-message--message">
179
+ {error ? errorMessage || message : message}
180
+ </div>
181
+ {/if}
182
+ {#if counter || messageSuffix}
183
+ <div class="kit-message--append">
184
+ {#if counter}
185
+ {counterValue}{max ? `/${max}` : ''}
186
+ {:else if messageSuffix}
187
+ {messageSuffix}
188
+ {/if}
189
+ </div>
190
+ {/if}
191
+ </div>
192
+ </div>
193
+ </div>
194
+
195
+ <style>/* root */
196
+ .kit-textfield {
197
+ --textfield-color: var(--on, var(--kit-on-container));
198
+ --textfield-background: var(--base, var(--kit-container));
199
+ --textfield-radius: var(--shape, var(--kit-radius-md));
200
+ }
201
+ .kit-textfield {
202
+ flex: 1 1 auto;
203
+ font-size: 1rem;
204
+ display: grid;
205
+ grid-template-areas:
206
+ 'prepend control append'
207
+ 'a messages b';
208
+ grid-template-columns: max-content minmax(0, 1fr) max-content;
209
+ grid-template-rows: 1fr auto;
210
+ }
211
+ /* variant */
212
+ .kit-textfield[breakpoint]kit-textfield--variant-filled .kit-field {
213
+ --textfield-border-color: var(--textfield-background);
214
+ background-color: var(--textfield-background);
215
+ border-radius: var(--textfield-radius);
216
+ color: var(--textfield-color);
217
+ }
218
+ .kit-textfield[breakpoint]kit-textfield--variant-outline .kit-field {
219
+ --textfield-border-color: var(--textfield-color);
220
+ background-color: var(--textfield-background);
221
+ border-radius: var(--textfield-radius);
222
+ color: var(--textfield-color);
223
+ }
224
+ .kit-textfield[breakpoint]kit-textfield--variant-filled .kit-textfield-outline,
225
+ .kit-textfield[breakpoint]kit-textfield--variant-outline .kit-textfield-outline {
226
+ border-bottom: 1px solid var(--textfield-border-color);
227
+ border-top: 1px solid var(--textfield-border-color);
228
+ border-right: 1px solid var(--textfield-border-color);
229
+ border-left: 1px solid var(--textfield-border-color);
230
+ border-radius: var(--textfield-radius);
231
+ }
232
+ .kit-textfield[breakpoint]kit-textfield--variant-text .kit-field {
233
+ --textfield-border-color: var(--textfield-color);
234
+ background-color: transparent;
235
+ border-radius: 0;
236
+ color: var(--textfield-color);
237
+ }
238
+ .kit-textfield[breakpoint]kit-textfield--variant-text .kit-textfield-outline {
239
+ border-bottom: 1px solid var(--textfield-border-color);
240
+ border-top: 0;
241
+ border-right: 0;
242
+ border-left: 0;
243
+ border-radius: 0;
244
+ }
245
+ .kit-textfield--hide-spin-buttons input[type='number'] {
246
+ -moz-appearance: textfield;
247
+ appearance: textfield;
248
+ }
249
+ .kit-textfield--hide-spin-buttons input[type='number']::-webkit-inner-spin-button,
250
+ .kit-textfield--hide-spin-buttons input[type='number']::-webkit-outer-spin-button {
251
+ display: none;
252
+ -webkit-appearance: none;
253
+ }
254
+ .kit-textfield--disabled {
255
+ opacity: 0.5;
256
+ pointer-events: none;
257
+ }
258
+ .kit-textfield--readonly {
259
+ pointer-events: none;
260
+ }
261
+ .kit-textfield--error .kit-textfield-outline {
262
+ border: 1px solid var(--kit-error);
263
+ }
264
+ .kit-textfield-outline {
265
+ align-items: stretch;
266
+ contain: layout;
267
+ display: flex;
268
+ height: 100%;
269
+ left: 0;
270
+ pointer-events: none;
271
+ position: absolute;
272
+ right: 0;
273
+ width: 100%;
274
+ }
275
+ .kit-textfield .kit-textfield-prepend {
276
+ display: flex;
277
+ grid-area: prepend;
278
+ margin-inline-end: 16px;
279
+ align-items: center;
280
+ padding-top: 0;
281
+ }
282
+ .kit-textfield .kit-textfield-append {
283
+ display: flex;
284
+ grid-area: append;
285
+ margin-inline-start: 16px;
286
+ align-items: center;
287
+ padding-top: 0;
288
+ }
289
+ /* control */
290
+ .kit-textfield-control {
291
+ display: flex;
292
+ grid-area: control;
293
+ }
294
+ .kit-textfield-control .kit-textfield-prepend-inner {
295
+ grid-area: prepend-inner;
296
+ display: flex;
297
+ align-items: center;
298
+ padding-top: 0;
299
+ }
300
+ .kit-textfield-control .kit-textfield-clearable {
301
+ cursor: pointer;
302
+ display: flex;
303
+ align-items: center;
304
+ padding-top: 0;
305
+ overflow: hidden;
306
+ margin-inline: 4px;
307
+ grid-area: clear;
308
+ opacity: 0;
309
+ }
310
+ .kit-textfield-clearable.kit-textfield-clearable--visible {
311
+ opacity: 1;
312
+ }
313
+ .kit-textfield-control .kit-textfield-append-inner {
314
+ grid-area: append-inner;
315
+ display: flex;
316
+ align-items: center;
317
+ padding-top: 0;
318
+ }
319
+ /* field prefix suffix */
320
+ .kit-field .kit-field--field .kit-field--field-prefix,
321
+ .kit-field .kit-field--field .kit-field--field-suffix {
322
+ align-items: center;
323
+ cursor: default;
324
+ display: flex;
325
+ transition: inherit;
326
+ white-space: nowrap;
327
+ }
328
+ /* field */
329
+ .kit-textfield-control .kit-field {
330
+ display: grid;
331
+ grid-template-areas: 'prepend-inner field clear append-inner';
332
+ grid-template-columns: max-content minmax(0, 1fr) max-content max-content;
333
+ font-size: calc(var(--prism-spacing) * var(--textfield-multiplier-font-size));
334
+ max-width: 100%;
335
+ contain: layout;
336
+ flex: 1 0;
337
+ grid-area: control;
338
+ position: relative;
339
+ padding: calc(var(--prism-spacing) * var(--textfield-multiplier-x))
340
+ calc(var(--prism-spacing) * var(--textfield-multiplier-y));
341
+ gap: calc(var(--prism-spacing) * var(--textfield-multiplier-gap));
342
+ }
343
+ .kit-textfield-control .kit-field .kit-field--field {
344
+ flex: 1 0;
345
+ grid-area: field;
346
+ position: relative;
347
+ align-items: flex-start;
348
+ display: flex;
349
+ }
350
+ .kit-field .kit-field--field input {
351
+ font: inherit;
352
+ border-radius: 0;
353
+ color: inherit;
354
+ flex: 1;
355
+ min-width: 0;
356
+ align-items: center;
357
+ color: inherit;
358
+ column-gap: 2px;
359
+ display: flex;
360
+ flex-wrap: wrap;
361
+ position: relative;
362
+ width: 100%;
363
+ row-gap: 8px;
364
+ }
365
+ .kit-field .kit-field--field input:focus,
366
+ .kit-field .kit-field--field input:focus-visible,
367
+ .kit-field .kit-field--field input:active {
368
+ outline: none;
369
+ box-shadow: none;
370
+ }
371
+ /* message */
372
+ .kit-textfield-message {
373
+ padding-inline: var(--textfield-spacing-y);
374
+ align-items: flex-end;
375
+ display: flex;
376
+ font-size: 0.75rem;
377
+ grid-area: messages;
378
+ min-height: 22px;
379
+ padding-top: var(--textfield-spacing-x);
380
+ overflow: hidden;
381
+ justify-content: space-between;
382
+ opacity: 0;
383
+ }
384
+ .kit-textfield-message.kit-textfield-message--visible {
385
+ opacity: 1;
386
+ }
387
+ .kit-message {
388
+ flex: 1 1 auto;
389
+ font-size: 12px;
390
+ min-height: 14px;
391
+ min-width: 1px;
392
+ position: relative;
393
+ display: grid;
394
+ gap: calc(var(--prism-spacing) * var(--textfield-multiplier-gap));
395
+ grid-template-areas: 'message-prepend message message-append ';
396
+ grid-template-columns: max-content minmax(0, 1fr) max-content;
397
+ }
398
+ .kit-message.kit-message--message-error {
399
+ color: var(--kit-error);
400
+ }
401
+ .kit-message .kit-message--message {
402
+ line-height: 12px;
403
+ word-break: break-word;
404
+ overflow-wrap: break-word;
405
+ word-wrap: break-word;
406
+ hyphens: auto;
407
+ grid-area: message;
408
+ }
409
+ .kit-message .kit-message--prepend,
410
+ .kit-message .kit-message--append {
411
+ line-height: 12px;
412
+ }
413
+ .kit-message .kit-message--prepend {
414
+ grid-area: message-prepend;
415
+ }
416
+ .kit-message .kit-message--append {
417
+ grid-area: message-append;
418
+ }
419
+ /* size */
420
+ .kit-textfield[breakpoint]kit-textfield--size-xs {
421
+ --textfield-multiplier-x: 2;
422
+ --textfield-multiplier-y: 2;
423
+ --textfield-multiplier-gap: 1;
424
+ --textfield-multiplier-font-size: 6;
425
+ }
426
+ .kit-textfield[breakpoint]kit-textfield--size-sm {
427
+ --textfield-multiplier-x: 3;
428
+ --textfield-multiplier-y: 4;
429
+ --textfield-multiplier-gap: 2;
430
+ --textfield-multiplier-font-size: 7;
431
+ }
432
+ .kit-textfield[breakpoint]kit-textfield--size-md {
433
+ --textfield-multiplier-x: 4;
434
+ --textfield-multiplier-y: 6;
435
+ --textfield-multiplier-gap: 2;
436
+ --textfield-multiplier-font-size: 8;
437
+ }
438
+ .kit-textfield[breakpoint]kit-textfield--size-lg {
439
+ --textfield-multiplier-x: 5;
440
+ --textfield-multiplier-y: 6;
441
+ --textfield-multiplier-gap: 2;
442
+ --textfield-multiplier-font-size: 9;
443
+ }
444
+ .kit-textfield[breakpoint]kit-textfield--size-xl {
445
+ --textfield-multiplier-x: 6;
446
+ --textfield-multiplier-y: 8;
447
+ --textfield-multiplier-gap: 3;
448
+ --textfield-multiplier-font-size: 10;
449
+ }
450
+ /*density */
451
+ .kit-textfield[breakpoint]kit-textfield--density-default {
452
+ --textfield-spacing-x: 0;
453
+ --textfield-spacing-y: calc(var(--prism-spacing) * var(--textfield-multiplier-y));
454
+ }
455
+ .kit-textfield[breakpoint]kit-textfield--density-compact {
456
+ --textfield-spacing-x: calc(0 - 0.5rem);
457
+ --textfield-spacing-y: calc(var(--prism-spacing) * var(--textfield-multiplier-y) - 0.5rem);
458
+ }
459
+ .kit-textfield[breakpoint]kit-textfield--density-comfortable {
460
+ --textfield-spacing-x: calc(0 + 0.5rem);
461
+ --textfield-spacing-y: calc(var(--prism-spacing) * var(--textfield-multiplier-y) + 0.5rem);
462
+ }
463
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { TextfieldProps } from './types.js';
2
+ declare const Textfield: import("svelte").Component<TextfieldProps, {}, "value" | "ref">;
3
+ type Textfield = ReturnType<typeof Textfield>;
4
+ export default Textfield;
@@ -0,0 +1,37 @@
1
+ import type { Component } from '../../internal/types.js';
2
+ import type { Snippet } from 'svelte';
3
+ export interface TextfieldProps extends Component {
4
+ ref?: HTMLElement | null;
5
+ dark?: boolean;
6
+ light?: boolean;
7
+ value?: string | number;
8
+ type?: 'text' | 'email' | 'password' | 'number';
9
+ placeholder?: string;
10
+ counter?: boolean;
11
+ min?: number;
12
+ max?: number;
13
+ variant?: 'outline' | 'text' | 'filled';
14
+ density?: 'compact' | 'comfortable' | 'default';
15
+ error?: boolean;
16
+ errorMessage?: string;
17
+ disabled?: boolean;
18
+ color?: string;
19
+ background?: string;
20
+ size?: string | {
21
+ [key: string]: string;
22
+ };
23
+ readonly?: boolean;
24
+ hideSpinButtons?: boolean;
25
+ persistentMessage?: boolean;
26
+ persistentClear?: boolean;
27
+ clearable?: boolean;
28
+ message?: string;
29
+ messagePrefix?: string;
30
+ messageSuffix?: string;
31
+ append?: Snippet;
32
+ prepend?: Snippet;
33
+ prependInner?: Snippet;
34
+ appendInner?: Snippet;
35
+ prefix?: string;
36
+ suffix?: string;
37
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,129 @@
1
+ .kit-toolbar {
2
+ --toolbar-color: var(--on, var(--kit-on-surface));
3
+ --toolbar-background: var(--base, var(--kit-surface));
4
+ --toolbar-radius: var(--shape, var(--kit-radius-md));
5
+
6
+ display: flex;
7
+ align-items: center;
8
+ /* min-width: max-content; */
9
+ border-style: solid;
10
+ /* transition:
11
+ color 0.5s,
12
+ border-color 0.5s,
13
+ background-color 0.5s; */
14
+
15
+ border-width: 1px;
16
+ border-style: solid;
17
+ border-radius: var(--toolbar-radius);
18
+
19
+ /* theme */
20
+ color: var(--toolbar-color);
21
+ background-color: var(--toolbar-background);
22
+ border-color: var(--toolbar-background);
23
+ }
24
+
25
+ /* density */
26
+ .kit-toolbar[breakpoint]kit-toolbar--density-default {
27
+ border-radius: calc(var(--prism-spacing) * 2.25);
28
+ }
29
+ .kit-toolbar[breakpoint]kit-toolbar--density-default:not([class*='toolbar--orientation-vertical']) {
30
+ height: 3rem;
31
+ padding-inline: calc(var(--prism-spacing) * 1.5);
32
+ }
33
+
34
+ .kit-toolbar[breakpoint]kit-toolbar--density-default[class*='toolbar--orientation-vertical'] {
35
+ width: 3rem;
36
+ padding: calc(var(--prism-spacing) * 1.5) 0;
37
+ }
38
+
39
+ .kit-toolbar[breakpoint]kit-toolbar--density-compact {
40
+ border-radius: calc(var(--prism-spacing) * 1.75);
41
+ }
42
+
43
+ .kit-toolbar[breakpoint]kit-toolbar--density-compact:not([class*='toolbar--orientation-vertical']) {
44
+ height: 2.625rem;
45
+ padding-inline: calc(var(--prism-spacing) * 0.75);
46
+ }
47
+
48
+ .kit-toolbar[breakpoint]kit-toolbar--density-compact[class*='toolbar--orientation-vertical'] {
49
+ width: 2.625rem;
50
+ padding: calc(var(--prism-spacing) * 0.75) 0;
51
+ }
52
+
53
+ .kit-toolbar[breakpoint]kit-toolbar--density-comfortable {
54
+ border-radius: calc(var(--prism-spacing) * 3.5);
55
+ }
56
+
57
+ .kit-toolbar[breakpoint]kit-toolbar--density-comfortable:not(
58
+ [class*='toolbar--orientation-vertical']
59
+ ) {
60
+ height: 3.5rem;
61
+ padding-inline: calc(var(--prism-spacing) * 2.25);
62
+ }
63
+
64
+ .kit-toolbar[breakpoint]kit-toolbar--density-comfortable[class*='toolbar--orientation-vertical'] {
65
+ width: 3.5rem;
66
+ padding: calc(var(--prism-spacing) * 2.25) 0;
67
+ }
68
+
69
+ .kit-toolbar[breakpoint]kit-toolbar--variant-text,
70
+ .kit-toolbar[breakpoint]kit-toolbar--variant-outline,
71
+ .kit-toolbar[breakpoint]kit-toolbar--variant-dash {
72
+ --toolbar-color: var(--base, var(--kit-surface));
73
+ background-color: transparent;
74
+ }
75
+
76
+ .kit-toolbar[breakpoint]kit-toolbar--variant-outline {
77
+ border-color: currentColor;
78
+ }
79
+
80
+ .kit-toolbar[breakpoint]kit-toolbar--variant-dash {
81
+ border-style: dashed;
82
+ border-color: currentColor;
83
+ }
84
+
85
+ .kit-toolbar[breakpoint]kit-toolbar--orientation-horizontal {
86
+ flex-direction: row;
87
+ width: 100%;
88
+ }
89
+
90
+ .kit-toolbar[breakpoint]kit-toolbar--orientation-vertical {
91
+ flex-direction: column;
92
+ min-height: fit-content;
93
+ width: fit-content;
94
+ }
95
+
96
+ /* wrapper */
97
+ .kit-toolbar .kit-toolbar--wrapper {
98
+ display: flex;
99
+ align-items: center;
100
+ /* margin-left: auto;
101
+ margin-right: auto; */
102
+ flex-direction: row;
103
+ height: auto;
104
+ width: 100%;
105
+ }
106
+
107
+ .kit-toolbar[breakpoint]kit-toolbar--orientation-vertical .kit-toolbar--wrapper {
108
+ flex-direction: column;
109
+ height: 100%;
110
+ }
111
+
112
+ /* location */
113
+ .kit-toolbar[breakpoint]kit-toolbar--location-top {
114
+ top: 0px;
115
+ z-index: 1004;
116
+ transform: translateY(0px);
117
+ position: fixed;
118
+ left: 0px;
119
+ width: calc(100% + 0px);
120
+ }
121
+
122
+ .kit-toolbar[breakpoint]kit-toolbar--location-bottom {
123
+ z-index: 1004;
124
+ transform: translateY(0px);
125
+ position: fixed;
126
+ left: 0px;
127
+ width: calc(100% + 0px);
128
+ bottom: 0px;
129
+ }