Commit Graph
186 Commits
Author SHA1 Message Date
ZacharyZhang-NY 99615e1a0c Kit · K04: compat/kit runs Ely beside the newest GPUI Kit in one window; check.sh holds it to Kit's newest release 2026-10-07 13:23:23 -04:00
ZacharyZhang-NY 98de2a455f Kit · K03: init checks every bundled file through the app's source; Assets::before joins another source 2026-10-07 13:23:23 -04:00
ZacharyZhang-NY a9b30c7eab Kit · K02: Tab binds under FocusScope's ElyFocus context, so a deeper context's Tab wins 2026-10-07 12:39:20 -04:00
ZacharyZhang-NY c61a5b22b0 Kit · K01: gpui from gpui-pre =0.3.8, Kit's pin; test-support keeps leak detection 2026-10-07 12:27:17 -04:00
ZacharyZhang-NY ffe4f38103 Panics · P32 Canvas: panels take their handlers in new; stale nodes, shapes, layers and topics change nothing 2026-10-07 05:02:40 -04:00
ZacharyZhang-NY defbec006e Panics · P15 Charts: values within charts::LIMIT; scales, shares and tangents stay finite at the edges; entries past their lists are skipped 2026-10-06 19:05:05 -04:00
ZacharyZhang-NY f46cc4e7c3 Panics · P02 Typography: Link takes its handler, an unknown zone reads as UTC and says so, a long highlight query logs 2026-10-06 16:02:40 -04:00
ZacharyZhang-NY 52d3d790b1 Panics · P00: the policy in AGENTS.md and a task list by chapter 2026-10-06 15:00:30 -04:00
ZacharyZhang-NY bd3772ad54 Charts · Navigation · Forms: band names widen a sideways chart's gutter; Pagination takes a size, speaks the locale and jumps to a typed page
- A horizontal chart's gutter grows to its widest band name, floored at the theme gutter and capped at half the chart; a name past the cap ends in an ellipsis (#10).
- Pagination's previous and next tooltips read i18n (English and zh-CN built in, app catalogs override); `.size(ControlSize)` sizes every control, Sm by default; `.jump()` adds a Go to field (#11).
- NumberInput keys the owner's value as shown: a draft survives a blur, a value set while focused lands when focus leaves, and an echo of its own commit is no new value. A ranged field holds room for its widest bound through `Input::least`.
2026-10-06 13:29:09 -04:00
ZacharyZhang-NY af54877693 Forms · NumberInput: blank shows a placeholder and commits only what is typed 2026-10-05 17:48:31 -04:00
ZacharyZhang-NY 7df3045a82 Lists · SelectableList: list semantics, row names, selection and place in set 2026-10-05 16:43:30 -04:00
ZacharyZhang-NY f2dd7dc474 CI · Showcase: move the site's pin to the catalog's main once its checks pass, build and deploy 2026-10-05 14:42:03 -04:00
ZacharyZhang-NY 80c46b13d4 Documents · TemplatePicker: one Tab stop, arrows and Enter, list semantics, builtin copy 2026-10-05 13:13:09 -04:00
ZacharyZhang-NY 718617939e Forms · NumberInput label: the name assistive technology reads, drawn nowhere 2026-10-05 12:34:19 -04:00
ZacharyZhang-NY 8658999903 Forms · Select and TextInput label: the name assistive technology reads, drawn nowhere 2026-10-05 04:59:41 -04:00
ZacharyZhang-NY e21336fc1b Primitives · Focus: overlays dropped together hand focus back past every one of them 2026-10-05 04:13:35 -04:00
ZacharyZhang-NY 38deadde89 Primitives · Focus: an overlay dropped without Close hands focus back to what it took it from 2026-10-05 03:39:25 -04:00
ZacharyZhang-NY ae06da3128 License: MIT alone, in LICENSE; the Apache-2.0 option is gone from the crate, README, CONTRIBUTING, the site's footer and docs 2026-10-05 01:26:01 -04:00
ZacharyZhang-NY 82c5275e7c Shell · ColumnShell's story on the Window & Shell page, the PRD line, stories.json and AGENTS.md (#6) 2026-10-05 01:14:17 -04:00
ZacharyZhang-NY 1f297c7801 Logo: logo.png, 2048px and transparent, rendered from the mark by scripts/favicon.mjs 2026-10-04 22:27:45 -04:00
ZacharyZhang-NY f80721abed Site · Logo: the letter E in iso blocks, in the header, the favicon, the touch icon and the OG image
One geometry in src/iso/mark.ts, drawn by the engine the miniatures use. The favicon follows the system's mode; scripts/favicon.mjs takes its colors from styles.css. Below 768px the header shows the mark alone, its word kept as the link's name.
2026-10-04 22:19:04 -04:00
ZacharyZhang-NY faf0987cf8 Site · Showcase: apps built with Ely, from the public Ely-GPUI-Showcases repo at a pinned commit
The build fetches showcase.lock's commit and runs the catalog's own validator. /showcase/ lists featured apps first, then the rest by newest or stars, with categories and search; /showcase/<id>/ shows previews, links and the README. The header drops its sound switch below 414px so the fourth link fits.
2026-10-04 21:39:13 -04:00
ZacharyZhang-NY 939397dbca Docs · Rendering: what GPUI can show, RenderSurface and its revision, a compiled example; AGENTS.md and README follow 2026-10-04 00:30:12 -04:00
ZacharyZhang-NY 875cdfdc9b Forms, a11y · Checkbox, Switch, Radio, RadioGroup, Slider and Select name their role, label and state (#3)
A slider's thumb reports its value, the bounds it can reach and its orientation; a select's trigger its value, placeholder and whether its list is open; a disabled control says so in its description.
2026-10-03 01:35:48 -04:00
ZacharyZhang-NY 30dc94f44c T48a Docs · Frame: guides render at build in a Vite plugin, so a bad one fails the build; focus rings whole in the rail and list; plain heading words, unique ids, captions only when named, code under example= refused 2026-10-01 12:01:42 -04:00
ZacharyZhang-NY fba90c22e6 T48a Docs · Frame: a Docs tab, /docs/ and /docs/$page/, Markdown guides with a rail, an on-this-page list, previous and next and code blocks; full Rust samples are compiled examples shown as text 2026-10-01 11:40:50 -04:00
ZacharyZhang-NY c5ad42d154 Remove frontend-reference: the folder, its ignore line and its docs 2026-10-01 10:03:27 -04:00
ZacharyZhang-NY ed2904ce60 T47 Ship: a gallery whose wasm fetch fails retries, then tells the host; the host shows it at once and waits a minute for a slow start 2026-10-01 08:49:10 -04:00
ZacharyZhang-NY 28dc0bdb35 T46a Site · Owner's notes pass review; the hero title fits its column 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY ac1a869fb5 T46a Site · Owner's notes: short story names, aligned icons, a whole city title, tighter story tops, hidden scroll bars, a tablet step at 1024 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY 5d198634e7 T45e Site · Local: pnpm local builds the gallery for localhost, builds the site and serves both on 4173 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY ffbb37183d T45d Site · Components passes review; Slash leaves a hidden field alone; the review log moves to tasks/reviews.md 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY 9ea811d4e8 T45c Site · Home: full screen stops the glide at once, a starting gallery leaves the host's focus alone, a focused frame stays mounted 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY 3ae04f4ead T45a Site · Stack: reloads open in the current mode, the first paint keeps the system's, plain route changes 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY 167055fdae T45a Site · Stack: Vite 8, React 19 and TanStack Router under pnpm; routes, theme, fonts, the manifest 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY 327bdf4b7f T45 Website: native captures stand in where a browser cannot run, an OG image, no web notes 2026-09-30 00:03:23 -04:00
ZacharyZhang-NY 6ff43607b7 T45 Website: a home in motion and every story live, chapters on the left 2026-09-29 23:40:04 -04:00
ZacharyZhang-NY dcdd46038e T44d Web · Hidden builders start nothing, fields blink only in focus, grids paste with Control 2026-09-29 23:02:37 -04:00
ZacharyZhang-NY 81adec5c47 T44d Web · Hidden demos keep still, wide ones scroll whole, pastes read the web's clipboard 2026-09-29 22:13:27 -04:00
ZacharyZhang-NY 2463bb0ac9 T44d Web · Stories stand alone: nested ones surface, hidden ones drop their demos, early themes land, pastes arrive 2026-09-29 19:16:41 -04:00
ZacharyZhang-NY 2cd2ca8bc1 T44d Web · What a browser cannot do says why; fonts resolve; the bundle builds
Demos that open a second window, take files, move the window, read the
clipboard or set native menus show a note on the web in the blocked style.
IBM Plex Sans Regular joins the assets, unmodified, where gpui's svg
renderer loads it: gpui_web answers .SystemUIFont with it. The gallery's
web entry registers a Hebrew cut of Noto Sans Hebrew. scripts/web.sh builds
the bundle with wasm-bindgen and wasm-opt -Oz, 20.0 MB, and fails past 25 MiB.
2026-09-29 19:16:41 -04:00
ZacharyZhang-NY a03df0987c web: the library checks for wasm32 (carried) 2026-09-29 19:16:41 -04:00
ZacharyZhang-NY c59d19645d Port · Parity: dark shots judged; the status shot waits out the tooltip; comments one short line 2026-09-29 18:18:05 -04:00
ZacharyZhang-NY 3f1597fa28 Port · Parity: every page matches gpui 0.2.2's; the rules re-tested
Every page and scripted state was shot with gpui 0.2.2 and with the
port, light and dark, full width and at 280px, judged pair by pair by
agents with skeptics, and every page's log diffed. What differed is
fixed, each with a test that fails without it where the test platform
can show it:

- The gallery's harness takes posted mouse moves (gpui_macos listens
  to a tracking area), posts each drag move twice (it no longer
  replays a held drag), and waits three frames before each shot.
