Call parts: ControlButton, ParticipantTile, FloatingDock, IncomingCallCard, BottomSheet, Slider export - #147
Merged
Merged
Conversation
…11y lint; parity with the app dock)
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.
Adds the parts paw-enterprise needs to build its three call layouts (Glass, Focus, Classic). Every part is a new
./ui-only export, so the spec registry and the manifest don't change (still 189 widgets). No media and no LiveKit in ripple: the tile takes the host's<video>through a snippet.@ripple-ui/svelte/ui)ControlButton<button>, forwards every attributevariantpill / bar / classic,tonedefault / danger / accent,sizedefault / compact,pressed(aria-pressed),wide(hang-up),label(text beside the icon, bar only, hidden under 640px),iconsnippet,count/mention/badgeTestIdControlBarrole=grouplabel,variantpill / bar / classic,sizedefault / compactCountBadgecount,mention,max, any span attribute (keeps host test ids)ParticipantTilename,src,speaking,muted,skinglass / focus / classic,sizelg / md / sm / orb; snippetsvideo,avatar,badge,menuFloatingDocklabel,corner,boundswindow / parent,gap,onPositionChangeIncomingCallCardanimate-ping, motion-safe)title,subtitle,name,src,role(alert by default),halo; snippetsavatar,primary,secondaryBottomSheetstop(bindable, mirrored todata-state),onStopChange,label,handleLabel(stop),handleTestIdSliderSlider.Root)The primitives
Button(@ripple-ui/svelte/primitives) also gets asuccessvariant for Accept and Join.Colours are ripple tokens only. Accent text on glass reads
--ripple-accent-on-glassif the host defines it and falls back to--ripple-accent. Sizes live in scoped CSS, so a Tailwindw-*class won't resize a ControlButton. Usewidefor that.Tests
widgets/call/call.test.tshas 26 behaviour tests, committed red first. The./uicontract test now mounts every new export standalone and listsSlideras a namespace. The full svelte suite passes (1471 tests).bun run check: 0 errors, 0 warnings.bun run lint: clean apart from the usual test-file assertion warnings. Rootbun run buildpasses and the manifest is unchanged./showcase/callshows every part in all three layouts. I clicked through it in a browser: layout switch, speaker ring per skin, bar labels, wide hang-up, sheet stops, halo animation.Not verified