feat: add mac as platform

This commit is contained in:
DecDuck
2025-03-11 19:02:53 +11:00
parent 1ca5c37b9a
commit 240d1364e8
9 changed files with 41 additions and 24 deletions
+13
View File
@@ -0,0 +1,13 @@
<template>
<svg
xmlns="http://www.w3.org/2000/svg"
xml:space="preserve"
viewBox="0 0 814 1000"
>
<path
stroke="currentColor"
fill="currentColor"
d="M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76.5 0-103.7 40.8-165.9 40.8s-105.6-57-155.5-127C46.7 790.7 0 663 0 541.8c0-194.4 126.4-297.5 250.8-297.5 66.1 0 121.2 43.4 162.7 43.4 39.5 0 101.1-46 176.3-46 28.5 0 130.9 2.6 198.3 99.2zm-234-181.5c31.1-36.9 53.1-88.1 53.1-139.3 0-7.1-.6-14.3-1.9-20.1-50.6 1.9-110.8 33.7-147.1 75.8-28.5 32.4-55.1 83.6-55.1 135.5 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 45.4 0 102.5-30.4 135.5-71.3z"
/>
</svg>
</template>
+9 -18
View File
@@ -7,13 +7,13 @@
<ListboxButton
class="relative w-full cursor-default rounded-md bg-zinc-950 py-1.5 pl-3 pr-10 text-left text-zinc-100 shadow-sm ring-1 ring-inset ring-zinc-800 focus:outline-none focus:ring-2 focus:ring-blue-500 sm:text-sm sm:leading-6"
>
<span v-if="model && values[model]" class="flex items-center">
<span v-if="model" class="flex items-center">
<component
:is="values[model].icon"
:is="PLATFORM_ICONS[model]"
alt=""
class="h-5 w-5 flex-shrink-0 text-blue-600"
/>
<span class="ml-3 block truncate">{{ values[model].name }}</span>
<span class="ml-3 block truncate">{{ model }}</span>
</span>
<span v-else>Please select a platform...</span>
<span
@@ -33,7 +33,7 @@
>
<ListboxOption
as="template"
v-for="[value, options] in Object.entries(values)"
v-for="[name, value] in Object.entries(values)"
:key="value"
:value="value"
v-slot="{ active, selected }"
@@ -46,14 +46,14 @@
>
<div class="flex items-center">
<component
:is="options.icon"
:is="PLATFORM_ICONS[value]"
alt=""
:class="[
active ? 'text-zinc-100' : 'text-blue-600',
'h-5 w-5 flex-shrink-0',
]"
/>
<span class="ml-3 block truncate">{{ options.name }}</span>
<span class="ml-3 block truncate">{{ name }}</span>
</div>
<span
@@ -74,7 +74,7 @@
</template>
<script setup lang="ts">
import { IconsLinuxLogo, IconsWindowsLogo } from "#components";
import { IconsLinuxLogo, IconsMacLogo, IconsWindowsLogo } from "#components";
import {
Listbox,
ListboxButton,
@@ -85,16 +85,7 @@ import {
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import type { Component } from "vue";
const model = defineModel<string>();
const model = defineModel<PlatformClient>();
const values: { [key: string]: { name: string; icon: Component } } = {
Linux: {
name: "Linux",
icon: IconsLinuxLogo,
},
Windows: {
name: "Windows",
icon: IconsWindowsLogo,
},
};
const values = Object.fromEntries(Object.entries(PlatformClient));
</script>