Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ License: MIT

Maka includes an ejected adaptation of Astryx ChatReasoning v0.1.9 and generated
theme artifacts based on Astryx theme-neutral v0.4.5. Maka also redistributes
`patches/@astryxdesign+core+0.4.5.patch`, which modifies the MIT-licensed Astryx
`patches/@astryxdesign+core+0.5.0.patch`, which modifies the MIT-licensed Astryx
core package. The following MIT License applies to that material:

MIT License
Expand Down
8 changes: 4 additions & 4 deletions apps/desktop/e2e/accessibility-coverage.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,25 +83,25 @@ test('module pages and global overlays expose named actionable controls', async
const extensionsNavigation = page.getByRole('navigation', { name: /扩展内容/ });
await expect(
extensionsNavigation.getByRole('button', { name: '技能', exact: true }),
).toHaveAttribute('aria-current', 'page');
).toHaveAttribute('aria-current', 'true');
await assertAxHealth(cdp, 'extensions/skills');
const mcpButton = extensionsNavigation.getByRole('button', { name: 'MCP', exact: true });
await mcpButton.click();
await expect(mcpButton).toHaveAttribute('aria-current', 'page');
await expect(mcpButton).toHaveAttribute('aria-current', 'true');
await assertAxHealth(cdp, 'extensions/mcp');

await navigation.getByRole('button', { name: /定时任务/ }).click();
const automationsNavigation = page.getByRole('navigation', { name: /定时任务内容/ });
await expect(
automationsNavigation.getByRole('button', { name: '定时任务', exact: true }),
).toHaveAttribute('aria-current', 'page');
).toHaveAttribute('aria-current', 'true');
await assertAxHealth(cdp, 'automations/scheduled-tasks');
const dailyReviewButton = automationsNavigation.getByRole('button', {
name: '每日回顾',
exact: true,
});
await dailyReviewButton.click();
await expect(dailyReviewButton).toHaveAttribute('aria-current', 'page');
await expect(dailyReviewButton).toHaveAttribute('aria-current', 'true');
await assertAxHealth(cdp, 'automations/daily-review');

await page.keyboard.press('Shift+Slash');
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/e2e/module-hub.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ test('Module Hub switches all four leaves and opens scheduled creation once', as
await extensions.getByRole('button', { name: 'MCP', exact: true }).click();
await expect(
extensions.getByRole('button', { name: 'MCP', exact: true }),
).toHaveAttribute('aria-current', 'page');
).toHaveAttribute('aria-current', 'true');

await sidebar.getByRole('button', { name: /定时任务/ }).click();
await expect(page.locator('[data-module="scheduled-tasks"]')).toBeVisible();
Expand Down
4 changes: 2 additions & 2 deletions apps/desktop/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@
},
"devDependencies": {
"@ant-design/icons-svg": "4.5.0",
"@astryxdesign/core": "0.4.5",
"@astryxdesign/theme-neutral": "0.4.5",
"@astryxdesign/core": "0.5.0",
"@astryxdesign/theme-neutral": "0.5.0",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@fontsource-variable/geist": "^5.3.0",
Expand Down
4 changes: 2 additions & 2 deletions apps/desktop/resources/licenses/npm/THIRD_PARTY_NOTICES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ SOFTWARE.

================================================================================

Package: @astryxdesign/core@0.4.5
Package: @astryxdesign/core@0.5.0
Declared license: MIT
Selected license: MIT
Repository: git+https://github.com/facebook/astryx.git#packages/core
Expand Down Expand Up @@ -508,7 +508,7 @@ SOFTWARE.

================================================================================

Package: @astryxdesign/theme-neutral@0.4.5
Package: @astryxdesign/theme-neutral@0.5.0
Declared license: MIT
Selected license: MIT
Repository: git+https://github.com/facebook/astryx.git#packages/themes/neutral
Expand Down
6 changes: 3 additions & 3 deletions apps/desktop/src/renderer/astryx-theme/maka.css
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@
}