- Rolling digits: a block column, so taffy 0.13 lends the cell no
  baseline, and a line of whole device pixels, since gpui snaps each
  length on its own. DescriptionList's row aligns ends.
- Margins that taffy 0.13 collapses through a plain block: the
  drawer's pull and snap, the stagger and transition rise, the dialog
  and palette rises, the fullscreen dialog's slide.
- An Input keeps room to type in a squeezed row; the field rows drop
  w_full, whose reason was taffy 0.9's.

AGENTS.md's rules that named gpui 0.2.2 or taffy 0.9 were re-tested
against both sources and rewritten, and new ones say what the port
changed. TASKS.md's tags follow: what the new gpui makes possible is
prove. Captions, doc comments and README say what holds now.
2026-09-29 10:39:55 -04:00
ZacharyZhang-NY 3189df013f Tasks: the site deploys to Cloudflare through wrangler
The Dokploy line was a misreading; the plan stays as it was.
2026-09-29 00:28:32 -04:00
ZacharyZhang-NY 05bd22b7f0 Port · Calendar: a real exit clears the preview after a key
The calendar's grid clears its preview on leave, and ignores a leave
that follows a key. gpui records the exit a key makes before the
handler runs, so the guard swallowed it and a real exit afterwards
had no change left to report: the stale day stayed the preview. The
grid now listens independently of input, while its days keep the
default, so a key is no leave and a real exit is. A test leaves the
grid after an arrow, a letter and a month key.

