@softwareone/spi-sv5-library 0.1.2 → 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.
Files changed (56) hide show
  1. package/dist/Avatar/Avatar.svelte +33 -0
  2. package/dist/Avatar/Avatar.svelte.d.ts +10 -0
  3. package/dist/Breadcrumbs/Breadcrumbs.svelte +10 -20
  4. package/dist/Button/Button.svelte +59 -119
  5. package/dist/Button/Button.svelte.d.ts +8 -6
  6. package/dist/Card/Card.svelte +18 -44
  7. package/dist/Card/Card.svelte.d.ts +1 -1
  8. package/dist/Chips/Chips.svelte +25 -28
  9. package/dist/Chips/Chips.svelte.d.ts +2 -1
  10. package/dist/Chips/chipsState.svelte.d.ts +7 -0
  11. package/dist/Chips/chipsState.svelte.js +8 -0
  12. package/dist/ErrorPage/ErrorPage.svelte +98 -0
  13. package/dist/ErrorPage/ErrorPage.svelte.d.ts +8 -0
  14. package/dist/Footer/Footer.svelte +29 -135
  15. package/dist/Footer/Footer.svelte.d.ts +1 -1
  16. package/dist/Form/Input/Input.svelte +398 -0
  17. package/dist/Form/Input/Input.svelte.d.ts +14 -0
  18. package/dist/Form/Input/InputIcon.svelte +97 -0
  19. package/dist/Form/Input/InputIcon.svelte.d.ts +9 -0
  20. package/dist/Form/TextArea/TextArea.svelte +258 -0
  21. package/dist/Form/TextArea/TextArea.svelte.d.ts +13 -0
  22. package/dist/Form/Toggle/Toggle.svelte +120 -0
  23. package/dist/{Toggle → Form/Toggle}/Toggle.svelte.d.ts +4 -3
  24. package/dist/Header/Header.svelte +65 -100
  25. package/dist/Header/Header.svelte.d.ts +7 -2
  26. package/dist/Header/HeaderAccount.svelte +6 -29
  27. package/dist/HighlightPanel/HighlightPanel.svelte +125 -0
  28. package/dist/HighlightPanel/HighlightPanel.svelte.d.ts +10 -0
  29. package/dist/HighlightPanel/highlightPanelState.svelte.d.ts +35 -0
  30. package/dist/HighlightPanel/highlightPanelState.svelte.js +13 -0
  31. package/dist/Menu/Menu.svelte +158 -0
  32. package/dist/Menu/Menu.svelte.d.ts +8 -0
  33. package/dist/Menu/MenuItem.svelte +153 -0
  34. package/dist/Menu/MenuItem.svelte.d.ts +11 -0
  35. package/dist/Menu/Sidebar.svelte +228 -0
  36. package/dist/Menu/Sidebar.svelte.d.ts +11 -0
  37. package/dist/Menu/SidebarState.svelte.d.ts +6 -0
  38. package/dist/Menu/SidebarState.svelte.js +1 -0
  39. package/dist/Modal/Modal.svelte +2 -3
  40. package/dist/Modal/ModalContent.svelte +11 -18
  41. package/dist/Modal/ModalFooter.svelte +10 -14
  42. package/dist/Modal/ModalHeader.svelte +7 -9
  43. package/dist/ProgressWizard/ProgressWizard.svelte +355 -0
  44. package/dist/ProgressWizard/ProgressWizard.svelte.d.ts +16 -0
  45. package/dist/Tabs/Tabs.svelte +111 -0
  46. package/dist/Tabs/Tabs.svelte.d.ts +8 -0
  47. package/dist/Tabs/tabsState.svelte.d.ts +7 -0
  48. package/dist/Tabs/tabsState.svelte.js +1 -0
  49. package/dist/Toast/Toast.svelte +7 -12
  50. package/dist/Tooltip/Tooltip.svelte +168 -0
  51. package/dist/Tooltip/Tooltip.svelte.d.ts +13 -0
  52. package/dist/assets/icons/feedback.svg +5 -0
  53. package/dist/index.d.ts +25 -8
  54. package/dist/index.js +23 -9
  55. package/package.json +4 -2
  56. package/dist/Toggle/Toggle.svelte +0 -170
@@ -0,0 +1,228 @@
1
+ <script lang="ts">
2
+ import { fade } from 'svelte/transition';
3
+ import type { MenuItem } from './SidebarState.svelte';
4
+ import MenuItemSidebar from './MenuItem.svelte';
5
+
6
+ interface sidebarProps {
7
+ categoryTitle: string;
8
+ menuItems: MenuItem[];
9
+ }
10
+
11
+ let { sidebarItems }: { sidebarItems: sidebarProps[] } = $props();
12
+ let isCollapsed: boolean = $state(false);
13
+ let selectedItem: MenuItem | null = $state(null);
14
+
15
+ const toggleSidebar = () => {
16
+ isCollapsed = !isCollapsed;
17
+ };
18
+ </script>
19
+
20
+ <aside
21
+ class={['side-menu', isCollapsed ? 'collapsed' : 'expanded']}
22
+ transition:fade|global={{ delay: 50, duration: 200 }}
23
+ >
24
+ <section class="menu-content">
25
+ <header class="header">
26
+ <section class="menu-header">
27
+ <div class="menu-title" class:hidden={isCollapsed}>
28
+ <div class="menu">
29
+ <h2 class="menu-span">Menu</h2>
30
+ </div>
31
+ </div>
32
+ <div class="category-items">
33
+ <button class="button" onclick={toggleSidebar}>
34
+ <span class="material-icons-outlined icon-span">
35
+ {isCollapsed ? 'menu' : 'menu_open'}
36
+ </span>
37
+ </button>
38
+ </div>
39
+ </section>
40
+ </header>
41
+
42
+ <section class="content">
43
+ {#if sidebarItems.length > 0}
44
+ {#each sidebarItems as element}
45
+ <section class="category-content">
46
+ <h2 class="category-span" class:hidden={isCollapsed}>{element.categoryTitle}</h2>
47
+ <menu class="category-items-details">
48
+ {#if element.menuItems}
49
+ {#each element.menuItems as menuItem}
50
+ <MenuItemSidebar
51
+ item={menuItem}
52
+ {isCollapsed}
53
+ activeItem={selectedItem?.text === menuItem.text}
54
+ onClick={() => (selectedItem = menuItem)}
55
+ />
56
+ {/each}
57
+ {/if}
58
+ </menu>
59
+ </section>
60
+ {/each}
61
+ {/if}
62
+ </section>
63
+ </section>
64
+ </aside>
65
+
66
+ <style>
67
+ .side-menu {
68
+ display: inline-flex;
69
+ transition: width 0.3s ease;
70
+ }
71
+
72
+ .menu-content {
73
+ width: 100%;
74
+ height: 100%;
75
+ padding: 16px;
76
+ background: white;
77
+ border-right: 1px #e0e5e8 solid;
78
+ flex-direction: column;
79
+ justify-content: flex-start;
80
+ align-items: center;
81
+ gap: 32px;
82
+ display: flex;
83
+ }
84
+
85
+ .header {
86
+ align-self: stretch;
87
+ flex-direction: column;
88
+ gap: 16px;
89
+ display: flex;
90
+ }
91
+
92
+ .menu-header {
93
+ padding-bottom: 8px;
94
+ border-bottom: 1px #e0e5e8 solid;
95
+ gap: 10px;
96
+ display: inline-flex;
97
+ }
98
+
99
+ .menu-title {
100
+ flex: 1 1 0;
101
+ padding-top: 8px;
102
+ padding-bottom: 8px;
103
+ display: flex;
104
+ }
105
+
106
+ .menu {
107
+ justify-content: center;
108
+ display: flex;
109
+ flex-direction: column;
110
+ }
111
+
112
+ .menu-span {
113
+ color: black;
114
+ font-size: 14px;
115
+ font-weight: 600;
116
+ line-height: 20px;
117
+ word-wrap: break-word;
118
+ }
119
+
120
+ .category-items {
121
+ padding: 8px;
122
+ gap: 8px;
123
+ display: flex;
124
+ }
125
+
126
+ .content {
127
+ flex-direction: column;
128
+ gap: 24px;
129
+ display: flex;
130
+ }
131
+
132
+ .category-content {
133
+ flex-direction: column;
134
+ gap: 8px;
135
+ display: flex;
136
+ }
137
+
138
+ .category-span {
139
+ color: #6b7180;
140
+ font-size: 12px;
141
+ font-weight: 400;
142
+ word-wrap: break-word;
143
+ }
144
+
145
+ .category-items-details {
146
+ flex-direction: column;
147
+ justify-content: flex-start;
148
+ align-items: flex-start;
149
+ }
150
+
151
+ button:focus-visible {
152
+ box-shadow: 0 0 0 2px #472aff;
153
+ background-color: #eaecff;
154
+ outline: none;
155
+ }
156
+
157
+ .icon-span {
158
+ color: #25282d;
159
+ font-size: 20px;
160
+ font-weight: 400;
161
+ line-height: 20px;
162
+ word-wrap: break-word;
163
+ }
164
+
165
+ .expanded {
166
+ width: 220px;
167
+ }
168
+
169
+ .collapsed {
170
+ width: 68px;
171
+ }
172
+
173
+ .hidden {
174
+ display: none;
175
+ }
176
+
177
+ .collapsed .header {
178
+ align-items: center;
179
+ }
180
+
181
+ .collapsed .menu-content {
182
+ padding: 8px;
183
+ }
184
+ .collapsed .content {
185
+ padding: 8px;
186
+ }
187
+ .collapsed .menu-header {
188
+ align-items: center;
189
+ }
190
+
191
+ .collapsed .menu-header {
192
+ justify-content: flex-start;
193
+ align-items: center;
194
+ padding: 8px;
195
+ }
196
+
197
+ .button {
198
+ background: transparent;
199
+ border: none;
200
+ cursor: pointer;
201
+ border-radius: 50%;
202
+ width: 36px;
203
+ height: 36px;
204
+ display: flex;
205
+ align-items: center;
206
+ justify-content: center;
207
+ transition: background-color 0.2s ease;
208
+ }
209
+
210
+ .button:hover {
211
+ background-color: #f4f6f8;
212
+ }
213
+
214
+ @media (max-width: 768px) {
215
+ .side-menu {
216
+ width: 68px;
217
+ }
218
+
219
+ .header {
220
+ align-items: center;
221
+ }
222
+
223
+ .menu-title,
224
+ .category-span {
225
+ display: none;
226
+ }
227
+ }
228
+ </style>
@@ -0,0 +1,11 @@
1
+ import type { MenuItem } from './SidebarState.svelte';
2
+ interface sidebarProps {
3
+ categoryTitle: string;
4
+ menuItems: MenuItem[];
5
+ }
6
+ type $$ComponentProps = {
7
+ sidebarItems: sidebarProps[];
8
+ };
9
+ declare const Sidebar: import("svelte").Component<$$ComponentProps, {}, "">;
10
+ type Sidebar = ReturnType<typeof Sidebar>;
11
+ export default Sidebar;
@@ -0,0 +1,6 @@
1
+ export interface MenuItem {
2
+ icon?: string;
3
+ text: string;
4
+ url: string;
5
+ children?: MenuItem[];
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -35,9 +35,8 @@
35
35
  min-height: 250px;
36
36
  flex-direction: column;
37
37
  align-items: flex-start;
38
- border-radius: var(--Card-radius, 16px);
39
- background: var(--brand-white, #fff);
40
- /* shadow/card-hover */
38
+ border-radius: 16px;
39
+ background: #fff;
41
40
  box-shadow:
42
41
  0px 1px 10px 0px rgba(51, 56, 64, 0.12),
43
42
  0px 2px 4px -1px rgba(51, 56, 64, 0.2),
@@ -46,33 +46,29 @@
46
46
  <style>
47
47
  .modal-content {
48
48
  display: flex;
49
- padding: var(--Card-padding, 24px);
49
+ padding: 24px;
50
50
  flex-direction: column;
51
51
  align-items: flex-start;
52
- gap: var(--spacing-3, 24px);
52
+ gap: 24px;
53
53
  align-self: stretch;
54
- background: var(--brand-white, #fff);
55
- border-top: 1px solid var(--gray-3, #aeb1b9);
54
+ background: #fff;
55
+ border-top: 1px solid #aeb1b9;
56
56
  }
57
57
  .modal-content-title {
58
58
  align-self: stretch;
59
- color: var(--brand-type, #000);
60
- /* bold/2 */
61
- font-family: 'Haas Grotesk Display Pro', sans-serif;
59
+ color: #000;
62
60
  font-size: 14px;
63
61
  font-style: normal;
64
- font-weight: 600; /* changed from 700 to 600 since we use Haas Grotesk Display Pro */
65
- line-height: 20px; /* 142.857% */
62
+ font-weight: 600;
63
+ line-height: 20px;
66
64
  }
67
65
  .modal-content-message {
68
66
  align-self: stretch;
69
- color: var(--brand-type, #000);
70
- /* regular/2 */
71
- font-family: 'Haas Grotesk Display Pro', sans-serif;
67
+ color: #000;
72
68
  font-size: 14px;
73
69
  font-style: normal;
74
70
  font-weight: 400;
75
- line-height: 20px; /* 142.857% */
71
+ line-height: 20px;
76
72
  }
77
73
  .modal-content-code-content {
78
74
  display: flex;
@@ -80,14 +76,11 @@
80
76
  align-items: flex-start;
81
77
  gap: 20px;
82
78
  border-radius: 4px;
83
- background: var(--gray-1, #f4f6f8);
79
+ background: #f4f6f8;
84
80
  }
85
81
  .modal-content-code-content-message {
86
82
  width: 368px;
87
- color: var(--gray-4, #6b7180);
88
-
89
- /* regular/1 */
90
- font-family: 'Haas Grotesk Display Pro', sans-serif;
83
+ color: #6b7180;
91
84
  font-size: 12px;
92
85
  font-style: normal;
93
86
  font-weight: 400;
@@ -27,13 +27,13 @@
27
27
  <style>
28
28
  .modal-footer {
29
29
  display: flex;
30
- padding: var(--Card-padding, 24px);
30
+ padding: 24px;
31
31
  justify-content: space-between;
32
32
  align-items: flex-start;
33
33
  align-self: stretch;
34
- border-radius: 0px 0px var(--Card-radius, 16px) var(--Card-radius, 16px);
35
- border-top: 1px solid var(--gray-3, #aeb1b9);
36
- background: var(--brand-white, #fff);
34
+ border-radius: 0px 0px 16px 16px;
35
+ border-top: 1px solid #aeb1b9;
36
+ background: #fff;
37
37
  }
38
38
  .modal-footer-text-button {
39
39
  display: inline-flex;
@@ -42,14 +42,12 @@
42
42
  gap: 8px;
43
43
  border-radius: 8px;
44
44
  border: none;
45
- background: var(--brand-white, #fff);
46
- color: var(--brand-primary, #472aff);
47
- /* regular/2 */
48
- font-family: 'Haas Grotesk Display Pro', sans-serif;
45
+ background: #fff;
46
+ color: #472aff;
49
47
  font-size: 14px;
50
48
  font-style: normal;
51
49
  font-weight: 400;
52
- line-height: 20px; /* 142.857% */
50
+ line-height: 20px;
53
51
  }
54
52
  .modal-footer-text-button:hover {
55
53
  cursor: pointer;
@@ -61,14 +59,12 @@
61
59
  gap: 8px;
62
60
  border-radius: 8px;
63
61
  border: none;
64
- background: var(--brand-primary, #472aff);
65
- color: var(--brand-primary, #fff);
66
- /* regular/2 */
67
- font-family: 'Haas Grotesk Display Pro', sans-serif;
62
+ background: #472aff;
63
+ color: #fff;
68
64
  font-size: 14px;
69
65
  font-style: normal;
70
66
  font-weight: 400;
71
- line-height: 20px; /* 142.857% */
67
+ line-height: 20px;
72
68
  }
73
69
  .modal-footer-primary-button:hover {
74
70
  cursor: pointer;
@@ -21,16 +21,15 @@
21
21
  <style>
22
22
  .modal-header {
23
23
  display: flex;
24
- padding: var(--Card-padding, 24px);
24
+ padding: 24px;
25
25
  align-items: center;
26
- gap: var(--spacing-2, 16px);
26
+ gap: 16px;
27
27
  align-self: stretch;
28
- border-radius: var(--Card-radius, 16px) var(--Card-radius, 16px) 0px 0px;
29
- background: var(--brand-white, #fff);
28
+ border-radius: 16px 16px 0px 0px;
29
+ background: #fff;
30
30
  }
31
31
  .modal-header-icon {
32
- color: var(--brand-danger, #dc182c);
33
- font-family: 'Haas Grotesk Display Pro', sans-serif;
32
+ color: #dc182c;
34
33
  font-size: 32px;
35
34
  font-style: normal;
36
35
  font-weight: 400;
@@ -38,12 +37,11 @@
38
37
  }
39
38
  .modal-header-title {
40
39
  flex: 1 0 0;
41
- color: var(--brand-type, #000);
40
+ color: #000;
42
41
  /* medium/4 */
43
- font-family: 'Haas Grotesk Display Pro', sans-serif;
44
42
  font-size: 18px;
45
43
  font-style: normal;
46
44
  font-weight: 500;
47
- line-height: 26px; /* 144.444% */
45
+ line-height: 26px;
48
46
  }
49
47
  </style>