App and example changes, with the apps that moved to the Stage repository (apps/vj, apps/asset-ui) removed here. Covers work ebf442a94..2b1a41df4 for apps examples: - wm: the Android super-app compiles tiles on the phone against the host engine - cargo-makepad: the super-app APK is packed by `android dyn-pack`, in Rust - widgets, storybook: the widget catalogue app, some eighty new widgets, a theme store with mixable style sheets, and the rule that a press belongs to - wm, widgets: the style tween starts with all eight weights, and the new style sheet takes the last number instead of macOS's - platform: the Android desk swipes at 120 Hz — offscreen render passes and framebuffers cached, SVG meshes kept, font families that complete - flow: the flow-ui app and the flowgraph canvas return to the workspace, with staged progress in libs/flow - app_main!: only ship the fonts an app declares (#1247) - platform, widgets, wm: every Vulkan pass renders through a negative-height viewport again, so a Wayland or X11 window stands upright, and no capture - calendar: its own colour contrast is named explicitly, now that the theme store exports one under the same name through the widgets glob - platform, wm, director: a hosted app's software frame arrives as a top-left texture and the window manager and the director carry no flip term at al - wm: the desktop style menu lists each style once - cef, video, platform: what Stage's browser needs from the shared layers - platform, wm: work builds again on iOS, tvOS and wasm, and the window manager is warning-free on Windows - ci: tools/ci, a Splash runtime that watches a branch and runs every ci.splash it finds - ci: the terminal gets its pty helper, director is a desktop tool, and a refused input is asked again - apps: what the CI box found - Remove Flow, asset and VJ applications moved into Stage - ci: a quiet header, a build that visibly moves, and scripts that leave the machine alone - tests: the workspace suite, run as a whole for the first time, passes outside the example UI tests - examples: the UI tests pass, for the reasons they failed - tests: the last three failures of the CI box's night - tools: makepad-screen is makepad-agents, and its binary is `agents` - tests: the three binaries over ten seconds in release come under it - wm: the shell menu says what it did, and the CI waits for that - mail: the phone layout lines up - clock: the phone layout fits both orientations - calendar, reminders, calculator, sheets: the phone layouts fit their space - platform, widgets, wm: a touch that is taken away is cancelled, never released - weather, notes, finance, photos, route: the phone layouts tidy up - files: the phone layout tidies up - wm: the phone shell's surfaces match the app and the grid - wm on Android: every app is its own process - clock: a cancelled release neither opens an alarm nor switches tab - platform, wm: hosted apps ask the WM for what they cannot do themselves - wm on Android: apps build on the phone - wm on Android: app transitions and gestures feel like the phone's - android: rotated Vulkan windows stop rebuilding their swapchain every frame, and hosted children get touch - android: hosted children hand frames over with GPU fences and draw only when they have work - wm on Android: gestures and surfaces settle like the phone's - widgets: touch lists scroll with Android's physics - wm on Android: the shell follows the Pixel launcher's motion - wm on Android: Recents shows the apps over a receding home, and the home screen switches looks - wm on Android: the look switcher stays put, the iOS dock shows its icons, background apps follow a look change - task, cargo-makepad, widgets, audio: the task manager chooses its columns, graphs every process' network and disk traffic and installs itself as a D - files: the tile view's three projections are toolbar buttons - mail: the local view takes a theme-derived palette and line icons, search pages share records - director: agent lanes form a tree and Grok joins the usage bar - widgets, draw: skeuomorphic surfaces light each other through an optional relief buffer - widgets, platform: a texture can light the relief buffer, menus take colour chips, and a style reload recompiles changed shader functions - platform, widgets, audio_route, ai: window crossfades and whole-frame presents, caption controls that click, themed menus, a stereo-pair audio tap, - builder: the Builder TUI matches the new terminal design, Windows executables carry app icons, and every app has one - files: the Files app deletes nothing and never overwrites - director: coding agents ask before acting unless you choose otherwise - sheets, score, git, home: saves cannot cut a file short or overwrite another one, and checkouts cannot write outside the repository - widgets, builder: the big widget families are features, all on by default, and the Builder takes none of them - ai: Claude Desktop drives any app with the F10 panel - wm: starts on Windows - wm: children open no console windows on Windows - wm: the whole deck out of a Builder's source, compiled only when the person opens an app - ai: Connect hands the .mcpb to Claude Desktop itself - wm: the clock and calendar know the date on Windows - wm: opening an app rebuilds it when its binary is out of date; warm instances never build - civil-time: one local wall clock for every app, and it knows the zone on Windows - platform + wm: a hosted child redraws at its tile's new size - calendar: the Calendars sheet is an opaque panel, and the wide layout does not float one over its sidebar - platform: an app's package dir, icons and bundle name rebuild only that app - build: the AI stack, csg, Scope and Source Library join the one workspace - ai chat: the chat's backends are the CLI, MCP and cloud providers; the local model is the `localai` feature - apps: every app that hosts the chat has a `localai` feature for the local model, off unless the app's own job runs one - widgets: every widget family is a crate of its own under widgets/families, and makepad-widgets links, re-exports and registers the ones its features - aichat, widgets: the chat reads the design feedback through the tweaker's hook, so linking the chat no longer needs the tweaker - apps, examples, libs: each crate builds only the widget families it uses, and the design overlay is each app's own default feature - ai chat: a build without local AI starts on the first provider that answers here, not on "No model" - repo: no third-party comic archive, generated models or sample asset in the tree - remove big example media files - wm: in a Makepad Builder installation apps build through the Builder, however wm was started Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
143 lines
7.6 KiB
XML
143 lines
7.6 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" width="256" height="256">
|
|
<defs>
|
|
<filter id="icon_shadow">
|
|
<feDropShadow dx="0" dy="4" stdDeviation="6" flood-color="#000000" flood-opacity="0.5"/>
|
|
</filter>
|
|
<filter id="kb_shadow">
|
|
<feDropShadow dx="0" dy="1" stdDeviation="2" flood-color="#000000" flood-opacity="0.3"/>
|
|
</filter>
|
|
|
|
<!-- Dark glass background -->
|
|
<linearGradient id="glass_bg" x1="0" y1="0" x2="1" y2="1">
|
|
<stop offset="0%" stop-color="#556677" stop-opacity="0.45"/>
|
|
<stop offset="100%" stop-color="#334455" stop-opacity="0.35"/>
|
|
</linearGradient>
|
|
<linearGradient id="glass_border" x1="0" y1="0" x2="1" y2="1">
|
|
<stop offset="0%" stop-color="#ffffff" stop-opacity="0.35"/>
|
|
<stop offset="40%" stop-color="#ffffff" stop-opacity="0.08"/>
|
|
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.2"/>
|
|
</linearGradient>
|
|
<linearGradient id="glass_spec" x1="0.1" y1="0" x2="0.7" y2="0.8">
|
|
<stop offset="0%" stop-color="#ffffff" stop-opacity="0.14"/>
|
|
<stop offset="50%" stop-color="#ffffff" stop-opacity="0.02"/>
|
|
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.0"/>
|
|
</linearGradient>
|
|
|
|
<!-- Brain glow: radial gradient behind brain, no filter -->
|
|
<radialGradient id="brain_glow_grad" cx="0.5" cy="0.45" r="0.45">
|
|
<stop offset="0%" stop-color="#4466ee" stop-opacity="0.4"/>
|
|
<stop offset="45%" stop-color="#4466dd" stop-opacity="0.15"/>
|
|
<stop offset="100%" stop-color="#4466dd" stop-opacity="0.0"/>
|
|
</radialGradient>
|
|
|
|
<!-- Brain stroke gradient -->
|
|
<linearGradient id="brain_grad" x1="0.5" y1="0" x2="0.5" y2="1">
|
|
<stop offset="0%" stop-color="#77ccff"/>
|
|
<stop offset="40%" stop-color="#7799ee"/>
|
|
<stop offset="75%" stop-color="#8866dd"/>
|
|
<stop offset="100%" stop-color="#9944cc"/>
|
|
</linearGradient>
|
|
<linearGradient id="fold_grad" x1="0.5" y1="0" x2="0.5" y2="1">
|
|
<stop offset="0%" stop-color="#aaddff"/>
|
|
<stop offset="100%" stop-color="#bb99ee"/>
|
|
</linearGradient>
|
|
|
|
<!-- Keyboard -->
|
|
<linearGradient id="kb_grad" x1="0" y1="0.5" x2="1" y2="0.5">
|
|
<stop offset="0%" stop-color="#9955ee"/>
|
|
<stop offset="50%" stop-color="#6688ff"/>
|
|
<stop offset="100%" stop-color="#44ddcc"/>
|
|
</linearGradient>
|
|
<linearGradient id="kb_body" x1="0" y1="0" x2="1" y2="1">
|
|
<stop offset="0%" stop-color="#8855dd" stop-opacity="0.45"/>
|
|
<stop offset="100%" stop-color="#44aacc" stop-opacity="0.3"/>
|
|
</linearGradient>
|
|
|
|
<!-- Stem -->
|
|
<linearGradient id="stem_grad" x1="0.5" y1="0" x2="0.5" y2="1">
|
|
<stop offset="0%" stop-color="#7799dd"/>
|
|
<stop offset="100%" stop-color="#44cccc"/>
|
|
</linearGradient>
|
|
</defs>
|
|
|
|
<!-- GLASS BACKGROUND -->
|
|
<rect x="16" y="16" width="224" height="224" rx="44" ry="44"
|
|
fill="#445" fill-opacity="0.35" filter="url(#icon_shadow)"/>
|
|
<rect x="16" y="16" width="224" height="224" rx="44" ry="44"
|
|
fill="url(#glass_bg)"/>
|
|
<rect x="16" y="16" width="224" height="224" rx="44" ry="44"
|
|
fill="none" stroke="url(#glass_border)" stroke-width="1.5"/>
|
|
|
|
<!-- Glass specular -->
|
|
<path d="M60 16 C35.7 16 16 35.7 16 60 L16 105 Q55 55 160 30 L190 16 Z"
|
|
fill="url(#glass_spec)"/>
|
|
|
|
<!-- BRAIN GLOW - radial gradient circle, no filter needed -->
|
|
<circle cx="128" cy="95" r="80" fill="url(#brain_glow_grad)"/>
|
|
|
|
<!-- BRAIN - paths placed on the card with a transform -->
|
|
<!-- Brain in 24x24: center ~(12, 11), want center at (128, 95) -->
|
|
<!-- scale 7.6: 12*7.6=91.2 11*7.6=83.6 -->
|
|
<!-- translate: (128-91.2, 95-83.6) = (36.8, 11.4) -->
|
|
<g transform="translate(36.8, 11.4) scale(7.6)">
|
|
<!-- Right hemisphere bottom -->
|
|
<path d="M15.5 13a3.5 3.5 0 0 0 -3.5 3.5v1a3.5 3.5 0 0 0 7 0v-1.8"
|
|
fill="none" stroke="url(#brain_grad)" stroke-width="0.35" stroke-linecap="round" stroke-linejoin="round"/>
|
|
<!-- Left hemisphere bottom -->
|
|
<path d="M8.5 13a3.5 3.5 0 0 1 3.5 3.5v1a3.5 3.5 0 0 1 -7 0v-1.8"
|
|
fill="none" stroke="url(#brain_grad)" stroke-width="0.35" stroke-linecap="round" stroke-linejoin="round"/>
|
|
<!-- Right outer lobe -->
|
|
<path d="M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"
|
|
fill="none" stroke="url(#brain_grad)" stroke-width="0.35" stroke-linecap="round" stroke-linejoin="round"/>
|
|
<!-- Right top -->
|
|
<path d="M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"
|
|
fill="none" stroke="url(#brain_grad)" stroke-width="0.35" stroke-linecap="round" stroke-linejoin="round"/>
|
|
<!-- Left outer lobe -->
|
|
<path d="M6.5 16a3.5 3.5 0 0 1 0 -7h.5"
|
|
fill="none" stroke="url(#brain_grad)" stroke-width="0.35" stroke-linecap="round" stroke-linejoin="round"/>
|
|
<!-- Left top + central stem -->
|
|
<path d="M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"
|
|
fill="none" stroke="url(#brain_grad)" stroke-width="0.35" stroke-linecap="round" stroke-linejoin="round"/>
|
|
<!-- Inner fold / sulcus -->
|
|
<path d="M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4"
|
|
fill="none" stroke="url(#fold_grad)" stroke-width="0.28" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.5"/>
|
|
</g>
|
|
|
|
<!-- STEM - straight down from brain to keyboard -->
|
|
<path d="M128 148 L128 178"
|
|
fill="none" stroke="url(#stem_grad)" stroke-width="2.5" stroke-linecap="round"/>
|
|
|
|
<!-- KEYBOARD -->
|
|
<g filter="url(#kb_shadow)">
|
|
<rect x="64" y="185" width="128" height="38" rx="7" ry="7" fill="url(#kb_body)"/>
|
|
<rect x="64" y="185" width="128" height="38" rx="7" ry="7" fill="none" stroke="url(#kb_grad)" stroke-width="1.2"/>
|
|
|
|
<!-- Row 1 -->
|
|
<rect x="73" y="190" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.18"/>
|
|
<rect x="85" y="190" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.18"/>
|
|
<rect x="97" y="190" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.18"/>
|
|
<rect x="109" y="190" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.18"/>
|
|
<rect x="121" y="190" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.18"/>
|
|
<rect x="133" y="190" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.18"/>
|
|
<rect x="145" y="190" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.18"/>
|
|
<rect x="157" y="190" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.18"/>
|
|
<rect x="169" y="190" width="15" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.18"/>
|
|
|
|
<!-- Row 2 -->
|
|
<rect x="76" y="199" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.15"/>
|
|
<rect x="88" y="199" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.15"/>
|
|
<rect x="100" y="199" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.15"/>
|
|
<rect x="112" y="199" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.15"/>
|
|
<rect x="124" y="199" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.15"/>
|
|
<rect x="136" y="199" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.15"/>
|
|
<rect x="148" y="199" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.15"/>
|
|
<rect x="160" y="199" width="24" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.15"/>
|
|
|
|
<!-- Row 3 -->
|
|
<rect x="73" y="208" width="12" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.12"/>
|
|
<rect x="88" y="208" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.12"/>
|
|
<rect x="100" y="208" width="50" height="6" rx="2" ry="2" fill="#ffffff" fill-opacity="0.18"/>
|
|
<rect x="153" y="208" width="9" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.12"/>
|
|
<rect x="165" y="208" width="19" height="6" rx="1" ry="1" fill="#ffffff" fill-opacity="0.12"/>
|
|
</g>
|
|
</svg>
|