@globalbrain/sefirot 2.0.0-draft.8 → 2.1.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 (182) hide show
  1. package/README.md +6 -6
  2. package/lib/components/SAvatar.vue +17 -17
  3. package/lib/components/SButton.vue +520 -276
  4. package/lib/components/SButtonGroup.vue +149 -0
  5. package/lib/components/SDropdown.vue +26 -150
  6. package/lib/components/SDropdownSection.vue +48 -0
  7. package/lib/components/SDropdownSectionFilter.vue +190 -0
  8. package/lib/components/SDropdownSectionFilterItem.vue +21 -0
  9. package/lib/components/SDropdownSectionFilterItemAvatar.vue +31 -0
  10. package/lib/components/SDropdownSectionFilterItemText.vue +20 -0
  11. package/lib/components/SDropdownSectionMenu.vue +39 -0
  12. package/lib/components/SIcon.vue +13 -0
  13. package/lib/components/SInputBase.vue +31 -31
  14. package/lib/components/SInputCheckbox.vue +4 -3
  15. package/lib/components/SInputCheckboxes.vue +74 -0
  16. package/lib/components/SInputDate.vue +182 -0
  17. package/lib/components/SInputDropdown.vue +159 -157
  18. package/lib/components/SInputDropdownItem.vue +46 -48
  19. package/lib/components/SInputDropdownItemAvatar.vue +99 -0
  20. package/lib/components/SInputDropdownItemText.vue +79 -16
  21. package/lib/components/SInputFile.vue +56 -60
  22. package/lib/components/SInputHMS.vue +120 -110
  23. package/lib/components/SInputNumber.vue +38 -9
  24. package/lib/components/SInputRadio.vue +39 -36
  25. package/lib/components/SInputRadios.vue +40 -53
  26. package/lib/components/SInputSelect.vue +7 -6
  27. package/lib/components/SInputSwitch.vue +193 -0
  28. package/lib/components/SInputSwitches.vue +88 -0
  29. package/lib/components/SInputText.vue +207 -62
  30. package/lib/components/SInputTextarea.vue +46 -32
  31. package/lib/components/SInputYMD.vue +123 -126
  32. package/lib/components/SMarkdown.vue +52 -0
  33. package/lib/components/SModal.vue +33 -57
  34. package/lib/components/SMount.vue +19 -0
  35. package/lib/components/SSheet.vue +50 -55
  36. package/lib/components/SSheetFooter.vue +1 -1
  37. package/lib/components/SSheetFooterAction.vue +24 -17
  38. package/lib/components/SSheetFooterActions.vue +1 -4
  39. package/lib/components/SSheetForm.vue +15 -0
  40. package/lib/components/SSheetMedium.vue +8 -10
  41. package/lib/components/SSheetTitle.vue +7 -14
  42. package/lib/components/SSnackbar.vue +58 -47
  43. package/lib/components/{SPortalSnackbars.vue → SSnackbars.vue} +17 -20
  44. package/lib/components/{icons/SIconPreloader.vue → SSpinner.vue} +5 -4
  45. package/lib/components/SStep.vue +107 -0
  46. package/lib/components/SSteps.vue +59 -0
  47. package/lib/components/STable.vue +242 -0
  48. package/lib/components/STableCell.vue +82 -0
  49. package/lib/components/STableCellAvatar.vue +69 -0
  50. package/lib/components/STableCellAvatars.vue +93 -0
  51. package/lib/components/STableCellDay.vue +40 -0
  52. package/lib/components/STableCellPill.vue +84 -0
  53. package/lib/components/STableCellText.vue +103 -0
  54. package/lib/components/STableColumn.vue +255 -0
  55. package/lib/components/STableFooter.vue +115 -0
  56. package/lib/components/STableHeader.vue +74 -0
  57. package/lib/components/STableItem.vue +38 -0
  58. package/lib/components/STooltip.vue +112 -0
  59. package/lib/composables/Dropdown.ts +40 -99
  60. package/lib/composables/Form.ts +21 -18
  61. package/lib/composables/Grid.ts +117 -0
  62. package/lib/composables/Markdown.ts +138 -0
  63. package/lib/composables/Step.ts +7 -0
  64. package/lib/composables/Table.ts +103 -0
  65. package/lib/composables/Tooltip.ts +91 -0
  66. package/lib/composables/Validation.ts +5 -9
  67. package/lib/composables/markdown/LinkPlugin.ts +45 -0
  68. package/lib/mixins/Sheet.ts +5 -3
  69. package/lib/stores/Snackbars.ts +48 -0
  70. package/lib/{assets/styles → styles}/base.css +0 -0
  71. package/lib/{assets/styles → styles}/bootstrap.css +1 -0
  72. package/lib/{assets/styles → styles}/variables.css +55 -48
  73. package/lib/support/Day.ts +8 -0
  74. package/lib/support/Num.ts +3 -0
  75. package/lib/support/Time.ts +5 -2
  76. package/lib/support/Utils.ts +4 -3
  77. package/lib/types/shims.d.ts +3 -0
  78. package/lib/validation/validators/requiredYmd.ts +1 -1
  79. package/lib/validation/validators/ymd.ts +4 -4
  80. package/package.json +59 -37
  81. package/CHANGELOG.md +0 -47
  82. package/lib/.DS_Store +0 -0
  83. package/lib/components/.DS_Store +0 -0
  84. package/lib/components/SDialog.vue +0 -140
  85. package/lib/components/SDropdownItem.vue +0 -78
  86. package/lib/components/SDropdownItemText.vue +0 -22
  87. package/lib/components/SDropdownItemUser.vue +0 -40
  88. package/lib/components/SInputDropdownItemTextTag.vue +0 -94
  89. package/lib/components/SInputDropdownItemUser.vue +0 -41
  90. package/lib/components/SInputDropdownItemUserTag.vue +0 -100
  91. package/lib/components/SPortalModals.vue +0 -74
  92. package/lib/components/icons/.DS_Store +0 -0
  93. package/lib/components/icons/SIconActivity.vue +0 -5
  94. package/lib/components/icons/SIconArrowDown.vue +0 -5
  95. package/lib/components/icons/SIconArrowLeft.vue +0 -5
  96. package/lib/components/icons/SIconArrowRight.vue +0 -5
  97. package/lib/components/icons/SIconArrowUp.vue +0 -5
  98. package/lib/components/icons/SIconBarChart.vue +0 -7
  99. package/lib/components/icons/SIconBriefcase.vue +0 -5
  100. package/lib/components/icons/SIconBuilding.vue +0 -5
  101. package/lib/components/icons/SIconCalendar.vue +0 -5
  102. package/lib/components/icons/SIconCheck.vue +0 -5
  103. package/lib/components/icons/SIconCheckCircle.vue +0 -6
  104. package/lib/components/icons/SIconCheckCircleThin.vue +0 -6
  105. package/lib/components/icons/SIconCheckSquare.vue +0 -6
  106. package/lib/components/icons/SIconChevronDown.vue +0 -5
  107. package/lib/components/icons/SIconChevronLeft.vue +0 -5
  108. package/lib/components/icons/SIconChevronRight.vue +0 -5
  109. package/lib/components/icons/SIconChevronUp.vue +0 -5
  110. package/lib/components/icons/SIconClock.vue +0 -6
  111. package/lib/components/icons/SIconCode.vue +0 -6
  112. package/lib/components/icons/SIconDatabase.vue +0 -5
  113. package/lib/components/icons/SIconDollarSign.vue +0 -5
  114. package/lib/components/icons/SIconDownload.vue +0 -6
  115. package/lib/components/icons/SIconDownloadCloud.vue +0 -6
  116. package/lib/components/icons/SIconEdit.vue +0 -6
  117. package/lib/components/icons/SIconEdit2.vue +0 -5
  118. package/lib/components/icons/SIconEdit3.vue +0 -6
  119. package/lib/components/icons/SIconEdit3Off.vue +0 -6
  120. package/lib/components/icons/SIconExternalLink.vue +0 -6
  121. package/lib/components/icons/SIconEye.vue +0 -6
  122. package/lib/components/icons/SIconFile.vue +0 -5
  123. package/lib/components/icons/SIconFilePlus.vue +0 -6
  124. package/lib/components/icons/SIconFileText.vue +0 -8
  125. package/lib/components/icons/SIconFlag.vue +0 -5
  126. package/lib/components/icons/SIconGitBranch.vue +0 -5
  127. package/lib/components/icons/SIconGitCommit.vue +0 -5
  128. package/lib/components/icons/SIconGitPullRequest.vue +0 -6
  129. package/lib/components/icons/SIconGlobe.vue +0 -5
  130. package/lib/components/icons/SIconGrab.vue +0 -10
  131. package/lib/components/icons/SIconGrid.vue +0 -8
  132. package/lib/components/icons/SIconHome.vue +0 -5
  133. package/lib/components/icons/SIconImage.vue +0 -6
  134. package/lib/components/icons/SIconInbox.vue +0 -5
  135. package/lib/components/icons/SIconInfo.vue +0 -7
  136. package/lib/components/icons/SIconLayout.vue +0 -5
  137. package/lib/components/icons/SIconList.vue +0 -10
  138. package/lib/components/icons/SIconLock.vue +0 -5
  139. package/lib/components/icons/SIconLogout.vue +0 -6
  140. package/lib/components/icons/SIconMail.vue +0 -6
  141. package/lib/components/icons/SIconMapPin.vue +0 -6
  142. package/lib/components/icons/SIconMoon.vue +0 -5
  143. package/lib/components/icons/SIconMoreHorizontal.vue +0 -7
  144. package/lib/components/icons/SIconMoreVertical.vue +0 -7
  145. package/lib/components/icons/SIconPauseFill.vue +0 -6
  146. package/lib/components/icons/SIconPlayCircle.vue +0 -6
  147. package/lib/components/icons/SIconPlayFill.vue +0 -5
  148. package/lib/components/icons/SIconPlus.vue +0 -5
  149. package/lib/components/icons/SIconPlusCircle.vue +0 -8
  150. package/lib/components/icons/SIconPlusOff.vue +0 -7
  151. package/lib/components/icons/SIconPreloaderDark.vue +0 -52
  152. package/lib/components/icons/SIconPreloaderLight.vue +0 -52
  153. package/lib/components/icons/SIconProgress.vue +0 -5
  154. package/lib/components/icons/SIconRadio.vue +0 -6
  155. package/lib/components/icons/SIconSave.vue +0 -5
  156. package/lib/components/icons/SIconSearch.vue +0 -5
  157. package/lib/components/icons/SIconSend.vue +0 -5
  158. package/lib/components/icons/SIconSettings.vue +0 -6
  159. package/lib/components/icons/SIconShare2.vue +0 -5
  160. package/lib/components/icons/SIconSkipBackFill.vue +0 -6
  161. package/lib/components/icons/SIconSliders.vue +0 -12
  162. package/lib/components/icons/SIconSun.vue +0 -13
  163. package/lib/components/icons/SIconTelescope.vue +0 -5
  164. package/lib/components/icons/SIconTrash.vue +0 -5
  165. package/lib/components/icons/SIconTrash2.vue +0 -7
  166. package/lib/components/icons/SIconTrash2Off.vue +0 -6
  167. package/lib/components/icons/SIconTrello.vue +0 -7
  168. package/lib/components/icons/SIconUser.vue +0 -6
  169. package/lib/components/icons/SIconUsers.vue +0 -8
  170. package/lib/components/icons/SIconWarning.vue +0 -7
  171. package/lib/components/icons/SIconX.vue +0 -5
  172. package/lib/components/icons/SIconXCircle.vue +0 -6
  173. package/lib/components/icons/SIconXCircleThin.vue +0 -6
  174. package/lib/components/icons/SIconXSquare.vue +0 -6
  175. package/lib/components/icons/SIconZap.vue +0 -5
  176. package/lib/composables/Dialog.ts +0 -38
  177. package/lib/composables/Modal.ts +0 -34
  178. package/lib/composables/Snackbar.ts +0 -18
  179. package/lib/store/Sefirot.ts +0 -17
  180. package/lib/store/dialog/index.ts +0 -42
  181. package/lib/store/modal/index.ts +0 -61
  182. package/lib/store/snackbars/index.ts +0 -70
