fix(svelte): resolve all svelte-check warnings
- commit
- 8213ebf2f24ef51f156eb077953d451b777e96b4
- author
- bnema · · 2026-01-18 16:54 UTC
- parent
- 2a250ee
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
6 files · +27 -29
M src/lib/components/aim-login.svelte +1 -0
| @@ -17,6 +17,7 @@ | |||
| 17 | 17 | ||
| 18 | 18 | let { showAuth = $bindable(), onLoginSuccess, activeTab: initialTab = 'signin' } = $props(); | |
| 19 | 19 | ||
| 20 | + | // svelte-ignore state_referenced_locally - intentionally capturing initial value | |
| 20 | 21 | let activeTab = $state(initialTab); | |
| 21 | 22 | ||
| 22 | 23 | // Sign In state | |
| @@ -17,6 +17,7 @@ | |||||
| 17 | 17 | ||||
| 18 | let { showAuth = $bindable(), onLoginSuccess, activeTab: initialTab = 'signin' } = $props(); | 18 | let { showAuth = $bindable(), onLoginSuccess, activeTab: initialTab = 'signin' } = $props(); | ||
| 19 | 19 | ||||
| 20 | + | // svelte-ignore state_referenced_locally - intentionally capturing initial value | |||
| 20 | let activeTab = $state(initialTab); | 21 | let activeTab = $state(initialTab); | ||
| 21 | 22 | ||||
| 22 | // Sign In state | 23 | // Sign In state | ||
M src/lib/components/chat-room.svelte +3 -2
| @@ -58,10 +58,11 @@ | |||
| 58 | 58 | } | |
| 59 | 59 | ||
| 60 | 60 | // Text formatting state - initialize directly with merged initial style | |
| 61 | + | // svelte-ignore state_referenced_locally - intentionally capturing initial value | |
| 61 | 62 | let currentTextStyle = $state<TextStyle>({ | |
| 62 | 63 | ...DEFAULT_TEXT_STYLE, | |
| 63 | 64 | ...initialTextStyle, | |
| 64 | - | color: initialTextStyle.color || '#000000' // Ensure we always have a valid color | |
| 65 | + | color: initialTextStyle.color || '#000000' | |
| 65 | 66 | }); | |
| 66 | 67 | ||
| 67 | 68 | // Rate limiting state | |
| @@ -703,7 +704,6 @@ | |||
| 703 | 704 | bind:style={currentTextStyle} | |
| 704 | 705 | compact={true} | |
| 705 | 706 | showFontSelector={true} | |
| 706 | - | showGradients={true} | |
| 707 | 707 | /> | |
| 708 | 708 | </div> | |
| 709 | 709 | {/if} | |
| @@ -998,6 +998,7 @@ | |||
| 998 | 998 | /* Styled input - font is controlled by retro-font-* classes */ | |
| 999 | 999 | .styled-input { | |
| 1000 | 1000 | /* Font family is set by retro-font-* classes, don't override here */ | |
| 1001 | + | font-style: inherit; | |
| 1001 | 1002 | } | |
| 1002 | 1003 | ||
| 1003 | 1004 | button { | |
| @@ -58,10 +58,11 @@ | |||||
| 58 | } | 58 | } | ||
| 59 | 59 | ||||
| 60 | // Text formatting state - initialize directly with merged initial style | 60 | // Text formatting state - initialize directly with merged initial style | ||
| 61 | + | // svelte-ignore state_referenced_locally - intentionally capturing initial value | |||
| 61 | let currentTextStyle = $state<TextStyle>({ | 62 | let currentTextStyle = $state<TextStyle>({ | ||
| 62 | ...DEFAULT_TEXT_STYLE, | 63 | ...DEFAULT_TEXT_STYLE, | ||
| 63 | ...initialTextStyle, | 64 | ...initialTextStyle, | ||
| 64 | - | color: initialTextStyle.color || '#000000' // Ensure we always have a valid color | 65 | + | color: initialTextStyle.color || '#000000' |
| 65 | }); | 66 | }); | ||
| 66 | 67 | ||||
| 67 | // Rate limiting state | 68 | // Rate limiting state | ||
| @@ -703,7 +704,6 @@ | |||||
| 703 | bind:style={currentTextStyle} | 704 | bind:style={currentTextStyle} | ||
| 704 | compact={true} | 705 | compact={true} | ||
| 705 | showFontSelector={true} | 706 | showFontSelector={true} | ||
| 706 | - | showGradients={true} | |||
| 707 | /> | 707 | /> | ||
| 708 | </div> | 708 | </div> | ||
| 709 | {/if} | 709 | {/if} | ||
| @@ -998,6 +998,7 @@ | |||||
| 998 | /* Styled input - font is controlled by retro-font-* classes */ | 998 | /* Styled input - font is controlled by retro-font-* classes */ | ||
| 999 | .styled-input { | 999 | .styled-input { | ||
| 1000 | /* Font family is set by retro-font-* classes, don't override here */ | 1000 | /* Font family is set by retro-font-* classes, don't override here */ | ||
| 1001 | + | font-style: inherit; | |||
| 1001 | } | 1002 | } | ||
| 1002 | 1003 | ||||
| 1003 | button { | 1004 | button { | ||
M src/lib/components/color-picker-256.svelte +9 -4
| @@ -6,16 +6,13 @@ | |||
| 6 | 6 | selectedColor = $bindable('#000000'), | |
| 7 | 7 | selectedGradient = $bindable(undefined), | |
| 8 | 8 | onColorChange, | |
| 9 | - | onGradientChange, | |
| 10 | - | compact: _compact = true | |
| 9 | + | onGradientChange | |
| 11 | 10 | } = $props<{ | |
| 12 | 11 | selectedColor?: string; | |
| 13 | 12 | selectedGradient?: string[]; | |
| 14 | 13 | onColorChange?: (color: string) => void; | |
| 15 | 14 | onGradientChange?: (gradient: string[]) => void; | |
| 16 | - | compact?: boolean; | |
| 17 | 15 | }>(); | |
| 18 | - | void _compact; // Reserved for future use | |
| 19 | 16 | ||
| 20 | 17 | // State | |
| 21 | 18 | let showPicker = $state(false); | |
| @@ -139,6 +136,7 @@ | |||
| 139 | 136 | ||
| 140 | 137 | <!-- Color picker dropdown --> | |
| 141 | 138 | {#if showPicker} | |
| 139 | + | <!-- svelte-ignore a11y_click_events_have_key_events, a11y_no_static_element_interactions --> | |
| 142 | 140 | <div class="picker-dropdown sunken-panel" onclick={(e) => e.stopPropagation()}> | |
| 143 | 141 | <!-- Gradient controls --> | |
| 144 | 142 | <div class="gradient-controls"> | |
| @@ -158,6 +156,13 @@ | |||
| 158 | 156 | e.stopPropagation(); | |
| 159 | 157 | removeGradientColor(index); | |
| 160 | 158 | }} | |
| 159 | + | onkeydown={(e) => { | |
| 160 | + | if (e.key === 'Enter' || e.key === ' ') { | |
| 161 | + | e.preventDefault(); | |
| 162 | + | e.stopPropagation(); | |
| 163 | + | removeGradientColor(index); | |
| 164 | + | } | |
| 165 | + | }} | |
| 161 | 166 | title="Remove this color" | |
| 162 | 167 | role="button" | |
| 163 | 168 | tabindex="0">×</span | |
| @@ -6,16 +6,13 @@ | |||||
| 6 | selectedColor = $bindable('#000000'), | 6 | selectedColor = $bindable('#000000'), | ||
| 7 | selectedGradient = $bindable(undefined), | 7 | selectedGradient = $bindable(undefined), | ||
| 8 | onColorChange, | 8 | onColorChange, | ||
| 9 | - | onGradientChange, | 9 | + | onGradientChange |
| 10 | - | compact: _compact = true | |||
| 11 | } = $props<{ | 10 | } = $props<{ | ||
| 12 | selectedColor?: string; | 11 | selectedColor?: string; | ||
| 13 | selectedGradient?: string[]; | 12 | selectedGradient?: string[]; | ||
| 14 | onColorChange?: (color: string) => void; | 13 | onColorChange?: (color: string) => void; | ||
| 15 | onGradientChange?: (gradient: string[]) => void; | 14 | onGradientChange?: (gradient: string[]) => void; | ||
| 16 | - | compact?: boolean; | |||
| 17 | }>(); | 15 | }>(); | ||
| 18 | - | void _compact; // Reserved for future use | |||
| 19 | 16 | ||||
| 20 | // State | 17 | // State | ||
| 21 | let showPicker = $state(false); | 18 | let showPicker = $state(false); | ||
| @@ -139,6 +136,7 @@ | |||||
| 139 | 136 | ||||
| 140 | <!-- Color picker dropdown --> | 137 | <!-- Color picker dropdown --> | ||
| 141 | {#if showPicker} | 138 | {#if showPicker} | ||
| 139 | + | <!-- svelte-ignore a11y_click_events_have_key_events, a11y_no_static_element_interactions --> | |||
| 142 | <div class="picker-dropdown sunken-panel" onclick={(e) => e.stopPropagation()}> | 140 | <div class="picker-dropdown sunken-panel" onclick={(e) => e.stopPropagation()}> | ||
| 143 | <!-- Gradient controls --> | 141 | <!-- Gradient controls --> | ||
| 144 | <div class="gradient-controls"> | 142 | <div class="gradient-controls"> | ||
| @@ -158,6 +156,13 @@ | |||||
| 158 | e.stopPropagation(); | 156 | e.stopPropagation(); | ||
| 159 | removeGradientColor(index); | 157 | removeGradientColor(index); | ||
| 160 | }} | 158 | }} | ||
| 159 | + | onkeydown={(e) => { | |||
| 160 | + | if (e.key === 'Enter' || e.key === ' ') { | |||
| 161 | + | e.preventDefault(); | |||
| 162 | + | e.stopPropagation(); | |||
| 163 | + | removeGradientColor(index); | |||
| 164 | + | } | |||
| 165 | + | }} | |||
| 161 | title="Remove this color" | 166 | title="Remove this color" | ||
| 162 | role="button" | 167 | role="button" | ||
| 163 | tabindex="0">×</span | 168 | tabindex="0">×</span | ||
M src/lib/components/text-formatting-toolbar.svelte +1 -8
| @@ -10,19 +10,13 @@ | |||
| 10 | 10 | // Props | |
| 11 | 11 | let { | |
| 12 | 12 | style = $bindable(DEFAULT_TEXT_STYLE), | |
| 13 | - | onPreviewText: _onPreviewText, | |
| 14 | 13 | compact = true, | |
| 15 | - | showFontSelector = false, | |
| 16 | - | showGradients: _showGradients = true | |
| 14 | + | showFontSelector = false | |
| 17 | 15 | } = $props<{ | |
| 18 | 16 | style?: TextStyle; | |
| 19 | - | onPreviewText?: (text: string) => void; | |
| 20 | 17 | compact?: boolean; | |
| 21 | 18 | showFontSelector?: boolean; | |
| 22 | - | showGradients?: boolean; | |
| 23 | 19 | }>(); | |
| 24 | - | void _showGradients; // Reserved for future use | |
| 25 | - | void _onPreviewText; // Reserved for future use | |
| 26 | 20 | ||
| 27 | 21 | // State | |
| 28 | 22 | let currentColor = $state(style.color || '#000000'); | |
| @@ -145,7 +139,6 @@ | |||
| 145 | 139 | bind:selectedGradient={currentGradient} | |
| 146 | 140 | onColorChange={handleColorChange} | |
| 147 | 141 | onGradientChange={handleGradientChange} | |
| 148 | - | {compact} | |
| 149 | 142 | /> | |
| 150 | 143 | </div> | |
| 151 | 144 | </div> | |
| @@ -10,19 +10,13 @@ | |||||
| 10 | // Props | 10 | // Props | ||
| 11 | let { | 11 | let { | ||
| 12 | style = $bindable(DEFAULT_TEXT_STYLE), | 12 | style = $bindable(DEFAULT_TEXT_STYLE), | ||
| 13 | - | onPreviewText: _onPreviewText, | |||
| 14 | compact = true, | 13 | compact = true, | ||
| 15 | - | showFontSelector = false, | 14 | + | showFontSelector = false |
| 16 | - | showGradients: _showGradients = true | |||
| 17 | } = $props<{ | 15 | } = $props<{ | ||
| 18 | style?: TextStyle; | 16 | style?: TextStyle; | ||
| 19 | - | onPreviewText?: (text: string) => void; | |||
| 20 | compact?: boolean; | 17 | compact?: boolean; | ||
| 21 | showFontSelector?: boolean; | 18 | showFontSelector?: boolean; | ||
| 22 | - | showGradients?: boolean; | |||
| 23 | }>(); | 19 | }>(); | ||
| 24 | - | void _showGradients; // Reserved for future use | |||
| 25 | - | void _onPreviewText; // Reserved for future use | |||
| 26 | 20 | ||||
| 27 | // State | 21 | // State | ||
| 28 | let currentColor = $state(style.color || '#000000'); | 22 | let currentColor = $state(style.color || '#000000'); | ||
| @@ -145,7 +139,6 @@ | |||||
| 145 | bind:selectedGradient={currentGradient} | 139 | bind:selectedGradient={currentGradient} | ||
| 146 | onColorChange={handleColorChange} | 140 | onColorChange={handleColorChange} | ||
| 147 | onGradientChange={handleGradientChange} | 141 | onGradientChange={handleGradientChange} | ||
| 148 | - | {compact} | |||
| 149 | /> | 142 | /> | ||
| 150 | </div> | 143 | </div> | ||
| 151 | </div> | 144 | </div> | ||
M src/lib/components/text-style-selector.svelte +11 -14
| @@ -100,8 +100,9 @@ | |||
| 100 | 100 | <div class="text-style-selector" class:compact> | |
| 101 | 101 | <!-- Font Family Selection --> | |
| 102 | 102 | <div class="style-group"> | |
| 103 | - | <label>Font:</label> | |
| 103 | + | <label for="font-family-select">Font:</label> | |
| 104 | 104 | <select | |
| 105 | + | id="font-family-select" | |
| 105 | 106 | bind:value={style.fontFamily} | |
| 106 | 107 | onchange={(e) => selectFont((e.target as HTMLSelectElement).value as FontFamily)} | |
| 107 | 108 | > | |
| @@ -115,8 +116,9 @@ | |||
| 115 | 116 | ||
| 116 | 117 | <!-- Font Size --> | |
| 117 | 118 | <div class="style-group"> | |
| 118 | - | <label>Size:</label> | |
| 119 | + | <label for="font-size-range">Size:</label> | |
| 119 | 120 | <input | |
| 121 | + | id="font-size-range" | |
| 120 | 122 | type="range" | |
| 121 | 123 | min="8" | |
| 122 | 124 | max="18" | |
| @@ -164,14 +166,13 @@ | |||
| 164 | 166 | ||
| 165 | 167 | <!-- Color & Gradient Selection --> | |
| 166 | 168 | <div class="style-group"> | |
| 167 | - | <label>Color:</label> | |
| 169 | + | <span class="label-text">Color:</span> | |
| 168 | 170 | <div class="color-controls"> | |
| 169 | 171 | <ColorPicker256 | |
| 170 | 172 | bind:selectedColor={currentColor} | |
| 171 | 173 | bind:selectedGradient={currentGradient} | |
| 172 | 174 | onColorChange={handleColorChange} | |
| 173 | 175 | onGradientChange={handleGradientChange} | |
| 174 | - | compact={false} | |
| 175 | 176 | /> | |
| 176 | 177 | </div> | |
| 177 | 178 | </div> | |
| @@ -179,7 +180,7 @@ | |||
| 179 | 180 | <!-- Preview --> | |
| 180 | 181 | {#if showPreview} | |
| 181 | 182 | <div class="preview-section"> | |
| 182 | - | <label>Preview:</label> | |
| 183 | + | <span class="label-text">Preview:</span> | |
| 183 | 184 | <div class="preview-text" style={generateCSSStyle(style)}> | |
| 184 | 185 | {#if isProcessing} | |
| 185 | 186 | <span class="loading">Processing...</span> | |
| @@ -212,7 +213,8 @@ | |||
| 212 | 213 | margin-bottom: 8px; | |
| 213 | 214 | } | |
| 214 | 215 | ||
| 215 | - | .style-group label { | |
| 216 | + | .style-group label, | |
| 217 | + | .style-group .label-text { | |
| 216 | 218 | font-weight: bold; | |
| 217 | 219 | min-width: 50px; | |
| 218 | 220 | } | |
| @@ -271,7 +273,7 @@ | |||
| 271 | 273 | border-top: 1px solid #ccc; | |
| 272 | 274 | } | |
| 273 | 275 | ||
| 274 | - | .preview-section label { | |
| 276 | + | .preview-section .label-text { | |
| 275 | 277 | display: block; | |
| 276 | 278 | margin-bottom: 4px; | |
| 277 | 279 | font-weight: bold; | |
| @@ -300,7 +302,8 @@ | |||
| 300 | 302 | margin-bottom: 4px; | |
| 301 | 303 | } | |
| 302 | 304 | ||
| 303 | - | .compact .style-group label { | |
| 305 | + | .compact .style-group label, | |
| 306 | + | .compact .style-group .label-text { | |
| 304 | 307 | min-width: 40px; | |
| 305 | 308 | font-size: 10px; | |
| 306 | 309 | } | |
| @@ -310,10 +313,4 @@ | |||
| 310 | 313 | height: 20px; | |
| 311 | 314 | font-size: 10px; | |
| 312 | 315 | } | |
| 313 | - | ||
| 314 | - | .compact .color-button, | |
| 315 | - | .compact .gradient-button { | |
| 316 | - | font-size: 9px; | |
| 317 | - | padding: 1px 4px; | |
| 318 | - | } | |
| 319 | 316 | </style> | |
| @@ -100,8 +100,9 @@ | |||||
| 100 | <div class="text-style-selector" class:compact> | 100 | <div class="text-style-selector" class:compact> | ||
| 101 | <!-- Font Family Selection --> | 101 | <!-- Font Family Selection --> | ||
| 102 | <div class="style-group"> | 102 | <div class="style-group"> | ||
| 103 | - | <label>Font:</label> | 103 | + | <label for="font-family-select">Font:</label> |
| 104 | <select | 104 | <select | ||
| 105 | + | id="font-family-select" | |||
| 105 | bind:value={style.fontFamily} | 106 | bind:value={style.fontFamily} | ||
| 106 | onchange={(e) => selectFont((e.target as HTMLSelectElement).value as FontFamily)} | 107 | onchange={(e) => selectFont((e.target as HTMLSelectElement).value as FontFamily)} | ||
| 107 | > | 108 | > | ||
| @@ -115,8 +116,9 @@ | |||||
| 115 | 116 | ||||
| 116 | <!-- Font Size --> | 117 | <!-- Font Size --> | ||
| 117 | <div class="style-group"> | 118 | <div class="style-group"> | ||
| 118 | - | <label>Size:</label> | 119 | + | <label for="font-size-range">Size:</label> |
| 119 | <input | 120 | <input | ||
| 121 | + | id="font-size-range" | |||
| 120 | type="range" | 122 | type="range" | ||
| 121 | min="8" | 123 | min="8" | ||
| 122 | max="18" | 124 | max="18" | ||
| @@ -164,14 +166,13 @@ | |||||
| 164 | 166 | ||||
| 165 | <!-- Color & Gradient Selection --> | 167 | <!-- Color & Gradient Selection --> | ||
| 166 | <div class="style-group"> | 168 | <div class="style-group"> | ||
| 167 | - | <label>Color:</label> | 169 | + | <span class="label-text">Color:</span> |
| 168 | <div class="color-controls"> | 170 | <div class="color-controls"> | ||
| 169 | <ColorPicker256 | 171 | <ColorPicker256 | ||
| 170 | bind:selectedColor={currentColor} | 172 | bind:selectedColor={currentColor} | ||
| 171 | bind:selectedGradient={currentGradient} | 173 | bind:selectedGradient={currentGradient} | ||
| 172 | onColorChange={handleColorChange} | 174 | onColorChange={handleColorChange} | ||
| 173 | onGradientChange={handleGradientChange} | 175 | onGradientChange={handleGradientChange} | ||
| 174 | - | compact={false} | |||
| 175 | /> | 176 | /> | ||
| 176 | </div> | 177 | </div> | ||
| 177 | </div> | 178 | </div> | ||
| @@ -179,7 +180,7 @@ | |||||
| 179 | <!-- Preview --> | 180 | <!-- Preview --> | ||
| 180 | {#if showPreview} | 181 | {#if showPreview} | ||
| 181 | <div class="preview-section"> | 182 | <div class="preview-section"> | ||
| 182 | - | <label>Preview:</label> | 183 | + | <span class="label-text">Preview:</span> |
| 183 | <div class="preview-text" style={generateCSSStyle(style)}> | 184 | <div class="preview-text" style={generateCSSStyle(style)}> | ||
| 184 | {#if isProcessing} | 185 | {#if isProcessing} | ||
| 185 | <span class="loading">Processing...</span> | 186 | <span class="loading">Processing...</span> | ||
| @@ -212,7 +213,8 @@ | |||||
| 212 | margin-bottom: 8px; | 213 | margin-bottom: 8px; | ||
| 213 | } | 214 | } | ||
| 214 | 215 | ||||
| 215 | - | .style-group label { | 216 | + | .style-group label, |
| 217 | + | .style-group .label-text { | |||
| 216 | font-weight: bold; | 218 | font-weight: bold; | ||
| 217 | min-width: 50px; | 219 | min-width: 50px; | ||
| 218 | } | 220 | } | ||
| @@ -271,7 +273,7 @@ | |||||
| 271 | border-top: 1px solid #ccc; | 273 | border-top: 1px solid #ccc; | ||
| 272 | } | 274 | } | ||
| 273 | 275 | ||||
| 274 | - | .preview-section label { | 276 | + | .preview-section .label-text { |
| 275 | display: block; | 277 | display: block; | ||
| 276 | margin-bottom: 4px; | 278 | margin-bottom: 4px; | ||
| 277 | font-weight: bold; | 279 | font-weight: bold; | ||
| @@ -300,7 +302,8 @@ | |||||
| 300 | margin-bottom: 4px; | 302 | margin-bottom: 4px; | ||
| 301 | } | 303 | } | ||
| 302 | 304 | ||||
| 303 | - | .compact .style-group label { | 305 | + | .compact .style-group label, |
| 306 | + | .compact .style-group .label-text { | |||
| 304 | min-width: 40px; | 307 | min-width: 40px; | ||
| 305 | font-size: 10px; | 308 | font-size: 10px; | ||
| 306 | } | 309 | } | ||
| @@ -310,10 +313,4 @@ | |||||
| 310 | height: 20px; | 313 | height: 20px; | ||
| 311 | font-size: 10px; | 314 | font-size: 10px; | ||
| 312 | } | 315 | } | ||
| 313 | - | ||||
| 314 | - | .compact .color-button, | |||
| 315 | - | .compact .gradient-button { | |||
| 316 | - | font-size: 9px; | |||
| 317 | - | padding: 1px 4px; | |||
| 318 | - | } | |||
| 319 | </style> | 316 | </style> | ||
M src/lib/components/user-preferences-modal.svelte +2 -1
| @@ -89,8 +89,9 @@ | |||
| 89 | 89 | role="dialog" | |
| 90 | 90 | aria-modal="true" | |
| 91 | 91 | aria-labelledby="preferences-title" | |
| 92 | + | tabindex="-1" | |
| 92 | 93 | > | |
| 93 | - | <!-- Modal content --> | |
| 94 | + | <!-- svelte-ignore a11y_click_events_have_key_events, a11y_no_static_element_interactions --> | |
| 94 | 95 | <div class="modal-window window" onclick={(e) => e.stopPropagation()}> | |
| 95 | 96 | <div class="title-bar"> | |
| 96 | 97 | <div class="title-bar-text" id="preferences-title">Text Formatting Preferences</div> | |
| @@ -89,8 +89,9 @@ | |||||
| 89 | role="dialog" | 89 | role="dialog" | ||
| 90 | aria-modal="true" | 90 | aria-modal="true" | ||
| 91 | aria-labelledby="preferences-title" | 91 | aria-labelledby="preferences-title" | ||
| 92 | + | tabindex="-1" | |||
| 92 | > | 93 | > | ||
| 93 | - | <!-- Modal content --> | 94 | + | <!-- svelte-ignore a11y_click_events_have_key_events, a11y_no_static_element_interactions --> |
| 94 | <div class="modal-window window" onclick={(e) => e.stopPropagation()}> | 95 | <div class="modal-window window" onclick={(e) => e.stopPropagation()}> | ||
| 95 | <div class="title-bar"> | 96 | <div class="title-bar"> | ||
| 96 | <div class="title-bar-text" id="preferences-title">Text Formatting Preferences</div> | 97 | <div class="title-bar-text" id="preferences-title">Text Formatting Preferences</div> | ||