.astryx-badge.error {
background-color: light-dark(#e33f4a, #ff705d);
background-color: light-dark(#c9303a, #ff705d);
color: light-dark(#ffffff, #171717);
}

Expand Down Expand Up @@ -386,7 +386,7 @@
}

.astryx-statusdot.error {
background-color: light-dark(#e33f4a, #ff705d);
background-color: light-dark(#c9303a, #ff705d);
}

.astryx-statusdot.accent {
Expand Down Expand Up @@ -439,7 +439,7 @@
}

.astryx-progressbar.error {
--color-error: #e33f4a;
--color-error: #c9303a;
}

.astryx-card {
Expand Down
6 changes: 3 additions & 3 deletions apps/desktop/src/renderer/astryx-theme/maka.js
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ export const makaTheme = {
"color": "#171717"
},
"variant:error": {
"backgroundColor": "light-dark(#e33f4a, #ff705d)",
"backgroundColor": "light-dark(#c9303a, #ff705d)",
"color": "light-dark(#ffffff, #171717)"
},
"variant:red": {
Expand Down Expand Up @@ -361,7 +361,7 @@ export const makaTheme = {
"backgroundColor": "#ffce2f"
},
"variant:error": {
"backgroundColor": "light-dark(#e33f4a, #ff705d)"
"backgroundColor": "light-dark(#c9303a, #ff705d)"
},
"variant:accent": {
"backgroundColor": "light-dark(#0074e2, #6d9cfe)"
Expand Down Expand Up @@ -409,7 +409,7 @@ export const makaTheme = {
"--color-warning": "#ffce2f"
},
"variant:error": {
"--color-error": "#e33f4a"
"--color-error": "#c9303a"
}
},
"card": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ export function RemoteProjectDirectoryDialog(props: {
onOpenChange={(open) => {
if (!open) dismiss();
}}
aria-label={copy.remoteDirectoryTitle(host?.name ?? 'Runtime Host')}
purpose="form"
width={560}
maxHeight="calc(100dvh - 64px)"
Expand Down
22 changes: 11 additions & 11 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
"@ai-sdk/provider-utils": "5.0.28",
"@electron/asar": "3.4.1",
"@astryxdesign/cli": "0.4.5",
"@astryxdesign/core": "0.4.5",
"@astryxdesign/core": "0.5.0",
"@biomejs/biome": "2.5.9",
"@types/node": "^26.2.0",
"knip": "^6.32.2",
Expand Down
2 changes: 1 addition & 1 deletion packages/ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"test:dist": "node --test \"dist/**/*.test.js\""
},
"dependencies": {
"@astryxdesign/core": "0.4.5",
"@astryxdesign/core": "0.5.0",
"@maka/core": "0.1.0",
"clsx": "^2.1.1",
"lucide-react": "^1.33.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ index ff34874..9ec8d7a 100644
export declare function ChatLayout({ children, composer, density, emptyState, scrollButton, scrollRef: externalScrollRef, xstyle, className, style, 'data-testid': testId, ref, ...rest }: ChatLayoutProps): import("react").JSX.Element;
export declare namespace ChatLayout {
diff --git a/node_modules/@astryxdesign/core/dist/Chat/ChatLayout.js b/node_modules/@astryxdesign/core/dist/Chat/ChatLayout.js
index ea27cd5..7102f8d 100644
index ff9b9fa..346e01c 100644
--- a/node_modules/@astryxdesign/core/dist/Chat/ChatLayout.js
+++ b/node_modules/@astryxdesign/core/dist/Chat/ChatLayout.js
@@ -28,7 +28,7 @@
Expand Down Expand Up @@ -92,7 +92,7 @@ index ea27cd5..7102f8d 100644
// --- Derived styles ---
const showEmpty = !hasVisibleContent(children);
diff --git a/node_modules/@astryxdesign/core/dist/Chat/ChatToolCalls.js b/node_modules/@astryxdesign/core/dist/Chat/ChatToolCalls.js
index 03b89ec..b0a094e 100644
index 889970f..459e6e8 100644
--- a/node_modules/@astryxdesign/core/dist/Chat/ChatToolCalls.js
+++ b/node_modules/@astryxdesign/core/dist/Chat/ChatToolCalls.js
@@ -122,6 +122,7 @@ function CallRow({
Expand Down Expand Up @@ -159,7 +159,7 @@ index 82ae62c..a97eff5 100644
var displayName: string;
}
diff --git a/node_modules/@astryxdesign/core/dist/DropdownMenu/DropdownMenuItem.js b/node_modules/@astryxdesign/core/dist/DropdownMenu/DropdownMenuItem.js
index 5bf241b..f773a97 100644
index 446e25b..00eb8b3 100644
--- a/node_modules/@astryxdesign/core/dist/DropdownMenu/DropdownMenuItem.js
+++ b/node_modules/@astryxdesign/core/dist/DropdownMenu/DropdownMenuItem.js
@@ -91,6 +91,7 @@ const itemSizeStyles = {
Expand All @@ -178,22 +178,6 @@ index 5bf241b..f773a97 100644
tabIndex: isDisabled ? undefined : -1,
onPointerMove: handlePointerMove,
startContent: icon ? renderIconSlot(icon, {
diff --git a/node_modules/@astryxdesign/core/dist/Kbd/Kbd.js b/node_modules/@astryxdesign/core/dist/Kbd/Kbd.js
index 33ed78d..0ecbce6 100644
--- a/node_modules/@astryxdesign/core/dist/Kbd/Kbd.js
+++ b/node_modules/@astryxdesign/core/dist/Kbd/Kbd.js
@@ -111,7 +111,10 @@ function detectMac() {
// Prefer User-Agent Client Hints API (not deprecated)
const uaData = 'userAgentData' in navigator ? navigator.userAgentData : null;
if (uaData && typeof uaData === 'object' && 'platform' in uaData) {
- return /mac/i.test(uaData.platform ?? '');
+ const uaPlatform = typeof uaData.platform === 'string' ? uaData.platform : '';
+ if (uaPlatform.trim().length > 0) {
+ return /mac/i.test(uaPlatform);
+ }
}
// Fallback: navigator.platform (deprecated but still shipped everywhere)
return /Mac|iPhone|iPad|iPod/.test(navigator.platform ?? '');
diff --git a/node_modules/@astryxdesign/core/dist/List/List.js b/node_modules/@astryxdesign/core/dist/List/List.js
index 08b5f7d..94c623b 100644
--- a/node_modules/@astryxdesign/core/dist/List/List.js
Expand Down Expand Up @@ -329,7 +313,7 @@ index 0fd8329..7e4ec57 100644
Markdown.displayName = 'Markdown';
\ No newline at end of file
diff --git a/node_modules/@astryxdesign/core/dist/SideNav/SideNavItem.d.ts b/node_modules/@astryxdesign/core/dist/SideNav/SideNavItem.d.ts
index e7b8e00..33a2bb7 100644
index e7b8e00..fad2e72 100644
--- a/node_modules/@astryxdesign/core/dist/SideNav/SideNavItem.d.ts
+++ b/node_modules/@astryxdesign/core/dist/SideNav/SideNavItem.d.ts
@@ -66,6 +66,12 @@ export interface SideNavItemProps extends BaseProps<HTMLElement> {
Expand All @@ -355,7 +339,7 @@ index e7b8e00..33a2bb7 100644
var displayName: string;
}
diff --git a/node_modules/@astryxdesign/core/dist/SideNav/SideNavItem.js b/node_modules/@astryxdesign/core/dist/SideNav/SideNavItem.js
index 9853461..590561b 100644
index d694da7..d0a580c 100644
--- a/node_modules/@astryxdesign/core/dist/SideNav/SideNavItem.js
+++ b/node_modules/@astryxdesign/core/dist/SideNav/SideNavItem.js
@@ -210,6 +210,7 @@ export function SideNavItem({
Expand All @@ -366,7 +350,7 @@ index 9853461..590561b 100644
children,
collapsible: itemCollapsible,
size = 'md',
@@ -491,7 +492,7 @@ export function SideNavItem({
@@ -492,7 +493,7 @@ export function SideNavItem({
const item = /*#__PURE__*/_jsxs("div", {
ref: itemRef,
...stylex.props(styles.root, xstyle),
Expand All @@ -375,22 +359,6 @@ index 9853461..590561b 100644
id: `${id}-children`,
role: "group",
"aria-labelledby": `${id}-label`,
diff --git a/node_modules/@astryxdesign/core/dist/hooks/useHotkeys.js b/node_modules/@astryxdesign/core/dist/hooks/useHotkeys.js
index 65f9278..f7515e2 100644
--- a/node_modules/@astryxdesign/core/dist/hooks/useHotkeys.js
+++ b/node_modules/@astryxdesign/core/dist/hooks/useHotkeys.js
@@ -54,7 +54,10 @@ function isApplePlatform() {
}
const uaData = 'userAgentData' in navigator ? navigator.userAgentData : null;
if (uaData && typeof uaData === 'object' && 'platform' in uaData) {
- return /mac/i.test(uaData.platform ?? '');
+ const uaPlatform = typeof uaData.platform === 'string' ? uaData.platform : '';
+ if (uaPlatform.trim().length > 0) {
+ return /mac/i.test(uaPlatform);
+ }
}
return /Mac|iPhone|iPad|iPod/.test(navigator.platform ?? '');
}
diff --git a/node_modules/@astryxdesign/core/dist/hooks/useStreamingText.d.ts b/node_modules/@astryxdesign/core/dist/hooks/useStreamingText.d.ts
index 7a35d1c..50ee70b 100644
--- a/node_modules/@astryxdesign/core/dist/hooks/useStreamingText.d.ts
Expand Down Expand Up @@ -561,10 +529,10 @@ index 693d728..7d5724e 100644
}
\ No newline at end of file
diff --git a/node_modules/@astryxdesign/core/src/Chat/ChatToolCalls.tsx b/node_modules/@astryxdesign/core/src/Chat/ChatToolCalls.tsx
index a2da3d9..91a020e 100644
index f22bb1f..b710951 100644
--- a/node_modules/@astryxdesign/core/src/Chat/ChatToolCalls.tsx
+++ b/node_modules/@astryxdesign/core/src/Chat/ChatToolCalls.tsx
@@ -390,6 +390,7 @@ function CallRow({call}: {call: ChatToolCallItem}) {
@@ -399,6 +399,7 @@ function CallRow({call}: {call: ChatToolCallItem}) {
<div
role={hasDetail ? 'button' : undefined}
tabIndex={hasDetail ? 0 : undefined}
Expand All @@ -573,10 +541,10 @@ index a2da3d9..91a020e 100644
aria-controls={hasDetail && isDetailOpen ? detailId : undefined}
onClick={toggleDetail}
diff --git a/node_modules/@astryxdesign/core/src/DropdownMenu/DropdownMenuItem.tsx b/node_modules/@astryxdesign/core/src/DropdownMenu/DropdownMenuItem.tsx
index 8dbf5f6..b778ca9 100644
index 21bad6a..8e2a03a 100644
--- a/node_modules/@astryxdesign/core/src/DropdownMenu/DropdownMenuItem.tsx
+++ b/node_modules/@astryxdesign/core/src/DropdownMenu/DropdownMenuItem.tsx
@@ -108,6 +108,12 @@ export interface DropdownMenuItemProps extends Pick<
@@ -111,6 +111,12 @@ export interface DropdownMenuItemProps extends Pick<
* @default true
*/
hasCloseOnSelect?: boolean;
Expand All @@ -589,15 +557,15 @@ index 8dbf5f6..b778ca9 100644
/**
* Visual variant. `'destructive'` renders the label, description, and icon in
* the error color for dangerous actions (e.g. Delete). @default 'default'
@@ -131,6 +137,7 @@ export interface DropdownMenuItemProps extends Pick<
@@ -134,6 +140,7 @@ export interface DropdownMenuItemProps extends Pick<
*/
export function DropdownMenuItem({
icon,
+ 'aria-busy': ariaBusy,
label,
description,
onClick,
@@ -165,6 +172,7 @@ export function DropdownMenuItem({
@@ -168,6 +175,7 @@ export function DropdownMenuItem({
return (
<Item
role="menuitem"
Expand Down Expand Up @@ -729,10 +697,10 @@ index ea918b4..d83af73 100644
}

diff --git a/node_modules/@astryxdesign/core/src/SideNav/SideNavItem.tsx b/node_modules/@astryxdesign/core/src/SideNav/SideNavItem.tsx
index 1c16116..0ca4ad0 100644
index a05ba4e..c9a10bc 100644
--- a/node_modules/@astryxdesign/core/src/SideNav/SideNavItem.tsx
+++ b/node_modules/@astryxdesign/core/src/SideNav/SideNavItem.tsx
@@ -315,6 +315,12 @@ export interface SideNavItemProps extends BaseProps<HTMLElement> {
@@ -322,6 +322,12 @@ export interface SideNavItemProps extends BaseProps<HTMLElement> {
* Right-side content (badges, counts).
*/
endContent?: ReactNode;
Expand All @@ -745,15 +713,15 @@ index 1c16116..0ca4ad0 100644
/**
* Sub-items for nesting.
*/
@@ -378,6 +384,7 @@ export function SideNavItem({
@@ -385,6 +391,7 @@ export function SideNavItem({
href,
onClick,
endContent,
+ trailingAction,
children,
collapsible: itemCollapsible,
size = 'md',
@@ -694,6 +701,7 @@ export function SideNavItem({
@@ -702,6 +709,7 @@ export function SideNavItem({
const item = (
<div ref={itemRef} {...stylex.props(styles.root, xstyle)}>
{itemElement}
Expand Down
Loading
Loading