@softwareone/spi-sv5-library 1.14.3 → 1.15.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 (89) hide show
  1. package/dist/components/accordion/Accordion.svelte +14 -23
  2. package/dist/components/announcement/Announcement.svelte +53 -61
  3. package/dist/components/avatar/Avatar.svelte +30 -12
  4. package/dist/components/avatar/Avatar.svelte.d.ts +2 -2
  5. package/dist/components/button/Button.svelte +41 -44
  6. package/dist/components/card/Card.svelte +4 -6
  7. package/dist/components/chips/Chips.svelte +37 -36
  8. package/dist/components/chips/Chips.svelte.d.ts +1 -1
  9. package/dist/components/confirmation/Confirmation.svelte +6 -6
  10. package/dist/components/confirmation/Confirmation.svelte.d.ts +2 -2
  11. package/dist/components/controls/attach-file/AttachFile.svelte +18 -41
  12. package/dist/components/controls/attach-file/FileManager.svelte +16 -30
  13. package/dist/components/controls/attach-file/Warnings.svelte +13 -15
  14. package/dist/components/controls/input/Input.svelte +46 -72
  15. package/dist/components/controls/input/InputIcon.svelte +13 -13
  16. package/dist/components/controls/label/Label.svelte +5 -9
  17. package/dist/components/controls/radio-group/RadioGroup.svelte +25 -39
  18. package/dist/components/controls/select/Select.svelte +49 -71
  19. package/dist/components/controls/textarea/TextArea.svelte +36 -45
  20. package/dist/components/controls/toggle/Toggle.svelte +35 -37
  21. package/dist/components/delete-confirmation/DeleteConfirmation.svelte +3 -5
  22. package/dist/components/error-page/ErrorPage.svelte +9 -18
  23. package/dist/components/footer/Footer.svelte +9 -14
  24. package/dist/components/footer/Footer.svelte.d.ts +0 -1
  25. package/dist/components/footer/FooterLogo.svelte +16 -0
  26. package/dist/components/footer/FooterLogo.svelte.d.ts +26 -0
  27. package/dist/components/form/Form.svelte +1 -1
  28. package/dist/components/header/Header.svelte +39 -45
  29. package/dist/components/header/HeaderAccount.svelte +21 -33
  30. package/dist/components/header/HeaderLoader.svelte +13 -8
  31. package/dist/components/highlight-panel/HighlightPanel.svelte +29 -34
  32. package/dist/components/home/Home.svelte +18 -36
  33. package/dist/components/link/Link.svelte +1 -1
  34. package/dist/components/menu/Menu.svelte +16 -21
  35. package/dist/components/menu/MenuItem.svelte +25 -29
  36. package/dist/components/menu/Sidebar.svelte +32 -40
  37. package/dist/components/menu/utils.d.ts +1 -1
  38. package/dist/components/menu/utils.js +6 -7
  39. package/dist/components/modal/Modal.svelte +8 -11
  40. package/dist/components/modal/ModalContent.svelte +3 -3
  41. package/dist/components/modal/ModalFooter.svelte +5 -5
  42. package/dist/components/modal/ModalHeader.svelte +6 -11
  43. package/dist/components/notification/Notification.svelte +20 -27
  44. package/dist/components/processing/Processing.svelte +9 -16
  45. package/dist/components/progress-page/ProgressPage.svelte +13 -18
  46. package/dist/components/progress-wizard/ProgressWizard.svelte +43 -54
  47. package/dist/components/search/Search.svelte +24 -29
  48. package/dist/components/spinner/Spinner.svelte +1 -1
  49. package/dist/components/switcher/Switcher.svelte +14 -23
  50. package/dist/components/table/ActionsColumn.svelte +13 -33
  51. package/dist/components/table/AdvancedFilter.svelte +39 -74
  52. package/dist/components/table/Body.svelte +9 -18
  53. package/dist/components/table/ColumnVisibilityDropdown.svelte +24 -55
  54. package/dist/components/table/Footer.svelte +2 -4
  55. package/dist/components/table/Header.svelte +23 -44
  56. package/dist/components/table/PageSize.svelte +24 -36
  57. package/dist/components/table/Pagination.svelte +49 -35
  58. package/dist/components/table/RowCheckBox.svelte +5 -12
  59. package/dist/components/table/Skeleton.svelte +16 -25
  60. package/dist/components/table/Table.svelte +50 -38
  61. package/dist/components/table/Table.svelte.d.ts +5 -1
  62. package/dist/components/table/types.d.ts +9 -1
  63. package/dist/components/table/utils.d.ts +5 -1
  64. package/dist/components/table/utils.js +8 -8
  65. package/dist/components/tabs/Tabs.svelte +16 -20
  66. package/dist/components/toast/Toast.svelte +27 -30
  67. package/dist/components/tooltip/Tooltip.svelte +15 -19
  68. package/dist/components/waffle/Waffle.svelte +9 -13
  69. package/dist/components/waffle/WaffleItems.svelte +10 -13
  70. package/dist/styles/index.css +3 -0
  71. package/dist/styles/reset.css +19 -0
  72. package/dist/styles/tokens/index.css +2 -0
  73. package/dist/styles/tokens/primitives/borders.css +17 -0
  74. package/dist/styles/tokens/primitives/colors.css +41 -0
  75. package/dist/styles/tokens/primitives/index.css +7 -0
  76. package/dist/styles/tokens/primitives/motion.css +11 -0
  77. package/dist/styles/tokens/primitives/opacity.css +6 -0
  78. package/dist/styles/tokens/primitives/shadows.css +11 -0
  79. package/dist/styles/tokens/primitives/sizing.css +19 -0
  80. package/dist/styles/tokens/primitives/typography.css +13 -0
  81. package/dist/styles/tokens/semantic/colors.css +78 -0
  82. package/dist/styles/tokens/semantic/index.css +2 -0
  83. package/dist/styles/tokens/semantic/shadows.css +9 -0
  84. package/dist/styles/utilities.css +73 -0
  85. package/dist/utils/index.d.ts +1 -0
  86. package/dist/utils/index.js +1 -0
  87. package/dist/utils/url.d.ts +3 -0
  88. package/dist/utils/url.js +15 -0
  89. package/package.json +3 -2
