@sierra-95/svelte-scaffold 1.0.9 → 1.0.10

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 (86) hide show
  1. package/README.md +8 -8
  2. package/dist/Hooks/preview.d.ts +2 -1
  3. package/dist/Hooks/preview.js +4 -4
  4. package/dist/components/Core/Alerts/Backdrop/backdrop.svelte +26 -26
  5. package/dist/components/Core/Alerts/Modal/modal.svelte +40 -40
  6. package/dist/components/Core/Alerts/Toast/toast.css +38 -38
  7. package/dist/components/Core/Alerts/Toast/toast.svelte +32 -32
  8. package/dist/components/Core/Alerts/Wrapper/wrapper.svelte +18 -18
  9. package/dist/components/Core/Alerts/site-under-maintenance/site-under-maintenance.svelte +33 -33
  10. package/dist/components/Core/Form/Hr/hr.svelte +10 -10
  11. package/dist/components/Core/Form/Input/FileInput/fileInput.svelte +158 -158
  12. package/dist/components/Core/Form/Input/FileInput/preview.svelte +50 -50
  13. package/dist/components/Core/Form/Input/SearchBar/search.svelte +68 -68
  14. package/dist/components/Core/Form/Input/input/input.svelte +16 -16
  15. package/dist/components/Core/Form/Input/password/password.svelte +26 -26
  16. package/dist/components/Core/Menus/DropdownContainer/dropdown.svelte +94 -94
  17. package/dist/components/Core/Menus/MenuItem/menuItem.svelte +43 -43
  18. package/dist/components/Core/Menus/UserMenu/profile.svelte +34 -34
  19. package/dist/components/Core/others/Button/Flip/button.css +50 -50
  20. package/dist/components/Core/others/Button/Flip/button.svelte +79 -79
  21. package/dist/components/Core/others/Button/Marquee/button.css +36 -36
  22. package/dist/components/Core/others/Button/Marquee/button.svelte +58 -58
  23. package/dist/components/Core/others/Button/Swipe/button.css +32 -32
  24. package/dist/components/Core/others/Button/Swipe/button.svelte +57 -57
  25. package/dist/components/Core/others/Button/default/button.css +60 -60
  26. package/dist/components/Core/others/Button/default/button.svelte +124 -124
  27. package/dist/components/Core/others/Button/select/select.svelte +28 -28
  28. package/dist/components/Core/others/Button/theme/theme.css +121 -121
  29. package/dist/components/Core/others/Button/theme/theme.svelte +67 -67
  30. package/dist/components/Core/others/Button/times/times.svelte +24 -24
  31. package/dist/components/Core/others/Clock/Date/date.svelte +25 -25
  32. package/dist/components/Core/others/Clock/Time/time.svelte +35 -35
  33. package/dist/components/Core/others/Previews/Audio/audio.svelte +61 -61
  34. package/dist/components/Core/others/Previews/Document/documents.svelte +36 -36
  35. package/dist/components/Core/others/Previews/GenericFile/genericFile.svelte +25 -25
  36. package/dist/components/Core/others/Previews/Image/image.svelte +26 -26
  37. package/dist/components/Core/others/Previews/Video/video.svelte +28 -28
  38. package/dist/components/Core/others/Progress/CircularProgress/CircularProgress.svelte +55 -55
  39. package/dist/components/Core/others/Progress/CustomProgress/customProgress.svelte +64 -64
  40. package/dist/components/Core/others/Progress/LinearProgress/LinearProgress.css +60 -60
  41. package/dist/components/Core/others/Progress/LinearProgress/LinearProgress.svelte +86 -86
  42. package/dist/components/Modules/Editor/Hooks/extractContent.js +14 -14
  43. package/dist/components/Modules/Editor/Hooks/extractImage.js +30 -30
  44. package/dist/components/Modules/Editor/Hooks/insertImage.js +26 -26
  45. package/dist/components/Modules/Editor/Hooks/insertYoutube.js +34 -34
  46. package/dist/components/Modules/Editor/Marks/Links/links.svelte +78 -78
  47. package/dist/components/Modules/Editor/Marks/TextFormatting/textFormatting.svelte +32 -32
  48. package/dist/components/Modules/Editor/Nodes/Headings/heading.svelte +58 -58
  49. package/dist/components/Modules/Editor/Nodes/History/history.svelte +21 -21
  50. package/dist/components/Modules/Editor/Nodes/Images/images.svelte +85 -85
  51. package/dist/components/Modules/Editor/Nodes/Lists/lists.svelte +30 -30
  52. package/dist/components/Modules/Editor/Nodes/TextAlign/textAlign.svelte +55 -55
  53. package/dist/components/Modules/Editor/Nodes/TextColor/styles.css +18 -18
  54. package/dist/components/Modules/Editor/Nodes/TextColor/textColor.svelte +88 -88
  55. package/dist/components/Modules/Editor/Nodes/Youtube/youtube.svelte +32 -32
  56. package/dist/components/Modules/Editor/colors.js +21 -21
  57. package/dist/components/Modules/Editor/controls.svelte +71 -71
  58. package/dist/components/Modules/Editor/extensions.js +59 -59
  59. package/dist/components/Modules/Editor/main.svelte +41 -41
  60. package/dist/components/Modules/Editor/save.svelte +28 -28
  61. package/dist/components/Modules/Editor/styles/controls.css +68 -68
  62. package/dist/components/Modules/Editor/styles/main.css +42 -42
  63. package/dist/components/Modules/Editor/tools.js +22 -22
  64. package/dist/components/Modules/FilePicker/cloudStore.svelte +101 -98
  65. package/dist/components/Modules/FilePicker/controls.svelte +167 -141
  66. package/dist/components/Modules/FilePicker/controls.svelte.d.ts +4 -19
  67. package/dist/components/Modules/FilePicker/filePicker.svelte +59 -59
  68. package/dist/components/Modules/FilePicker/file_properties.svelte +33 -0
  69. package/dist/components/Modules/FilePicker/file_properties.svelte.d.ts +11 -0
  70. package/dist/components/Modules/FilePicker/previews.svelte +22 -22
  71. package/dist/components/Modules/Layout/Header/header.css +37 -37
  72. package/dist/components/Modules/Layout/Header/header.svelte +31 -31
  73. package/dist/components/Modules/Layout/Menu/menu.css +53 -53
  74. package/dist/components/Modules/Layout/Menu/menu.svelte +129 -129
  75. package/dist/components/Modules/Layout/background.svelte +28 -28
  76. package/dist/components/Modules/Layout/collapse.svelte +24 -24
  77. package/dist/components/Modules/Layout/main.css +31 -31
  78. package/dist/components/Modules/Layout/main.svelte +110 -110
  79. package/dist/global.css +246 -246
  80. package/dist/index.d.ts +1 -0
  81. package/dist/stores/core/general.js +4 -4
  82. package/dist/stores/core/ismobile.js +14 -14
  83. package/dist/stores/core/modal.js +35 -35
  84. package/dist/stores/modules/fileInput.d.ts +11 -4
  85. package/dist/stores/modules/fileInput.js +1 -1
  86. package/package.json +75 -75
