Repository navigation
Introduce resolved bugs and support for new dependencies for skip from upstream/main to sync/main - #553
Closed
Dhruv-Clockworks wants to merge 36 commits into
Closed
Introduce resolved bugs and support for new dependencies for skip from upstream/main to sync/main#553Dhruv-Clockworks wants to merge 36 commits into
Dhruv-Clockworks wants to merge 36 commits into
Conversation
Dhruv-Clockworks
commented
Oct 6, 2026
- Resolved merge conflicts from below pending branchs merge on upstream.
- button-style-protocol
- toggle-style-protocol
- list-modifiers
Fix static and dynamic sizing issue for custom font in SkipUI/Text/Fo…
automatic, button, and switch were accidentally typed as ButtonStyle instead of ToggleStyle.
…uration types Introduces PrimitiveButtonStyle protocol and its concrete implementations: DefaultButtonStyle, PlainButtonStyle, BorderlessButtonStyle, BorderedButtonStyle, BorderedProminentButtonStyle, and M3TextButtonStyle. Adds functional ButtonStyleConfiguration and PrimitiveButtonStyleConfiguration replacing the dead stubs in comments, and Button(configuration:) init so styles can delegate rendering via makeBody. Coexists with the existing ButtonStyle bridging struct unchanged.
Tracks the active button style chain in the environment. Each node holds the current style, its parent (the style it overrides), and the modifier that installed it. isBuiltin distinguishes built-in styles that render natively in Compose from custom styles that render via makeBody.
…p StackedButtonStyle Replaces the raw-value ButtonStyle struct with a ButtonStyle protocol matching SwiftUI's API. Updates ButtonStyleModifier to build the StackedButtonStyle chain and EnvironmentValues._buttonStyle to store it. Updates RenderButton to dispatch on the unwrapped style using type checks (is BorderedButtonStyle etc.), and updates shouldRenderListItem/RenderListItem to use the new isListItemStyle helper. Updates Navigation and Picker call sites.
Adds RenderCustomStyleButton which invokes makeBody on custom styles and composes the body with _buttonStyle set to the parent, enabling Button(configuration) delegation. Adds BridgedButtonStyle and BridgedPrimitiveButtonStyle for natively-compiled styles that cross the Skip bridge, with per-button @Environment syncing via ButtonStyleBridgedConfiguration. Adds buttonStyle(isPrimitive:environmentKeys:bridgedMakeBody:) for the bridge entry point.
…protocol Support ButtonStyle and PrimitiveButtonStyle protocols
Mirrors the ButtonStyle/PrimitiveButtonStyle architecture: adds a ToggleStyle protocol, ToggleStyleConfiguration, built-in DefaultToggleStyle/SwitchToggleStyle, and the StackedToggleStyle/ BridgedToggleStyle infrastructure needed to render custom styles.
Stores the StackedToggleStyle set by the toggleStyle(_:) modifier, matching the existing _buttonStyle entry.
The initializer was nested inside #if SKIP, but DefaultToggleStyle and SwitchToggleStyle call it from outside that guard, breaking the non-SKIP (Darwin) build with "no exact matches in call to initializer".
…protocol Implement ToggleStyle protocol and configuration
Replaces the stub with a real view (large icon, bold title, description, actions), plus .search and .search(text:).
safeAreaInset(edge:) for vertical and horizontal edges, and safeAreaPadding. Lists and lazy stacks scroll underneath the inset instead of being clipped by it.
Section(isExpanded:) (all four initializers), the lazy section header carrying its expansion binding, OutlineGroup, and DisclosureGroup without a binding. Section.swift also includes sectionIndexLabel.
- A real EditButton (the stub in Transferable.swift is removed). - Each navigation screen gets its own editMode. - SelectionContextMenu, contextMenu(forSelectionType:menu:primaryAction:) and selectionDisabled. - AdditionalViewModifiers.swift also contains headerProminence, which is fine to include here.
…, and edge effects scrollTransition, onScrollVisibilityChange, onScrollGeometryChange with ScrollGeometry, defaultScrollAnchor, scrollBounceBehavior, scrollIndicatorsFlash and scrollEdgeEffectStyle.
Adds ViewDimensions and alignmentGuide(.listRowSeparatorLeading / .listRowSeparatorTrailing). Other alignment guides still have no effect.
draggable, View.dropDestination(for:action:isTargeted:) and ForEach.dropDestination(for:action:) with an insertion line. This removes the conflicting dropDestination stub in DragDrop.swift and adds the remaining ForEach hunks.
textSelection (Compose SelectionContainer / DisableSelection) and section header fonts per list style and headerProminence.
…to List - ListStyle becomes a protocol with all six styles. - The row and section modifiers: insets, separator tint, section separators, section spacing, item tint, minimum row and header height. - Selection rendering, sidebar collapsing, section index, scroll indicator. - Row-level drop targets and search suggestion rows. - Every environment key the earlier commits rely on.
Adds bridged Section(…getExpanded:setExpanded:), sectionIndexLabel, an unbound DisclosureGroup, and an OutlineGroup whose nodes are passed as index paths ([Int]).
Adds a bridged List init that takes a selection as closures (a single tag or a Set of tags).
Bridges an init that takes label, description, and actions views.
Bridges the placement-aware searchable, searchSuggestions (both forms), searchCompletion, and searchScopes.
…odifiers - Bridges EditButton, and adds EditModeBinding so the edit-mode binding can cross the bridge. - Adds environment builtins for editMode, defaultMinListRowHeight/defaultMinListHeaderHeight, and headerProminence. - Bridges contextMenu(forSelectionType:), selectionDisabled, and headerProminence.
Bridges safeAreaInset on any edge and safeAreaPadding.
The bridged alignmentGuide passes the view's width and height to Swift
…h, and edge effects Bridges bounce, edge effect, indicator flash, geometry change, transition (as three precomputed phase effects), visibility, and default anchor.
Bridges draggable with an opaque payload, plus dropDestination for views and ForEach
Adds support for unavailable List modifiers to SKIP-LITE Apps
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.