@likable-hair/svelte 2.0.8 → 3.0.0
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/composed/search/GlobalSearchTextField.css +11 -0
- package/dist/components/composed/search/GlobalSearchTextField.svelte +52 -30
- package/dist/components/composed/search/GlobalSearchTextField.svelte.d.ts +6 -9
- package/dist/components/composed/search/SearchBar.css +10 -0
- package/dist/components/composed/search/SearchBar.svelte +43 -20
- package/dist/components/composed/search/SearchBar.svelte.d.ts +6 -9
- package/dist/components/composed/search/SearchResults.css +5 -0
- package/dist/components/composed/search/SearchResults.svelte +45 -23
- package/dist/components/composed/search/SearchResults.svelte.d.ts +7 -8
- package/dist/components/layouts/CollapsibleSideBarLayout.css +5 -0
- package/dist/components/layouts/CollapsibleSideBarLayout.svelte +6 -7
- package/dist/components/layouts/NewCollapsibleSideBarLayout.svelte +155 -0
- package/dist/components/layouts/NewCollapsibleSideBarLayout.svelte.d.ts +38 -0
- package/dist/components/layouts/StableDividedSideBarLayout.css +16 -0
- package/dist/components/layouts/StableDividedSideBarLayout.svelte +81 -31
- package/dist/components/layouts/StableDividedSideBarLayout.svelte.d.ts +7 -10
- package/dist/components/simple/buttons/Button.css +18 -0
- package/dist/components/simple/buttons/Button.svelte +150 -50
- package/dist/components/simple/buttons/Button.svelte.d.ts +5 -25
- package/dist/components/simple/buttons/LinkButton.css +13 -0
- package/dist/components/simple/buttons/LinkButton.svelte +48 -25
- package/dist/components/simple/buttons/LinkButton.svelte.d.ts +2 -11
- package/dist/components/simple/common/CollapsibleDivider.css +14 -0
- package/dist/components/simple/common/CollapsibleDivider.svelte +81 -25
- package/dist/components/simple/common/CollapsibleDivider.svelte.d.ts +1 -11
- package/dist/components/simple/common/Menu.svelte +32 -2
- package/dist/components/simple/common/Menu.svelte.d.ts +1 -0
- package/dist/components/simple/dates/Calendar.css +10 -0
- package/dist/components/simple/dates/Calendar.svelte +52 -17
- package/dist/components/simple/dates/Calendar.svelte.d.ts +7 -10
- package/dist/components/simple/dates/DatePicker.css +9 -0
- package/dist/components/simple/dates/DatePicker.svelte +74 -55
- package/dist/components/simple/dates/DatePicker.svelte.d.ts +15 -11
- package/dist/components/simple/dates/DatePickerTextField.svelte +148 -0
- package/dist/components/simple/dates/DatePickerTextField.svelte.d.ts +28 -0
- package/dist/components/simple/dates/MonthSelector.css +4 -0
- package/dist/components/simple/dates/MonthSelector.svelte +20 -9
- package/dist/components/simple/dates/MonthSelector.svelte.d.ts +5 -4
- package/dist/components/simple/dates/YearSelector.css +4 -0
- package/dist/components/simple/dates/YearSelector.svelte +23 -10
- package/dist/components/simple/dates/YearSelector.svelte.d.ts +3 -2
- package/dist/components/simple/forms/Autocomplete.css +12 -0
- package/dist/components/simple/forms/Autocomplete.svelte +101 -50
- package/dist/components/simple/forms/Autocomplete.svelte.d.ts +7 -29
- package/dist/components/simple/forms/SimpleTextField.css +17 -0
- package/dist/components/simple/forms/SimpleTextField.svelte +110 -44
- package/dist/components/simple/forms/SimpleTextField.svelte.d.ts +13 -22
- package/dist/components/simple/lists/SelectableMenuList.css +7 -0
- package/dist/components/simple/lists/SelectableMenuList.svelte +107 -0
- package/dist/components/simple/lists/SelectableMenuList.svelte.d.ts +38 -0
- package/dist/components/simple/lists/SelectableVerticalList.svelte +1 -1
- package/dist/components/simple/lists/SidebarMenuList.css +7 -0
- package/dist/components/simple/lists/SidebarMenuList.svelte +43 -15
- package/dist/components/simple/lists/SidebarMenuList.svelte.d.ts +1 -0
- package/dist/components/simple/loaders/CircularLoader.css +5 -0
- package/dist/components/simple/loaders/CircularLoader.svelte +20 -4
- package/dist/components/simple/loaders/CircularLoader.svelte.d.ts +2 -3
- package/dist/components/simple/media/Icon.svelte +18 -7
- package/dist/components/simple/media/Icon.svelte.d.ts +0 -2
- package/dist/components/simple/navigation/Chip.css +14 -0
- package/dist/components/simple/navigation/Chip.svelte +74 -15
- package/dist/components/simple/navigation/Chip.svelte.d.ts +2 -3
- package/dist/components/simple/navigation/Drawer.css +9 -0
- package/dist/components/simple/navigation/Drawer.svelte +81 -74
- package/dist/components/simple/navigation/Drawer.svelte.d.ts +1 -8
- package/dist/components/simple/navigation/HeaderMenu.css +3 -0
- package/dist/components/simple/navigation/HeaderMenu.svelte +39 -63
- package/dist/components/simple/navigation/HeaderMenu.svelte.d.ts +5 -9
- package/dist/components/simple/notifiers/AlertBanner.css +9 -0
- package/dist/components/simple/notifiers/AlertBanner.svelte +21 -22
- package/dist/components/simple/notifiers/AlertBanner.svelte.d.ts +6 -9
- package/dist/components/simple/timeline/SimpleTimeLine.svelte.d.ts +1 -1
- package/dist/components/simple/typography/Code.svelte.d.ts +1 -1
- package/dist/css/main.css +261 -0
- package/dist/stores/theme.d.ts +30 -0
- package/dist/stores/theme.js +85 -0
- package/package.json +6 -3
- package/dist/components/simple/buttons/DefaultButton.svelte +0 -93
- package/dist/components/simple/buttons/DefaultButton.svelte.d.ts +0 -50
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
<script context="module"></script>
|
|
2
2
|
|
|
3
|
-
<script>
|
|
3
|
+
<script>import "./Autocomplete.css";
|
|
4
|
+
let clazz = {};
|
|
5
|
+
export { clazz as class };
|
|
6
|
+
export let values = [], items, searchFunction = void 0, multiple = false, disabled = false, placeholder = "", width = "auto", height = "auto", maxWidth = void 0, openingId = "autocomplete-menu", menuBoxShadow = "rgb(var(--global-color-background-300), .5) 0px 2px 4px", menuBorderRadius = "5px";
|
|
4
7
|
let dispatch = createEventDispatcher();
|
|
5
8
|
function select(item) {
|
|
6
9
|
const alreadyPresent = values.findIndex((i) => i.value === item.value) != -1;
|
|
@@ -26,6 +29,16 @@ function unselect(item) {
|
|
|
26
29
|
selection: values
|
|
27
30
|
});
|
|
28
31
|
}
|
|
32
|
+
function pop() {
|
|
33
|
+
let poppedElement = values.pop();
|
|
34
|
+
values = [...values];
|
|
35
|
+
refreshMenuWidth();
|
|
36
|
+
dispatch("change", {
|
|
37
|
+
unselect: poppedElement,
|
|
38
|
+
select: void 0,
|
|
39
|
+
selection: values
|
|
40
|
+
});
|
|
41
|
+
}
|
|
29
42
|
function toggle(item) {
|
|
30
43
|
const alreadyPresent = values.findIndex((i) => i.value === item.value) != -1;
|
|
31
44
|
if (alreadyPresent)
|
|
@@ -39,8 +52,12 @@ function openMenu() {
|
|
|
39
52
|
menuOpened = true;
|
|
40
53
|
}
|
|
41
54
|
function refreshMenuWidth() {
|
|
42
|
-
|
|
43
|
-
|
|
55
|
+
setTimeout(() => {
|
|
56
|
+
menuWidth = activator.offsetWidth + "px";
|
|
57
|
+
setTimeout(() => {
|
|
58
|
+
refreshPosition = true;
|
|
59
|
+
}, 1);
|
|
60
|
+
}, 1);
|
|
44
61
|
}
|
|
45
62
|
let activator, focusedIndex = void 0;
|
|
46
63
|
function handleTextFieldFocus() {
|
|
@@ -63,6 +80,12 @@ function handleWindowKeyDown(event) {
|
|
|
63
80
|
focusedIndex -= 1;
|
|
64
81
|
} else if (event.key == "Enter" && focusedIndex != void 0) {
|
|
65
82
|
toggle(filteredItems[focusedIndex]);
|
|
83
|
+
} else if (event.key == "Backspace" && searchText == "") {
|
|
84
|
+
pop();
|
|
85
|
+
} else if (event.key == "Escape" || event.key == "Tab") {
|
|
86
|
+
searchText = "";
|
|
87
|
+
input.blur();
|
|
88
|
+
menuOpened = false;
|
|
66
89
|
}
|
|
67
90
|
}
|
|
68
91
|
let input;
|
|
@@ -87,10 +110,10 @@ $:
|
|
|
87
110
|
} else {
|
|
88
111
|
filteredItems = items;
|
|
89
112
|
}
|
|
90
|
-
import Textfield from "./Textfield.svelte";
|
|
91
113
|
import Chip from "../navigation/Chip.svelte";
|
|
92
114
|
import Menu from "../common/Menu.svelte";
|
|
93
115
|
import { createEventDispatcher } from "svelte";
|
|
116
|
+
import SimpleTextField from "./SimpleTextField.svelte";
|
|
94
117
|
</script>
|
|
95
118
|
|
|
96
119
|
<svelte:window />
|
|
@@ -103,55 +126,40 @@ import { createEventDispatcher } from "svelte";
|
|
|
103
126
|
style:opacity={disabled ? "50%" : "100%"}
|
|
104
127
|
on:click={handleContainerClick}
|
|
105
128
|
on:keypress={handleContainerClick}
|
|
129
|
+
class={clazz.activator || ''}
|
|
106
130
|
>
|
|
107
131
|
<slot name="selection-container">
|
|
108
132
|
<div
|
|
109
133
|
class="selection-container"
|
|
110
|
-
style:border
|
|
111
|
-
style:border-radius={borderRadius}
|
|
112
134
|
>
|
|
113
135
|
{#each values as selection}
|
|
114
136
|
<slot name="selection" {selection}>
|
|
115
|
-
<div
|
|
137
|
+
<div tabindex="-1">
|
|
116
138
|
<Chip
|
|
117
|
-
color={chipColor}
|
|
118
|
-
textColor={chipTextColor}
|
|
119
139
|
close={true}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
140
|
+
on:close={() => unselect(selection)}
|
|
141
|
+
--chip-default-border-radius="var(--autocomplete-border-radius, var(--autocomplete-default-border-radius))"
|
|
142
|
+
buttonTabIndex={-1}
|
|
143
|
+
>{selection.label}</Chip>
|
|
123
144
|
</div>
|
|
124
145
|
</slot>
|
|
125
146
|
{/each}
|
|
126
147
|
|
|
127
|
-
<
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
148
|
+
<SimpleTextField
|
|
149
|
+
--simple-textfield-max-width="min(200px, 90%)"
|
|
150
|
+
--simple-textfield-height="auto"
|
|
151
|
+
--simple-textfield-padding="0px"
|
|
152
|
+
--simple-textfield-background-color="rgb(1, 1, 1, 0)"
|
|
153
|
+
--simple-textfield-default-margin-bottom="0px"
|
|
154
|
+
--simple-textfield-default-margin-left="10px"
|
|
131
155
|
bind:value={searchText}
|
|
132
|
-
variant={textFieldVariant}
|
|
133
|
-
maxWidth={textFieldMaxWidth}
|
|
134
|
-
minWidth={textFieldMinWidth}
|
|
135
|
-
textColor={textFieldTextColor}
|
|
136
|
-
borderWeight={textFieldBorderWeight}
|
|
137
|
-
borderRadius={textFieldBorderRadius}
|
|
138
|
-
borderColor={textFieldBorderColor}
|
|
139
|
-
focusBorderColor={textFieldFocusBorderColor}
|
|
140
|
-
focusedBoxShadow={textFieldFocusedBoxShadow}
|
|
141
|
-
backgroundColor={textFieldBackgroundColor}
|
|
142
|
-
padding={textFieldPadding}
|
|
143
|
-
paddingLeft={textFieldPaddingLeft}
|
|
144
|
-
paddingRight={textFieldPaddingRight}
|
|
145
|
-
paddingBottom={textFieldPaddingBottom}
|
|
146
|
-
paddingTop={textFieldPaddingTop}
|
|
147
|
-
fontSize={textFieldFontSize}
|
|
148
|
-
height={textFieldHeight}
|
|
149
|
-
{disabled}
|
|
150
156
|
on:focus={handleTextFieldFocus}
|
|
151
157
|
on:blur={handleTextFieldBlur}
|
|
152
158
|
on:keydown={handleWindowKeyDown}
|
|
153
|
-
|
|
154
|
-
|
|
159
|
+
{disabled}
|
|
160
|
+
placeholder={placeholder}
|
|
161
|
+
bind:input={input}
|
|
162
|
+
></SimpleTextField>
|
|
155
163
|
</div>
|
|
156
164
|
</slot>
|
|
157
165
|
</div>
|
|
@@ -159,18 +167,22 @@ import { createEventDispatcher } from "svelte";
|
|
|
159
167
|
<slot name="menu">
|
|
160
168
|
<Menu
|
|
161
169
|
{activator}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
170
|
+
_width={menuWidth || ""}
|
|
171
|
+
_height={menuHeight}
|
|
172
|
+
_maxHeight="300px"
|
|
173
|
+
_boxShadow={menuBoxShadow}
|
|
174
|
+
_borderRadius={menuBorderRadius}
|
|
167
175
|
bind:open={menuOpened}
|
|
168
176
|
anchor="bottom-center"
|
|
169
177
|
closeOnClickOutside
|
|
170
178
|
bind:refreshPosition
|
|
171
179
|
bind:menuElement
|
|
180
|
+
bind:openingId={openingId}
|
|
172
181
|
>
|
|
173
|
-
<div
|
|
182
|
+
<div
|
|
183
|
+
class={clazz.menu || ''}
|
|
184
|
+
style:background-color="rgb(var(--global-color-background-100))"
|
|
185
|
+
>
|
|
174
186
|
{#each filteredItems as item, index}
|
|
175
187
|
<slot
|
|
176
188
|
name="item"
|
|
@@ -181,8 +193,6 @@ import { createEventDispatcher } from "svelte";
|
|
|
181
193
|
}) != -1}
|
|
182
194
|
>
|
|
183
195
|
<div
|
|
184
|
-
style:--autocomplete-selected-item-background-color={selectedItemBackgroundColor}
|
|
185
|
-
style:--autocomplete-focus-item-background-color={focusItemBackgroundColor}
|
|
186
196
|
class:selection-item={true}
|
|
187
197
|
class:focused={index == focusedIndex}
|
|
188
198
|
class:selected={values.findIndex((i) => {
|
|
@@ -203,8 +213,28 @@ import { createEventDispatcher } from "svelte";
|
|
|
203
213
|
.selection-container {
|
|
204
214
|
display: flex;
|
|
205
215
|
flex-wrap: wrap;
|
|
216
|
+
align-items: center;
|
|
206
217
|
gap: 5px;
|
|
207
|
-
|
|
218
|
+
border: var(
|
|
219
|
+
--autocomplete-border,
|
|
220
|
+
var(--autocomplete-default-border)
|
|
221
|
+
);
|
|
222
|
+
background-color: var(
|
|
223
|
+
--autocomplete-background-color,
|
|
224
|
+
var(--autocomplete-default-background-color)
|
|
225
|
+
);
|
|
226
|
+
border-radius: var(
|
|
227
|
+
--autocomplete-border-radius,
|
|
228
|
+
var(--autocomplete-default-border-radius)
|
|
229
|
+
);
|
|
230
|
+
padding: var(
|
|
231
|
+
--autocomplete-paddding,
|
|
232
|
+
var(--autocomplete-default-padding)
|
|
233
|
+
);
|
|
234
|
+
min-height: var(
|
|
235
|
+
--autocomplete-min-height,
|
|
236
|
+
var(--autocomplete-default-min-height)
|
|
237
|
+
)
|
|
208
238
|
}
|
|
209
239
|
|
|
210
240
|
.selection-item {
|
|
@@ -212,14 +242,35 @@ import { createEventDispatcher } from "svelte";
|
|
|
212
242
|
}
|
|
213
243
|
|
|
214
244
|
.selection-item.selected {
|
|
215
|
-
background-color: var(
|
|
245
|
+
background-color: var(
|
|
246
|
+
--autocomplete-selected-item-background-color,
|
|
247
|
+
var(--autocomplete-default-selected-item-background-color)
|
|
248
|
+
);
|
|
249
|
+
color: var(
|
|
250
|
+
--autocomplete-selected-item-color,
|
|
251
|
+
var(--autocomplete-default-selected-item-color)
|
|
252
|
+
);
|
|
216
253
|
}
|
|
217
254
|
|
|
218
|
-
.selection-item.focused {
|
|
219
|
-
background-color: var(
|
|
255
|
+
.selection-item.focused:not(.selected) {
|
|
256
|
+
background-color: var(
|
|
257
|
+
--autocomplete-focused-item-background-color,
|
|
258
|
+
var(--autocomplete-default-focused-item-background-color)
|
|
259
|
+
);
|
|
260
|
+
color: var(
|
|
261
|
+
--autocomplete-focused-item-color,
|
|
262
|
+
var(--autocomplete-default-focused-item-color)
|
|
263
|
+
);
|
|
220
264
|
}
|
|
221
265
|
|
|
222
|
-
.selection-item:hover {
|
|
223
|
-
background-color: var(
|
|
266
|
+
.selection-item:hover:not(.selected):not(.focused) {
|
|
267
|
+
background-color: var(
|
|
268
|
+
--autocomplete-hover-item-background-color,
|
|
269
|
+
var(--autocomplete-default-hover-item-background-color)
|
|
270
|
+
);
|
|
271
|
+
color: var(
|
|
272
|
+
--autocomplete-hover-item-color,
|
|
273
|
+
var(--autocomplete-default-hover-item-color)
|
|
274
|
+
);
|
|
224
275
|
}
|
|
225
276
|
</style>
|
|
@@ -4,47 +4,25 @@ export type Item = {
|
|
|
4
4
|
label?: string;
|
|
5
5
|
data?: any;
|
|
6
6
|
};
|
|
7
|
-
import
|
|
7
|
+
import './Autocomplete.css';
|
|
8
8
|
declare const __propDef: {
|
|
9
9
|
props: {
|
|
10
|
+
class?: {
|
|
11
|
+
activator?: string | undefined;
|
|
12
|
+
menu?: string | undefined;
|
|
13
|
+
} | undefined;
|
|
10
14
|
values?: Item[] | undefined;
|
|
11
15
|
items: Item[];
|
|
12
16
|
searchFunction?: ((item: Item, searchText: string) => boolean) | undefined;
|
|
13
17
|
multiple?: boolean | undefined;
|
|
14
18
|
disabled?: boolean | undefined;
|
|
19
|
+
placeholder?: string | undefined;
|
|
15
20
|
width?: string | undefined;
|
|
16
21
|
height?: string | undefined;
|
|
17
22
|
maxWidth?: string | undefined;
|
|
18
|
-
|
|
19
|
-
textFieldPlaceholder?: string | undefined;
|
|
20
|
-
textFieldColor?: string | null | undefined;
|
|
21
|
-
textFieldVariant?: VariantOptions | undefined;
|
|
22
|
-
textFieldMaxWidth?: string | undefined;
|
|
23
|
-
textFieldMinWidth?: string | undefined;
|
|
24
|
-
textFieldHeight?: string | undefined;
|
|
25
|
-
textFieldTextColor?: string | undefined;
|
|
26
|
-
textFieldBorderWeight?: string | undefined;
|
|
27
|
-
textFieldBorderRadius?: string | undefined;
|
|
28
|
-
textFieldBorderColor?: string | null | undefined;
|
|
29
|
-
textFieldFocusBorderColor?: string | null | undefined;
|
|
30
|
-
textFieldFocusedBoxShadow?: string | undefined;
|
|
31
|
-
textFieldBackgroundColor?: string | null | undefined;
|
|
32
|
-
textFieldPadding?: string | undefined;
|
|
33
|
-
textFieldPaddingLeft?: string | undefined;
|
|
34
|
-
textFieldPaddingRight?: string | undefined;
|
|
35
|
-
textFieldPaddingBottom?: string | undefined;
|
|
36
|
-
textFieldPaddingTop?: string | undefined;
|
|
37
|
-
textFieldFontSize?: string | undefined;
|
|
38
|
-
menuBackgroundColor?: string | undefined;
|
|
23
|
+
openingId?: string | undefined;
|
|
39
24
|
menuBoxShadow?: string | undefined;
|
|
40
25
|
menuBorderRadius?: string | undefined;
|
|
41
|
-
focusItemBackgroundColor?: string | undefined;
|
|
42
|
-
selectedItemBackgroundColor?: string | undefined;
|
|
43
|
-
border?: string | undefined;
|
|
44
|
-
borderRadius?: string | undefined;
|
|
45
|
-
chipColor?: string | undefined;
|
|
46
|
-
chipTextColor?: string | undefined;
|
|
47
|
-
chipHeight?: string | undefined;
|
|
48
26
|
};
|
|
49
27
|
events: {
|
|
50
28
|
[evt: string]: CustomEvent<any>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--simple-textfield-default-padding: 0.65rem 1rem 0.65rem 1rem;
|
|
3
|
+
--simple-textfield-default-width: 280px;
|
|
4
|
+
--simple-textfield-default-background-color: rgb(var(--global-color-background-300), .5);
|
|
5
|
+
--simple-textfield-default-border-radius: 9999px;
|
|
6
|
+
--simple-textfield-default-box-shadow: none;
|
|
7
|
+
--simple-textfield-default-transition: .2s;
|
|
8
|
+
--simple-textfield-default-font-size: .9rem;
|
|
9
|
+
--simple-textfield-default-font-weight: normal;
|
|
10
|
+
--simple-textfield-default-outer-gap: 8px;
|
|
11
|
+
--simple-textfield-default-inner-gap: 8px;
|
|
12
|
+
--simple-textfield-default-hint-font-size: .75rem;
|
|
13
|
+
--simple-textfield-default-hint-color: rgb(var(--global-color-contrast-500), .5);
|
|
14
|
+
--simple-textfield-default-hint-margin-left: 20px;
|
|
15
|
+
--simple-textfield-default-margin-bottom: 5px;
|
|
16
|
+
--simple-textfield-default-color: rgb(var(--global-color-contrast-900))
|
|
17
|
+
}
|
|
@@ -1,38 +1,23 @@
|
|
|
1
|
-
<script>import
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
<script>import "./SimpleTextField.css";
|
|
2
|
+
import Icon from "../media/Icon.svelte";
|
|
3
|
+
let clazz = {};
|
|
4
|
+
export { clazz as class };
|
|
5
|
+
export let value = void 0, type = "text", placeholder = void 0, disabled = false, readonly = false, appendIcon = void 0, appendInnerIcon = void 0, prependIcon = void 0, prependInnerIcon = void 0, iconSize = "12pt", hint = void 0, input = void 0;
|
|
4
6
|
</script>
|
|
5
7
|
|
|
6
8
|
<div
|
|
7
|
-
class="textfield-container"
|
|
8
|
-
style:--simple-textfield-padding={_padding}
|
|
9
|
-
style:--simple-textfield-height={_height}
|
|
10
|
-
style:--simple-textfield-width={_width}
|
|
11
|
-
style:--simple-textfield-background-color={_backgroundColor}
|
|
12
|
-
style:--simple-textfield-border-radius={_borderRadius}
|
|
13
|
-
style:--simple-textfield-box-shadow={_boxShadow}
|
|
14
|
-
style:--simple-textfield-focus-background-color={_focusBackgroundColor}
|
|
15
|
-
style:--simple-textfield-focus-box-shadow={_focusBoxShadow}
|
|
16
|
-
style:--simple-textfield-transition={_transition}
|
|
17
|
-
style:--simple-textfield-font-size={_fontSize}
|
|
18
|
-
style:--simple-textfield-font-weight={_fontWeight}
|
|
19
|
-
style:--simple-textfield-outer-gap={_outerGap}
|
|
20
|
-
style:--simple-textfield-inner-gap={_innerGap}
|
|
21
|
-
style:--simple-textfield-hint-font-size={_hintFontSize}
|
|
22
|
-
style:--simple-textfield-hint-color={_hintColor}
|
|
23
|
-
style:--simple-textfield-hint-margin-left={_hintMarginLeft}
|
|
24
|
-
style:--simple-textfield-margin-bottom={_marginBottom}
|
|
9
|
+
class="textfield-container {clazz.container || ''}"
|
|
25
10
|
>
|
|
26
|
-
<div class="row">
|
|
11
|
+
<div class="row {clazz.row}">
|
|
27
12
|
<slot name="prepend" {prependIcon} {iconSize}>
|
|
28
13
|
{#if !!prependIcon}
|
|
29
|
-
|
|
14
|
+
<Icon name={prependIcon} --icon-size={iconSize}></Icon>
|
|
30
15
|
{/if}
|
|
31
16
|
</slot>
|
|
32
17
|
<div class="textfield">
|
|
33
18
|
<slot name="prepend-inner" {prependInnerIcon} {iconSize}>
|
|
34
19
|
{#if !!prependInnerIcon}
|
|
35
|
-
<Icon name={prependInnerIcon} size={iconSize}></Icon>
|
|
20
|
+
<Icon name={prependInnerIcon} --icon-size={iconSize}></Icon>
|
|
36
21
|
{/if}
|
|
37
22
|
</slot>
|
|
38
23
|
{#if type == "text"}
|
|
@@ -49,6 +34,9 @@ export let value = void 0, type = "text", placeholder = void 0, disabled = false
|
|
|
49
34
|
on:keydown
|
|
50
35
|
on:keypress
|
|
51
36
|
on:keyup
|
|
37
|
+
on:change
|
|
38
|
+
class={clazz.input || ''}
|
|
39
|
+
bind:this={input}
|
|
52
40
|
/>
|
|
53
41
|
{:else if type == "password"}
|
|
54
42
|
<input
|
|
@@ -64,6 +52,9 @@ export let value = void 0, type = "text", placeholder = void 0, disabled = false
|
|
|
64
52
|
on:keydown
|
|
65
53
|
on:keypress
|
|
66
54
|
on:keyup
|
|
55
|
+
on:change
|
|
56
|
+
class={clazz.input || ''}
|
|
57
|
+
bind:this={input}
|
|
67
58
|
/>
|
|
68
59
|
{:else if type == "number"}
|
|
69
60
|
<input
|
|
@@ -79,21 +70,24 @@ export let value = void 0, type = "text", placeholder = void 0, disabled = false
|
|
|
79
70
|
on:keydown
|
|
80
71
|
on:keypress
|
|
81
72
|
on:keyup
|
|
73
|
+
on:change
|
|
74
|
+
class={clazz.input || ''}
|
|
75
|
+
bind:this={input}
|
|
82
76
|
/>
|
|
83
77
|
{/if}
|
|
84
78
|
<slot name="append-inner" {appendInnerIcon} {iconSize}>
|
|
85
79
|
{#if !!appendInnerIcon}
|
|
86
|
-
<Icon name={appendInnerIcon} size={iconSize}></Icon>
|
|
80
|
+
<Icon name={appendInnerIcon} --icon-size={iconSize}></Icon>
|
|
87
81
|
{/if}
|
|
88
82
|
</slot>
|
|
89
83
|
</div>
|
|
90
84
|
<slot name="append" {appendIcon} {iconSize}>
|
|
91
85
|
{#if !!appendIcon}
|
|
92
|
-
<Icon name={appendIcon} size={iconSize}></Icon>
|
|
86
|
+
<Icon name={appendIcon} --icon-size={iconSize}></Icon>
|
|
93
87
|
{/if}
|
|
94
88
|
</slot>
|
|
95
89
|
</div>
|
|
96
|
-
<div class="row">
|
|
90
|
+
<div class="row {clazz.hint || ''}">
|
|
97
91
|
<slot name="hint">
|
|
98
92
|
{#if !!hint}
|
|
99
93
|
<span class="hint">{hint}</span>
|
|
@@ -103,11 +97,32 @@ export let value = void 0, type = "text", placeholder = void 0, disabled = false
|
|
|
103
97
|
</div>
|
|
104
98
|
|
|
105
99
|
<style>
|
|
100
|
+
.textfield-container {
|
|
101
|
+
max-width: var(
|
|
102
|
+
--simple-textfield-max-width,
|
|
103
|
+
var(--simple-textfield-default-max-width)
|
|
104
|
+
);
|
|
105
|
+
width: var(
|
|
106
|
+
--simple-textfield-width,
|
|
107
|
+
var(--simple-textfield-default-width)
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
|
|
106
111
|
.row {
|
|
107
112
|
display: flex;
|
|
108
113
|
align-items: center;
|
|
109
|
-
gap: var(
|
|
110
|
-
|
|
114
|
+
gap: var(
|
|
115
|
+
--simple-textfield-outer-gap,
|
|
116
|
+
var(--simple-textfield-default-outer-gap)
|
|
117
|
+
);
|
|
118
|
+
margin-bottom: var(
|
|
119
|
+
--simple-textfield-margin-bottom,
|
|
120
|
+
var(--simple-textfield-default-margin-bottom)
|
|
121
|
+
);
|
|
122
|
+
margin-left: var(
|
|
123
|
+
--simple-textfield-margin-left,
|
|
124
|
+
var(--simple-textfield-default-margin-left)
|
|
125
|
+
);
|
|
111
126
|
}
|
|
112
127
|
|
|
113
128
|
.row:last-of-type {
|
|
@@ -115,35 +130,86 @@ export let value = void 0, type = "text", placeholder = void 0, disabled = false
|
|
|
115
130
|
}
|
|
116
131
|
|
|
117
132
|
.hint {
|
|
118
|
-
margin-left: var(
|
|
119
|
-
|
|
120
|
-
|
|
133
|
+
margin-left: var(
|
|
134
|
+
--simple-textfield-hint-margin-left,
|
|
135
|
+
var(--simple-textfield-default-hint-margin-left)
|
|
136
|
+
);
|
|
137
|
+
font-size: var(
|
|
138
|
+
--simple-textfield-hint-font-size,
|
|
139
|
+
var(--simple-textfield-default-hint-font-size)
|
|
140
|
+
);
|
|
141
|
+
color: var(
|
|
142
|
+
--simple-textfield-hint-color,
|
|
143
|
+
var(--simple-textfield-default-hint-color)
|
|
144
|
+
);
|
|
121
145
|
}
|
|
122
146
|
|
|
123
147
|
.textfield {
|
|
124
|
-
padding: var(
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
148
|
+
padding: var(
|
|
149
|
+
--simple-textfield-padding,
|
|
150
|
+
var(--simple-textfield-default-padding)
|
|
151
|
+
);
|
|
152
|
+
height: var(
|
|
153
|
+
--simple-textfield-height,
|
|
154
|
+
var(--simple-textfield-default-height)
|
|
155
|
+
);
|
|
156
|
+
background-color: var(
|
|
157
|
+
--simple-textfield-background-color,
|
|
158
|
+
var(--simple-textfield-default-background-color)
|
|
159
|
+
);
|
|
128
160
|
border: none;
|
|
129
|
-
border-radius: var(
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
161
|
+
border-radius: var(
|
|
162
|
+
--simple-textfield-border-radius,
|
|
163
|
+
var(--simple-textfield-default-border-radius)
|
|
164
|
+
);
|
|
165
|
+
box-shadow: var(
|
|
166
|
+
--simple-textfield-box-shadow,
|
|
167
|
+
var(--simple-textfield-default-box-shadow)
|
|
168
|
+
);
|
|
169
|
+
transition: var(
|
|
170
|
+
--simple-textfield-transition,
|
|
171
|
+
var(--simple-textfield-default-transition)
|
|
172
|
+
);
|
|
173
|
+
gap: var(
|
|
174
|
+
--simple-textfield-inner-gap,
|
|
175
|
+
var(--simple-textfield-default-inner-gap)
|
|
176
|
+
);
|
|
133
177
|
display: flex;
|
|
134
178
|
}
|
|
135
179
|
|
|
136
180
|
.textfield:focus-within {
|
|
137
|
-
background-color: var(
|
|
138
|
-
|
|
181
|
+
background-color: var(
|
|
182
|
+
--simple-textfield-focus-background-color,
|
|
183
|
+
var(
|
|
184
|
+
--simple-textfield-default-focus-background-color,
|
|
185
|
+
var(
|
|
186
|
+
--simple-textfield-background-color,
|
|
187
|
+
var(--simple-textfield-default-background-color)
|
|
188
|
+
)
|
|
189
|
+
)
|
|
190
|
+
);
|
|
191
|
+
box-shadow: var(
|
|
192
|
+
--simple-textfield-focus-box-shadow,
|
|
193
|
+
var(--simple-textfield-default-focus-box-shadow)
|
|
194
|
+
);
|
|
139
195
|
}
|
|
140
196
|
|
|
141
197
|
input {
|
|
142
198
|
outline: none;
|
|
143
199
|
width: 100%;
|
|
144
200
|
background-color: transparent;
|
|
145
|
-
font-size: var(
|
|
146
|
-
|
|
201
|
+
font-size: var(
|
|
202
|
+
--simple-textfield-font-size,
|
|
203
|
+
var(--simple-textfield-default-font-size)
|
|
204
|
+
);
|
|
205
|
+
font-weight: var(
|
|
206
|
+
--simple-textfield-font-weight,
|
|
207
|
+
var(--simple-textfield-default-font-weight)
|
|
208
|
+
);
|
|
209
|
+
color: var(
|
|
210
|
+
--simple-textfield-color,
|
|
211
|
+
var(--simple-textfield-default-color)
|
|
212
|
+
);
|
|
147
213
|
border: none
|
|
148
214
|
}
|
|
149
215
|
</style>
|
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import './SimpleTextField.css';
|
|
2
3
|
declare const __propDef: {
|
|
3
4
|
props: {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
_focusBackgroundColor?: string | null | undefined;
|
|
11
|
-
_focusBoxShadow?: string | null | undefined;
|
|
12
|
-
_transition?: string | null | undefined;
|
|
13
|
-
_fontSize?: string | null | undefined;
|
|
14
|
-
_fontWeight?: string | null | undefined;
|
|
15
|
-
_outerGap?: string | null | undefined;
|
|
16
|
-
_innerGap?: string | null | undefined;
|
|
17
|
-
_hintFontSize?: string | null | undefined;
|
|
18
|
-
_hintColor?: string | null | undefined;
|
|
19
|
-
_hintMarginLeft?: string | null | undefined;
|
|
20
|
-
_marginBottom?: string | null | undefined;
|
|
5
|
+
class?: {
|
|
6
|
+
container?: string | undefined;
|
|
7
|
+
row?: string | undefined;
|
|
8
|
+
hint?: string | undefined;
|
|
9
|
+
input?: string | undefined;
|
|
10
|
+
} | undefined;
|
|
21
11
|
value?: string | number | undefined;
|
|
22
12
|
type?: "number" | "text" | "password" | undefined;
|
|
23
13
|
placeholder?: string | undefined;
|
|
@@ -27,8 +17,9 @@ declare const __propDef: {
|
|
|
27
17
|
appendInnerIcon?: string | undefined;
|
|
28
18
|
prependIcon?: string | undefined;
|
|
29
19
|
prependInnerIcon?: string | undefined;
|
|
30
|
-
iconSize?:
|
|
20
|
+
iconSize?: string | undefined;
|
|
31
21
|
hint?: string | undefined;
|
|
22
|
+
input?: HTMLElement | undefined;
|
|
32
23
|
};
|
|
33
24
|
events: {
|
|
34
25
|
change: Event;
|
|
@@ -44,19 +35,19 @@ declare const __propDef: {
|
|
|
44
35
|
slots: {
|
|
45
36
|
prepend: {
|
|
46
37
|
prependIcon: string | undefined;
|
|
47
|
-
iconSize:
|
|
38
|
+
iconSize: string;
|
|
48
39
|
};
|
|
49
40
|
'prepend-inner': {
|
|
50
41
|
prependInnerIcon: string | undefined;
|
|
51
|
-
iconSize:
|
|
42
|
+
iconSize: string;
|
|
52
43
|
};
|
|
53
44
|
'append-inner': {
|
|
54
45
|
appendInnerIcon: string | undefined;
|
|
55
|
-
iconSize:
|
|
46
|
+
iconSize: string;
|
|
56
47
|
};
|
|
57
48
|
append: {
|
|
58
49
|
appendIcon: string | undefined;
|
|
59
|
-
iconSize:
|
|
50
|
+
iconSize: string;
|
|
60
51
|
};
|
|
61
52
|
hint: {};
|
|
62
53
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--selectable-menu-list-default-divider-background-color: rgb(var(--global-color-background-500));
|
|
3
|
+
--selectable-menu-list-default-divider-height: 1px;
|
|
4
|
+
--selectable-menu-list-default-icon-gap: 10px;
|
|
5
|
+
--selectable-menu-list-default-spacing: 1.5rem;
|
|
6
|
+
--selectable-menu-list-default-selected-color: rgb(var(--global-color-primary-400));
|
|
7
|
+
}
|