@@ -19,11 +19,11 @@
19
19
  };
20
20
  </script>
21
21
 
22
- <section class="feedback-container">
22
+ <section class="feedback-container spi-text-regular-2">
23
23
  <img src={FeedbackIcon} class="feedback-icon" alt="Feedback icon" />
24
24
 
25
25
  <div class="feedback-detail">
26
- <h1>{title || errorTitle[status]}</h1>
26
+ <h1 class="spi-text-bold-6">{title || errorTitle[status]}</h1>
27
27
  {#if status === 404}
28
28
  <div>
29
29
  <p>We couldn’t find the page:</p>
@@ -53,17 +53,13 @@
53
53
  margin-left: auto;
54
54
  margin-right: auto;
55
55
  width: 350px;
56
- padding: 24px;
57
- gap: 32px;
58
- border-radius: 16px;
59
- background-color: #fff;
60
- box-shadow:
61
- 0px 1px 16px rgba(107, 113, 128, 0.1),
62
- 0px 1px 3px rgba(107, 113, 128, 0.2);
56
+ padding: var(--spi-size-6);
57
+ gap: var(--spi-size-8);
58
+ border-radius: var(--spi-rounded-2xl);
59
+ background-color: var(--spi-color-surface-default);
60
+ box-shadow: var(--spi-shadow-card);
63
61
  align-items: center;
64
62
  text-align: center;
65
- font-size: 14px;
66
- line-height: 20px;
67
63
  }
68
64
 
