Repository navigation
Releases: maple-kit/maple
Release list
@maple-kit/ui@0.23.0
Minor Changes
- c1b07d1:
/mock/planno longer answers 400 for a page with many or odd flags. It drops
a flag it cannot plan on its own, keeps theMockPlanOptions.flags.limit
(default 100) most relevant to the sentence, and answers the plan with a new
warningsfield, which the box shows as a muted line under the input. Only a
flagsthat is not a list is still a 400.readPlanFlagsnow returns
{ flags, warnings }, andPlanReadinggainswarnings. - a7aff9a: The mock box can reach what capture missed. The calls' and the flags' title
rows each get a quiet "Search all", which turns the title into a focused field
with "Cancel" and shows what it found over the page's list. It loads nothing
until then, shows 20 results at a time, and a pick joins the draft, marked
"added", and stays in the list after Cancel. Escape closes only the search. The flag search reads the known
set in memory; the API search reads the tab's own calls first (the new
Inventory.all()), then the route's newGET {base}/mock/calls?q=&cursor=,
which lists the callsMockRouteOptions.schemasdescribes. It is gated as
/mock/schemais, and rate-limited per reviewer on the plan's rate.ShapeIndex
gainscalls,@maple-kit/core/mockexportsCallEntry, andMockHandlegains
calls.MockClientgainssetSearch,searchCallsandsearchFlags. The
box's size budget rises from 4.1 to 4.6 KB; the search itself is a lazy chunk
with its own 2 KB budget. - a68fdf9: Flags the server read show in the mock box.
@maple-kit/core/flagsexports
recordFlagUse(key)andwithFlagUse(handler), which setx-maple-flagson the
response (comma-separated, URL-encoded keys, 4 KB cap) while the Maple route has
mock.previewon, and collect nothing otherwise.@maple-kit/core/launchdarkly
haslaunchDarklyFlagUse(), a Node server SDKafterEvaluationhook.
@maple-kit/core/mockexports the header's name and codec. The interceptor
records the header's keys as used with source "server", and the box tags them
"server" because a mocked value applies after a reload.
Patch Changes
- 097255b: A long flag value in the mock box (a JSON object, say) now wraps and clamps to two lines instead of scrolling the whole body sideways and clipping the flag names. Click it to read the whole value, pretty-printed.
- Updated dependencies [074a57b]
- Updated dependencies [c1b07d1]
- Updated dependencies [a7aff9a]
- Updated dependencies [a68fdf9]
- @maple-kit/mock@0.23.0
- @maple-kit/core@0.23.0
- @maple-kit/react@0.23.0
@maple-kit/ui@0.22.0
Minor Changes
-
b47e689: Breaking: off a Mac, a bare Alt tap starts a comment, not a Ctrl tap, and Shift+Alt closes Maple, not Shift+Ctrl. Screen reader users tap Ctrl to silence speech, and each tap started a comment.
TapModifieris now"Meta" | "Alt"(was"Meta" | "Control"),commentModifier()returns"Alt"on Windows and Linux, and the hints read "Tap Alt". AltGr never counts as a tap, a text field still swallows it, and a consumed Alt tap cancels its keyup so Chrome and Firefox on Windows do not focus the menu bar. macOS is unchanged: Cmd. -
9f874c1: Breaking: inside
<Maple />,mopens the mock box only while Maple is open, meaning the island card is up or a pick is armed. With the island collapsed it reaches the page untouched; tap the comment modifier, then pressm. Opening the box while a pick is armed cancels the pick. The island header gains a Mock button, drawn only where the mock transport is installed, that opens and closes the box.<MapleMock />without<Maple />is unchanged.createMockClienttakes a newshortcutWhenoption.Breaking: the island's bottom "New: Element | Text | Region" row is gone, and
Maple.NewCommentandMaple.PickButtonwith it;Maple.CommentButtonis the new part. A comment button in the header, left of the Mock button, replaces it: it arms the kind armed last (what a tap of the comment modifier arms), and pressed again while armed it moves to the next kind. The picker's bar still names the gesture and switches between the three kinds.MapleClientgainsarmNext(), the same call as that tap. -
e3a306d: Add
pins: "always" | "open"to hide the marks on the page, and the edge indicators, until the Maple island is open. It resolves like the other viewer preferences:?maple-pins=in the link, then the viewer's stored choice (a new "Pins only when open" switch in the settings), then thepinsprop, thenalways. A selected comment, an armed pick and an open composer still draw their marks.ClientStategainspinsandislandOpen, and the controller gainssetPinsandsetIslandOpen. -
5900e08:
<Maple />no longer needs abranch. Without one it asks the route'sGET {basePath}/contextonce (newreadContexton@maple-kit/core/client) and mounts with the branch, label, commit and pull request the route reports; the branch chip links topullRequestUrl.ContextBodyandContextReasonare exported as types from@maple-kit/core/client. A 404 means the deploy is not a preview and nothing mounts; a network error or 5xx on the first read is retried after 1 s, 3 s and 10 s before the overlay gives up; an unresolved answer shows the sign-in prompt and is read again once the reviewer links a GitHub account. Props still win over the response.Breaking:
MapleRootProps.branchis optional, and the standalone script no longer falls back to"local"whendata-branchis absent (maple reviewstill stamps it): it asks the route instead. The branch chip now reads the root's resolved surface by default.
Patch Changes
-
3d10af4: Tapping Cmd (or Ctrl) to start a comment is more reliable. Momentum scrolling no longer cancels a tap, only Cmd+scroll does. A focused checkbox, radio, button or other non-text input no longer blocks it. A missed key release heals on the next press, and a hidden tab resets the tap. A tap swallowed by a text field now shows a short hint beside the island, and a tap with the composer open focuses its field.
-
8ac6240: Closing the composer returns focus to the page control that had it when the composer opened, so a keyboard user no longer lands on
<body>. Focus is left alone if that control is gone or the viewer already moved it. -
925d52e: Escape no longer reaches past Maple. It closes Maple's topmost layer (a pick, then the composer, settings, the island) only when focus is inside Maple or a pick is armed, and then it is consumed, so a host
<dialog>is not closed by the same press and one press closes one layer. Escape while Maple is idle or during IME composition is left alone. Clicking any part of the island now moves focus into it, so Escape works afterwards. Tapping Shift with the comment modifier (Shift+Cmd on a Mac, Shift+Alt elsewhere) closes Maple from anywhere and keeps drafts.Breaking:
watchEscape'sonEscapenow receives the event and returns whether it closed something, and takes an optionaltakesAll;watchPickKeysandPickKeyOptionsare removed from@maple-kit/core/overlay(the picker useswatchEscape);TapNoticegainsclose;TapStategainschord, andtapStepreportsclose. -
07cdada: The mock box's state menu now drops its scroll listener whenever it closes (a pick, Escape, a click outside), not only when the box scrolls, so reopening the menu no longer stacks stale listeners.
-
4565d27: Region pick works on touch: the drag shield sets
touch-action: none, and apointercancel, a lost pointer capture or a move with no button down abandons the band instead of leaving a phantom one that follows the next move.RegionPickingOptions.onDrawnow also receivesundefinedwhen a drag is abandoned. -
b34b849: Pins follow the page's DOM: a pin whose anchor is hidden or removed (a closed dialog) is turned off instead of parking at the page's top-left corner, anchors are re-resolved shortly after the page changes so a dialog opened later gets its pins, and a pin for content scrolled out of a scroll area is marked off.
-
b6683d2: Hold-to-peek no longer takes Space from the host page. With focus on a host button, link, checkbox, summary or other focusable control, Space activates or scrolls it as usual while the composer is open. Space inside Maple, or with focus on the page itself, still peeks.
-
Updated dependencies [b47e689]
-
Updated dependencies [3d10af4]
-
Updated dependencies [217ebcf]
-
Updated dependencies [925d52e]
-
Updated dependencies [fc2da1a]
-
Updated dependencies [9f874c1]
-
Updated dependencies [7c1e8c9]
-
Updated dependencies [e9782ec]
-
Updated dependencies [4565d27]
-
Updated dependencies [ee35942]
-
Updated dependencies [e3a306d]
-
Updated dependencies [5900e08]
-
Updated dependencies [c9d78ea]
-
Updated dependencies [8f0bf16]
- @maple-kit/core@0.22.0
- @maple-kit/mock@0.22.0
- @maple-kit/react@0.22.0
@maple-kit/react@0.23.0
@maple-kit/react@0.22.0
Patch Changes
- Updated dependencies [b47e689]
- Updated dependencies [3d10af4]
- Updated dependencies [217ebcf]
- Updated dependencies [925d52e]
- Updated dependencies [fc2da1a]
- Updated dependencies [9f874c1]
- Updated dependencies [7c1e8c9]
- Updated dependencies [e9782ec]
- Updated dependencies [4565d27]
- Updated dependencies [ee35942]
- Updated dependencies [e3a306d]
- Updated dependencies [5900e08]
- Updated dependencies [c9d78ea]
- Updated dependencies [8f0bf16]
- @maple-kit/core@0.22.0
- @maple-kit/mock@0.22.0
@maple-kit/mock@0.23.0
Minor Changes
- 074a57b: The flags list shows only the flags the page read.
@maple-kit/mock/launchdarkly
exportslaunchDarklyUsage(), a LaunchDarklyflag-usedinspector (and
launchDarklyUsageHook()forhooks), to pass as
options: { inspectors: [launchDarklyUsage()] }. Each read is recorded as used
on the current route; the full poll is still recorded, as known. Without an
inspector the box lists every known flag, as before.FlagRegistry.list()is
nowknown(), and gainsrecordUsed(),used(route)andhasUsed(). - c1b07d1:
/mock/planno longer answers 400 for a page with many or odd flags. It drops
a flag it cannot plan on its own, keeps theMockPlanOptions.flags.limit
(default 100) most relevant to the sentence, and answers the plan with a new
warningsfield, which the box shows as a muted line under the input. Only a
flagsthat is not a list is still a 400.readPlanFlagsnow returns
{ flags, warnings }, andPlanReadinggainswarnings. - a7aff9a: The mock box can reach what capture missed. The calls' and the flags' title
rows each get a quiet "Search all", which turns the title into a focused field
with "Cancel" and shows what it found over the page's list. It loads nothing
until then, shows 20 results at a time, and a pick joins the draft, marked
"added", and stays in the list after Cancel. Escape closes only the search. The flag search reads the known
set in memory; the API search reads the tab's own calls first (the new
Inventory.all()), then the route's newGET {base}/mock/calls?q=&cursor=,
which lists the callsMockRouteOptions.schemasdescribes. It is gated as
/mock/schemais, and rate-limited per reviewer on the plan's rate.ShapeIndex
gainscalls,@maple-kit/core/mockexportsCallEntry, andMockHandlegains
calls.MockClientgainssetSearch,searchCallsandsearchFlags. The
box's size budget rises from 4.1 to 4.6 KB; the search itself is a lazy chunk
with its own 2 KB budget. - a68fdf9: Flags the server read show in the mock box.
@maple-kit/core/flagsexports
recordFlagUse(key)andwithFlagUse(handler), which setx-maple-flagson the
response (comma-separated, URL-encoded keys, 4 KB cap) while the Maple route has
mock.previewon, and collect nothing otherwise.@maple-kit/core/launchdarkly
haslaunchDarklyFlagUse(), a Node server SDKafterEvaluationhook.
@maple-kit/core/mockexports the header's name and codec. The interceptor
records the header's keys as used with source "server", and the box tags them
"server" because a mocked value applies after a reload.
Patch Changes
@maple-kit/mock@0.22.0
Minor Changes
-
9f874c1: Breaking: inside
<Maple />,mopens the mock box only while Maple is open, meaning the island card is up or a pick is armed. With the island collapsed it reaches the page untouched; tap the comment modifier, then pressm. Opening the box while a pick is armed cancels the pick. The island header gains a Mock button, drawn only where the mock transport is installed, that opens and closes the box.<MapleMock />without<Maple />is unchanged.createMockClienttakes a newshortcutWhenoption.Breaking: the island's bottom "New: Element | Text | Region" row is gone, and
Maple.NewCommentandMaple.PickButtonwith it;Maple.CommentButtonis the new part. A comment button in the header, left of the Mock button, replaces it: it arms the kind armed last (what a tap of the comment modifier arms), and pressed again while armed it moves to the next kind. The picker's bar still names the gesture and switches between the three kinds.MapleClientgainsarmNext(), the same call as that tap.
Patch Changes
-
925d52e: Escape no longer reaches past Maple. It closes Maple's topmost layer (a pick, then the composer, settings, the island) only when focus is inside Maple or a pick is armed, and then it is consumed, so a host
<dialog>is not closed by the same press and one press closes one layer. Escape while Maple is idle or during IME composition is left alone. Clicking any part of the island now moves focus into it, so Escape works afterwards. Tapping Shift with the comment modifier (Shift+Cmd on a Mac, Shift+Alt elsewhere) closes Maple from anywhere and keeps drafts.Breaking:
watchEscape'sonEscapenow receives the event and returns whether it closed something, and takes an optionaltakesAll;watchPickKeysandPickKeyOptionsare removed from@maple-kit/core/overlay(the picker useswatchEscape);TapNoticegainsclose;TapStategainschord, andtapStepreportsclose. -
fc2da1a: The
mshortcut no longer opens the mock box while you type.opensMockandisEditablenow read the whole event path:role=textbox,comboboxandsearchboxelements,contenteditableancestors and editors inside open shadow roots count as typing. A heldm, an IME composition and keyCode 229 no longer open or toggle the box. The comment tap's text-field check uses the same path. -
Updated dependencies [b47e689]
-
Updated dependencies [3d10af4]
-
Updated dependencies [217ebcf]
-
Updated dependencies [925d52e]
-
Updated dependencies [fc2da1a]
-
Updated dependencies [9f874c1]
-
Updated dependencies [7c1e8c9]
-
Updated dependencies [e9782ec]
-
Updated dependencies [4565d27]
-
Updated dependencies [ee35942]
-
Updated dependencies [e3a306d]
-
Updated dependencies [5900e08]
-
Updated dependencies [c9d78ea]
-
Updated dependencies [8f0bf16]
- @maple-kit/core@0.22.0
@maple-kit/mcp@0.23.0
@maple-kit/mcp@0.22.0
Patch Changes
- Updated dependencies [b47e689]
- Updated dependencies [3d10af4]
- Updated dependencies [217ebcf]
- Updated dependencies [925d52e]
- Updated dependencies [fc2da1a]
- Updated dependencies [9f874c1]
- Updated dependencies [7c1e8c9]
- Updated dependencies [e9782ec]
- Updated dependencies [4565d27]
- Updated dependencies [ee35942]
- Updated dependencies [e3a306d]
- Updated dependencies [5900e08]
- Updated dependencies [c9d78ea]
- Updated dependencies [8f0bf16]
- @maple-kit/core@0.22.0
@maple-kit/lint@0.3.5
@maple-kit/lint@0.3.4
Patch Changes
- Updated dependencies [b47e689]
- Updated dependencies [3d10af4]
- Updated dependencies [217ebcf]
- Updated dependencies [925d52e]
- Updated dependencies [fc2da1a]
- Updated dependencies [9f874c1]
- Updated dependencies [7c1e8c9]
- Updated dependencies [e9782ec]
- Updated dependencies [4565d27]
- Updated dependencies [ee35942]
- Updated dependencies [e3a306d]
- Updated dependencies [5900e08]
- Updated dependencies [c9d78ea]
- Updated dependencies [8f0bf16]
- @maple-kit/core@0.22.0