polymorph-ui-components 0.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 (242) hide show
  1. package/README.md +354 -0
  2. package/dist/Accordion/Accordion.svelte +28 -0
  3. package/dist/Accordion/Accordion.svelte.d.ts +4 -0
  4. package/dist/Accordion/properties.d.ts +7 -0
  5. package/dist/Accordion/properties.js +1 -0
  6. package/dist/Animations/ModalAnimation.svelte +55 -0
  7. package/dist/Animations/ModalAnimation.svelte.d.ts +12 -0
  8. package/dist/Animations/OverlayAnimation.svelte +14 -0
  9. package/dist/Animations/OverlayAnimation.svelte.d.ts +7 -0
  10. package/dist/Avatar/Avatar.svelte +122 -0
  11. package/dist/Avatar/Avatar.svelte.d.ts +4 -0
  12. package/dist/Avatar/properties.d.ts +15 -0
  13. package/dist/Avatar/properties.js +1 -0
  14. package/dist/Badge/Badge.svelte +53 -0
  15. package/dist/Badge/Badge.svelte.d.ts +4 -0
  16. package/dist/Badge/properties.d.ts +6 -0
  17. package/dist/Badge/properties.js +1 -0
  18. package/dist/Banner/Banner.svelte +158 -0
  19. package/dist/Banner/Banner.svelte.d.ts +4 -0
  20. package/dist/Banner/properties.d.ts +19 -0
  21. package/dist/Banner/properties.js +1 -0
  22. package/dist/Book/Book.svelte +281 -0
  23. package/dist/Book/Book.svelte.d.ts +4 -0
  24. package/dist/Book/properties.d.ts +24 -0
  25. package/dist/Book/properties.js +1 -0
  26. package/dist/Browser/Browser.svelte +176 -0
  27. package/dist/Browser/Browser.svelte.d.ts +3 -0
  28. package/dist/Browser/properties.d.ts +14 -0
  29. package/dist/Browser/properties.js +1 -0
  30. package/dist/Button/Button.svelte +153 -0
  31. package/dist/Button/Button.svelte.d.ts +4 -0
  32. package/dist/Button/properties.d.ts +24 -0
  33. package/dist/Button/properties.js +1 -0
  34. package/dist/Calendar/Calendar.svelte +477 -0
  35. package/dist/Calendar/Calendar.svelte.d.ts +4 -0
  36. package/dist/Calendar/properties.d.ts +30 -0
  37. package/dist/Calendar/properties.js +1 -0
  38. package/dist/Carousel/Carousel.svelte +258 -0
  39. package/dist/Carousel/Carousel.svelte.d.ts +4 -0
  40. package/dist/Carousel/properties.d.ts +20 -0
  41. package/dist/Carousel/properties.js +1 -0
  42. package/dist/CheckListItem/CheckListItem.svelte +65 -0
  43. package/dist/CheckListItem/CheckListItem.svelte.d.ts +4 -0
  44. package/dist/CheckListItem/properties.d.ts +15 -0
  45. package/dist/CheckListItem/properties.js +1 -0
  46. package/dist/Checkbox/Checkbox.svelte +157 -0
  47. package/dist/Checkbox/Checkbox.svelte.d.ts +4 -0
  48. package/dist/Checkbox/properties.d.ts +17 -0
  49. package/dist/Checkbox/properties.js +1 -0
  50. package/dist/Choicebox/Choicebox.svelte +85 -0
  51. package/dist/Choicebox/Choicebox.svelte.d.ts +4 -0
  52. package/dist/Choicebox/properties.d.ts +14 -0
  53. package/dist/Choicebox/properties.js +1 -0
  54. package/dist/ColorPicker/ColorPicker.svelte +583 -0
  55. package/dist/ColorPicker/ColorPicker.svelte.d.ts +4 -0
  56. package/dist/ColorPicker/properties.d.ts +15 -0
  57. package/dist/ColorPicker/properties.js +1 -0
  58. package/dist/Combobox/Combobox.svelte +432 -0
  59. package/dist/Combobox/Combobox.svelte.d.ts +6 -0
  60. package/dist/Combobox/properties.d.ts +42 -0
  61. package/dist/Combobox/properties.js +1 -0
  62. package/dist/CommandMenu/CommandMenu.svelte +452 -0
  63. package/dist/CommandMenu/CommandMenu.svelte.d.ts +4 -0
  64. package/dist/CommandMenu/properties.d.ts +26 -0
  65. package/dist/CommandMenu/properties.js +1 -0
  66. package/dist/ContextMenu/ContextMenu.svelte +308 -0
  67. package/dist/ContextMenu/ContextMenu.svelte.d.ts +4 -0
  68. package/dist/ContextMenu/properties.d.ts +26 -0
  69. package/dist/ContextMenu/properties.js +1 -0
  70. package/dist/Gauge/Gauge.svelte +70 -0
  71. package/dist/Gauge/Gauge.svelte.d.ts +4 -0
  72. package/dist/Gauge/properties.d.ts +9 -0
  73. package/dist/Gauge/properties.js +1 -0
  74. package/dist/GridItem/GridItem.svelte +145 -0
  75. package/dist/GridItem/GridItem.svelte.d.ts +4 -0
  76. package/dist/GridItem/properties.d.ts +15 -0
  77. package/dist/GridItem/properties.js +1 -0
  78. package/dist/Icon/Icon.svelte +61 -0
  79. package/dist/Icon/Icon.svelte.d.ts +4 -0
  80. package/dist/Icon/properties.d.ts +12 -0
  81. package/dist/Icon/properties.js +1 -0
  82. package/dist/IconStack/IconStack.svelte +55 -0
  83. package/dist/IconStack/IconStack.svelte.d.ts +4 -0
  84. package/dist/IconStack/properties.d.ts +9 -0
  85. package/dist/IconStack/properties.js +1 -0
  86. package/dist/Img/Img.svelte +37 -0
  87. package/dist/Img/Img.svelte.d.ts +4 -0
  88. package/dist/Img/properties.d.ts +13 -0
  89. package/dist/Img/properties.js +1 -0
  90. package/dist/Input/Input.svelte +349 -0
  91. package/dist/Input/Input.svelte.d.ts +8 -0
  92. package/dist/Input/properties.d.ts +45 -0
  93. package/dist/Input/properties.js +1 -0
  94. package/dist/InputButton/InputButton.svelte +252 -0
  95. package/dist/InputButton/InputButton.svelte.d.ts +7 -0
  96. package/dist/InputButton/properties.d.ts +22 -0
  97. package/dist/InputButton/properties.js +1 -0
  98. package/dist/KeyboardInput/KeyboardInput.svelte +93 -0
  99. package/dist/KeyboardInput/KeyboardInput.svelte.d.ts +4 -0
  100. package/dist/KeyboardInput/properties.d.ts +12 -0
  101. package/dist/KeyboardInput/properties.js +1 -0
  102. package/dist/ListItem/ListItem.svelte +309 -0
  103. package/dist/ListItem/ListItem.svelte.d.ts +4 -0
  104. package/dist/ListItem/properties.d.ts +34 -0
  105. package/dist/ListItem/properties.js +1 -0
  106. package/dist/Loader/Loader.svelte +90 -0
  107. package/dist/Loader/Loader.svelte.d.ts +4 -0
  108. package/dist/Loader/properties.d.ts +4 -0
  109. package/dist/Loader/properties.js +1 -0
  110. package/dist/LoadingDots/LoadingDots.svelte +59 -0
  111. package/dist/LoadingDots/LoadingDots.svelte.d.ts +3 -0
  112. package/dist/LoadingDots/properties.d.ts +8 -0
  113. package/dist/LoadingDots/properties.js +1 -0
  114. package/dist/Menu/Menu.svelte +356 -0
  115. package/dist/Menu/Menu.svelte.d.ts +4 -0
  116. package/dist/Menu/properties.d.ts +28 -0
  117. package/dist/Menu/properties.js +1 -0
  118. package/dist/Modal/Modal.svelte +357 -0
  119. package/dist/Modal/Modal.svelte.d.ts +4 -0
  120. package/dist/Modal/properties.d.ts +39 -0
  121. package/dist/Modal/properties.js +1 -0
  122. package/dist/Pagination/Pagination.svelte +148 -0
  123. package/dist/Pagination/Pagination.svelte.d.ts +4 -0
  124. package/dist/Pagination/properties.d.ts +14 -0
  125. package/dist/Pagination/properties.js +1 -0
  126. package/dist/Phone/Phone.svelte +234 -0
  127. package/dist/Phone/Phone.svelte.d.ts +3 -0
  128. package/dist/Phone/properties.d.ts +11 -0
  129. package/dist/Phone/properties.js +1 -0
  130. package/dist/Pill/Pill.svelte +130 -0
  131. package/dist/Pill/Pill.svelte.d.ts +4 -0
  132. package/dist/Pill/properties.d.ts +16 -0
  133. package/dist/Pill/properties.js +1 -0
  134. package/dist/Progress/Progress.svelte +68 -0
  135. package/dist/Progress/Progress.svelte.d.ts +4 -0
  136. package/dist/Progress/properties.d.ts +10 -0
  137. package/dist/Progress/properties.js +1 -0
  138. package/dist/Radio/Radio.svelte +124 -0
  139. package/dist/Radio/Radio.svelte.d.ts +4 -0
  140. package/dist/Radio/properties.d.ts +15 -0
  141. package/dist/Radio/properties.js +1 -0
  142. package/dist/RelativeTime/RelativeTime.svelte +109 -0
  143. package/dist/RelativeTime/RelativeTime.svelte.d.ts +4 -0
  144. package/dist/RelativeTime/properties.d.ts +13 -0
  145. package/dist/RelativeTime/properties.js +1 -0
  146. package/dist/Scroller/Scroller.svelte +390 -0
  147. package/dist/Scroller/Scroller.svelte.d.ts +4 -0
  148. package/dist/Scroller/properties.d.ts +30 -0
  149. package/dist/Scroller/properties.js +1 -0
  150. package/dist/Select/Select.svelte +472 -0
  151. package/dist/Select/Select.svelte.d.ts +4 -0
  152. package/dist/Select/properties.d.ts +20 -0
  153. package/dist/Select/properties.js +1 -0
  154. package/dist/Sheet/Sheet.svelte +264 -0
  155. package/dist/Sheet/Sheet.svelte.d.ts +4 -0
  156. package/dist/Sheet/properties.d.ts +19 -0
  157. package/dist/Sheet/properties.js +1 -0
  158. package/dist/Shimmer/Shimmer.svelte +44 -0
  159. package/dist/Shimmer/Shimmer.svelte.d.ts +4 -0
  160. package/dist/Shimmer/properties.d.ts +4 -0
  161. package/dist/Shimmer/properties.js +1 -0
  162. package/dist/Slider/Slider.svelte +147 -0
  163. package/dist/Slider/Slider.svelte.d.ts +4 -0
  164. package/dist/Slider/properties.d.ts +17 -0
  165. package/dist/Slider/properties.js +1 -0
  166. package/dist/Snippet/Snippet.svelte +123 -0
  167. package/dist/Snippet/Snippet.svelte.d.ts +4 -0
  168. package/dist/Snippet/properties.d.ts +15 -0
  169. package/dist/Snippet/properties.js +1 -0
  170. package/dist/SplitButton/SplitButton.svelte +145 -0
  171. package/dist/SplitButton/SplitButton.svelte.d.ts +4 -0
  172. package/dist/SplitButton/properties.d.ts +17 -0
  173. package/dist/SplitButton/properties.js +1 -0
  174. package/dist/SplitInput/SplitInput.svelte +225 -0
  175. package/dist/SplitInput/SplitInput.svelte.d.ts +7 -0
  176. package/dist/SplitInput/properties.d.ts +20 -0
  177. package/dist/SplitInput/properties.js +1 -0
  178. package/dist/Stepper/Step.svelte +88 -0
  179. package/dist/Stepper/Step.svelte.d.ts +4 -0
  180. package/dist/Stepper/Stepper.svelte +64 -0
  181. package/dist/Stepper/Stepper.svelte.d.ts +4 -0
  182. package/dist/Stepper/properties.d.ts +27 -0
  183. package/dist/Stepper/properties.js +1 -0
  184. package/dist/Table/Table.svelte +357 -0
  185. package/dist/Table/Table.svelte.d.ts +4 -0
  186. package/dist/Table/properties.d.ts +26 -0
  187. package/dist/Table/properties.js +1 -0
  188. package/dist/Tabs/Tabs.svelte +303 -0
  189. package/dist/Tabs/Tabs.svelte.d.ts +4 -0
  190. package/dist/Tabs/properties.d.ts +30 -0
  191. package/dist/Tabs/properties.js +1 -0
  192. package/dist/ThemeSwitcher/ThemeSwitcher.svelte +249 -0
  193. package/dist/ThemeSwitcher/ThemeSwitcher.svelte.d.ts +4 -0
  194. package/dist/ThemeSwitcher/properties.d.ts +19 -0
  195. package/dist/ThemeSwitcher/properties.js +1 -0
  196. package/dist/Toast/Toast.svelte +220 -0
  197. package/dist/Toast/Toast.svelte.d.ts +4 -0
  198. package/dist/Toast/properties.d.ts +24 -0
  199. package/dist/Toast/properties.js +1 -0
  200. package/dist/Toggle/Toggle.svelte +99 -0
  201. package/dist/Toggle/Toggle.svelte.d.ts +4 -0
  202. package/dist/Toggle/properties.d.ts +9 -0
  203. package/dist/Toggle/properties.js +1 -0
  204. package/dist/Toolbar/Toolbar.svelte +142 -0
  205. package/dist/Toolbar/Toolbar.svelte.d.ts +4 -0
  206. package/dist/Toolbar/properties.d.ts +16 -0
  207. package/dist/Toolbar/properties.js +1 -0
  208. package/dist/Tooltip/Tooltip.svelte +153 -0
  209. package/dist/Tooltip/Tooltip.svelte.d.ts +4 -0
  210. package/dist/Tooltip/properties.d.ts +13 -0
  211. package/dist/Tooltip/properties.js +1 -0
  212. package/dist/assets/back.svg +3 -0
  213. package/dist/assets/battery.svg +5 -0
  214. package/dist/assets/checkmark.svg +3 -0
  215. package/dist/assets/chevron-down-sm.svg +3 -0
  216. package/dist/assets/chevron-down.svg +3 -0
  217. package/dist/assets/chevron-left-lg.svg +3 -0
  218. package/dist/assets/chevron-left.svg +3 -0
  219. package/dist/assets/chevron-right-lg.svg +3 -0
  220. package/dist/assets/chevron-right.svg +3 -0
  221. package/dist/assets/chevron-up.svg +3 -0
  222. package/dist/assets/close.svg +4 -0
  223. package/dist/assets/copy.svg +4 -0
  224. package/dist/assets/error-circle.svg +5 -0
  225. package/dist/assets/lock.svg +3 -0
  226. package/dist/assets/minus.svg +3 -0
  227. package/dist/assets/monitor.svg +5 -0
  228. package/dist/assets/moon.svg +3 -0
  229. package/dist/assets/palette.svg +7 -0
  230. package/dist/assets/search.svg +4 -0
  231. package/dist/assets/signal.svg +6 -0
  232. package/dist/assets/sort-default.svg +4 -0
  233. package/dist/assets/sun.svg +11 -0
  234. package/dist/assets/swap-vertical.svg +6 -0
  235. package/dist/assets/wifi.svg +3 -0
  236. package/dist/index.d.ts +103 -0
  237. package/dist/index.js +55 -0
  238. package/dist/types.d.ts +42 -0
  239. package/dist/types.js +1 -0
  240. package/dist/utils.d.ts +28 -0
  241. package/dist/utils.js +294 -0
  242. package/package.json +91 -0
