@coyalabs/bts-style 1.0.7 → 1.0.9

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 (46) hide show
  1. package/dist/Base/BaseContainer.svelte +76 -0
  2. package/dist/Base/BaseContainer.svelte.d.ts +49 -0
  3. package/dist/Base/BaseIcon.svelte +42 -0
  4. package/dist/Base/BaseIcon.svelte.d.ts +30 -0
  5. package/dist/Base/BasePage.svelte +51 -0
  6. package/dist/Base/BasePage.svelte.d.ts +31 -0
  7. package/dist/Base/BaseText.svelte +44 -0
  8. package/dist/{BaseContainer.svelte.d.ts → Base/BaseText.svelte.d.ts} +7 -5
  9. package/dist/Components/Button.svelte +127 -0
  10. package/dist/Components/Button.svelte.d.ts +63 -0
  11. package/dist/Components/IconButton.svelte +44 -0
  12. package/dist/Components/IconButton.svelte.d.ts +34 -0
  13. package/dist/Components/InputBox.svelte +103 -0
  14. package/dist/Components/InputBox.svelte.d.ts +56 -0
  15. package/dist/Components/Popup/AlertPopup.svelte +27 -0
  16. package/dist/Components/Popup/AlertPopup.svelte.d.ts +28 -0
  17. package/dist/Components/Popup/ConfirmPopup.svelte +39 -0
  18. package/dist/Components/Popup/ConfirmPopup.svelte.d.ts +32 -0
  19. package/dist/Components/Popup/Popup.svelte +67 -0
  20. package/dist/{BasePage.svelte.d.ts → Components/Popup/Popup.svelte.d.ts} +15 -9
  21. package/dist/Components/Popup/PromptPopup.svelte +61 -0
  22. package/dist/Components/Popup/PromptPopup.svelte.d.ts +36 -0
  23. package/dist/Components/Separator.svelte +61 -0
  24. package/dist/Components/Separator.svelte.d.ts +30 -0
  25. package/dist/Components/TabBar.svelte +128 -0
  26. package/dist/Components/TabBar.svelte.d.ts +40 -0
  27. package/dist/Components/Toggle.svelte +59 -0
  28. package/dist/{Testing.svelte.d.ts → Components/Toggle.svelte.d.ts} +5 -9
  29. package/dist/Components/Tooltip.svelte +132 -0
  30. package/dist/Components/Tooltip.svelte.d.ts +28 -0
  31. package/dist/Components/TreeDirectory.svelte +148 -0
  32. package/dist/Components/TreeDirectory.svelte.d.ts +58 -0
  33. package/dist/Components/popupStore.d.ts +31 -0
  34. package/dist/Components/popupStore.js +99 -0
  35. package/dist/Structure/TextHeader.svelte +32 -0
  36. package/dist/Structure/TextHeader.svelte.d.ts +28 -0
  37. package/dist/icons.d.ts +10 -0
  38. package/dist/icons.js +10 -0
  39. package/dist/index.d.ts +19 -2
  40. package/dist/index.js +24 -2
  41. package/package.json +2 -1
  42. package/public/favicon.png +0 -0
  43. package/README.md +0 -35
  44. package/dist/BaseContainer.svelte +0 -43
  45. package/dist/BasePage.svelte +0 -30
  46. package/dist/Testing.svelte +0 -26
