Skip to content

feat: add opt-in extensions from a terminal desktop app - #30

Merged
wiifree merged 1 commit into
mainfrom
feat/wireterm-extensions
Oct 29, 2026
Merged

wiifree merged 1 commit into
mainfrom
feat/wireterm-extensions

Conversation

@wiifree

@wiifree wiifree commented Oct 29, 2026

Copy link
Copy Markdown
Member

Extensions found while using WireLayer in a desktop terminal app (Tauri, Vue). All opt-in except the positioner fix: without the new props, defaults, DOM, ARIA and keyboard stay as they were.

  • Fix: popups with a positioner stay above dialogs – the theme gives Ark's positioners z-index: var(--z-index); Vue patched Ark's inline z-index away on every render
  • Values that are never empty: RadioGroup and SegmentedControl with required, NativeSelect without placeholder, NumberInput emptyFallback ('min' | 'previous'), Select emptyValue (e.g. "") – narrower v-model / onValueChange types
  • Focus: data-autoselect in Dialog, focusFirst() (DialogContent in Vue, a helper for React), Wizard focusOnStepChange
  • Wizard and Stepper: finishLabel; validate may return a text that is shown as the step's error
  • Progress status 'neutral', Avatar initials, Card size 'sm', Code in the main package (InlineCode's look without shiki)
  • resolveTokens(), watchTokens() and useResolvedTokens() for canvas libraries
  • ContextMenu before-open: second argument { source, focused }
  • Tabs: TabsTrigger controls, null value with the first tab reachable
  • Vite plugin: imports added while vite dev runs reach Tailwind (a file in Vite's cache folder)
  • rounded-card and rounded-panel count as radii for tailwind-merge
  • Docs: migration guide, implementation notes, regenerated MCP data

What and why

Checklist

  • Vue and React with an identical API and identical DOM (parity case in packages/parity/src/cases.ts)
  • Accessibility according to WCAG 2.2 AA – keyboard, focus, names, states (rules in docs/accessibility.md, workflow in CONTRIBUTING.md)
  • Stories in both Storybooks, texts in English
  • Tests: pnpm lint, pnpm typecheck, pnpm test (targeted E2E specs for interaction)
  • AI docs updated (pnpm --filter @wirecore/wirelayer-mcp collect), changeset added (pnpm changeset)
  • New dependencies: license on the allowlist (pnpm licenses:check), optional as a peerDependency
  • All commits with Signed-off-by (git commit -s, DCO)

Extensions found while using WireLayer in a desktop terminal app (Tauri,
Vue). All opt-in except the positioner fix: without the new props,
defaults, DOM, ARIA and keyboard stay as they were.

- Fix: popups with a positioner stay above dialogs – the theme gives
  Ark's positioners z-index: var(--z-index); Vue patched Ark's inline
  z-index away on every render
- Values that are never empty: RadioGroup and SegmentedControl with
  required, NativeSelect without placeholder, NumberInput emptyFallback
  ('min' | 'previous'), Select emptyValue (e.g. "") – narrower v-model /
  onValueChange types
- Focus: data-autoselect in Dialog, focusFirst() (DialogContent in Vue,
  a helper for React), Wizard focusOnStepChange
- Wizard and Stepper: finishLabel; validate may return a text that is
  shown as the step's error
- Progress status 'neutral', Avatar initials, Card size 'sm', Code in
  the main package (InlineCode's look without shiki)
- resolveTokens(), watchTokens() and useResolvedTokens() for canvas
  libraries
- ContextMenu before-open: second argument { source, focused }
- Tabs: TabsTrigger controls, null value with the first tab reachable
- Vite plugin: imports added while vite dev runs reach Tailwind (a file
  in Vite's cache folder)
- rounded-card and rounded-panel count as radii for tailwind-merge
- Docs: migration guide, implementation notes, regenerated MCP data

Signed-off-by: Florian Laabs <florian.laabs@wirecore.net>
@wiifree
wiifree merged commit 9fe24d2 into main Oct 29, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant