@sierra-95/svelte-scaffold 1.0.54 → 1.0.56

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.
@@ -0,0 +1,41 @@
1
+ <script lang="ts">
2
+ const {
3
+ barWidth = "30px",
4
+ barHeight = "3px",
5
+ barColor = "black",
6
+ barBorderRadius = "5px",
7
+ barSpacing = "5px",
8
+ ...rest
9
+ } = $props();
10
+ </script>
11
+
12
+ <button id="sierra-hamburger" style="gap: {barSpacing};"
13
+ onclick={(e: MouseEvent) => {
14
+ rest.onclick?.(e);
15
+ }}
16
+ aria-label="Menu">
17
+ <div class="bar" style="width: {barWidth}; height: {barHeight}; background-color: {barColor}; border-radius: {barBorderRadius};" ></div>
18
+ <div class="bar" style="width: {barWidth}; height: {barHeight}; background-color: {barColor}; border-radius: {barBorderRadius};" ></div>
19
+ <div class="bar" style="width: {barWidth}; height: {barHeight}; background-color: {barColor}; border-radius: {barBorderRadius};" ></div>
20
+ </button>
21
+
22
+ <style>
23
+ #sierra-hamburger{
24
+ display: flex;
25
+ flex-direction: column;
26
+ }
27
+ #sierra-hamburger .bar {
28
+ transition: all 0.3s ease;
29
+ }
30
+ #sierra-hamburger:hover .bar:nth-of-type(1) {
31
+ -webkit-transform: translateY(1.5px) rotate(-4.5deg);
32
+ -ms-transform: translateY(1.5px) rotate(-4.5deg);
33
+ transform: translateY(1.5px) rotate(-4.5deg);
34
+ }
35
+
36
+ #sierra-hamburger:hover .bar:nth-of-type(3) {
37
+ -webkit-transform: translateY(-1.5px) rotate(4.5deg);
38
+ -ms-transform: translateY(-1.5px) rotate(4.5deg);
39
+ transform: translateY(-1.5px) rotate(4.5deg);
40
+ }
41
+ </style>
@@ -0,0 +1,9 @@
1
+ declare const Hamburger: import("svelte").Component<{
2
+ barWidth?: string;
3
+ barHeight?: string;
4
+ barColor?: string;
5
+ barBorderRadius?: string;
6
+ barSpacing?: string;
7
+ } & Record<string, any>, {}, "">;
8
+ type Hamburger = ReturnType<typeof Hamburger>;
9
+ export default Hamburger;
@@ -1,7 +1,13 @@
1
1
  <script lang="ts">
2
+ type _iconPrefix = 'fa-solid' | 'fa-regular';
3
+ type _icon = 'fa-circle-xmark' | 'fa-xmark';
2
4
  const {
3
5
  vertical = 'top',
4
6
  horizontal = 'right',
7
+ absolute = true,
8
+ iconPrefix = 'fa-regular' as _iconPrefix,
9
+ icon = 'fa-circle-xmark' as _icon,
10
+ iconSize = '16px',
5
11
  ...rest
6
12
  } = $props();
7
13
  </script>
@@ -18,8 +24,8 @@
18
24
  onclick={(e: MouseEvent) => {
19
25
  rest.onclick?.(e);
20
26
  }}
21
- style="position: absolute; {vertical}: 0; {horizontal}: 0;"
27
+ style={absolute ? `position: absolute; ${vertical}: 0; ${horizontal}: 0;` : ``}
22
28
  aria-label="Times Button"
23
- class={vertical === 'top' ? 'sierra-times-top' : 'sierra-times-bottom'}
24
- ><i class="fa fa-times-circle"></i>
29
+ class={absolute ? (vertical === 'top' ? 'sierra-times-top' : 'sierra-times-bottom') : ''}
30
+ ><i class={`${iconPrefix} ${icon}`} style={`font-size: ${iconSize};`}></i>
25
31
  </button>
@@ -1,6 +1,10 @@
1
1
  declare const Times: import("svelte").Component<{
2
2
  vertical?: string;
3
3
  horizontal?: string;
4
+ absolute?: boolean;
5
+ iconPrefix?: "fa-solid" | "fa-regular";
6
+ icon?: "fa-circle-xmark" | "fa-xmark";
7
+ iconSize?: string;
4
8
  } & Record<string, any>, {}, "">;
5
9
  type Times = ReturnType<typeof Times>;
6
10
  export default Times;
