|
| 1 | +import { type ComponentType, type ReactNode } from "react"; |
| 2 | +import { AbacusIcon } from "~/assets/icons/AbacusIcon"; |
| 3 | +import { AIChatIcon } from "~/assets/icons/AIChatIcon"; |
| 4 | +import { AIMetricsIcon } from "~/assets/icons/AIMetricsIcon"; |
| 5 | +import { AIPenIcon } from "~/assets/icons/AIPenIcon"; |
| 6 | +import { AISparkleIcon } from "~/assets/icons/AISparkleIcon"; |
| 7 | +import { |
| 8 | + AnthropicIcon, |
| 9 | + AzureIcon, |
| 10 | + CerebrasIcon, |
| 11 | + DeepseekIcon, |
| 12 | + GeminiIcon, |
| 13 | + LlamaIcon, |
| 14 | + MistralIcon, |
| 15 | + OpenAIIcon, |
| 16 | + PerplexityIcon, |
| 17 | + XAIIcon, |
| 18 | +} from "~/assets/icons/AiProviderIcons"; |
| 19 | +import { AnthropicLogoIcon } from "~/assets/icons/AnthropicLogoIcon"; |
| 20 | +import { ArchiveIcon, UnarchiveIcon } from "~/assets/icons/ArchiveIcon"; |
| 21 | +import { ArrowLeftRightIcon } from "~/assets/icons/ArrowLeftRightIcon"; |
| 22 | +import { ArrowRightSquareIcon } from "~/assets/icons/ArrowRightSquareIcon"; |
| 23 | +import { ArrowTopRightBottomLeftIcon } from "~/assets/icons/ArrowTopRightBottomLeftIcon"; |
| 24 | +import { AttemptIcon } from "~/assets/icons/AttemptIcon"; |
| 25 | +import { AvatarCircleIcon } from "~/assets/icons/AvatarCircleIcon"; |
| 26 | +import { BatchesIcon } from "~/assets/icons/BatchesIcon"; |
| 27 | +import { BeakerIcon } from "~/assets/icons/BeakerIcon"; |
| 28 | +import { BellIcon } from "~/assets/icons/BellIcon"; |
| 29 | +import { BookIcon } from "~/assets/icons/BookIcon"; |
| 30 | +import { Box3DIcon } from "~/assets/icons/Box3DIcon"; |
| 31 | +import { BugIcon } from "~/assets/icons/BugIcon"; |
| 32 | +import { BulbIcon } from "~/assets/icons/BulbIcon"; |
| 33 | +import { BunLogoIcon } from "~/assets/icons/BunLogoIcon"; |
| 34 | +import { ChartArrowIcon } from "~/assets/icons/ChartArrowIcon"; |
| 35 | +import { ChartBarIcon } from "~/assets/icons/ChartBarIcon"; |
| 36 | +import { ChevronExtraSmallDown } from "~/assets/icons/ChevronExtraSmallDown"; |
| 37 | +import { ChevronExtraSmallUp } from "~/assets/icons/ChevronExtraSmallUp"; |
| 38 | +import { ClockIcon } from "~/assets/icons/ClockIcon"; |
| 39 | +import { ClockRotateLeftIcon } from "~/assets/icons/ClockRotateLeftIcon"; |
| 40 | +import { AWS, DigitalOcean } from "~/assets/icons/CloudProviderIcon"; |
| 41 | +import { CodeSquareIcon } from "~/assets/icons/CodeSquareIcon"; |
| 42 | +import { ConcurrencyIcon } from "~/assets/icons/ConcurrencyIcon"; |
| 43 | +import { |
| 44 | + CheckingConnectionIcon, |
| 45 | + ConnectedIcon, |
| 46 | + DisconnectedIcon, |
| 47 | +} from "~/assets/icons/ConnectionIcons"; |
| 48 | +import { CubeSparkleIcon } from "~/assets/icons/CubeSparkleIcon"; |
| 49 | +import { DeploymentsIcon } from "~/assets/icons/DeploymentsIcon"; |
| 50 | +import { DialIcon } from "~/assets/icons/DialIcon"; |
| 51 | +import { DropdownIcon } from "~/assets/icons/DropdownIcon"; |
| 52 | +import { DynamicTriggerIcon } from "~/assets/icons/DynamicTriggerIcon"; |
| 53 | +import { EndpointIcon } from "~/assets/icons/EndpointIcon"; |
| 54 | +import { EnvelopeIcon } from "~/assets/icons/EnvelopeIcon"; |
| 55 | +import { |
| 56 | + BranchEnvironmentIconSmall, |
| 57 | + DeployedEnvironmentIcon, |
| 58 | + DeployedEnvironmentIconSmall, |
| 59 | + DevEnvironmentIcon, |
| 60 | + DevEnvironmentIconSmall, |
| 61 | + PreviewEnvironmentIconSmall, |
| 62 | + ProdEnvironmentIcon, |
| 63 | + ProdEnvironmentIconSmall, |
| 64 | +} from "~/assets/icons/EnvironmentIcons"; |
| 65 | +import { ErrorIcon } from "~/assets/icons/ErrorIcon"; |
| 66 | +import { ExitIcon } from "~/assets/icons/ExitIcon"; |
| 67 | +import { FolderClosedIcon } from "~/assets/icons/FolderClosedIcon"; |
| 68 | +import { FolderOpenIcon } from "~/assets/icons/FolderOpenIcon"; |
| 69 | +import { FunctionIcon } from "~/assets/icons/FunctionIcon"; |
| 70 | +import { GlobeLinesIcon } from "~/assets/icons/GlobeLinesIcon"; |
| 71 | +import { HomeIcon } from "~/assets/icons/HomeIcon"; |
| 72 | +import { IDIcon } from "~/assets/icons/IDIcon"; |
| 73 | +import { InfoIcon } from "~/assets/icons/InfoIcon"; |
| 74 | +import { IntegrationsIcon } from "~/assets/icons/IntegrationsIcon"; |
| 75 | +import { KeyboardDownIcon } from "~/assets/icons/KeyboardDownIcon"; |
| 76 | +import { KeyboardEnterIcon } from "~/assets/icons/KeyboardEnterIcon"; |
| 77 | +import { KeyboardIcon } from "~/assets/icons/KeyboardIcon"; |
| 78 | +import { KeyboardLeftIcon } from "~/assets/icons/KeyboardLeftIcon"; |
| 79 | +import { KeyboardRightIcon } from "~/assets/icons/KeyboardRightIcon"; |
| 80 | +import { KeyboardUpIcon } from "~/assets/icons/KeyboardUpIcon"; |
| 81 | +import { KeyboardWindowsIcon } from "~/assets/icons/KeyboardWindowsIcon"; |
| 82 | +import { KeyIcon } from "~/assets/icons/KeyIcon"; |
| 83 | +import { KeyValueIcon } from "~/assets/icons/KeyValueIcon"; |
| 84 | +import { ListBulletIcon } from "~/assets/icons/ListBulletIcon"; |
| 85 | +import { ListCheckedIcon } from "~/assets/icons/ListCheckedIcon"; |
| 86 | +import { LogsIcon } from "~/assets/icons/LogsIcon"; |
| 87 | +import { MachineDefaultIcon } from "~/assets/icons/MachineIcon"; |
| 88 | +import { MiddlewareIcon } from "~/assets/icons/MiddlewareIcon"; |
| 89 | +import { MoveToBottomIcon } from "~/assets/icons/MoveToBottomIcon"; |
| 90 | +import { MoveToTopIcon } from "~/assets/icons/MoveToTopIcon"; |
| 91 | +import { MoveUpIcon } from "~/assets/icons/MoveUpIcon"; |
| 92 | +import { NodejsLogoIcon } from "~/assets/icons/NodejsLogoIcon"; |
| 93 | +import { OneTreeIcon } from "~/assets/icons/OneTreeIcon"; |
| 94 | +import { PadlockIcon } from "~/assets/icons/PadlockIcon"; |
| 95 | +import { PauseIcon } from "~/assets/icons/PauseIcon"; |
| 96 | +import { PlaygroundIcon } from "~/assets/icons/PlaygroundIcon"; |
| 97 | +import { PlusIcon } from "~/assets/icons/PlusIcon"; |
| 98 | +import { PrivateIcon } from "~/assets/icons/PrivateIcon"; |
| 99 | +import { PromoteIcon } from "~/assets/icons/PromoteIcon"; |
| 100 | +import { PythonLogoIcon } from "~/assets/icons/PythonLogoIcon"; |
| 101 | +import { QuestionMarkIcon } from "~/assets/icons/QuestionMarkIcon"; |
| 102 | +import { QueuesIcon } from "~/assets/icons/QueuesIcon"; |
| 103 | +import { RadarPulseIcon } from "~/assets/icons/RadarPulseIcon"; |
| 104 | +import { FlagEurope, FlagUSA } from "~/assets/icons/RegionIcons"; |
| 105 | +import { RightSideMenuIcon } from "~/assets/icons/RightSideMenuIcon"; |
| 106 | +import { RolesIcon } from "~/assets/icons/RolesIcon"; |
| 107 | +import { RunFunctionIcon } from "~/assets/icons/RunFunctionIcon"; |
| 108 | +import { |
| 109 | + RunsIcon, |
| 110 | + RunsIconExtraSmall, |
| 111 | + RunsIconSmall, |
| 112 | +} from "~/assets/icons/RunsIcon"; |
| 113 | +import { SaplingIcon } from "~/assets/icons/SaplingIcon"; |
| 114 | +import { ScheduleIcon } from "~/assets/icons/ScheduleIcon"; |
| 115 | +import { ShieldIcon } from "~/assets/icons/ShieldIcon"; |
| 116 | +import { ShieldLockIcon } from "~/assets/icons/ShieldLockIcon"; |
| 117 | +import { |
| 118 | + ShowParentIcon, |
| 119 | + ShowParentIconSelected, |
| 120 | +} from "~/assets/icons/ShowParentIcon"; |
| 121 | +import { SideMenuRightClosedIcon } from "~/assets/icons/SideMenuRightClosed"; |
| 122 | +import { SlackIcon } from "~/assets/icons/SlackIcon"; |
| 123 | +import { SlackMonoIcon } from "~/assets/icons/SlackMonoIcon"; |
| 124 | +import { SlidersIcon } from "~/assets/icons/SlidersIcon"; |
| 125 | +import { SnakedArrowIcon } from "~/assets/icons/SnakedArrowIcon"; |
| 126 | +import { SparkleListIcon } from "~/assets/icons/SparkleListIcon"; |
| 127 | +import { StarIcon } from "~/assets/icons/StarIcon"; |
| 128 | +import { StatusIcon } from "~/assets/icons/StatusIcon"; |
| 129 | +import { StreamsIcon } from "~/assets/icons/StreamsIcon"; |
| 130 | +import { TableIcon } from "~/assets/icons/TableIcon"; |
| 131 | +import { TaskCachedIcon } from "~/assets/icons/TaskCachedIcon"; |
| 132 | +import { TaskIcon, TaskIconSmall } from "~/assets/icons/TaskIcon"; |
| 133 | +import { TestTubeIcon } from "~/assets/icons/TestTubeIcon"; |
| 134 | +import { TextInlineIcon } from "~/assets/icons/TextInlineIcon"; |
| 135 | +import { TextWrapIcon } from "~/assets/icons/TextWrapIcon"; |
| 136 | +import { TimedOutIcon } from "~/assets/icons/TimedOutIcon"; |
| 137 | +import { ToggleArrowIcon } from "~/assets/icons/ToggleArrowIcon"; |
| 138 | +import { TraceIcon } from "~/assets/icons/TraceIcon"; |
| 139 | +import { TriggerIcon } from "~/assets/icons/TriggerIcon"; |
| 140 | +import { TwoTreesIcon } from "~/assets/icons/TwoTreesIcon"; |
| 141 | +import { UserCrossIcon } from "~/assets/icons/UserCrossIcon"; |
| 142 | +import { UserGroupIcon } from "~/assets/icons/UserGroupIcon"; |
| 143 | +import { WaitpointTokenIcon } from "~/assets/icons/WaitpointTokenIcon"; |
| 144 | +import { WarmStartIcon } from "~/assets/icons/WarmStartIcon"; |
| 145 | +import { WebhookIcon } from "~/assets/icons/WebhookIcon"; |
| 146 | + |
| 147 | +type IconEntry = { |
| 148 | + name: string; |
| 149 | + render: (className: string) => ReactNode; |
| 150 | +}; |
| 151 | + |
| 152 | +function simple(Component: ComponentType<{ className?: string }>): IconEntry["render"] { |
| 153 | + return (className) => <Component className={className} />; |
| 154 | +} |
| 155 | + |
| 156 | +const icons: IconEntry[] = [ |
| 157 | + { name: "AbacusIcon", render: simple(AbacusIcon) }, |
| 158 | + { name: "AIChatIcon", render: simple(AIChatIcon) }, |
| 159 | + { name: "AIMetricsIcon", render: simple(AIMetricsIcon) }, |
| 160 | + { name: "AIPenIcon", render: simple(AIPenIcon) }, |
| 161 | + { name: "AISparkleIcon", render: simple(AISparkleIcon) }, |
| 162 | + { name: "AnthropicIcon", render: simple(AnthropicIcon) }, |
| 163 | + { name: "AnthropicLogoIcon", render: simple(AnthropicLogoIcon) }, |
| 164 | + { name: "ArchiveIcon", render: simple(ArchiveIcon) }, |
| 165 | + { name: "ArrowLeftRightIcon", render: simple(ArrowLeftRightIcon) }, |
| 166 | + { name: "ArrowRightSquareIcon", render: simple(ArrowRightSquareIcon) }, |
| 167 | + { name: "ArrowTopRightBottomLeftIcon", render: simple(ArrowTopRightBottomLeftIcon) }, |
| 168 | + { name: "AttemptIcon", render: simple(AttemptIcon) }, |
| 169 | + { name: "AvatarCircleIcon", render: simple(AvatarCircleIcon) }, |
| 170 | + { name: "AWS", render: simple(AWS) }, |
| 171 | + { name: "AzureIcon", render: simple(AzureIcon) }, |
| 172 | + { name: "BatchesIcon", render: simple(BatchesIcon) }, |
| 173 | + { name: "BeakerIcon", render: simple(BeakerIcon) }, |
| 174 | + { name: "BellIcon", render: simple(BellIcon) }, |
| 175 | + { name: "BookIcon", render: simple(BookIcon) }, |
| 176 | + { name: "Box3DIcon", render: simple(Box3DIcon) }, |
| 177 | + { name: "BranchEnvironmentIconSmall", render: simple(BranchEnvironmentIconSmall) }, |
| 178 | + { name: "BugIcon", render: simple(BugIcon) }, |
| 179 | + { name: "BulbIcon", render: simple(BulbIcon) }, |
| 180 | + { name: "BunLogoIcon", render: simple(BunLogoIcon) }, |
| 181 | + { name: "CerebrasIcon", render: simple(CerebrasIcon) }, |
| 182 | + { name: "ChartArrowIcon", render: simple(ChartArrowIcon) }, |
| 183 | + { name: "ChartBarIcon", render: simple(ChartBarIcon) }, |
| 184 | + { name: "CheckingConnectionIcon", render: simple(CheckingConnectionIcon) }, |
| 185 | + { name: "ChevronExtraSmallDown", render: simple(ChevronExtraSmallDown) }, |
| 186 | + { name: "ChevronExtraSmallUp", render: simple(ChevronExtraSmallUp) }, |
| 187 | + { name: "ClockIcon", render: simple(ClockIcon) }, |
| 188 | + { name: "ClockRotateLeftIcon", render: simple(ClockRotateLeftIcon) }, |
| 189 | + { name: "CodeSquareIcon", render: simple(CodeSquareIcon) }, |
| 190 | + { name: "ConcurrencyIcon", render: simple(ConcurrencyIcon) }, |
| 191 | + { name: "ConnectedIcon", render: simple(ConnectedIcon) }, |
| 192 | + { name: "CubeSparkleIcon", render: simple(CubeSparkleIcon) }, |
| 193 | + { name: "DeepseekIcon", render: simple(DeepseekIcon) }, |
| 194 | + { name: "DeployedEnvironmentIcon", render: simple(DeployedEnvironmentIcon) }, |
| 195 | + { name: "DeployedEnvironmentIconSmall", render: simple(DeployedEnvironmentIconSmall) }, |
| 196 | + { name: "DeploymentsIcon", render: simple(DeploymentsIcon) }, |
| 197 | + { name: "DevEnvironmentIcon", render: simple(DevEnvironmentIcon) }, |
| 198 | + { name: "DevEnvironmentIconSmall", render: simple(DevEnvironmentIconSmall) }, |
| 199 | + { name: "DialIcon", render: simple(DialIcon) }, |
| 200 | + { name: "DigitalOcean", render: simple(DigitalOcean) }, |
| 201 | + { name: "DisconnectedIcon", render: simple(DisconnectedIcon) }, |
| 202 | + { name: "DropdownIcon", render: simple(DropdownIcon) }, |
| 203 | + { name: "DynamicTriggerIcon", render: simple(DynamicTriggerIcon) }, |
| 204 | + { name: "EndpointIcon", render: simple(EndpointIcon) }, |
| 205 | + { name: "EnvelopeIcon", render: simple(EnvelopeIcon) }, |
| 206 | + { name: "ErrorIcon", render: simple(ErrorIcon) }, |
| 207 | + { name: "ExitIcon", render: simple(ExitIcon) }, |
| 208 | + { name: "FlagEurope", render: simple(FlagEurope) }, |
| 209 | + { name: "FlagUSA", render: simple(FlagUSA) }, |
| 210 | + { name: "FolderClosedIcon", render: simple(FolderClosedIcon) }, |
| 211 | + { name: "FolderOpenIcon", render: simple(FolderOpenIcon) }, |
| 212 | + { name: "FunctionIcon", render: simple(FunctionIcon) }, |
| 213 | + { name: "GeminiIcon", render: simple(GeminiIcon) }, |
| 214 | + { name: "GlobeLinesIcon", render: simple(GlobeLinesIcon) }, |
| 215 | + { name: "HomeIcon", render: simple(HomeIcon) }, |
| 216 | + { name: "IDIcon", render: simple(IDIcon) }, |
| 217 | + { name: "InfoIcon", render: simple(InfoIcon) }, |
| 218 | + { name: "IntegrationsIcon", render: simple(IntegrationsIcon) }, |
| 219 | + { name: "KeyboardDownIcon", render: simple(KeyboardDownIcon) }, |
| 220 | + { name: "KeyboardEnterIcon", render: simple(KeyboardEnterIcon) }, |
| 221 | + { name: "KeyboardIcon", render: simple(KeyboardIcon) }, |
| 222 | + { name: "KeyboardLeftIcon", render: simple(KeyboardLeftIcon) }, |
| 223 | + { name: "KeyboardRightIcon", render: simple(KeyboardRightIcon) }, |
| 224 | + { name: "KeyboardUpIcon", render: simple(KeyboardUpIcon) }, |
| 225 | + { name: "KeyboardWindowsIcon", render: simple(KeyboardWindowsIcon) }, |
| 226 | + { name: "KeyIcon", render: simple(KeyIcon) }, |
| 227 | + { name: "KeyValueIcon", render: simple(KeyValueIcon) }, |
| 228 | + { name: "ListBulletIcon", render: simple(ListBulletIcon) }, |
| 229 | + { name: "ListCheckedIcon", render: simple(ListCheckedIcon) }, |
| 230 | + { name: "LlamaIcon", render: simple(LlamaIcon) }, |
| 231 | + { name: "LogsIcon", render: simple(LogsIcon) }, |
| 232 | + { name: "MachineDefaultIcon", render: simple(MachineDefaultIcon) }, |
| 233 | + { name: "MiddlewareIcon", render: simple(MiddlewareIcon) }, |
| 234 | + { name: "MistralIcon", render: simple(MistralIcon) }, |
| 235 | + { name: "MoveToBottomIcon", render: simple(MoveToBottomIcon) }, |
| 236 | + { name: "MoveToTopIcon", render: simple(MoveToTopIcon) }, |
| 237 | + { name: "MoveUpIcon", render: simple(MoveUpIcon) }, |
| 238 | + { name: "NodejsLogoIcon", render: simple(NodejsLogoIcon) }, |
| 239 | + { name: "OneTreeIcon", render: simple(OneTreeIcon) }, |
| 240 | + { name: "OpenAIIcon", render: simple(OpenAIIcon) }, |
| 241 | + { name: "PadlockIcon", render: simple(PadlockIcon) }, |
| 242 | + { name: "PauseIcon", render: simple(PauseIcon) }, |
| 243 | + { name: "PerplexityIcon", render: simple(PerplexityIcon) }, |
| 244 | + { name: "PlaygroundIcon", render: simple(PlaygroundIcon) }, |
| 245 | + { name: "PlusIcon", render: simple(PlusIcon) }, |
| 246 | + { name: "PreviewEnvironmentIconSmall", render: simple(PreviewEnvironmentIconSmall) }, |
| 247 | + { name: "PrivateIcon", render: simple(PrivateIcon) }, |
| 248 | + { name: "ProdEnvironmentIcon", render: simple(ProdEnvironmentIcon) }, |
| 249 | + { name: "ProdEnvironmentIconSmall", render: simple(ProdEnvironmentIconSmall) }, |
| 250 | + { name: "PromoteIcon", render: simple(PromoteIcon) }, |
| 251 | + { name: "PythonLogoIcon", render: simple(PythonLogoIcon) }, |
| 252 | + { name: "QuestionMarkIcon", render: simple(QuestionMarkIcon) }, |
| 253 | + { name: "QueuesIcon", render: simple(QueuesIcon) }, |
| 254 | + { name: "RadarPulseIcon", render: simple(RadarPulseIcon) }, |
| 255 | + { name: "RightSideMenuIcon", render: simple(RightSideMenuIcon) }, |
| 256 | + { name: "RolesIcon", render: simple(RolesIcon) }, |
| 257 | + { name: "RunFunctionIcon", render: simple(RunFunctionIcon) }, |
| 258 | + { name: "RunsIcon", render: simple(RunsIcon) }, |
| 259 | + { name: "RunsIconExtraSmall", render: simple(RunsIconExtraSmall) }, |
| 260 | + { name: "RunsIconSmall", render: simple(RunsIconSmall) }, |
| 261 | + { name: "SaplingIcon", render: simple(SaplingIcon) }, |
| 262 | + { name: "ScheduleIcon", render: simple(ScheduleIcon) }, |
| 263 | + { name: "ShieldIcon", render: simple(ShieldIcon) }, |
| 264 | + { name: "ShieldLockIcon", render: simple(ShieldLockIcon) }, |
| 265 | + { name: "ShowParentIcon", render: simple(ShowParentIcon) }, |
| 266 | + { name: "ShowParentIconSelected", render: simple(ShowParentIconSelected) }, |
| 267 | + { name: "SideMenuRightClosedIcon", render: simple(SideMenuRightClosedIcon) }, |
| 268 | + { name: "SlackIcon", render: simple(SlackIcon) }, |
| 269 | + { name: "SlackMonoIcon", render: simple(SlackMonoIcon) }, |
| 270 | + { name: "SlidersIcon", render: simple(SlidersIcon) }, |
| 271 | + { name: "SnakedArrowIcon", render: simple(SnakedArrowIcon) }, |
| 272 | + { name: "SparkleListIcon", render: simple(SparkleListIcon) }, |
| 273 | + { name: "StarIcon", render: simple(StarIcon) }, |
| 274 | + { name: "StatusIcon", render: simple(StatusIcon) }, |
| 275 | + { name: "StreamsIcon", render: simple(StreamsIcon) }, |
| 276 | + { name: "TableIcon", render: simple(TableIcon) }, |
| 277 | + { name: "TaskCachedIcon", render: simple(TaskCachedIcon) }, |
| 278 | + { name: "TaskIcon", render: simple(TaskIcon) }, |
| 279 | + { name: "TaskIconSmall", render: simple(TaskIconSmall) }, |
| 280 | + { name: "TestTubeIcon", render: simple(TestTubeIcon) }, |
| 281 | + { name: "TextInlineIcon", render: simple(TextInlineIcon) }, |
| 282 | + { name: "TextWrapIcon", render: simple(TextWrapIcon) }, |
| 283 | + { name: "TimedOutIcon", render: simple(TimedOutIcon) }, |
| 284 | + { name: "ToggleArrowIcon", render: simple(ToggleArrowIcon) }, |
| 285 | + { name: "TraceIcon", render: simple(TraceIcon) }, |
| 286 | + { name: "TriggerIcon", render: simple(TriggerIcon) }, |
| 287 | + { name: "TwoTreesIcon", render: simple(TwoTreesIcon) }, |
| 288 | + { name: "UnarchiveIcon", render: simple(UnarchiveIcon) }, |
| 289 | + { name: "UserCrossIcon", render: simple(UserCrossIcon) }, |
| 290 | + { name: "UserGroupIcon", render: simple(UserGroupIcon) }, |
| 291 | + { name: "WaitpointTokenIcon", render: simple(WaitpointTokenIcon) }, |
| 292 | + { |
| 293 | + name: "WarmStartIcon", |
| 294 | + render: (className) => <WarmStartIcon isWarmStart={false} className={className} />, |
| 295 | + }, |
| 296 | + { name: "WebhookIcon", render: simple(WebhookIcon) }, |
| 297 | + { name: "XAIIcon", render: simple(XAIIcon) }, |
| 298 | +]; |
| 299 | + |
| 300 | +const sortedIcons = [...icons].sort((a, b) => a.name.localeCompare(b.name)); |
| 301 | + |
| 302 | +export default function Story() { |
| 303 | + return ( |
| 304 | + <div className="flex flex-col gap-4 p-6"> |
| 305 | + <div className="text-sm text-text-dimmed"> |
| 306 | + {sortedIcons.length} custom icons, rendered at 24px. |
| 307 | + </div> |
| 308 | + <div className="grid grid-cols-[repeat(auto-fill,minmax(140px,1fr))] gap-2"> |
| 309 | + {sortedIcons.map((icon) => ( |
| 310 | + <div |
| 311 | + key={icon.name} |
| 312 | + className="flex flex-col items-center gap-3 rounded-md border border-grid-bright bg-background-bright p-4 text-text-bright" |
| 313 | + > |
| 314 | + <div className="flex h-6 w-6 items-center justify-center"> |
| 315 | + {icon.render("size-6")} |
| 316 | + </div> |
| 317 | + <div |
| 318 | + className="w-full truncate text-center text-xs text-text-dimmed" |
| 319 | + title={icon.name} |
| 320 | + > |
| 321 | + {icon.name} |
| 322 | + </div> |
| 323 | + </div> |
| 324 | + ))} |
| 325 | + </div> |
| 326 | + </div> |
| 327 | + ); |
| 328 | +} |
0 commit comments