@@ -1,29 +1,29 @@
1
- <script lang="ts">
2
- const {
3
- ...rest
4
- } = $props();
5
- </script>
6
- <style>
7
- #sierra-button-select{
8
- position: absolute;
9
- top: 6px;
10
- right: 6px;
11
- width: 22px;
12
- height: 22px;
13
- border-radius: 50%;
14
- background: var(--primary-bg);
15
- display: flex;
16
- align-items: center;
17
- justify-content: center;
18
- z-index: 2;
19
- }
20
- </style>
21
- <button
22
- aria-label="Selected"
23
- id="sierra-button-select"
24
- {...rest}
25
- onclick={(e: MouseEvent) => {
26
- rest.onclick?.(e);
27
- }}
28
- ><i class="fa fa-check" style="color: white; font-size: 12px;"></i>
1
+ <script lang="ts">
2
+ const {
3
+ ...rest
4
+ } = $props();
5
+ </script>
6
+ <style>
7
+ #sierra-button-select{
8
+ position: absolute;
9
+ top: 6px;
10
+ right: 6px;
11
+ width: 22px;
12
+ height: 22px;
13
+ border-radius: 50%;
14
+ background: var(--primary-bg);
15
+ display: flex;
16
+ align-items: center;
17
+ justify-content: center;
18
+ z-index: 2;
19
+ }
20
+ </style>
21
+ <button
22
+ aria-label="Selected"
23
+ id="sierra-button-select"
24
+ {...rest}
25
+ onclick={(e: MouseEvent) => {
26
+ rest.onclick?.(e);
27
+ }}
28
+ ><i class="fa fa-check" style="color: white; font-size: 12px;"></i>
29
29
  </button>