@@ -0,0 +1,76 @@
1
+ <script>
2
+ /**
3
+ * @type {'full' | 'primary' | 'secondary' | 'filled'}
4
+ */
5
+ export let theme = 'full';
6
+
7
+ /**
8
+ * @type {string}
9
+ */
10
+ export let borderRadiusTopLeft = '25px';
11
+
12
+ /**
13
+ * @type {string}
14
+ */
15
+ export let borderRadiusTopRight = '25px';
16
+
17
+ /**
18
+ * @type {string}
19
+ */
20
+ export let borderRadiusBottomLeft = '25px';
21
+
22
+ /**
23
+ * @type {string}
24
+ */
25
+ export let borderRadiusBottomRight = '25px';
26
+
27
+ /**
28
+ * @type {string}
29
+ */
30
+ export let padding = '1rem';
31
+ </script>
32
+
33
+ <div class="glow-base-container" data-theme={theme} style="border-radius: {borderRadiusTopLeft} {borderRadiusTopRight} {borderRadiusBottomRight} {borderRadiusBottomLeft}; --padding: {padding};">
34
+ <slot />
35
+ </div>
36
+
37
+ <style>
38
+ .glow-base-container {
39
+ width: 100%;
40
+ border: 2px solid rgba(255, 255, 255, 0.13);
41
+ padding: var(--padding);
42
+ box-sizing: border-box;
43
+ }
44
+
45
+ /* Theme A - Full */
46
+ .glow-base-container[data-theme='full'] {
47
+ background: rgba(150, 132, 140, 0.25);
48
+ box-shadow:
49
+ 0px 0px 13px 0px rgba(255, 255, 255, 0.07),
50
+ inset 0px 0px 9px 2px rgba(193, 182, 212, 0.5);
51
+ }
52
+
53
+ /* Theme B - Primary */
54
+ .glow-base-container[data-theme='primary'] {
55
+ background: rgba(180, 158, 168, 0.25);
56
+ box-shadow:
57
+ 0px 0px 13px 0px rgba(255, 255, 255, 0.07),
58
+ inset 0px 0px 9px 2px rgba(117, 102, 143, 0.56);
59
+ }
60
+
61
+ /* Theme C - Secondary */
62
+ .glow-base-container[data-theme='secondary'] {
63
+ background: #74636a40;
64
+ box-shadow:
65
+ 0px 0px 13px 0px rgba(255, 255, 255, 0.07),
66
+ inset 0px 0px 9px 2px rgba(102, 88, 128, 0.5);
67
+ }
68
+
69
+ /* Theme D - Filled */
70
+ .glow-base-container[data-theme='filled'] {
71
+ background: #161319;
72
+ box-shadow:
73
+ 0px 0px 13px 0px #ffffff1a,
74
+ inset 0px 0px 9px 2px #ffffff0a;
75
+ }
76
+ </style>
@@ -0,0 +1,49 @@
1
+ export default BaseContainer;
2
+ type BaseContainer = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
+ theme?: "full" | "primary" | "secondary" | "filled" | undefined;
4
+ borderRadiusTopLeft?: string | undefined;
5
+ borderRadiusTopRight?: string | undefined;
6
+ borderRadiusBottomLeft?: string | undefined;
7
+ borderRadiusBottomRight?: string | undefined;
8
+ padding?: string | undefined;
9
+ }, {
10
+ default: {};
11
+ }>, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {
14
+ default: {};
15
+ }> & {
16
+ $$bindings?: string | undefined;
17
+ };
18
+ declare const BaseContainer: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
19
+ theme?: "full" | "primary" | "secondary" | "filled" | undefined;
20
+ borderRadiusTopLeft?: string | undefined;
21
+ borderRadiusTopRight?: string | undefined;
22
+ borderRadiusBottomLeft?: string | undefined;
23
+ borderRadiusBottomRight?: string | undefined;
24
+ padding?: string | undefined;
25
+ }, {
26
+ default: {};
27
+ }>, {
28
+ [evt: string]: CustomEvent<any>;
29
+ }, {
30
+ default: {};
31
+ }, {}, string>;
32
+ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
33
+ default: any;
34
+ } ? Props extends Record<string, never> ? any : {
35
+ children?: any;
36
+ } : {});
37
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
38
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
39
+ $$bindings?: Bindings;
40
+ } & Exports;
41
+ (internal: unknown, props: Props & {
42
+ $$events?: Events;
43
+ $$slots?: Slots;
44
+ }): Exports & {
45
+ $set?: any;
46
+ $on?: any;
47
+ };
48
+ z_$$bindings?: Bindings;
49
+ }
@@ -0,0 +1,42 @@
1
+ <script>
2
+ /**
3
+ * @type {string}
4
+ */
5
+ export let svg;
6
+
7
+ /**
8
+ * @type {'default' | 'toned'}
9
+ */
10
+ export let variant = 'toned';
11
+
12
+ /**
13
+ * @type {string}
14
+ */
15
+ export let size = '18px';
16
+
17
+ const colors = {
18
+ default: '#E3D8D8',
19
+ toned: '#A18F8F'
20
+ };
21
+ </script>
22
+
23
+ <span class="base-icon" style="--icon-color: {colors[variant]}; --icon-size: {size};">
24
+ {@html svg}
25
+ </span>
26
+
27
+ <style>
28
+ .base-icon {
29
+ display: flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+ color: var(--icon-color);
33
+ }
34
+
35
+ .base-icon :global(svg) {
36
+ width: var(--icon-size);
37
+ height: var(--icon-size);
38
+ fill: none;
39
+ stroke: currentColor;
40
+ stroke-width: 2;
41
+ }
42
+ </style>
@@ -0,0 +1,30 @@
1
+ export default BaseIcon;
2
+ type BaseIcon = SvelteComponent<{
3
+ svg: string;
4
+ variant?: "default" | "toned" | undefined;
5
+ size?: string | undefined;
6
+ }, {
7
+ [evt: string]: CustomEvent<any>;
8
+ }, {}> & {
9
+ $$bindings?: string | undefined;
10
+ };
11
+ declare const BaseIcon: $$__sveltets_2_IsomorphicComponent<{
12
+ svg: string;
13
+ variant?: "default" | "toned" | undefined;
14
+ size?: string | undefined;
15
+ }, {
16
+ [evt: string]: CustomEvent<any>;
17
+ }, {}, {}, string>;
18
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
19
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
20
+ $$bindings?: Bindings;
21
+ } & Exports;
22
+ (internal: unknown, props: Props & {
23
+ $$events?: Events;
24
+ $$slots?: Slots;
25
+ }): Exports & {
26
+ $set?: any;
27
+ $on?: any;
28
+ };
29
+ z_$$bindings?: Bindings;
30
+ }
@@ -0,0 +1,51 @@
1
+ <script lang="ts">
2
+ import { onMount } from 'svelte';
3
+
4
+ /**
5
+ * @type {string | null}
6
+ */
7
+ export let favicon = null;
8
+
9
+ onMount(() => {
10
+ // Set favicon if not already set
11
+ let link = document.querySelector("link[rel*='icon']") as HTMLLinkElement | null;
12
+
13
+ if (!link) {
14
+ link = document.createElement('link');
15
+ link.rel = 'icon';
16
+ document.head.appendChild(link);
17
+ }
18
+
19
+ // Use custom favicon if provided, otherwise use default BTS theme favicon
20
+ const faviconUrl = favicon || 'data:image/svg+xml,%3Csvg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Crect width="32" height="32" rx="6" fill="%230B070D"/%3E%3Cpath d="M16 8C11.5817 8 8 11.5817 8 16C8 20.4183 11.5817 24 16 24C20.4183 24 24 20.4183 24 16C24 11.5817 20.4183 8 16 8Z" fill="%23E3D8D8"/%3E%3Ccircle cx="16" cy="16" r="4" fill="%23A18F8F"/%3E%3Crect x="14" y="10" width="4" height="2" rx="1" fill="%230B070D"/%3E%3Crect x="14" y="20" width="4" height="2" rx="1" fill="%230B070D"/%3E%3C/svg%3E';
21
+
22
+ link.href = faviconUrl;
23
+ });
24
+ </script>
25
+
26
+ <div class="base-page">
27
+ <slot />
28
+ </div>
29
+
30
+ <style>
31
+ .base-page {
32
+ min-height: 100vh;
33
+ background-color: #0B070D;
34
+ margin: 0;
35
+ padding: 0;
36
+ }
37
+
38
+ :global(body) {
39
+ margin: 0;
40
+ padding: 0;
41
+ }
42
+
43
+ :global(html) {
44
+ margin: 0;
45
+ padding: 0;
46
+ }
47
+
48
+ .base-page > :global(*) {
49
+ margin-top: 0;
50
+ }
51
+ </style>
@@ -0,0 +1,31 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: Props & {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
15
+ default: any;
16
+ } ? Props extends Record<string, never> ? any : {
17
+ children?: any;
18
+ } : {});
19
+ declare const BasePage: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
20
+ /**
21
+ * @type {string | null}
22
+ */ favicon?: any;
23
+ }, {
24
+ default: {};
25
+ }>, {
26
+ [evt: string]: CustomEvent<any>;
27
+ }, {
28
+ default: {};
29
+ }, {}, string>;
30
+ type BasePage = InstanceType<typeof BasePage>;
31
+ export default BasePage;
@@ -0,0 +1,44 @@
1
+ <script>
2
+ /**
3
+ * @type {'title' | 'content' | 'button'}
4
+ */
5
+ export let variant = 'content';
6
+ /**
7
+ * @type {string}
8
+ */
9
+ export let textModifier = '0px';
10
+ </script>
11
+
12
+ <span class="text" data-variant={variant} style="--text-modifier: {textModifier};">
13
+ <slot />
14
+ </span>
15
+
16
+ <style>
17
+ @import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@900&display=swap');
18
+ @import url('https://api.fontshare.com/v2/css?f[]=satoshi@400,500,700,900&display=swap');
19
+ .text {
20
+ display: inline-block;
21
+ font-family: 'Satoshi', sans-serif;
22
+ }
23
+ /* Title variant */
24
+ .text[data-variant='title'] {
25
+ font-family: 'Noto Serif KR', serif;
26
+ font-weight: 900;
27
+ font-size: calc(30px + var(--text-modifier));
28
+ color: #E3D8D8;
29
+ }
30
+ /* Content variant */
31
+ .text[data-variant='content'] {
32
+ font-family: 'Satoshi', sans-serif;
33
+ font-weight: 700;
34
+ font-size: calc(18px + var(--text-modifier));
35
+ color: #777073;
36
+ }
37
+ /* Button variant */
38
+ .text[data-variant='button'] {
39
+ font-family: 'Noto Serif KR', serif;
40
+ font-weight: 900;
41
+ font-size: calc(17px + var(--text-modifier));
42
+ color: #E3D8D8;
43
+ }
44
+ </style>
@@ -1,6 +1,7 @@
1
- export default BaseContainer;
2
- type BaseContainer = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
- theme?: "full" | "primary" | "secondary" | undefined;
1
+ export default BaseText;
2
+ type BaseText = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
+ variant?: "button" | "title" | "content" | undefined;
4
+ textModifier?: string | undefined;
4
5
  }, {
5
6
  default: {};
6
7
  }>, {
@@ -10,8 +11,9 @@ type BaseContainer = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
10
11
  }> & {
11
12
  $$bindings?: string | undefined;
12
13
  };
