@poirazis/supercomponents-shared 1.2.16 → 1.2.19

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 (35) hide show
  1. package/dist/index.js +17785 -22317
  2. package/dist/index.umd.cjs +19 -19
  3. package/package.json +13 -13
  4. package/src/index.js +1 -0
  5. package/src/index.ts +1 -0
  6. package/src/lib/SuperButton/SuperButton.svelte +90 -43
  7. package/src/lib/SuperField/SuperField.svelte +2 -3
  8. package/src/lib/SuperForm/InnerForm.svelte +7 -8
  9. package/src/lib/SuperTable/SuperTable.css +13 -6
  10. package/src/lib/SuperTable/SuperTable.svelte +53 -38
  11. package/src/lib/SuperTable/constants.js +1 -1
  12. package/src/lib/SuperTable/controls/RowButtonsColumn.svelte +34 -18
  13. package/src/lib/SuperTable/controls/SelectionColumn.svelte +6 -5
  14. package/src/lib/SuperTableCells/CellBoolean.svelte +52 -45
  15. package/src/lib/SuperTableCells/CellCommon.css +0 -5
  16. package/src/lib/SuperTableCells/CellDatetime.svelte +268 -120
  17. package/src/lib/SuperTableCells/CellLink.svelte +16 -7
  18. package/src/lib/SuperTableCells/CellLinkPickerSelect.svelte +28 -24
  19. package/src/lib/SuperTableCells/CellLinkPickerTree.svelte +22 -20
  20. package/src/lib/SuperTableCells/CellNumber.svelte +55 -53
  21. package/src/lib/SuperTableCells/CellOptions.svelte +60 -33
  22. package/src/lib/SuperTableCells/CellOptionsAdvanced.svelte +131 -129
  23. package/src/lib/SuperTableCells/CellSQLLink.svelte +35 -33
  24. package/src/lib/SuperTableCells/CellSQLLinkPicker.svelte +4 -7
  25. package/src/lib/SuperTableCells/CellString.svelte +49 -47
  26. package/src/lib/SuperTableCells/CellStringMask.svelte +41 -40
  27. package/src/lib/SuperTableColumn/SuperTableColumn.svelte +2 -0
  28. package/src/lib/SuperTableColumn/parts/SuperColumnBody.svelte +1 -0
  29. package/src/lib/SuperTableColumn/parts/SuperColumnHeader.svelte +44 -42
  30. package/src/lib/SuperTableColumn/parts/SuperColumnRow.svelte +1 -1
  31. package/src/lib/SuperTabs/SuperTabs.svelte +33 -17
  32. package/src/lib/UI/elements/Checkbox.svelte +69 -11
  33. package/src/lib/UI/elements/Switch.svelte +162 -0
  34. package/src/lib/UI/elements/Textbox.svelte +210 -0
  35. package/src/lib/UI/elements/Tooltip.svelte +15 -43
@@ -108,9 +108,7 @@
108
108
  $: pills = cellOptions.relViewMode == "pills";
109
109
  $: ownId = ownId || cellOptions?.ownId;
110
110
 
111
- $: if (!isLoading) {
112
- localValue = enrichValue(value);
113
- }
111
+ $: localValue = enrichValue(value);
114
112
 
115
113
  $: inEdit = $cellState == "Editing";
116
114
  $: isDirty = inEdit && originalValue != JSON.stringify(localValue);
@@ -246,36 +244,38 @@
246
244
  {/if}
247
245
 
248
246
  <div class="value" class:placeholder={localValue?.length < 1}>
