diff --git a/LICENSE b/LICENSE index 8c47e3748c..4215cf1f43 100644 --- a/LICENSE +++ b/LICENSE @@ -253,7 +253,7 @@ License: MIT Maka includes an ejected adaptation of Astryx ChatReasoning v0.1.9 and generated theme artifacts based on Astryx theme-neutral v0.5.2. Maka also redistributes -`patches/@astryxdesign+core+0.5.2.patch`, which modifies the MIT-licensed Astryx +`patches/@astryxdesign+core+0.5.4.patch`, which modifies the MIT-licensed Astryx core package. The following MIT License applies to that material: MIT License @@ -280,10 +280,10 @@ SOFTWARE. Pi TUI dependency patch -Source: https://www.npmjs.com/package/@earendil-works/pi-tui/v/0.84.4 -Repository: https://github.com/earendil-works/pi/tree/v0.84.4/packages/tui -Version: 0.84.4 -Dependency patch: patches/@earendil-works+pi-tui+0.84.4.patch +Source: https://www.npmjs.com/package/@earendil-works/pi-tui/v/0.85.1 +Repository: https://github.com/earendil-works/pi/tree/v0.85.1/packages/tui +Version: 0.85.1 +Dependency patch: patches/@earendil-works+pi-tui+0.85.1.patch Copyright (c) 2025 Mario Zechner License: MIT diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 4ab6340f51..e95137fcf2 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -71,17 +71,17 @@ }, "devDependencies": { "@ant-design/icons-svg": "4.6.0", - "@astryxdesign/core": "0.5.2", - "@astryxdesign/theme-neutral": "0.5.2", + "@astryxdesign/core": "0.5.4", + "@astryxdesign/theme-neutral": "0.5.4", "@babel/parser": "7.29.7", "@fontsource-variable/geist": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@maka/ui": "0.1.0", "@modelcontextprotocol/sdk": "^1.26.0", - "@playwright/test": "^1.62.1", - "@storybook/react-vite": "^10.5.10", + "@playwright/test": "^1.63.0", + "@storybook/react-vite": "^10.6.0", "@types/react": "^19.2.18", - "@types/react-dom": "^19.2.5", + "@types/react-dom": "^19.2.7", "@types/ws": "^8.18.1", "@vitejs/plugin-react": "^6.1.1", "@xterm/addon-fit": "^0.11.0", @@ -92,7 +92,7 @@ "linkedom": "^0.18.13", "react": "^19.2.1", "react-dom": "^19.2.1", - "simple-icons": "16.29.0", + "simple-icons": "16.30.0", "storybook": "^10.4.6", "vite": "^8.2.2" }, diff --git a/apps/desktop/resources/licenses/npm/THIRD_PARTY_NOTICES.txt b/apps/desktop/resources/licenses/npm/THIRD_PARTY_NOTICES.txt index 764c5ec5cb..236bc650a8 100644 --- a/apps/desktop/resources/licenses/npm/THIRD_PARTY_NOTICES.txt +++ b/apps/desktop/resources/licenses/npm/THIRD_PARTY_NOTICES.txt @@ -677,7 +677,7 @@ SOFTWARE. ================================================================================ -Package: @astryxdesign/core@0.5.2 +Package: @astryxdesign/core@0.5.4 Declared license: MIT Selected license: MIT Repository: git+https://github.com/facebook/astryx.git#packages/core @@ -707,7 +707,7 @@ SOFTWARE. ================================================================================ -Package: @astryxdesign/theme-neutral@0.5.2 +Package: @astryxdesign/theme-neutral@0.5.4 Declared license: MIT Selected license: MIT Repository: git+https://github.com/facebook/astryx.git#packages/themes/neutral @@ -1372,7 +1372,7 @@ Apache License ================================================================================ -Package: @larksuiteoapi/node-sdk@1.73.0 +Package: @larksuiteoapi/node-sdk@1.73.3 Declared license: MIT Selected license: MIT Repository: https://github.com/larksuite/node-sdk.git @@ -4525,7 +4525,7 @@ MIT License ================================================================================ -Package: @types/node@26.4.0 +Package: @types/node@26.5.1 Declared license: MIT Selected license: MIT Repository: https://github.com/DefinitelyTyped/DefinitelyTyped.git#types/node @@ -10672,7 +10672,7 @@ SOFTWARE. ================================================================================ -Package: katex@0.18.5 +Package: katex@0.18.7 Declared license: MIT Selected license: MIT Repository: https://github.com/KaTeX/KaTeX.git @@ -11415,7 +11415,7 @@ THE SOFTWARE. ================================================================================ -Package: lucide-react@1.38.0 +Package: lucide-react@1.45.0 Declared license: ISC Selected license: ISC Repository: https://github.com/lucide-icons/lucide.git#packages/lucide-react @@ -13457,7 +13457,7 @@ SOFTWARE. ================================================================================ -Package: simple-icons@16.29.0 +Package: simple-icons@16.30.0 Declared license: CC0-1.0 Selected license: CC0-1.0 Repository: git+ssh://git@github.com/simple-icons/simple-icons.git @@ -13525,7 +13525,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================================================ -Package: socks@2.8.9 +Package: socks@2.8.10 Declared license: MIT Selected license: MIT Repository: git+https://github.com/JoshGlazebrook/socks.git @@ -13699,7 +13699,7 @@ SOFTWARE. ================================================================================ -Package: systeminformation@5.33.8 +Package: systeminformation@5.33.10 Declared license: MIT Selected license: MIT Repository: git+https://github.com/sebhildebrandt/systeminformation.git @@ -13992,7 +13992,7 @@ SOFTWARE. ================================================================================ -Package: undici@8.10.1 +Package: undici@8.10.2 Declared license: MIT Selected license: MIT Repository: git+https://github.com/nodejs/undici.git @@ -14022,7 +14022,7 @@ SOFTWARE. ================================================================================ -Package: undici-types@8.3.0 +Package: undici-types@8.9.0 Declared license: MIT Selected license: MIT Repository: git+https://github.com/nodejs/undici.git diff --git a/apps/desktop/src/main/__tests__/chat-composer-region-draft-handoff.test.ts b/apps/desktop/src/main/__tests__/chat-composer-region-draft-handoff.test.ts index d73d8ad343..e65c1b3a3a 100644 --- a/apps/desktop/src/main/__tests__/chat-composer-region-draft-handoff.test.ts +++ b/apps/desktop/src/main/__tests__/chat-composer-region-draft-handoff.test.ts @@ -68,12 +68,19 @@ async function mountRegion(): Promise<{ }> { const { document, window } = parseHTML('
'); const storage = new Map(); - Object.assign(document, { - getSelection: () => ({ - removeAllRanges() {}, - addRange() {}, - }), + const selection = { + rangeCount: 0, + removeAllRanges() {}, + addRange() {}, + }; + const createRange = () => ({ + selectNodeContents() {}, + collapse() {}, }); + const getSelection = () => selection as unknown as Selection; + const matchMedia = () => ({ matches: false, addEventListener() {}, removeEventListener() {} }); + Object.assign(document, { createRange, getSelection }); + Object.assign(window, { getSelection, matchMedia }); Object.assign(globalThis, { document, window, @@ -86,7 +93,7 @@ async function mountRegion(): Promise<{ setItem: (key: string, value: string) => storage.set(key, value), removeItem: (key: string) => storage.delete(key), }, - matchMedia: () => ({ matches: false, addEventListener() {}, removeEventListener() {} }), + matchMedia, requestAnimationFrame: (callback: FrameRequestCallback) => setTimeout(callback, 0), cancelAnimationFrame: (handle: number) => clearTimeout(handle), IS_REACT_ACT_ENVIRONMENT: true, diff --git a/apps/desktop/src/renderer/astryx-theme/maka.css b/apps/desktop/src/renderer/astryx-theme/maka.css index 724d75b7a6..62ccbd5c81 100644 --- a/apps/desktop/src/renderer/astryx-theme/maka.css +++ b/apps/desktop/src/renderer/astryx-theme/maka.css @@ -2,7 +2,7 @@ * @generated by `astryx theme build` — do not edit manually. * Source: src/renderer/astryx-theme/makaTheme.ts * Command: astryx theme build src/renderer/astryx-theme/makaTheme.ts --out src/renderer/astryx-theme/maka.css - * CLI: @astryxdesign/cli@0.5.2 + * CLI: @astryxdesign/cli@0.5.4 * Core: @astryxdesign/core@0.1.0 */ @@ -144,96 +144,96 @@ --font-family-body: -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Microsoft YaHei UI", "Noto Sans CJK SC", "Noto Sans SC", "WenQuanYi Micro Hei", "Source Han Sans SC", "Geist Variable", sans-serif; --font-family-heading: -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Microsoft YaHei UI", "Noto Sans CJK SC", "Noto Sans SC", "WenQuanYi Micro Hei", "Source Han Sans SC", "Geist Variable", sans-serif; --font-family-code: "Geist Mono Variable", "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; - --color-syntax-keyword: light-dark(#700084, #efa8ff); - --color-syntax-string: light-dark(#005600, #a6d2a2); - --color-syntax-comment: light-dark(#737373, #a3a3a3); - --color-syntax-number: light-dark(#6e3500, #ffb37f); - --color-syntax-function: light-dark(#00458c, #a0caff); - --color-syntax-type: light-dark(#700084, #efa8ff); - --color-syntax-variable: light-dark(#171717, #e5e5e5); - --color-syntax-operator: light-dark(#737373, #a3a3a3); - --color-syntax-constant: light-dark(#6e3500, #ffb37f); - --color-syntax-tag: light-dark(#89001a, #ffaeaa); - --color-syntax-attribute: light-dark(#584400, #eec12f); - --color-syntax-property: light-dark(#005348, #83dac9); - --color-syntax-punctuation: light-dark(#6e6e6e, #a0a0a0); - --color-syntax-background: light-dark(#fafafa, #0a0a0a); + --color-syntax-keyword: light-dark(#6b187c, #efa8ff); + --color-syntax-string: light-dark(#0b5615, #a4d6a3); + --color-syntax-comment: light-dark(#6a6a6a, #9e9e9e); + --color-syntax-number: light-dark(#733100, #ffb37e); + --color-syntax-function: light-dark(#00458c, #a1caff); + --color-syntax-type: light-dark(#6b187c, #efa8ff); + --color-syntax-variable: light-dark(#111111, #e2e2e2); + --color-syntax-operator: light-dark(#6a6a6a, #9e9e9e); + --color-syntax-constant: light-dark(#733100, #ffb37e); + --color-syntax-tag: light-dark(#8a0011, #ffaea7); + --color-syntax-attribute: light-dark(#584400, #eec448); + --color-syntax-property: light-dark(#005348, #90d7c8); + --color-syntax-punctuation: light-dark(#6a6a6a, #9e9e9e); + --color-syntax-background: light-dark(#ffffff, #111111); --color-background-surface: var(--background); --color-background-body: var(--surface-canvas); --color-background-card: var(--background-elevated); --color-background-popover: var(--background-elevated); --color-background-muted: var(--muted); - --color-accent: light-dark(#262626, #ebebeb); + --color-accent: light-dark(#262626, #f1f1f1); --color-accent-muted: light-dark(#f1f1f1, #262626); - --color-neutral: light-dark(#0000000F, #FFFFFF1A); + --color-neutral: light-dark(#0000000F, #ffffff1A); --color-overlay: light-dark(#00000080, #000000CC); --color-overlay-hover: var(--state-hover-bg); - --color-overlay-pressed: light-dark(#0000001A, #FFFFFF1A); + --color-overlay-pressed: light-dark(#0000001A, #ffffff1A); --color-text-primary: var(--foreground); --color-text-secondary: var(--muted-foreground); - --color-text-disabled: light-dark(#a3a3a3, #525252); - --color-text-accent: light-dark(#262626, #ebebeb); + --color-text-disabled: light-dark(#9e9e9e, #525252); + --color-text-accent: light-dark(#262626, #f1f1f1); --color-on-dark: #ffffff; - --color-on-light: #171717; - --color-on-accent: light-dark(#ffffff, #171717); - --color-on-success: light-dark(#ffffff, #171717); - --color-on-error: light-dark(#ffffff, #171717); - --color-on-warning: #171717; - --color-icon-accent: light-dark(#262626, #ebebeb); + --color-on-light: #111111; + --color-on-accent: light-dark(#ffffff, #111111); + --color-on-success: light-dark(#ffffff, #111111); + --color-on-error: light-dark(#ffffff, #111111); + --color-on-warning: #111111; + --color-icon-accent: light-dark(#262626, #f1f1f1); --color-icon-primary: var(--foreground); --color-icon-secondary: var(--muted-foreground); - --color-icon-disabled: light-dark(#a3a3a3, #525252); - --color-success: light-dark(#007004, #9fe59b); - --color-error: light-dark(#a50c25, #ffc6c1); - --color-warning: light-dark(#745b00, #fdcf4f); + --color-icon-disabled: light-dark(#9e9e9e, #525252); + --color-success: light-dark(#237028, #a4d6a3); + --color-error: light-dark(#9e0015, #ffc4be); + --color-warning: light-dark(#745b00, #f8d36a); --color-success-muted: oklch(from var(--success) l c h / 0.24); --color-error-muted: oklch(from var(--destructive) l c h / 0.24); --color-warning-muted: oklch(from var(--warning) l c h / 0.24); --color-border: var(--border); --color-border-emphasized: var(--border-strong); - --color-skeleton: light-dark(#ebebeb, #525252); + --color-skeleton: light-dark(#f1f1f1, #525252); --color-shadow: light-dark(#0000001A, #0000004D); --color-tint-hover: light-dark(black, white); - --color-background-red: light-dark(#facecb, #ff9e973D); - --color-border-red: light-dark(#e6bab8, #ff6f6c); - --color-icon-red: light-dark(#89001a, #ff9e97); - --color-text-red: light-dark(#89001a, #ffc6c1); - --color-background-orange: light-dark(#fad0b5, #ffa2583D); - --color-border-orange: light-dark(#e6bda2, #e2883e); - --color-icon-orange: light-dark(#6e3500, #ffa258); - --color-text-orange: light-dark(#6e3500, #ffc9a2); - --color-background-yellow: light-dark(#f8da9d, #deb4333D); - --color-border-yellow: light-dark(#e4c279, #c0990e); - --color-icon-yellow: light-dark(#584400, #deb433); - --color-text-yellow: light-dark(#584400, #fdcf4f); - --color-background-green: light-dark(#c5e5c0, #84c9803D); - --color-border-green: light-dark(#b2d1ac, #69ad67); - --color-icon-green: light-dark(#0c5700, #84c980); - --color-text-green: light-dark(#0c5700, #9fe59b); - --color-background-teal: light-dark(#a5e3d6, #7ec6b83D); - --color-border-teal: light-dark(#94d6c8, #63ab9d); - --color-icon-teal: light-dark(#005348, #7ec6b8); - --color-text-teal: light-dark(#005348, #99e2d3); - --color-background-cyan: light-dark(#a3e0ef, #83c2d43D); - --color-border-cyan: light-dark(#91d3e3, #67a7b8); - --color-icon-cyan: light-dark(#00505f, #83c2d4); - --color-text-cyan: light-dark(#00505f, #9edef0); - --color-background-blue: light-dark(#c4ddfb, #9eb7ff3D); - --color-border-blue: light-dark(#b1c9e7, #6d9cfe); - --color-icon-blue: light-dark(#00458c, #9eb7ff); - --color-text-blue: light-dark(#00458c, #c7d3ff); - --color-background-purple: light-dark(#eccef3, #f297ff3D); - --color-border-purple: light-dark(#d8bbdf, #dd74f0); - --color-icon-purple: light-dark(#700084, #f297ff); - --color-text-purple: light-dark(#700084, #fac1ff); - --color-background-pink: light-dark(#fccadc, #ff99c33D); - --color-border-pink: light-dark(#e7b7c8, #f273aa); - --color-icon-pink: light-dark(#83004b, #ff99c3); - --color-text-pink: light-dark(#83004b, #ffc3da); - --color-background-gray: light-dark(#e5e5e5, var(--color-neutral)); + --color-background-red: light-dark(#ffc4be, #5b2b28); + --color-border-red: light-dark(#ffaea7, #fa6762); + --color-icon-red: light-dark(#8a0011, #ff9890); + --color-text-red: light-dark(#8a0011, #ffaea7); + --color-background-orange: light-dark(#ffc7a1, #503424); + --color-border-orange: light-dark(#ffc7a1, #df843f); + --color-icon-orange: light-dark(#733100, #ff9e55); + --color-text-orange: light-dark(#733100, #ffb37e); + --color-background-yellow: light-dark(#fae19e, #453a1c); + --color-border-yellow: light-dark(#e3c36c, #c29900); + --color-icon-yellow: light-dark(#584400, #e2b623); + --color-text-yellow: light-dark(#584400, #eec448); + --color-background-green: light-dark(#bce0bb, #2b422b); + --color-border-green: light-dark(#aad4a9, #6ab26b); + --color-icon-green: light-dark(#0b5615, #90ca90); + --color-text-green: light-dark(#0b5615, #90ca90); + --color-background-teal: light-dark(#a9e2d6, #28413c); + --color-border-teal: light-dark(#90d7c8, #4fb1a0); + --color-icon-teal: light-dark(#005348, #81c9bb); + --color-text-teal: light-dark(#005348, #90d7c8); + --color-background-cyan: light-dark(#9ae2f4, #274046); + --color-border-cyan: light-dark(#85d5e9, #49adc4); + --color-icon-cyan: light-dark(#00505f, #71c7dd); + --color-text-cyan: light-dark(#00505f, #85d5e9); + --color-background-blue: light-dark(#b9d7ff, #253c5a); + --color-border-blue: light-dark(#a1caff, #5aa0f8); + --color-icon-blue: light-dark(#00458c, #88bcff); + --color-text-blue: light-dark(#00458c, #a1caff); + --color-background-purple: light-dark(#f7d5ff, #4a2f51); + --color-border-purple: light-dark(#f3bfff, #d885eb); + --color-icon-purple: light-dark(#6b187c, #e496f6); + --color-text-purple: light-dark(#6b187c, #eaacf8); + --color-background-pink: light-dark(#ffc0d7, #572b3d); + --color-border-pink: light-dark(#ffc0d7, #fc78b1); + --color-icon-pink: light-dark(#83004b, #fd92bd); + --color-text-pink: light-dark(#83004b, #ffa9ca); + --color-background-gray: light-dark(#e2e2e2, #303030); --color-border-gray: light-dark(#d4d4d4, #262626); - --color-icon-gray: light-dark(#525252, #a3a3a3); - --color-text-gray: light-dark(#262626, #e5e5e5); + --color-icon-gray: light-dark(#525252, #9e9e9e); + --color-text-gray: light-dark(#262626, #d4d4d4); --radius-none: 0px; --radius-inner: var(--radius-control); --radius-element: var(--radius-surface); @@ -245,9 +245,19 @@ --shadow-high: 0 4px 6px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), 0 12px 24px light-dark(oklch(0 0 0 / 15%), oklch(0 0 0 / 70%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 15%)); --shadow-inset-hover: inset 0px 0px 0px 2px #0074e24D; --shadow-inset-selected: inset 0px 0px 0px 2px #0074e280; - --shadow-inset-success: inset 0px 0px 0px 2px #1981004D; - --shadow-inset-warning: inset 0px 0px 0px 2px #ffce2f4D; - --shadow-inset-error: inset 0px 0px 0px 2px #e33f4a4D; + --shadow-inset-success: inset 0px 0px 0px 2px #2f7d334D; + --shadow-inset-warning: inset 0px 0px 0px 2px #f8d36a4D; + --shadow-inset-error: inset 0px 0px 0px 2px #de47454D; + --astryx-theme-neutral-color-status-fill-accent: light-dark(#0074e2, #6d9cfe); + --astryx-theme-neutral-color-status-fill-success: light-dark(#198100, #64af4c); + --astryx-theme-neutral-color-status-fill-warning: #ffce2f; + --astryx-theme-neutral-color-status-fill-error: light-dark(#c9303a, #ff705d); + --astryx-theme-neutral-color-status-muted-accent: light-dark(#b9d7ff, #88bcff3D); + --astryx-theme-neutral-color-on-tint-neutral: light-dark(#fafafa4D, #0a0a0a4D); + --astryx-theme-neutral-color-on-tint-overlay-hover: light-dark(#fafafa1A, #0a0a0a1A); + --astryx-theme-neutral-color-on-tint-overlay-pressed: light-dark(#fafafa33, #0a0a0a33); + --astryx-theme-neutral-color-destructive-overlay-hover: light-dark(#ff7f770D, #ee736c0D); + --astryx-theme-neutral-color-destructive-overlay-pressed: light-dark(#ff7f771A, #ee736c1A); } .astryx-heading.level-1 { @@ -361,11 +371,13 @@ .astryx-button.destructive { background-color: var(--color-error-muted); color: var(--color-error); + --color-overlay-hover: var(--astryx-theme-neutral-color-destructive-overlay-hover); + --color-overlay-pressed: var(--astryx-theme-neutral-color-destructive-overlay-pressed); } .astryx-badge.info { - background-color: light-dark(#0074e2, #6d9cfe); - color: light-dark(#ffffff, #171717); + background-color: var(--astryx-theme-neutral-color-status-fill-accent); + color: var(--color-on-accent); } .astryx-badge.neutral { @@ -374,18 +386,18 @@ } .astryx-badge.success { - background-color: light-dark(#198100, #64af4c); - color: light-dark(#ffffff, #171717); + background-color: var(--astryx-theme-neutral-color-status-fill-success); + color: var(--color-on-success); } .astryx-badge.warning { - background-color: #ffce2f; - color: #171717; + background-color: var(--astryx-theme-neutral-color-status-fill-warning); + color: var(--color-on-warning); } .astryx-badge.error { - background-color: light-dark(#c9303a, #ff705d); - color: light-dark(#ffffff, #171717); + background-color: var(--astryx-theme-neutral-color-status-fill-error); + color: var(--color-on-error); } .astryx-badge.red { @@ -439,23 +451,58 @@ } .astryx-statusdot.success { - background-color: light-dark(#198100, #64af4c); + background-color: var(--astryx-theme-neutral-color-status-fill-success); } .astryx-statusdot.warning { - background-color: #ffce2f; + background-color: var(--astryx-theme-neutral-color-status-fill-warning); } .astryx-statusdot.error { - background-color: light-dark(#c9303a, #ff705d); + background-color: var(--astryx-theme-neutral-color-status-fill-error); } .astryx-statusdot.accent { - background-color: light-dark(#0074e2, #6d9cfe); + background-color: var(--astryx-theme-neutral-color-status-fill-accent); + } + + .astryx-avatar-status-dot.success { + background-color: var(--astryx-theme-neutral-color-status-fill-success); + } + + .astryx-avatar-status-dot.error { + background-color: var(--astryx-theme-neutral-color-status-fill-error); + } + + .astryx-segmented-control { + padding: var(--spacing-1); + --_segmented-control-padding: var(--spacing-1); + } + + .astryx-segmented-control-item.sm { + height: calc(var(--size-element-sm) - 8px); + } + + .astryx-segmented-control-item.md { + height: calc(var(--size-element-md) - 8px); + } + + .astryx-segmented-control-item.lg { + height: calc(var(--size-element-lg) - 8px); + } + + .astryx-segmented-control-item.selected { + box-shadow: none; + } + + .astryx-banner { + --color-neutral: var(--astryx-theme-neutral-color-on-tint-neutral); + --color-overlay-hover: var(--astryx-theme-neutral-color-on-tint-overlay-hover); + --color-overlay-pressed: var(--astryx-theme-neutral-color-on-tint-overlay-pressed); } .astryx-banner.info { - --color-accent-muted: var(--color-background-blue); + --color-accent-muted: var(--astryx-theme-neutral-color-status-muted-accent); --color-text-primary: var(--color-text-blue); --color-text-secondary: var(--color-text-blue); --color-accent: var(--color-text-blue); @@ -479,6 +526,22 @@ --color-error: var(--color-text-red); } + .astryx-step-indicator.accent { + --color-accent: var(--astryx-theme-neutral-color-status-fill-accent); + } + + .astryx-step-indicator.success { + --color-success: var(--astryx-theme-neutral-color-status-fill-success); + } + + .astryx-step-indicator.warning { + --color-warning: var(--astryx-theme-neutral-color-status-fill-warning); + } + + .astryx-step-indicator.error { + --color-error: var(--astryx-theme-neutral-color-status-fill-error); + } + .astryx-switch { --color-background-gray: var(--color-border-emphasized); } @@ -488,19 +551,19 @@ } .astryx-progressbar.accent { - --color-accent: #0074e2; + --color-accent: var(--astryx-theme-neutral-color-status-fill-accent); } .astryx-progressbar.success { - --color-success: #198100; + --color-success: var(--astryx-theme-neutral-color-status-fill-success); } .astryx-progressbar.warning { - --color-warning: #ffce2f; + --color-warning: var(--astryx-theme-neutral-color-status-fill-warning); } .astryx-progressbar.error { - --color-error: #c9303a; + --color-error: var(--astryx-theme-neutral-color-status-fill-error); } .astryx-card { diff --git a/apps/desktop/src/renderer/astryx-theme/maka.d.ts b/apps/desktop/src/renderer/astryx-theme/maka.d.ts index a7cc0b13dd..cb49f4a8fa 100644 --- a/apps/desktop/src/renderer/astryx-theme/maka.d.ts +++ b/apps/desktop/src/renderer/astryx-theme/maka.d.ts @@ -2,7 +2,7 @@ * @generated by `astryx theme build` — do not edit manually. * Source: src/renderer/astryx-theme/makaTheme.ts * Command: astryx theme build src/renderer/astryx-theme/makaTheme.ts --out src/renderer/astryx-theme/maka.css - * CLI: @astryxdesign/cli@0.5.2 + * CLI: @astryxdesign/cli@0.5.4 * Core: @astryxdesign/core@0.1.0 */ diff --git a/apps/desktop/src/renderer/astryx-theme/maka.js b/apps/desktop/src/renderer/astryx-theme/maka.js index 182fe6f39f..d328ab9267 100644 --- a/apps/desktop/src/renderer/astryx-theme/maka.js +++ b/apps/desktop/src/renderer/astryx-theme/maka.js @@ -2,7 +2,7 @@ * @generated by `astryx theme build` — do not edit manually. * Source: src/renderer/astryx-theme/makaTheme.ts * Command: astryx theme build src/renderer/astryx-theme/makaTheme.ts --out src/renderer/astryx-theme/maka.css - * CLI: @astryxdesign/cli@0.5.2 + * CLI: @astryxdesign/cli@0.5.4 * Core: @astryxdesign/core@0.1.0 */ @@ -84,96 +84,96 @@ export const makaTheme = { "--font-family-body": "-apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", \"Microsoft YaHei UI\", \"Noto Sans CJK SC\", \"Noto Sans SC\", \"WenQuanYi Micro Hei\", \"Source Han Sans SC\", \"Geist Variable\", sans-serif", "--font-family-heading": "-apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", \"Microsoft YaHei UI\", \"Noto Sans CJK SC\", \"Noto Sans SC\", \"WenQuanYi Micro Hei\", \"Source Han Sans SC\", \"Geist Variable\", sans-serif", "--font-family-code": "\"Geist Mono Variable\", \"JetBrains Mono\", ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace", - "--color-syntax-keyword": "light-dark(#700084, #efa8ff)", - "--color-syntax-string": "light-dark(#005600, #a6d2a2)", - "--color-syntax-comment": "light-dark(#737373, #a3a3a3)", - "--color-syntax-number": "light-dark(#6e3500, #ffb37f)", - "--color-syntax-function": "light-dark(#00458c, #a0caff)", - "--color-syntax-type": "light-dark(#700084, #efa8ff)", - "--color-syntax-variable": "light-dark(#171717, #e5e5e5)", - "--color-syntax-operator": "light-dark(#737373, #a3a3a3)", - "--color-syntax-constant": "light-dark(#6e3500, #ffb37f)", - "--color-syntax-tag": "light-dark(#89001a, #ffaeaa)", - "--color-syntax-attribute": "light-dark(#584400, #eec12f)", - "--color-syntax-property": "light-dark(#005348, #83dac9)", - "--color-syntax-punctuation": "light-dark(#6e6e6e, #a0a0a0)", - "--color-syntax-background": "light-dark(#fafafa, #0a0a0a)", + "--color-syntax-keyword": "light-dark(#6b187c, #efa8ff)", + "--color-syntax-string": "light-dark(#0b5615, #a4d6a3)", + "--color-syntax-comment": "light-dark(#6a6a6a, #9e9e9e)", + "--color-syntax-number": "light-dark(#733100, #ffb37e)", + "--color-syntax-function": "light-dark(#00458c, #a1caff)", + "--color-syntax-type": "light-dark(#6b187c, #efa8ff)", + "--color-syntax-variable": "light-dark(#111111, #e2e2e2)", + "--color-syntax-operator": "light-dark(#6a6a6a, #9e9e9e)", + "--color-syntax-constant": "light-dark(#733100, #ffb37e)", + "--color-syntax-tag": "light-dark(#8a0011, #ffaea7)", + "--color-syntax-attribute": "light-dark(#584400, #eec448)", + "--color-syntax-property": "light-dark(#005348, #90d7c8)", + "--color-syntax-punctuation": "light-dark(#6a6a6a, #9e9e9e)", + "--color-syntax-background": "light-dark(#ffffff, #111111)", "--color-background-surface": "var(--background)", "--color-background-body": "var(--surface-canvas)", "--color-background-card": "var(--background-elevated)", "--color-background-popover": "var(--background-elevated)", "--color-background-muted": "var(--muted)", - "--color-accent": "light-dark(#262626, #ebebeb)", + "--color-accent": "light-dark(#262626, #f1f1f1)", "--color-accent-muted": "light-dark(#f1f1f1, #262626)", - "--color-neutral": "light-dark(#0000000F, #FFFFFF1A)", + "--color-neutral": "light-dark(#0000000F, #ffffff1A)", "--color-overlay": "light-dark(#00000080, #000000CC)", "--color-overlay-hover": "var(--state-hover-bg)", - "--color-overlay-pressed": "light-dark(#0000001A, #FFFFFF1A)", + "--color-overlay-pressed": "light-dark(#0000001A, #ffffff1A)", "--color-text-primary": "var(--foreground)", "--color-text-secondary": "var(--muted-foreground)", - "--color-text-disabled": "light-dark(#a3a3a3, #525252)", - "--color-text-accent": "light-dark(#262626, #ebebeb)", + "--color-text-disabled": "light-dark(#9e9e9e, #525252)", + "--color-text-accent": "light-dark(#262626, #f1f1f1)", "--color-on-dark": "#ffffff", - "--color-on-light": "#171717", - "--color-on-accent": "light-dark(#ffffff, #171717)", - "--color-on-success": "light-dark(#ffffff, #171717)", - "--color-on-error": "light-dark(#ffffff, #171717)", - "--color-on-warning": "#171717", - "--color-icon-accent": "light-dark(#262626, #ebebeb)", + "--color-on-light": "#111111", + "--color-on-accent": "light-dark(#ffffff, #111111)", + "--color-on-success": "light-dark(#ffffff, #111111)", + "--color-on-error": "light-dark(#ffffff, #111111)", + "--color-on-warning": "#111111", + "--color-icon-accent": "light-dark(#262626, #f1f1f1)", "--color-icon-primary": "var(--foreground)", "--color-icon-secondary": "var(--muted-foreground)", - "--color-icon-disabled": "light-dark(#a3a3a3, #525252)", - "--color-success": "light-dark(#007004, #9fe59b)", - "--color-error": "light-dark(#a50c25, #ffc6c1)", - "--color-warning": "light-dark(#745b00, #fdcf4f)", + "--color-icon-disabled": "light-dark(#9e9e9e, #525252)", + "--color-success": "light-dark(#237028, #a4d6a3)", + "--color-error": "light-dark(#9e0015, #ffc4be)", + "--color-warning": "light-dark(#745b00, #f8d36a)", "--color-success-muted": "oklch(from var(--success) l c h / 0.24)", "--color-error-muted": "oklch(from var(--destructive) l c h / 0.24)", "--color-warning-muted": "oklch(from var(--warning) l c h / 0.24)", "--color-border": "var(--border)", "--color-border-emphasized": "var(--border-strong)", - "--color-skeleton": "light-dark(#ebebeb, #525252)", + "--color-skeleton": "light-dark(#f1f1f1, #525252)", "--color-shadow": "light-dark(#0000001A, #0000004D)", "--color-tint-hover": "light-dark(black, white)", - "--color-background-red": "light-dark(#facecb, #ff9e973D)", - "--color-border-red": "light-dark(#e6bab8, #ff6f6c)", - "--color-icon-red": "light-dark(#89001a, #ff9e97)", - "--color-text-red": "light-dark(#89001a, #ffc6c1)", - "--color-background-orange": "light-dark(#fad0b5, #ffa2583D)", - "--color-border-orange": "light-dark(#e6bda2, #e2883e)", - "--color-icon-orange": "light-dark(#6e3500, #ffa258)", - "--color-text-orange": "light-dark(#6e3500, #ffc9a2)", - "--color-background-yellow": "light-dark(#f8da9d, #deb4333D)", - "--color-border-yellow": "light-dark(#e4c279, #c0990e)", - "--color-icon-yellow": "light-dark(#584400, #deb433)", - "--color-text-yellow": "light-dark(#584400, #fdcf4f)", - "--color-background-green": "light-dark(#c5e5c0, #84c9803D)", - "--color-border-green": "light-dark(#b2d1ac, #69ad67)", - "--color-icon-green": "light-dark(#0c5700, #84c980)", - "--color-text-green": "light-dark(#0c5700, #9fe59b)", - "--color-background-teal": "light-dark(#a5e3d6, #7ec6b83D)", - "--color-border-teal": "light-dark(#94d6c8, #63ab9d)", - "--color-icon-teal": "light-dark(#005348, #7ec6b8)", - "--color-text-teal": "light-dark(#005348, #99e2d3)", - "--color-background-cyan": "light-dark(#a3e0ef, #83c2d43D)", - "--color-border-cyan": "light-dark(#91d3e3, #67a7b8)", - "--color-icon-cyan": "light-dark(#00505f, #83c2d4)", - "--color-text-cyan": "light-dark(#00505f, #9edef0)", - "--color-background-blue": "light-dark(#c4ddfb, #9eb7ff3D)", - "--color-border-blue": "light-dark(#b1c9e7, #6d9cfe)", - "--color-icon-blue": "light-dark(#00458c, #9eb7ff)", - "--color-text-blue": "light-dark(#00458c, #c7d3ff)", - "--color-background-purple": "light-dark(#eccef3, #f297ff3D)", - "--color-border-purple": "light-dark(#d8bbdf, #dd74f0)", - "--color-icon-purple": "light-dark(#700084, #f297ff)", - "--color-text-purple": "light-dark(#700084, #fac1ff)", - "--color-background-pink": "light-dark(#fccadc, #ff99c33D)", - "--color-border-pink": "light-dark(#e7b7c8, #f273aa)", - "--color-icon-pink": "light-dark(#83004b, #ff99c3)", - "--color-text-pink": "light-dark(#83004b, #ffc3da)", - "--color-background-gray": "light-dark(#e5e5e5, var(--color-neutral))", + "--color-background-red": "light-dark(#ffc4be, #5b2b28)", + "--color-border-red": "light-dark(#ffaea7, #fa6762)", + "--color-icon-red": "light-dark(#8a0011, #ff9890)", + "--color-text-red": "light-dark(#8a0011, #ffaea7)", + "--color-background-orange": "light-dark(#ffc7a1, #503424)", + "--color-border-orange": "light-dark(#ffc7a1, #df843f)", + "--color-icon-orange": "light-dark(#733100, #ff9e55)", + "--color-text-orange": "light-dark(#733100, #ffb37e)", + "--color-background-yellow": "light-dark(#fae19e, #453a1c)", + "--color-border-yellow": "light-dark(#e3c36c, #c29900)", + "--color-icon-yellow": "light-dark(#584400, #e2b623)", + "--color-text-yellow": "light-dark(#584400, #eec448)", + "--color-background-green": "light-dark(#bce0bb, #2b422b)", + "--color-border-green": "light-dark(#aad4a9, #6ab26b)", + "--color-icon-green": "light-dark(#0b5615, #90ca90)", + "--color-text-green": "light-dark(#0b5615, #90ca90)", + "--color-background-teal": "light-dark(#a9e2d6, #28413c)", + "--color-border-teal": "light-dark(#90d7c8, #4fb1a0)", + "--color-icon-teal": "light-dark(#005348, #81c9bb)", + "--color-text-teal": "light-dark(#005348, #90d7c8)", + "--color-background-cyan": "light-dark(#9ae2f4, #274046)", + "--color-border-cyan": "light-dark(#85d5e9, #49adc4)", + "--color-icon-cyan": "light-dark(#00505f, #71c7dd)", + "--color-text-cyan": "light-dark(#00505f, #85d5e9)", + "--color-background-blue": "light-dark(#b9d7ff, #253c5a)", + "--color-border-blue": "light-dark(#a1caff, #5aa0f8)", + "--color-icon-blue": "light-dark(#00458c, #88bcff)", + "--color-text-blue": "light-dark(#00458c, #a1caff)", + "--color-background-purple": "light-dark(#f7d5ff, #4a2f51)", + "--color-border-purple": "light-dark(#f3bfff, #d885eb)", + "--color-icon-purple": "light-dark(#6b187c, #e496f6)", + "--color-text-purple": "light-dark(#6b187c, #eaacf8)", + "--color-background-pink": "light-dark(#ffc0d7, #572b3d)", + "--color-border-pink": "light-dark(#ffc0d7, #fc78b1)", + "--color-icon-pink": "light-dark(#83004b, #fd92bd)", + "--color-text-pink": "light-dark(#83004b, #ffa9ca)", + "--color-background-gray": "light-dark(#e2e2e2, #303030)", "--color-border-gray": "light-dark(#d4d4d4, #262626)", - "--color-icon-gray": "light-dark(#525252, #a3a3a3)", - "--color-text-gray": "light-dark(#262626, #e5e5e5)", + "--color-icon-gray": "light-dark(#525252, #9e9e9e)", + "--color-text-gray": "light-dark(#262626, #d4d4d4)", "--radius-none": "0px", "--radius-inner": "var(--radius-control)", "--radius-element": "var(--radius-surface)", @@ -185,10 +185,35 @@ export const makaTheme = { "--shadow-high": "0 4px 6px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), 0 12px 24px light-dark(oklch(0 0 0 / 15%), oklch(0 0 0 / 70%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 15%))", "--shadow-inset-hover": "inset 0px 0px 0px 2px #0074e24D", "--shadow-inset-selected": "inset 0px 0px 0px 2px #0074e280", - "--shadow-inset-success": "inset 0px 0px 0px 2px #1981004D", - "--shadow-inset-warning": "inset 0px 0px 0px 2px #ffce2f4D", - "--shadow-inset-error": "inset 0px 0px 0px 2px #e33f4a4D" + "--shadow-inset-success": "inset 0px 0px 0px 2px #2f7d334D", + "--shadow-inset-warning": "inset 0px 0px 0px 2px #f8d36a4D", + "--shadow-inset-error": "inset 0px 0px 0px 2px #de47454D" }, + localTokens: { + "--astryx-theme-neutral-color-status-fill-accent": "light-dark(#0074e2, #6d9cfe)", + "--astryx-theme-neutral-color-status-fill-success": "light-dark(#198100, #64af4c)", + "--astryx-theme-neutral-color-status-fill-warning": "#ffce2f", + "--astryx-theme-neutral-color-status-fill-error": "light-dark(#c9303a, #ff705d)", + "--astryx-theme-neutral-color-status-muted-accent": "light-dark(#b9d7ff, #88bcff3D)", + "--astryx-theme-neutral-color-on-tint-neutral": "light-dark(#fafafa4D, #0a0a0a4D)", + "--astryx-theme-neutral-color-on-tint-overlay-hover": "light-dark(#fafafa1A, #0a0a0a1A)", + "--astryx-theme-neutral-color-on-tint-overlay-pressed": "light-dark(#fafafa33, #0a0a0a33)", + "--astryx-theme-neutral-color-destructive-overlay-hover": "light-dark(#ff7f770D, #ee736c0D)", + "--astryx-theme-neutral-color-destructive-overlay-pressed": "light-dark(#ff7f771A, #ee736c1A)" + }, + __localTokenOwners: { + "--astryx-theme-neutral-color-status-fill-accent": "neutral", + "--astryx-theme-neutral-color-status-fill-success": "neutral", + "--astryx-theme-neutral-color-status-fill-warning": "neutral", + "--astryx-theme-neutral-color-status-fill-error": "neutral", + "--astryx-theme-neutral-color-status-muted-accent": "neutral", + "--astryx-theme-neutral-color-on-tint-neutral": "neutral", + "--astryx-theme-neutral-color-on-tint-overlay-hover": "neutral", + "--astryx-theme-neutral-color-on-tint-overlay-pressed": "neutral", + "--astryx-theme-neutral-color-destructive-overlay-hover": "neutral", + "--astryx-theme-neutral-color-destructive-overlay-pressed": "neutral" + }, + __localTokenLineage: ["neutral","maka"], components: { "heading": { "level:1": { @@ -288,29 +313,31 @@ export const makaTheme = { "button": { "variant:destructive": { "backgroundColor": "var(--color-error-muted)", - "color": "var(--color-error)" + "color": "var(--color-error)", + "--color-overlay-hover": "var(--astryx-theme-neutral-color-destructive-overlay-hover)", + "--color-overlay-pressed": "var(--astryx-theme-neutral-color-destructive-overlay-pressed)" } }, "badge": { "variant:info": { - "backgroundColor": "light-dark(#0074e2, #6d9cfe)", - "color": "light-dark(#ffffff, #171717)" + "backgroundColor": "var(--astryx-theme-neutral-color-status-fill-accent)", + "color": "var(--color-on-accent)" }, "variant:neutral": { "backgroundColor": "var(--color-background-gray)", "color": "var(--color-text-gray)" }, "variant:success": { - "backgroundColor": "light-dark(#198100, #64af4c)", - "color": "light-dark(#ffffff, #171717)" + "backgroundColor": "var(--astryx-theme-neutral-color-status-fill-success)", + "color": "var(--color-on-success)" }, "variant:warning": { - "backgroundColor": "#ffce2f", - "color": "#171717" + "backgroundColor": "var(--astryx-theme-neutral-color-status-fill-warning)", + "color": "var(--color-on-warning)" }, "variant:error": { - "backgroundColor": "light-dark(#c9303a, #ff705d)", - "color": "light-dark(#ffffff, #171717)" + "backgroundColor": "var(--astryx-theme-neutral-color-status-fill-error)", + "color": "var(--color-on-error)" }, "variant:red": { "backgroundColor": "var(--color-background-red)", @@ -355,21 +382,53 @@ export const makaTheme = { }, "statusdot": { "variant:success": { - "backgroundColor": "light-dark(#198100, #64af4c)" + "backgroundColor": "var(--astryx-theme-neutral-color-status-fill-success)" }, "variant:warning": { - "backgroundColor": "#ffce2f" + "backgroundColor": "var(--astryx-theme-neutral-color-status-fill-warning)" }, "variant:error": { - "backgroundColor": "light-dark(#c9303a, #ff705d)" + "backgroundColor": "var(--astryx-theme-neutral-color-status-fill-error)" }, "variant:accent": { - "backgroundColor": "light-dark(#0074e2, #6d9cfe)" + "backgroundColor": "var(--astryx-theme-neutral-color-status-fill-accent)" + } + }, + "avatar-status-dot": { + "variant:success": { + "backgroundColor": "var(--astryx-theme-neutral-color-status-fill-success)" + }, + "variant:error": { + "backgroundColor": "var(--astryx-theme-neutral-color-status-fill-error)" + } + }, + "segmented-control": { + "base": { + "padding": "var(--spacing-1)" + } + }, + "segmented-control-item": { + "size:sm": { + "height": "calc(var(--size-element-sm) - 8px)" + }, + "size:md": { + "height": "calc(var(--size-element-md) - 8px)" + }, + "size:lg": { + "height": "calc(var(--size-element-lg) - 8px)" + }, + "selected": { + "boxShadow": "none" } }, "banner": { + "base": { + "--color-neutral": "var(--astryx-theme-neutral-color-on-tint-neutral)", + "--color-overlay-hover": "var(--astryx-theme-neutral-color-on-tint-overlay-hover)", + "--color-overlay-pressed": "var(--astryx-theme-neutral-color-on-tint-overlay-pressed)" + }, "status:info": { - "--color-accent-muted": "var(--color-background-blue)", + "--color-accent-muted": "var(--astryx-theme-neutral-color-status-muted-accent)", "--color-text-primary": "var(--color-text-blue)", "--color-text-secondary": "var(--color-text-blue)", "--color-accent": "var(--color-text-blue)" @@ -390,6 +449,20 @@ export const makaTheme = { "--color-error": "var(--color-text-red)" } }, + "step-indicator": { + "status:accent": { + "--color-accent": "var(--astryx-theme-neutral-color-status-fill-accent)" + }, + "status:success": { + "--color-success": "var(--astryx-theme-neutral-color-status-fill-success)" + }, + "status:warning": { + "--color-warning": "var(--astryx-theme-neutral-color-status-fill-warning)" + }, + "status:error": { + "--color-error": "var(--astryx-theme-neutral-color-status-fill-error)" + } + }, "switch": { "base": { "--color-background-gray": "var(--color-border-emphasized)" @@ -400,16 +473,16 @@ export const makaTheme = { "--color-background-muted": "var(--color-border-emphasized)" }, "variant:accent": { - "--color-accent": "#0074e2" + "--color-accent": "var(--astryx-theme-neutral-color-status-fill-accent)" }, "variant:success": { - "--color-success": "#198100" + "--color-success": "var(--astryx-theme-neutral-color-status-fill-success)" }, "variant:warning": { - "--color-warning": "#ffce2f" + "--color-warning": "var(--astryx-theme-neutral-color-status-fill-warning)" }, "variant:error": { - "--color-error": "#c9303a" + "--color-error": "var(--astryx-theme-neutral-color-status-fill-error)" } }, "card": { diff --git a/docs/astryx-surface-file-inventory.md b/docs/astryx-surface-file-inventory.md index 763394835c..cd988d4b82 100644 --- a/docs/astryx-surface-file-inventory.md +++ b/docs/astryx-surface-file-inventory.md @@ -2,7 +2,7 @@ Generated by `scripts/generate-astryx-surface-inventory.mjs`. Each row is one on-disk product surface file. Regenerated inventory must stay in sync with disk (coverage gate). -Generated against `@astryxdesign/core@0.5.2` (194 component exports). +Generated against `@astryxdesign/core@0.5.4` (194 component exports). Wiki bar: Design Conventions · API Use-the-System · Theming · Container Padding. diff --git a/package-lock.json b/package-lock.json index cb24194404..53ed9eb38a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,14 +24,14 @@ ], "devDependencies": { "@ai-sdk/provider-utils": "5.0.40", - "@astryxdesign/cli": "0.5.2", - "@astryxdesign/core": "0.5.2", - "@biomejs/biome": "2.5.11", + "@astryxdesign/cli": "0.5.4", + "@astryxdesign/core": "0.5.4", + "@biomejs/biome": "2.5.12", "@electron/asar": "4.3.0", - "@types/node": "^26.4.0", + "@types/node": "^26.5.0", "esbuild": "^0.28.1", "husky": "^9.1.7", - "knip": "^6.33.0", + "knip": "^6.34.0", "patch-package": "8.0.1", "typescript": "^7.0.2", "yaml": "2.9.0" @@ -63,17 +63,17 @@ }, "devDependencies": { "@ant-design/icons-svg": "4.6.0", - "@astryxdesign/core": "0.5.2", - "@astryxdesign/theme-neutral": "0.5.2", + "@astryxdesign/core": "0.5.4", + "@astryxdesign/theme-neutral": "0.5.4", "@babel/parser": "7.29.7", "@fontsource-variable/geist": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@maka/ui": "0.1.0", "@modelcontextprotocol/sdk": "^1.26.0", - "@playwright/test": "^1.62.1", - "@storybook/react-vite": "^10.5.10", + "@playwright/test": "^1.63.0", + "@storybook/react-vite": "^10.6.0", "@types/react": "^19.2.18", - "@types/react-dom": "^19.2.5", + "@types/react-dom": "^19.2.7", "@types/ws": "^8.18.1", "@vitejs/plugin-react": "^6.1.1", "@xterm/addon-fit": "^0.11.0", @@ -84,7 +84,7 @@ "linkedom": "^0.18.13", "react": "^19.2.1", "react-dom": "^19.2.1", - "simple-icons": "16.29.0", + "simple-icons": "16.30.0", "storybook": "^10.4.6", "vite": "^8.2.2" } @@ -638,9 +638,9 @@ } }, "node_modules/@astryxdesign/cli": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@astryxdesign/cli/-/cli-0.5.2.tgz", - "integrity": "sha512-JKEV7JJZjapMB8fPe+HR/ZRRYD3Qce0c0tt/YjNsHDCUSAYxg0ZSWJgb1zKpqVaJzRws/IN9rKws2GsIDYkrMA==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@astryxdesign/cli/-/cli-0.5.4.tgz", + "integrity": "sha512-cAuMW50/HTlt2Ey9S1sIb/mdLXJCg8ZthZhsMBzc6kUlzIceg3lsQJXRi1t5c63wiGDWLsAZCES5VWU+gnOASA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -690,9 +690,9 @@ } }, "node_modules/@astryxdesign/core": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@astryxdesign/core/-/core-0.5.2.tgz", - "integrity": "sha512-wJXjKIDpvqHG6t6BFzqRSuaJWIC2vMH3+9b4kVjwQE8LTYI5uUY6m8e5RQq06OC4BVTOHmnrhWfAzhsTaXFelw==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@astryxdesign/core/-/core-0.5.4.tgz", + "integrity": "sha512-Om3YCXGKd6d93UJwxUMbCiKyNlNweXOqYw4zYUoT4zqxiIfG4EXt2DRd809B7goBQGZWF13U8gud58jWb5z/fQ==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -705,16 +705,16 @@ } }, "node_modules/@astryxdesign/theme-neutral": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@astryxdesign/theme-neutral/-/theme-neutral-0.5.2.tgz", - "integrity": "sha512-eVCN+x6OdnQk5Zw3ksAgrIKhDiTzu+0oFi689jyf0TPzFrz50f5VT3OB4SHeGgShp4dzFDWPgz6GUFQda6kTHw==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@astryxdesign/theme-neutral/-/theme-neutral-0.5.4.tgz", + "integrity": "sha512-rLoxjTyajKPTIBQCKfKk4fNv5Z77p3t+KtKCOfpPajZlPgVYIdJGxWiClJ0cEFuboEZx9PCw59WOfpi1jx20Qw==", "dev": true, "license": "MIT", "dependencies": { "lucide-react": "^1.18.0" }, "peerDependencies": { - "@astryxdesign/core": "0.5.2", + "@astryxdesign/core": "0.5.4", "react": ">=19" } }, @@ -1300,9 +1300,9 @@ } }, "node_modules/@biomejs/biome": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.5.11.tgz", - "integrity": "sha512-Tj0dnkLPdW0ASjHfj2D/ZkkvPU2wrFmnE1jWTD2xzV1ycapV1DutbYXk4NDnR3rYTi1ZCbNFD4G2gRMEY65WaA==", + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.5.12.tgz", + "integrity": "sha512-Lw4VHZRebrReBBnlHa12JQjnIBm3JJAA55PDB9LbBVBF0q4RYphm6KfmIjqtPhf61MxZ5Q9KoK8R8x+7per5Aw==", "dev": true, "license": "MIT OR Apache-2.0", "bin": { @@ -1316,20 +1316,20 @@ "url": "https://opencollective.com/biome" }, "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "2.5.11", - "@biomejs/cli-darwin-x64": "2.5.11", - "@biomejs/cli-linux-arm64": "2.5.11", - "@biomejs/cli-linux-arm64-musl": "2.5.11", - "@biomejs/cli-linux-x64": "2.5.11", - "@biomejs/cli-linux-x64-musl": "2.5.11", - "@biomejs/cli-win32-arm64": "2.5.11", - "@biomejs/cli-win32-x64": "2.5.11" + "@biomejs/cli-darwin-arm64": "2.5.12", + "@biomejs/cli-darwin-x64": "2.5.12", + "@biomejs/cli-linux-arm64": "2.5.12", + "@biomejs/cli-linux-arm64-musl": "2.5.12", + "@biomejs/cli-linux-x64": "2.5.12", + "@biomejs/cli-linux-x64-musl": "2.5.12", + "@biomejs/cli-win32-arm64": "2.5.12", + "@biomejs/cli-win32-x64": "2.5.12" } }, "node_modules/@biomejs/cli-darwin-arm64": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.5.11.tgz", - "integrity": "sha512-6SGZxoKbXvUjMn1t6A98HqWISPnGNbYs0R/Rt2JarmXBSev+lva4QxUMWEBX9lX1Wo1XTJ78uk5xVDtG58SRZg==", + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.5.12.tgz", + "integrity": "sha512-lCRY1rwgNeWNgTr4DI/u6ZwXTRwRLHAvbaio1YLLGS+4r1nhvB2ssyPqIpfUSmRveNfv0fn/N58C7CAdK2XVrg==", "cpu": [ "arm64" ], @@ -1344,9 +1344,9 @@ } }, "node_modules/@biomejs/cli-darwin-x64": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.5.11.tgz", - "integrity": "sha512-nYkXY7tLBEgnGbYapDKAyKzgt44ZEyG+AKalvTXtCWKYgepI9dw327q+cVgedxm+Udi1ZzHKUyZrIusHi/KQbw==", + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.5.12.tgz", + "integrity": "sha512-vhPgwnh+6tN3ArdAXuET99xaNbFt7CG82Bqn+omHVLC5xdVx45JsYjGPmUIGNzjDek5XdNCP1HKksK7fn8+3bQ==", "cpu": [ "x64" ], @@ -1361,9 +1361,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.5.11.tgz", - "integrity": "sha512-3PVLSTD9RR73rvVPt5G3T1gc+ycggWEGfTD7RvzzbtcDPD27NxgxBbAFfpm7DXJKW6VLHWE1lLMGvFt2Qxjcow==", + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.5.12.tgz", + "integrity": "sha512-2gp8aVwXYKdAtmBfRFCUuyDMcfN1ahHqUkGfLYrZlNRFmryMATLVvJgWKvyA8wu4Rwn5OSxM1UcUmOuOFNGeBQ==", "cpu": [ "arm64" ], @@ -1381,9 +1381,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64-musl": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.5.11.tgz", - "integrity": "sha512-qhyZUMyCbWYFV2bAwRNVvfMVZ+hv7WYl6mossGrxC+uiQQXhvsuWWU8zz6jYX0mChZd9MgQZbm4vozTmG/5iGw==", + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.5.12.tgz", + "integrity": "sha512-couHYjFLL5uuI8ne6zhT7KwEsXo5YP7ry/2xmEqah7qanu0YmfDi3mwJg47YXSuv/NpZj22CZzcRH/5c4gjPSQ==", "cpu": [ "arm64" ], @@ -1401,9 +1401,9 @@ } }, "node_modules/@biomejs/cli-linux-x64": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.5.11.tgz", - "integrity": "sha512-JOytptlsgM33B2MMFUg8iBrb4IKpbD5JnJrSeYiaFEeAj4vuXx0iQSQZ4qK7sqyMtfjZxxPdNdMZZVL4y/mFyA==", + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.5.12.tgz", + "integrity": "sha512-SnvOs3TSTiuia4SQOUNe1aWC9RT4+YkjcKnOhL/nsKOV0k5ycgBkDzF0lUxKn1V7Q8CLTRq6iV23ZAivHomRoA==", "cpu": [ "x64" ], @@ -1421,9 +1421,9 @@ } }, "node_modules/@biomejs/cli-linux-x64-musl": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.5.11.tgz", - "integrity": "sha512-oRRlrchG5EfrEL/EmtT1qUjSNHk3/5LGeZhQqADBBAJF1b1ET6964xEKe7aGlGARzDfza8H/seEsFJl7S6Ql9w==", + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.5.12.tgz", + "integrity": "sha512-8A0oDW58/w9f/PQNYuq0sGUZtGtGrkNF4Z6n0PUoXpLCshi85vtKTv1XSznQawhdE4MXJ8ufpzHXyLFe87M/+w==", "cpu": [ "x64" ], @@ -1441,9 +1441,9 @@ } }, "node_modules/@biomejs/cli-win32-arm64": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.5.11.tgz", - "integrity": "sha512-e49E6K9hzH/ohJNx8Y26mY8HaV4I4ZViIeoqhKsmoXLKHhQnMeBAVqCgsGf2Wa3lXlS7RkporDXMHHWkzvZzFw==", + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.5.12.tgz", + "integrity": "sha512-b9vtoZFsuZt1pdjNwJvXl0f+BpayRzV008uS2+JpmwIKdSE2qdu4A/l04FESwLoou5g2E/Qlec0xwJydZplH+A==", "cpu": [ "arm64" ], @@ -1458,9 +1458,9 @@ } }, "node_modules/@biomejs/cli-win32-x64": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.5.11.tgz", - "integrity": "sha512-QSQr/KjOgXA7OzXJUWS+oguKyAZ3Q0l/lnlDGbu397eKo83atuWUjBPJrsqbKNF6CARGw8XXJLGzpHC8Ryhd4Q==", + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.5.12.tgz", + "integrity": "sha512-B1R/l+CwEpKFSuqiwePzPNRk1EiJN8kc0UhdafNz6MZN9v5OFP9HYP1irptvWzHrwVI4blVNGMbxc5zt70m3IA==", "cpu": [ "x64" ], @@ -1706,9 +1706,9 @@ } }, "node_modules/@earendil-works/pi-tui": { - "version": "0.84.4", - "resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.84.4.tgz", - "integrity": "sha512-nPUnwDkLtupPXnZQYrCwPFcuTydCDqTY6ZbFqhsL4S4kVq0AT418kPa/6uXwtaCD+MjBNBltb7ScTYX65yeE1w==", + "version": "0.85.1", + "resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.85.1.tgz", + "integrity": "sha512-OIzw9efInmO4WOBnD4TxcTdBjmzvYJpzslkgoUro946nEGoYWg5rwv1p4fDt3/JvMx9QybryUCUwlm7j8Dreig==", "license": "MIT", "dependencies": { "get-east-asian-width": "1.6.0", @@ -3344,9 +3344,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", "dev": true, "license": "MIT" }, @@ -3362,9 +3362,9 @@ } }, "node_modules/@larksuiteoapi/node-sdk": { - "version": "1.73.0", - "resolved": "https://registry.npmjs.org/@larksuiteoapi/node-sdk/-/node-sdk-1.73.0.tgz", - "integrity": "sha512-gs4EiupJ6RdYAEJGtuYrCVsB7wSMBwtUDK+ilpmOHD6RTvbtciW6AWciQO9coOQVuBZfh7hvAi25dPfCsny/nA==", + "version": "1.73.3", + "resolved": "https://registry.npmjs.org/@larksuiteoapi/node-sdk/-/node-sdk-1.73.3.tgz", + "integrity": "sha512-14Zj8r3f5CEIvpRuzb5HSYyp6O092N1kQkGHg6Kwi/c7B0CmXeCHBVM3Pmn0ozP5JvvAQd/PXBzW48rMH6cj4Q==", "license": "MIT", "dependencies": { "axios": "^1.16.0", @@ -4417,13 +4417,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.62.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.62.1.tgz", - "integrity": "sha512-DTcUc8qii+cpHvtOwggMtBRMjKZHXYWdw8syRYu2vtzuq4Wxphqq4NfCs5Zt44L6mA8rfDfj+PHnxFc/FeK6mQ==", + "version": "1.63.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.63.0.tgz", + "integrity": "sha512-oxMK4vllB9RK5NQ2l1pq1IfOf2AvnEuj/vYGDj0H2nMtmtZpKtCwt/l00GEO6xjGfpBNAvjovvYdCm50dRQkpQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.62.1" + "playwright": "1.63.0" }, "bin": { "playwright": "cli.js" @@ -5017,13 +5017,12 @@ "license": "MIT" }, "node_modules/@storybook/builder-vite": { - "version": "10.5.10", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-10.5.10.tgz", - "integrity": "sha512-O4GgIP0tKLRueom3EmU3OaBUHKjNYj+jkOvmTIkn3PYTiWVkCuHqSKEs4ADvRyaQuLH+peHhFe4JtkNC9KbtrQ==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-10.6.0.tgz", + "integrity": "sha512-7zt8tYB6dnSO8fbjUz91MHexGDpf9HrLlA3FAmlVb+2ZL3eWUs499L3I6BDUymcWu7oW5WCBJlB8ERj8ZLLzig==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf-plugin": "10.5.10", "ts-dedent": "^2.0.0" }, "funding": { @@ -5031,45 +5030,10 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^10.5.10", + "storybook": "^10.6.0", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@storybook/csf-plugin": { - "version": "10.5.10", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.5.10.tgz", - "integrity": "sha512-TaCLBrqVEr767+w58QDotDUiCTuE5cyRJuRcDlsKQyUIyGBv+lYD3lu8wBiVCYxgIjB/gu9HmqiC+0yx1rHzaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "unplugin": "^2.3.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "esbuild": "*", - "rollup": "*", - "storybook": "^10.5.10", - "vite": "*", - "webpack": "*" - }, - "peerDependenciesMeta": { - "esbuild": { - "optional": true - }, - "rollup": { - "optional": true - }, - "vite": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, "node_modules/@storybook/global": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", @@ -5088,14 +5052,14 @@ } }, "node_modules/@storybook/react": { - "version": "10.5.10", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-10.5.10.tgz", - "integrity": "sha512-4MBV5e1SXIMfPynLHzr+Mp0dwGv/FW1bklWAsS4ynBOAbC98W9p/I9vqBnUctsvE3BJkhzHQQyPwMHL5tTcHVA==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-10.6.0.tgz", + "integrity": "sha512-0xfYYPRHcr5ta1hmXJCSezH4JGuUHJ+xVF9f1j+Y/MWEMOQE4wnaKWKsk/HLrDjZkT5hKfvmogt9b0yduP6zEQ==", "dev": true, "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/react-dom-shim": "10.5.10", + "@storybook/react-dom-shim": "10.6.0", "react-docgen": "^8.0.2", "react-docgen-typescript": "^2.2.2" }, @@ -5108,7 +5072,7 @@ "@types/react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "^10.5.10", + "storybook": "^10.6.0", "typescript": ">= 4.9.x" }, "peerDependenciesMeta": { @@ -5124,9 +5088,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "10.5.10", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.5.10.tgz", - "integrity": "sha512-rbu62ILo/VE3iXKmu+kWXFpD1H1Lwi0f19q/x7JnDsD2dxKS9w5znLEqPIq2qxpzi/wjjIb2iUP1cRG1d/9W5A==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.6.0.tgz", + "integrity": "sha512-ZE0l4xL6d00rKFeJhRDuh0t3r+/2ffhx47lIyaSWrTD5kuM3nDjKDxCIWwX4E3gLV+oNX8E1prXRMuEWJUJwJg==", "dev": true, "license": "MIT", "funding": { @@ -5138,7 +5102,7 @@ "@types/react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "^10.5.10" + "storybook": "^10.6.0" }, "peerDependenciesMeta": { "@types/react": { @@ -5150,18 +5114,18 @@ } }, "node_modules/@storybook/react-vite": { - "version": "10.5.10", - "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-10.5.10.tgz", - "integrity": "sha512-xOztxefUnqKeuyvcnjspqmlDnER4cExL+liltrpdXLPJVqfFNr9lgM49FyEPajzsUVG9W/vHJWjbaQGGu1UsYQ==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-10.6.0.tgz", + "integrity": "sha512-nc1dqnmjGOcDJvPCkAn4Hmu1gi7dNHHoibNmlBp0d1adosejELZxuNjHBkPl/KxZjbzP3jljQHnHB/guxd8e2g==", "dev": true, "license": "MIT", "dependencies": { "@joshwooding/vite-plugin-react-docgen-typescript": "^0.7.0", "@rollup/pluginutils": "^5.0.2", - "@storybook/builder-vite": "10.5.10", - "@storybook/react": "10.5.10", + "@storybook/builder-vite": "10.6.0", + "@storybook/react": "10.6.0", "empathic": "^2.0.0", - "magic-string": "^0.30.0", + "magic-string": "^1.1.0", "react-docgen": "^8.0.2", "resolve": "^1.22.8", "tsconfig-paths": "^4.2.0" @@ -5173,7 +5137,7 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "^10.5.10", + "storybook": "^10.6.0", "typescript": ">= 4.9.x", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, @@ -5256,9 +5220,9 @@ "license": "MIT" }, "node_modules/@testing-library/user-event": { - "version": "14.6.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", - "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "version": "14.6.7", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.7.tgz", + "integrity": "sha512-MPCpX8bxe8zS+JmmTwLp8jd0dy1rAm60Te/SL8JrQM3qvQJcBOs1d7IefJMyZzqM3EWBrDn/LWDt1BCGu4ASfg==", "dev": true, "license": "MIT", "engines": { @@ -5743,18 +5707,18 @@ } }, "node_modules/@types/node": { - "version": "26.4.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.4.0.tgz", - "integrity": "sha512-faiGnoIrLH/V8cibOMEAZ8pMw6oXqSukl29ra4mN8GdaB2ZewzeaLj+INpV5N+Z1eKWzY+IzaIZH2EIR6YZRNQ==", + "version": "26.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.5.1.tgz", + "integrity": "sha512-CzNm2FezW4VR/LjG6yUdiEgLE/rAQ9Slj5gCu/C2VrdcW7I0ahNZ8DRbHT7zOZ6r3ONgd/bsQIeSaoDGrd1C6g==", "license": "MIT", "dependencies": { - "undici-types": "~8.3.0" + "undici-types": "~8.9.0" } }, "node_modules/@types/react": { - "version": "19.2.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", - "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.3.0.tgz", + "integrity": "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg==", "dev": true, "license": "MIT", "dependencies": { @@ -5762,13 +5726,13 @@ } }, "node_modules/@types/react-dom": { - "version": "19.2.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.5.tgz", - "integrity": "sha512-fMPwH9v7r/pp43yUd2/Mbiex5KouJwwR3dzHkhLREUC6764VyDsqxhAxv6OFEYR1RhjOyD1naqba8ECDBe7ZQg==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.3.0.tgz", + "integrity": "sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q==", "dev": true, "license": "MIT", "peerDependencies": { - "@types/react": "^19.2.0" + "@types/react": "^19.3.0" } }, "node_modules/@types/resolve": { @@ -6346,19 +6310,6 @@ "node": ">= 0.6" } }, - "node_modules/acorn": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", - "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -6931,16 +6882,6 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/astro/node_modules/magic-string": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.2.3.tgz", - "integrity": "sha512-Bpb0W2TbLKOZ7vJnOUnVRGq3WL2p+ISV29M6hYPL1AFCpyKZpdr5ytiXoTSSxRVhg8YW7f65+6gbG8WG6PCa/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, "node_modules/astro/node_modules/p-limit": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-7.3.2.tgz", @@ -11360,9 +11301,9 @@ } }, "node_modules/knip": { - "version": "6.33.0", - "resolved": "https://registry.npmjs.org/knip/-/knip-6.33.0.tgz", - "integrity": "sha512-gMXWV2bqgJcdZKsaRgl1oH5V2J0VumhJ2ujfP4M6b9ftpca2BNpvlX3Dq++vVtEey7sU67EXCvZGNkQfG2w1RQ==", + "version": "6.35.1", + "resolved": "https://registry.npmjs.org/knip/-/knip-6.35.1.tgz", + "integrity": "sha512-22wnEnv4do2fvoeJsxpFCG/MBxReNxoCVBccaCl7suUJsG+F0UvxI9ycxZ9YgtLHSSjrZl5tOas0JZ/R1vJ93g==", "dev": true, "funding": [ { @@ -11380,13 +11321,13 @@ "formatly": "^0.7.0", "get-tsconfig": "4.14.3", "jiti": "^2.7.0", - "oxc-parser": "^0.147.0", + "oxc-parser": "^0.148.0", "oxc-resolver": "11.24.2", "picomatch": "^4.0.7", "smol-toml": "^1.8.0", "strip-json-comments": "5.0.3", "tinyglobby": "^0.2.17", - "unbash": "^4.0.10", + "unbash": "^4.0.11", "yaml": "^2.9.0", "zod": "^4.4.3" }, @@ -11399,9 +11340,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-android-arm-eabi": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.147.0.tgz", - "integrity": "sha512-fOtoGvIoirkvxQVw9J1WJPxz571XPgLsPf9uhRD+PJteUnvrJHMDmK9pw2yZEGGyismtRoEsp+JcXUdF/JDMDw==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.148.0.tgz", + "integrity": "sha512-pHASv9g5pASxb7akHERZNSkrEqPhFaUix98o7d9hbTpolnnFWl7UiRrcMhCsV1+iVO4/cJwKsbKRJTFNs2tdBQ==", "cpu": [ "arm" ], @@ -11416,9 +11357,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-android-arm64": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.147.0.tgz", - "integrity": "sha512-emjQHOYJaomo4ykaXQ1EItunr/I94Nk01oqBmU4dSkKSTupIDx6OysVDf2e8Eytm77rb+4ZxzgElyWP7rcEX7A==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.148.0.tgz", + "integrity": "sha512-sg/6Ez0KdAygsu0POELux9wN1Po2CP93WY8eNl4DBKIGprsd4QSHBXOb471Pu9i2OCD5sLkISSb2agZEhVn2Zw==", "cpu": [ "arm64" ], @@ -11433,9 +11374,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-darwin-arm64": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.147.0.tgz", - "integrity": "sha512-kXvBPJL7RmDPJ2mze/vXPPVQimCDtFr9OFLjf7dyhV5Dx64cgcXh9KKrA1sMWvCObvJll9CZZUO0FBlFwD0l6A==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.148.0.tgz", + "integrity": "sha512-yiSJmzGUvCUaJT8X3j40gVcX+ckuHQMuiOtF8DvzTs5+JtB/7XuHFPp4M+vv5u+HlBtDUd4Ks5pyHpWz8mfnkg==", "cpu": [ "arm64" ], @@ -11450,9 +11391,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-darwin-x64": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.147.0.tgz", - "integrity": "sha512-mgFF8pLU6R64LbT27lSrtVRspVC/3IcZ0qyIikzmi78Y3Ik2OPnlAHHI0UEBRcC3qmNgtjaef7zkFt7/uPxIcw==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.148.0.tgz", + "integrity": "sha512-6ZeklaamrMy4H2JmhvcJg6iip59tYILtuLaILxyAHT3l5FDxnI5ihVievAft5ZmAbqtlWHErOi1OpJK8gy1wcA==", "cpu": [ "x64" ], @@ -11467,9 +11408,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-freebsd-x64": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.147.0.tgz", - "integrity": "sha512-v38aiF11qufOTBcCAKL4skgQf0zJ4NEvRlivq7B5kHrlyvjCLjvNrMtNWDTz1SDUL6/xVsJRmLDxv2e+Cp4oWw==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.148.0.tgz", + "integrity": "sha512-vFsPx+a/qFECPnz/H8nC6x6MDvnWscLTCo/5muojEF54ERUq1kdgbvnWo95YnkhjF9sTIcG/uDxQBh1gffaufQ==", "cpu": [ "x64" ], @@ -11484,9 +11425,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-linux-arm-gnueabihf": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.147.0.tgz", - "integrity": "sha512-AeIiBbwUaP0H1+4/qGW9l5qHecS/+XA5iMuieVcGb1T+tyc2dVGspFW13BWk/XrLsiGP/CiDJTJqAPLLCzZHkw==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.148.0.tgz", + "integrity": "sha512-eOr3M+6iGbbxNL4PSS0VtsyQ2eOUxSBh00BqO22SbolDimPSYsBuLr/LCrZBkiqW2BoabhR6V4R8jrRAay7hjg==", "cpu": [ "arm" ], @@ -11501,9 +11442,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-linux-arm-musleabihf": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.147.0.tgz", - "integrity": "sha512-/41MKPW4RgPY4DJco0NCF0RYX3IMZaVlRNMNzvhaxRavc7tN3Txm+qllZbh0aMRs0VHdgUlbI8TcAOiTai4TKg==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.148.0.tgz", + "integrity": "sha512-58ZKDw0mQRbCNfrd2IDyV4o8T7enzGERJn41BH2tjrZVGyiKiFzcfDicuB7Zcpb/1xIOrObovr8Dja6lZi8dLw==", "cpu": [ "arm" ], @@ -11518,9 +11459,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-linux-arm64-gnu": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.147.0.tgz", - "integrity": "sha512-bmpw/RPhVXgZbtb3xBDuwW5s8+LvZYdqcDSX/sP2ltL77aTio3DP/B5ZTwwgoJ6Mr9vJs4RrmgEKW9XkLNUU1g==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.148.0.tgz", + "integrity": "sha512-Fnu95O4eZ5i++GPvIzBEZ8y4ddTLR+D9paYa8JRaRk6ZK7nHQiWP5xtrhcPQsXqgat1d7sU/d5rbbI0p1FTHSQ==", "cpu": [ "arm64" ], @@ -11538,9 +11479,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-linux-arm64-musl": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.147.0.tgz", - "integrity": "sha512-gd7VX/FDVOw6mjQcu45iIcp4QkgybgJwh3a0OFG2NxmPCj628mQWD96QGu1kK8+mZF9qK4b/gIEyC63vQoB7+Q==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.148.0.tgz", + "integrity": "sha512-3CQy/BMdx7N7H3qrcPxUL+a2CwUZodUcf6oq8iJuNZ9C6Ol1aq3mcWzsgySJ7CHFLvpX21ZDPp1r1X0QLbu/AQ==", "cpu": [ "arm64" ], @@ -11558,9 +11499,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-linux-ppc64-gnu": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.147.0.tgz", - "integrity": "sha512-HnAzcfki7dSUNHf510Q2NmbJlz8Ys7rn8l9l588Pkx0tYe1BHLZnmELIgqizJ4WPhHGSwN8Ce+B/menVxS3odA==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.148.0.tgz", + "integrity": "sha512-9LkaYvfiF8hMOw900csAvkf1oxE8XlmMeGowu5BcastSSwV8mKvKRMNU7HsV+ycyj1dQD8pX5qgOw8ja6SJacg==", "cpu": [ "ppc64" ], @@ -11578,9 +11519,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-linux-riscv64-gnu": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.147.0.tgz", - "integrity": "sha512-qlkOL6wT44U+fT5s/+sR6Shx0OdwvQF83JyIPZUxG/ovqZF5/7atOtjH+JPZ5/7ATQLbFBBSmghcy/+2NVB/ew==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.148.0.tgz", + "integrity": "sha512-2GBiM9h26dR4WJfhoMvnFMnFLf7m/kYs4UMqjvrOfQG4BV1nuTJDH22Zc2MQr3INZF7nSKYQ6xlhD3hQ7A6gug==", "cpu": [ "riscv64" ], @@ -11598,9 +11539,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-linux-riscv64-musl": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.147.0.tgz", - "integrity": "sha512-DlefD7L7sMXs/3hIBH23Egk0phj8kG0SA81dVGOQ3S1ekjOlmTLH2E+F2Thwfh1slKx6aH+lNc5fQYAw0GU7/g==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.148.0.tgz", + "integrity": "sha512-uPqZexvKJmEgq4mAu36qe2xTfXZE7oyik1R7KtZ5tl8qKlq1U1fIqTFRUEBZqRGvforoTrGIpatRzcoPKO66RA==", "cpu": [ "riscv64" ], @@ -11618,9 +11559,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-linux-s390x-gnu": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.147.0.tgz", - "integrity": "sha512-Xqpagk/031IvZ4svrk2FF01YEqM/iN3MJV3SVZadKg/CsGlDCGoREqKHXYnoV5+8SfGe/m6RM1szXFLusTu/Uw==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.148.0.tgz", + "integrity": "sha512-9oUHvnTbp7ZraFsTC8PN6XhdhPSSxZumYvixWl7Smi353gEULvK6yV0sXNVrdFMHQeaDKFCi8TgDhNK7/A+Y+Q==", "cpu": [ "s390x" ], @@ -11638,9 +11579,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-linux-x64-gnu": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.147.0.tgz", - "integrity": "sha512-QioQOeUbI4ATUr0S2z88uA3Cds2R3Mm5Ge7U8XNYtlTb2GJF3rWlcj70z0AJhhOlbdm0YgVjqPBldUNbFylDIg==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.148.0.tgz", + "integrity": "sha512-2qhDSJwKzbSZzF7lDqqk8sr/yXsmwr3PeUa4/nazIF+zFAYz1gVPEfC34GQtGxzJUUmklaYAL63368LEfrMeyw==", "cpu": [ "x64" ], @@ -11658,9 +11599,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-linux-x64-musl": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.147.0.tgz", - "integrity": "sha512-NXy1tv/OdC+pPTwf9RiCZWPK53V/Xq/2cjSnjOSyKopajdaDqMIkgtDY+jXZemp2e8px5FeWfY2L2LwhKZQovg==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.148.0.tgz", + "integrity": "sha512-qQoPDZUFV0bh9xA09XydmkjMBpgc1ukJuhMvzQ9QeVmFaHTS9W5TE5CoLmSl3QQyUP9OuHO3x/WPZTIIZPWR3Q==", "cpu": [ "x64" ], @@ -11678,9 +11619,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-openharmony-arm64": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.147.0.tgz", - "integrity": "sha512-GpGWZ6oKz4bjCWW9Mz5pCaGPyk2Aaze6zEoaslIQqpSLtpx5pXj/ap5gUNb5Jn2LIbqWyjkGLX9yv3NMuNcBVQ==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.148.0.tgz", + "integrity": "sha512-1UGbaQWEXUCLqAmaR5kwRDjx/R4S5LQKZkM9CHmaHkuKhriOF32aRLfS0jCRNE2yGQJLMEA1z9UucbBVqjXnDw==", "cpu": [ "arm64" ], @@ -11695,9 +11636,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-win32-arm64-msvc": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.147.0.tgz", - "integrity": "sha512-a8mlt7CC8z7LUdCfaxhff4kCd+vSjE+NEFL0cxA8ukfuSnvAto/pWTjytW4BuVLnQGcCVdHJwcRKOfs++H+tjw==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.148.0.tgz", + "integrity": "sha512-pWKdzRDNG2+NK4h/V6U/CYERcfYD6u28h5IB/VJVsrZaD3muvE58tUj22lieL5vLZ+XFi1GPv9YXckZbJZ9BLA==", "cpu": [ "arm64" ], @@ -11712,9 +11653,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-win32-ia32-msvc": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.147.0.tgz", - "integrity": "sha512-M5ViVDBcFLnl2632AuuWuP35zEL5oikK1jTx8r3+902VEDeSNHxFZAB6RZyfZ7MU6Oi5QTOG8MmMkIeHsudSaw==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.148.0.tgz", + "integrity": "sha512-i3p4x+mvwtjcE1J5HM6V7ggsbXiznExN/4MkNyOy3dfXrVV3bnkSfmZxvo6/84qCVX4ShkpNE1SKt9biIF31GQ==", "cpu": [ "ia32" ], @@ -11729,9 +11670,9 @@ } }, "node_modules/knip/node_modules/@oxc-parser/binding-win32-x64-msvc": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.147.0.tgz", - "integrity": "sha512-DUaE13OwnUSlHpLZNcC/nuT10ivlWqc5EZgsfgXuAmWYw0r3nDxGeLD1zlGwYwIgVk1/ZMAxoXpV+05stvbHaA==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.148.0.tgz", + "integrity": "sha512-Ye6vB7VQulghWYkYkECOBYFRVEizz4XyRTUAv+t8BuyurhKU7uD0P9eowL+mKG5Mf8MSYx+DI3Cm8SKZvYG7bQ==", "cpu": [ "x64" ], @@ -11746,50 +11687,50 @@ } }, "node_modules/knip/node_modules/@oxc-project/types": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.147.0.tgz", - "integrity": "sha512-IJ3s6ltHLp45S0bh7phkX+gJO7A1Wuz2EaqpAhb8WjqDwbzMiWKHhyyT42tskaWjEYXtHtVCPpnBJVT9+dcRLg==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.148.0.tgz", + "integrity": "sha512-Nm4s/jB+4FpFsPhWGEC4h7rzksesmtnMXomo6rCMcg/b8zLQuOziRgkCS1fxDCXOlJB/6Q8oABOZ/OP6RIPj9A==", "dev": true, "license": "MIT", "funding": { - "url": "https://github.com/sponsors/Boshen" + "url": "https://github.com/sponsors/oxc-project" } }, "node_modules/knip/node_modules/oxc-parser": { - "version": "0.147.0", - "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.147.0.tgz", - "integrity": "sha512-5xaug6t7GfV3BO5Iv+xHW1rmQkDEQ3BEu3L8g3InsvWO5i8CYGc4tCZ2X985QcwWNycFJam+aOns6Nr2XAThTA==", + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.148.0.tgz", + "integrity": "sha512-syxUKHeUll89RIABQADcI7sikYrwyssvA6gj4phSSIPezKVM8yMaLAiLLSc7fmzVvrwybfFGFbW5zme9sX87rg==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "^0.147.0" + "@oxc-project/types": "^0.148.0" }, "engines": { "node": "^20.19.0 || >=22.12.0" }, "funding": { - "url": "https://github.com/sponsors/Boshen" + "url": "https://github.com/sponsors/oxc-project" }, "optionalDependencies": { - "@oxc-parser/binding-android-arm-eabi": "0.147.0", - "@oxc-parser/binding-android-arm64": "0.147.0", - "@oxc-parser/binding-darwin-arm64": "0.147.0", - "@oxc-parser/binding-darwin-x64": "0.147.0", - "@oxc-parser/binding-freebsd-x64": "0.147.0", - "@oxc-parser/binding-linux-arm-gnueabihf": "0.147.0", - "@oxc-parser/binding-linux-arm-musleabihf": "0.147.0", - "@oxc-parser/binding-linux-arm64-gnu": "0.147.0", - "@oxc-parser/binding-linux-arm64-musl": "0.147.0", - "@oxc-parser/binding-linux-ppc64-gnu": "0.147.0", - "@oxc-parser/binding-linux-riscv64-gnu": "0.147.0", - "@oxc-parser/binding-linux-riscv64-musl": "0.147.0", - "@oxc-parser/binding-linux-s390x-gnu": "0.147.0", - "@oxc-parser/binding-linux-x64-gnu": "0.147.0", - "@oxc-parser/binding-linux-x64-musl": "0.147.0", - "@oxc-parser/binding-openharmony-arm64": "0.147.0", - "@oxc-parser/binding-win32-arm64-msvc": "0.147.0", - "@oxc-parser/binding-win32-ia32-msvc": "0.147.0", - "@oxc-parser/binding-win32-x64-msvc": "0.147.0" + "@oxc-parser/binding-android-arm-eabi": "0.148.0", + "@oxc-parser/binding-android-arm64": "0.148.0", + "@oxc-parser/binding-darwin-arm64": "0.148.0", + "@oxc-parser/binding-darwin-x64": "0.148.0", + "@oxc-parser/binding-freebsd-x64": "0.148.0", + "@oxc-parser/binding-linux-arm-gnueabihf": "0.148.0", + "@oxc-parser/binding-linux-arm-musleabihf": "0.148.0", + "@oxc-parser/binding-linux-arm64-gnu": "0.148.0", + "@oxc-parser/binding-linux-arm64-musl": "0.148.0", + "@oxc-parser/binding-linux-ppc64-gnu": "0.148.0", + "@oxc-parser/binding-linux-riscv64-gnu": "0.148.0", + "@oxc-parser/binding-linux-riscv64-musl": "0.148.0", + "@oxc-parser/binding-linux-s390x-gnu": "0.148.0", + "@oxc-parser/binding-linux-x64-gnu": "0.148.0", + "@oxc-parser/binding-linux-x64-musl": "0.148.0", + "@oxc-parser/binding-openharmony-arm64": "0.148.0", + "@oxc-parser/binding-win32-arm64-msvc": "0.148.0", + "@oxc-parser/binding-win32-ia32-msvc": "0.148.0", + "@oxc-parser/binding-win32-x64-msvc": "0.148.0" } }, "node_modules/layout-base": { @@ -12192,9 +12133,9 @@ } }, "node_modules/lucide-react": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.38.0.tgz", - "integrity": "sha512-xZCyBd/wiVUDactoCc+42TjL0aB7EBOXsuX+tjz+W/sGzw2KhHpL1NOH3FIaVUcpimvUBpIYfz34Ofj9S5JEzQ==", + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.45.0.tgz", + "integrity": "sha512-yH1ubCAduho9UR7oJhRXIQXogksRILBiTuZC4/bQIGeB9JOkxMlSuEHyyZpo1Z3S0yWJO2KTSUZbjiNvVxeOUw==", "license": "ISC", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -12211,13 +12152,13 @@ } }, "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.3.1.tgz", + "integrity": "sha512-rm91zr2Ou+XueDTohjQQjdQEcYM6zVi8KVUCG8Ec3vHwUEKrhSdCNyfuIywkA6hcCAteIn0ZOtAHA6eGpiX+Pg==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" + "@jridgewell/sourcemap-codec": "^1.6.0" } }, "node_modules/magicast": { @@ -13654,28 +13595,25 @@ } }, "node_modules/playwright": { - "version": "1.62.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.1.tgz", - "integrity": "sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==", + "version": "1.63.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.63.0.tgz", + "integrity": "sha512-+7ziBLidS4NaNCdt57SUDT+wYmmd5fmiQejUic/kb+YsYSCPyOOE9sebzMjNmQrsnNpDJqd4WHvV/8lfKfUDUg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.62.1" + "playwright-core": "1.63.0" }, "bin": { "playwright": "cli.js" }, "engines": { "node": ">=20" - }, - "optionalDependencies": { - "fsevents": "2.3.2" } }, "node_modules/playwright-core": { - "version": "1.62.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.1.tgz", - "integrity": "sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==", + "version": "1.63.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.63.0.tgz", + "integrity": "sha512-rYCsBF/M5HjUch52bbtVONEFjv6Xu8sm8h72dNlR5bzIE1fvC/bxgspzkjSfU+MweEMmPM8KJebG6nnyxo5mCg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -13685,21 +13623,6 @@ "node": ">=20" } }, - "node_modules/playwright/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/plist": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", @@ -14990,9 +14913,9 @@ "license": "ISC" }, "node_modules/simple-icons": { - "version": "16.29.0", - "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-16.29.0.tgz", - "integrity": "sha512-4H94f5ZgcCcgJroc902TFlFdgPu2IU2eD7+WebN2Z14xKYrKHeJ4UQcZwzgSuH4Rgzw+jp7sbHl40NefuIEYsg==", + "version": "16.30.0", + "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-16.30.0.tgz", + "integrity": "sha512-YX/HmgEqjpn5Zs3myzKp8ek5Ti+TdrkvNWn9skGLetg9tOg0cTjYizj9ESAYJn4xwc0GQYVGzQxBELDfbxq7WQ==", "dev": true, "funding": [ { @@ -15076,9 +14999,9 @@ } }, "node_modules/socks": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", - "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==", + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.10.tgz", + "integrity": "sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ==", "license": "MIT", "dependencies": { "ip-address": "^10.1.1", @@ -15183,9 +15106,9 @@ } }, "node_modules/storybook": { - "version": "10.5.10", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.5.10.tgz", - "integrity": "sha512-Rz8k9ejFHsi7lbtJTaxZlhCUz4GkbJIKEoKDjXeLfr/ZhXip73E6keKxW0KH8iGeKiCqHAbJCV4YIQrxTOLiig==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.6.0.tgz", + "integrity": "sha512-H48X6AURAFTpfN2zEux6vNesee5Oq8Gxj1IanYmblPZ218sfKSeyyerF1NC7GD7BrruoC8L4/cU0zII4y+d6zw==", "dev": true, "license": "MIT", "dependencies": { @@ -15193,7 +15116,7 @@ "@storybook/icons": "^2.0.2", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "6.9.1", - "@testing-library/user-event": "^14.6.1", + "@testing-library/user-event": "^14.6.3", "@vitest/expect": "3.2.4", "@vitest/spy": "3.2.4", "@webcontainer/env": "^1.1.1", @@ -15873,9 +15796,9 @@ } }, "node_modules/systeminformation": { - "version": "5.33.8", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.33.8.tgz", - "integrity": "sha512-v4F6OGYGh7wDvV68YmjOmZwGixV9A/GQ7d2b84t0UF4CaOy9jipNWIJDkHqYDYiTPuiojqlwVQd0hfUKOUN7tQ==", + "version": "5.33.10", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.33.10.tgz", + "integrity": "sha512-/NXbMVASt2UbSVgmWto4aBTIAeuYY7zOELpZybmNxqpsrbo5uYHpuEPf5nkyrPng0uG5YOb+Yv6s0FyKY4mDQg==", "license": "MIT", "os": [ "darwin", @@ -16289,9 +16212,9 @@ "license": "MIT" }, "node_modules/unbash": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/unbash/-/unbash-4.0.10.tgz", - "integrity": "sha512-b7zoBQvpWp0vuN5q2vK2RRBR2SvuruQAs50DApdDveBSn3eSYd84IaHodFqQIMlvY9K2VnyBUEXgwOBuGU9GBg==", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/unbash/-/unbash-4.0.11.tgz", + "integrity": "sha512-FoSOKV7NEofQSkAefMVHam4ZPKYMxjAydxiV72UFEDNV/YofxjGfiZ2A9pZjdL/lRJzTjcu4PABo1JYJX8N5iQ==", "dev": true, "license": "ISC", "engines": { @@ -16315,9 +16238,9 @@ } }, "node_modules/undici-types": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", - "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", + "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", "license": "MIT" }, "node_modules/unified": { @@ -16454,22 +16377,6 @@ "node": ">= 0.8" } }, - "node_modules/unplugin": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", - "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/remapping": "^2.3.5", - "acorn": "^8.15.0", - "picomatch": "^4.0.3", - "webpack-virtual-modules": "^0.6.2" - }, - "engines": { - "node": ">=18.12.0" - } - }, "node_modules/unstorage": { "version": "1.17.5", "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.5.tgz", @@ -16836,13 +16743,6 @@ "tslib": "^2.8.1" } }, - "node_modules/webpack-virtual-modules": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", - "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", - "dev": true, - "license": "MIT" - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -17084,7 +16984,7 @@ "license": "Apache-2.0", "dependencies": { "@agentclientprotocol/sdk": "1.4.0", - "@earendil-works/pi-tui": "0.84.4", + "@earendil-works/pi-tui": "0.85.1", "@maka/core": "0.1.0", "@maka/eval": "0.1.0", "@maka/mcp": "0.1.0", @@ -17139,13 +17039,13 @@ "dependencies": { "@maka/core": "0.1.0", "@maka/runtime-host": "0.1.0", - "undici": "^8.10.1" + "undici": "^8.10.2" } }, "packages/eval/node_modules/undici": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.1.tgz", - "integrity": "sha512-YQ3WlbqjYMmNpdvDH64jAgLjxuAR9+649calDWhbshYaeQGO2bR4nI94ORJmwI3J9YhoKQnpyGOK+0zlWS5N5Q==", + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.2.tgz", + "integrity": "sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==", "license": "MIT", "engines": { "node": ">=22.19.0" @@ -17179,7 +17079,7 @@ "@ai-sdk/openai": "4.0.66", "@ai-sdk/openai-compatible": "3.0.48", "@ai-sdk/provider": "4.0.14", - "@larksuiteoapi/node-sdk": "1.73.0", + "@larksuiteoapi/node-sdk": "1.73.3", "@maka/core": "0.1.0", "@mozilla/readability": "^0.6.0", "@openai/agents-core": "0.17.0", @@ -17196,10 +17096,10 @@ "minisearch": "7.2.0", "node-pty": "^1.2.0-beta.15", "qrcode": "^1.5.4", - "socks": "^2.8.9", + "socks": "^2.8.10", "socks-proxy-agent": "^10.1.0", "turndown": "^7.2.4", - "undici": "^8.10.1", + "undici": "^8.10.2", "ws": "^8.21.3", "yaml": "^2.9.0", "zod": "^4.5.4" @@ -17220,7 +17120,7 @@ "@maka/core": "0.1.0", "@maka/runtime": "0.1.0", "@maka/storage": "0.1.0", - "systeminformation": "^5.33.8", + "systeminformation": "^5.33.9", "ws": "^8.21.3", "yaml": "^2.9.0", "zod": "^4.5.4" @@ -17344,9 +17244,9 @@ } }, "packages/runtime/node_modules/undici": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.1.tgz", - "integrity": "sha512-YQ3WlbqjYMmNpdvDH64jAgLjxuAR9+649calDWhbshYaeQGO2bR4nI94ORJmwI3J9YhoKQnpyGOK+0zlWS5N5Q==", + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.2.tgz", + "integrity": "sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==", "license": "MIT", "engines": { "node": ">=22.19.0" @@ -17366,18 +17266,18 @@ "version": "0.1.0", "license": "Apache-2.0", "dependencies": { - "@astryxdesign/core": "0.5.2", + "@astryxdesign/core": "0.5.4", "@maka/core": "0.1.0", "clsx": "^2.1.1", - "katex": "0.18.5", - "lucide-react": "^1.38.0", + "katex": "0.18.7", + "lucide-react": "^1.42.0", "mermaid": "^11.17.2", "react": "^19.2.8", "react-dom": "^19.2.8" }, "devDependencies": { "@types/react": "^19.2.18", - "@types/react-dom": "^19.2.5", + "@types/react-dom": "^19.2.7", "linkedom": "^0.18.13" } }, @@ -17391,9 +17291,9 @@ } }, "packages/ui/node_modules/katex": { - "version": "0.18.5", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.18.5.tgz", - "integrity": "sha512-1FU5H3RjGJVj6GT9fMjf2uMIXmPQp232aXS3UEeQzf0dxefHg/CKMvNB3DuOC46LFG/E5PNxrE8dOwB782FDGg==", + "version": "0.18.7", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.18.7.tgz", + "integrity": "sha512-h+UCwkZ+4Jz8WQ7MLGfj7UVFrRCizGb912fwF4luGdYsC5paYG1vx+jy+KRcC/XkpjGva/P7nAWuxNnPzRvzHw==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -17412,7 +17312,7 @@ "devDependencies": { "@fontsource-variable/geist": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", - "@playwright/test": "^1.62.1", + "@playwright/test": "^1.63.0", "astro": "^7.2.10", "cookie": "2.0.1" } diff --git a/package.json b/package.json index be83413c74..770f1d689f 100644 --- a/package.json +++ b/package.json @@ -111,14 +111,14 @@ }, "devDependencies": { "@ai-sdk/provider-utils": "5.0.40", - "@astryxdesign/cli": "0.5.2", - "@astryxdesign/core": "0.5.2", - "@biomejs/biome": "2.5.11", + "@astryxdesign/cli": "0.5.4", + "@astryxdesign/core": "0.5.4", + "@biomejs/biome": "2.5.12", "@electron/asar": "4.3.0", - "@types/node": "^26.4.0", + "@types/node": "^26.5.0", "esbuild": "^0.28.1", "husky": "^9.1.7", - "knip": "^6.33.0", + "knip": "^6.34.0", "patch-package": "8.0.1", "typescript": "^7.0.2", "yaml": "2.9.0" diff --git a/packages/cli/THIRD_PARTY_NOTICES.txt b/packages/cli/THIRD_PARTY_NOTICES.txt index edb50ca5ed..55f589ed0e 100644 --- a/packages/cli/THIRD_PARTY_NOTICES.txt +++ b/packages/cli/THIRD_PARTY_NOTICES.txt @@ -616,7 +616,7 @@ Apache License ================================================================================ -Package: @earendil-works/pi-tui@0.84.4 +Package: @earendil-works/pi-tui@0.85.1 Declared license: MIT Selected license: MIT Repository: git+https://github.com/earendil-works/pi.git#packages/tui @@ -700,7 +700,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI ================================================================================ -Package: @larksuiteoapi/node-sdk@1.73.0 +Package: @larksuiteoapi/node-sdk@1.73.3 Declared license: MIT Selected license: MIT Repository: https://github.com/larksuite/node-sdk.git @@ -1723,7 +1723,7 @@ SOFTWARE. ================================================================================ -Package: @types/node@26.4.0 +Package: @types/node@26.5.1 Declared license: MIT Selected license: MIT Repository: https://github.com/DefinitelyTyped/DefinitelyTyped.git#types/node @@ -6873,7 +6873,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================================================ -Package: socks@2.8.9 +Package: socks@2.8.10 Declared license: MIT Selected license: MIT Repository: git+https://github.com/JoshGlazebrook/socks.git @@ -6969,7 +6969,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI ================================================================================ -Package: systeminformation@5.33.8 +Package: systeminformation@5.33.10 Declared license: MIT Selected license: MIT Repository: git+https://github.com/sebhildebrandt/systeminformation.git @@ -7082,7 +7082,7 @@ SOFTWARE. ================================================================================ -Package: undici@8.10.1 +Package: undici@8.10.2 Declared license: MIT Selected license: MIT Repository: git+https://github.com/nodejs/undici.git @@ -7112,7 +7112,7 @@ SOFTWARE. ================================================================================ -Package: undici-types@8.3.0 +Package: undici-types@8.9.0 Declared license: MIT Selected license: MIT Repository: git+https://github.com/nodejs/undici.git diff --git a/packages/cli/package.json b/packages/cli/package.json index 7730b94c22..f61309962c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -20,7 +20,7 @@ }, "dependencies": { "@agentclientprotocol/sdk": "1.4.0", - "@earendil-works/pi-tui": "0.84.4", + "@earendil-works/pi-tui": "0.85.1", "@maka/core": "0.1.0", "@maka/eval": "0.1.0", "@maka/mcp": "0.1.0", diff --git a/packages/cli/src/__tests__/tui-autocomplete-layout.test.ts b/packages/cli/src/__tests__/tui-autocomplete-layout.test.ts index 72030a0ea1..8fdfaa8b05 100644 --- a/packages/cli/src/__tests__/tui-autocomplete-layout.test.ts +++ b/packages/cli/src/__tests__/tui-autocomplete-layout.test.ts @@ -36,6 +36,8 @@ test('an overlay hides the composer cursor and preserves its draft and border co // Emit color even under NO_COLOR so accidental style loss remains detectable. const borderColor = (text: string) => `${CYAN_FOREGROUND}${text}${RESET_FOREGROUND}`; + const normalizeAdjacentColorRuns = (text: string) => + text.replaceAll(`${RESET_FOREGROUND}${CYAN_FOREGROUND}`, ''); const terminal = new FakeTerminal(WIDTH, 4); const tui = new TuiMainScreen(terminal); t.after(() => tui.stop()); @@ -59,11 +61,14 @@ test('an overlay hides the composer cursor and preserves its draft and border co const expectedScreenRows = expectedRows.map(plainTerminalOutput); assert.deepEqual(actualScreenRows, expectedScreenRows); - // The real render retains the cursor, IME marker and per-character border colors. - const actualComposerRows = composerRenderSpy.mock.calls.at(-1)?.result; + // The real render retains the cursor, IME marker and border colors. pi-tui + // may encode one color run per glyph or coalesce adjacent glyphs. + const actualComposerRows = composerRenderSpy.mock.calls + .at(-1) + ?.result?.map(normalizeAdjacentColorRuns); const expectedComposerRows = expectedRows .slice(1) - .map((line) => line.replaceAll('─', borderColor('─'))); + .map((line) => normalizeAdjacentColorRuns(line.replaceAll('─', borderColor('─')))); assert.deepEqual(actualComposerRows, expectedComposerRows); }; diff --git a/packages/eval/package.json b/packages/eval/package.json index 62104106ec..cd2d06cc82 100644 --- a/packages/eval/package.json +++ b/packages/eval/package.json @@ -38,6 +38,6 @@ "dependencies": { "@maka/core": "0.1.0", "@maka/runtime-host": "0.1.0", - "undici": "^8.10.1" + "undici": "^8.10.2" } } diff --git a/packages/runtime-host/package.json b/packages/runtime-host/package.json index aac1ce4427..f2338d5813 100644 --- a/packages/runtime-host/package.json +++ b/packages/runtime-host/package.json @@ -33,7 +33,7 @@ "@maka/core": "0.1.0", "@maka/runtime": "0.1.0", "@maka/storage": "0.1.0", - "systeminformation": "^5.33.8", + "systeminformation": "^5.33.9", "ws": "^8.21.3", "yaml": "^2.9.0", "zod": "^4.5.4" diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 3c8da57741..ef57b0f16f 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -155,7 +155,7 @@ "@ai-sdk/openai": "4.0.66", "@ai-sdk/openai-compatible": "3.0.48", "@ai-sdk/provider": "4.0.14", - "@larksuiteoapi/node-sdk": "1.73.0", + "@larksuiteoapi/node-sdk": "1.73.3", "@maka/core": "0.1.0", "@mozilla/readability": "^0.6.0", "@openai/agents-core": "0.17.0", @@ -172,10 +172,10 @@ "minisearch": "7.2.0", "node-pty": "^1.2.0-beta.15", "qrcode": "^1.5.4", - "socks": "^2.8.9", + "socks": "^2.8.10", "socks-proxy-agent": "^10.1.0", "turndown": "^7.2.4", - "undici": "^8.10.1", + "undici": "^8.10.2", "ws": "^8.21.3", "yaml": "^2.9.0", "zod": "^4.5.4" diff --git a/packages/ui/package.json b/packages/ui/package.json index d31ad6d9ed..70432dd65d 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -26,18 +26,18 @@ "test:dist": "node --test \"dist/**/*.test.js\"" }, "dependencies": { - "@astryxdesign/core": "0.5.2", + "@astryxdesign/core": "0.5.4", "@maka/core": "0.1.0", "clsx": "^2.1.1", - "katex": "0.18.5", - "lucide-react": "^1.38.0", + "katex": "0.18.7", + "lucide-react": "^1.42.0", "mermaid": "^11.17.2", "react": "^19.2.8", "react-dom": "^19.2.8" }, "devDependencies": { "@types/react": "^19.2.18", - "@types/react-dom": "^19.2.5", + "@types/react-dom": "^19.2.7", "linkedom": "^0.18.13" } } diff --git a/packages/ui/src/__tests__/composer-draft-caret-focus.test.tsx b/packages/ui/src/__tests__/composer-draft-caret-focus.test.tsx index b9c76193a5..96432e290c 100644 --- a/packages/ui/src/__tests__/composer-draft-caret-focus.test.tsx +++ b/packages/ui/src/__tests__/composer-draft-caret-focus.test.tsx @@ -57,6 +57,7 @@ const originalGlobals = { requestAnimationFrame: globalThis.requestAnimationFrame, cancelAnimationFrame: globalThis.cancelAnimationFrame, window: globalThis.window, + HTMLElement: globalThis.HTMLElement, }; const originalActEnvironment = (globalThis as typeof globalThis & { IS_REACT_ACT_ENVIRONMENT?: boolean; @@ -120,9 +121,22 @@ function harness() { let active: Element | null = null; const selected: AimedRange[] = []; const selection = { + get rangeCount(): number { + return selected.length; + }, get anchorNode(): Node | null { return selected.at(-1)?.container ?? null; }, + getRangeAt(index: number): Range { + const aimed = selected[index]; + assert.ok(aimed?.container); + const range = { + startContainer: aimed.container, + endContainer: aimed.container, + cloneRange: () => range, + }; + return range as unknown as Range; + }, removeAllRanges() { selected.length = 0; }, @@ -138,11 +152,14 @@ function harness() { }; document.getSelection = () => selection as unknown as Selection; window.getSelection = () => selection as unknown as Selection; + const matchMedia = () => ({ matches: false, addEventListener() {}, removeEventListener() {} }); + Object.assign(window, { matchMedia }); Object.defineProperty(document, 'activeElement', { configurable: true, get: () => active }); Object.assign(globalThis, { document, window, - matchMedia: () => ({ matches: false, addEventListener() {}, removeEventListener() {} }), + HTMLElement: window.HTMLElement, + matchMedia, requestAnimationFrame: () => 1, cancelAnimationFrame() {}, IS_REACT_ACT_ENVIRONMENT: true, diff --git a/packages/ui/src/__tests__/composer-model-picker-recovery.test.tsx b/packages/ui/src/__tests__/composer-model-picker-recovery.test.tsx index 29f5856e24..c2bcad435e 100644 --- a/packages/ui/src/__tests__/composer-model-picker-recovery.test.tsx +++ b/packages/ui/src/__tests__/composer-model-picker-recovery.test.tsx @@ -55,6 +55,7 @@ test('the recovery handle opens the existing exact account-and-model picker', as const original = { document: globalThis.document, window: globalThis.window, + HTMLElement: globalThis.HTMLElement, matchMedia: globalThis.matchMedia, requestAnimationFrame: globalThis.requestAnimationFrame, cancelAnimationFrame: globalThis.cancelAnimationFrame, @@ -68,10 +69,14 @@ test('the recovery handle opens the existing exact account-and-model picker', as writingMode: 'horizontal-tb', getPropertyValue: () => '', }) as unknown as CSSStyleDeclaration; + window.getSelection = () => null; + const matchMedia = () => ({ matches: false, addEventListener() {}, removeEventListener() {} }); + Object.assign(window, { matchMedia }); Object.assign(globalThis, { document, window, - matchMedia: () => ({ matches: false, addEventListener() {}, removeEventListener() {} }), + HTMLElement: window.HTMLElement, + matchMedia, requestAnimationFrame: () => 1, cancelAnimationFrame() {}, IS_REACT_ACT_ENVIRONMENT: true, diff --git a/packages/ui/src/__tests__/composer-running-attachments.test.tsx b/packages/ui/src/__tests__/composer-running-attachments.test.tsx index 045beeef24..6226640cec 100644 --- a/packages/ui/src/__tests__/composer-running-attachments.test.tsx +++ b/packages/ui/src/__tests__/composer-running-attachments.test.tsx @@ -29,6 +29,8 @@ test('only an attachment-capable running-turn host accepts a pasted image', asyn const original = { document: globalThis.document, window: globalThis.window, + HTMLElement: globalThis.HTMLElement, + matchMedia: globalThis.matchMedia, IS_REACT_ACT_ENVIRONMENT: (globalThis as typeof globalThis & { IS_REACT_ACT_ENVIRONMENT?: boolean; }).IS_REACT_ACT_ENVIRONMENT, @@ -40,7 +42,15 @@ test('only an attachment-capable running-turn host accepts a pasted image', asyn getPropertyValue: () => '', }) as unknown as CSSStyleDeclaration; window.getSelection = () => null; - Object.assign(globalThis, { document, window, IS_REACT_ACT_ENVIRONMENT: true }); + const matchMedia = () => ({ matches: false, addEventListener() {}, removeEventListener() {} }); + Object.assign(window, { matchMedia }); + Object.assign(globalThis, { + document, + window, + HTMLElement: window.HTMLElement, + matchMedia, + IS_REACT_ACT_ENVIRONMENT: true, + }); const container = document.querySelector('#root'); assert.ok(container); const root = createRoot(container); diff --git a/patches/@astryxdesign+core+0.5.2.patch b/patches/@astryxdesign+core+0.5.4.patch similarity index 94% rename from patches/@astryxdesign+core+0.5.2.patch rename to patches/@astryxdesign+core+0.5.4.patch index 51d956e14d..1a57fd52ab 100644 --- a/patches/@astryxdesign+core+0.5.2.patch +++ b/patches/@astryxdesign+core+0.5.4.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/@astryxdesign/core/dist/Chat/ChatComposerInput.js b/node_modules/@astryxdesign/core/dist/Chat/ChatComposerInput.js -index 5046603..ec36a00 100644 +index 0bbc55c..a98b06e 100644 --- a/node_modules/@astryxdesign/core/dist/Chat/ChatComposerInput.js +++ b/node_modules/@astryxdesign/core/dist/Chat/ChatComposerInput.js @@ -22,7 +22,7 @@ @@ -11,10 +11,10 @@ index 5046603..ec36a00 100644 import { createPortal } from 'react-dom'; import * as stylex from '@stylexjs/stylex'; import "../theme/tokens.stylex.js"; -@@ -207,7 +207,7 @@ export function ChatComposerInput(props) { +@@ -261,7 +261,7 @@ export function ChatComposerInput(props) { inputControlRef.current = null; }; - }, [inputControlRef]); + }, [inputControlRef, focusEditableAtEnd]); - useEffect(() => { + useLayoutEffect(() => { if (controlledValue === undefined || !editableRef.current) { @@ -41,7 +41,7 @@ index ff34874..0f5ae14 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 ff9b9fa..d20288e 100644 +index ff9b9fa..f681cd0 100644 --- a/node_modules/@astryxdesign/core/dist/Chat/ChatLayout.js +++ b/node_modules/@astryxdesign/core/dist/Chat/ChatLayout.js @@ -85,7 +85,8 @@ const styles = { @@ -83,7 +83,7 @@ index ff9b9fa..d20288e 100644 ...rest }) { @@ -205,7 +204,11 @@ export function ChatLayout({ - + // --- Default scroll behavior --- const scroll = useChatStreamScroll({ - scrollRef: scrollContainerRef @@ -96,10 +96,10 @@ index ff9b9fa..d20288e 100644 const newMsgs = useChatNewMessages({ isLocked: scroll.isLocked, diff --git a/node_modules/@astryxdesign/core/dist/Chat/ChatToolCalls.js b/node_modules/@astryxdesign/core/dist/Chat/ChatToolCalls.js -index 889970f..459e6e8 100644 +index 3c457d1..27cf2f0 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({ +@@ -140,6 +140,7 @@ function CallRow({ const row = /*#__PURE__*/_jsxs("div", { role: hasDetail ? 'button' : undefined, tabIndex: hasDetail ? 0 : undefined, @@ -245,7 +245,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 446e25b..00eb8b3 100644 +index 1975140..bf6cb77 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 = { @@ -431,6 +431,24 @@ index 36ed303..0184370 100644 } Markdown.displayName = 'Markdown'; \ No newline at end of file +diff --git a/node_modules/@astryxdesign/core/dist/Markdown/parser.js b/node_modules/@astryxdesign/core/dist/Markdown/parser.js +index d56c18e..f8da853 100644 +--- a/node_modules/@astryxdesign/core/dist/Markdown/parser.js ++++ b/node_modules/@astryxdesign/core/dist/Markdown/parser.js +@@ -1921,7 +1921,12 @@ export function parseMarkdownIncremental(input, state, arg) { + } + cache.settledEnd = nextSettledEnd; + } +- const unsettledRaw = unsettledInput.trim(); ++ // Before the first immutable boundary, preserve the current slice verbatim. ++ // A verified streaming prefix may end in a significant space; trimming it ++ // makes the presented prefix shorter than the host's settledText authority. ++ // Once a settled prefix exists, retain the incremental parser's existing ++ // tail normalization. ++ const unsettledRaw = oldSettledEnd === 0 && boundary < 0 ? unsettledInput : unsettledInput.trim(); + // Structural trimming holds back lines that look like an incomplete list or + // table, which inside a fence is ordinary code: a TypeScript union or a `- ` + // would disappear from the code block as it streams. diff --git a/node_modules/@astryxdesign/core/dist/SideNav/SideNavItem.d.ts b/node_modules/@astryxdesign/core/dist/SideNav/SideNavItem.d.ts index 158ada1..fe7be94 100644 --- a/node_modules/@astryxdesign/core/dist/SideNav/SideNavItem.d.ts @@ -478,18 +496,6 @@ index 3d2cf00..c5c0d55 100644 id: `${id}-children`, role: "group", "aria-labelledby": `${id}-label`, -diff --git a/node_modules/@astryxdesign/core/dist/astryx.css b/node_modules/@astryxdesign/core/dist/astryx.css -index 0159f32..654948b 100644 ---- a/node_modules/@astryxdesign/core/dist/astryx.css -+++ b/node_modules/@astryxdesign/core/dist/astryx.css -@@ -1280,6 +1280,7 @@ - .x1yn0g08:not(#\#):not(#\#):not(#\#){word-break:break-all} - .x13faqbe:not(#\#):not(#\#):not(#\#){word-break:break-word} - .x1lldw8n:not(#\#):not(#\#):not(#\#){word-break:normal} -+ .maka-x-blur-behind:not(#\#):not(#\#):not(#\#){z-index:-1} - .x1ja2u2z:not(#\#):not(#\#):not(#\#){z-index:0} - .x1vjfegm:not(#\#):not(#\#):not(#\#){z-index:1} - .xfo81ep:not(#\#):not(#\#):not(#\#){z-index:1000} 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 @@ -660,7 +666,7 @@ index 693d728..7d5724e 100644 } \ No newline at end of file diff --git a/node_modules/@astryxdesign/core/src/Chat/ChatComposerInput.tsx b/node_modules/@astryxdesign/core/src/Chat/ChatComposerInput.tsx -index 5a6a56b..df6a47f 100644 +index 2dd56a9..6f49a1d 100644 --- a/node_modules/@astryxdesign/core/src/Chat/ChatComposerInput.tsx +++ b/node_modules/@astryxdesign/core/src/Chat/ChatComposerInput.tsx @@ -28,6 +28,7 @@ import { @@ -671,9 +677,9 @@ index 5a6a56b..df6a47f 100644 useImperativeHandle, type ReactNode, type KeyboardEvent, -@@ -402,7 +403,7 @@ export function ChatComposerInput(props: ChatComposerInputProps) { +@@ -465,7 +466,7 @@ export function ChatComposerInput(props: ChatComposerInputProps) { }; - }, [inputControlRef]); + }, [inputControlRef, focusEditableAtEnd]); - useEffect(() => { + useLayoutEffect(() => { @@ -722,10 +728,10 @@ index d45a912..efec9fd 100644 WebkitMaskImage: 'linear-gradient(to bottom, transparent, black 48px)', }, diff --git a/node_modules/@astryxdesign/core/src/Chat/ChatToolCalls.tsx b/node_modules/@astryxdesign/core/src/Chat/ChatToolCalls.tsx -index f22bb1f..b710951 100644 +index 68a424e..7b7a17a 100644 --- a/node_modules/@astryxdesign/core/src/Chat/ChatToolCalls.tsx +++ b/node_modules/@astryxdesign/core/src/Chat/ChatToolCalls.tsx -@@ -399,6 +399,7 @@ function CallRow({call}: {call: ChatToolCallItem}) { +@@ -413,6 +413,7 @@ function CallRow({call}: {call: ChatToolCallItem}) {