Mirror of
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #37 from trueberryless-org/update-template-files

[ci] sync template files

authored by

trueberryless and committed by
GitHub
f4b65486 ae49ef3c

+429 -101
+4 -3
.github/workflows/deployment.yaml
··· 68 68 id: changesets 69 69 with: 70 70 version: pnpm run version 71 - commit: "chore: release" 71 + commit: "[ci] release" 72 72 title: "[ci] release" 73 73 env: 74 74 GITHUB_TOKEN: ${{ steps.generate_token.outputs.token}} ··· 78 78 if: steps.changesets.outputs.hasChangesets == 'true' 79 79 run: | 80 80 git checkout changeset-release/main 81 - VERSION=$(node -p "require('./docs/package.json').version") 82 - git commit --amend -m "chore(release): publish v$VERSION" --no-edit 81 + VERSION=$(node -p "require('./packages/starlight-sidebar-topics-dropdown/package.json').version") 82 + NAME=$(node -p "require('./packages/starlight-sidebar-topics-dropdown/package.json').name") 83 + git commit --amend -m "[ci] release $NAME v$VERSION" --no-edit 83 84 git push origin changeset-release/main:changeset-release/main --force 84 85 85 86 image-tag:
+1
.gitignore
··· 93 93 # Nuxt.js build / generate output 94 94 .nuxt 95 95 dist 96 + .output 96 97 97 98 # Gatsby files 98 99 .cache/
+22 -1
.prettierrc
··· 1 1 { 2 + "plugins": ["prettier-plugin-astro", "@trivago/prettier-plugin-sort-imports"], 2 3 "trailingComma": "es5", 3 4 "tabWidth": 2, 4 5 "semi": true, 5 6 "singleQuote": false, 6 7 "endOfLine": "lf", 7 - "htmlWhitespaceSensitivity": "css" 8 + "htmlWhitespaceSensitivity": "css", 9 + "overrides": [ 10 + { 11 + "files": "*.astro", 12 + "options": { 13 + "parser": "astro" 14 + } 15 + } 16 + ], 17 + "importOrder": [ 18 + "<THIRD_PARTY_MODULES>", 19 + "^@internal/(.*)$", 20 + "^@/models/(.*)$", 21 + "^@/utils/(.*)$", 22 + "^@/components/(?!ui/)(.*)$", 23 + "^@/components/ui/(.*)$", 24 + "^[./].*(?<!\\.(c|le|sc)ss)$", 25 + "^[.]/[-a-zA-Z0-9_]+[.](module)[.](css|scss|less)$" 26 + ], 27 + "importOrderSeparation": true, 28 + "importOrderSortSpecifiers": true 8 29 }
+3 -4
docs/astro.config.ts
··· 1 + import node from "@astrojs/node"; 1 2 import starlight from "@astrojs/starlight"; 3 + import starlightPluginsDocsComponents from "@trueberryless-org/starlight-plugins-docs-components"; 2 4 import { defineConfig } from "astro/config"; 3 - import starlightSidebarTopicsDropdown from "starlight-sidebar-topics-dropdown"; 4 5 import starlightLinksValidator from "starlight-links-validator"; 5 - import starlightPluginsDocsComponents from "@trueberryless-org/starlight-plugins-docs-components"; 6 6 import starlightPluginShowLatestVersion from "starlight-plugin-show-latest-version"; 7 - 8 - import node from "@astrojs/node"; 7 + import starlightSidebarTopicsDropdown from "starlight-sidebar-topics-dropdown"; 9 8 10 9 export default defineConfig({ 11 10 integrations: [
+1 -1
docs/src/content.config.ts
··· 1 - import { defineCollection } from "astro:content"; 2 1 import { docsLoader } from "@astrojs/starlight/loaders"; 3 2 import { docsSchema } from "@astrojs/starlight/schema"; 3 + import { defineCollection } from "astro:content"; 4 4 import { topicSchema } from "starlight-sidebar-topics-dropdown/schema"; 5 5 6 6 export const collections = {
+4 -1
package.json
··· 19 19 }, 20 20 "devDependencies": { 21 21 "@changesets/changelog-github": "^0.5.0", 22 - "@changesets/cli": "^2.27.11" 22 + "@changesets/cli": "^2.27.11", 23 + "@trivago/prettier-plugin-sort-imports": "5.2.2", 24 + "prettier": "3.5.3", 25 + "prettier-plugin-astro": "0.14.1" 23 26 }, 24 27 "packageManager": "pnpm@9.6.0", 25 28 "engines": {
+161 -67
packages/starlight-sidebar-topics-dropdown/components/Topics.astro
··· 1 1 --- 2 - import { Badge, Icon } from '@astrojs/starlight/components' 3 - import { AstroError } from 'astro/errors' 4 - import type { ComponentProps } from 'astro/types' 5 - import { getRelativeLocaleUrl } from 'astro:i18n' 6 - import starlightConfig from 'virtual:starlight/user-config' 7 - import config from 'virtual:starlight-sidebar-topics-dropdown/config' 2 + import { Badge, Icon } from "@astrojs/starlight/components"; 3 + import { AstroError } from "astro/errors"; 4 + import type { ComponentProps } from "astro/types"; 5 + import { getRelativeLocaleUrl } from "astro:i18n"; 6 + import starlightConfig from "virtual:starlight/user-config"; 7 + import config from "virtual:starlight-sidebar-topics-dropdown/config"; 8 8 9 - import type { StarlightSidebarTopicsDropdownSharedConfig } from '../libs/config' 9 + import type { StarlightSidebarTopicsDropdownSharedConfig } from "../libs/config"; 10 10 11 11 interface Props { 12 - current: StarlightSidebarTopicsDropdownSharedConfig[number] 12 + current: StarlightSidebarTopicsDropdownSharedConfig[number]; 13 13 } 14 14 15 - const { current } = Astro.props 15 + const { current } = Astro.props; 16 16 17 - const defaultLang = starlightConfig.defaultLocale?.lang || starlightConfig.defaultLocale?.locale || 'en' 17 + const defaultLang = 18 + starlightConfig.defaultLocale?.lang || 19 + starlightConfig.defaultLocale?.locale || 20 + "en"; 18 21 19 - function getTranslation(translations: Record<string, string>, link: string, description: string) { 20 - const defaultTranslation = translations[defaultLang] 22 + function getTranslation( 23 + translations: Record<string, string>, 24 + link: string, 25 + description: string 26 + ) { 27 + const defaultTranslation = translations[defaultLang]; 21 28 22 29 if (!defaultTranslation) { 23 30 throw new AstroError( 24 31 `The ${description} for "${link}" must have a key for the default language "${defaultLang}".`, 25 - 'Update the Starlight config to include a topic label for the default language.', 26 - ) 32 + "Update the Starlight config to include a topic label for the default language." 33 + ); 27 34 } 28 35 29 - let translation = defaultTranslation 36 + let translation = defaultTranslation; 30 37 31 38 if (Astro.currentLocale) { 32 - translation = translations[Astro.currentLocale] ?? defaultTranslation 39 + translation = translations[Astro.currentLocale] ?? defaultTranslation; 33 40 } 34 41 35 - return translation 42 + return translation; 36 43 } 37 44 --- 38 45 39 46 <div class="starlight-sidebar-topics-dropdown-dropdown"> 40 - <button id="starlight-sidebar-topics-dropdown-button" class="starlight-sidebar-topics-dropdown-button"> 41 - {current.icon && ( 42 - <div class="starlight-sidebar-topics-dropdown-button-icon"> 43 - <Icon name={current.icon as ComponentProps<typeof Icon>['name']} /> 44 - </div> 45 - )} 46 - <span class="starlight-sidebar-topics-dropdown-button-label">{typeof current.label === 'string' ? current.label : getTranslation(current.label, current.link, 'topic label')}</span> 47 - {current.badge && ( 48 - <Badge 49 - class="starlight-sidebar-topics-dropdown-badge" 50 - text={ 51 - typeof current.badge.text === 'string' 52 - ? current.badge.text 53 - : getTranslation(current.badge.text, current.link, 'current badge text') 54 - } 55 - variant={current.badge.variant} 56 - /> 57 - )} 58 - <svg width="16" height="16" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 opacity-50" aria-hidden="true"><path d="M4.93179 5.43179C4.75605 5.60753 4.75605 5.89245 4.93179 6.06819C5.10753 6.24392 5.39245 6.24392 5.56819 6.06819L7.49999 4.13638L9.43179 6.06819C9.60753 6.24392 9.89245 6.24392 10.0682 6.06819C10.2439 5.89245 10.2439 5.60753 10.0682 5.43179L7.81819 3.18179C7.73379 3.0974 7.61933 3.04999 7.49999 3.04999C7.38064 3.04999 7.26618 3.0974 7.18179 3.18179L4.93179 5.43179ZM10.0682 9.56819C10.2439 9.39245 10.2439 9.10753 10.0682 8.93179C9.89245 8.75606 9.60753 8.75606 9.43179 8.93179L7.49999 10.8636L5.56819 8.93179C5.39245 8.75606 5.10753 8.75606 4.93179 8.93179C4.75605 9.10753 4.75605 9.39245 4.93179 9.56819L7.18179 11.8182C7.35753 11.9939 7.64245 11.9939 7.81819 11.8182L10.0682 9.56819Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg> 47 + <button 48 + id="starlight-sidebar-topics-dropdown-button" 49 + class="starlight-sidebar-topics-dropdown-button" 50 + > 51 + { 52 + current.icon && ( 53 + <div class="starlight-sidebar-topics-dropdown-button-icon"> 54 + <Icon name={current.icon as ComponentProps<typeof Icon>["name"]} /> 55 + </div> 56 + ) 57 + } 58 + <span class="starlight-sidebar-topics-dropdown-button-label" 59 + >{ 60 + typeof current.label === "string" 61 + ? current.label 62 + : getTranslation(current.label, current.link, "topic label") 63 + }</span 64 + > 65 + { 66 + current.badge && ( 67 + <Badge 68 + class="starlight-sidebar-topics-dropdown-badge" 69 + text={ 70 + typeof current.badge.text === "string" 71 + ? current.badge.text 72 + : getTranslation( 73 + current.badge.text, 74 + current.link, 75 + "current badge text" 76 + ) 77 + } 78 + variant={current.badge.variant} 79 + /> 80 + ) 81 + } 82 + <svg 83 + width="16" 84 + height="16" 85 + viewBox="0 0 15 15" 86 + fill="none" 87 + xmlns="http://www.w3.org/2000/svg" 88 + class="h-4 w-4 opacity-50" 89 + aria-hidden="true" 90 + ><path 91 + d="M4.93179 5.43179C4.75605 5.60753 4.75605 5.89245 4.93179 6.06819C5.10753 6.24392 5.39245 6.24392 5.56819 6.06819L7.49999 4.13638L9.43179 6.06819C9.60753 6.24392 9.89245 6.24392 10.0682 6.06819C10.2439 5.89245 10.2439 5.60753 10.0682 5.43179L7.81819 3.18179C7.73379 3.0974 7.61933 3.04999 7.49999 3.04999C7.38064 3.04999 7.26618 3.0974 7.18179 3.18179L4.93179 5.43179ZM10.0682 9.56819C10.2439 9.39245 10.2439 9.10753 10.0682 8.93179C9.89245 8.75606 9.60753 8.75606 9.43179 8.93179L7.49999 10.8636L5.56819 8.93179C5.39245 8.75606 5.10753 8.75606 4.93179 8.93179C4.75605 9.10753 4.75605 9.39245 4.93179 9.56819L7.18179 11.8182C7.35753 11.9939 7.64245 11.9939 7.81819 11.8182L10.0682 9.56819Z" 92 + fill="currentColor" 93 + fill-rule="evenodd" 94 + clip-rule="evenodd"></path></svg 95 + > 59 96 </button> 60 97 61 - <div id="starlight-sidebar-topics-dropdown-menu" class="starlight-sidebar-topics-dropdown-menu" hidden> 98 + <div 99 + id="starlight-sidebar-topics-dropdown-menu" 100 + class="starlight-sidebar-topics-dropdown-menu" 101 + hidden 102 + > 62 103 { 63 104 config.map((topic) => { 64 - const isLinkTopic = topic.type === 'link' 65 - const isCurrent = isLinkTopic ? false : topic.label === current.label && topic.link === current.link 105 + const isLinkTopic = topic.type === "link"; 106 + const isCurrent = isLinkTopic 107 + ? false 108 + : topic.label === current.label && topic.link === current.link; 66 109 const link = 67 - !isLinkTopic && Astro.currentLocale ? getRelativeLocaleUrl(Astro.currentLocale, topic.link) : topic.link 110 + !isLinkTopic && Astro.currentLocale 111 + ? getRelativeLocaleUrl(Astro.currentLocale, topic.link) 112 + : topic.link; 68 113 const label = 69 - typeof topic.label === 'string' ? topic.label : getTranslation(topic.label, topic.link, 'topic label') 114 + typeof topic.label === "string" 115 + ? topic.label 116 + : getTranslation(topic.label, topic.link, "topic label"); 70 117 71 118 return ( 72 - <a href={link} class:list={{ 'starlight-sidebar-topics-dropdown-item': true, 'starlight-sidebar-topics-dropdown-current-item': isCurrent }}> 119 + <a 120 + href={link} 121 + class:list={{ 122 + "starlight-sidebar-topics-dropdown-item": true, 123 + "starlight-sidebar-topics-dropdown-current-item": isCurrent, 124 + }} 125 + > 73 126 {topic.icon && ( 74 127 <div class="starlight-sidebar-topics-dropdown-icon"> 75 - <Icon name={topic.icon as ComponentProps<typeof Icon>['name']} /> 128 + <Icon 129 + name={topic.icon as ComponentProps<typeof Icon>["name"]} 130 + /> 76 131 </div> 77 132 )} 78 133 <span class="starlight-sidebar-topics-dropdown-label">{label}</span> ··· 80 135 <Badge 81 136 class="starlight-sidebar-topics-dropdown-badge" 82 137 text={ 83 - typeof topic.badge.text === 'string' 138 + typeof topic.badge.text === "string" 84 139 ? topic.badge.text 85 - : getTranslation(topic.badge.text, topic.link, 'topic badge text') 140 + : getTranslation( 141 + topic.badge.text, 142 + topic.link, 143 + "topic badge text" 144 + ) 86 145 } 87 146 variant={topic.badge.variant} 88 147 /> 89 148 )} 90 149 </a> 91 - ) 150 + ); 92 151 }) 93 152 } 94 153 </div> ··· 100 159 display: block; 101 160 width: calc(100% - 2 * 2px); 102 161 margin-inline: 2px; 103 - margin-top: 4px; 162 + margin-top: 4px; 104 163 } 105 164 106 165 .starlight-sidebar-topics-dropdown-button { ··· 116 175 } 117 176 118 177 .starlight-sidebar-topics-dropdown-button::before { 119 - content: ''; 178 + content: ""; 120 179 background-color: var(--sl-color-gray-5); 121 180 border-radius: 0.25rem; 122 181 inset: -2px; ··· 124 183 z-index: -1; 125 184 } 126 185 127 - 128 - .starlight-sidebar-topics-dropdown-button:has(.starlight-sidebar-topics-dropdown-button-icon)::before { 129 - content: ''; 130 - background-image: linear-gradient(to right, var(--sl-color-text-accent) calc(1.4rem + 16px + 2px), var(--sl-color-gray-5) 0); 186 + .starlight-sidebar-topics-dropdown-button:has( 187 + .starlight-sidebar-topics-dropdown-button-icon 188 + )::before { 189 + content: ""; 190 + background-image: linear-gradient( 191 + to right, 192 + var(--sl-color-text-accent) calc(1.4rem + 16px + 2px), 193 + var(--sl-color-gray-5) 0 194 + ); 131 195 } 132 196 133 - .starlight-sidebar-topics-dropdown-button:has(.starlight-sidebar-topics-dropdown-button-icon) { 134 - background: linear-gradient(to right, var(--sl-color-text-accent) calc(1.4rem + 16px), var(--sl-color-gray-6) 0); 197 + .starlight-sidebar-topics-dropdown-button:has( 198 + .starlight-sidebar-topics-dropdown-button-icon 199 + ) { 200 + background: linear-gradient( 201 + to right, 202 + var(--sl-color-text-accent) calc(1.4rem + 16px), 203 + var(--sl-color-gray-6) 0 204 + ); 135 205 } 136 - 206 + 137 207 .starlight-sidebar-topics-dropdown-button-icon { 138 208 align-items: center; 139 209 border-radius: 0.25rem; ··· 152 222 white-space: nowrap; 153 223 } 154 224 155 - .starlight-sidebar-topics-dropdown-button:has(.starlight-sidebar-topics-dropdown-button-icon) .starlight-sidebar-topics-dropdown-button-label { 225 + .starlight-sidebar-topics-dropdown-button:has( 226 + .starlight-sidebar-topics-dropdown-button-icon 227 + ) 228 + .starlight-sidebar-topics-dropdown-button-label { 156 229 font-weight: 600; 157 230 margin-left: 1rem; 158 231 } ··· 165 238 white-space: nowrap; 166 239 } 167 240 168 - .starlight-sidebar-topics-dropdown-item:has(.starlight-sidebar-topics-dropdown-icon) .starlight-sidebar-topics-dropdown-label { 241 + .starlight-sidebar-topics-dropdown-item:has( 242 + .starlight-sidebar-topics-dropdown-icon 243 + ) 244 + .starlight-sidebar-topics-dropdown-label { 169 245 margin-left: 0.5rem; 170 246 } 171 247 172 - .starlight-sidebar-topics-dropdown-button>svg { 248 + .starlight-sidebar-topics-dropdown-button > svg { 173 249 margin-left: auto; 174 250 font-size: 1rem; 175 251 color: var(--sl-color-white); ··· 210 286 padding: 0.25rem; 211 287 } 212 288 213 - .starlight-sidebar-topics-dropdown-button:is(.starlight-sidebar-topics-dropdown-current, :hover, :focus-visible) .starlight-sidebar-topics-dropdown-icon { 289 + .starlight-sidebar-topics-dropdown-button:is( 290 + .starlight-sidebar-topics-dropdown-current, 291 + :hover, 292 + :focus-visible 293 + ) 294 + .starlight-sidebar-topics-dropdown-icon { 214 295 background-color: var(--sl-color-text-accent); 215 296 border-color: var(--sl-color-text-accent); 216 297 color: var(--sl-color-text-invert); 217 - } 298 + } 218 299 219 - .starlight-sidebar-topics-dropdown-item:is(:hover, .starlight-sidebar-topics-dropdown-current-item) .starlight-sidebar-topics-dropdown-icon { 300 + .starlight-sidebar-topics-dropdown-item:is( 301 + :hover, 302 + .starlight-sidebar-topics-dropdown-current-item 303 + ) 304 + .starlight-sidebar-topics-dropdown-icon { 220 305 background-color: var(--sl-color-text-accent); 221 306 border-color: var(--sl-color-text-accent); 222 307 color: var(--sl-color-text-invert); ··· 231 316 </style> 232 317 233 318 <script is:inline> 234 - const dropdownButton = document.getElementById('starlight-sidebar-topics-dropdown-button'); 235 - const dropdownMenu = document.getElementById('starlight-sidebar-topics-dropdown-menu'); 319 + const dropdownButton = document.getElementById( 320 + "starlight-sidebar-topics-dropdown-button" 321 + ); 322 + const dropdownMenu = document.getElementById( 323 + "starlight-sidebar-topics-dropdown-menu" 324 + ); 236 325 237 326 if (!dropdownButton || !dropdownMenu) { 238 - throw new Error('Dropdown elements not found'); 327 + throw new Error("Dropdown elements not found"); 239 328 } 240 329 241 - dropdownButton.addEventListener('click', () => { 330 + dropdownButton.addEventListener("click", () => { 242 331 const isOpen = !dropdownMenu.hidden; 243 332 dropdownMenu.hidden = isOpen; 244 333 }); 245 334 246 335 function closeDropdown(event) { 247 - if (dropdownMenu && !dropdownMenu.contains(event.target) && dropdownButton && !dropdownButton.contains(event.target)) { 336 + if ( 337 + dropdownMenu && 338 + !dropdownMenu.contains(event.target) && 339 + dropdownButton && 340 + !dropdownButton.contains(event.target) 341 + ) { 248 342 dropdownMenu.hidden = true; 249 343 } 250 344 } 251 345 252 - document.addEventListener('click', closeDropdown); 346 + document.addEventListener("click", closeDropdown); 253 347 </script>
+28 -19
packages/starlight-sidebar-topics-dropdown/components/starlight/Sidebar.astro
··· 1 1 --- 2 - import { StarlightSidebarTopicsDropdownLocalsSymbol, type StarlightSidebarTopicsDropdownLocals } from '../../libs/locals' 3 - import Topics from '../Topics.astro' 4 - const { entry } = Astro.locals.starlightRoute 2 + import { 3 + StarlightSidebarTopicsDropdownLocalsSymbol, 4 + type StarlightSidebarTopicsDropdownLocals, 5 + } from "../../libs/locals"; 6 + import Topics from "../Topics.astro"; 7 + const { entry } = Astro.locals.starlightRoute; 5 8 // @ts-expect-error - See `libs/locals` for more information. 6 - const currentTopic = Astro.locals[StarlightSidebarTopicsDropdownLocalsSymbol] as StarlightSidebarTopicsDropdownLocals 9 + const currentTopic = Astro.locals[ 10 + StarlightSidebarTopicsDropdownLocalsSymbol 11 + ] as StarlightSidebarTopicsDropdownLocals; 7 12 --- 8 13 9 - {entry['data'].template !== 'splash' && currentTopic && <Topics current={currentTopic.config} />} 14 + { 15 + entry["data"].template !== "splash" && currentTopic && ( 16 + <Topics current={currentTopic.config} /> 17 + ) 18 + } 10 19 11 20 <style is:global> 12 - sl-sidebar-state-persist ul.top-level > li:not(:has(details)) { 13 - margin-top: 0rem; 14 - } 15 - sl-sidebar-state-persist ul.top-level > li:has(details) { 16 - margin-block: 0.5rem; 17 - } 18 - /* sl-sidebar-state-persist ul.top-level > li > a { 21 + sl-sidebar-state-persist ul.top-level > li:not(:has(details)) { 22 + margin-top: 0rem; 23 + } 24 + sl-sidebar-state-persist ul.top-level > li:has(details) { 25 + margin-block: 0.5rem; 26 + } 27 + /* sl-sidebar-state-persist ul.top-level > li > a { 19 28 font-size: var(--sl-text-sm); 20 29 } */ 21 - sl-sidebar-state-persist ul.top-level > li > a[aria-current='page'] { 22 - font-weight: 600; 23 - } 24 - sl-sidebar-state-persist ul.top-level > li > a[aria-current='false'] { 25 - font-weight: 400; 26 - color: var(--sl-color-gray-2); 27 - } 30 + sl-sidebar-state-persist ul.top-level > li > a[aria-current="page"] { 31 + font-weight: 600; 32 + } 33 + sl-sidebar-state-persist ul.top-level > li > a[aria-current="false"] { 34 + font-weight: 400; 35 + color: var(--sl-color-gray-2); 36 + } 28 37 </style>
+1 -1
packages/starlight-sidebar-topics-dropdown/index.ts
··· 8 8 type StarlightSidebarTopicsDropdownUserConfig, 9 9 } from "./libs/config"; 10 10 import { throwPluginError } from "./libs/plugin"; 11 - import { vitePluginStarlightSidebarTopicsDropdown } from "./libs/vite"; 12 11 import { overrideStarlightComponent } from "./libs/starlight"; 12 + import { vitePluginStarlightSidebarTopicsDropdown } from "./libs/vite"; 13 13 14 14 export type { 15 15 StarlightSidebarTopicsDropdownConfig,
+2
packages/starlight-sidebar-topics-dropdown/libs/content.ts
··· 1 1 import type { StarlightRouteData } from "@astrojs/starlight/route-data"; 2 + 2 3 import type { TopicFrontmatterSchema } from "../schema"; 4 + 3 5 export function isStarlightEntryWithTopic( 4 6 entry: StarlightEntry 5 7 ): entry is StarlightEntryWithTopic {
+1 -1
packages/starlight-sidebar-topics-dropdown/libs/sidebar.ts
··· 1 1 import type { StarlightRouteData } from "@astrojs/starlight/route-data"; 2 2 3 3 import type { StarlightSidebarTopicsDropdownSharedConfig } from "./config"; 4 - import { isStarlightEntryWithTopic, type StarlightEntry } from "./content"; 4 + import { type StarlightEntry, isStarlightEntryWithTopic } from "./content"; 5 5 import { getLocaleFromSlug, getLocalizedSlug } from "./i18n"; 6 6 import { arePathnamesEqual, stripLeadingAndTrailingSlashes } from "./pathname"; 7 7
+1 -1
packages/starlight-sidebar-topics-dropdown/middleware.ts
··· 2 2 import config from "virtual:starlight-sidebar-topics-dropdown/config"; 3 3 4 4 import { 5 - StarlightSidebarTopicsDropdownLocalsSymbol, 6 5 type StarlightSidebarTopicsDropdownLocals, 6 + StarlightSidebarTopicsDropdownLocalsSymbol, 7 7 } from "./libs/locals"; 8 8 import { throwPluginError } from "./libs/plugin"; 9 9 import {
+2 -2
packages/starlight-sidebar-topics-dropdown/overrides/Sidebar.astro
··· 1 1 --- 2 - import Default from '@astrojs/starlight/components/Sidebar.astro' 3 - import StarlightSidebarTopicsDropdownSidebar from '../components/starlight/Sidebar.astro' 2 + import Default from "@astrojs/starlight/components/Sidebar.astro"; 3 + import StarlightSidebarTopicsDropdownSidebar from "../components/starlight/Sidebar.astro"; 4 4 --- 5 5 6 6 <StarlightSidebarTopicsDropdownSidebar />
+1
packages/starlight-sidebar-topics-dropdown/schema.ts
··· 1 1 import { z } from "astro/zod"; 2 + 2 3 export const topicSchema = z.object({ 3 4 /** 4 5 * ID of the topic to associate with the current page if the page is not listed in any topic sidebar configuration.
+197
pnpm-lock.yaml
··· 14 14 '@changesets/cli': 15 15 specifier: ^2.27.11 16 16 version: 2.28.1 17 + '@trivago/prettier-plugin-sort-imports': 18 + specifier: 5.2.2 19 + version: 5.2.2(prettier@3.5.3) 20 + prettier: 21 + specifier: 3.5.3 22 + version: 3.5.3 23 + prettier-plugin-astro: 24 + specifier: 0.14.1 25 + version: 0.14.1 17 26 18 27 docs: 19 28 dependencies: ··· 112 121 resolution: {integrity: sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==} 113 122 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 114 123 124 + '@babel/code-frame@7.26.2': 125 + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} 126 + engines: {node: '>=6.9.0'} 127 + 128 + '@babel/generator@7.26.10': 129 + resolution: {integrity: sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==} 130 + engines: {node: '>=6.9.0'} 131 + 115 132 '@babel/helper-string-parser@7.25.9': 116 133 resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 117 134 engines: {node: '>=6.9.0'} ··· 119 136 '@babel/helper-validator-identifier@7.25.9': 120 137 resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 121 138 engines: {node: '>=6.9.0'} 139 + 140 + '@babel/parser@7.26.10': 141 + resolution: {integrity: sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==} 142 + engines: {node: '>=6.0.0'} 143 + hasBin: true 122 144 123 145 '@babel/parser@7.26.3': 124 146 resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} ··· 127 149 128 150 '@babel/runtime@7.26.0': 129 151 resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} 152 + engines: {node: '>=6.9.0'} 153 + 154 + '@babel/template@7.26.9': 155 + resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} 156 + engines: {node: '>=6.9.0'} 157 + 158 + '@babel/traverse@7.26.10': 159 + resolution: {integrity: sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==} 160 + engines: {node: '>=6.9.0'} 161 + 162 + '@babel/types@7.26.10': 163 + resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} 130 164 engines: {node: '>=6.9.0'} 131 165 132 166 '@babel/types@7.26.3': ··· 474 508 cpu: [x64] 475 509 os: [win32] 476 510 511 + '@jridgewell/gen-mapping@0.3.8': 512 + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 513 + engines: {node: '>=6.0.0'} 514 + 515 + '@jridgewell/resolve-uri@3.1.2': 516 + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 517 + engines: {node: '>=6.0.0'} 518 + 519 + '@jridgewell/set-array@1.2.1': 520 + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 521 + engines: {node: '>=6.0.0'} 522 + 477 523 '@jridgewell/sourcemap-codec@1.5.0': 478 524 resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 525 + 526 + '@jridgewell/trace-mapping@0.3.25': 527 + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 479 528 480 529 '@manypkg/find-root@1.1.0': 481 530 resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} ··· 654 703 '@shikijs/vscode-textmate@10.0.2': 655 704 resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} 656 705 706 + '@trivago/prettier-plugin-sort-imports@5.2.2': 707 + resolution: {integrity: sha512-fYDQA9e6yTNmA13TLVSA+WMQRc5Bn/c0EUBditUHNfMMxN7M82c38b1kEggVE3pLpZ0FwkwJkUEKMiOi52JXFA==} 708 + engines: {node: '>18.12'} 709 + peerDependencies: 710 + '@vue/compiler-sfc': 3.x 711 + prettier: 2.x - 3.x 712 + prettier-plugin-svelte: 3.x 713 + svelte: 4.x || 5.x 714 + peerDependenciesMeta: 715 + '@vue/compiler-sfc': 716 + optional: true 717 + prettier-plugin-svelte: 718 + optional: true 719 + svelte: 720 + optional: true 721 + 657 722 '@trueberryless-org/starlight-plugins-docs-components@0.4.1': 658 723 resolution: {integrity: sha512-lrQspPQg15tMBD5UbmR24LZbIOPxZjr3pO9ClqkiKC6lsjvmLsgTZ0p0f1f2hiK05eGtast1sCmTOn/itKvkKg==} 659 724 engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} ··· 1181 1246 resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1182 1247 deprecated: Glob versions prior to v9 are no longer supported 1183 1248 1249 + globals@11.12.0: 1250 + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1251 + engines: {node: '>=4'} 1252 + 1184 1253 globby@11.1.0: 1185 1254 resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1186 1255 engines: {node: '>=10'} ··· 1368 1437 isexe@2.0.0: 1369 1438 resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1370 1439 1440 + javascript-natural-sort@0.7.1: 1441 + resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} 1442 + 1371 1443 jiti@2.4.2: 1372 1444 resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} 1373 1445 hasBin: true 1446 + 1447 + js-tokens@4.0.0: 1448 + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1374 1449 1375 1450 js-yaml@3.14.1: 1376 1451 resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} ··· 1380 1455 resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1381 1456 hasBin: true 1382 1457 1458 + jsesc@3.1.0: 1459 + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 1460 + engines: {node: '>=6'} 1461 + hasBin: true 1462 + 1383 1463 json-buffer@3.0.1: 1384 1464 resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1385 1465 ··· 1417 1497 1418 1498 lodash.startcase@4.4.0: 1419 1499 resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} 1500 + 1501 + lodash@4.17.21: 1502 + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1420 1503 1421 1504 longest-streak@3.1.0: 1422 1505 resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} ··· 1799 1882 resolution: {integrity: sha512-rU+ZAv1Ur9jAUZtGPebQVQPzdGhNzaEiQ7VL9+cjsAWPHFYOccNXPNiev1CCDSOg/2j7UujM7ojNhpkuILEVNQ==} 1800 1883 engines: {node: '>=18.12'} 1801 1884 1885 + prettier-plugin-astro@0.14.1: 1886 + resolution: {integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==} 1887 + engines: {node: ^14.15.0 || >=16.0.0} 1888 + 1802 1889 prettier@2.8.8: 1803 1890 resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1804 1891 engines: {node: '>=10.13.0'} 1805 1892 hasBin: true 1806 1893 1894 + prettier@3.5.3: 1895 + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} 1896 + engines: {node: '>=14'} 1897 + hasBin: true 1898 + 1807 1899 prismjs@1.29.0: 1808 1900 resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} 1809 1901 engines: {node: '>=6'} ··· 1933 2025 run-parallel@1.2.0: 1934 2026 resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1935 2027 2028 + s.color@0.0.15: 2029 + resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} 2030 + 1936 2031 safer-buffer@2.1.2: 1937 2032 resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 2033 + 2034 + sass-formatter@0.7.9: 2035 + resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} 1938 2036 1939 2037 sax@1.4.1: 1940 2038 resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} ··· 2086 2184 style-to-object@1.0.8: 2087 2185 resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} 2088 2186 2187 + suf-log@2.5.3: 2188 + resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} 2189 + 2089 2190 term-size@2.2.1: 2090 2191 resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} 2091 2192 engines: {node: '>=8'} ··· 2509 2610 transitivePeerDependencies: 2510 2611 - supports-color 2511 2612 2613 + '@babel/code-frame@7.26.2': 2614 + dependencies: 2615 + '@babel/helper-validator-identifier': 7.25.9 2616 + js-tokens: 4.0.0 2617 + picocolors: 1.1.1 2618 + 2619 + '@babel/generator@7.26.10': 2620 + dependencies: 2621 + '@babel/parser': 7.26.10 2622 + '@babel/types': 7.26.10 2623 + '@jridgewell/gen-mapping': 0.3.8 2624 + '@jridgewell/trace-mapping': 0.3.25 2625 + jsesc: 3.1.0 2626 + 2512 2627 '@babel/helper-string-parser@7.25.9': {} 2513 2628 2514 2629 '@babel/helper-validator-identifier@7.25.9': {} 2515 2630 2631 + '@babel/parser@7.26.10': 2632 + dependencies: 2633 + '@babel/types': 7.26.10 2634 + 2516 2635 '@babel/parser@7.26.3': 2517 2636 dependencies: 2518 2637 '@babel/types': 7.26.3 ··· 2520 2639 '@babel/runtime@7.26.0': 2521 2640 dependencies: 2522 2641 regenerator-runtime: 0.14.1 2642 + 2643 + '@babel/template@7.26.9': 2644 + dependencies: 2645 + '@babel/code-frame': 7.26.2 2646 + '@babel/parser': 7.26.10 2647 + '@babel/types': 7.26.10 2648 + 2649 + '@babel/traverse@7.26.10': 2650 + dependencies: 2651 + '@babel/code-frame': 7.26.2 2652 + '@babel/generator': 7.26.10 2653 + '@babel/parser': 7.26.10 2654 + '@babel/template': 7.26.9 2655 + '@babel/types': 7.26.10 2656 + debug: 4.4.0 2657 + globals: 11.12.0 2658 + transitivePeerDependencies: 2659 + - supports-color 2660 + 2661 + '@babel/types@7.26.10': 2662 + dependencies: 2663 + '@babel/helper-string-parser': 7.25.9 2664 + '@babel/helper-validator-identifier': 7.25.9 2523 2665 2524 2666 '@babel/types@7.26.3': 2525 2667 dependencies: ··· 2873 3015 '@img/sharp-win32-x64@0.33.5': 2874 3016 optional: true 2875 3017 3018 + '@jridgewell/gen-mapping@0.3.8': 3019 + dependencies: 3020 + '@jridgewell/set-array': 1.2.1 3021 + '@jridgewell/sourcemap-codec': 1.5.0 3022 + '@jridgewell/trace-mapping': 0.3.25 3023 + 3024 + '@jridgewell/resolve-uri@3.1.2': {} 3025 + 3026 + '@jridgewell/set-array@1.2.1': {} 3027 + 2876 3028 '@jridgewell/sourcemap-codec@1.5.0': {} 3029 + 3030 + '@jridgewell/trace-mapping@0.3.25': 3031 + dependencies: 3032 + '@jridgewell/resolve-uri': 3.1.2 3033 + '@jridgewell/sourcemap-codec': 1.5.0 2877 3034 2878 3035 '@manypkg/find-root@1.1.0': 2879 3036 dependencies: ··· 3051 3208 '@types/hast': 3.0.4 3052 3209 3053 3210 '@shikijs/vscode-textmate@10.0.2': {} 3211 + 3212 + '@trivago/prettier-plugin-sort-imports@5.2.2(prettier@3.5.3)': 3213 + dependencies: 3214 + '@babel/generator': 7.26.10 3215 + '@babel/parser': 7.26.10 3216 + '@babel/traverse': 7.26.10 3217 + '@babel/types': 7.26.10 3218 + javascript-natural-sort: 0.7.1 3219 + lodash: 4.17.21 3220 + prettier: 3.5.3 3221 + transitivePeerDependencies: 3222 + - supports-color 3054 3223 3055 3224 '@trueberryless-org/starlight-plugins-docs-components@0.4.1(@astrojs/starlight@0.32.1(astro@5.3.0(jiti@2.4.2)(rollup@4.34.8)(typescript@5.7.2)))(astro@5.3.0(jiti@2.4.2)(rollup@4.34.8)(typescript@5.7.2))': 3056 3225 dependencies: ··· 3651 3820 once: 1.4.0 3652 3821 path-is-absolute: 1.0.1 3653 3822 3823 + globals@11.12.0: {} 3824 + 3654 3825 globby@11.1.0: 3655 3826 dependencies: 3656 3827 array-union: 2.1.0 ··· 3958 4129 is-inside-container: 1.0.0 3959 4130 3960 4131 isexe@2.0.0: {} 4132 + 4133 + javascript-natural-sort@0.7.1: {} 3961 4134 3962 4135 jiti@2.4.2: 3963 4136 optional: true 3964 4137 4138 + js-tokens@4.0.0: {} 4139 + 3965 4140 js-yaml@3.14.1: 3966 4141 dependencies: 3967 4142 argparse: 1.0.10 ··· 3970 4145 js-yaml@4.1.0: 3971 4146 dependencies: 3972 4147 argparse: 2.0.1 4148 + 4149 + jsesc@3.1.0: {} 3973 4150 3974 4151 json-buffer@3.0.1: {} 3975 4152 ··· 4009 4186 p-locate: 4.1.0 4010 4187 4011 4188 lodash.startcase@4.4.0: {} 4189 + 4190 + lodash@4.17.21: {} 4012 4191 4013 4192 longest-streak@3.1.0: {} 4014 4193 ··· 4670 4849 find-yarn-workspace-root2: 1.2.16 4671 4850 which-pm: 3.0.1 4672 4851 4852 + prettier-plugin-astro@0.14.1: 4853 + dependencies: 4854 + '@astrojs/compiler': 2.10.3 4855 + prettier: 3.5.3 4856 + sass-formatter: 0.7.9 4857 + 4673 4858 prettier@2.8.8: {} 4859 + 4860 + prettier@3.5.3: {} 4674 4861 4675 4862 prismjs@1.29.0: {} 4676 4863 ··· 4900 5087 dependencies: 4901 5088 queue-microtask: 1.2.3 4902 5089 5090 + s.color@0.0.15: {} 5091 + 4903 5092 safer-buffer@2.1.2: {} 5093 + 5094 + sass-formatter@0.7.9: 5095 + dependencies: 5096 + suf-log: 2.5.3 4904 5097 4905 5098 sax@1.4.1: {} 4906 5099 ··· 5090 5283 style-to-object@1.0.8: 5091 5284 dependencies: 5092 5285 inline-style-parser: 0.2.4 5286 + 5287 + suf-log@2.5.3: 5288 + dependencies: 5289 + s.color: 0.0.15 5093 5290 5094 5291 term-size@2.2.1: {} 5095 5292