@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.
Files changed (79) hide show
  1. package/dist/components/composed/search/GlobalSearchTextField.css +11 -0
  2. package/dist/components/composed/search/GlobalSearchTextField.svelte +52 -30
  3. package/dist/components/composed/search/GlobalSearchTextField.svelte.d.ts +6 -9
  4. package/dist/components/composed/search/SearchBar.css +10 -0
  5. package/dist/components/composed/search/SearchBar.svelte +43 -20
  6. package/dist/components/composed/search/SearchBar.svelte.d.ts +6 -9
  7. package/dist/components/composed/search/SearchResults.css +5 -0
  8. package/dist/components/composed/search/SearchResults.svelte +45 -23
  9. package/dist/components/composed/search/SearchResults.svelte.d.ts +7 -8
  10. package/dist/components/layouts/CollapsibleSideBarLayout.css +5 -0
  11. package/dist/components/layouts/CollapsibleSideBarLayout.svelte +6 -7
  12. package/dist/components/layouts/NewCollapsibleSideBarLayout.svelte +155 -0
  13. package/dist/components/layouts/NewCollapsibleSideBarLayout.svelte.d.ts +38 -0
  14. package/dist/components/layouts/StableDividedSideBarLayout.css +16 -0
  15. package/dist/components/layouts/StableDividedSideBarLayout.svelte +81 -31
  16. package/dist/components/layouts/StableDividedSideBarLayout.svelte.d.ts +7 -10
  17. package/dist/components/simple/buttons/Button.css +18 -0
  18. package/dist/components/simple/buttons/Button.svelte +150 -50
  19. package/dist/components/simple/buttons/Button.svelte.d.ts +5 -25
  20. package/dist/components/simple/buttons/LinkButton.css +13 -0
  21. package/dist/components/simple/buttons/LinkButton.svelte +48 -25
  22. package/dist/components/simple/buttons/LinkButton.svelte.d.ts +2 -11
  23. package/dist/components/simple/common/CollapsibleDivider.css +14 -0
  24. package/dist/components/simple/common/CollapsibleDivider.svelte +81 -25
  25. package/dist/components/simple/common/CollapsibleDivider.svelte.d.ts +1 -11
  26. package/dist/components/simple/common/Menu.svelte +32 -2
  27. package/dist/components/simple/common/Menu.svelte.d.ts +1 -0
  28. package/dist/components/simple/dates/Calendar.css +10 -0
  29. package/dist/components/simple/dates/Calendar.svelte +52 -17
  30. package/dist/components/simple/dates/Calendar.svelte.d.ts +7 -10
  31. package/dist/components/simple/dates/DatePicker.css +9 -0
  32. package/dist/components/simple/dates/DatePicker.svelte +74 -55
  33. package/dist/components/simple/dates/DatePicker.svelte.d.ts +15 -11
  34. package/dist/components/simple/dates/DatePickerTextField.svelte +148 -0
  35. package/dist/components/simple/dates/DatePickerTextField.svelte.d.ts +28 -0
  36. package/dist/components/simple/dates/MonthSelector.css +4 -0
  37. package/dist/components/simple/dates/MonthSelector.svelte +20 -9
  38. package/dist/components/simple/dates/MonthSelector.svelte.d.ts +5 -4
  39. package/dist/components/simple/dates/YearSelector.css +4 -0
  40. package/dist/components/simple/dates/YearSelector.svelte +23 -10
  41. package/dist/components/simple/dates/YearSelector.svelte.d.ts +3 -2
  42. package/dist/components/simple/forms/Autocomplete.css +12 -0
  43. package/dist/components/simple/forms/Autocomplete.svelte +101 -50
  44. package/dist/components/simple/forms/Autocomplete.svelte.d.ts +7 -29
  45. package/dist/components/simple/forms/SimpleTextField.css +17 -0
  46. package/dist/components/simple/forms/SimpleTextField.svelte +110 -44
  47. package/dist/components/simple/forms/SimpleTextField.svelte.d.ts +13 -22
  48. package/dist/components/simple/lists/SelectableMenuList.css +7 -0
  49. package/dist/components/simple/lists/SelectableMenuList.svelte +107 -0
  50. package/dist/components/simple/lists/SelectableMenuList.svelte.d.ts +38 -0
  51. package/dist/components/simple/lists/SelectableVerticalList.svelte +1 -1
  52. package/dist/components/simple/lists/SidebarMenuList.css +7 -0
  53. package/dist/components/simple/lists/SidebarMenuList.svelte +43 -15
  54. package/dist/components/simple/lists/SidebarMenuList.svelte.d.ts +1 -0
  55. package/dist/components/simple/loaders/CircularLoader.css +5 -0
  56. package/dist/components/simple/loaders/CircularLoader.svelte +20 -4
  57. package/dist/components/simple/loaders/CircularLoader.svelte.d.ts +2 -3
  58. package/dist/components/simple/media/Icon.svelte +18 -7
  59. package/dist/components/simple/media/Icon.svelte.d.ts +0 -2
  60. package/dist/components/simple/navigation/Chip.css +14 -0
  61. package/dist/components/simple/navigation/Chip.svelte +74 -15
  62. package/dist/components/simple/navigation/Chip.svelte.d.ts +2 -3
  63. package/dist/components/simple/navigation/Drawer.css +9 -0
  64. package/dist/components/simple/navigation/Drawer.svelte +81 -74
  65. package/dist/components/simple/navigation/Drawer.svelte.d.ts +1 -8
  66. package/dist/components/simple/navigation/HeaderMenu.css +3 -0
  67. package/dist/components/simple/navigation/HeaderMenu.svelte +39 -63
  68. package/dist/components/simple/navigation/HeaderMenu.svelte.d.ts +5 -9
  69. package/dist/components/simple/notifiers/AlertBanner.css +9 -0
  70. package/dist/components/simple/notifiers/AlertBanner.svelte +21 -22
  71. package/dist/components/simple/notifiers/AlertBanner.svelte.d.ts +6 -9
  72. package/dist/components/simple/timeline/SimpleTimeLine.svelte.d.ts +1 -1
  73. package/dist/components/simple/typography/Code.svelte.d.ts +1 -1
  74. package/dist/css/main.css +261 -0
  75. package/dist/stores/theme.d.ts +30 -0
  76. package/dist/stores/theme.js +85 -0
  77. package/package.json +6 -3
  78. package/dist/components/simple/buttons/DefaultButton.svelte +0 -93
  79. 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>export let values = [], items, searchFunction = void 0, multiple = false, disabled = false, width = "auto", height = "auto", maxWidth = void 0, textFieldLabel = "", textFieldPlaceholder = "", textFieldColor = null, textFieldVariant = "boxed", textFieldMaxWidth = "min(100px, 90%)", textFieldMinWidth = void 0, textFieldHeight = "auto", textFieldTextColor = "black", textFieldBorderWeight = "2px", textFieldBorderRadius = "5px", textFieldBorderColor = null, textFieldFocusBorderColor = null, textFieldFocusedBoxShadow = void 0, textFieldBackgroundColor = null, textFieldPadding = void 0, textFieldPaddingLeft = void 0, textFieldPaddingRight = void 0, textFieldPaddingBottom = void 0, textFieldPaddingTop = void 0, textFieldFontSize = void 0, menuBackgroundColor = "#FFF", menuBoxShadow = "rgba(149, 157, 165, 0.2) 0px 8px 24px", menuBorderRadius = "5px", focusItemBackgroundColor = "#EEEEEE", selectedItemBackgroundColor = "#D0D0D0", border = "1px solid black", borderRadius = "5px", chipColor = "#D0D0D0", chipTextColor = "black", chipHeight = "30px";
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
- menuWidth = activator.offsetWidth + "px";
43
- refreshPosition = true;
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 style:height={chipHeight}>
137
+ <div tabindex="-1">
116
138
  <Chip