@@ -1,122 +1,122 @@
1
- #sierra-theme-toggle {
2
- --hue: 223;
3
- --trans-dur: 0.6s;
4
- --trans-timing: cubic-bezier(0.65,0,0.35,1);
5
- font-size: calc(60px + (120 - 60) * (100vw - 320px) / (2560 - 320));
6
- }
7
- #sierra-theme-toggle * {
8
- border: 0;
9
- box-sizing: border-box;
10
- margin: 0;
11
- padding: 0;
12
- }
13
- #sierra-theme-toggle,
14
- #sierra-theme-toggle .switch__input {
15
- display: block;
16
- -webkit-tap-highlight-color: transparent;
17
- }
18
- #sierra-theme-toggle {
19
- font-size: 25px;
20
- margin: auto;
21
- position: relative;
22
- -webkit-user-select: none;
23
- -moz-user-select: none;
24
- user-select: none;
25
- cursor: pointer;
26
- width: 68.75px;
27
- overflow: hidden;
28
- border-radius: 0.8em;
29
- box-shadow: var(--box-shadow);
30
- }
31
- #sierra-theme-toggle .switch__icon {
32
- color: hsla(var(--hue),10%,80%);
33
- position: absolute;
34
- top: 0.375em;
35
- left: 0.375em;
36
- width: 0.75em;
37
- height: 0.75em;
38
- transition:
39
- color var(--trans-dur),
40
- transform var(--trans-dur) var(--trans-timing);
41
- }
42
- #sierra-theme-toggle .switch__icon:nth-of-type(2) {
43
- right: 0.375em;
44
- left: auto;
45
- }
46
- #sierra-theme-toggle .switch__inner,
47
- #sierra-theme-toggle .switch__inner-icons {
48
- border-radius: 0.5em;
49
- display: block;
50
- overflow: hidden;
51
- position: absolute;
52
- top: 0.25em;
53
- left: 0.25em;
54
- width: 2.25em;
55
- height: 1em;
56
- }
57
- #sierra-theme-toggle .switch__inner:before,
58
- #sierra-theme-toggle .switch__inner-icons {
59
- transition: transform var(--trans-dur) var(--trans-timing);
60
- transform: translateX(-1.25em);
61
- }
62
- #sierra-theme-toggle .switch__inner:before {
63
- background-color: var(--primary-bg);
64
- border-radius: inherit;
65
- content: "";
66
- display: block;
67
- width: 100%;
68
- height: 100%;
69
- }
70
- #sierra-theme-toggle .switch__inner-icons {
71
- pointer-events: none;
72
- }
73
- #sierra-theme-toggle .switch__inner-icons .switch__icon {
74
- color: hsl(0,0%,100%);
75
- top: 0.125em;
76
- left: 0.125em;
77
- transform: translateX(1.25em);
78
- }
79
- #sierra-theme-toggle .switch__inner-icons .switch__icon:nth-child(2) {
80
- right: 0.125em;
81
- left: auto;
82
- }
83
- #sierra-theme-toggle .switch__input {
84
- background-color: hsl(0,0%,100%);
85
- border-radius: 0.75em;
86
- box-shadow:
87
- 0 0 0 0.0625em hsla(var(--hue),90%,50%,0),
88
- 0 0.125em 0.5em hsla(var(--hue),10%,10%,0.1);
89
- outline: transparent;
90
- width: 2.75em;
91
- height: 1.5em;
92
- -webkit-appearance: none;
93
- appearance: none;
94
- transition:
95
- background-color var(--trans-dur),
96
- box-shadow var(--trans-dur);
97
- }
98
- #sierra-theme-toggle .switch__input:checked {
99
- background-color: hsl(var(--hue),10%,10%);
100
- }
101
- #sierra-theme-toggle .switch__input:checked ~ .switch__icon {
102
- color: hsla(var(--hue),10%,40%);
103
- }
104
- #sierra-theme-toggle .switch__input:checked ~ .switch__inner:before,
105
- #sierra-theme-toggle .switch__input:checked ~ .switch__inner-icons {
106
- transform: translateX(1.25em);
107
- }
108
- #sierra-theme-toggle .switch__input:not(:checked) ~ .switch__icon:first-of-type,
109
- #sierra-theme-toggle .switch__input:checked ~ .switch__icon:nth-of-type(2) {
110
- transform: rotate(360deg);
111
- }
112
- #sierra-theme-toggle .switch__input:checked ~ .switch__inner-icons .switch__icon:first-of-type {
113
- transform: translateX(-1.25em) rotate(-360deg);
114
- }
115
- #sierra-theme-toggle .switch__input:checked ~ .switch__inner-icons .switch__icon:nth-of-type(2) {
116
- transform: translateX(-1.25em) rotate(360deg);
117
- }
118
- #sierra-theme-toggle .switch__input:focus-visible {
119
- box-shadow:
120
- 0 0 0 0.0625em hsla(var(--hue),90%,50%,1),
121
- 0 0.125em 0.5em hsla(var(--hue),10%,10%,0.1);
1
+ #sierra-theme-toggle {
2
+ --hue: 223;
3
+ --trans-dur: 0.6s;
4
+ --trans-timing: cubic-bezier(0.65,0,0.35,1);
5
+ font-size: calc(60px + (120 - 60) * (100vw - 320px) / (2560 - 320));
6
+ }
7
+ #sierra-theme-toggle * {
8
+ border: 0;
9
+ box-sizing: border-box;
10
+ margin: 0;
11
+ padding: 0;
12
+ }
13
+ #sierra-theme-toggle,
14
+ #sierra-theme-toggle .switch__input {
15
+ display: block;
16
+ -webkit-tap-highlight-color: transparent;
17
+ }
18
+ #sierra-theme-toggle {
19
+ font-size: 25px;
20
+ margin: auto;
21
+ position: relative;
22
+ -webkit-user-select: none;
23
+ -moz-user-select: none;
24
+ user-select: none;
25
+ cursor: pointer;
26
+ width: 68.75px;
27
+ overflow: hidden;
28
+ border-radius: 0.8em;
29
+ box-shadow: var(--box-shadow);
30
+ }
31
+ #sierra-theme-toggle .switch__icon {
32
+ color: hsla(var(--hue),10%,80%);
33
+ position: absolute;
34
+ top: 0.375em;
35
+ left: 0.375em;
36
+ width: 0.75em;
37
+ height: 0.75em;
38
+ transition:
39
+ color var(--trans-dur),
40
+ transform var(--trans-dur) var(--trans-timing);
41
+ }
42
+ #sierra-theme-toggle .switch__icon:nth-of-type(2) {
43
+ right: 0.375em;
44
+ left: auto;
45
+ }
46
+ #sierra-theme-toggle .switch__inner,
47
+ #sierra-theme-toggle .switch__inner-icons {
48
+ border-radius: 0.5em;
49
+ display: block;
50
+ overflow: hidden;
51
+ position: absolute;
52
+ top: 0.25em;
53
+ left: 0.25em;
54
+ width: 2.25em;
55
+ height: 1em;
56
+ }
57
+ #sierra-theme-toggle .switch__inner:before,
58
+ #sierra-theme-toggle .switch__inner-icons {
59
+ transition: transform var(--trans-dur) var(--trans-timing);
60
+ transform: translateX(-1.25em);
61
+ }
62
+ #sierra-theme-toggle .switch__inner:before {
63
+ background-color: var(--primary-bg);
64
+ border-radius: inherit;
65
+ content: "";
66
+ display: block;
67
+ width: 100%;
68
+ height: 100%;
69
+ }
70
+ #sierra-theme-toggle .switch__inner-icons {
71
+ pointer-events: none;
72
+ }
73
+ #sierra-theme-toggle .switch__inner-icons .switch__icon {
74
+ color: hsl(0,0%,100%);
75
+ top: 0.125em;
76
+ left: 0.125em;
77
+ transform: translateX(1.25em);
78
+ }
79
+ #sierra-theme-toggle .switch__inner-icons .switch__icon:nth-child(2) {
80
+ right: 0.125em;
81
+ left: auto;
82
+ }
83
+ #sierra-theme-toggle .switch__input {
84
+ background-color: hsl(0,0%,100%);
85
+ border-radius: 0.75em;
86
+ box-shadow:
87
+ 0 0 0 0.0625em hsla(var(--hue),90%,50%,0),
88
+ 0 0.125em 0.5em hsla(var(--hue),10%,10%,0.1);
89
+ outline: transparent;
90
+ width: 2.75em;
91
+ height: 1.5em;
92
+ -webkit-appearance: none;
93
+ appearance: none;
94
+ transition:
95
+ background-color var(--trans-dur),
96
+ box-shadow var(--trans-dur);
97
+ }
98
+ #sierra-theme-toggle .switch__input:checked {
99
+ background-color: hsl(var(--hue),10%,10%);
100
+ }
101
+ #sierra-theme-toggle .switch__input:checked ~ .switch__icon {
102
+ color: hsla(var(--hue),10%,40%);
103
+ }
104
+ #sierra-theme-toggle .switch__input:checked ~ .switch__inner:before,
105
+ #sierra-theme-toggle .switch__input:checked ~ .switch__inner-icons {
106
+ transform: translateX(1.25em);
107
+ }
108
+ #sierra-theme-toggle .switch__input:not(:checked) ~ .switch__icon:first-of-type,
109
+ #sierra-theme-toggle .switch__input:checked ~ .switch__icon:nth-of-type(2) {
110
+ transform: rotate(360deg);
111
+ }
112
+ #sierra-theme-toggle .switch__input:checked ~ .switch__inner-icons .switch__icon:first-of-type {
113
+ transform: translateX(-1.25em) rotate(-360deg);
114
+ }
115
+ #sierra-theme-toggle .switch__input:checked ~ .switch__inner-icons .switch__icon:nth-of-type(2) {
116
+ transform: translateX(-1.25em) rotate(360deg);
117
+ }
118
+ #sierra-theme-toggle .switch__input:focus-visible {
119
+ box-shadow:
120
+ 0 0 0 0.0625em hsla(var(--hue),90%,50%,1),
121
+ 0 0.125em 0.5em hsla(var(--hue),10%,10%,0.1);
122
122
  }
