@@ -101,27 +101,32 @@ defineOgImageComponent('Default', {
101101 <div class =" bg-bg-subtle border border-border rounded-lg p-4 sm:p-6 space-y-4" >
102102 <!-- Relative dates toggle -->
103103 <div class =" space-y-2" >
104- <button
105- type =" button"
106- class =" w-full flex items-center justify-between gap-4 group"
107- role =" switch"
108- :aria-checked =" settings.relativeDates"
109- @click =" settings.relativeDates = !settings.relativeDates"
110- >
111- <span class =" text-sm text-fg font-medium text-start" >
112- {{ $t('settings.relative_dates') }}
113- </span >
114- <span
115- class =" relative inline-flex h-6 w-11 shrink-0 items-center rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out motion-reduce:transition-none shadow-sm cursor-pointer"
116- :class =" settings.relativeDates ? 'bg-accent' : 'bg-bg border border-border'"
117- aria-hidden =" true"
104+ <ClientOnly >
105+ <button
106+ type =" button"
107+ class =" w-full flex items-center justify-between gap-4 group"
108+ role =" switch"
109+ :aria-checked =" settings.relativeDates"
110+ @click =" settings.relativeDates = !settings.relativeDates"
118111 >
112+ <span class =" text-sm text-fg font-medium text-start" >
113+ {{ $t('settings.relative_dates') }}
114+ </span >
119115 <span
120- class =" pointer-events-none inline-block h-5 w-5 rounded-full shadow-sm ring-0 transition-transform duration-200 ease-in-out motion-reduce:transition-none"
121- :class =" settings.relativeDates ? 'bg-bg' : 'bg-fg-muted'"
122- />
123- </span >
124- </button >
116+ class =" relative inline-flex h-6 w-11 shrink-0 items-center rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out motion-reduce:transition-none shadow-sm cursor-pointer"
117+ :class =" settings.relativeDates ? 'bg-accent' : 'bg-bg border border-border'"
118+ aria-hidden =" true"
119+ >
120+ <span
121+ class =" pointer-events-none inline-block h-5 w-5 rounded-full shadow-sm ring-0 transition-transform duration-200 ease-in-out motion-reduce:transition-none"
122+ :class =" settings.relativeDates ? 'bg-bg' : 'bg-fg-muted'"
123+ />
124+ </span >
125+ </button >
126+ <template #fallback >
127+ <ToggleSkeleton :label =" $t('settings.relative_dates')" />
128+ </template >
129+ </ClientOnly >
125130 <p class =" text-sm text-fg-muted" >
126131 {{ $t('settings.relative_dates_description') }}
127132 </p >
@@ -132,29 +137,34 @@ defineOgImageComponent('Default', {
132137
133138 <!-- Include @types in install toggle -->
134139 <div class =" space-y-2" >
135- <button
136- type =" button"
137- class =" w-full flex items-center justify-between gap-4 group"
138- role =" switch"
139- :aria-checked =" settings.includeTypesInInstall"
140- @click =" settings.includeTypesInInstall = !settings.includeTypesInInstall"
141- >
142- <span class =" text-sm text-fg font-medium text-start" >
143- {{ $t('settings.include_types') }}
144- </span >
145- <span
146- class =" relative inline-flex h-6 w-11 shrink-0 items-center rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out motion-reduce:transition-none shadow-sm cursor-pointer"
147- :class ="
148- settings.includeTypesInInstall ? 'bg-accent' : 'bg-bg border border-border'
149- "
150- aria-hidden =" true"
140+ <ClientOnly >
141+ <button
142+ type =" button"
143+ class =" w-full flex items-center justify-between gap-4 group"
144+ role =" switch"
145+ :aria-checked =" settings.includeTypesInInstall"
146+ @click =" settings.includeTypesInInstall = !settings.includeTypesInInstall"
151147 >
148+ <span class =" text-sm text-fg font-medium text-start" >
149+ {{ $t('settings.include_types') }}
150+ </span >
152151 <span
153- class =" pointer-events-none inline-block h-5 w-5 rounded-full shadow-sm ring-0 transition-transform duration-200 ease-in-out motion-reduce:transition-none"
154- :class =" settings.includeTypesInInstall ? 'bg-bg' : 'bg-fg-muted'"
155- />
156- </span >
157- </button >
152+ class =" relative inline-flex h-6 w-11 shrink-0 items-center rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out motion-reduce:transition-none shadow-sm cursor-pointer"
153+ :class ="
154+ settings.includeTypesInInstall ? 'bg-accent' : 'bg-bg border border-border'
155+ "
156+ aria-hidden =" true"
157+ >
158+ <span
159+ class =" pointer-events-none inline-block h-5 w-5 rounded-full shadow-sm ring-0 transition-transform duration-200 ease-in-out motion-reduce:transition-none"
160+ :class =" settings.includeTypesInInstall ? 'bg-bg' : 'bg-fg-muted'"
161+ />
162+ </span >
163+ </button >
164+ <template #fallback >
165+ <ToggleSkeleton :label =" $t('settings.include_types')" />
166+ </template >
167+ </ClientOnly >
158168 <p class =" text-sm text-fg-muted" >
159169 {{ $t('settings.include_types_description') }}
160170 </p >
@@ -165,29 +175,36 @@ defineOgImageComponent('Default', {
165175
166176 <!-- Hide platform-specific packages toggle -->
167177 <div class =" space-y-2" >
168- <button
169- type =" button"
170- class =" w-full flex items-center justify-between gap-4 group"
171- role =" switch"
172- :aria-checked =" settings.hidePlatformPackages"
173- @click =" settings.hidePlatformPackages = !settings.hidePlatformPackages"
174- >
175- <span class =" text-sm text-fg font-medium text-start" >
176- {{ $t('settings.hide_platform_packages') }}
177- </span >
178- <span
179- class =" relative inline-flex h-6 w-11 shrink-0 items-center rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out motion-reduce:transition-none shadow-sm cursor-pointer"
180- :class ="
181- settings.hidePlatformPackages ? 'bg-accent' : 'bg-bg border border-border'
182- "
183- aria-hidden =" true"
178+ <ClientOnly >
179+ <button
180+ type =" button"
181+ class =" w-full flex items-center justify-between gap-4 group"
182+ role =" switch"
183+ :aria-checked =" settings.hidePlatformPackages"
184+ @click =" settings.hidePlatformPackages = !settings.hidePlatformPackages"
184185 >
186+ <span class =" text-sm text-fg font-medium text-start" >
187+ {{ $t('settings.hide_platform_packages') }}
188+ </span >
185189 <span
186- class =" pointer-events-none inline-block h-5 w-5 rounded-full shadow-sm ring-0 transition-transform duration-200 ease-in-out motion-reduce:transition-none"
187- :class =" settings.hidePlatformPackages ? 'bg-bg' : 'bg-fg-muted'"
188- />
189- </span >
190- </button >
190+ class =" relative inline-flex h-6 w-11 shrink-0 items-center rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out motion-reduce:transition-none shadow-sm cursor-pointer"
191+ :class ="
192+ settings.hidePlatformPackages ? 'bg-accent' : 'bg-bg border border-border'
193+ "
194+ aria-hidden =" true"
195+ >
196+ <span
197+ class =" pointer-events-none inline-block h-5 w-5 rounded-full shadow-sm ring-0 transition-transform duration-200 ease-in-out motion-reduce:transition-none"
198+ :class =" settings.hidePlatformPackages ? 'bg-bg' : 'bg-fg-muted'"
199+ />
200+ </span >
201+ </button >
202+ <template #fallback >
203+ <p class =" text-sm text-fg-muted" >
204+ {{ $t('settings.hide_platform_packages') }}
205+ </p >
206+ </template >
207+ </ClientOnly >
191208 <p class =" text-sm text-fg-muted" >
192209 {{ $t('settings.hide_platform_packages_description') }}
193210 </p >
0 commit comments