Merge remote-tracking branch 'upstream/dev' into dev

This commit is contained in:
thororen1234 2025-12-11 20:49:15 -05:00
commit 156a60676a
No known key found for this signature in database
15 changed files with 43 additions and 34 deletions

View file

@ -37,7 +37,7 @@
}
.vc-notification-title {
color: var(--header-primary);
color: var(--text-strong);
font-size: 1rem;
font-weight: 600;
line-height: 1.25rem;

View file

@ -1,13 +1,13 @@
.vc-h1,
.vc-h2 {
color: var(--header-primary);
color: var(--text-strong);
font-weight: 600;
}
.vc-h3,
.vc-h4,
.vc-h5 {
color: var(--header-primary);
color: var(--text-strong);
}
.vc-h1 {
@ -41,7 +41,7 @@
}
.vc-h5 {
color: var(--header-primary);
color: var(--text-strong);
font-size: 16px;
font-weight: 500;
margin-bottom: 8px;

View file

@ -23,7 +23,7 @@
}
.vc-plugins-setting-title {
color: var(--header-primary);
color: var(--text-strong);
}
.vc-plugins-setting-description {

View file

@ -121,7 +121,7 @@
}
#vc-spotify-song-title {
color: var(--header-primary);
color: var(--text-strong);
font-size: 14px;
font-weight: 600;
}
@ -137,7 +137,7 @@
.vc-spotify-album {
font-size: 12px;
text-decoration: none;
color: var(--header-primary);
color: var(--text-strong);
}
.vc-spotify-comma {

View file

@ -35,6 +35,15 @@ const DESKTOP_ONLY = (f: string) => () => {
throw new Error(`'${f}' is Discord Desktop only.`);
};
const switchBranch = (branch: string) => () => {
if (!IS_VESKTOP && !IS_EQUIBOP) throw new Error("This function only works on vesktop and equibop.");
const target = IS_VESKTOP ? Vesktop : Equibop;
if (target.Settings.store.discordBranch === branch) throw new Error(`Already on ${branch}.`);
target.Settings.store.discordBranch = branch;
VesktopNative.app.relaunch();
};
const define: typeof Object.defineProperty =
(obj, prop, desc) => {
if (Object.hasOwn(desc, "value"))
@ -180,13 +189,12 @@ function makeShortcuts() {
experimentBucket: bucket,
});
},
switchBranch: (branch: string) => {
if (!IS_VESKTOP && !IS_EQUIBOP) throw new Error("This function only works on vesktop and equibop.");
const target = IS_VESKTOP ? Vesktop : Equibop;
if (target.Settings.store.discordBranch === branch) throw new Error(`Already on ${branch}.`);
target.Settings.store.discordBranch = branch;
VesktopNative.app.relaunch();
},
switchBranch,
...IS_EQUIBOP ? {
equibopStable: switchBranch("stable"),
equibopCanary: switchBranch("canary"),
equibopPtb: switchBranch("ptb"),
} : {},
};
}

View file