249
- {#if localValue?.length < 1}
250
- <span> {placeholder} </span>
251
- {:else if pills}
252
- <div
253
- class="items"
254
- class:pills
255
- class:withCount={localValue.length > 5}
256
- class:inEdit
257
- >
258
- {#each localValue as val, idx}
259
- {#if idx < 5}
260
- <div class="item">
261
- <span>{val.primaryDisplay}</span>
262
- </div>
247
+ {#key localValue}
248
+ {#if localValue?.length < 1}
249
+ <span> {placeholder} </span>
250
+ {:else if pills}
251
+ <div
252
+ class="items"
253
+ class:pills
254
+ class:withCount={localValue.length > 5}
255
+ class:inEdit
256
+ >
257
+ {#each localValue as val, idx}
258
+ {#if idx < 5}
259
+ <div class="item">
260
+ <span>{val.primaryDisplay}</span>
261
+ </div>
262
+ {/if}
263
+ {/each}
264
+ {#if localValue.length > 5}
265
+ <span class="count">
266
+ (+ {localValue.length - 5})
267
+ </span>
263
268
  {/if}
264
- {/each}
265
- {#if localValue.length > 5}
266
- <span class="count">
267
- (+ {localValue.length - 5})
268
- </span>
269
- {/if}
270
- </div>
271
- {:else}
272
- <span>
273
- {#if cellOptions.role == "formInput" && localValue.length > 1}
274
- ({localValue.length})
275
- {/if}
276
- {localValue.map((v) => v.primaryDisplay).join(", ")}
277
- </span>
278
- {/if}
269
+ </div>
270
+ {:else}
271
+ <span>
272
+ {#if cellOptions.role == "formInput" && localValue.length > 1}
273
+ ({localValue.length})
274
+ {/if}
275
+ {localValue.map((v) => v.primaryDisplay).join(", ")}
276
+ </span>
277
+ {/if}
278
+ {/key}
279
279
  </div>
280
280
  {#if !readonly && (cellOptions.role == "formInput" || inEdit)}
281
281
  <i class="ph ph-caret-down control-icon"></i>
@@ -313,7 +313,9 @@
313
313
  bind:api={pickerApi}
314
314
  on:change={handleChange}
315
315
  on:focusout={cellState.popupfocusout}
316
- />
316
+ >
317
+ <slot />
318
+ </CellSQLLinkPicker>
317
319
  {/if}
318
320
  </SuperPopover>
319
321
  {/if}
@@ -343,12 +343,13 @@
343
343
  on:mouseleave={() => (focusIdx = -1)}
344
344
  on:mousedown|preventDefault|stopPropagation={() => selectRow(row)}
345
345
  >
346
+ <slot />
346
347
  <span>{row.primaryDisplay || row[primaryDisplay]}</span>
347
348
  <i class="ri-check-line"></i>
348
349
  </div>
349
350
  {/each}
350
351
 
351
- {#if $optionsFetch && $optionsFetch.loaded}
352
+ {#if $optionsFetch}
352
353
  <!-- Unselected rows -->
353
354
  {#key localValue.length}
354
355
  {#each $optionsFetch.rows as row, idx (row[relatedField])}
@@ -361,6 +362,7 @@
361
362
  on:mouseleave={() => (focusIdx = -1)}
362
363
  on:mousedown|preventDefault={() => selectRow(row)}
363
364
  >
365
+ <slot />
364
366
  <span>{row.primaryDisplay || row[primaryDisplay]}</span>
365
367
  <i class="ri-check-line"></i>
366
368
  </div>
@@ -370,14 +372,9 @@
370
372
  {#if $optionsFetch?.loading}
371
373
  <div class="option loading">
372
374
  <i class="ri-loader-2-line rotating"></i>
373
- Loading more...
375
+ Loading...
374
376
  </div>
375
377
  {/if}
376
- {:else if $optionsFetch?.loading && !$optionsFetch.loaded}
377
- <div class="option loading">
378
- <i class="ri-loader-2-line rotating"></i>
379
- Loading...
380
- </div>
381
378
  {:else}
382
379
  <div class="option">No Results Found</div>
383
380
  {/if}
@@ -38,7 +38,6 @@
38
38
  $: ({
39
39
  controlType,
40
40
  role,
41
- disabled,
42
41
  readonly,
43
42
  error: optionError,
44
43
  icon: optionIcon,
@@ -60,6 +59,7 @@
60
59
  : (value ?? undefined);
61
60
  $: placeholder = placeholderText ?? "";
62
61
  $: textarea = controlType === "textarea";
62
+ $: disabled = cellOptions?.disabled;
63
63
 
64
64
  // Reset when value changes externally
65
65
  $: cellState.reset(value);
@@ -201,54 +201,56 @@
201
201
  style:background
202
202
  on:focusin={cellState.focus}
203
203
  >
204
- {#if icon && !textarea}
205
- <i class={icon + " field-icon"} class:with-error={error}></i>
206
- {/if}
207
- {#if inEdit}
208
- {#if textarea}
209
- <textarea
210
- tabindex="0"
211
- class:placeholder={!value && !formattedValue && !localValue}
212
- placeholder={cellOptions?.placeholder ?? ""}
213
- value={localValue ?? ""}
214
- on:input={cellState.debounce}
215
- on:focusout={cellState.focusout}
216
- on:keydown={cellState.handleKeyboard}
217
- use:focus
218
- ></textarea>
204
+ {#key inEdit}
205
+ {#if icon && !textarea}
206
+ <i class={icon + " field-icon"} class:with-error={error}></i>
207
+ {/if}
208
+ {#if inEdit}
209
+ {#if textarea}
210
+ <textarea
211
+ tabindex="0"
212
+ class:placeholder={!value && !formattedValue && !localValue}
213
+ placeholder={cellOptions?.placeholder ?? ""}
214
+ value={localValue ?? ""}
215
+ on:input={cellState.debounce}
216
+ on:focusout={cellState.focusout}
217
+ on:keydown={cellState.handleKeyboard}
218
+ use:focus
219
+ ></textarea>
220
+ {:else}
221
+ <input
222
+ tabindex="0"
223
+ class="editor"
224
+ class:placeholder={!value && !formattedValue && !localValue}
225
+ value={localValue ?? ""}
226
+ placeholder={cellOptions?.placeholder ?? ""}
227
+ style:text-align={cellOptions.align == "center"
228
+ ? "center"
229
+ : cellOptions.align == "flex-end"
230
+ ? "right"
231
+ : "left"}
232
+ on:input={cellState.debounce}
233
+ on:focusout={cellState.focusout}
234
+ on:keydown={cellState.handleKeyboard}
235
+ use:focus
236
+ />
237
+ <i
238
+ class="ri-close-line clear-icon"
239
+ class:visible={localValue && cellOptions?.clearIcon !== false}
240
+ on:mousedown|self|preventDefault={cellState.clear}
241
+ ></i>
242
+ {/if}
219
243
  {:else}
220
- <input
221
- tabindex="0"
222
- class="editor"
223
- class:placeholder={!value && !formattedValue && !localValue}
224
- value={localValue ?? ""}
225
- placeholder={cellOptions?.placeholder ?? ""}
226
- style:text-align={cellOptions.align == "center"
227
- ? "center"
228
- : cellOptions.align == "flex-end"
229
- ? "right"
230
- : "left"}
231
- on:input={cellState.debounce}
232
- on:focusout={cellState.focusout}
233
- on:keydown={cellState.handleKeyboard}
234
- use:focus
235
- />
236
- <i
237
- class="ri-close-line clear-icon"
238
- class:visible={localValue && cellOptions?.clearIcon !== false}
239
- on:mousedown|self|preventDefault={cellState.clear}
240
- ></i>
244
+ <div
245
+ class="value"
246
+ class:textarea
247
+ class:placeholder={!value && !formattedValue}
248
+ style:justify-content={cellOptions.align}
249
+ >
250
+ <span>{formattedValue || value || placeholder}</span>
251
+ </div>
241
252
  {/if}
242
- {:else}
243
- <div
244
- class="value"
245
- class:textarea
246
- class:placeholder={!value && !formattedValue}
247
- style:justify-content={cellOptions.align}
248
- >
249
- <span>{formattedValue || value || placeholder}</span>
250
- </div>
251
- {/if}
253
+ {/key}
252
254
  </div>
253
255
 
254
256
  <style>
@@ -354,49 +354,50 @@
354
354
  : cellOptions.background}
355
355
  style:font-weight={cellOptions.fontWeight}
356
356
  >
357
- {#if icon}
358
- <i class={icon + " field-icon"} class:with-error={error}></i>
359
- {/if}
357
+ {#key $cellState}
358
+ {#if icon}
359
+ <i class={icon + " field-icon"} class:with-error={error}></i>
360
+ {/if}
360
361
 
361
- {#if inEdit}
362
- <input
363
- bind:this={inputElement}
364
- tabindex="0"
365
- class="editor"
366
- {placeholder}
367
- style:color={!isComplete
368
- ? "var(--spectrum-global-color-gray-700)"
369
- : cellOptions.color}
370
- style:text-align={cellOptions.align == "center"
371
- ? "center"
372
- : cellOptions.align == "flex-end"
373
- ? "right"
374
- : "left"}
375
- style:padding-right={cellOptions.align != "flex-start"
376
- ? "2rem"
377
- : "0.75rem"}
378
- on:focusout={cellState.focusout}
379
- on:keydown={cellState.handleKeyboard}
380
- use:focus
381
- use:initIMask={mask}
382
- />
383
- {#if localValue && cellOptions?.clearIcon !== false}
362
+ {#if inEdit}
363
+ <input
364
+ bind:this={inputElement}
365
+ tabindex="0"
366
+ class="editor"
367
+ {placeholder}
368
+ style:color={!isComplete
369
+ ? "var(--spectrum-global-color-gray-700)"
370
+ : cellOptions.color}
371
+ style:text-align={cellOptions.align == "center"
372
+ ? "center"
373
+ : cellOptions.align == "flex-end"
374
+ ? "right"
375
+ : "left"}
376
+ style:padding-right={cellOptions.align != "flex-start"
377
+ ? "2rem"
378
+ : "0.75rem"}
379
+ on:focusout={cellState.focusout}
380
+ on:keydown={cellState.handleKeyboard}
381
+ use:focus
382
+ use:initIMask={mask}
383
+ />
384
384
  <i
385
- class="ri-close-line clearIcon"
385
+ class="ri-close-line clear-icon"
386
+ class:visible={localValue && cellOptions?.clearIcon !== false}
386
387
  on:mousedown|self|preventDefault={cellState.clear}
387
388
  ></i>
389
+ {:else}
390
+ <div
391
+ class="value"
392
+ tabindex={cellOptions.readonly || cellOptions.disabled ? "-1" : "0"}
393
+ class:placeholder={!value}
394
+ style:justify-content={cellOptions.align}
395
+ on:focusin={cellState.focus}
396
+ >
397
+ <span>
398
+ {displayValue || placeholder}
399
+ </span>
400
+ </div>
388
401
  {/if}
389
- {:else}
390
- <div
391
- class="value"
392
- tabindex={cellOptions.readonly || cellOptions.disabled ? "-1" : "0"}
393
- class:placeholder={!value}
394
- style:justify-content={cellOptions.align}
395
- on:focusin={cellState.focus}
396
- >
397
- <span>
398
- {displayValue || placeholder}
399
- </span>
400
- </div>
401
- {/if}
402
+ {/key}
402
403
  </div>
@@ -192,6 +192,7 @@
192
192
  startResizing(e) {
193
193
  e.stopPropagation();
194
194
  e.preventDefault();
195
+ stbAPI.startResize();
195
196
  resizing = true;
196
197
  startPoint = e.clientX;
197
198
  startWidth = viewport.clientWidth;
@@ -203,6 +204,7 @@
203
204
  stopResizing(e) {
204
205
  e.preventDefault();
205
206
  e.stopPropagation();
207
+ stbAPI.endResize();
206
208
  resizing = false;
207
209
  startPoint = undefined;
208
210
  width = $lockWidth;
@@ -32,6 +32,7 @@
32
32
  class:inserting
33
33
  class:filtered={$columnState == "Filtered"}
34
34
  class:is-editing={editing}
35
+ class:is-last={isLast}
35
36
  >
36
37
  {#each $stbVisibleRows as index (index)}
37
38
  <SuperColumnRow
@@ -108,51 +108,53 @@
108
108
  on:mouseenter={() => (hovered = true)}
109
109
  on:mouseleave={() => (hovered = false)}
110
110
  >
111
- {#if $columnState == "Entering" || $columnState == "Filtered"}
112
- {#if $columnOptions.canFilter == "advanced"}
113
- <i
114
- class="ri-filter-3-line"
115
- tabindex="0"
116
- style="align-self: center; font-size: 14px;"
117
- on:click|preventDefault={() =>
118
- (showFilteringOptions = !showFilteringOptions)}
119
- ></i>
120
- {/if}
121
- <svelte:component
122
- this={$columnOptions.headerComponent}
123
- cellOptions={{
124
- ...$cellOptions,
125
- placeholder: filterOperator,
126
- disabled: filterOperator == "empty" || filterOperator == "notEmpty",
127
- }}
128
- value={filterValue}
129
- fieldSchema={$columnOptions.schema}
130
- multi={filterOperator == "containsAny" || filterOperator == "oneOf"}
131
- on:change={handleValueChange}
132
- on:focusout={handleBlur}
133
- />
134
- {:else}
135
- <div
136
- class="headerLabel"
137
- style:justify-content={$columnOptions?.headerAlign}
138
- on:click={columnState.headerClicked}
139
- >
140
- <div class="innerText" class:sortable={$columnOptions.canSort}>
141
- {$columnOptions.displayName ?? $columnOptions.name}
142
- </div>
143
- </div>
144
- {/if}
145
-
146
- {#if $columnOptions.canSort && $columnState == "Idle"}
147
- <span class="placeholder" on:click={columnState.sort}>
148
- {#if hovered || sorted}
111
+ {#key $columnState}
112
+ {#if $columnState == "Entering" || $columnState == "Filtered"}
113
+ {#if $columnOptions.canFilter == "advanced"}
149
114
  <i
150
- class={sorted == "ascending" ? "ri-sort-asc" : "ri-sort-desc"}
151
- class:sorted
115
+ class="ri-filter-3-line"
116
+ tabindex="0"
117
+ style="align-self: center; font-size: 14px;"
118
+ on:click|preventDefault={() =>
119
+ (showFilteringOptions = !showFilteringOptions)}
152
120
  ></i>
153
121
  {/if}
154
- </span>
155
- {/if}
122
+ <svelte:component
123
+ this={$columnOptions.headerComponent}
124
+ cellOptions={{
125
+ ...$cellOptions,
126
+ placeholder: filterOperator,
127
+ disabled: filterOperator == "empty" || filterOperator == "notEmpty",
128
+ }}
129
+ value={filterValue}
130
+ fieldSchema={$columnOptions.schema}
131
+ multi={filterOperator == "containsAny" || filterOperator == "oneOf"}
132
+ on:change={handleValueChange}
133
+ on:focusout={handleBlur}
134
+ />
135
+ {:else}
136
+ <div
137
+ class="headerLabel"
138
+ style:justify-content={$columnOptions?.headerAlign}
139
+ on:click={columnState.headerClicked}
140
+ >
141
+ <div class="innerText" class:sortable={$columnOptions.canSort}>
142
+ {$columnOptions.displayName ?? $columnOptions.name}
143
+ </div>
144
+ </div>
145
+ {/if}
146
+
147
+ {#if $columnOptions.canSort && $columnState == "Idle"}
148
+ <span class="placeholder" on:click={columnState.sort}>
149
+ {#if hovered || sorted}
150
+ <i
151
+ class={sorted == "ascending" ? "ri-sort-asc" : "ri-sort-desc"}
152
+ class:sorted
153
+ ></i>
154
+ {/if}
155
+ </span>
156
+ {/if}
157
+ {/key}
156
158
  </div>
157
159
 
158
160
  {#if $columnOptions.canFilter == "advanced" && $columnState != "Idle"}
@@ -72,7 +72,7 @@
72
72
  }
73
73
  }
74
74
  return obj;
75
- } else return obj[path] ?? undefined;
75
+ } else return obj[path];
76
76
  };
77
77
 
78
78
  const onClick = () => {
@@ -16,6 +16,7 @@
16
16
  export let list_icon;
17
17
  export let list_title;
18
18
  export let tabsWidth = "200px";
19
+ export let listBackground = "var(--spectrum-global-color-gray-50)";
19
20
 
20
21
  export let quietTabs;
21
22
 
@@ -44,11 +45,12 @@
44
45
  style:justify-content={buttonsAlignment}
45
46
  style:--tab-alignment={tabsAlignment}
46
47
  style:--tab-track-thickness="1px"
48
+ style:--list-background={listBackground}
47
49
  >
48
50
  {#if theme === "list" && list_title}
49
51
  <div class="tab list-title">
50
52
  {#if list_icon}
51
- <i class={list_icon}></i>
53
+ <i class={"ph ph-" + list_icon}></i>
52
54
  {/if}
53
55
  {list_title}
54
56
  </div>
@@ -73,7 +75,7 @@
73
75
  {#if container.icon}
74
76
  <i
75
77
  class={container.icon}
76
- style:font-size={tabsIconsOnly ? "20px" : "inherit"}
78
+ style:font-size={tabsIconsOnly ? "20px" : "12px"}
77
79
  style:color={container.color}
78
80
  ></i>
79
81
  {/if}
@@ -110,6 +112,14 @@
110
112
  margin-bottom: unset;
111
113
  --selected-tab: var(--spectrum-global-color-gray-200);
112
114
  }
115
+ .outer-tabs.vertical.list {
116
+ padding-left: unset;
117
+ padding-right: unset;
118
+ flex-direction: column;
119
+ align-items: stretch;
120
+ --selected-tab: var(--spectrum-global-color-gray-200);
121
+ border-right: 1px solid var(--spectrum-global-color-gray-300);
122
+ }
113
123
 
114
124
  .tabs {
115
125
  flex: auto;
@@ -125,20 +135,29 @@
125
135
 
126
136
  .tabs.list {
127
137
  gap: 0;
128
- background-color: var(--spectrum-global-color-gray-50);
138
+ background-color: var(
139
+ --list-background,
140
+ var(--spectrum-global-color-gray-50)
141
+ );
129
142
  border: unset;
130
143
  padding: unset;
144
+ padding-bottom: 0.5rem;
131
145
  }
132
146
 
133
147
  .tabs.vertical {
134
148
  flex-direction: column;
135
149
  border-bottom: unset;
136
150
  border-top: unset;
151
+ border-right: 1px solid var(--spectrum-global-color-gray-300);
152
+ padding-right: 0.25rem;
137
153
  gap: 0.25rem;
138
154
  }
139
155
 
140
156
  .tabs.vertical.list {
141
157
  border-right: unset;
158
+ gap: 2px;
159
+ padding: 2px;
160
+ padding-top: 0rem;
142
161
  }
143
162
 
144
163
  .tab {
@@ -165,10 +184,9 @@
165
184
  .tab.button {
166
185
  border-radius: 0.25rem;
167
186
  padding: 0.5rem 1rem;
168
- font-weight: 600;
169
187
  line-height: 14px;
170
188
  border: 1px solid transparent;
171
- height: 1.85rem;
189
+ height: 1.75rem;
172
190
  }
173
191
 
174
192
  .tab.button.vertical {
@@ -184,51 +202,49 @@
184
202
 
185
203
  .tab.button.selected {
186
204
  color: var(--spectrum-global-color-gray-700);
187
- border: 1px solid var(--spectrum-global-color-gray-300);
205
+ font-weight: 500;
206
+ border: 1px solid
207
+ rgb(from var(--spectrum-global-color-gray-400) r g b / 0.75);
188
208
  background-color: rgb(
189
209
  from var(--spectrum-global-color-gray-200) r g b / 0.85
190
210
  );
191
211
  }
192
212
 
193
213
  .tab.list {
194
- padding: 0.5rem 1rem;
214
+ padding: 0.5rem 0.5rem;
215
+ border-radius: 0.25rem;
195
216
  max-width: 100%;
196
217
  color: var(--spectrum-global-color-gray-700);
197
- font-weight: 400;
198
218
  }
199
219
 
200
220
  .tab.list.selected {
201
221
  color: var(--tab-selected-color);
202
222
  background-color: var(--selected-tab);
203
- font-weight: 500;
204
223
  }
205
224
 
206
- .tab.list:hover:not(.disabled):not(.list-section) {
207
- background-color: var(--spectrum-global-color-gray-75);
225
+ .tab.list:hover:not(.disabled):not(.list-section):not(.selected) {
226
+ background-color: var(--spectrum-global-color-gray-100);
208
227
  }
209
228
 
210
229
  .tab.list-title {
211
- padding: 0.75rem 1rem;
230
+ padding: 0.75rem 0.5rem;
212
231
  max-width: 100%;
213
232
  font-size: 12px;
214
233
  color: var(--spectrum-global-color-gray-800);
215
234
  text-transform: uppercase;
216
235
  letter-spacing: 1.2px;
217
- font-weight: 500;
218
236
  border-bottom: 1px solid var(--spectrum-global-color-gray-300);
219
- height: 3rem;
220
237
  }
221
238
 
222
239
  .tab.list-section {
223
240
  text-transform: uppercase;
224
241
  font-size: 11px;
225
- font-weight: 400;
226
- letter-spacing: 1.2px;
242
+ color: var(--spectrum-global-color-gray-600);
227
243
  background-color: transparent;
228
244
  }
229
245
 
230
246
  .tab.list-section.vertical {
231
- margin-top: 12px;
247
+ margin-top: 4px;
232
248
  }
233
249
 
234
250
  .tab.list-section:hover {