Repository navigation
Releases
Releases · tonycodes/mortar
v0.27.0
Added
npm run checkvalidates manifestplatforms(#95). Rule M011 rejects unknown platform keys and non-Mortar…type names, and, whennative/is present, a declared SwiftUI or Compose type that the native sources do not define.search_componentsresults includeplatforms.- Repository automation, slice 1 of #62. Dependabot for npm and GitHub Actions (weekly, grouped; no auto-merge), issue forms for bug / component / theming / docs, CodeQL and dependency-review workflows, a weekly health check that opens an issue on failure, and proposed labels in
.github/LABELS.md. Still open for a later slice: dependency auto-merge, release-please / Changesets, Claude Code Action, Scorecard, and the maintainer policy decisions listed on #62.
v0.26.0
Added
- Contained overlay portals for embedded widgets (#101).
ThemeProvider scope="container"mounts an overlay host inside its wrapper. Modal and SlideOver acceptportal="contained"to render into that host with local backdrop bounds, focus trapping, Escape handling and the container's theme, without covering unrelated host-page controls. The defaultportal="document"is unchanged. Menus and listboxes still use the existing body-level theme portal so they are not clipped. mortar auditflags ancestor CSS that restyles Mortar controls (ancestor-override, #107). An obvious local selector such as.toolbar buttonthat sets background, border, typography or radius, and reaches a Mortar control under a matching host ancestor in the JSX, is an error. Layout-only rules (margin, display, flex, gap, …) and the same selector over a native control (with Mortar used elsewhere) are not flagged. Nested or ambiguous selectors stay a manual review.
v0.25.0
Added
mortar auditflags mis-migrated Input adornments (input-static-action,input-absolute-adornment, #104). Static text inInputactionshould beprefix/suffix; an absolutely positioned decorative sibling next to a labeledInputshould beleadingIcon/trailingIcon. The Input contract and DESIGN.md document thatactionis for an attached control, not generic end content. A browser fixture checks that icons and suffixes align with the text box, not the label.
v0.24.0
Added
mortar auditflags block elements in phrasing-only slots (invalid-phrasing, #102).BannerchildrenandAuthLayoutdescriptionare rendered inside a<p>, so a nested<div>,<p>, heading or similar is invalid HTML. Contracts list these asphrasingSlotsand say they are phrasing-only; the audit reports obvious block JSX in them. Keep announcements and auth descriptions as text, links or emphasis; useSectionfor full marketing blocks.
v0.23.0
Added
mortar auditlegacy-packagerule (#65). Flags imports andpackage.jsondependencies of the retired private-registry package (see Migration). The message says to install and import@tonycodes-ui/mortar. A leftovernode_modulestree for the old name does not count as installing the public package.
v0.22.3
Fixed
- Switch, Checkbox, Input and PasswordInput reject React children (#98). Their types no longer inherit
childrenfrom the native input attributes (the accessible name islabel), and a leftover child is dropped so it cannot be forwarded onto a void<input>and crash React.mortar auditreports JSX body children on components with no children slot asunknown-prop.
v0.22.2
Added
- Package metadata for npmjs presentation (#63):
keywords,engines.node >= 22(matching the CLI and CI), and README badges for npm version, provenance, CI and the MIT licence. Repository and bugs URLs were already set. Remaining #63 work (Pages DNS cut-over, retiring the old registry, consumer migrations) is maintainer-side.
Fixed
mortar auditno longer misreads apostrophes in JSX slot text as props (#100). An expression such asfooter={<>Don't have an account?</>}was treated as if the apostrophe opened a JavaScript string, so the scanner swallowed the rest of the tag and reported falseunknown-propfindings (export,default,App). Brace skipping now uses the same quote-start rule as string blanking: an apostrophe in JSX text is not a string delimiter.
v0.22.1
v0.22.0
Added
- Mortar for Jetpack Compose is published to GitHub Packages (#95), as
codes.tony:mortarat each release's version, fromhttps://maven.pkg.github.com/tonycodes/mortar. A new workflow publishes after each release of main, at its tag, with the run's ownGITHUB_TOKEN. See Native apps.
v0.21.0
Added
- Native equivalents in manifests and agent tools (#95). The 15 components with SwiftUI and Compose versions declare them as
platformsin their manifests and the catalogue.get_componentshows them undernativewith their imports; a build packet for an iOS, iPadOS or Android brief addsget_guide nativeand anativesection listing them; the agent skill and MCP instructions point native apps at the libraries.