@ -23,7 +23,7 @@ export default function DecorationGridCreate(props: DecorationGridCreateProps) {
<PlusIcon />
<BaseText
size="xs"
color="header-primary"
color="text-strong"
>
{getIntlMessage("CREATE")}
</BaseText>

View file

@ -23,7 +23,7 @@ export default function DecorationGridNone(props: DecorationGridNoneProps) {
<NoEntrySignIcon />
<BaseText
size="xs"
color="header-primary"
color="text-strong"
>
{getIntlMessage("NONE")}
</BaseText>

View file

@ -148,7 +148,7 @@ function ChangeDecorationModal(props: ModalProps) {
<BaseText
size="lg"
weight="semibold"
color="header-primary"
color="text-strong"
tag="h1"
style={{ flexGrow: 1 }}
>
@ -209,7 +209,7 @@ function ChangeDecorationModal(props: ModalProps) {
<BaseText
size="sm"
weight="semibold"
color="header-primary"
color="text-strong"
>
{activeSelectedDecoration?.alt}
</BaseText>

View file

@ -69,14 +69,14 @@ function CreateDecorationModal(props: ModalProps) {
<BaseText
size="lg"
weight="semibold"
color="header-primary"
color="text-strong"
tag="h1"
style={{ flexGrow: 1 }}
>
Create Decoration
</BaseText>
<ModalCloseButton onClick={props.onClose} />
</ModalHeader>
</ModalHeader >
<ModalContent
className={cl("create-decoration-modal-content")}
scrollbarType="none"
@ -167,7 +167,7 @@ function CreateDecorationModal(props: ModalProps) {
</Button>
</div>
</ModalFooter>
</ModalRoot>;
</ModalRoot >;
}
export const openCreateDecorationModal = () =>

View file

@ -25,7 +25,7 @@ function GuidelinesModal(props: ModalProps) {
<BaseText
size="lg"
weight="semibold"
color="header-primary"
color="text-strong"
tag="h1"
style={{ flexGrow: 1 }}
>

View file

@ -498,10 +498,11 @@ export default definePlugin({
} catch { }
const emojiName = EmojiStore.getCustomEmojiById(fakeNitroMatch[1])?.name ?? url?.searchParams.get("name") ?? "FakeNitroEmoji";
const isAnimated = fakeNitroMatch[2] === "gif" || url?.searchParams.get("animated") === "true";
return Parser.defaultRules.customEmoji.react({
jumboable: !inline && content.length === 1 && typeof content[0].type !== "string",
animated: fakeNitroMatch[2] === "gif",
animated: isAnimated,
emojiId: fakeNitroMatch[1],
name: emojiName,
fake: true

View file

@ -4,5 +4,5 @@
--text-muted: var(--status-danger, #f04747);
--embed-title: var(--red-460, #be3535);
--text-link: var(--red-460, #be3535);
--header-primary: var(--red-460, #be3535);
--text-strong: var(--red-460, #be3535);
}

View file

@ -34,7 +34,7 @@ import UserPermissions from "./components/UserPermissions";
import { getSortedRolesForMember, sortPermissionOverwrites } from "./utils";
const PopoutClasses = findByPropsLazy("container", "scroller", "list");
const RoleButtonClasses = findByPropsLazy("button", "buttonInner", "icon", "banner");
const RoleButtonClasses = findByPropsLazy("button", "icon");
export const enum PermissionsSortOrder {
HighestRole,
@ -165,15 +165,15 @@ export default definePlugin({
patches: [
{
find: "#{intl::VIEW_ALL_ROLES}",
find: "#{intl::COLLAPSE_ROLES}",
replacement: {
match: /\.expandButton,.+?null,/,
replace: "$&$self.ViewPermissionsButton(arguments[0]),"
match: /className:(\i\.expandButton),.+?null,/,
replace: "$&$self.ViewPermissionsButton({className:$1,props:arguments[0]}),"
}
}
],
ViewPermissionsButton: ErrorBoundary.wrap(({ guild, guildMember }: { guild: Guild; guildMember: GuildMember; }) => {
ViewPermissionsButton: ErrorBoundary.wrap(({ className, props: { guild, guildMember } }: { className: string, props: { guild: Guild; guildMember: GuildMember; }; }) => {
const buttonRef = useRef(null);
return (
@ -195,7 +195,7 @@ export default definePlugin({
color={Button.Colors.CUSTOM}
look={Button.Looks.FILLED}
size={Button.Sizes.NONE}
className={classes(RoleButtonClasses.button, RoleButtonClasses.icon, "vc-permviewer-role-button")}
className={classes(className, "vc-permviewer-role-button")}
>
<SafetyIcon height="16" width="16" />
</Button>

View file

@ -203,7 +203,7 @@ export default definePlugin({
return {
color: value.replace("{DEFAULT}", "--text-default"),
"--header-primary": value.replace("{DEFAULT}", "--header-primary"),
"--text-strong": value.replace("{DEFAULT}", "--text-strong"),
"--text-muted": value.replace("{DEFAULT}", "--text-muted")
};
}

View file

@ -93,11 +93,11 @@ function TimingSection({ title, logs, traceEnd }: TimingSectionProps) {
<HeadingPrimary>{title}</HeadingPrimary>
<code>
{traceEnd && (
<div style={{ color: "var(--header-primary)", marginBottom: 5, userSelect: "text" }}>
<div style={{ color: "var(--text-strong)", marginBottom: 5, userSelect: "text" }}>
Trace ended at: {(new Date(traceEnd)).toTimeString()}
</div>
)}
<div style={{ color: "var(--header-primary)", display: "grid", gridTemplateColumns: "repeat(3, auto) 1fr", gap: "2px 10px", userSelect: "text" }}>
<div style={{ color: "var(--text-strong)", display: "grid", gridTemplateColumns: "repeat(3, auto) 1fr", gap: "2px 10px", userSelect: "text" }}>
<span>Start</span>
<span>Interval</span>
<span>Delta</span>
@ -122,7 +122,7 @@ function ServerTrace({ trace }: ServerTraceProps) {
<section>
<HeadingSecondary>Server Trace</HeadingSecondary>
<code>
<Flex flexDirection="column" gap="5px" style={{ color: "var(--header-primary)", userSelect: "text" }}>
<Flex flexDirection="column" gap="5px" style={{ color: "var(--text-strong)", userSelect: "text" }}>
{lines.map((line, idx) => (
<span key={idx}>{line}</span>
))}