@@ -1,68 +1,68 @@
1
- <script lang="ts">
2
- import './theme.css';
3
- import { onMount } from 'svelte';
4
- import {theme} from '../../../../../index.js';
5
-
6
- let isDark = false;
7
-
8
- onMount(() => {
9
- const unsubscribe = theme.subscribe(value => {
10
- isDark = value === 'dark';
11
- });
12
- return () => unsubscribe();
13
- });
14
-
15
- function toggleTheme(e: Event) {
16
- const target = e.target as HTMLInputElement;
17
- isDark = target.checked;
18
- theme.set(isDark ? 'dark' : 'light');
19
- }
20
- </script>
21
-
22
- <main>
23
- <svg style="display: none;">
24
- <symbol id="light" viewBox="0 0 24 24">
25
- <g stroke="currentColor" stroke-width="2" stroke-linecap="round">
26
- <line x1="12" y1="17" x2="12" y2="20" transform="rotate(0,12,12)" />
27
- <line x1="12" y1="17" x2="12" y2="20" transform="rotate(45,12,12)" />
28
- <line x1="12" y1="17" x2="12" y2="20" transform="rotate(90,12,12)" />
29
- <line x1="12" y1="17" x2="12" y2="20" transform="rotate(135,12,12)" />
30
- <line x1="12" y1="17" x2="12" y2="20" transform="rotate(180,12,12)" />
31
- <line x1="12" y1="17" x2="12" y2="20" transform="rotate(225,12,12)" />
32
- <line x1="12" y1="17" x2="12" y2="20" transform="rotate(270,12,12)" />
33
- <line x1="12" y1="17" x2="12" y2="20" transform="rotate(315,12,12)" />
34
- </g>
35
- <circle fill="currentColor" cx="12" cy="12" r="5" />
36
- </symbol>
37
- <symbol id="dark" viewBox="0 0 24 24">
38
- <path fill="currentColor" d="M15.1,14.9c-3-0.5-5.5-3-6-6C8.8,7.1,9.1,5.4,9.9,4c0.4-0.8-0.4-1.7-1.2-1.4C4.6,4,1.8,7.9,2,12.5c0.2,5.1,4.4,9.3,9.5,9.5c4.5,0.2,8.5-2.6,9.9-6.6c0.3-0.8-0.6-1.7-1.4-1.2C18.6,14.9,16.9,15.2,15.1,14.9z" />
39
- </symbol>
40
- </svg>
41
- <label id="sierra-theme-toggle">
42
- <input
43
- hidden
44
- class="switch__input"
45
- type="checkbox"
46
- role="switch"
47
- name="dark"
48
- bind:checked={isDark}
49
- on:change={toggleTheme}
50
- />
51
- <button aria-label="button"></button>
52
- <svg class="switch__icon" width="24px" height="24px" aria-hidden="true">
53
- <use href="#light" />
54
- </svg>
55
- <svg class="switch__icon" width="24px" height="24px" aria-hidden="true">
56
- <use href="#dark" />
57
- </svg>
58
- <span class="switch__inner"></span>
59
- <span class="switch__inner-icons">
60
- <svg class="switch__icon" width="24px" height="24px" aria-hidden="true">
61
- <use href="#light" />
62
- </svg>
63
- <svg class="switch__icon" width="24px" height="24px" aria-hidden="true">
64
- <use href="#dark" />
65
- </svg>
66
- </span>
67
- </label>
1
+ <script lang="ts">
2
+ import './theme.css';
3
+ import { onMount } from 'svelte';
4
+ import {theme} from '../../../../../index.js';
5
+
6
+ let isDark = false;
7
+
8
+ onMount(() => {
9
+ const unsubscribe = theme.subscribe(value => {
10
+ isDark = value === 'dark';
11
+ });
12
+ return () => unsubscribe();
13
+ });
14
+
15
+ function toggleTheme(e: Event) {
16
+ const target = e.target as HTMLInputElement;
17
+ isDark = target.checked;
18
+ theme.set(isDark ? 'dark' : 'light');
19
+ }
20
+ </script>
21
+
22
+ <main>
23
+ <svg style="display: none;">
24
+ <symbol id="light" viewBox="0 0 24 24">
25
+ <g stroke="currentColor" stroke-width="2" stroke-linecap="round">
26
+ <line x1="12" y1="17" x2="12" y2="20" transform="rotate(0,12,12)" />
27
+ <line x1="12" y1="17" x2="12" y2="20" transform="rotate(45,12,12)" />
28
+ <line x1="12" y1="17" x2="12" y2="20" transform="rotate(90,12,12)" />
29
+ <line x1="12" y1="17" x2="12" y2="20" transform="rotate(135,12,12)" />
30
+ <line x1="12" y1="17" x2="12" y2="20" transform="rotate(180,12,12)" />
31
+ <line x1="12" y1="17" x2="12" y2="20" transform="rotate(225,12,12)" />
32
+ <line x1="12" y1="17" x2="12" y2="20" transform="rotate(270,12,12)" />
33
+ <line x1="12" y1="17" x2="12" y2="20" transform="rotate(315,12,12)" />
34
+ </g>
35
+ <circle fill="currentColor" cx="12" cy="12" r="5" />
36
+ </symbol>
37
+ <symbol id="dark" viewBox="0 0 24 24">
38
+ <path fill="currentColor" d="M15.1,14.9c-3-0.5-5.5-3-6-6C8.8,7.1,9.1,5.4,9.9,4c0.4-0.8-0.4-1.7-1.2-1.4C4.6,4,1.8,7.9,2,12.5c0.2,5.1,4.4,9.3,9.5,9.5c4.5,0.2,8.5-2.6,9.9-6.6c0.3-0.8-0.6-1.7-1.4-1.2C18.6,14.9,16.9,15.2,15.1,14.9z" />
39
+ </symbol>
40
+ </svg>
41
+ <label id="sierra-theme-toggle">
42
+ <input
43
+ hidden
44
+ class="switch__input"
45
+ type="checkbox"
46
+ role="switch"
47
+ name="dark"
48
+ bind:checked={isDark}
49
+ on:change={toggleTheme}
50
+ />
51
+ <button aria-label="button"></button>
52
+ <svg class="switch__icon" width="24px" height="24px" aria-hidden="true">
53
+ <use href="#light" />
54
+ </svg>
55
+ <svg class="switch__icon" width="24px" height="24px" aria-hidden="true">
56
+ <use href="#dark" />
57
+ </svg>
58
+ <span class="switch__inner"></span>
59
+ <span class="switch__inner-icons">
60
+ <svg class="switch__icon" width="24px" height="24px" aria-hidden="true">
61
+ <use href="#light" />
62
+ </svg>
63
+ <svg class="switch__icon" width="24px" height="24px" aria-hidden="true">
64
+ <use href="#dark" />
65
+ </svg>
66
+ </span>
67
+ </label>
68
68
  </main>