@@ -0,0 +1,176 @@
1
+ <script lang="ts">
2
+ import type { BrowserProperties } from './properties';
3
+ import lockSvg from '../assets/lock.svg?raw';
4
+
5
+ let {
6
+ url = '',
7
+ title = '',
8
+ showAddressBar = true,
9
+ showTabBar = false,
10
+ shadow = true,
11
+ rounded = true,
12
+ testId,
13
+ lockIcon,
14
+ children,
15
+ classes
16
+ }: BrowserProperties = $props();
17
+ </script>
18
+
19
+ <div class="browser {classes ?? ''}" class:shadow class:rounded data-pw={testId}>
20
+ <div class="chrome">
21
+ <div class="titlebar">
22
+ <div class="dots">
23
+ <span class="dot close"></span>
24
+ <span class="dot minimize"></span>
25
+ <span class="dot maximize"></span>
26
+ </div>
27
+ {#if showTabBar}
28
+ <div class="tab-bar">
29
+ <div class="tab">{title}</div>
30
+ </div>
31
+ {/if}
32
+ </div>
33
+ {#if showAddressBar}
34
+ <div class="addressbar-row">
35
+ <div class="addressbar">
36
+ {#if typeof lockIcon === 'function'}
37
+ {@render lockIcon()}
38
+ {:else}
39
+ <span class="lock-icon">
40
+ <!-- eslint-disable svelte/no-at-html-tags -->
41
+ {@html lockSvg}
42
+ </span>
43
+ {/if}
44
+ <span class="url-text">{url}</span>
45
+ </div>
46
+ </div>
47
+ {/if}
48
+ </div>
49
+ <div class="content">
50
+ {#if typeof children === 'function'}
51
+ {@render children()}
52
+ {/if}
53
+ </div>
54
+ </div>
55
+
56
+ <style>
57
+ .browser {
58
+ width: var(--browser-width, 100%);
59
+ max-width: var(--browser-max-width);
60
+ border: var(--browser-border, 1px solid #e4e4e7);
61
+ overflow: hidden;
62
+ display: flex;
63
+ flex-direction: column;
64
+ }
65
+
66
+ .browser.rounded {
67
+ border-radius: var(--browser-border-radius, 12px);
68
+ }
69
+
70
+ .browser.shadow {
71
+ box-shadow: var(--browser-shadow, 0 8px 32px rgba(0, 0, 0, 0.12));
72
+ }
73
+
74
+ /* Chrome surfaces — neutral defaults; theme via the CSS variables (e.g. a `.browser-dark` class). */
75
+ .chrome {
76
+ background-color: var(--browser-chrome-bg, transparent);
77
+ color: var(--browser-chrome-color, currentColor);
78
+ }
79
+
80
+ .tab {
81
+ background-color: var(--browser-tab-bg, #ffffff);
82
+ color: var(--browser-tab-color, currentColor);
83
+ }
84
+
85
+ .addressbar {
86
+ background-color: var(--browser-addressbar-bg, #ffffff);
87
+ border: var(--browser-addressbar-border, 1px solid #e4e4e7);
88
+ }
89
+
90
+ .chrome {
91
+ display: flex;
92
+ flex-direction: column;
93
+ }
94
+
95
+ .titlebar {
96
+ display: flex;
97
+ align-items: center;
98
+ padding: var(--browser-titlebar-padding, 12px 16px);
99
+ gap: 12px;
100
+ }
101
+
102
+ .dots {
103
+ display: flex;
104
+ gap: var(--browser-dot-gap, 8px);
105
+ flex-shrink: 0;
106
+ }
107
+
108
+ .dot {
109
+ width: var(--browser-dot-size, 12px);
110
+ height: var(--browser-dot-size, 12px);
111
+ border-radius: 50%;
112
+ }
113
+
114
+ .dot.close {
115
+ background-color: var(--browser-dot-close-bg, #ef4444);
116
+ }
117
+
118
+ .dot.minimize {
119
+ background-color: var(--browser-dot-minimize-bg, #f59e0b);
120
+ }
121
+
122
+ .dot.maximize {
123
+ background-color: var(--browser-dot-maximize-bg, #22c55e);
124
+ }
125
+
126
+ .tab-bar {
127
+ display: flex;
128
+ align-items: flex-end;
129
+ flex: 1;
130
+ }
131
+
132
+ .tab {
133
+ padding: var(--browser-tab-padding, 6px 16px);
134
+ border-radius: var(--browser-tab-border-radius, 8px 8px 0 0);
135
+ font-size: var(--browser-tab-font-size, 14px);
136
+ font-family: var(--browser-tab-font-family, inherit);
137
+ white-space: nowrap;
138
+ overflow: hidden;
139
+ text-overflow: ellipsis;
140
+ max-width: 200px;
141
+ }
142
+
143
+ .addressbar-row {
144
+ padding: var(--browser-addressbar-padding, 8px 16px);
145
+ }
146
+
147
+ .addressbar {
148
+ display: flex;
149
+ align-items: center;
150
+ gap: 8px;
151
+ padding: 0 12px;
152
+ height: var(--browser-addressbar-height, 32px);
153
+ border-radius: var(--browser-addressbar-border-radius, 6px);
154
+ font-size: var(--browser-addressbar-font-size, 14px);
155
+ font-family: var(--browser-addressbar-font-family, inherit);
156
+ }
157
+
158
+ .lock-icon {
159
+ display: flex;
160
+ flex-shrink: 0;
161
+ color: var(--browser-lock-color, currentColor);
162
+ }
163
+
164
+ .url-text {
165
+ color: var(--browser-addressbar-color, currentColor);
166
+ white-space: nowrap;
167
+ overflow: hidden;
168
+ text-overflow: ellipsis;
169
+ }
170
+
171
+ .content {
172
+ background-color: var(--browser-content-bg, #ffffff);
173
+ min-height: var(--browser-content-min-height, 200px);
174
+ overflow: var(--browser-content-overflow, hidden);
175
+ }
176
+ </style>
@@ -0,0 +1,3 @@
1
+ declare const Browser: import("svelte").Component<import("./properties").OptionalBrowserProperties, {}, "">;
2
+ type Browser = ReturnType<typeof Browser>;
3
+ export default Browser;
@@ -0,0 +1,14 @@
1
+ import type { Snippet } from 'svelte';
2
+ export type BrowserProperties = OptionalBrowserProperties;
3
+ export type OptionalBrowserProperties = {
4
+ url?: string;
5
+ title?: string;
6
+ showAddressBar?: boolean;
7
+ showTabBar?: boolean;
8
+ shadow?: boolean;
9
+ rounded?: boolean;
10
+ testId?: string;
11
+ children?: Snippet;
12
+ lockIcon?: Snippet;
13
+ classes?: string;
14
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,153 @@
1
+ <script lang="ts">
2
+ import Loader from '../Loader/Loader.svelte';
3
+ import type { ButtonProperties } from './properties';
4
+
5
+ let {
6
+ text,
7
+ enable = true,
8
+ disabled = false,
9
+ showLoader = false,
10
+ loaderType,
11
+ type = 'button',
12
+ testId,
13
+ ariaLabel,
14
+ ariaExpanded,
15
+ ariaSelected,
16
+ role,
17
+ onclick,
18
+ onkeyup = () => {},
19
+ showProgressBar = $bindable(false),
20
+ icon,
21
+ children,
22
+ classes
23
+ }: ButtonProperties = $props();
24
+
25
+ let isDisabled = $derived(!enable || disabled || showLoader);
26
+
27
+ function handleButtonClick(event: MouseEvent): void {
28
+ if (showProgressBar) {
29
+ return;
30
+ }
31
+ onclick?.(event);
32
+ if (showLoader && loaderType === 'ProgressBar') {
33
+ showProgressBar = true;
34
+ }
35
+ }
36
+ </script>
37
+
38
+ <div class="button-container {classes ?? ''}">
39
+ {#if showProgressBar}
40
+ <div class="button-progress-bar"></div>
41
+ {/if}
42
+ <button
43
+ class:disabled={isDisabled}
44
+ onclick={handleButtonClick}
45
+ {onkeyup}
46
+ disabled={isDisabled}
47
+ {type}
48
+ data-pw={testId}
49
+ aria-label={ariaLabel}
50
+ aria-expanded={ariaExpanded}
51
+ aria-selected={ariaSelected}
52
+ {role}
53
+ >
54
+ {#if showLoader && loaderType === 'Circular'}
55
+ <div class="button-loader"><Loader /></div>
56
+ {/if}
57
+ {#if typeof icon === 'function'}
58
+ <div class="button-icon">{@render icon()}</div>
59
+ {/if}
60
+ {#if typeof text === 'string' && text.length > 0}
61
+ <!-- eslint-disable-next-line svelte/no-at-html-tags -->
62
+ <div class="button-text">{@html text}</div>
63
+ {/if}
64
+ {#if typeof children === 'function'}
65
+ {@render children()}
66
+ {/if}
67
+ </button>
68
+ </div>
69
+
70
+ <style>
71
+ .button-container {
72
+ position: relative;
73
+ width: var(--button-width, fit-content);
74
+ }
75
+ button {
76
+ max-height: var(--button-max-height);
77
+ max-width: var(--button-max-width);
78
+ font-family: var(--button-font-family);
79
+ font-weight: var(--button-font-weight, 500);
80
+ font-size: var(--button-font-size, 14px);
81
+ background-color: var(--button-color, #18181b);
82
+ color: var(--button-text-color, #ffffff);
83
+ height: var(--button-height, fit-content);
84
+ padding: var(--button-padding, 16px);
85
+ margin: var(--button-margin);
86
+ border-radius: var(--button-border-radius, 6px);
87
+ width: var(--button-width, fit-content);
88
+ cursor: var(--button-cursor, pointer);
89
+ opacity: var(--button-opacity, 1);
90
+ border: var(--button-border, none);
91
+ display: flex;
92
+ justify-content: var(--button-justify-content, center);
93
+ align-items: center;
94
+ flex-direction: var(--button-content-flex-direction, row);
95
+ gap: var(--button-content-gap, 16px);
96
+ visibility: var(--button-visibility, visible);
97
+ box-shadow: var(--button-box-shadow, none);
98
+ }
99
+
100
+ .disabled {
101
+ cursor: var(--button-disabled-cursor, not-allowed);
102
+ opacity: var(--button-disabled-opacity, 0.4);
103
+ color: var(--button-disabled-text-color, var(--button-text-color, #ffffff));
104
+ font-size: var(--button-disabled-font-size);
105
+ font-weight: var(--button-disabled-font-weight);
106
+ border: var(--button-disabled-border);
107
+ background: var(--button-disabled-background-color, var(--button-color, #18181b));
108
+ }
109
+
110
+ .button-loader {
111
+ order: var(--button-loader-order, 1);
112
+ }
113
+
114
+ .button-icon {
115
+ order: var(--button-icon-order, 2);
116
+ display: var(--button-icon-display);
117
+ }
118
+
119
+ .button-text {
120
+ order: var(--button-text-order, 3);
121
+ display: var(--button-text-display);
122
+ }
123
+
124
+ button:hover {
125
+ background: var(--button-hover-color, var(--button-color, #18181b));
126
+ color: var(--button-hover-text-color, var(--button-text-color, #ffffff));
127
+ border: var(--button-hover-border, var(--button-border, none));
128
+ transform: var(--button-hover-transform);
129
+ }
130
+
131
+ button:active {
132
+ transform: var(--button-active-transform);
133
+ }
134
+
135
+ .button-progress-bar {
136
+ position: absolute;
137
+ height: 100%;
138
+ width: 100%;
139
+ background: var(--button-progress-loader-background-color, #00000030);
140
+ animation: fill-loader var(--button-progress-loader-duration, 8s) forwards;
141
+ z-index: 2;
142
+ }
143
+
144
+ @keyframes fill-loader {
145
+ 0% {
146
+ width: 0;
147
+ }
148
+
149
+ 100% {
150
+ width: 100%;
151
+ }
152
+ }
153
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { ButtonProperties } from './properties';
2
+ declare const Button: import("svelte").Component<ButtonProperties, {}, "showProgressBar">;
3
+ type Button = ReturnType<typeof Button>;
4
+ export default Button;
@@ -0,0 +1,24 @@
1
+ import type { Snippet } from 'svelte';
2
+ export type LoaderType = 'Circular' | 'ProgressBar';
3
+ export type ButtonProperties = OptionalButtonProperties & ButtonEventProperties;
4
+ export type OptionalButtonProperties = {
5
+ text?: string;
6
+ enable?: boolean;
7
+ showProgressBar?: boolean;
8
+ showLoader?: boolean;
9
+ loaderType?: LoaderType;
10
+ type?: 'submit' | 'reset' | 'button';
11
+ testId?: string;
12
+ icon?: Snippet;
13
+ children?: Snippet;
14
+ ariaLabel?: string;
15
+ ariaExpanded?: boolean;
16
+ ariaSelected?: boolean;
17
+ role?: string;
18
+ disabled?: boolean;
19
+ classes?: string;
20
+ };
21
+ export type ButtonEventProperties = {
22
+ onclick?: (event: MouseEvent) => void;
23
+ onkeyup?: (event: KeyboardEvent) => void;
24
+ };
@@ -0,0 +1 @@
1
+ export {};