Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
30394bf
fix(ui): mobile command picker layout and DiscordEmbed label spacing
cursoragent Jul 18, 2026
6cbbd2f
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 18, 2026
35a0b1e
test(ui): fix mobile picker assertions after Tailwind apply
cursoragent Jul 18, 2026
c91f936
fix(ui): harden DiscordEmbed label spacing for slot content
cursoragent Jul 18, 2026
931f0e9
fix(ui): keep desktop command picker base, apply mobile under md
cursoragent Jul 18, 2026
4743859
fix(ui): remove WolfStar duplicate and show 5 frequently used commands
cursoragent Jul 18, 2026
a288d59
fix(ui): enhance Discord slash command suggestions layout and display
RedStar071 Jul 19, 2026
e4ce45b
feat(discord): add channel showcase shell with chat and member list
RedStar071 Jul 19, 2026
404455c
feat(discord): introduce MessageComposer component and remove SlashCo…
RedStar071 Jul 19, 2026
834c15c
refactor(discord): nest channel components and rename message composer
RedStar071 Jul 19, 2026
26c6154
refactor(discord): nest slash commands under chat-input-command
RedStar071 Jul 19, 2026
827d4c0
feat(discord): enhance scrollbar customization and layout for chat an…
RedStar071 Jul 19, 2026
fb950af
fix(discord): update scrollbar styles and improve sidebar layout for …
RedStar071 Jul 19, 2026
0a5d4fe
feat(discord): polish CommandsShowcase toward real Discord fidelity
RedStar071 Jul 20, 2026
dec8b30
feat(discord): add real Discord icons and wire header chrome
RedStar071 Jul 20, 2026
bc69646
feat(discord): polish composer, short-channel layout, and member pres…
RedStar071 Jul 20, 2026
bc4efc9
Merge remote-tracking branch 'origin/main' into cursor/mobile-command…
cursoragent Jul 20, 2026
217683e
fix(ui): route Discord oklch colors through CSS variables
cursoragent Jul 20, 2026
db035b8
feat(storybook): add Discord component stories
cursoragent Jul 21, 2026
23167e4
fix(discord): import SlashCommandInvocation for Storybook SFC compile
cursoragent Jul 21, 2026
54998cd
fix(discord): match Discord thin scrollbar and auto-hide chat thumb
cursoragent Jul 21, 2026
95bd9e9
Merge remote-tracking branch 'origin/cursor/mobile-command-picker-emb…
RedStar071 Jul 21, 2026
6e024ba
Merge remote-tracking branch 'origin/cursor/mobile-command-picker-emb…
RedStar071 Jul 21, 2026
3909c9c
fix(discord): hide channel messages under open slash picker
cursoragent Jul 21, 2026
92e44d9
feat(discord): add mobile channel info and polish showcase fidelity
RedStar071 Jul 21, 2026
7d8cc96
feat(discord): polish showcase fidelity with App Launcher and embeds
RedStar071 Jul 21, 2026
267e14e
fix(discord): use footer.icon for DiscordEmbed footer image
RedStar071 Jul 21, 2026
5f879e7
fix(discord): resolve failing scrollbar and string-select-menu tests
RedStar071 Jul 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .storybook/decorators.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,15 @@ export const pageDecorator = () => ({
</div>
`,
});

/**
* Pins Discord desktop dark chrome tokens so Discord mock components do not
* inherit the marketing page’s warm/red DaisyUI base surfaces.
*/
export const discordDecorator = () => ({
template: `
<div class="discord-story-chrome p-4 font-whitney text-sm">
<story />
</div>
`,
});
44 changes: 44 additions & 0 deletions .storybook/discord-chrome.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/* Shared Discord dark chrome for component stories (see discordDecorator). */
.discord-story-chrome {
--showcase-discord-chrome: oklch(26.65% 0.006 272.93);
--showcase-discord-sidebar: oklch(23.47% 0.005 272.95);
--showcase-discord-server: oklch(19.34% 0.004 273.16);
--showcase-discord-chrome-border: oklch(19.34% 0.004 273.16);
--showcase-discord-composer: oklch(28.84% 0.007 272.93);
--showcase-discord-composer-muted: oklch(71.01% 0.01 273.13);
--showcase-discord-composer-text: oklch(91.56% 0.004 272.93);
--showcase-discord-composer-hover: oklch(100% 0 0 / 0.06);
--showcase-discord-header-edge: oklch(0% 0 0 / 0.2);
--showcase-discord-primary-text: oklch(91.56% 0.004 272.93);
--showcase-discord-muted-text: oklch(71.01% 0.01 273.13);

--color-base-100: var(--showcase-discord-chrome);
--color-base-200: var(--showcase-discord-sidebar);
--color-base-300: var(--showcase-discord-chrome);
--discord-surface: var(--showcase-discord-chrome);

--discord-channel-header-bg: var(--showcase-discord-chrome);
--discord-channel-header-border: var(--showcase-discord-chrome-border);
--discord-channel-header-edge: var(--showcase-discord-header-edge);
--discord-channel-header-text: var(--showcase-discord-primary-text);
--discord-channel-header-muted: var(--showcase-discord-muted-text);
--discord-channel-header-search-bg: var(--showcase-discord-server);
--discord-channel-header-search-border: var(--showcase-discord-composer);
--discord-channel-header-search-placeholder: var(--showcase-discord-muted-text);
--discord-channel-header-search-icon: var(--showcase-discord-primary-text);

--discord-chat-bg: var(--showcase-discord-chrome);
--discord-member-list-bg: var(--showcase-discord-sidebar);
--discord-member-list-border: var(--showcase-discord-server);
--discord-member-list-text: var(--showcase-discord-primary-text);
--discord-member-list-muted: var(--showcase-discord-muted-text);
--discord-member-list-presence-ring: var(--showcase-discord-sidebar);

--discord-message-composer-bg: var(--showcase-discord-composer);
--discord-message-composer-text: var(--showcase-discord-composer-text);
--discord-message-composer-muted: var(--showcase-discord-composer-muted);
--discord-message-composer-hover: var(--showcase-discord-composer-hover);

background-color: var(--showcase-discord-chrome);
color: var(--showcase-discord-primary-text);
}
1 change: 1 addition & 0 deletions .storybook/preview.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { initialize, mswLoader } from "msw-storybook-addon";
import { fn } from "storybook/test";
import { handlers } from "~/storybook/mocks/handlers";
import wolfstarDark from "./theme";
import "./discord-chrome.css";

initialize();

Expand Down
3 changes: 3 additions & 0 deletions app/assets/icons/discord/edit.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/icons/discord/members.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions app/assets/icons/discord/mic.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/icons/discord/notifications.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/icons/discord/pins.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/icons/discord/plus.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/icons/discord/search.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/icons/discord/slash.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/icons/discord/star.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions app/assets/icons/discord/status-dnd.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions app/assets/icons/discord/status-idle.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions app/assets/icons/discord/status-online.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/icons/discord/threads.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 26 additions & 0 deletions app/components/discord/action-row.stories.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import type { Meta, StoryObj } from "@storybook-vue/nuxt";
import { discordDecorator } from "../../../.storybook/decorators";
import DiscordActionRow from "./action-row.vue";
import DiscordButton from "./button.vue";

const meta = {
component: DiscordActionRow,
title: "Components/Discord/ActionRow",
decorators: [discordDecorator],
} satisfies Meta<typeof DiscordActionRow>;

export default meta;
type Story = StoryObj<typeof meta>;

export const Buttons: Story = {
render: () => ({
components: { DiscordActionRow, DiscordButton },
template: `
<DiscordActionRow>
<DiscordButton label="Confirm" variant="success" />
<DiscordButton label="Cancel" variant="secondary" />
<DiscordButton label="Stop" variant="danger" icon="ph:stop-fill" />
</DiscordActionRow>
`,
}),
};
Loading
Loading