@@ -1,25 +1,25 @@
1
- <script lang="ts">
2
- const {
3
- vertical = 'top',
4
- horizontal = 'right',
5
- ...rest
6
- } = $props();
7
- </script>
8
- <style>
9
- .sierra-times-top{
10
- transform: translate(50%, -50%);
11
- }
12
- .sierra-times-bottom{
13
- transform: translate(50%, 50%);
14
- }
15
- </style>
16
- <button
17
- {...rest}
18
- onclick={(e: MouseEvent) => {
19
- rest.onclick?.(e);
20
- }}
21
- style="position: absolute; {vertical}: 0; {horizontal}: 0;"
22
- aria-label="Times Button"
23
- class={vertical === 'top' ? 'sierra-times-top' : 'sierra-times-bottom'}
24
- ><i class="fa fa-times-circle"></i>
1
+ <script lang="ts">
2
+ const {
3
+ vertical = 'top',
4
+ horizontal = 'right',
5
+ ...rest
6
+ } = $props();
7
+ </script>
8
+ <style>
9
+ .sierra-times-top{
10
+ transform: translate(50%, -50%);
11
+ }
12
+ .sierra-times-bottom{
13
+ transform: translate(50%, 50%);
14
+ }
15
+ </style>
16
+ <button
17
+ {...rest}
18
+ onclick={(e: MouseEvent) => {
19
+ rest.onclick?.(e);
20
+ }}
21
+ style="position: absolute; {vertical}: 0; {horizontal}: 0;"
22
+ aria-label="Times Button"
23
+ class={vertical === 'top' ? 'sierra-times-top' : 'sierra-times-bottom'}
24
+ ><i class="fa fa-times-circle"></i>
25
25
  </button>