@@ -0,0 +1,55 @@
1
+ <script lang="ts">
2
+ import {ButtonHamburger, ButtonTimes} from '../../../../index.js';
3
+ import { fly } from 'svelte/transition';
4
+
5
+
6
+ let {
7
+ barWidth = "30px",
8
+ barHeight = "3px",
9
+ barColor = "black",
10
+ barBorderRadius = "5px",
11
+ barSpacing = "5px",
12
+ menuTextColor = "black",
13
+ menuBackgroundColor = "white",
14
+ zIndex = 40,
15
+ menuOpen = $bindable(false),
16
+ children = null,
17
+ } = $props();
18
+
19
+ function toggleMenu() {
20
+ menuOpen = !menuOpen;
21
+ }
22
+ </script>
23
+
24
+ <ButtonHamburger
25
+ {barWidth}
26
+ {barHeight}
27
+ {barColor}
28
+ {barBorderRadius}
29
+ {barSpacing}
30
+ onclick={toggleMenu}
31
+ />
32
+
33
+ {#if menuOpen}
34
+ <div
35
+ id="sierra-hamburger-menu"
36
+ in:fly={{ y: -100, duration: 300 }}
37
+ out:fly={{ y: -100, duration: 300 }}
38
+ style="background-color: {menuBackgroundColor}; color: {menuTextColor}; z-index: {zIndex};"
39
+ >
40
+ <div style="height: 40px; padding-right: 20px; display: flex; align-items: flex-end; justify-content: flex-end;">
41
+ <ButtonTimes absolute={false} iconSize="18px" onclick={toggleMenu}/>
42
+ </div>
43
+ {@render children?.()}
44
+ </div>
45
+ {/if}
46
+
47
+ <style>
48
+ #sierra-hamburger-menu{
49
+ position: fixed;
50
+ top: 0;
51
+ right: 0;
52
+ bottom: 0;
53
+ left: 0;
54
+ }
55
+ </style>
@@ -0,0 +1,14 @@
1
+ declare const Hamburger: import("svelte").Component<{
2
+ barWidth?: string;
3
+ barHeight?: string;
4
+ barColor?: string;
5
+ barBorderRadius?: string;
6
+ barSpacing?: string;
7
+ menuTextColor?: string;
8
+ menuBackgroundColor?: string;
9
+ zIndex?: number;
10
+ menuOpen?: boolean;
11
+ children?: any;
12
+ }, {}, "menuOpen">;
13
+ type Hamburger = ReturnType<typeof Hamburger>;
14
+ export default Hamburger;
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export { default as ButtonSwipe } from './Core/components/Form/Button/Swipe/butt
9
9
  export { default as ButtonTheme } from './Core/components/Form/Button/theme/theme.svelte';
10
10
  export { default as ButtonTimes } from './Core/components/Form/Button/times/times.svelte';
11
11
  export { default as ButtonSelect } from './Core/components/Form/Button/select/select.svelte';
12
+ export { default as ButtonHamburger } from './Core/components/Form/Button/Hamburger/hamburger.svelte';
12
13
  export { default as Input } from './Core/components/Form/Input/input/input.svelte';
13
14
  export { default as PasswordInput } from './Core/components/Form/Input/password/password.svelte';
14
15
  export { default as Select } from './Core/components/Form/Input/select/select.svelte';
@@ -27,6 +28,7 @@ export { default as SiteUnderMaintenance } from './Core/components/Alerts/site-u
27
28
  export { default as MenuItem } from './Core/components/Menus/MenuItem/menuItem.svelte';
28
29
  export { default as DropdownContainer } from './Core/components/Menus/DropdownContainer/dropdown.svelte';
29
30
  export { default as Tabs } from './Core/components/Menus/Tabs/main.svelte';
31
+ export { default as HamburgerMenu } from './Core/components/Menus/Hamburger/hamburger.svelte';
30
32
  export { default as Time } from './Core/components/others/Calender/Time/time.svelte';
31
33
  export { default as Date } from './Core/components/others/Calender/Date/date.svelte';
32
34
  export { default as Hr } from './Core/components/Form/Hr/hr.svelte';
package/dist/index.js CHANGED
@@ -12,6 +12,7 @@ export { default as ButtonSwipe } from './Core/components/Form/Button/Swipe/butt
12
12
  export { default as ButtonTheme } from './Core/components/Form/Button/theme/theme.svelte';
13
13
  export { default as ButtonTimes } from './Core/components/Form/Button/times/times.svelte';
14
14
  export { default as ButtonSelect } from './Core/components/Form/Button/select/select.svelte';
15
+ export { default as ButtonHamburger } from './Core/components/Form/Button/Hamburger/hamburger.svelte';
15
16
  //Inputs
16
17
  export { default as Input } from './Core/components/Form/Input/input/input.svelte';
17
18
  export { default as PasswordInput } from './Core/components/Form/Input/password/password.svelte';
@@ -34,6 +35,7 @@ export { default as SiteUnderMaintenance } from './Core/components/Alerts/site-u
34
35
  export { default as MenuItem } from './Core/components/Menus/MenuItem/menuItem.svelte';
35
36
  export { default as DropdownContainer } from './Core/components/Menus/DropdownContainer/dropdown.svelte';
36
37
  export { default as Tabs } from './Core/components/Menus/Tabs/main.svelte';
38
+ export { default as HamburgerMenu } from './Core/components/Menus/Hamburger/hamburger.svelte';
37
39
  //others
38
40
  export { default as Time } from './Core/components/others/Calender/Time/time.svelte';
39
41
  export { default as Date } from './Core/components/others/Calender/Date/date.svelte';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sierra-95/svelte-scaffold",
3
- "version": "1.0.54",
3
+ "version": "1.0.56",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build && npm run prepack",