Skip to content

powered-by footer: link to smooth-operator GitHub + hide-branding attribute#23

Merged
brentrager merged 1 commit into
mainfrom
poweredby-link-toggle
Jul 3, 2026
Merged

powered-by footer: link to smooth-operator GitHub + hide-branding attribute#23
brentrager merged 1 commit into
mainfrom
poweredby-link-toggle

Conversation

@brentrager

Copy link
Copy Markdown
Contributor

Problem

The "powered by smooth-operator" branding (the full-page header tag and the composer footer) was plain text — not a link — and there was no way to hide it.

Solution

  • Link it. Both the header .powered tag and the footer branding now link to https://github.com/SmooAI/smooth-operator (verified via gh repo view), target="_blank" rel="noopener noreferrer", styled to inherit the tag's subtle color (no default blue/underline; underline on hover).
  • Toggle it off. New boolean element attribute hide-branding (config key hideBranding, default false → shown), following the existing start-open pattern (added to OBSERVED, read via hasAttribute, threaded through resolveConfig). Works declaratively and via configure() / mountChatWidget(). Hides branding in both render paths.
  • The footer's "Restore my chats" affordance is preserved independently of the toggle; the footer is dropped entirely only when neither branding nor restore is present.
  • Documented hide-branding in the README attributes table.

Verification

pnpm check (typecheck + test + build) all green. Added 5 tests in src/element.test.ts covering the footer link (href/target/rel), the header tag link, and the hide-branding toggle across attribute + configure() paths — 113 tests pass.

Attribute: hide-branding. Config key: hideBranding. GitHub URL: https://github.com/SmooAI/smooth-operator

🤖 Generated with Claude Code

…ribute

The full-page header tag and composer footer said 'powered by
smooth-operator' as plain text; make it a link to the public
smooth-operator repo (opens in a new tab). Add a 'hide-branding'
element attribute (hideBranding config key) to hide the branding in
both render paths — default shown. The 'Restore my chats' footer
affordance is kept independent of the toggle.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jul 3, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 56d4eec

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@smooai/chat-widget Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@brentrager brentrager merged commit 4b55dfe into main Jul 3, 2026
1 check 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