@@ -1,25 +1,25 @@
1
- <script lang="ts">
2
- import { onMount } from "svelte";
3
-
4
- export let timezone: string = "Africa/Nairobi";
5
-
6
- let time = new Date();
7
- let interval: ReturnType<typeof setInterval>;
8
-
9
- onMount(() => {
10
- interval = setInterval(() => {
11
- time = new Date();
12
- }, 1000);
13
-
14
- return () => clearInterval(interval);
15
- });
16
-
17
- $: dateString = new Intl.DateTimeFormat("en-GB", {
18
- weekday: "long",
19
- day: "numeric",
20
- month: "long",
21
- timeZone: timezone
22
- }).format(time);
23
- </script>
24
-
25
- <div>{dateString}</div>
1
+ <script lang="ts">
2
+ import { onMount } from "svelte";
3
+
4
+ export let timezone: string = "Africa/Nairobi";
5
+
6
+ let time = new Date();
7
+ let interval: ReturnType<typeof setInterval>;
8
+
9
+ onMount(() => {
10
+ interval = setInterval(() => {
11
+ time = new Date();
12
+ }, 1000);
13
+
14
+ return () => clearInterval(interval);
15
+ });
16
+
17
+ $: dateString = new Intl.DateTimeFormat("en-GB", {
18
+ weekday: "long",
19
+ day: "numeric",
20
+ month: "long",
21
+ timeZone: timezone
22
+ }).format(time);
23
+ </script>
24
+
25
+ <div>{dateString}</div>
@@ -1,35 +1,35 @@
1
- <script lang="ts">
2
- import { onMount } from 'svelte';
3
-
4
- export let timezone: string = 'Africa/Nairobi';
5
-
6
- let time = new Date();
7
- let interval: ReturnType<typeof setInterval>;
8
-
9
- onMount(() => {
10
- interval = setInterval(() => {
11
- time = new Date();
12
- }, 1000);
13
-
14
- return () => clearInterval(interval);
15
- });
16
-
17
- $: timeString = new Intl.DateTimeFormat('en-GB', {
18
- timeStyle: 'medium',
19
- timeZone: timezone
20
- }).format(time);
21
-
22
- $: ampm = new Intl.DateTimeFormat('en-GB', {
23
- hour12: true,
24
- hour: 'numeric',
25
- timeZone: timezone
26
- }).format(time).split(' ')[1];
27
-
28
- $: city = timezone.split('/')[1]?.replace('_', ' ') || '';
29
- </script>
30
-
31
- <div style="display: flex; align-items:last baseline; gap: 0.2rem;">
32
- {timeString}
33
- <span class="time">{ampm}</span>
34
- <span class="time">{city}</span>
35
- </div>
1
+ <script lang="ts">
2
+ import { onMount } from 'svelte';
3
+
4
+ export let timezone: string = 'Africa/Nairobi';
5
+
6
+ let time = new Date();
7
+ let interval: ReturnType<typeof setInterval>;
8
+
9
+ onMount(() => {
10
+ interval = setInterval(() => {
11
+ time = new Date();
12
+ }, 1000);
13
+
14
+ return () => clearInterval(interval);
15
+ });
16
+
17
+ $: timeString = new Intl.DateTimeFormat('en-GB', {
18
+ timeStyle: 'medium',
19
+ timeZone: timezone
20
+ }).format(time);
21
+
22
+ $: ampm = new Intl.DateTimeFormat('en-GB', {
23
+ hour12: true,
24
+ hour: 'numeric',
25
+ timeZone: timezone
26
+ }).format(time).split(' ')[1];
27
+
28
+ $: city = timezone.split('/')[1]?.replace('_', ' ') || '';
29
+ </script>
30
+
31
+ <div style="display: flex; align-items:last baseline; gap: 0.2rem;">
32
+ {timeString}
33
+ <span class="time">{ampm}</span>
34
+ <span class="time">{city}</span>
35
+ </div>