13
- declare const BaseContainer: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
14
- theme?: "full" | "primary" | "secondary" | undefined;
14
+ declare const BaseText: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
15
+ variant?: "button" | "title" | "content" | undefined;
16
+ textModifier?: string | undefined;
15
17
  }, {
16
18
  default: {};
17
19
  }>, {
@@ -0,0 +1,127 @@
1
+ <script>
2
+ import BaseContainer from '../Base/BaseContainer.svelte';
3
+ import BaseText from '../Base/BaseText.svelte';
4
+ import BaseIcon from '../Base/BaseIcon.svelte';
5
+ import { icons } from '../icons';
6
+
7
+ /**
8
+ * @type {'full' | 'primary' | 'secondary'}
9
+ */
10
+ export let theme = 'full';
11
+
12
+ /**
13
+ * @type {string | null}
14
+ */
15
+ export let icon = null;
16
+
17
+ /**
18
+ * @type {string | null}
19
+ */
20
+ export let actionIcon = icons.arrow;
21
+
22
+ /**
23
+ * @type {number}
24
+ */
25
+ export let iconRotation = 0;
26
+
27
+ /**
28
+ * @type {number}
29
+ */
30
+ export let actionIconRotation = 0;
31
+
32
+ /**
33
+ * @type {string}
34
+ */
35
+ export let iconSize = '18px';
36
+
37
+ /**
38
+ * @type {string}
39
+ */
40
+ export let actionIconSize = '18px';
41
+
42
+ /**
43
+ * @type {string}
44
+ */
45
+ export let borderRadiusTopLeft = '25px';
46
+
47
+ /**
48
+ * @type {string}
49
+ */
50
+ export let borderRadiusTopRight = '25px';
51
+
52
+ /**
53
+ * @type {string}
54
+ */
55
+ export let borderRadiusBottomLeft = '25px';
56
+
57
+ /**
58
+ * @type {string}
59
+ */
60
+ export let borderRadiusBottomRight = '25px';
61
+ </script>
62
+
63
+ <button class="button-wrapper" on:click>
64
+ <BaseContainer {theme} {borderRadiusTopLeft} {borderRadiusTopRight} {borderRadiusBottomLeft} {borderRadiusBottomRight}>
65
+ <div class="button-content">
66
+ <div class="icon-text">
67
+ {#if icon}
68
+ <div class="icon-wrapper" style="transform: rotate({iconRotation}deg)">
69
+ <BaseIcon variant="toned" svg={icon} size={iconSize} />
70
+ </div>
71
+ {/if}
72
+ <BaseText variant="button">
73
+ <slot />
74
+ </BaseText>
75
+ </div>
76
+ {#if actionIcon}
77
+ <div class="icon-wrapper" style="transform: rotate({actionIconRotation}deg)">
78
+ <BaseIcon svg={actionIcon} size={actionIconSize} />
79
+ </div>
80
+ {/if}
81
+ </div>
82
+ </BaseContainer>
83
+ </button>
84
+
85
+ <style>
86
+ .button-wrapper {
87
+ all: unset;
88
+ cursor: pointer;
89
+ display: block;
90
+ width: 100%;
91
+ }
92
+
93
+ .button-content {
94
+ display: flex;
95
+ align-items: center;
96
+ justify-content: space-between;
97
+ gap: 12px;
98
+ }
99
+
100
+ .icon-text {
101
+ display: flex;
102
+ align-items: center;
103
+ gap: 8px;
104
+ }
105
+
106
+ .icon-wrapper {
107
+ transition: transform 0.2s ease;
108
+ }
109
+
110
+ .button-wrapper :global(.glow-base-container) {
111
+ transition: all 0.2s ease;
112
+ }
113
+
114
+ /* Hover state - same for all themes */
115
+ .button-wrapper:hover :global(.glow-base-container) {
116
+ background: rgba(150, 132, 141, 0.37) !important;
117
+ box-shadow:
118
+ 0px 0px 13px 0px rgba(255, 255, 255, 0.07),
119
+ inset 0px 0px 6px 4px rgba(150, 132, 141, 0.37) !important;
120
+ }
121
+
122
+ /* Pressed/Active state - same for all themes */
123
+ .button-wrapper:active :global(.glow-base-container) {
124
+ background: rgba(150, 132, 140, 0.25) !important;
125
+ box-shadow: 0px 0px 13px 0px rgba(255, 255, 255, 0.07) !important;
126
+ }
127
+ </style>
@@ -0,0 +1,63 @@
1
+ export default Button;
2
+ type Button = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
+ theme?: "full" | "primary" | "secondary" | undefined;
4
+ borderRadiusTopLeft?: string | undefined;
5
+ borderRadiusTopRight?: string | undefined;
6
+ borderRadiusBottomLeft?: string | undefined;
7
+ borderRadiusBottomRight?: string | undefined;
8
+ icon?: string | null | undefined;
9
+ actionIcon?: string | null | undefined;
10
+ iconRotation?: number | undefined;
11
+ actionIconRotation?: number | undefined;
12
+ iconSize?: string | undefined;
13
+ actionIconSize?: string | undefined;
14
+ }, {
15
+ default: {};
16
+ }>, {
17
+ click: PointerEvent;
18
+ } & {
19
+ [evt: string]: CustomEvent<any>;
20
+ }, {
21
+ default: {};
22
+ }> & {
23
+ $$bindings?: string | undefined;
24
+ };
25
+ declare const Button: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
26
+ theme?: "full" | "primary" | "secondary" | undefined;
27
+ borderRadiusTopLeft?: string | undefined;
28
+ borderRadiusTopRight?: string | undefined;
29
+ borderRadiusBottomLeft?: string | undefined;
30
+ borderRadiusBottomRight?: string | undefined;
31
+ icon?: string | null | undefined;
32
+ actionIcon?: string | null | undefined;
33
+ iconRotation?: number | undefined;
34
+ actionIconRotation?: number | undefined;
35
+ iconSize?: string | undefined;
36
+ actionIconSize?: string | undefined;
37
+ }, {
38
+ default: {};
39
+ }>, {
40
+ click: PointerEvent;
41
+ } & {
42
+ [evt: string]: CustomEvent<any>;
43
+ }, {
44
+ default: {};
45
+ }, {}, string>;
46
+ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
47
+ default: any;
48
+ } ? Props extends Record<string, never> ? any : {
49
+ children?: any;
50
+ } : {});
51
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
52
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
53
+ $$bindings?: Bindings;
54
+ } & Exports;
55
+ (internal: unknown, props: Props & {
56
+ $$events?: Events;
57
+ $$slots?: Slots;
58
+ }): Exports & {
59
+ $set?: any;
60
+ $on?: any;
61
+ };
62
+ z_$$bindings?: Bindings;
63
+ }
@@ -0,0 +1,44 @@
1
+ <script>
2
+ import BaseIcon from '../Base/BaseIcon.svelte';
3
+
4
+ /**
5
+ * @type {string}
6
+ */
7
+ export let svg;
8
+
9
+ /**
10
+ * @type {string}
11
+ */
12
+ export let size = '20px';
13
+
14
+ /**
15
+ * @type {'default' | 'toned'}
16
+ */
17
+ export let variant = 'toned';
18
+ </script>
19
+
20
+ <button class="icon-button" on:click>
21
+ <BaseIcon variant={variant} {svg} {size} />
22
+ </button>
23
+
24
+ <style>
25
+ .icon-button {
26
+ all: unset;
27
+ cursor: pointer;
28
+ padding: 0.5rem;
29
+ border-radius: 50%;
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: center;
33
+ transition: background 0.2s, transform 0.2s;
34
+ }
35
+
36
+ .icon-button:hover {
37
+ background: rgba(255, 255, 255, 0.1);
38
+ transform: scale(1.1);
39
+ }
40
+
41
+ .icon-button:active {
42
+ transform: scale(0.95);
43
+ }
44
+ </style>
@@ -0,0 +1,34 @@
1
+ export default IconButton;
2
+ type IconButton = SvelteComponent<{
3
+ svg: string;
4
+ variant?: "default" | "toned" | undefined;
5
+ size?: string | undefined;
6
+ }, {
7
+ click: PointerEvent;
8
+ } & {
9
+ [evt: string]: CustomEvent<any>;
10
+ }, {}> & {
11
+ $$bindings?: string | undefined;
12
+ };
13
+ declare const IconButton: $$__sveltets_2_IsomorphicComponent<{
14
+ svg: string;
15
+ variant?: "default" | "toned" | undefined;
16
+ size?: string | undefined;
17
+ }, {
18
+ click: PointerEvent;
19
+ } & {
20
+ [evt: string]: CustomEvent<any>;
21
+ }, {}, {}, string>;
22
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
23
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
24
+ $$bindings?: Bindings;
25
+ } & Exports;
26
+ (internal: unknown, props: Props & {
27
+ $$events?: Events;
28
+ $$slots?: Slots;
29
+ }): Exports & {
30
+ $set?: any;
31
+ $on?: any;
32
+ };
33
+ z_$$bindings?: Bindings;
34
+ }