@@ -1,45 +1,28 @@
1
- <template>
2
- <SInputBase
3
- class="SInputText"
4
- :class="classes"
5
- :label="label"
6
- :note="note"
7
- :help="help"
8
- :error-message="errorMessage"
9
- :validation="validation"
10
- >
11
- <input
12
- class="input"
13
- :type="type"
14
- :placeholder="placeholder"
15
- :disabled="disabled"
16
- :value="modelValue"
17
- @input="emitInput"
18
- @blur="emitBlur"
19
- @keypress.enter="emitEnter"
20
- >
21
- </SInputBase>
22
- </template>
23
-
24
1
  <script setup lang="ts">
25
- import { PropType, computed } from 'vue'
26
- import { Validation, Validatable } from '../composables/Validation'
2
+ import { ref, computed } from 'vue'
3
+ import { Validatable } from '../composables/Validation'
4
+ import SIcon from './SIcon.vue'
27
5
  import SInputBase from './SInputBase.vue'
28
6
 
29
- type Size = 'mini' | 'small' | 'medium'
30
-
31
- const props = defineProps({
32
- size: { type: String as PropType<Size>, default: 'small' },
33
- label: { type: String, default: null },
34
- note: { type: String, default: null },
35
- help: { type: String, default: null },
36
- type: { type: String, default: 'text' },
37
- placeholder: { type: String, default: null },
38
- disabled: { type: Boolean, default: false },
39
- errorMessage: { type: Boolean, default: true },
40
- modelValue: { type: [String, Number] as PropType<string | number | null>, default: null },
41
- validation: { type: Object as PropType<Validatable>, default: null }
42
- })
7
+ export type Size = 'mini' | 'small' | 'medium'
8
+ export type Align = 'left' | 'center' | 'right'
9
+
10
+ const props = defineProps<{
11
+ size?: Size
12
+ name?: string
13
+ label?: string
14
+ note?: string
15
+ help?: string
16
+ type?: string
17
+ placeholder?: string
18
+ icon?: any
19
+ align?: Align
20
+ disabled?: boolean
21
+ modelValue: string | null
22
+ displayValue?: string | null
23
+ hideError?: boolean
24
+ validation?: Validatable
25
+ }>()
43
26
 
