Canon gaps 2: Search filter mode, InlineAlert role, Badge tones, Segmented option class, Dialog overlayClass, PanelHeader closeTitle, PageHeader titleTrailing; release workflow fix - #141
Merged
Conversation
…, Segmented option class, Dialog overlayClass, PanelHeader closeTitle Additive props for gaps the paw-enterprise page lanes hit. Search gets mode="filter" (no dropdown) plus aria-label, autocomplete and spellcheck passthroughs. InlineAlert takes a role override. The ./primitives Badge gets success and warning variants. Segmented options take a class and the component takes a leading snippet. Dialog.Content takes overlayClass. PanelHeader takes closeTitle. The manifest documents Search's mode. Demos on /showcase/feature.
…ce split bun publish ran at the private workspace root, so the v0.7.0 tag run failed with "attempted to publish a private package". Each package now publishes from its own directory, core first. svelte's file:../core dependency is rewritten to ^<core version> in the runner before publish. Versions already on npm are skipped. Asset paths point at packages/svelte/dist and packages/core/src/schema. The NPM_TOKEN repo secret still has to be set.
Renders inline after the h1, vertically centred, before the actions. Without it the title markup is unchanged. For the /foresight pages, whose status tag sat next to the title.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Seven small additions the paw-enterprise page lanes needed, plus a fix for the release workflow. No existing prop changed and every default renders the same as before.
The gaps
./ui). /activity, /growth and the agents list all fell back to a plain Input. Search always opened a "No results" listbox while you typed, and it had no way to set aria-label, autocomplete or spellcheck. It now takesmode="filter": arole=searchboxinput that never opens the dropdown and leaves arrows and Enter to the browser, so a form around it still submits.aria-label,autocompleteandspellcheckgo to the<input>in both modes. The default mode issuggestand it works as before. The manifest entry documentsmode, which is whystatic/manifest.jsonchanged.role. On /growth, the paste warning had to be a status and not an alert. The tone used to set the role and ignored the caller.role="status" | "alert"now overrides it../primitives)successandwarningvariants. This was left over from the feature-pages audit (G5). They have the same shape asdestructive, on the ripple tone tokens: a /10 tint, /20 in dark mode and on link hover, and the tone's readable-textcolour.:nth-of-typeCSS. An option can now carry aclass, and the component takes aleadingsnippet that gets each option, so the host can render a dot for the options it picks.overlayClass. /deepwork stacks its dialogs at z-[100] above the touch rail. Withclass="z-[100]"andoverlayClass="z-[100]"the content and scrim both move up, and twMerge drops the default z-50. There's no separatezIndexprop because the two classes already cover it.closeTitle. The shell's thread and artifact panels lost the close button's tooltip when they moved to PanelHeader. It defaults to no title.titleTrailing. On the /foresight pages a status tag sat beside the h1. The snippet renders inline after the title, vertically centred, before the actions. Without it the title markup is unchanged.All of these are on /showcase/feature.
Loose ends (separate commits)
bun publishran at the workspace root. core and svelte now publish from their own directories, core first. Before publishing, the runner rewrites svelte's@ripple-ui/core: file:../coreto^<core version>, since bun only rewritesworkspace:ranges. The package.json in git keepsfile:, which the workspace repos rely on. A version that is already on npm gets skipped, so re-running after a partial publish still reaches the release step. Asset paths now point atpackages/svelte/dist, and the schema sources in the zip come frompackages/core/src/schema. I didn't run a release. The runs before v0.7.0 failed with "missing authentication" because theNPM_TOKENsecret is empty, so that secret needs setting before anything will publish.static/manifest.jsonon main already says 0.7.0. The build takes the version fromsrc/lib/version.ts, andversion.test.tskeeps that in step with package.json. The manifest stopped importing package.json on purpose, because that import 500'dvite dev.Tests
The new tests were written first and failed before each change:
Search.test.ts(new),badge-tones.test.ts(new), plus additions toInlineAlert.test.ts,shell.test.ts,ui-contract.test.tsandPageHeader.test.ts. In packages/svelte,bun run check,bun run lintand the full vitest run (1411 tests) pass. I checked the workflow by loading it as YAML and running the svelte publish step's rewrite against a copy of package.json, with the publish itself stubbed out. I haven't looked at the showcase demos in a browser.