* fix: reduce flickering
Related to #25.
Search results flickers because of three things (IMO):
- `handleInput` resets the `results` array, which immediately dropping
list with `#if` directive in `SearchResult` component
- Changing styles on `focus` and `blur` are not immediate operation, that's why another
kind of flickering is a transition between focused and non-focused
state (gray background)
- `getIcon` function is another "bottleneck"; preservation of space for
upcomming <img> tag is a key for rescue
Most "ugly" part of this code is manipulating with classes. Changing
classes through Svelte's `class:` binding leads to focus lost.
Unfortunately, manipulating classes through script cannot be made with
obfuscated selectors, that's why you can see `:global` in code. Maybe you
know better way to change classes without losing focus.
* fix: span attributes
* fix: remove icon flickering with icons cache
* fix: reset `results` when search pattern is empty
* chore: fix extra rectangular overlay on calculation results
* chore: fix closing window when pressing enter/return
* chore: fix keys not being registered
Co-authored-by: Parth Jadhav <jadhavparth99@gmail.com>
Fix error when offset starts with '+' or '-':
```
thread 'tokio-runtime-worker' panicked at 'called Result::unwrap() on an Err value: "Timezone information not found"', src/util/calculator.rs:26:32
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
```
For example for `Asia/Almaty` (located in Kazakhstan) `offset_from_utc_date` returns "+6" rather than "GMT+6".
This leads to an error beacuse Regex in Smartcalc expects offset with `GMT` in string:
https://github.com/erhanbaris/smartcalc/blob/cd39b590aba74e8ca326ba78acea488d0550a3e8/src/json/config.json#L35