44
27
  const emit = defineEmits<{
45
28
  (e: 'update:modelValue', value: string | null): void
@@ -47,13 +30,24 @@ const emit = defineEmits<{
47
30
  (e: 'enter', value: string | null): void
48
31
  }>()
49
32
 
33
+ const input = ref<HTMLElement | null>(null)
34
+ const isFocused = ref(false)
35
+
50
36
  const classes = computed(() => [
51
- props.size,
37
+ props.size ?? 'small',
52
38
  { disabled: props.disabled }
53
39
  ])
54
40
 
55
- function emitInput(e: Event): void {
56
- emit('update:modelValue', getValue(e))
41
+ const showDisplay = computed(() => {
42
+ return !isFocused.value && props.displayValue
43
+ })
44
+
45
+ function focus(): void {
46
+ input.value?.focus()
47
+ }
48
+
49
+ function onFocus(): void {
50
+ isFocused.value = true
57
51
  }
58
52
 
59
53
  function emitBlur(e: FocusEvent): void {
@@ -63,6 +57,12 @@ function emitBlur(e: FocusEvent): void {
63
57
 
64
58
  emit('update:modelValue', value)
65
59
  emit('blur', value)
60
+
61
+ isFocused.value = false
62
+ }
63
+
64
+ function emitInput(e: Event): void {
65
+ emit('update:modelValue', getValue(e))
66
66
  }
67
67
 
68
68
  function emitEnter(e: KeyboardEvent): void {
@@ -81,37 +81,139 @@ function getValue(e: Event | FocusEvent | KeyboardEvent): string | null {
81
81
  }
82
82
  </script>
83
83
 
84
+ <template>
85
+ <SInputBase
86
+ class="SInputText"
87
+ :class="classes"
88
+ :name="name"
89
+ :label="label"
90
+ :note="note"
91
+ :help="help"
92
+ :hide-error="hideError"
93
+ :validation="validation"
94
+ >
95
+ <div class="box" :class="{ focus: isFocused }" @click="focus">
96
+ <div v-if="icon" class="icon">
97
+ <SIcon :icon="icon" class="icon-svg" />
98
+ </div>
99
+
100
+ <div class="value">
101
+ <input
102
+ class="input"
103
+ :class="{ hide: showDisplay }"
104
+ :id="name"
105
+ :type="type ?? 'text'"
106
+ :placeholder="placeholder"
107
+ :disabled="disabled"
108
+ :value="modelValue"
109
+ ref="input"
110
+ @focus="onFocus"
111
+ @blur="emitBlur"
112
+ @input="emitInput"
113
+ @keypress.enter="emitEnter"
114
+ >
115
+ <div v-if="showDisplay" class="display">
116
+ {{ displayValue }}
117
+ </div>
118
+ </div>
119
+ </div>
120
+ </SInputBase>
121
+ </template>
122
+
84
123
  <style lang="postcss" scoped>
85
124
  .SInputText.mini {
86
- .input {
125
+ .input,
126
+ .input-area {
127
+ min-height: 32px;
87
128
  padding: 3px 12px;
88
129
  font-size: 14px;
130
+
131
+ &.has-icon {
132
+ padding-left: 30px;
133
+ }
134
+ }
135
+
136
+ .icon {
137
+ top: 9px;
138
+ left: 10px;
139
+ }
140
+
141
+ .icon-svg {
142
+ width: 14px;
143
+ height: 14px;
89
144
  }
90
145
  }
91
146
 
92
147
  .SInputText.small {
93
- .input {
94
- padding: 7px 12px;
148
+ .box {
149
+ min-height: 40px;
150
+ }
151
+
152
+ .value,
153
+ .input,
154
+ .display {
155
+ min-height: 38px;
156
+ }
157
+
158
+ .box {
159
+ padding: 0 12px;
160
+ }
161
+
162
+ .input,
163
+ .display {
164
+ padding: 5px 0;
165
+ letter-spacing: 0;
166
+ line-height: 24px;
95
167
  font-size: 16px;
96
168
  }
169
+
170
+ .icon {
171
+ width: 26px;
172
+ height: 38px;
173
+ }
174
+
175
+ .icon-svg {
176
+ width: 16px;
177
+ height: 16px;
178
+ }
97
179
  }
98
180
 
99
181
  .SInputText.medium {
100
- .input {
182
+ .input,
183
+ .input-area {
184
+ min-height: 48px;
101
185
  padding: 11px 16px;
102
186
  font-size: 16px;
187
+
188
+ &.has-icon {
189
+ padding-left: 36px;
190
+ }
191
+ }
192
+
193
+ .icon {
194
+ top: 16px;
195
+ left: 12px;
196
+ }
197
+
198
+ .icon-svg {
199
+ width: 16px;
200
+ height: 16px;
103
201
  }
104
202
  }
105
203
 
106
204
  .SInputText.disabled {
107
205
  .input {
206
+ background-color: var(--input-outlined-bg-disabled);
207
+ }
208
+
209
+ .box:hover .input {
108
210
  cursor: not-allowed;
109
- border-color: transparent;
211
+ border-color: var(--input-outlined-border);
110
212
  }
111
213
  }
112
214
 
113
215
  .SInputText.has-error {
114
- .input {
216
+ .box {
115
217
  border-color: var(--c-danger);
116
218
 
117
219
  &:hover,
@@ -121,28 +223,71 @@ function getValue(e: Event | FocusEvent | KeyboardEvent): string | null {
121
223
  }
122
224
  }
123
225
 
124
- .input {
125
- display: block;
226
+ .box {
227
+ position: relative;
228
+ display: flex;
126
229
  flex-grow: 1;
127
- border: 1px solid var(--input-border);
128
- border-radius: 4px;
230
+ max-width: 100%;
231
+ border: 1px solid var(--c-divider);
232
+ border-radius: 6px;
233
+ background-color: var(--c-bg);
234
+ cursor: text;
235
+ transition: border-color 0.25s;
236
+
237
+ &:hover {
238
+ border-color: var(--c-black);
239
+ }
240
+
241
+ &.focus,
242
+ &:hover.focus {
243
+ border-color: var(--c-info);
244
+ }
245
+
246
+ .dark &:hover {
247
+ border-color: var(--c-gray);
248
+ }
249
+
250
+ .dark &.focus,
251
+ .dark &:hover.focus {
252
+ border-color: var(--c-info);
253
+ }
254
+ }
255
+
256
+ .value {
257
+ position: relative;
258
+ flex-grow: 1;
259
+ }
260
+
261
+ .input {
129
262
  width: 100%;
130
- font-weight: 400;
131
263
  background-color: transparent;
132
- transition: border-color .25s, background-color .25s;
264
+
265
+ &.hide,
266
+ &.hide::placeholder {
267
+ color: transparent;
268
+ }
133
269
 
134
270
  &::placeholder {
135
271
  font-weight: 500;
136
- color: var(--input-placeholder);
272
+ color: var(--c-text-3);
137
273
  }
274
+ }
138
275
 
139
- &:hover {
140
- border-color: var(--input-hover-border);
141
- }
276
+ .display {
277
+ position: absolute;
278
+ top: 0;
279
+ left: 0;
280
+ width: 100%;
281
+ }
142
282
 
143
- &:focus {
144
- border-color: var(--input-focus-border);
145
- background-color: transparent;
146
- }
283
+ .icon {
284
+ display: flex;
285
+ align-items: center;
286
+ cursor: text;
287
+ color: var(--c-text-2);
288
+ }
289
+
290
+ .icon-svg {
291
+ fill: currentColor;
147
292
  }
148
293
  </style>
@@ -2,18 +2,20 @@
2
2
  <SInputBase
3
3
  class="SInputTextarea"
4
4
  :class="classes"
5
+ :name="name"
5
6
  :label="label"
6
7
  :note="note"
7
8
  :help="help"
8
- :error-message="errorMessage"
9
+ :hide-error="hideError"
9
10
  :validation="validation"
10
11
  >
11
12
  <textarea
13
+ :id="name"
12
14
  class="input"
13
15
  :placeholder="placeholder"
14
- :rows="rows"
16
+ :rows="rows ?? 3"
15
17
  :disabled="disabled"
16
- :value="modelValue ?? undefined"
18
+ :value="modelValue ?? ''"
17
19
  @input="emitInput"
18
20
  @blur="emitBlur"
19
21
  />
@@ -21,29 +23,32 @@
21
23
  </template>
22
24
 
23
25
  <script setup lang="ts">
24
- import { PropType, computed } from 'vue'
26
+ import { computed } from 'vue'
25
27
  import { Validatable } from '../composables/Validation'
26
28
  import SInputBase from './SInputBase.vue'
27
29
 
28
- type Size = 'mini' | 'small' | 'medium'
29
-
30
- const props = defineProps({
31
- size: { type: String as PropType<Size>, default: 'small' },
32
- label: { type: String, default: null },
33
- note: { type: String, default: null },
34
- help: { type: String, default: null },
35
- placeholder: { type: String, default: null },
36
- disabled: { type: Boolean, default: false },
37
- rows: { type: Number, default: 3 },
38
- errorMessage: { type: Boolean, default: true },
39
- modelValue: { type: String as PropType<string | null>, default: null },
40
- validation: { type: Object as PropType<Validatable>, default: null }
41
- })
42
-
43
- const emit = defineEmits(['update:modelValue'])
30
+ export type Size = 'mini' | 'small' | 'medium'
31
+
32
+ const props = defineProps<{
33
+ size?: Size
34
+ name?: string
35
+ label?: string
36
+ note?: string
37
+ help?: string
38
+ placeholder?: string
39
+ disabled?: boolean
40
+ rows?: number
41
+ modelValue: string | null
42
+ hideError?: boolean
43
+ validation?: Validatable
44
+ }>()
45
+
46
+ const emit = defineEmits<{
47
+ (e: 'update:modelValue', value: string): void
48
+ }>()
44
49
 
45
50
  const classes = computed(() => [
46
- props.size,
51
+ props.size ?? 'small',
47
52
  { disabled: props.disabled }
48
53
  ])
49
54
 
@@ -70,9 +75,9 @@ function emitBlur(e: FocusEvent): void {
70
75
 
71
76
  .SInputTextarea.small {
72
77
  .input {
73
- padding: 7px 12px;
78
+ padding: 12px;
74
79
  width: 100%;
75
- min-height: 88px;
80
+ min-height: 96px;
76
81
  line-height: 24px;
77
82
  font-size: 16px;
78
83
  }
@@ -110,25 +115,34 @@ function emitBlur(e: FocusEvent): void {
110
115
  .input {
111
116
  display: block;
112
117
  flex-grow: 1;
113
- border: 1px solid var(--input-border);
114
- border-radius: 4px;
118
+ border: 1px solid var(--c-divider);
119
+ border-radius: 6px;
115
120
  width: 100%;
116
121
  font-weight: 400;
117
- background-color: transparent;
118
- transition: border-color .25s, background-color .25s;
122
+ background-color: var(--c-bg);
123
+ transition: border-color 0.25s, background-color 0.25s;
119
124
 
120
125
  &::placeholder {
121
126
  font-weight: 500;
122
- color: var(--input-placeholder);
127
+ color: var(--c-text-3);
123
128
  }
124
129
 
125
130
  &:hover {
126
- border-color: var(--input-hover-border);
131
+ border-color: var(--c-black);
132
+ }
133
+
134
+ &:focus,
135
+ &:hover:focus {
136
+ border-color: var(--c-info);
137
+ }
138
+
139
+ .dark &:hover {
140
+ border-color: var(--c-gray);
127
141
  }
128
142
 
129
- &:focus {
130
- border-color: var(--input-focus-border);
131
- background-color: transparent;
143
+ .dark &:focus,
144
+ .dark &:hover:focus {
145
+ border-color: var(--c-info);
132
146
  }
133
147
  }
134
148
  </style>