117
- color={chipColor}
118
- textColor={chipTextColor}
119
139
  close={true}
120
- label={true}
121
- on:close={() => unselect(selection)}>{selection.label}</Chip
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
- <Textfield
128
- label={textFieldLabel}
129
- placeholder={textFieldPlaceholder}
130
- color={textFieldColor}
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
- bind:inputElement={input}
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
- width={menuWidth || ""}
163
- height={menuHeight}
164
- maxHeight="300px"
165
- boxShadow={menuBoxShadow}
166
- borderRadius={menuBorderRadius}
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 style:background-color={menuBackgroundColor}>
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
- padding: 5px;
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(--autocomplete-selected-item-background-color);
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(--autocomplete-focus-item-background-color);
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(--autocomplete-focus-item-background-color);
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 type { VariantOptions } from "./Textfield.svelte";
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
- textFieldLabel?: string | undefined;
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 Icon from "../media/Icon.svelte";
2
- export let _padding = null, _width = null, _height = null, _backgroundColor = null, _borderRadius = null, _boxShadow = null, _focusBackgroundColor = null, _focusBoxShadow = null, _transition = null, _fontSize = null, _fontWeight = null, _outerGap = null, _innerGap = null, _hintFontSize = null, _hintColor = null, _hintMarginLeft = null, _marginBottom = null;
3
- 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 = 12, hint = void 0;
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
- <Icon name={prependIcon} size={iconSize}></Icon>
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(--simple-textfield-outer-gap, 8px);
110
- margin-bottom: var(--simple-textfield-margin-bottom, 5px);
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(--simple-textfield-hint-margin-left, 20px);
119
- font-size: var(--simple-textfield-hint-font-size, 0.75rem);
120
- color: var(--simple-textfield-hint-color, grey);
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(--simple-textfield-padding, 0.65rem 1rem 0.65rem 1rem);
125
- width: var(--simple-textfield-width, 280px);
126
- height: var(--simple-textfield-height);
127
- background-color: var(--simple-textfield-background-color, rgb(244 244 245/1));
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(--simple-textfield-border-radius, 9999px);
130
- box-shadow: var(--simple-textfield-box-shadow, none);
131
- transition: var(--simple-textfield-transition, 0.2s);
132
- gap: var(--simple-textfield-inner-gap, 8px);
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(--simple-textfield-focus-background-color, var(--simple-textfield-background-color, rgb(244 244 245/1)));
138
- box-shadow: var(--simple-textfield-focus-box-shadow, rgba(100, 100, 111, 0.4) 0px 4px 25px 0px);
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(--simple-textfield-font-size, .9rem);
146
- font-weight: var(--simple-textfield-font-weight, normal);
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
- _padding?: string | null | undefined;
5
- _width?: string | null | undefined;
6
- _height?: string | null | undefined;
7
- _backgroundColor?: string | null | undefined;
8
- _borderRadius?: string | null | undefined;
9
- _boxShadow?: string | null | undefined;
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?: number | undefined;
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: number;
38
+ iconSize: string;
48
39
  };
49
40
  'prepend-inner': {
50
41
  prependInnerIcon: string | undefined;
51
- iconSize: number;
42
+ iconSize: string;
52
43
  };
53
44
  'append-inner': {
54
45
  appendInnerIcon: string | undefined;
55
- iconSize: number;
46
+ iconSize: string;
56
47
  };
57
48
  append: {
58
49
  appendIcon: string | undefined;
59
- iconSize: number;
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
+ }