type Location = 'right'; type Size = 'large'; type Pinned = 'pinned'; type ModifierCombination = [Location, Pinned?, Size?] | [Pinned, Location?, Size?] | [Size, Location?, Pinned?] | [Location, Size, Pinned?] | [Pinned, Size, Location?] | [Size, Pinned, Location?]; type SidebarModifierConfig = { 'c-sidebar-container': ModifierCombination; }; export type SidebarModifier = { [P in keyof SidebarModifierConfig]: { prefix: P; modifiers: SidebarModifierConfig[P]; }; }[keyof SidebarModifierConfig]; /** * Represents the possible types for modifier items in an Sidebar configuration. * It can either be an array of `SidebarModifier` or a single `ModifierCombination` for shorthand usage. */ export type ModifierItems = SidebarModifier[]; export {};