@softwareone/spi-sv5-library 0.1.3 → 1.0.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.
- package/dist/Avatar/Avatar.svelte +33 -0
- package/dist/Avatar/Avatar.svelte.d.ts +10 -0
- package/dist/Breadcrumbs/Breadcrumbs.svelte +10 -20
- package/dist/Button/Button.svelte +59 -119
- package/dist/Button/Button.svelte.d.ts +8 -6
- package/dist/Card/Card.svelte +18 -44
- package/dist/Card/Card.svelte.d.ts +1 -1
- package/dist/Chips/Chips.svelte +25 -28
- package/dist/Chips/Chips.svelte.d.ts +2 -1
- package/dist/Chips/chipsState.svelte.d.ts +7 -0
- package/dist/Chips/chipsState.svelte.js +8 -0
- package/dist/ErrorPage/ErrorPage.svelte +98 -0
- package/dist/ErrorPage/ErrorPage.svelte.d.ts +8 -0
- package/dist/Footer/Footer.svelte +29 -135
- package/dist/Footer/Footer.svelte.d.ts +1 -1
- package/dist/Form/Input/Input.svelte +398 -0
- package/dist/Form/Input/Input.svelte.d.ts +14 -0
- package/dist/Form/Input/InputIcon.svelte +97 -0
- package/dist/Form/Input/InputIcon.svelte.d.ts +9 -0
- package/dist/Form/TextArea/TextArea.svelte +258 -0
- package/dist/Form/TextArea/TextArea.svelte.d.ts +13 -0
- package/dist/Form/Toggle/Toggle.svelte +120 -0
- package/dist/{Toggle → Form/Toggle}/Toggle.svelte.d.ts +4 -3
- package/dist/Header/Header.svelte +55 -133
- package/dist/Header/Header.svelte.d.ts +2 -1
- package/dist/Header/HeaderAccount.svelte +6 -29
- package/dist/HighlightPanel/HighlightPanel.svelte +125 -0
- package/dist/HighlightPanel/HighlightPanel.svelte.d.ts +10 -0
- package/dist/HighlightPanel/highlightPanelState.svelte.d.ts +35 -0
- package/dist/HighlightPanel/highlightPanelState.svelte.js +13 -0
- package/dist/Menu/Menu.svelte +158 -0
- package/dist/Menu/Menu.svelte.d.ts +8 -0
- package/dist/Menu/MenuItem.svelte +153 -0
- package/dist/Menu/MenuItem.svelte.d.ts +11 -0
- package/dist/Menu/Sidebar.svelte +228 -0
- package/dist/Menu/Sidebar.svelte.d.ts +11 -0
- package/dist/Menu/SidebarState.svelte.d.ts +6 -0
- package/dist/Menu/SidebarState.svelte.js +1 -0
- package/dist/Modal/Modal.svelte +2 -3
- package/dist/Modal/ModalContent.svelte +11 -18
- package/dist/Modal/ModalFooter.svelte +10 -14
- package/dist/Modal/ModalHeader.svelte +7 -9
- package/dist/ProgressWizard/ProgressWizard.svelte +19 -34
- package/dist/Tabs/Tabs.svelte +111 -0
- package/dist/Tabs/Tabs.svelte.d.ts +8 -0
- package/dist/Tabs/tabsState.svelte.d.ts +7 -0
- package/dist/Tabs/tabsState.svelte.js +1 -0
- package/dist/Toast/Toast.svelte +7 -12
- package/dist/Tooltip/Tooltip.svelte +168 -0
- package/dist/Tooltip/Tooltip.svelte.d.ts +13 -0
- package/dist/assets/icons/feedback.svg +5 -0
- package/dist/index.d.ts +25 -8
- package/dist/index.js +23 -9
- package/package.json +2 -1
- package/dist/Toggle/Toggle.svelte +0 -170
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { addToast } from '../Toast/toastState.svelte';
|
|
3
|
-
|
|
3
|
+
|
|
4
4
|
interface Step {
|
|
5
5
|
title: string;
|
|
6
6
|
description: string;
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
isFormValid = false;
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
|
-
if (currentStep < steps.length) {
|
|
50
|
+
if (currentStep < steps.length) {
|
|
51
51
|
goToStep(currentStep + 1);
|
|
52
52
|
} else {
|
|
53
53
|
addToast({
|
|
@@ -147,7 +147,6 @@
|
|
|
147
147
|
</div>
|
|
148
148
|
|
|
149
149
|
<style>
|
|
150
|
-
/* Layout */
|
|
151
150
|
.progress-wizard {
|
|
152
151
|
display: flex;
|
|
153
152
|
flex-direction: column;
|
|
@@ -158,7 +157,6 @@
|
|
|
158
157
|
border-radius: 8px;
|
|
159
158
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
|
160
159
|
overflow: hidden;
|
|
161
|
-
font-family: 'Haas Grotesk Display Pro', sans-serif;
|
|
162
160
|
font-size: 14px;
|
|
163
161
|
}
|
|
164
162
|
|
|
@@ -181,20 +179,19 @@
|
|
|
181
179
|
margin-bottom: -20px;
|
|
182
180
|
}
|
|
183
181
|
|
|
184
|
-
/* Header */
|
|
185
182
|
.progress-header {
|
|
186
183
|
display: flex;
|
|
187
184
|
align-items: center;
|
|
188
185
|
justify-content: space-between;
|
|
189
186
|
padding: 24px;
|
|
190
|
-
gap:
|
|
187
|
+
gap: 16px;
|
|
191
188
|
border-bottom: 2px solid transparent;
|
|
192
189
|
border-image: linear-gradient(259deg, #00c9cd 16.32%, #472aff 59.03%, #392d9c 99.99%);
|
|
193
190
|
border-image-slice: 1;
|
|
194
191
|
}
|
|
195
192
|
|
|
196
193
|
.progress-header .title {
|
|
197
|
-
color:
|
|
194
|
+
color: #000;
|
|
198
195
|
font-size: 18px;
|
|
199
196
|
font-weight: 600;
|
|
200
197
|
line-height: 26px;
|
|
@@ -205,13 +202,6 @@
|
|
|
205
202
|
font-size: 24px;
|
|
206
203
|
}
|
|
207
204
|
|
|
208
|
-
/* Sidebar Steps */
|
|
209
|
-
.progress-sidebar ol {
|
|
210
|
-
list-style: none;
|
|
211
|
-
padding: 0;
|
|
212
|
-
margin: 0;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
205
|
.progress-sidebar li {
|
|
216
206
|
display: flex;
|
|
217
207
|
position: relative;
|
|
@@ -226,10 +216,9 @@
|
|
|
226
216
|
}
|
|
227
217
|
|
|
228
218
|
.progress-sidebar li.active {
|
|
229
|
-
color:
|
|
219
|
+
color: #472aff;
|
|
230
220
|
}
|
|
231
221
|
|
|
232
|
-
/* Step Button */
|
|
233
222
|
.step-button {
|
|
234
223
|
all: unset;
|
|
235
224
|
width: 100%;
|
|
@@ -242,40 +231,39 @@
|
|
|
242
231
|
|
|
243
232
|
.step-button:hover .step-icon,
|
|
244
233
|
li.active .step-icon {
|
|
245
|
-
border-color:
|
|
234
|
+
border-color: #472aff;
|
|
246
235
|
}
|
|
247
236
|
|
|
248
237
|
.step-button:hover .step-details,
|
|
249
238
|
.step-button:hover .step-details small,
|
|
250
239
|
li.active .step-button .step-details small {
|
|
251
|
-
color:
|
|
240
|
+
color: #472aff;
|
|
252
241
|
}
|
|
253
242
|
|
|
254
|
-
/* Step Icon & Line */
|
|
255
243
|
.step-icon {
|
|
256
244
|
width: 24px;
|
|
257
245
|
height: 24px;
|
|
258
246
|
display: flex;
|
|
259
247
|
align-items: center;
|
|
260
248
|
justify-content: center;
|
|
261
|
-
background:
|
|
262
|
-
border: 2px solid
|
|
249
|
+
background: #eaecff;
|
|
250
|
+
border: 2px solid #eaecff;
|
|
263
251
|
border-radius: 50%;
|
|
264
252
|
margin-right: 10px;
|
|
265
253
|
font-size: 0.9rem;
|
|
266
|
-
color:
|
|
254
|
+
color: #472aff;
|
|
267
255
|
}
|
|
268
256
|
|
|
269
257
|
li .done .step-icon {
|
|
270
|
-
background:
|
|
258
|
+
background: #472aff;
|
|
271
259
|
color: white;
|
|
272
|
-
border-color:
|
|
260
|
+
border-color: #472aff;
|
|
273
261
|
}
|
|
274
262
|
|
|
275
263
|
.step-button .step-icon.error {
|
|
276
|
-
background:
|
|
264
|
+
background: #fce8ea;
|
|
277
265
|
color: #bb1425;
|
|
278
|
-
border-color:
|
|
266
|
+
border-color: #bb1425;
|
|
279
267
|
}
|
|
280
268
|
|
|
281
269
|
.step-line-wrapper {
|
|
@@ -301,10 +289,9 @@
|
|
|
301
289
|
|
|
302
290
|
li.completed .step-line,
|
|
303
291
|
li .done .step-line {
|
|
304
|
-
background:
|
|
292
|
+
background: #472aff;
|
|
305
293
|
}
|
|
306
294
|
|
|
307
|
-
/* Step Details */
|
|
308
295
|
.step-details {
|
|
309
296
|
display: flex;
|
|
310
297
|
flex-direction: column;
|
|
@@ -323,7 +310,6 @@
|
|
|
323
310
|
margin-bottom: 20px;
|
|
324
311
|
}
|
|
325
312
|
|
|
326
|
-
/* Footer */
|
|
327
313
|
.progress-footer {
|
|
328
314
|
display: flex;
|
|
329
315
|
justify-content: space-between;
|
|
@@ -332,7 +318,6 @@
|
|
|
332
318
|
border-top: 1px solid #e6e6e6;
|
|
333
319
|
}
|
|
334
320
|
|
|
335
|
-
/* Buttons */
|
|
336
321
|
.btn {
|
|
337
322
|
padding: 10px 20px;
|
|
338
323
|
border-radius: 4px;
|
|
@@ -342,13 +327,13 @@
|
|
|
342
327
|
}
|
|
343
328
|
|
|
344
329
|
.btn.primary {
|
|
345
|
-
background:
|
|
330
|
+
background: #472aff;
|
|
346
331
|
color: white;
|
|
347
332
|
}
|
|
348
333
|
|
|
349
334
|
.btn.secondary {
|
|
350
|
-
background:
|
|
351
|
-
color:
|
|
335
|
+
background: #eaecff;
|
|
336
|
+
color: #472aff;
|
|
352
337
|
margin-right: 10px;
|
|
353
338
|
}
|
|
354
339
|
|
|
@@ -359,7 +344,7 @@
|
|
|
359
344
|
|
|
360
345
|
.link {
|
|
361
346
|
background: transparent;
|
|
362
|
-
color:
|
|
347
|
+
color: #472aff;
|
|
363
348
|
font-size: 0.9rem;
|
|
364
349
|
}
|
|
365
350
|
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Tab } from '../index.js';
|
|
3
|
+
|
|
4
|
+
interface TabsProps {
|
|
5
|
+
tabs: Tab[];
|
|
6
|
+
activeTab?: number;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
let { tabs = [], activeTab = 0 }: TabsProps = $props();
|
|
10
|
+
|
|
11
|
+
const handleClick = (index: number) => (): void => {
|
|
12
|
+
activeTab = index;
|
|
13
|
+
};
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<div class="tabs-container">
|
|
17
|
+
<div class="tabs-list" role="tablist" aria-label="tabs">
|
|
18
|
+
{#each tabs as tab}
|
|
19
|
+
{#if !tab.hidden}
|
|
20
|
+
{@const isActiveTab = activeTab === tab.index}
|
|
21
|
+
<button
|
|
22
|
+
id="tab-{tab.index}"
|
|
23
|
+
role="tab"
|
|
24
|
+
aria-selected={isActiveTab}
|
|
25
|
+
aria-controls="panel-{tab.index}"
|
|
26
|
+
tabindex={isActiveTab ? 0 : -1}
|
|
27
|
+
type="button"
|
|
28
|
+
class:active={isActiveTab}
|
|
29
|
+
onclick={handleClick(tab.index)}
|
|
30
|
+
>
|
|
31
|
+
{tab.label}
|
|
32
|
+
</button>
|
|
33
|
+
{/if}
|
|
34
|
+
{/each}
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
{#each tabs as tab}
|
|
38
|
+
{#if activeTab === tab.index}
|
|
39
|
+
<div
|
|
40
|
+
class="tabs-content"
|
|
41
|
+
id="panel-{tab.index}"
|
|
42
|
+
role="tabpanel"
|
|
43
|
+
aria-labelledby="tab-{tab.index}"
|
|
44
|
+
>
|
|
45
|
+
{@render tab.component?.()}
|
|
46
|
+
</div>
|
|
47
|
+
{/if}
|
|
48
|
+
{/each}
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
<style>
|
|
52
|
+
.tabs-container {
|
|
53
|
+
display: flex;
|
|
54
|
+
flex-direction: column;
|
|
55
|
+
width: 100%;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.tabs-list {
|
|
59
|
+
display: flex;
|
|
60
|
+
gap: 16px;
|
|
61
|
+
border-bottom: 1px solid #e0e5e8;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.tabs-list button {
|
|
65
|
+
border-radius: 8px;
|
|
66
|
+
background-color: #fff;
|
|
67
|
+
padding: 20px 16px 20px;
|
|
68
|
+
position: relative;
|
|
69
|
+
border: none;
|
|
70
|
+
font-size: 16px;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.tabs-list button:hover {
|
|
74
|
+
background-color: #f4f6f8;
|
|
75
|
+
cursor: pointer;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.tabs-list button.active {
|
|
79
|
+
color: #472aff;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.tabs-list button::after {
|
|
83
|
+
content: '';
|
|
84
|
+
position: absolute;
|
|
85
|
+
left: 50%;
|
|
86
|
+
bottom: -2px;
|
|
87
|
+
width: 0;
|
|
88
|
+
height: 4px;
|
|
89
|
+
background-color: #472aff;
|
|
90
|
+
border-radius: 8px;
|
|
91
|
+
transform: translateX(-50%);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.tabs-list button:hover::after,
|
|
95
|
+
.tabs-list button.active::after {
|
|
96
|
+
width: 90%;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.tabs-content {
|
|
100
|
+
width: 100%;
|
|
101
|
+
height: 100%;
|
|
102
|
+
position: relative;
|
|
103
|
+
border-radius: 0px 0px 16px 16px;
|
|
104
|
+
overflow: hidden;
|
|
105
|
+
padding: 24px;
|
|
106
|
+
box-sizing: border-box;
|
|
107
|
+
min-height: 300px;
|
|
108
|
+
text-align: left;
|
|
109
|
+
font-size: 18px;
|
|
110
|
+
}
|
|
111
|
+
</style>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/Toast/Toast.svelte
CHANGED
|
@@ -65,9 +65,8 @@
|
|
|
65
65
|
align-items: center;
|
|
66
66
|
gap: 16px;
|
|
67
67
|
border-radius: 8px;
|
|
68
|
-
border: 1px solid
|
|
69
|
-
background:
|
|
70
|
-
/* shadow/dropdown */
|
|
68
|
+
border: 1px solid #e0e5e8;
|
|
69
|
+
background: #fff;
|
|
71
70
|
box-shadow:
|
|
72
71
|
0px 4px 5px 0px rgba(51, 56, 64, 0.15),
|
|
73
72
|
0px 1px 3px 0px rgba(51, 56, 64, 0.2),
|
|
@@ -78,27 +77,23 @@
|
|
|
78
77
|
padding: 8px 0px;
|
|
79
78
|
align-items: flex-start;
|
|
80
79
|
gap: 8px;
|
|
81
|
-
color:
|
|
82
|
-
|
|
83
|
-
/* regular/2 */
|
|
84
|
-
font-family: 'Haas Grotesk Display Pro', sans-serif;
|
|
80
|
+
color: #000;
|
|
85
81
|
font-size: 14px;
|
|
86
82
|
font-style: normal;
|
|
87
83
|
font-weight: 400;
|
|
88
|
-
line-height: 20px;
|
|
84
|
+
line-height: 20px;
|
|
89
85
|
}
|
|
90
86
|
.toast-content-link {
|
|
91
87
|
display: flex;
|
|
92
88
|
align-items: flex-start;
|
|
93
|
-
color:
|
|
94
|
-
font-family: 'Haas Grotesk Display Pro', sans-serif;
|
|
89
|
+
color: #2b1999;
|
|
95
90
|
font-size: 14px;
|
|
96
91
|
font-style: normal;
|
|
97
92
|
font-weight: 400;
|
|
98
|
-
line-height: 20px;
|
|
93
|
+
line-height: 20px;
|
|
99
94
|
}
|
|
100
95
|
.toast-content-link:hover {
|
|
101
|
-
color:
|
|
96
|
+
color: #472aff;
|
|
102
97
|
text-decoration: underline;
|
|
103
98
|
}
|
|
104
99
|
</style>
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import { cubicOut } from 'svelte/easing';
|
|
4
|
+
import type { FlyParams } from 'svelte/transition';
|
|
5
|
+
import { fly } from 'svelte/transition';
|
|
6
|
+
|
|
7
|
+
type Position = 'top' | 'bottom' | 'left' | 'right';
|
|
8
|
+
type Width = 'xs' | 'sm' | 'md';
|
|
9
|
+
|
|
10
|
+
interface TooltipProps {
|
|
11
|
+
content: string;
|
|
12
|
+
position?: Position;
|
|
13
|
+
width?: Width;
|
|
14
|
+
class?: string;
|
|
15
|
+
children: Snippet;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
let {
|
|
19
|
+
content,
|
|
20
|
+
position = 'top',
|
|
21
|
+
width = 'xs',
|
|
22
|
+
class: customClass = '',
|
|
23
|
+
children
|
|
24
|
+
}: TooltipProps = $props();
|
|
25
|
+
|
|
26
|
+
let isVisible = $state(false);
|
|
27
|
+
|
|
28
|
+
const toggleTooltip = () => {
|
|
29
|
+
isVisible = !isVisible;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const TRANSITION_DURATION = 200;
|
|
33
|
+
const ARROW_OFFSET = 8;
|
|
34
|
+
|
|
35
|
+
const transitionConfig: FlyParams = {
|
|
36
|
+
duration: TRANSITION_DURATION,
|
|
37
|
+
easing: cubicOut,
|
|
38
|
+
y: position === 'top' ? ARROW_OFFSET : position === 'bottom' ? -ARROW_OFFSET : 0,
|
|
39
|
+
x: position === 'left' ? ARROW_OFFSET : position === 'right' ? -ARROW_OFFSET : 0
|
|
40
|
+
};
|
|
41
|
+
</script>
|
|
42
|
+
|
|
43
|
+
<div
|
|
44
|
+
class="tooltip-trigger"
|
|
45
|
+
role="button"
|
|
46
|
+
tabindex="0"
|
|
47
|
+
onmouseenter={toggleTooltip}
|
|
48
|
+
onmouseleave={toggleTooltip}
|
|
49
|
+
onfocus={toggleTooltip}
|
|
50
|
+
onblur={toggleTooltip}
|
|
51
|
+
>
|
|
52
|
+
{@render children()}
|
|
53
|
+
|
|
54
|
+
{#if isVisible && content}
|
|
55
|
+
<div
|
|
56
|
+
class="tooltip tooltip-{position} tooltip-{width} {customClass}"
|
|
57
|
+
in:fly={transitionConfig}
|
|
58
|
+
out:fly={transitionConfig}
|
|
59
|
+
role="tooltip"
|
|
60
|
+
aria-live="polite"
|
|
61
|
+
>
|
|
62
|
+
{content}
|
|
63
|
+
<div class="tooltip-arrow tooltip-arrow-{position}" aria-hidden="true"></div>
|
|
64
|
+
</div>
|
|
65
|
+
{/if}
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<style>
|
|
69
|
+
.tooltip-trigger {
|
|
70
|
+
position: relative;
|
|
71
|
+
display: inline-block;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.tooltip-trigger:focus-visible {
|
|
75
|
+
outline: none;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.tooltip {
|
|
79
|
+
position: absolute;
|
|
80
|
+
z-index: 1000;
|
|
81
|
+
padding: 8px 12px;
|
|
82
|
+
border-radius: 6px;
|
|
83
|
+
font-size: 14px;
|
|
84
|
+
font-weight: 400;
|
|
85
|
+
line-height: 20px;
|
|
86
|
+
text-align: center;
|
|
87
|
+
pointer-events: none;
|
|
88
|
+
background-color: #25282d;
|
|
89
|
+
color: #ffffff;
|
|
90
|
+
white-space: normal;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.tooltip-xs {
|
|
94
|
+
width: 120px;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.tooltip-sm {
|
|
98
|
+
width: 200px;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.tooltip-md {
|
|
102
|
+
width: 320px;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.tooltip-top {
|
|
106
|
+
bottom: calc(100% + 12px);
|
|
107
|
+
left: 50%;
|
|
108
|
+
transform: translateX(-50%);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.tooltip-bottom {
|
|
112
|
+
top: calc(100% + 12px);
|
|
113
|
+
left: 50%;
|
|
114
|
+
transform: translateX(-50%);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.tooltip-left {
|
|
118
|
+
top: 50%;
|
|
119
|
+
right: calc(100% + 12px);
|
|
120
|
+
transform: translateY(-50%);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.tooltip-right {
|
|
124
|
+
top: 50%;
|
|
125
|
+
left: calc(100% + 12px);
|
|
126
|
+
transform: translateY(-50%);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.tooltip-arrow {
|
|
130
|
+
position: absolute;
|
|
131
|
+
border: 6px solid transparent;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.tooltip-arrow-top {
|
|
135
|
+
top: 100%;
|
|
136
|
+
left: 50%;
|
|
137
|
+
transform: translateX(-50%);
|
|
138
|
+
border-top-color: #25282d;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.tooltip-arrow-bottom {
|
|
142
|
+
bottom: 100%;
|
|
143
|
+
left: 50%;
|
|
144
|
+
transform: translateX(-50%);
|
|
145
|
+
border-bottom-color: #25282d;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.tooltip-arrow-left {
|
|
149
|
+
top: 50%;
|
|
150
|
+
left: 100%;
|
|
151
|
+
transform: translateY(-50%);
|
|
152
|
+
border-left-color: #25282d;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.tooltip-arrow-right {
|
|
156
|
+
top: 50%;
|
|
157
|
+
right: 100%;
|
|
158
|
+
transform: translateY(-50%);
|
|
159
|
+
border-right-color: #25282d;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
@media (max-width: 768px) {
|
|
163
|
+
.tooltip {
|
|
164
|
+
font-size: 11px;
|
|
165
|
+
padding: 6px 10px;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
</style>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
type Position = 'top' | 'bottom' | 'left' | 'right';
|
|
3
|
+
type Width = 'xs' | 'sm' | 'md';
|
|
4
|
+
interface TooltipProps {
|
|
5
|
+
content: string;
|
|
6
|
+
position?: Position;
|
|
7
|
+
width?: Width;
|
|
8
|
+
class?: string;
|
|
9
|
+
children: Snippet;
|
|
10
|
+
}
|
|
11
|
+
declare const Tooltip: import("svelte").Component<TooltipProps, {}, "">;
|
|
12
|
+
type Tooltip = ReturnType<typeof Tooltip>;
|
|
13
|
+
export default Tooltip;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M28 22.4C29.0902 21.3906 29.9629 20.1693 30.5647 18.8109C31.1665 17.4526 31.4848 15.9856 31.5 14.5C31.5 7.7 24.8 2.5 16.5 2.5C8.2 2.5 1.5 7.7 1.5 14.5C1.5 21.3 8.2 26.8 16.5 26.8C17.9145 26.7937 19.3236 26.6259 20.7 26.3L28.5 29.5L28 22.4Z" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
<path d="M16.5 8.5V16.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M16.5 22C17.1904 22 17.75 21.4404 17.75 20.75C17.75 20.0596 17.1904 19.5 16.5 19.5C15.8096 19.5 15.25 20.0596 15.25 20.75C15.25 21.4404 15.8096 22 16.5 22Z" fill="black"/>
|
|
5
|
+
</svg>
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,30 @@
|
|
|
1
|
+
import Avatar from './Avatar/Avatar.svelte';
|
|
2
|
+
import Breadcrumbs from './Breadcrumbs/Breadcrumbs.svelte';
|
|
3
|
+
import { addBreadcrumbsNameMap, type BreadcrumbsNameMap } from './Breadcrumbs/breadcrumbsState.svelte.js';
|
|
1
4
|
import Button from './Button/Button.svelte';
|
|
5
|
+
import Card from './Card/Card.svelte';
|
|
6
|
+
import Chips from './Chips/Chips.svelte';
|
|
7
|
+
import { ChipType } from './Chips/chipsState.svelte.js';
|
|
8
|
+
import ErrorPage from './ErrorPage/ErrorPage.svelte';
|
|
9
|
+
import Footer from './Footer/Footer.svelte';
|
|
10
|
+
import Input from './Form/Input/Input.svelte';
|
|
11
|
+
import Toggle from './Form/Toggle/Toggle.svelte';
|
|
12
|
+
import TextArea from './Form/TextArea/TextArea.svelte';
|
|
13
|
+
import Header from './Header/Header.svelte';
|
|
14
|
+
import HeaderAccount from './Header/HeaderAccount.svelte';
|
|
15
|
+
import HeaderLoader from './Header/HeaderLoader.svelte';
|
|
16
|
+
import HeaderLogo from './Header/HeaderLogo.svelte';
|
|
17
|
+
import HighlightPanel from './HighlightPanel/HighlightPanel.svelte';
|
|
18
|
+
import { ColumnType, ImageType, type HighlightPanelColumn } from './HighlightPanel/highlightPanelState.svelte.js';
|
|
19
|
+
import Menu from './Menu/Menu.svelte';
|
|
20
|
+
import Sidebar from './Menu/Sidebar.svelte';
|
|
21
|
+
import type { MenuItem } from './Menu/SidebarState.svelte';
|
|
2
22
|
import Modal from './Modal/Modal.svelte';
|
|
23
|
+
import ProgressWizard from './ProgressWizard/ProgressWizard.svelte';
|
|
3
24
|
import Spinner from './Spinner/Spinner.svelte';
|
|
25
|
+
import Tabs from './Tabs/Tabs.svelte';
|
|
26
|
+
import type { Tab } from './Tabs/tabsState.svelte.js';
|
|
4
27
|
import Toaster from './Toast/Toast.svelte';
|
|
5
28
|
import { addToast, type Toast } from './Toast/toastState.svelte';
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
import Breadcrumbs from './Breadcrumbs/Breadcrumbs.svelte';
|
|
9
|
-
import { addBreadcrumbsNameMap, type BreadcrumbsNameMap } from './Breadcrumbs/breadcrumbsState.svelte.js';
|
|
10
|
-
import Chips from './Chips/Chips.svelte';
|
|
11
|
-
import Footer from './Footer/Footer.svelte';
|
|
12
|
-
import Card from './Card/Card.svelte';
|
|
13
|
-
export { Button, Modal, Spinner, Toaster, addToast, type Toast, Toggle, Header, Breadcrumbs, addBreadcrumbsNameMap, type BreadcrumbsNameMap, Chips, Footer, Card };
|
|
29
|
+
import Tooltip from './Tooltip/Tooltip.svelte';
|
|
30
|
+
export { addBreadcrumbsNameMap, addToast, Avatar, Breadcrumbs, Button, Card, Chips, ChipType, ColumnType, ErrorPage, Footer, Header, HeaderAccount, HeaderLoader, HeaderLogo, HighlightPanel, ImageType, Input, Menu, TextArea, Modal, ProgressWizard, Sidebar, Spinner, Tabs, Toaster, Toggle, Tooltip, type BreadcrumbsNameMap, type HighlightPanelColumn, type MenuItem, type Tab, type Toast };
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
import Avatar from './Avatar/Avatar.svelte';
|
|
2
|
+
import Breadcrumbs from './Breadcrumbs/Breadcrumbs.svelte';
|
|
3
|
+
import { addBreadcrumbsNameMap } from './Breadcrumbs/breadcrumbsState.svelte.js';
|
|
2
4
|
import Button from './Button/Button.svelte';
|
|
5
|
+
import Card from './Card/Card.svelte';
|
|
6
|
+
import Chips from './Chips/Chips.svelte';
|
|
7
|
+
import { ChipType } from './Chips/chipsState.svelte.js';
|
|
8
|
+
import ErrorPage from './ErrorPage/ErrorPage.svelte';
|
|
9
|
+
import Footer from './Footer/Footer.svelte';
|
|
10
|
+
import Input from './Form/Input/Input.svelte';
|
|
11
|
+
import Toggle from './Form/Toggle/Toggle.svelte';
|
|
12
|
+
import TextArea from './Form/TextArea/TextArea.svelte';
|
|
13
|
+
import Header from './Header/Header.svelte';
|
|
14
|
+
import HeaderAccount from './Header/HeaderAccount.svelte';
|
|
15
|
+
import HeaderLoader from './Header/HeaderLoader.svelte';
|
|
16
|
+
import HeaderLogo from './Header/HeaderLogo.svelte';
|
|
17
|
+
import HighlightPanel from './HighlightPanel/HighlightPanel.svelte';
|
|
18
|
+
import { ColumnType, ImageType } from './HighlightPanel/highlightPanelState.svelte.js';
|
|
19
|
+
import Menu from './Menu/Menu.svelte';
|
|
20
|
+
import Sidebar from './Menu/Sidebar.svelte';
|
|
3
21
|
import Modal from './Modal/Modal.svelte';
|
|
22
|
+
import ProgressWizard from './ProgressWizard/ProgressWizard.svelte';
|
|
4
23
|
import Spinner from './Spinner/Spinner.svelte';
|
|
24
|
+
import Tabs from './Tabs/Tabs.svelte';
|
|
5
25
|
import Toaster from './Toast/Toast.svelte';
|
|
6
26
|
import { addToast } from './Toast/toastState.svelte';
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
import Breadcrumbs from './Breadcrumbs/Breadcrumbs.svelte';
|
|
10
|
-
import { addBreadcrumbsNameMap } from './Breadcrumbs/breadcrumbsState.svelte.js';
|
|
11
|
-
import Chips from './Chips/Chips.svelte';
|
|
12
|
-
import Footer from './Footer/Footer.svelte';
|
|
13
|
-
import Card from './Card/Card.svelte';
|
|
14
|
-
export { Button, Modal, Spinner, Toaster, addToast, Toggle, Header, Breadcrumbs, addBreadcrumbsNameMap, Chips, Footer, Card };
|
|
27
|
+
import Tooltip from './Tooltip/Tooltip.svelte';
|
|
28
|
+
export { addBreadcrumbsNameMap, addToast, Avatar, Breadcrumbs, Button, Card, Chips, ChipType, ColumnType, ErrorPage, Footer, Header, HeaderAccount, HeaderLoader, HeaderLogo, HighlightPanel, ImageType, Input, Menu, TextArea, Modal, ProgressWizard, Sidebar, Spinner, Tabs, Toaster, Toggle, Tooltip };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softwareone/spi-sv5-library",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Svelte components",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"svelte",
|
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@sveltejs/kit": "^2.16.0",
|
|
62
|
+
"http-status-codes": "^2.3.0",
|
|
62
63
|
"lucide-svelte": "^0.475.0",
|
|
63
64
|
"zod": "^3.24.4"
|
|
64
65
|
}
|