Skip to content

feat: add SwiftUI Status, Notice and Loading - #13

Merged
lemarier merged 2 commits into
mainfrom
lemarier/swiftui-status-notice-loading
Sep 24, 2026
Merged

lemarier merged 2 commits into
mainfrom
lemarier/swiftui-status-notice-loading

Conversation

@lemarier

Copy link
Copy Markdown
Contributor

The iOS setup flow (origin89hq/apps#1) needs step states, controller refusals and a waiting state. React already has Status, Notice and Loading; this adds Origin89Status, Origin89Notice and Origin89Loading with the same behavior.

Origin89Status takes the five React tones. Each pairs its colour with a mark and a border (solid, 2 pt, dashed, dotted) so tones stay distinct without colour. Origin89Notice has info and alarm tones, a 3 pt accent edge and the brand's bevelled corners; an alarm posts a VoiceOver announcement when it appears or its message changes, while info notices wait to be read. Origin89Loading draws the React spinner ring with a signal arc and four pulse bars, and both stop under Reduce Motion.

The spinner needs signal, which @origin89/brand added in 0.4.0. React already used 0.4.0, but the native generator was pinned to 0.3.1, so the root dependency moves to 0.4.0 and the regenerated Swift and Compose palettes gain signal. No other palette value or font changed.

Validation: swift test passes 13 tests with no warnings, covering tone marks, borders and colours, which notices announce, the defaults, bevel geometry and clamping, and rendering each view in light and dark with empty and long text. The iOS 17 Simulator build and pnpm check pass. I checked light and dark renders of every component by eye. ./gradlew check did not run locally because there is no JDK here; CI runs it. Compose parity is tracked in #12.

After merge, release with just swift-release 0.4.0.

Copilot AI lite review requested due to automatic review settings September 24, 2026 13:57
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Warning

Review limit reached

Next included review available in 11 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: QUIET

Plan: Advanced

Run ID: 0cf11b51-7ec8-44b4-93aa-e7b72e7e301f

📥 Commits

Reviewing files that changed from the base of the PR and between f481cda and a425670.

📒 Files selected for processing (1)
  • README.md
📝 Walkthrough

Walkthrough

The brand package version changes to 0.4.0, and generated Compose and SwiftUI palettes add a signal color. The SwiftUI package adds status, notice, and loading views, plus an insettable beveled rectangle shape. Tests cover component behavior, shape geometry, and rendering. The README lists the new Apple components.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: 🟡 Moderate · up to f481c

Users following the Swift setup instructions may select a version without the advertised components. The loading indicator also remains static if Reduce Motion is turned off while it is visible. Correct the instructions and animation transition before merging.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 11 functions across 9 files. (3 skipped: 3… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely identifies the three SwiftUI components added by the pull request.
Description check ✅ Passed The description directly explains the new SwiftUI components, their behavior, dependency updates, validation, and release step.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 11 functions across 9 files. (3 skipped: 3 unsupported.)


Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Note

Quiet mode is enabled, so only the most important comments were posted inline. Other review comments are grouped below.

🟡 Other comments (1)
platforms/swiftui/Sources/Origin89UI/Loading.swift-39-42 (1)

39-42: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Start the loading animations when Reduce Motion is turned off.

If Origin89Loading appears while Reduce Motion is enabled, Line 40 skips both animations. If the user then disables Reduce Motion without leaving the view, onAppear does not run again. The spinner and bars remain static. Observe changes to reduceMotion and start the animations when it becomes false. (developer.apple.com)


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: QUIET

Plan: Advanced

Run ID: 384d4b4c-e589-4b63-b633-28e620d866a9

📥 Commits

Reviewing files that changed from the base of the PR and between 2620036 and f481cda.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (12)
  • README.md
  • brand-provenance.json
  • package.json
  • platforms/compose/ui/src/main/kotlin/com/origin89/ui/GeneratedTokens.kt
  • platforms/swiftui/Sources/Origin89UI/GeneratedTokens.swift
  • platforms/swiftui/Sources/Origin89UI/Loading.swift
  • platforms/swiftui/Sources/Origin89UI/Notice.swift
  • platforms/swiftui/Sources/Origin89UI/Status.swift
  • platforms/swiftui/Sources/Origin89UI/Theme.swift
  • platforms/swiftui/Tests/Origin89UITests/ComponentTests.swift
  • platforms/swiftui/Tests/Origin89UITests/ThemeTests.swift
  • scripts/generate-brand.mjs

Included review availability: Your plan provides up to 10 included reviews per hour; 3 remain after this review.

Comment thread README.md Outdated
@lemarier
lemarier merged commit 50e3188 into main Sep 24, 2026
4 checks passed
@lemarier
lemarier deleted the lemarier/swiftui-status-notice-loading branch September 24, 2026 14:34
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.

2 participants