shaped()'s doc goes back to its one line; AGENTS.md keeps the why.
2026-09-28 20:54:25 -04:00
ZacharyZhang-NY 4c3ed1bbb9 Port · Build: Zed's gpui at 1a28cff
gpui and gpui_platform now come from Zed's repo by git at 1a28cff,
the code gpui-pre 0.3.7 republishes, so the gallery can later build
for the browser. gpui takes stacker, as 0.2.2 always did, and
gpui_platform takes font-kit, without which macOS draws no text;
runtime_shaders moves to gpui_platform.

The API moved: focus, blur and Tab steps take cx, Corner is Anchor,
shaped lines paint with an alignment, defer_draw takes a content
mask, the inspector registers a factory, async updates return their
value, and wrapped lines are shared, not cloned. Updates through a
window context go through the window, so a closed window still ends
them as it did.

Where the new gpui behaves differently, Ely keeps its old intent.
Holds and reveals under a resting pointer survive typing through
gpui's input-modality-independent hover; previews the keyboard also
moves keep the default, and the calendar's leave ignores a key press.
Enter reaches a button inside the code editor, since gpui now arms a
key click on the press. The event logger skips a lone modifier. A
video and an image grid keep their shape in a flex column under
taffy 0.13, as a picture does.

AGENTS.md records the new stack and the rules this port changes; the
rest of the old gpui and taffy rules are re-tested in T44c.
2026-09-28 20:30:17 -04:00
ZacharyZhang-NY 25b8a6f22c Tasks: live components on the site; Zed's gpui; Dokploy
The site shows every component running, as gpui-kit.com does, never
a screenshot. gpui 0.2.2 cannot build for the browser, so T44b moves
gpui to Zed's repo at 1a28cff, T44c re-checks every page and rule on
it, and T44d builds the gallery for wasm32 as one story per
component. The screenshot items give way, and the site deploys to
Dokploy.
2026-09-28 20:13:44 -04:00
ZacharyZhang-NY a6f9a7b77b Capture · Roots: the roots round 2 missed
A sweep that read every render found 28 roots still on w_full,
reached by 64 components: the field button under Select and every
picker, the checked and mention fields, the slider track,
NumberInput, Steps, the state views, the agent previews, and every
chart and finance frame. All drop it. LivePreview's size_full becomes
h_full, since its card no longer fills.

Every host of those roots was listed and read, 231 in all. Five
tests that mounted a picker as the window root sit in a size_full
box, the index manager gives its method select a flex_1 box, and the
notification center and the gallery's state frames stack their state
views in a column so they stretch.

Each dropped root carries a debug selector, and six chapter tests
mount 43 components in a padded card whose column is measured by
content, through layout::tests::narrow_width: each root must take the
full 240px. With w_full back on the roots, all six fail.

AGENTS.md names the roots that keep w_full and why: picture frames
that keep a ratio, and rows that hand a text field its share.
2026-09-28 19:34:01 -04:00
ZacharyZhang-NY ad98ca7746 Capture · Roots: the twelve roots round 1 found
Eleven more roots drop w_full: the docked ActionBar, MessageBubble's
three arms, PromptInput, TitleBar, Tabs, the horizontal Divider with
and without a label, DropZone and Playlist. Their hosts in the crate
are blocks or flex columns. The gallery's docked ActionBar sits in an
items_center column, so the demo gives it the width.

AspectRatio keeps w_full, and AGENTS.md says why: taffy 0.9 follows a
ratio from a set width, not from a stretch, and without one the image
gallery's tiles and the ratio demo collapsed.

Every page and scripted state was shot again at full width and at
280px and compared with the shots from before T44a. Nothing collapsed
or shrank. The mail reader's attachments now wrap side by side, as
their row asks.
2026-09-28 16:30:47 -04:00