From 7277b95aa05002101b62f81eeae121125ede4abf Mon Sep 17 00:00:00 2001 From: Brian Love Date: Sat, 5 Sep 2026 09:06:47 -0700 Subject: [PATCH 01/31] =?UTF-8?q?docs:=20spec=20for=20components=20SP1=20?= =?UTF-8?q?=E2=80=94=20the=20contract,=20and=20Button=20/=20IconButton?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Opens the component-kit program: every control in the grid rebuilt on a pre-built, accessible, styleable kit a consumer can also replace per component type. Four sub-projects by component type; this spec is the first and settles the contract the rest inherit — placement in @pretable/react, one `components` slot per type with a `role` in the props, the house styling channel (attributes + tokens + className passthrough), and context as the plumbing because popovers are portalled. Proven against the grid's twelve plain push-buttons, which keep their existing data attributes so nothing that identifies a button today stops identifying it. Menu items, checkboxes, tabs and the twisty are roles that happen to use