69
65
  .feedback-icon {
@@ -74,12 +70,7 @@
74
70
  .feedback-detail {
75
71
  display: flex;
76
72
  flex-direction: column;
77
- gap: 8px;
78
- }
79
-
80
- .feedback-detail > h1 {
81
- font-size: 24px;
82
- font-weight: bold;
73
+ gap: var(--spi-size-2);
83
74
  }
84
75
 
85
76
  .feedback-detail .link {
@@ -94,6 +85,6 @@
94
85
  }
95
86
 
96
87
  .link {
97
- color: #472aff;
88
+ color: var(--spi-color-text-link);
98
89
  }
99
90
  </style>
@@ -1,20 +1,20 @@
1
1
  <script lang="ts">
2
+ import FooterLogo from './FooterLogo.svelte';
3
+
2
4
  interface Props {
3
5
  homeUrl?: string;
4
- logoUrl?: string;
5
6
  documentationUrl?: string;
6
7
  }
7
8
 
8
9
  let {
9
10
  homeUrl = '/',
10
- logoUrl = '/softwareone-logo-white.svg',
11
11
  documentationUrl = 'https://softwareone-internal.atlassian.net/wiki/spaces/ATM/pages/17961910574/Services+Portal+BackOffice'
12
12
  }: Props = $props();
13
13
  </script>
14
14
 
15
- <footer class="footer-section">
15
+ <footer class="footer-section spi-text-regular-2">
16
16
  <a href={homeUrl} title="Home">
17
- <img alt="SoftwareOne logo" class="logo-image" src={logoUrl} />
17
+ <FooterLogo />
18
18
  </a>
19
19
  <ul class="links">
20
20
  <li>
@@ -39,25 +39,20 @@
39
39
 
40
40
  <style>
41
41
  .footer-section {
42
- background-color: #25282d;
42
+ background-color: var(--spi-color-neutral-darkest);
43
43
  display: flex;
44
- gap: 50px;
44
+ gap: var(--spi-size-12);
45
45
  align-items: center;
46
46
  justify-content: center;
47
- padding: 10px;
48
- color: white;
49
- }
50
-
51
- .logo-image {
52
- width: 80px;
47
+ padding: var(--spi-size-3);
48
+ color: var(--spi-color-text-inverse);
53
49
  }
54
50
 
55
51
  .footer-section .links,
56
52
  .footer-section .legal {
57
53
  display: flex;
58
54
  flex-direction: column;
59
- gap: 3px;
60
- font-size: 14px;
55
+ gap: var(--spi-size-1);
61
56
  }
62
57
 
63
58
  .footer-section a:hover {
@@ -1,6 +1,5 @@
1
1
  interface Props {
2
2
  homeUrl?: string;
3
- logoUrl?: string;
4
3
  documentationUrl?: string;
5
4
  }
6
5
  declare const Footer: import("svelte").Component<Props, {}, "">;
@@ -0,0 +1,16 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="80" height="32" viewBox="0 0 65 24" fill="none">
2
+ <path
3
+ d="M22.6371 14.1927C21.6122 19.5775 16.8887 23.4706 11.4225 23.4706C5.12455 23.4706 0 18.3245 0 12C0 5.66061 5.12455 0.529419 11.4225 0.529419C16.9036 0.529419 21.6122 4.42256 22.6371 9.80732V1.17082H29.1282V3.82591C30.9404 1.54372 32.9604 0.529419 35.649 0.529419C40.3725 0.529419 43.2987 3.96015 43.2987 9.509V9.91173C44.1899 4.2734 48.5866 0.529419 54.3499 0.529419C60.6776 0.529419 65 5.31753 65 12.2983V13.7452H49.6115C50.072 16.9075 51.9138 18.7123 54.6766 18.7123C56.6967 18.7123 58.1524 17.7726 58.598 16.1616H64.7029C63.8414 20.547 59.8012 23.4706 54.5875 23.4706C48.7351 23.4706 44.2047 19.7117 43.2987 14.1032V22.8292H36.7036V10.1951C36.7036 7.48039 35.3668 5.97385 32.9753 5.97385C30.7324 5.97385 29.247 7.64447 29.247 10.1951V22.8292H22.6371V14.1927ZM58.5535 9.56866C58.1376 6.74949 56.5334 5.10871 54.2162 5.10871C51.8841 5.10871 50.2502 6.71966 49.7155 9.56866H58.5535Z"
4
+ fill="white"
5
+ />
6
+ <path
7
+ d="M0.88623 12.3732H1.7069C1.75786 12.6506 1.91609 12.7718 2.23792 12.7718C2.50612 12.7718 2.68312 12.6344 2.68312 12.4244C2.68312 12.2708 2.56512 12.1712 2.32911 12.1308L2.00996 12.0769C1.27779 11.953 0.958643 11.681 0.958643 11.1801C0.958643 10.6495 1.47357 10.2752 2.20306 10.2752C2.93791 10.2752 3.37774 10.5741 3.47697 11.1451H2.66435C2.6268 10.9215 2.4632 10.8003 2.19769 10.8003C1.94827 10.8003 1.76322 10.9458 1.76322 11.1424C1.76322 11.2878 1.87854 11.3686 2.14674 11.4171L2.49271 11.479C3.20073 11.6056 3.51184 11.8884 3.51184 12.4055C3.51184 12.963 3.00495 13.3373 2.24865 13.3373C1.43871 13.3373 0.942551 12.9872 0.88623 12.3732ZM3.64862 11.8157C3.64862 10.9242 4.29228 10.2752 5.18 10.2752C6.06235 10.2752 6.68456 10.9 6.68456 11.7914C6.68456 12.6937 6.04894 13.3373 5.15854 13.3373C4.26814 13.3373 3.64862 12.7125 3.64862 11.8157ZM5.81562 11.7968C5.81562 11.2609 5.56351 10.9215 5.16391 10.9215C4.76966 10.9215 4.51756 11.2663 4.51756 11.8022C4.51756 12.3516 4.7643 12.691 5.16391 12.691C5.5662 12.691 5.81562 12.3462 5.81562 11.7968ZM6.63897 10.364H7.11099V10.084C7.11099 9.43758 7.406 9.1521 8.06844 9.1521C8.17839 9.1521 8.31249 9.16287 8.38758 9.17634V9.7877C8.33931 9.785 8.33931 9.785 8.28031 9.785C8.03893 9.785 7.95848 9.85503 7.95848 10.0705V10.364H8.79524V9.46182H9.64005V10.364H10.9596L11.2653 11.7376C11.3082 11.9342 11.3511 12.1443 11.386 12.3409C11.4289 12.1362 11.4798 11.9315 11.5308 11.7403L11.8875 10.3856H12.5794L12.9415 11.7403C12.9844 11.9073 13.0354 12.1227 13.0783 12.3058C13.1292 12.0284 13.1561 11.8938 13.1909 11.7403L13.4967 10.364H14.3307L13.5154 13.2485H12.7028L12.2174 11.4009L11.7427 13.2485H10.9059L10.273 10.9673H9.64005V12.2816C9.64005 12.5294 9.72855 12.6129 9.98601 12.6129C10.0611 12.6129 10.1013 12.6102 10.1764 12.5967V13.2215C10.0343 13.2485 9.87337 13.2673 9.74464 13.2673C9.06343 13.2673 8.79524 13.0142 8.79524 12.3705V10.9673H7.95848V13.2485H7.11099V10.9673H6.63897V10.364ZM14.1725 12.5051C14.1725 11.9827 14.5104 11.7187 15.3767 11.5706C15.8433 11.4925 16.0123 11.3848 16.0123 11.1639C16.0123 10.9431 15.8487 10.8084 15.5778 10.8084C15.2909 10.8084 15.1273 10.9404 15.1085 11.1909H14.3281C14.3897 10.5984 14.8323 10.2752 15.5859 10.2752C16.4173 10.2752 16.8276 10.6765 16.8276 11.4925V12.6371C16.8276 12.9926 16.8464 13.095 16.9403 13.2485H16.1249C16.0847 13.1515 16.0579 13.0411 16.0472 12.893C15.8246 13.1865 15.5376 13.3212 15.1407 13.3212C14.5399 13.3212 14.1725 13.0115 14.1725 12.5051ZM15.5376 12.0069C15.1353 12.0877 14.9851 12.2008 14.9851 12.4244C14.9851 12.6506 15.13 12.7799 15.3874 12.7799C15.7763 12.7799 16.015 12.5321 16.015 12.1362V11.8669C15.8916 11.9261 15.7897 11.9557 15.5376 12.0069ZM17.2487 10.364H18.0881V10.8057C18.2705 10.4745 18.5092 10.3156 18.831 10.3156C18.8686 10.3156 18.9463 10.3236 19.0107 10.3371V11.0427C18.9571 11.0293 18.9007 11.0239 18.7827 11.0239C18.3697 11.0239 18.1042 11.2905 18.1042 11.7053V13.2485H17.2487V10.364ZM18.9839 11.8157C18.9839 10.8973 19.5846 10.2752 20.4724 10.2752C21.3172 10.2752 21.8857 10.9108 21.8857 11.8615V12.0096H19.8341C19.8904 12.489 20.1371 12.761 20.5153 12.761C20.7995 12.761 20.9846 12.6263 21.0463 12.3813H21.8455C21.7302 12.9549 21.1938 13.3373 20.5045 13.3373C19.6007 13.3373 18.9839 12.7206 18.9839 11.8157ZM21.0436 11.506C20.99 11.067 20.7861 10.8327 20.4563 10.8327C20.1264 10.8327 19.9199 11.0643 19.8501 11.506H21.0436Z"
8
+ fill="black"
9
+ />
10
+ </svg>
11
+
12
+ <style>
13
+ svg {
14
+ display: block;
15
+ }
16
+ </style>
@@ -0,0 +1,26 @@
1
+ export default FooterLogo;
2
+ type FooterLogo = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const FooterLogo: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ 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> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
@@ -12,8 +12,8 @@
12
12
 
13
13
  import { addToast, Spinner } from '../../index.js';
14
14
  import { getFormContext } from './context.js';
15
- import { isEqual } from './utils.js';
16
15
  import type { FormError } from './types.js';
16
+ import { isEqual } from './utils.js';
17
17
 
18
18
  type Schema = z.infer<typeof schema>;
19
19
  type FormEncodingType = 'application/x-www-form-urlencoded' | 'multipart/form-data';
@@ -92,7 +92,7 @@
92
92
  aria-label="Waffle Component"
93
93
  aria-expanded={showWaffle}
94
94
  >
95
- <span class="material-icons icon-span">apps</span>
95
+ <span class="material-icons icon-span spi-text-regular-6">apps</span>
96
96
  </button>
97
97
  <Waffle items={waffleItems} bind:showWaffle />
98
98
  {/if}
@@ -104,7 +104,7 @@
104
104
  aria-label="menu button"
105
105
  aria-expanded={showMenu}
106
106
  >
107
- <span class="material-icons icon-span menu-icon">menu</span>
107
+ <span class="material-icons icon-span menu-icon spi-text-regular-6">menu</span>
108
108
  </button>
109
109
  <Menu {menuItems} bind:showMenu />
110
110
  {/if}
@@ -112,7 +112,7 @@
112
112
  <HeaderLogo />
113
113
  </a>
114
114
  </div>
115
- <h2 class="header-title">
115
+ <h2 class="header-title spi-text-medium-6">
116
116
  {title}
117
117
  </h2>
118
118
  </nav>
@@ -126,10 +126,12 @@
126
126
  aria-label="Announcement"
127
127
  aria-expanded={showAnnouncement}
128
128
  >
129
- <span class="material-icons-outlined icon-span menu-icon">notifications</span>
129
+ <span class="material-icons-outlined icon-span menu-icon spi-text-regular-6"
130
+ >notifications</span
131
+ >
130
132
  {#if unreadCount > 0}
131
133
  <div class="notification-badge">
132
- <span class="badge-count">{unreadCount}</span>
134
+ <span class="badge-count spi-text-medium-1">{unreadCount}</span>
133
135
  </div>
134
136
  {/if}
135
137
  </button>
@@ -144,66 +146,61 @@
144
146
  </header>
145
147
 
146
148
  <style>
149
+ .header-container {
150
+ display: flex;
151
+ gap: var(--spi-size-6);
152
+ justify-content: space-between;
153
+ align-items: center;
154
+ padding: var(--spi-size-5) var(--spi-size-4);
155
+ background: var(--spi-color-surface-default);
156
+ box-shadow: var(--spi-shadow-card);
157
+ position: relative;
158
+ z-index: 50;
159
+ }
160
+
161
+ .header-section {
162
+ display: flex;
163
+ align-items: center;
164
+ gap: var(--spi-size-8);
165
+ }
166
+
147
167
  .header-button {
148
168
  position: relative;
149
169
  display: flex;
150
170
  justify-content: center;
151
171
  align-items: center;
152
- border-radius: 50%;
172
+ border-radius: var(--spi-rounded-full);
153
173
  background: transparent;
154
174
  z-index: 40;
155
175
  cursor: pointer;
156
176
  border: none;
157
- width: 40px;
158
- height: 40px;
159
- transition: background-color 0.2s ease-in-out;
160
- padding: 8px;
177
+ width: var(--spi-size-10);
178
+ height: var(--spi-size-10);
179
+ transition: background-color var(--spi-duration-normal) var(--spi-ease-in-out);
180
+ padding: var(--spi-size-2);
161
181
  }
162
182
 
163
183
  .header-button:hover {
164
- background: #e0e5e8;
184
+ background: var(--spi-color-surface-muted);
165
185
  }
166
186
 
167
187
  .header-button.active {
168
- background: #fff;
169
- color: #374151;
188
+ background: var(--spi-color-surface-default);
189
+ color: var(--spi-color-text-secondary);
170
190
  }
171
191
 
172
192
  .icon-span {
173
- font-size: 24px;
174
- color: #6b7180;
175
- }
176
-
177
- .header-container {
178
- display: flex;
179
- gap: 24px;
180
- justify-content: space-between;
181
- align-items: center;
182
- padding: 20px 16px;
183
- background: #fff;
184
- box-shadow:
185
- 0 1px 3px 0 rgba(107, 113, 128, 0.2),
186
- 0 1px 16px 0 rgba(107, 113, 128, 0.1);
187
- position: relative;
188
- z-index: 50;
189
- }
190
-
191
- .header-section {
192
- display: flex;
193
- align-items: center;
194
- gap: 32px;
193
+ color: var(--spi-color-text-muted);
195
194
  }
196
195
 
197
196
  .header-buttons-container {
198
197
  display: flex;
199
198
  align-items: center;
200
- gap: 12px;
199
+ gap: var(--spi-size-3);
201
200
  }
202
201
 
203
202
  .header-title {
204
- color: #000;
205
- font-size: 24px;
206
- font-weight: 500;
203
+ color: var(--spi-color-text-primary);
207
204
  cursor: default;
208
205
  }
209
206
 
@@ -214,16 +211,13 @@
214
211
  transform: translate(5px, 2px);
215
212
  display: flex;
216
213
  justify-content: center;
217
- background-color: #472aff;
218
- border-radius: 4px;
214
+ background-color: var(--spi-color-primary-base);
215
+ border-radius: var(--spi-rounded-sm);
219
216
  min-width: 19px;
220
217
  padding: 0 3px;
221
218
  }
222
219
 
223
220
  .badge-count {
224
- color: #ffffff;
225
- font-weight: 500;
226
- font-size: 12px;
227
- line-height: 16px;
221
+ color: var(--spi-color-text-inverse);
228
222
  }
229
223
  </style>
@@ -35,8 +35,8 @@
35
35
  {#snippet profile()}
36
36
  <Avatar text={userName} />
37
37
  <div class="account-info">
38
- <p class="account-name">{accountName}</p>
39
- <p class="account-more-name">{accountDescription}</p>
38
+ <p class="account-name spi-text-medium-2">{accountName}</p>
39
+ <p class="account-more-name spi-text-regular-1">{accountDescription}</p>
40
40
  </div>
41
41
  {/snippet}
42
42
 
@@ -70,7 +70,7 @@
70
70
  {#each profileMenuItems as item, index (index)}
71
71
  <li>
72
72
  <button
73
- class="account-menu-item"
73
+ class="account-menu-item spi-text-regular-2"
74
74
  type="button"
75
75
  onclick={() => {
76
76
  onClickProfileItem(item.url);
@@ -100,21 +100,21 @@
100
100
  display: flex;
101
101
  width: 256px;
102
102
  align-items: center;
103
- padding: 8px;
104
- gap: 16px;
103
+ padding: var(--spi-size-2);
104
+ gap: var(--spi-size-4);
105
105
  }
106
106
 
107
107
  .account-button {
108
- border-radius: 6px;
108
+ border-radius: var(--spi-rounded-md);
109
109
  border: none;
110
110
  height: 66px;
111
111
  background: transparent;
112
112
  cursor: pointer;
113
- transition: background-color 0.2s ease-in-out;
113
+ transition: background-color var(--spi-duration-normal) var(--spi-ease-in-out);
114
114
  }
115
115
 
116
116
  .account-button:hover {
117
- background: #e0e5e8;
117
+ background: var(--spi-color-surface-muted);
118
118
  }
119
119
 
120
120
  .account-info {
@@ -125,23 +125,14 @@
125
125
  word-break: break-words;
126
126
  }
127
127
 
128
- .account-name {
129
- font-weight: 500;
130
- font-size: 14px;
131
- line-height: 20px;
132
- }
133
-
134
128
  .account-more-name {
135
- font-weight: 400;
136
- font-size: 12px;
137
- color: #6b7280;
138
- line-height: normal;
129
+ color: var(--spi-color-text-muted);
139
130
  }
140
131
 
141
132
  .account-backdrop {
142
133
  position: fixed;
143
134
  inset: 0;
144
- background: rgba(243, 244, 246, 0.5);
135
+ background: var(--spi-color-backdrop);
145
136
  cursor: pointer;
146
137
  z-index: 40;
147
138
  }
@@ -152,35 +143,32 @@
152
143
  flex-direction: column;
153
144
  width: 250px;
154
145
  top: 70px;
155
- gap: 8px;
156
- padding: 16px;
157
- background: white;
158
- border: 1px solid #f3f4f6;
159
- border-radius: 0 0 10px 10px;
160
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
146
+ gap: var(--spi-size-2);
147
+ padding: var(--spi-size-4);
148
+ background: var(--spi-color-surface-default);
149
+ border: var(--spi-border-1) solid var(--spi-color-border-default);
150
+ border-radius: 0 0 var(--spi-rounded-xl) var(--spi-rounded-xl);
151
+ box-shadow: var(--spi-shadow-dropdown);
161
152
  z-index: 40;
162
153
  }
163
154
 
164
155
  .account-menu-item {
165
156
  width: 100%;
166
- font-weight: 400;
167
- font-size: 14px;
168
157
  text-align: left;
169
- line-height: 20px;
170
- padding: 8px;
171
- border-radius: 8px;
158
+ padding: var(--spi-size-2);
159
+ border-radius: var(--spi-rounded-lg);
172
160
  border: none;
173
161
  background: transparent;
174
162
  cursor: pointer;
175
- transition: background-color 0.2s ease;
163
+ transition: background-color var(--spi-duration-normal) var(--spi-ease-default);
176
164
  }
177
165
 
178
166
  .account-menu-item:hover {
179
- background: #f4f6f8;
167
+ background: var(--spi-color-surface-subtle);
180
168
  }
181
169
 
182
170
  .account-menu-item:focus,
183
171
  .account-menu-item:focus-visible {
184
- background: #eaecff;
172
+ background: var(--spi-color-primary-lighter);
185
173
  }
186
174
  </style>
@@ -5,9 +5,9 @@
5
5
  </script>
6
6
 
7
7
  {#if navigating.to}
8
- <!--
9
- Loading animation for next page since svelte doesn't show any indicator.
10
- - delay 100ms because most page loads are instant, and we don't want to flash
8
+ <!--
9
+ Loading animation for next page since svelte doesn't show any indicator.
10
+ - delay 100ms because most page loads are instant, and we don't want to flash
11
11
  - long 12s duration because we don't actually know how long it will take
12
12
  - exponential easing so fast loads (>100ms and <1s) still see enough progress,
13
13
  while slow networks see it moving for a full 12 seconds
@@ -21,11 +21,16 @@
21
21
  <style>
22
22
  .navigation-loader {
23
23
  position: fixed;
24
- top: 0px;
25
- right: 0px;
26
- left: 0px;
27
- height: 3px;
24
+ top: 0;
25
+ right: 0;
26
+ left: 0;
27
+ height: var(--spi-border-3);
28
28
  z-index: 9999;
29
- background: linear-gradient(90deg, #392d9c, #472aff, #00c9cd);
29
+ background: linear-gradient(
30
+ 90deg,
31
+ var(--spi-color-primary-dark),
32
+ var(--spi-color-primary-base),
33
+ #00c9cd
34
+ );
30
35
  }
31
36
  </style>
@@ -17,28 +17,33 @@
17
17
  {#each columns as column, index (index)}
18
18
  <div class="panel-element">
19
19
  {#if column.type === ColumnType.Text}
20
- <h2>{column.label}</h2>
21
- <p>{column.value}</p>
20
+ <h2 class="spi-text-medium-2">{column.label}</h2>
21
+ <p class="spi-text-regular-2">{column.value}</p>
22
22
  {#if column.description}
23
- <p class="text-description">{column.description}</p>
23
+ <p class="text-description spi-text-regular-1">{column.description}</p>
24
24
  {/if}
25
25
  {/if}
26
26
 
27
27
  {#if column.type === ColumnType.Status}
28
- <h2>{column.label}</h2>
28
+ <h2 class="spi-text-medium-2">{column.label}</h2>
29
29
  <Chips text={column.value} type={column.chipType} />
30
30
  {/if}
31
31
 
32
32
  {#if column.type === ColumnType.Link}
33
- <h2>{column.label}</h2>
34
- <a rel="noreferrer" class="link" target="_blank" href={column.url}>
33
+ <h2 class="spi-text-medium-2">{column.label}</h2>
34
+ <a
35
+ rel="noreferrer"
36
+ class="link spi-text-regular-2"
37
+ target="_blank"
38
+ href={column.url}
39
+ >
35
40
  {column.value}
36
41
  </a>
37
42
  {/if}
38
43
 
39
44
  {#if column.type === ColumnType.Image}
40
45
  {@const { content, iconType } = column}
41
- <h2>{column.label}</h2>
46
+ <h2 class="spi-text-medium-2">{column.label}</h2>
42
47
 
43
48
  <figure class:text-right={column.alignTextRight}>
44
49
  {#if iconType === ImageType.Default}
@@ -52,10 +57,12 @@
52
57
  {#if column.value || column.description}
53
58
  <div>
54
59
  {#if column.value}
55
- <p>{column.value}</p>
60
+ <p class="spi-text-regular-2">{column.value}</p>
56
61
  {/if}
57
62
  {#if column.description}
58
- <p class="text-description">{column.description}</p>
63
+ <p class="text-description spi-text-regular-1">
64
+ {column.description}
65
+ </p>
59
66
  {/if}
60
67
  </div>
61
68
  {/if}
@@ -63,7 +70,7 @@
63
70
  {/if}
64
71
 
65
72
  {#if column.type === ColumnType.Custom}
66
- <h2>{column.label}</h2>
73
+ <h2 class="spi-text-medium-2">{column.label}</h2>
67
74
  {@render column.snippet()}
68
75
  {/if}
69
76
  </div>
@@ -78,25 +85,13 @@
78
85
  </div>
79
86
 
80
87
  <style>
81
- h2,
82
- p,
83
- a {
84
- font-size: 14px;
85
- line-height: 20px;
86
- }
87
-
88
- h2 {
89
- font-weight: 500;
90
- }
91
-
92
88
  .text-description {
93
- font-size: 12px;
94
- color: #6b7180;
89
+ color: var(--spi-color-text-muted);
95
90
  text-align: left;
96
91
  }
97
92
 
98
93
  .link {
99
- color: #472aff;
94
+ color: var(--spi-color-text-link);
100
95
  }
101
96
 
102
97
  .link:hover {
@@ -106,47 +101,47 @@
106
101
  .highlight-panel {
107
102
  display: grid;
108
103
  grid-template-columns: 1fr auto;
109
- gap: 48px;
104
+ gap: var(--spi-size-12);
110
105
  }
111
106
 
112
107
  .panel-section-flex {
113
108
  display: flex;
114
109
  flex-wrap: wrap;
115
- gap: 48px;
110
+ gap: var(--spi-size-12);
116
111
  }
117
112
 
118
113
  .panel-section-flex-column {
119
114
  display: flex;
120
115
  flex-direction: column;
121
- gap: 24px;
116
+ gap: var(--spi-size-6);
122
117
  }
123
118
 
124
119
  .panel-section-grid {
125
120
  display: grid;
126
121
  grid-template-columns: repeat(auto-fit, minmax(50px, auto));
127
- grid-gap: 48px;
122
+ grid-gap: var(--spi-size-12);
128
123
  }
129
124
 
130
125
  .buttons-section {
131
126
  display: flex;
132
- gap: 12px;
127
+ gap: var(--spi-size-3);
133
128
  align-items: flex-start;
134
129
  }
135
130
 
136
131
  .panel-element h2 {
137
- margin-bottom: 8px;
132
+ margin-bottom: var(--spi-size-2);
138
133
  }
139
134
 
140
135
  .panel-element img {
141
- width: 40px;
142
- height: 40px;
143
- border-radius: 9999px;
136
+ width: var(--spi-size-10);
137
+ height: var(--spi-size-10);
138
+ border-radius: var(--spi-rounded-full);
144
139
  }
145
140
 
146
141
  .panel-element > figure {
147
142
  display: flex;
148
143
  flex-direction: column;
149
- gap: 8px;
144
+ gap: var(--spi-size-2);
150
145
  }
151
146
 
152
147
  .panel-element > figure.text-right {