This type is meant to be used in conjunction with FocusState; you will usually not create
+it directly. For information about adding focus support to a custom element, see FocusBinding.
+
+
Triggers allow imperative actions to be invoked on backing views, by creating a trigger in a
+declarative model before the view is realized, late-binding the actions to a backing view after
+that view has been realized, and then invoking the action on the trigger later in response to
+some other event.
A base environment used when laying out and rendering the element tree.
+
+
Some keys will be overridden with the traits from the view itself. Eg, windowSize, safeAreaInsets, etc.
+
+
If this blueprint view is within another blueprint view, the environment of the parent view
+will be inherited by this view if automaticallyInheritsEnvironmentFromContainingBlueprintViews
+is enabled. In the case of matching keys in both the inherited environment and the provided
+environment, the values from this environment will take priority over the inherited environment.
If true, then Blueprint will automatically inherit the Environment from the nearest
+parent BlueprintView in the view hierarchy.
+
+
If false, then only the values from environment will be used to
+seed the environment passed to the element hierarchy.
+
+
This property is recursive – if the nearest parent BlueprintView also sets this property to
+true, then you will inherit the Environment from that view’s parent BlueprintView, and so on.
An optional explicit layout mode for this view. If nil, this view will inherit the layout
+mode of its nearest ancestor or use default if it has no ancestor.
Measures the size needed to display the view within the given constraining size,
+by measuring the current element of the BlueprintView.
+
+
If you would like to not constrain the measurement in a given axis,
+pass 0.0 or .greatestFiniteMagnitude for that axis, eg:
+
// Measures with a width of 100, and no height constraint.
+blueprintView.sizeThatFits(CGSize(width:100.0,height:0.0))
+
+// Measures with a height of 100, and no width constraint.
+blueprintView.sizeThatFits(CGSize(width:0.0,height:100.0))
+
+// Measures unconstrained in both axes.
+blueprintView.sizeThatFits(.zero)
+
This type is meant to be used in conjunction with FocusState; you will usually not create
+it directly. For information about adding focus support to a custom element, see FocusBinding.
+
+
Triggers allow imperative actions to be invoked on backing views, by creating a trigger in a
+declarative model before the view is realized, late-binding the actions to a backing view after
+that view has been realized, and then invoking the action on the trigger later in response to
+some other event.
Blocks all accessibility on the element, so that it is
+is no longer an accessibility element, and its children are
+hidden from the accessibility system.
Acts as an accessibility container for any accessible subviews.
+
+
Accessible subviews are found using the following algorithm:
+
+
Recurse subviews until a view is found that either
+
+
+
hasisAccessibilityElement set to true or
+
+
+
If an accessibility element is found, we add it to the accessibilityElements
+and terminate the search down that branch. If a container is found,
+the elements returned from the container are added to the accessibilityElements
+and the search down that branch is also terminated.
Wraps an element tree with a modified environment.
+
+
By specifying environmental values with this element, all child elements nested
+will automatically inherit those values automatically. Values can be changed
+anywhere in a sub-tree by inserting another AdaptedEnvironment element.
Aligns a content element within itself. The vertical and horizontal alignment may be set independently.
+
+
When using alignment mode .fill, the content is scaled to the width or height of the Aligned element.
+
+
For other modes, the size of the content element is determined by calling measure(in:)
+on the content element – even if that size is larger than the wrapping element.
An element that wraps a child element in a button that mimics a UIButton with the .system style. That is, when
+highlighted (or disabled), it fades its contents to partial alpha.
The size of the content element is determined by calling measure(in:) on
+the content element – even if that size is larger than the wrapping Centered
+element.
Constrains the measured size of the contained element in the ranges specified by the width and height properties.
+
+
There are several constraint types available for each axis. See ConstrainedSize.Constraint for a full list and in-depth
+descriptions of each.
+
Notes
+
+
An important note is that the constraints of ConstrainedSize are authoritative during measurement. For example,
+if your ConstrainedSize specifies .atLeast(300) for width, and the ConstrainedSize is asked to measure within
+a SizeConstraint that is at most 100 points wide, the returned measurement will still be 300 points. The same goes for the
+height of the ConstrainedSize.
An element that sizes its children equally, stacking them in the primary axis according to
+the specified direction and spacing them according to the specified spacing. In the
+secondary axis, children are justified to fill the space of the largest child.
+
+
Note
+ A stack measures itself by determining its largest child in each axis, and
+ in the case of the primary axis, multiplying by children.count (accounting
+ for spacing as necessary).
+
+
By providing child elements that will be displayed recursively within
+the local coordinate space.
+
+
+
+
+
A custom element might look something like this:
+
structMyElement:Element{
+
+ varbackgroundColor:UIColor=.red
+
+ // Returns a single child element.
+ varcontent:ElementContent{
+ returnElementContent(child:Label(text:"😂"))
+ }
+
+ // Providing a view description means that this element will be
+ // backed by a UIView instance when displayed in a `BlueprintView`.
+ funcbackingViewDescription(withcontext:ViewDescriptionContext)->ViewDescription?{
+ returnUIView.describe{configin
+ config.bind(backgroundColor,to:\.backgroundColor)
+ }
+ }
+
+}
+
Custom elements commonly use another element to actually display content. For example, a profile element might
+display an image and a few labels inside a Column element. The ProxyElement protocol is provided to make that
+task easier.
+
+
Conforming types only need to implement elementRepresentation in order to generate an element that will be
+displayed.
The transition used when layout attributes change for a view during an
+update cycle.
+
+
‘Inherited’ transitions: the ‘inherited’ transition is determined by searching up the tree (not literally, but
+this is the resulting behavior). The nearest ancestor that defines an animation will be used, following this
+logic:
+
+
+
Ancestors with a layout transition of none will result in no inherited animation for their descendents.
+
Ancestors in the tree with a layout transition of inherited will be skipped, and the search will continue
+up the tree.
+
Any ancestors in the tree with a layout transition of inheritedWithFallback will be used if they do not
+themselves inherit a layout transition from one of their ancestors.
+
Ancestors with a layout transition of specific will always be used for their descendents inherited
+animation.
+
If no ancestor is found that specifies a layout transition, but the containing BlueprintView has the element
+property assigned from within a UIKit animation block, that animation will be used as the inherited animation.
A SwiftUI view which wraps a Blueprint element, which can be used to preview Blueprint elements
+via Xcode’s preview functionality (enable via the Editor > Canvas menu).
+
+
You can leverage ElementPreview by adding something like this to the bottom of the file which contains
+your Blueprint element, then as you edit and work on your element, the live preview will update to show the
+current state of your element:
+
+structMyElement:Element{
+ ...
+}
+
+// Add this at the bottom of your element's source file.
+
+#if DEBUG && canImport(SwiftUI) && !arch(i386) && !arch(arm)
+
+importSwiftUI
+
+@available(iOS13.0,*)
+structMyElement_Preview:PreviewProvider{
+ staticvarpreviews:someView{
+ ElementPreview{
+ MyElement()
+ }
+ }
+}
+
+#endif
+
+
+
Uhhh
+
+
You’re probably asking…
+Why the !arch(i386) check above? Turns out, a compiler bug!
+SwiftUI is only available on 64 bit devices, but the canImport check erroneously
+finds it when building to target iOS 10 devices. Until we drop iOS 10, this part of the check is also required.
+
Details
+
+
It’s important that you keep the PreviewProvider in the same file as the element that you are editing.
+
+
Why? Xcode uses a new feature called “Dynamic Replacement” to re-compile the source file you are editing,
+and inject it back into the running app which drives the preview. This only works on the level of a single
+file – if your preview and element live in separate files, Xcode needs to recompile your entire module
+which will slow down preview updates greatly.
You must be running Xcode 11 and Catalina to take advantage of live previews.
+They do not work on Mojave. Your selected simulator must also be an iOS 13 device.
Controls the layout system that Blueprint uses to lay out elements.
+
+
Blueprint supports multiple layout systems. Each is expected to produce the same result, but
+some may have different performance profiles or special requirements.
+
+
You can change the layout system used by setting the layoutMode property, but
+generally you should use the default option.
+
+
Changing the default will cause all instances of BlueprintView to be invalidated, and re-
+render their contents.
Logging configuration that will not record measurement data for all Elements.
+This provides a reasonable balance between data collection and performance impact.
+This is the default logging configuration.
Controls the layout system that Blueprint uses to lay out elements.
+
+
Blueprint supports multiple layout systems. Each is expected to produce the same result, but
+some may have different performance profiles or special requirements.
+
+
You can change the layout system used by setting the layoutMode property, but
+generally you should use the default option.
+
+
Changing the default will cause all instances of BlueprintView to be invalidated, and re-
+render their contents.
The transition used when layout attributes change for a view during an
+update cycle.
+
+
‘Inherited’ transitions: the ‘inherited’ transition is determined by searching up the tree (not literally, but
+this is the resulting behavior). The nearest ancestor that defines an animation will be used, following this
+logic:
+
+
+
Ancestors with a layout transition of none will result in no inherited animation for their descendents.
+
Ancestors in the tree with a layout transition of inherited will be skipped, and the search will continue
+up the tree.
+
Any ancestors in the tree with a layout transition of inheritedWithFallback will be used if they do not
+themselves inherit a layout transition from one of their ancestors.
+
Ancestors with a layout transition of specific will always be used for their descendents inherited
+animation.
+
If no ancestor is found that specifies a layout transition, but the containing BlueprintView has the element
+property assigned from within a UIKit animation block, that animation will be used as the inherited animation.
Environment is a container for values to be passed down an element tree.
+
+
Environment values are not resolved until the tree is being rendered, so they do not need to be
+explicitly passed to elements at the time they are created.
+
+
Environment key-value pairs are strongly typed: keys are types conforming to the
+EnvironmentKey protocol, and each key’s value is the type of that key’s
+EnvironmentKey.Value associated value. Keys must provide a default value.
+
Example
+
+
To set an environment value, so that it will cascade to child elements, use
+AdaptedEnvironment. Here, every element in childElement will have access to someValue
+via the key MyEnvironmentKey.
To read an environment value, use EnvironmentReader. If this element were part of the child
+element in the previous example, myValue would be set to someValue. If the key had not
+been set in an ancestor element, the value would be MyEnvironmentKey.defaultValue.
Rounds this value to the specified scale, where the scale is the number of rounding stops per integer.
+
+
A rounding scale of 1.0 is standard integer rounding.
+A rounding scale of 2.0 rounds to halves (0, 0.5, 1.0, 1.5, 2.0, 2.5., …).
+A rounding scale of 3.0 rounds to thirds (0, 1/3, 2/3, 1.0, 4/3, 5/3, 2.0, …).
Returns this value rounded to the specified scale, where the scale is the number of rounding stops per integer.
+
+
A rounding scale of 1.0 is standard integer rounding.
+A rounding scale of 2.0 rounds to halves (0, 0.5, 1.0, 1.5, 2.0, 2.5., …).
+A rounding scale of 3.0 rounds to thirds (0, 1/3, 2/3, 1.0, 4/3, 5/3, 2.0, …).
Define AttributedText keys using this protocol. Keys must have an attribute name
+and an associated type for the attribute.
+
+
After defining a key, enable dynamic member access to it by extending TextAttributeContainer
+with a property for getting and setting setting the value. This property should generally be optional,
+since the text may not have that property defined.
An element type which makes it easier to wrap an existing UIView instance that
+provides its own sizing via sizeThatFits. An instance of the view is used for
+sizing and measurement, so that you do not need to re-implement your own measurement.
+
Note
+
+
The sizing and measurement prototype view is kept alive for the lifetime of the containing application.
+Do not pass anything to the initializer of this type that you expect to be quickly released.
+
Example
+
+
If you were implementing a very basic Switch element, your implementation would look something
+like this:
Types conforming to AlignmentID have a corresponding alignment guide value,
+typically declared as a static constant property of HorizontalAlignment or
+VerticalAlignment.
Defines a way for anElement to be implicitly converted into the conforming type (the child of a container).
+In practice, this allows us to pass an Element directly into the result builder without manually converting to Child (i.e. Converting Element -> StackLayout.Child.
A type that defines the geometry of a collection of elements.
+
+
You traditionally arrange views in your app’s user interface using built-in layout containers
+like Row and Column. If you need more complex layout behavior, you can define a custom
+layout container by creating a type that conforms to the Layout protocol and implementing
+its required methods:
You can define a basic layout type with only these two methods (see note below):
+
structBasicLayout:Layout{
+ funcsizeThatFits(
+ proposal:SizeConstraint,
+ subelements:Subelements,
+ cache:inout()
+ )->CGSize{
+ // Calculate and return the size of the layout container.
+ }
+
+ funcplaceSubelements(
+ insize:CGSize,
+ subelements:Subelements,
+ cache:inout()
+ ){
+ // Tell each subelement where to appear.
+ }
+}
+
+
+
Add your layout to an element by passing it to the ElementContent initializer
+init(layout:configure:). If your layout has parameters that come from the
+element, pass them at initialization time. Use the configure block to add your element’s
+children to the content.
If your layout is specialized for laying out a single subelement, you can use the
+SingleChildLayout protocol instead. It has similar methods, but is strongly typed for a
+single subelement instead of a collection.
+
+
Note
+ During the transition from Blueprint’s legacy layout system to Caffeinated Layout, the
+Layout protocol is composed of two sets of layout methods: LegacyLayout and
+CaffeinatedLayout. While this documentation focuses on the newer layout API, you must
+currently implement both. Fortunately, the methods are similar, and you may be able to reuse
+logic.
+
+
+
Interact with subelements through their proxies
+
+
To perform layout, you need information about all of your container’s subelements, which are the
+child elements that your container arranges. While your layout can’t interact directly with its
+subelements, it can access a set of subelement proxies through the
+Subelements collection that each protocol method receives as an input
+parameter. That type is an alias for the LayoutSubelements collection type, which in turn
+contains LayoutSubelement instances that are the subelement proxies.
+
+
You can get information about each subelement from its proxy, like its dimensions and traits.
+This enables you to measure subelements before you commit to placing them. You also assign a
+position to each subelement by calling its proxy’s place(at:anchor:size:)
+method. Call the method on each subelement from within your implementation of the layout’s
+placeSubelements(in:subelements:environment:cache:) method.
+
Access layout traits
+
+
Subelements may have traits that are specific to their container’s layout. The traits are of
+the Layout protocol’s associated type Traits, and each subelement can have
+a distinct Traits value assigned. You can set this in the configure block of
+init(layout:configure:), when you call
+add(traits:key:element:). If you do not specify a Traits type for
+your layout, it defaults to the void type, ().
+
+
Containers can choose to condition their behavior according to the traits of their subelements.
+For example, the Row and Column types allocate space for their subelements based in part
+on the grow and shrink priorities that you set on each child. Your layout container accesses the
+traits for a subelement by calling traits(forLayoutType:) on the
+LayoutSubelement proxy.
+
+
Note
+ The Layout API, and its documentation, are modeled after SwiftUI’s
+Layout, with major differences
+noted.
+
+
Types conforming to AlignmentID have a corresponding alignment guide value,
+typically declared as a static constant property of HorizontalAlignment or
+VerticalAlignment.
Define AttributedText keys using this protocol. Keys must have an attribute name
+and an associated type for the attribute.
+
+
After defining a key, enable dynamic member access to it by extending TextAttributeContainer
+with a property for getting and setting setting the value. This property should generally be optional,
+since the text may not have that property defined.
Cached values associated with the layout instance.
+
+
If you create a cache for your custom layout, you can use a type alias to define this type
+as your data storage type. Alternatively, you can refer to the data storage type directly in
+all the places where you work with the cache.
Returns the size of the composite element, given a proposed size constraint and the
+container’s subelements.
+
+
Implement this method to tell your custom layout container’s parent how much space the
+container needs for a set of subelements, given a size constraint. The parent might call
+this method more than once during a layout pass with different proposed sizes to test the
+flexibility of the container.
+
+
In Blueprint, parents ultimately choose the size of their children, so the actual size that
+this container is laid out in may not be a size that was returned from this method.
+
Sizing Rules
+
+
For performance reasons, the layout engine may deduce the measurement of your container for
+some constraint values without explicitly calling
+sizeThatFits(proposal:subelements:environment:cache:). To ensure that the deduced value
+is correct, your layout must follow some ground rules:
+
+
+
Given one fixed constraint axis, the element’s growth along the other axis should be
+monotonic. That is, an element can grow when given a larger constraint, or shrink
+when given a smaller constraint, but it should never shrink when given a larger
+constraint. When growing on one axis, it is OK to shrink along the other axis, such as a
+block of text that re-flows as the width changes.
+
For a constraint axis value a, if an element has a length b that is less than a on
+that axis, then the element must return b for all constraint values between a and
+b. In other words, growth must follow a stair-step pattern; elements that grow
+continuously by calculating a fixed inset of the constraint or a percentage value of the
+constraint are forbidden. For example, if an element returns 10 for a constraint of
+20, then the element must return 10 for all values in the range [10, 20].
+
If your element has no intrinsic size along an axis, you can represent that in a couple
+ways:
+
+
+
You can return a fixed value representing the minimum size for your element. In this
+approach, a containing element is usually responsible for stretching your element to
+fill desired space.
+
You can return a size that entirely fills the constraint proposed. In this approach,
+you must return .infinity when the constraint is
+unconstrained. Otherwise, your behavior would be in violation
+of rule #1.
+
+
+
+
If an element does not adhere to these rules, it may lay out in unexpected and unpredictable
+ways.
A size constraint for the container. The container’s parent element that calls
+this method might call the method more than once with different constraints to learn
+more about the container’s flexibility before choosing a size for placement.
+
+
+
+
+
+
+ subelements
+
+
+
+
+
A collection of proxies that represent the elements that the container
+arranges. You can use the proxies in the collection to get information about the
+subelements as you determine how much space the container needs to display them.
+
+
+
+
+
+
+ environment
+
+
+
+
+
The environment of the container. You can use properties from the
+environment when calculating the size of this container, as long as you adhere to the
+sizing rules.
+
+
+
+
+
+
+ cache
+
+
+
+
+
Optional storage for calculated data that you can share among the methods of your
+custom layout container. See makeCache(subelements:environment:) for details.
+
+
+
+
+
+
+
+
Return Value
+
A size that indicates how much space the container needs to arrange its
+subelements.
Assigns positions to each of the layout’s subelements.
+
+
Blueprint calls your implementation of this method to tell your custom layout container to
+place its subelements. From this method, call the
+place(at:anchor:size:) method on each item in subelements to tell the
+subelements where to appear in the user interface.
+
+
You can also update the attributes property of each
+subelement to set properties like opacity and transforms on each subelement.
+
+
Be sure that you use computations during placement that are consistent with those in your
+implementation of other protocol methods for a given set of inputs. For example, if you add
+spacing during placement, make sure your implementation of
+sizeThatFits(proposal:subelements:environment:cache:) accounts for the extra space.
The region that the container’s parent allocates to the container. Place all the
+container’s subelements within the region. The size of this region may not match any
+size that was returned from a call to
+sizeThatFits(proposal:subelements:environment:cache:).
+
+
+
+
+
+
+ subelements
+
+
+
+
+
A collection of proxies that represent the elements that the container
+arranges. Use the proxies in the collection to get information about the subelements and
+to tell the subelements where to appear.
+
+
+
+
+
+
+ environment
+
+
+
+
+
The environment of this container. You can use properties from the
+environment to vary the placement of subelements.
+
+
+
+
+
+
+ cache
+
+
+
+
+
Optional storage for calculated data that you can share among the methods of your
+custom layout container. See makeCache(subelements:environment:) for details.
Creates and initializes a cache for a layout instance.
+
+
You can optionally use a cache to preserve calculated values across calls to a layout
+container’s methods. Many layout types don’t need a cache, because Blueprint automatically
+caches the results of calls into layout methods, such as
+sizeThatFits(_:). Rely on the protocol’s default implementation of this
+method if you don’t need a cache.
Only implement a cache if profiling shows that it improves performance.
+
Initializing a cache
+
+
Implement the makeCache(subelements:) method to create a cache. You can add computed
+values to the cache right away, using information from the subelements input parameter, or
+you can do that later. The methods of the Layout protocol that can access the cache take
+the cache as an in-out parameter, which enables you to modify the cache anywhere that you
+can read it.
+
+
You can use any storage type that makes sense for your layout algorithm, but be sure that
+you only store data that you derive from the layout and its subelements (lazily, if
+possible). For this to work correctly, Blueprint needs to be able to call this method to
+recreate the cache without changing the layout result.
+
+
When you return a cache from this method, you implicitly define a type for your cache. Be
+sure to either make the type of the cache parameters on your other Layout protocol
+methods match, or use a type alias to define the Cache associated type.
A collection of proxy instances that represent the subelements that
+the container arranges. You can use the proxies in the collection to get information about
+the subelements as you calculate values to store in the cache.
+
+
+
+
+
+
+ environment
+
+
+
+
+
The environment of this container.
+
+
+
+
+
+
+
+
Return Value
+
Storage for calculated data that you share among the methods of your custom
+layout container.
Cached values associated with the layout instance.
+
+
If you create a cache for your custom layout, you can use a type alias to define this type
+as your data storage type. Alternatively, you can refer to the data storage type directly in
+all the places where you work with the cache.
Returns the size of the element, given a proposed size constraint and the container’s
+subelement.
+
+
Implement this method to tell your custom layout container’s parent how much space the
+container needs for a subelement, given a size constraint. The parent might call this method
+more than once during a layout pass with different proposed sizes to test the flexibility of
+the container.
+
+
In Blueprint, parents ultimately choose the size of their children, so the actual size that
+this container is laid out in may not be a size that was returned from this method.
A size constraint for the container. The container’s parent element that calls
+this method might call the method more than once with different constraints to learn
+more about the container’s flexibility before choosing a size for placement.
+
+
+
+
+
+
+ subelement
+
+
+
+
+
A proxy that represents the element that the container arranges. You can use
+the proxy to get information about the subelement as you determine how much space the
+container needs to display it.
+
+
+
+
+
+
+ environment
+
+
+
+
+
The environment of the container. You can use properties from the
+environment when calculating the size of this container, as long as you adhere to the
+sizing rules.
+
+
+
+
+
+
+ cache
+
+
+
+
+
Optional storage for calculated data that you can share among the methods of your
+custom layout container. See makeCache(subelement:environment:) for details.
+
+
+
+
+
+
+
+
Return Value
+
A size that indicates how much space the container needs to arrange its
+subelement.
Blueprint calls your implementation of this method to tell your custom layout container to
+place its subelement. From this method, call the place(at:anchor:size:)
+method on subelement to tell the subelement where to appear in the user interface.
+
+
You can also update the attributes property to set
+properties like opacity and transforms on the subelement.
+
+
Be sure that you use computations during placement that are consistent with those in your
+implementation of other protocol methods for a given set of inputs. For example, if you add
+spacing during placement, make sure your implementation of
+sizeThatFits(proposal:subelement:environment:cache:) accounts for the extra space.
The region that the container’s parent allocates to the container. Place the
+container’s subelement within the region. The size of this region may not match any size
+that was returned from a call to
+sizeThatFits(proposal:subelement:environment:cache:).
+
+
+
+
+
+
+ subelement
+
+
+
+
+
A proxy that represents the element that the container arranges. Use the
+proxy to get information about the subelement and to tell the subelement where to
+appear.
+
+
+
+
+
+
+ environment
+
+
+
+
+
The environment of this container. You can use properties from the
+environment to vary the placement of the subelement.
+
+
+
+
+
+
+ cache
+
+
+
+
+
Optional storage for calculated data that you can share among the methods of your
+custom layout container. See makeCache(subelement:environment:) for details.
Creates and initializes a cache for a layout instance.
+
+
You can optionally use a cache to preserve calculated values across calls to a layout
+container’s methods. Many layout types don’t need a cache, because Blueprint automatically
+caches the results of calls into layout methods, such as
+sizeThatFits(_:). Rely on the protocol’s default implementation of this
+method if you don’t need a cache.
A proxy that represent the subelement that the container arranges.
+You can use the proxy to get information about the subelement as you calculate values to
+store in the cache.
+
+
+
+
+
+
+ environment
+
+
+
+
+
The environment of this container.
+
+
+
+
+
+
+
+
Return Value
+
Storage for calculated data that you share among the methods of your custom
+layout container.
By providing child elements that will be displayed recursively within
+the local coordinate space.
+
+
+
+
+
A custom element might look something like this:
+
structMyElement:Element{
+
+ varbackgroundColor:UIColor=.red
+
+ // Returns a single child element.
+ varcontent:ElementContent{
+ returnElementContent(child:Label(text:"😂"))
+ }
+
+ // Providing a view description means that this element will be
+ // backed by a UIView instance when displayed in a `BlueprintView`.
+ funcbackingViewDescription(withcontext:ViewDescriptionContext)->ViewDescription?{
+ returnUIView.describe{configin
+ config.bind(backgroundColor,to:\.backgroundColor)
+ }
+ }
+
+}
+
Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some
+content that can be measured. Leaf elements typically instantiate their content with
+ElementContent(measurable:) or similar.
+
Container elements: these element have one or more children, which are arranged by a layout implementation.
+Container elements typically use methods like ElementContent(layout:configure:) to instantiate
+their content.
Returns an (optional) description of the view that should back this element.
+
+
In Blueprint, elements that are displayed using a live UIView instance are referred to as “view-backed”.
+Elements become view-backed by returning a ViewDescription value from this method.
Keyed allows providing a Hashable value which is used
+during view updates to uniquely identify content during the diff process
+between the old and new element structure.
+
+
This is useful if you have two elements of the same type at the same depth
+in the element hierarchy, and you’d like to differentiate between them, eg
+for appearance transition purposes.
+
Example
+
+
Keying the image returned, so that a transition occurs when changing
+between a placeholder image and an available photo.
Adds a hook that will be called when this element disappears.
+
+
Callbacks run in depth-first traversal order, with parents before children. There is no
+guaranteed order between disappearance callbacks and backing views being removed from their
+superviews.
Blocks all accessibility on the element, so that it is
+is no longer an accessibility element, and its children are
+hidden from the accessibility system.
Wraps the receiver in an accessibility element with the provided values.
+
+
Providing a nil value for any of these parameters will result in no resolved value for that accessibility
+parameter—it does not inherit parameters from the wrapped element’s accessibility configuration.
+
+
Important
+ ⚠️ This overrides the accessibility of the contained element and all of its children ⚠️
+
+
The transition to use when the element appears. By default, no transition.
+
+
+
+
+
+
+ onDisappear
+
+
+
+
+
The transition to use when the element disappears. By default, no transition.
+
+
+
+
+
+
+ onLayout
+
+
+
+
+
The transition to use when the element’s layout changes. The default value is
+.inherited, which means the element will participate in the same transition as its
+nearest ancestor with a specified transition.
Defines a way for anElement to be implicitly converted into the conforming type (the child of a container).
+In practice, this allows us to pass an Element directly into the result builder without manually converting to Child (i.e. Converting Element -> StackLayout.Child.
Custom elements commonly use another element to actually display content. For example, a profile element might
+display an image and a few labels inside a Column element. The ProxyElement protocol is provided to make that
+task easier.
+
+
Conforming types only need to implement elementRepresentation in order to generate an element that will be
+displayed.
An element type which makes it easier to wrap an existing UIView instance that
+provides its own sizing via sizeThatFits. An instance of the view is used for
+sizing and measurement, so that you do not need to re-implement your own measurement.
+
Note
+
+
The sizing and measurement prototype view is kept alive for the lifetime of the containing application.
+Do not pass anything to the initializer of this type that you expect to be quickly released.
+
Example
+
+
If you were implementing a very basic Switch element, your implementation would look something
+like this:
Create and return a new instance of the provided view type.
+
Note
+
+
Ensure that you do not pass any values to the initializer of your view type
+that you cannot also update in updateUIView(_:), as view instances
+are reused for sizing and measurement.
Update the view instance with the content from the element. The context provides additional
+information, such as whether the update is for the measuring instance.
+
Example
+
+
If you were to implement a simple UIViewElement which wraps a UISwitch,
+your update method would look like this:
Returns the sizing measurement for the element for the provided
+measurement view.
+
+
You usually do not need to implement this method – the default implementation of
+this method simply calls sizeThatFits(_:) on the provided view.
+
+
The view is fully configured and updated before this method is called – you do not need to
+update it in any way.
+
When To Override
+
+
You may want to override this method if you need to mutate the value returned from sizeThatFits(_:),
+or if you want to use some other sizing method like systemLayoutSizeFitting(...).
+
+
+
Default Implementation
+
+
The default implementation simply forwards to sizeThatFits(_:).
AttributedText allows you to apply strongly-typed attributes to strings (much like the AttributedString type
+introduced in iOS 15). You can then access the attributedString property to get an attributed string with those
+attributes applied.
+
+
For example:
+
vartext=AttributedText(string:"Hello, world")
+// Apply a font to the entire range
+text.font=.systemFont(ofSize:20)
+
+// Apply a color to part of the string
+letrange=text.string.range(of:"world")!
+text[range].color=.blue
+
+// Render the attributed text
+letlabel=AttributedLabel(attributedText:text.attributedString)
+
A property wrapper type that can read and write a value that represents the placement of focus.
+
+
Use this property wrapper in conjunction with modifiers on elements that support focus, such as
+TextField.focused(when:equals:) and TextField.focused(when:), to describe when those elements
+should have focus. When focus enters the modified element, the wrapped value of this property
+updates to match a given value. Similarly, when focus leaves, the wrapped value of this property
+resets to nil or false. Setting this property’s value programmatically has the reverse
+effect, causing focus to move to the element associated with the updated value.
+
+
In the following example of a simple login screen, when the user presses the Sign In button and
+one of the fields is still empty, focus moves to that field. Otherwise, the sign-in process
+proceeds.
To allow for cases where focus is completely absent from a view tree, the wrapped value must be
+either an optional or a Boolean. Set the focus binding to false or nil as appropriate to
+remove focus from all bound fields. You can also use this to remove focus from a TextField
+and thereby dismiss the keyboard.
+
Auto-Focus
+
+
To auto-focus a field when it appears, set the value in an onAppear hook.
A TextField can have only one focus binding, stored in its focusBinding property. If you apply
+the focused modifier multiple times, the last one will overwrite the previous value.
+
+
On the other hand, binding the same value to two views is ambiguous. In the following example,
+two separate fields bind focus to the name value:
If the user moves focus to either field, the focusedField binding updates to name. However,
+if the app programmatically sets the value to name, the last field bound will be chosen.
An element’s size and its alignment guides in its own coordinate space.
+
+
You can access the size of the element through the width and height properties. You can
+access alignment guide values by subscripting with the specific alignment.
+
+
These dimensions are typically used when setting an alignment guide on a stack, with
+StackElement.add(...).
+
Example
+
// get the alignment guide value for `VerticalAlignment.center`, falling back to the default
+// value if no alignment guide has been set
+dimensions[VerticalAlignment.center]
+
+// get the alignment guide value for `HorizontalAlignment.trailing`, or `nil` if none has been
+// set.
+dimensions[explicit:.trailing]
+
Element which lays out children horizontally, wrapping to another row when there is not enough space.
+
+
You may control the layout of each row within the flow layout, by providing a LineAlignment,
+which controls the horizontal alignment of content within a row when it is smaller than its container,
+and via ItemAlignment, which controls the vertical alignment of shorter elements within a row.
Like Row, GridRow displays a list of items in a linear horizontal layout. Unlike Row, GridRow provides
+convenience for describing columnar layout.
+
+
Horizontally, GridRow children are stretched to fill the available space. Vertically, children are aligned
+according to the verticalAlignment property.
+
+
Children may be sized proportionally or absolutely. Proportionally-sized children are granted a proportion of
+the total layout space after absolutely-sized children and margins have been subtracted.
Keyed allows providing a Hashable value which is used
+during view updates to uniquely identify content during the diff process
+between the old and new element structure.
+
+
This is useful if you have two elements of the same type at the same depth
+in the element hierarchy, and you’d like to differentiate between them, eg
+for appearance transition purposes.
+
Example
+
+
Keying the image returned, so that a transition occurs when changing
+between a placeholder image and an available photo.
A proxy that represents one child element of a layout.
+
+
This type acts as a proxy for a child element in a Layout. Layout protocol methods receive a
+LayoutSubelements collection that contains exactly one proxy for each of the child elements
+managed by the layout.
+
+
Use this proxy to get information about the associated element, like its size and traits. You
+should also use the proxy to tell its corresponding element where to appear by calling the
+proxy’s place(at:anchor:size:) method. Do this once for each subview from your
+implementation of the layout’s
+placeSubelements(in:subelements:environment:cache:) method.
+
+
Note
+ The LayoutSubelement API, and its documentation, are modeled after SwiftUI’s
+LayoutSubview, with major
+differences noted.
+
+
A normalized point in an element’s coordinate space.
+
+
Use a unit point to represent a location in an element without having to know the element’s
+rendered size. The point stores a value in each dimension that indicates the fraction of the
+element’s size in that dimension — measured from the element’s origin — where the point appears.
+For example, you can create a unit point that represents the center of any element by using the
+value 0.5 for each dimension:
+
letunitPoint=UnitPoint(x:0.5,y:0.5)
+
+
+
To project the unit point into the rendered element’s coordinate space, multiply each component
+of the unit point with the corresponding component of the element’s size:
You can perform this calculation yourself if you happen to know an element’s size, but Blueprint
+typically does this for you to carry out operations that you request, like when you place a
+subelement in a custom layout.
+
+
You can create custom unit points with explicit values, like the example above, or you can use
+one of the built-in unit points, like zero, center, or topTrailing. The built-in
+values correspond to the alignment positions of the similarly named, built-in Alignment
+types.
+
+
Note
+ A unit point with one or more components outside the range [0, 1] projects to a point
+outside of the element.
+
+
Blocks all accessibility on the element, so that it is
+is no longer an accessibility element, and its children are
+hidden from the accessibility system.
Acts as an accessibility container for any accessible subviews.
+
+
Accessible subviews are found using the following algorithm:
+
+
Recurse subviews until a view is found that either
+
+
+
hasisAccessibilityElement set to true or
+
+
+
If an accessibility element is found, we add it to the accessibilityElements
+and terminate the search down that branch. If a container is found,
+the elements returned from the container are added to the accessibilityElements
+and the search down that branch is also terminated.
Used to provide custom behaviour when activated by voiceover. This will override the default behavior of issuing a tap event at the accessibility activation point.
+See Accessibility Activate Documentation for further information.
An array containing one or more CustomActions, defining additional supported actions. Assistive technologies, such as VoiceOver, will display your custom actions to the user at appropriate times.
An array containing one or more CustomContents, defining additional content associated with the element. Assistive technologies, such as VoiceOver, will announce your custom content to the user at appropriate times.
In addtion to being available through the rotor, high importance content will announced in the main VoiceOver utterance.
+High Importance content is announced follllowing the accessibilityValue but preceding any accessibilityHint.
Used in conjunction with UIAccessibilityTrait.adjustable, these will be called to allow accessible adjustment of a value, for example in a slider or stepper control.
+See Accessibility Increment Documentation for further information.
Used in conjunction with UIAccessibilityTrait.adjustable, these will be called to allow accessible adjustment of a value, for example in a slider or stepper control.
+See Accessibility Decrement Documentation for further information.
Wraps an element tree with a modified environment.
+
+
By specifying environmental values with this element, all child elements nested
+will automatically inherit those values automatically. Values can be changed
+anywhere in a sub-tree by inserting another AdaptedEnvironment element.
Aligns a content element within itself. The vertical and horizontal alignment may be set independently.
+
+
When using alignment mode .fill, the content is scaled to the width or height of the Aligned element.
+
+
For other modes, the size of the content element is determined by calling measure(in:)
+on the content element – even if that size is larger than the wrapping element.
If you customize the line break mode using an NSParagraphStyle, the mode will be normalized
+based on the number of lines allowed. This is because some line break modes are incompatible
+with multi-line text rendering in TextKit, which is used to detect where links are in the text.
+Some modes also break line height adjustment in single-line labels, so these are also normalized.
+
+
Specifically:
+
+
+
1 line labels with a mode of byCharWrapping or byWordWrapping will be normalized to byClipping.
+
Multiline labels with a mode of byTruncatingHead or byTruncatingMiddle
+will be normalized to byTruncatingTail.
A shadow to display behind the label’s text. Defaults to no shadow.
+
+
Note
+ This shadow is applied using the backing view’s CALayer, and will affect the
+entire label. To apply a shadow to only a portion of text, you can instead set
+NSAttributedString.Key.shadow on the string, but note that those shadows may be clipped
+by the bounds of the backing view.
+
+
A Boolean value that determines whether the label reduces the text’s font
+size to fit the title string into the label’s bounding rectangle.
+
+
Normally, the label draws the text with the font you specify in the font property.
+If this property is true, and the text in the text property exceeds the label’s bounding rectangle,
+the label reduces the font size until the text fits or it has scaled the font down to the minimum
+font size. The default value for this property is false.
+
+
If you change it to true, be sure that you also set an appropriate minimum
+font scale by modifying the minimumScaleFactor property.
+
+
This autoshrinking behavior is only intended for use with a single-line label.
If the adjustsFontSizeToFitWidth is true, use this property to specify the
+smallest multiplier for the current font size that yields an acceptable
+font size for the label’s text.
+
+
If you specify a value of 0 for this property, the label doesn’t scale the text down.
+The default value of this property is 0.
A Boolean value that determines whether the label tightens text before truncating.
+
+
When the value of this property is true, the label tightens intercharacter spacing
+of its text before allowing any truncation to occur. The label determines the
+maximum amount of tightening automatically based on the font, current line width,
+line break mode, and other relevant information.
+
+
This autoshrinking behavior is only intended for use with a single-line label.
An array containing one or more AccessibilityElement.CustomActions, defining additional supported actions. Assistive technologies, such as VoiceOver, will display your custom actions to the user at appropriate times.
AttributedText allows you to apply strongly-typed attributes to strings (much like the AttributedString type
+introduced in iOS 15). You can then access the attributedString property to get an attributed string with those
+attributes applied.
+
+
For example:
+
vartext=AttributedText(string:"Hello, world")
+// Apply a font to the entire range
+text.font=.systemFont(ofSize:20)
+
+// Apply a color to part of the string
+letrange=text.string.range(of:"world")!
+text[range].color=.blue
+
+// Render the attributed text
+letlabel=AttributedLabel(attributedText:text.attributedString)
+
Note that only attributes applying to the entire range will be returned. For example, if the text
+has two different font attributes, then text.font will be nil.
Note that the returned TextAttributeContainer will only contain attributes that apply to the entire subscript
+range. (Setting an attribute will set it across the subscript range regardless of any existing contents).
This function is disfavored in case a builder wants to offer additional buildExpression functions to support
+multiple types in their builders. @_disfavoredOverload allows the compiler to choose the other function when
+nil is built, instead of it being ambiguous.
An element that wraps a child element in a button that mimics a UIButton with the .system style. That is, when
+highlighted (or disabled), it fades its contents to partial alpha.
The size of the content element is determined by calling measure(in:) on
+the content element – even if that size is larger than the wrapping Centered
+element.
By default, each item in the column will be stretched or compressed with equal priority in
+the event of overflow or underflow. You can control this behavior by adding a
+stackLayoutChild modifier to an item.
Using the specified alignment, children will be aligned relatively to each other, and
+then all the contents will be aligned to the column’s bounding box.
+
+
This case can be used for custom alignments. For common alignments you can use the
+existing static instancesleading, center, and trailing.
The content will be sized to fill its parent while
+maintaining the specified aspect ratio.
+
+
In legacy layout mode, if the parent is unconstrained in all dimensions,
+the content size will be used for measurement and will behave like fitContent. If the
+parent is unconstrained in one dimension, the element will fill the constrained
+dimension.
+
+
In caffeinated, if the parent is unconstrained in any dimension, this
+element will report a size of infinity.
The content will be sized to fit within its parent while maintaining the specified
+aspect ratio.
+
+
If the parent is unconstrained in one dimension, the element will fit the constrained
+dimension.
+
+
In legacy layout mode, if the parent is unconstrained in all dimensions,
+the content size will be used for measurement and will behave like fitContent.
+
+
In caffeinated layout mode, if the parent is unconstrained in both
+dimensions, this element will report a size of infinity.
The content will grow in whichever dimension is needed to maintain the aspect ratio,
+while ensuring the content still fits.
+
+
This mode does not take the parents applied size constraint into account, so the parent
+may ultimately layout the element without the constrained aspect ratio.
The content will shrink in whichever dimension is needed to maintain the aspect ratio,
+meaning it may be smaller in one dimension than the measured size.
+
+
This mode does not take the parents applied size constraint into account, so the parent
+may ultimately layout the element without the constrained aspect ratio.
Constrains the measured size of the contained element in the ranges specified by the width and height properties.
+
+
There are several constraint types available for each axis. See ConstrainedSize.Constraint for a full list and in-depth
+descriptions of each.
+
Notes
+
+
An important note is that the constraints of ConstrainedSize are authoritative during measurement. For example,
+if your ConstrainedSize specifies .atLeast(300) for width, and the ConstrainedSize is asked to measure within
+a SizeConstraint that is at most 100 points wide, the returned measurement will still be 300 points. The same goes for the
+height of the ConstrainedSize.
The measured size for this axis will be within the range provided.
+If the measured value is below the bottom of the range, the lower value will be used.
+If the measured value is above the top of the range, the lower value will be used.
Provides a .inset position where the decoration is inset by the
+horizontal amount on the left and right, and the vertical amount on the top and bottom.
Initializes a new ElementContent that will lazily create its storage during a layout and measurement pass,
+based on the Environment passed to the builder closure.
Initializes a new ElementContent with the given child element, measurement caching key, and environment adapter,
+which allows adapting the environment to affect the element, plus elements further down the tree.
Initializes a new ElementContent with the given child element, measurement caching key, and environment key + value.
+which adapts the environment to affect the element, plus elements further down the tree.
Creates a new ElementContent which uses the provided element to measure its
+size, but does not place the element as a child in the final, laid out hierarchy.
+
+
This is useful if you are placing the element in a nested BlueprintView, for example (eg
+to create a stateful element) and just need this element to be correctly sized.
An element’s size and its alignment guides in its own coordinate space.
+
+
You can access the size of the element through the width and height properties. You can
+access alignment guide values by subscripting with the specific alignment.
+
+
These dimensions are typically used when setting an alignment guide on a stack, with
+StackElement.add(...).
+
Example
+
// get the alignment guide value for `VerticalAlignment.center`, falling back to the default
+// value if no alignment guide has been set
+dimensions[VerticalAlignment.center]
+
+// get the alignment guide value for `HorizontalAlignment.trailing`, or `nil` if none has been
+// set.
+dimensions[explicit:.trailing]
+
A SwiftUI view which wraps a Blueprint element, which can be used to preview Blueprint elements
+via Xcode’s preview functionality (enable via the Editor > Canvas menu).
+
+
You can leverage ElementPreview by adding something like this to the bottom of the file which contains
+your Blueprint element, then as you edit and work on your element, the live preview will update to show the
+current state of your element:
+
+structMyElement:Element{
+ ...
+}
+
+// Add this at the bottom of your element's source file.
+
+#if DEBUG && canImport(SwiftUI) && !arch(i386) && !arch(arm)
+
+importSwiftUI
+
+@available(iOS13.0,*)
+structMyElement_Preview:PreviewProvider{
+ staticvarpreviews:someView{
+ ElementPreview{
+ MyElement()
+ }
+ }
+}
+
+#endif
+
+
+
Uhhh
+
+
You’re probably asking…
+Why the !arch(i386) check above? Turns out, a compiler bug!
+SwiftUI is only available on 64 bit devices, but the canImport check erroneously
+finds it when building to target iOS 10 devices. Until we drop iOS 10, this part of the check is also required.
+
Details
+
+
It’s important that you keep the PreviewProvider in the same file as the element that you are editing.
+
+
Why? Xcode uses a new feature called “Dynamic Replacement” to re-compile the source file you are editing,
+and inject it back into the running app which drives the preview. This only works on the level of a single
+file – if your preview and element live in separate files, Xcode needs to recompile your entire module
+which will slow down preview updates greatly.
You must be running Xcode 11 and Catalina to take advantage of live previews.
+They do not work on Mojave. Your selected simulator must also be an iOS 13 device.
Environment is a container for values to be passed down an element tree.
+
+
Environment values are not resolved until the tree is being rendered, so they do not need to be
+explicitly passed to elements at the time they are created.
+
+
Environment key-value pairs are strongly typed: keys are types conforming to the
+EnvironmentKey protocol, and each key’s value is the type of that key’s
+EnvironmentKey.Value associated value. Keys must provide a default value.
+
Example
+
+
To set an environment value, so that it will cascade to child elements, use
+AdaptedEnvironment. Here, every element in childElement will have access to someValue
+via the key MyEnvironmentKey.
To read an environment value, use EnvironmentReader. If this element were part of the child
+element in the previous example, myValue would be set to someValue. If the key had not
+been set in an ancestor element, the value would be MyEnvironmentKey.defaultValue.
An element that sizes its children equally, stacking them in the primary axis according to
+the specified direction and spacing them according to the specified spacing. In the
+secondary axis, children are justified to fill the space of the largest child.
+
+
Note
+ A stack measures itself by determining its largest child in each axis, and
+ in the case of the primary axis, multiplying by children.count (accounting
+ for spacing as necessary).
+
+
Element which lays out children horizontally, wrapping to another row when there is not enough space.
+
+
You may control the layout of each row within the flow layout, by providing a LineAlignment,
+which controls the horizontal alignment of content within a row when it is smaller than its container,
+and via ItemAlignment, which controls the vertical alignment of shorter elements within a row.
A property wrapper type that can read and write a value that represents the placement of focus.
+
+
Use this property wrapper in conjunction with modifiers on elements that support focus, such as
+TextField.focused(when:equals:) and TextField.focused(when:), to describe when those elements
+should have focus. When focus enters the modified element, the wrapped value of this property
+updates to match a given value. Similarly, when focus leaves, the wrapped value of this property
+resets to nil or false. Setting this property’s value programmatically has the reverse
+effect, causing focus to move to the element associated with the updated value.
+
+
In the following example of a simple login screen, when the user presses the Sign In button and
+one of the fields is still empty, focus moves to that field. Otherwise, the sign-in process
+proceeds.
To allow for cases where focus is completely absent from a view tree, the wrapped value must be
+either an optional or a Boolean. Set the focus binding to false or nil as appropriate to
+remove focus from all bound fields. You can also use this to remove focus from a TextField
+and thereby dismiss the keyboard.
+
Auto-Focus
+
+
To auto-focus a field when it appears, set the value in an onAppear hook.
A TextField can have only one focus binding, stored in its focusBinding property. If you apply
+the focused modifier multiple times, the last one will overwrite the previous value.
+
+
On the other hand, binding the same value to two views is ambiguous. In the following example,
+two separate fields bind focus to the name value:
If the user moves focus to either field, the focusedField binding updates to name. However,
+if the app programmatically sets the value to name, the last field bound will be chosen.
The current state value, taking into account whatever bindings might be
+in effect due to the current location of focus.
+
+
When focus is not in any view that is bound to this state, the wrapped
+value will be nil (for optional-typed state) or false (for Bool-
+typed state).
A projection of the focus state that can be bound to focusable elements.
+
+
Use this property wrapper in conjunction with modifiers on elements that support focus, such
+as TextField.focused(when:equals) and TextField.focused(when:), to describe when those
+elements should have focus.
+
+
To add focus support to a custom element, use one of the methods on this projection to
+retrieve a FocusBinding: binding() for Bool values and binding(for:) for optional
+values.
Gets a focus binding associated with the FocusState being a specific value.
+
+
You can use this binding to add focus support to a custom element.
+
+
When the FocusState property is set to this value, the binding’s focus trigger will
+fire, and when the property is set to another value, the binding’s blur trigger will fire.
+Similarly, calling the onFocus callback will set the FocusState to this value, and the
+onBlur callback will set it to nil.
Gets a focus binding associated with the FocusState value being true.
+
+
You can use this binding to add focus support to a custom element.
+
+
When the FocusState property is set to true, the binding’s focus trigger will fire, and
+when the property is set to false, the binding’s blur trigger will fire. Similarly,
+calling the onFocus callback will set the FocusState to true, and the onBlur callback
+will set it to false.
Like Row, GridRow displays a list of items in a linear horizontal layout. Unlike Row, GridRow provides
+convenience for describing columnar layout.
+
+
Horizontally, GridRow children are stretched to fill the available space. Vertically, children are aligned
+according to the verticalAlignment property.
+
+
Children may be sized proportionally or absolutely. Proportionally-sized children are granted a proportion of
+the total layout space after absolutely-sized children and margins have been subtracted.
Assign the child a proportional width of the available layout width. Note that proportional children
+take proportional shares of the available layout width.
iOS 14 added support for Image Descriptions using VoiceOver. This is not always appropriate.
+Set this to true to prevent VoiceOver from describing the displayed image.
The image is stretched to fill the Image element, causing the image
+to become distorted if its aspect ratio is different than that of the
+containing element.
The image is scaled to touch the edges of the Image element while
+maintaining the image’s aspect ratio. If the aspect ratio of the
+image is different than that of the element, the image will be
+letterboxed or pillarboxed as needed to ensure that the entire
+image is visible within the element.
The image is scaled to fill the entire Image element. If the aspect
+ratio of the image is different than that of the element, the image
+will be cropped to match the element’s aspect ratio.
Keyed allows providing a Hashable value which is used
+during view updates to uniquely identify content during the diff process
+between the old and new element structure.
+
+
This is useful if you have two elements of the same type at the same depth
+in the element hierarchy, and you’d like to differentiate between them, eg
+for appearance transition purposes.
+
Example
+
+
Keying the image returned, so that a transition occurs when changing
+between a placeholder image and an available photo.
A Boolean value that determines whether the label reduces the text’s font
+size to fit the title string into the label’s bounding rectangle.
+
+
Normally, the label draws the text with the font you specify in the font property.
+If this property is true, and the text in the text property exceeds the label’s bounding rectangle,
+the label reduces the font size until the text fits or it has scaled the font down to the minimum
+font size. The default value for this property is false.
+
+
If you change it to true, be sure that you also set an appropriate minimum
+font scale by modifying the minimumScaleFactor property.
+
+
This autoshrinking behavior is only intended for use with a single-line label.
If the adjustsFontSizeToFitWidth is true, use this property to specify the
+smallest multiplier for the current font size that yields an acceptable
+font size for the label’s text.
+
+
If you specify a value of 0 for this property, the label doesn’t scale the text down.
+The default value of this property is 0.
A Boolean value that determines whether the label tightens text before truncating.
+
+
When the value of this property is true, the label tightens intercharacter spacing
+of its text before allowing any truncation to occur. The label determines the
+maximum amount of tightening automatically based on the font, current line width,
+line break mode, and other relevant information.
+
+
This autoshrinking behavior is only intended for use with a single-line label.
An array containing one or more AccessibilityElement.CustomActions, defining additional supported actions. Assistive technologies, such as VoiceOver, will display your custom actions to the user at appropriate times.
Enables aggressive cache hinting along the boundaries of the range between constraints and
+measured sizes. Requires elements to conform to the Caffeinated Layout contract for correct
+behavior.
Allows cache misses on finite constraints to deduce a range-based match by searching for a
+hit on the unconstrained value for each axis. Requires elements to adhere to the Caffeinated
+Layout contract for correct behavior.
A proxy that represents one child element of a layout.
+
+
This type acts as a proxy for a child element in a Layout. Layout protocol methods receive a
+LayoutSubelements collection that contains exactly one proxy for each of the child elements
+managed by the layout.
+
+
Use this proxy to get information about the associated element, like its size and traits. You
+should also use the proxy to tell its corresponding element where to appear by calling the
+proxy’s place(at:anchor:size:) method. Do this once for each subview from your
+implementation of the layout’s
+placeSubelements(in:subelements:environment:cache:) method.
+
+
Note
+ The LayoutSubelement API, and its documentation, are modeled after SwiftUI’s
+LayoutSubview, with major
+differences noted.
+
+
Call this method from your implementation of the Layout protocol’s
+placeSubelements(in:subelements:environment:cache:) method for each
+subelement arranged by the layout. Provide a position within the container’s bounds where
+the subelement should appear, an anchor that indicates which part of the subelement appears
+at that point, and a size.
+
+
To learn the subelement’s preferred size for a given proposal before calling this method,
+you can call sizeThatFits(_:) method on the subelement.
+
+
If you call this method more than once for a subelement, the last call takes precedence. If
+you don’t call this method for a subelement, the subelement fills the bounds of its
+container.
The place where the anchor of the subelement should appear in its container,
+relative to the container’s bounds.
+
+
+
+
+
+
+ anchor
+
+
+
+
+
The unit point on the subelement that appears at position. You can use a
+built-in point, like center, or you can create a custom UnitPoint.
+
+
+
+
+
+
+ size
+
+
+
+
+
The size of the subelement. In Blueprint, parents choose their children’s size.
+You can determine a good size for a subelement by calling sizeThatFits(_:) on it.
The position and size of the subelement. The origin of this frame represents the
+place where the anchor of the subelement should appear in its container, relative to the
+container’s bounds. In Blueprint, parents choose their children’s size. You can
+determine a good size for a subelement by calling sizeThatFits(_:) on it.
+
+
+
+
+
+
+ anchor
+
+
+
+
+
The unit point on the subelement that appears at position. You can use a
+built-in point, like center, or you can create a custom UnitPoint.
Creates a new instance of the LayoutWriter with the custom layout provided by the builder.
+
+
The parameters to the closure are the Context, which provides information about
+the environment and sizing of the layout, and the Builder itself, which you use to
+add child elements to the layout.
How the size of the layout should be calculated. Defaults to .unionOfChildren,
+which means the size will be big enough to contain the frames of all contained children.
The children of the custom layout, which specifies the child element and its frame.
+
Note
+
+
You rarely need to access this property directly. Instead, add children via
+the various provided add(...) methods. However, if you’re map-ing over an array
+or other collection of content, using this property directly is useful.
The phase of the layout current occurring – measurement or layout.
+
+
You can use this value to vary calculations as needed between phases; eg, to make
+an element take up the full available size during the .layout phase, where sizing is known.
The large rect will be the calculated size / bounds of the layout, starting at (0,0). Any rects with
+negative origins will overhang the layout to the top or left, respectively.
Fixes the layout size to the provided size. Children are positioned within this size, starting at (0,0)
+Any rects with negative origins will overhang the layout to the top or left, respectively.
Adds a hook that will be called when this element disappears.
+
+
Callbacks run in depth-first traversal order, with parents before children. There is no
+guaranteed order between disappearance callbacks and backing views being removed from their
+superviews.
Using the specified alignment, children will be aligned relatively to each other, and
+then all the contents will be aligned to the row’s bounding box.
+
+
This case can be used for custom alignments. For common alignments you can use the
+existing static instancestop, center, and bottom.
The thickness of the rule in the direction perpendicular to its orientation.
+Defaults to a hairline thickness, meaning the thinnest possible line that can be drawn.
This property wrapper checks the value of atMost cases, and turns it into an
+unconstrained axis if the value equals greatestFiniteMagnitude or isInfinite.
This property wrapper checks the value of atMost cases, and turns it into an
+unconstrained axis if the value equals greatestFiniteMagnitude or isInfinite.
Children will be aligned relatively to each other, and then all the contents will be
+aligned to the stack’s bounding box, according to the specified alignment.
Returns a value along the stack’s cross axis, in the element’s own coordinate space,
+where a child should be aligned relative to the alignment guides of its siblings.
A set of accessibility traits that should be applied to the field, these will be merged with any existing traits.
+These traits should relate to the content of the text, for example .header, .link, or .updatesFrequently.
Modifies this text field by binding its focus state to the given state value.
+
+
Use this modifier to cause the text field to receive focus whenever the state equals
+the value. Typically, you create an enumeration of fields that may receive focus, bind an
+instance of this enumeration, and assign its cases to focusable views.
+
+
The following example uses the cases of a LoginForm enumeration to bind the focus state of
+two TextField elements. A sign-in button validates the fields and sets the bound
+focusedField value to any field that requires the user to correct a problem.
Modifies this text field by binding its focus state to the given Boolean state value.
+
+
Use this modifier to cause the text field to receive focus whenever the the condition is
+true. You can use this modifier to observe the focus state of a text field, or
+programmatically focus or blur the field.
+
+
In the following example, a single text field accepts a user’s desired username. The text
+field binds its focus state to the Boolean value isUsernameFocused. A “Submit” button’s
+action checks if the username is empty, and sets isUsernameFocused to true, which causes
+focus to return to the text field.
The transition to use when the element appears. By default, no transition.
+
+
+
+
+
+
+ disappearingTransition
+
+
+
+
+
The transition to use when the element disappears. By default, no transition.
+
+
+
+
+
+
+ layoutTransition
+
+
+
+
+
The transition to use when the element’s layout changes. The default value is
+.inherited, which means the element will participate in the same transition as its
+nearest ancestor with a specified transition.
This bool indicates whether the view being updated is the static measuring instance. You may
+not want to perform certain updates if it is (such as updating field trigger references).
A normalized point in an element’s coordinate space.
+
+
Use a unit point to represent a location in an element without having to know the element’s
+rendered size. The point stores a value in each dimension that indicates the fraction of the
+element’s size in that dimension — measured from the element’s origin — where the point appears.
+For example, you can create a unit point that represents the center of any element by using the
+value 0.5 for each dimension:
+
letunitPoint=UnitPoint(x:0.5,y:0.5)
+
+
+
To project the unit point into the rendered element’s coordinate space, multiply each component
+of the unit point with the corresponding component of the element’s size:
You can perform this calculation yourself if you happen to know an element’s size, but Blueprint
+typically does this for you to carry out operations that you request, like when you place a
+subelement in a custom layout.
+
+
You can create custom unit points with explicit values, like the example above, or you can use
+one of the built-in unit points, like zero, center, or topTrailing. The built-in
+values correspond to the alignment positions of the similarly named, built-in Alignment
+types.
+
+
Note
+ A unit point with one or more components outside the range [0, 1] projects to a point
+outside of the element.
+
+
A closure that takes a native view instance as the single argument, and
+returns a subview of that view into which child views should be added
+and managed.
The prioritization method to use when snapping the native view’s frame to pixel
+boundaries.
+
+
When snapping views to pixel boundaries, Blueprint prioritizes placing frame edges as
+close to the correct value as possible. This ensures that flush edges stay flush after
+rounding, but can result in frame sizes growing or shrinking by 1 pixel in either axis.
+
+
Backing views that are particularly sensitive to size changes can opt-in to prioritize
+preserving their frame size instead of maximally correct edges. This will guarantee
+frame sizes, with the tradeoff that their edges may no longer be flush to other edges as
+they were laid out.
+
+
Generally you should not change this value except in specific circumstances when all
+criteria are met:
+
+
+
The backing view is sensitive to frame size, such as a text label.
+
And the backing view has a transparent background, so that overlapping frames or gaps
+between frames are not visible.
Subscript for values that are not optional. We must represent these values as optional so that we can
+return nil from the subscript in the case where no value has been assigned for the given keypath.
+
+
When getting a value for a keypath:
+
+
+
If a value has previously been assigned, it will be returned.
+
If no value has been assigned, nil will be returned.
+
+
+
When assigning a value for a keypath:
+
+
+
If a value is provided, it will be applied to the view.
+
If nil is provided, no value will be applied to the view (any previous assignment will be cleared).
If a value has previously been assigned (including nil), it will be returned.
+
If no value has been assigned, nil will be returned.
+
+
+
When assigning a value for a keypath:
+
+
+
Any provided value will be applied to the view (including nil). This means that there is a difference
+between the initial state of a view description (where the view’s property will not be touched), and the
+state after nil is assigned. After assigning nil to an optional keypath, view.property = nil will
+be called on the next update.
This type is meant to be used in conjunction with FocusState; you will usually not create
+it directly. For information about adding focus support to a custom element, see FocusBinding.
+
+
Triggers allow imperative actions to be invoked on backing views, by creating a trigger in a
+declarative model before the view is realized, late-binding the actions to a backing view after
+that view has been realized, and then invoking the action on the trigger later in response to
+some other event.
A base environment used when laying out and rendering the element tree.
+
+
Some keys will be overridden with the traits from the view itself. Eg, windowSize, safeAreaInsets, etc.
+
+
If this blueprint view is within another blueprint view, the environment of the parent view
+will be inherited by this view if automaticallyInheritsEnvironmentFromContainingBlueprintViews
+is enabled. In the case of matching keys in both the inherited environment and the provided
+environment, the values from this environment will take priority over the inherited environment.
If true, then Blueprint will automatically inherit the Environment from the nearest
+parent BlueprintView in the view hierarchy.
+
+
If false, then only the values from environment will be used to
+seed the environment passed to the element hierarchy.
+
+
This property is recursive – if the nearest parent BlueprintView also sets this property to
+true, then you will inherit the Environment from that view’s parent BlueprintView, and so on.
An optional explicit layout mode for this view. If nil, this view will inherit the layout
+mode of its nearest ancestor or use default if it has no ancestor.
Measures the size needed to display the view within the given constraining size,
+by measuring the current element of the BlueprintView.
+
+
If you would like to not constrain the measurement in a given axis,
+pass 0.0 or .greatestFiniteMagnitude for that axis, eg:
+
// Measures with a width of 100, and no height constraint.
+blueprintView.sizeThatFits(CGSize(width:100.0,height:0.0))
+
+// Measures with a height of 100, and no width constraint.
+blueprintView.sizeThatFits(CGSize(width:0.0,height:100.0))
+
+// Measures unconstrained in both axes.
+blueprintView.sizeThatFits(.zero)
+
This type is meant to be used in conjunction with FocusState; you will usually not create
+it directly. For information about adding focus support to a custom element, see FocusBinding.
+
+
Triggers allow imperative actions to be invoked on backing views, by creating a trigger in a
+declarative model before the view is realized, late-binding the actions to a backing view after
+that view has been realized, and then invoking the action on the trigger later in response to
+some other event.
Blocks all accessibility on the element, so that it is
+is no longer an accessibility element, and its children are
+hidden from the accessibility system.
Acts as an accessibility container for any accessible subviews.
+
+
Accessible subviews are found using the following algorithm:
+
+
Recurse subviews until a view is found that either
+
+
+
hasisAccessibilityElement set to true or
+
+
+
If an accessibility element is found, we add it to the accessibilityElements
+and terminate the search down that branch. If a container is found,
+the elements returned from the container are added to the accessibilityElements
+and the search down that branch is also terminated.
Wraps an element tree with a modified environment.
+
+
By specifying environmental values with this element, all child elements nested
+will automatically inherit those values automatically. Values can be changed
+anywhere in a sub-tree by inserting another AdaptedEnvironment element.
Aligns a content element within itself. The vertical and horizontal alignment may be set independently.
+
+
When using alignment mode .fill, the content is scaled to the width or height of the Aligned element.
+
+
For other modes, the size of the content element is determined by calling measure(in:)
+on the content element – even if that size is larger than the wrapping element.
An element that wraps a child element in a button that mimics a UIButton with the .system style. That is, when
+highlighted (or disabled), it fades its contents to partial alpha.
The size of the content element is determined by calling measure(in:) on
+the content element – even if that size is larger than the wrapping Centered
+element.
Constrains the measured size of the contained element in the ranges specified by the width and height properties.
+
+
There are several constraint types available for each axis. See ConstrainedSize.Constraint for a full list and in-depth
+descriptions of each.
+
Notes
+
+
An important note is that the constraints of ConstrainedSize are authoritative during measurement. For example,
+if your ConstrainedSize specifies .atLeast(300) for width, and the ConstrainedSize is asked to measure within
+a SizeConstraint that is at most 100 points wide, the returned measurement will still be 300 points. The same goes for the
+height of the ConstrainedSize.
An element that sizes its children equally, stacking them in the primary axis according to
+the specified direction and spacing them according to the specified spacing. In the
+secondary axis, children are justified to fill the space of the largest child.
+
+
Note
+ A stack measures itself by determining its largest child in each axis, and
+ in the case of the primary axis, multiplying by children.count (accounting
+ for spacing as necessary).
+
+
By providing child elements that will be displayed recursively within
+the local coordinate space.
+
+
+
+
+
A custom element might look something like this:
+
structMyElement:Element{
+
+ varbackgroundColor:UIColor=.red
+
+ // Returns a single child element.
+ varcontent:ElementContent{
+ returnElementContent(child:Label(text:"😂"))
+ }
+
+ // Providing a view description means that this element will be
+ // backed by a UIView instance when displayed in a `BlueprintView`.
+ funcbackingViewDescription(withcontext:ViewDescriptionContext)->ViewDescription?{
+ returnUIView.describe{configin
+ config.bind(backgroundColor,to:\.backgroundColor)
+ }
+ }
+
+}
+
Custom elements commonly use another element to actually display content. For example, a profile element might
+display an image and a few labels inside a Column element. The ProxyElement protocol is provided to make that
+task easier.
+
+
Conforming types only need to implement elementRepresentation in order to generate an element that will be
+displayed.
The transition used when layout attributes change for a view during an
+update cycle.
+
+
‘Inherited’ transitions: the ‘inherited’ transition is determined by searching up the tree (not literally, but
+this is the resulting behavior). The nearest ancestor that defines an animation will be used, following this
+logic:
+
+
+
Ancestors with a layout transition of none will result in no inherited animation for their descendents.
+
Ancestors in the tree with a layout transition of inherited will be skipped, and the search will continue
+up the tree.
+
Any ancestors in the tree with a layout transition of inheritedWithFallback will be used if they do not
+themselves inherit a layout transition from one of their ancestors.
+
Ancestors with a layout transition of specific will always be used for their descendents inherited
+animation.
+
If no ancestor is found that specifies a layout transition, but the containing BlueprintView has the element
+property assigned from within a UIKit animation block, that animation will be used as the inherited animation.
A SwiftUI view which wraps a Blueprint element, which can be used to preview Blueprint elements
+via Xcode’s preview functionality (enable via the Editor > Canvas menu).
+
+
You can leverage ElementPreview by adding something like this to the bottom of the file which contains
+your Blueprint element, then as you edit and work on your element, the live preview will update to show the
+current state of your element:
+
+structMyElement:Element{
+ ...
+}
+
+// Add this at the bottom of your element's source file.
+
+#if DEBUG && canImport(SwiftUI) && !arch(i386) && !arch(arm)
+
+importSwiftUI
+
+@available(iOS13.0,*)
+structMyElement_Preview:PreviewProvider{
+ staticvarpreviews:someView{
+ ElementPreview{
+ MyElement()
+ }
+ }
+}
+
+#endif
+
+
+
Uhhh
+
+
You’re probably asking…
+Why the !arch(i386) check above? Turns out, a compiler bug!
+SwiftUI is only available on 64 bit devices, but the canImport check erroneously
+finds it when building to target iOS 10 devices. Until we drop iOS 10, this part of the check is also required.
+
Details
+
+
It’s important that you keep the PreviewProvider in the same file as the element that you are editing.
+
+
Why? Xcode uses a new feature called “Dynamic Replacement” to re-compile the source file you are editing,
+and inject it back into the running app which drives the preview. This only works on the level of a single
+file – if your preview and element live in separate files, Xcode needs to recompile your entire module
+which will slow down preview updates greatly.
You must be running Xcode 11 and Catalina to take advantage of live previews.
+They do not work on Mojave. Your selected simulator must also be an iOS 13 device.
Controls the layout system that Blueprint uses to lay out elements.
+
+
Blueprint supports multiple layout systems. Each is expected to produce the same result, but
+some may have different performance profiles or special requirements.
+
+
You can change the layout system used by setting the layoutMode property, but
+generally you should use the default option.
+
+
Changing the default will cause all instances of BlueprintView to be invalidated, and re-
+render their contents.
Logging configuration that will not record measurement data for all Elements.
+This provides a reasonable balance between data collection and performance impact.
+This is the default logging configuration.
Controls the layout system that Blueprint uses to lay out elements.
+
+
Blueprint supports multiple layout systems. Each is expected to produce the same result, but
+some may have different performance profiles or special requirements.
+
+
You can change the layout system used by setting the layoutMode property, but
+generally you should use the default option.
+
+
Changing the default will cause all instances of BlueprintView to be invalidated, and re-
+render their contents.
The transition used when layout attributes change for a view during an
+update cycle.
+
+
‘Inherited’ transitions: the ‘inherited’ transition is determined by searching up the tree (not literally, but
+this is the resulting behavior). The nearest ancestor that defines an animation will be used, following this
+logic:
+
+
+
Ancestors with a layout transition of none will result in no inherited animation for their descendents.
+
Ancestors in the tree with a layout transition of inherited will be skipped, and the search will continue
+up the tree.
+
Any ancestors in the tree with a layout transition of inheritedWithFallback will be used if they do not
+themselves inherit a layout transition from one of their ancestors.
+
Ancestors with a layout transition of specific will always be used for their descendents inherited
+animation.
+
If no ancestor is found that specifies a layout transition, but the containing BlueprintView has the element
+property assigned from within a UIKit animation block, that animation will be used as the inherited animation.
Environment is a container for values to be passed down an element tree.
+
+
Environment values are not resolved until the tree is being rendered, so they do not need to be
+explicitly passed to elements at the time they are created.
+
+
Environment key-value pairs are strongly typed: keys are types conforming to the
+EnvironmentKey protocol, and each key’s value is the type of that key’s
+EnvironmentKey.Value associated value. Keys must provide a default value.
+
Example
+
+
To set an environment value, so that it will cascade to child elements, use
+AdaptedEnvironment. Here, every element in childElement will have access to someValue
+via the key MyEnvironmentKey.
To read an environment value, use EnvironmentReader. If this element were part of the child
+element in the previous example, myValue would be set to someValue. If the key had not
+been set in an ancestor element, the value would be MyEnvironmentKey.defaultValue.
Rounds this value to the specified scale, where the scale is the number of rounding stops per integer.
+
+
A rounding scale of 1.0 is standard integer rounding.
+A rounding scale of 2.0 rounds to halves (0, 0.5, 1.0, 1.5, 2.0, 2.5., …).
+A rounding scale of 3.0 rounds to thirds (0, 1/3, 2/3, 1.0, 4/3, 5/3, 2.0, …).
Returns this value rounded to the specified scale, where the scale is the number of rounding stops per integer.
+
+
A rounding scale of 1.0 is standard integer rounding.
+A rounding scale of 2.0 rounds to halves (0, 0.5, 1.0, 1.5, 2.0, 2.5., …).
+A rounding scale of 3.0 rounds to thirds (0, 1/3, 2/3, 1.0, 4/3, 5/3, 2.0, …).
Define AttributedText keys using this protocol. Keys must have an attribute name
+and an associated type for the attribute.
+
+
After defining a key, enable dynamic member access to it by extending TextAttributeContainer
+with a property for getting and setting setting the value. This property should generally be optional,
+since the text may not have that property defined.
An element type which makes it easier to wrap an existing UIView instance that
+provides its own sizing via sizeThatFits. An instance of the view is used for
+sizing and measurement, so that you do not need to re-implement your own measurement.
+
Note
+
+
The sizing and measurement prototype view is kept alive for the lifetime of the containing application.
+Do not pass anything to the initializer of this type that you expect to be quickly released.
+
Example
+
+
If you were implementing a very basic Switch element, your implementation would look something
+like this:
Types conforming to AlignmentID have a corresponding alignment guide value,
+typically declared as a static constant property of HorizontalAlignment or
+VerticalAlignment.
Defines a way for anElement to be implicitly converted into the conforming type (the child of a container).
+In practice, this allows us to pass an Element directly into the result builder without manually converting to Child (i.e. Converting Element -> StackLayout.Child.
A type that defines the geometry of a collection of elements.
+
+
You traditionally arrange views in your app’s user interface using built-in layout containers
+like Row and Column. If you need more complex layout behavior, you can define a custom
+layout container by creating a type that conforms to the Layout protocol and implementing
+its required methods:
You can define a basic layout type with only these two methods (see note below):
+
structBasicLayout:Layout{
+ funcsizeThatFits(
+ proposal:SizeConstraint,
+ subelements:Subelements,
+ cache:inout()
+ )->CGSize{
+ // Calculate and return the size of the layout container.
+ }
+
+ funcplaceSubelements(
+ insize:CGSize,
+ subelements:Subelements,
+ cache:inout()
+ ){
+ // Tell each subelement where to appear.
+ }
+}
+
+
+
Add your layout to an element by passing it to the ElementContent initializer
+init(layout:configure:). If your layout has parameters that come from the
+element, pass them at initialization time. Use the configure block to add your element’s
+children to the content.
If your layout is specialized for laying out a single subelement, you can use the
+SingleChildLayout protocol instead. It has similar methods, but is strongly typed for a
+single subelement instead of a collection.
+
+
Note
+ During the transition from Blueprint’s legacy layout system to Caffeinated Layout, the
+Layout protocol is composed of two sets of layout methods: LegacyLayout and
+CaffeinatedLayout. While this documentation focuses on the newer layout API, you must
+currently implement both. Fortunately, the methods are similar, and you may be able to reuse
+logic.
+
+
+
Interact with subelements through their proxies
+
+
To perform layout, you need information about all of your container’s subelements, which are the
+child elements that your container arranges. While your layout can’t interact directly with its
+subelements, it can access a set of subelement proxies through the
+Subelements collection that each protocol method receives as an input
+parameter. That type is an alias for the LayoutSubelements collection type, which in turn
+contains LayoutSubelement instances that are the subelement proxies.
+
+
You can get information about each subelement from its proxy, like its dimensions and traits.
+This enables you to measure subelements before you commit to placing them. You also assign a
+position to each subelement by calling its proxy’s place(at:anchor:size:)
+method. Call the method on each subelement from within your implementation of the layout’s
+placeSubelements(in:subelements:environment:cache:) method.
+
Access layout traits
+
+
Subelements may have traits that are specific to their container’s layout. The traits are of
+the Layout protocol’s associated type Traits, and each subelement can have
+a distinct Traits value assigned. You can set this in the configure block of
+init(layout:configure:), when you call
+add(traits:key:element:). If you do not specify a Traits type for
+your layout, it defaults to the void type, ().
+
+
Containers can choose to condition their behavior according to the traits of their subelements.
+For example, the Row and Column types allocate space for their subelements based in part
+on the grow and shrink priorities that you set on each child. Your layout container accesses the
+traits for a subelement by calling traits(forLayoutType:) on the
+LayoutSubelement proxy.
+
+
Note
+ The Layout API, and its documentation, are modeled after SwiftUI’s
+Layout, with major differences
+noted.
+
+
Types conforming to AlignmentID have a corresponding alignment guide value,
+typically declared as a static constant property of HorizontalAlignment or
+VerticalAlignment.
Define AttributedText keys using this protocol. Keys must have an attribute name
+and an associated type for the attribute.
+
+
After defining a key, enable dynamic member access to it by extending TextAttributeContainer
+with a property for getting and setting setting the value. This property should generally be optional,
+since the text may not have that property defined.
Cached values associated with the layout instance.
+
+
If you create a cache for your custom layout, you can use a type alias to define this type
+as your data storage type. Alternatively, you can refer to the data storage type directly in
+all the places where you work with the cache.
Returns the size of the composite element, given a proposed size constraint and the
+container’s subelements.
+
+
Implement this method to tell your custom layout container’s parent how much space the
+container needs for a set of subelements, given a size constraint. The parent might call
+this method more than once during a layout pass with different proposed sizes to test the
+flexibility of the container.
+
+
In Blueprint, parents ultimately choose the size of their children, so the actual size that
+this container is laid out in may not be a size that was returned from this method.
+
Sizing Rules
+
+
For performance reasons, the layout engine may deduce the measurement of your container for
+some constraint values without explicitly calling
+sizeThatFits(proposal:subelements:environment:cache:). To ensure that the deduced value
+is correct, your layout must follow some ground rules:
+
+
+
Given one fixed constraint axis, the element’s growth along the other axis should be
+monotonic. That is, an element can grow when given a larger constraint, or shrink
+when given a smaller constraint, but it should never shrink when given a larger
+constraint. When growing on one axis, it is OK to shrink along the other axis, such as a
+block of text that re-flows as the width changes.
+
For a constraint axis value a, if an element has a length b that is less than a on
+that axis, then the element must return b for all constraint values between a and
+b. In other words, growth must follow a stair-step pattern; elements that grow
+continuously by calculating a fixed inset of the constraint or a percentage value of the
+constraint are forbidden. For example, if an element returns 10 for a constraint of
+20, then the element must return 10 for all values in the range [10, 20].
+
If your element has no intrinsic size along an axis, you can represent that in a couple
+ways:
+
+
+
You can return a fixed value representing the minimum size for your element. In this
+approach, a containing element is usually responsible for stretching your element to
+fill desired space.
+
You can return a size that entirely fills the constraint proposed. In this approach,
+you must return .infinity when the constraint is
+unconstrained. Otherwise, your behavior would be in violation
+of rule #1.
+
+
+
+
If an element does not adhere to these rules, it may lay out in unexpected and unpredictable
+ways.
A size constraint for the container. The container’s parent element that calls
+this method might call the method more than once with different constraints to learn
+more about the container’s flexibility before choosing a size for placement.
+
+
+
+
+
+
+ subelements
+
+
+
+
+
A collection of proxies that represent the elements that the container
+arranges. You can use the proxies in the collection to get information about the
+subelements as you determine how much space the container needs to display them.
+
+
+
+
+
+
+ environment
+
+
+
+
+
The environment of the container. You can use properties from the
+environment when calculating the size of this container, as long as you adhere to the
+sizing rules.
+
+
+
+
+
+
+ cache
+
+
+
+
+
Optional storage for calculated data that you can share among the methods of your
+custom layout container. See makeCache(subelements:environment:) for details.
+
+
+
+
+
+
+
+
Return Value
+
A size that indicates how much space the container needs to arrange its
+subelements.
Assigns positions to each of the layout’s subelements.
+
+
Blueprint calls your implementation of this method to tell your custom layout container to
+place its subelements. From this method, call the
+place(at:anchor:size:) method on each item in subelements to tell the
+subelements where to appear in the user interface.
+
+
You can also update the attributes property of each
+subelement to set properties like opacity and transforms on each subelement.
+
+
Be sure that you use computations during placement that are consistent with those in your
+implementation of other protocol methods for a given set of inputs. For example, if you add
+spacing during placement, make sure your implementation of
+sizeThatFits(proposal:subelements:environment:cache:) accounts for the extra space.
The region that the container’s parent allocates to the container. Place all the
+container’s subelements within the region. The size of this region may not match any
+size that was returned from a call to
+sizeThatFits(proposal:subelements:environment:cache:).
+
+
+
+
+
+
+ subelements
+
+
+
+
+
A collection of proxies that represent the elements that the container
+arranges. Use the proxies in the collection to get information about the subelements and
+to tell the subelements where to appear.
+
+
+
+
+
+
+ environment
+
+
+
+
+
The environment of this container. You can use properties from the
+environment to vary the placement of subelements.
+
+
+
+
+
+
+ cache
+
+
+
+
+
Optional storage for calculated data that you can share among the methods of your
+custom layout container. See makeCache(subelements:environment:) for details.
Creates and initializes a cache for a layout instance.
+
+
You can optionally use a cache to preserve calculated values across calls to a layout
+container’s methods. Many layout types don’t need a cache, because Blueprint automatically
+caches the results of calls into layout methods, such as
+sizeThatFits(_:). Rely on the protocol’s default implementation of this
+method if you don’t need a cache.
Only implement a cache if profiling shows that it improves performance.
+
Initializing a cache
+
+
Implement the makeCache(subelements:) method to create a cache. You can add computed
+values to the cache right away, using information from the subelements input parameter, or
+you can do that later. The methods of the Layout protocol that can access the cache take
+the cache as an in-out parameter, which enables you to modify the cache anywhere that you
+can read it.
+
+
You can use any storage type that makes sense for your layout algorithm, but be sure that
+you only store data that you derive from the layout and its subelements (lazily, if
+possible). For this to work correctly, Blueprint needs to be able to call this method to
+recreate the cache without changing the layout result.
+
+
When you return a cache from this method, you implicitly define a type for your cache. Be
+sure to either make the type of the cache parameters on your other Layout protocol
+methods match, or use a type alias to define the Cache associated type.
A collection of proxy instances that represent the subelements that
+the container arranges. You can use the proxies in the collection to get information about
+the subelements as you calculate values to store in the cache.
+
+
+
+
+
+
+ environment
+
+
+
+
+
The environment of this container.
+
+
+
+
+
+
+
+
Return Value
+
Storage for calculated data that you share among the methods of your custom
+layout container.
Cached values associated with the layout instance.
+
+
If you create a cache for your custom layout, you can use a type alias to define this type
+as your data storage type. Alternatively, you can refer to the data storage type directly in
+all the places where you work with the cache.
Returns the size of the element, given a proposed size constraint and the container’s
+subelement.
+
+
Implement this method to tell your custom layout container’s parent how much space the
+container needs for a subelement, given a size constraint. The parent might call this method
+more than once during a layout pass with different proposed sizes to test the flexibility of
+the container.
+
+
In Blueprint, parents ultimately choose the size of their children, so the actual size that
+this container is laid out in may not be a size that was returned from this method.
A size constraint for the container. The container’s parent element that calls
+this method might call the method more than once with different constraints to learn
+more about the container’s flexibility before choosing a size for placement.
+
+
+
+
+
+
+ subelement
+
+
+
+
+
A proxy that represents the element that the container arranges. You can use
+the proxy to get information about the subelement as you determine how much space the
+container needs to display it.
+
+
+
+
+
+
+ environment
+
+
+
+
+
The environment of the container. You can use properties from the
+environment when calculating the size of this container, as long as you adhere to the
+sizing rules.
+
+
+
+
+
+
+ cache
+
+
+
+
+
Optional storage for calculated data that you can share among the methods of your
+custom layout container. See makeCache(subelement:environment:) for details.
+
+
+
+
+
+
+
+
Return Value
+
A size that indicates how much space the container needs to arrange its
+subelement.
Blueprint calls your implementation of this method to tell your custom layout container to
+place its subelement. From this method, call the place(at:anchor:size:)
+method on subelement to tell the subelement where to appear in the user interface.
+
+
You can also update the attributes property to set
+properties like opacity and transforms on the subelement.
+
+
Be sure that you use computations during placement that are consistent with those in your
+implementation of other protocol methods for a given set of inputs. For example, if you add
+spacing during placement, make sure your implementation of
+sizeThatFits(proposal:subelement:environment:cache:) accounts for the extra space.
The region that the container’s parent allocates to the container. Place the
+container’s subelement within the region. The size of this region may not match any size
+that was returned from a call to
+sizeThatFits(proposal:subelement:environment:cache:).
+
+
+
+
+
+
+ subelement
+
+
+
+
+
A proxy that represents the element that the container arranges. Use the
+proxy to get information about the subelement and to tell the subelement where to
+appear.
+
+
+
+
+
+
+ environment
+
+
+
+
+
The environment of this container. You can use properties from the
+environment to vary the placement of the subelement.
+
+
+
+
+
+
+ cache
+
+
+
+
+
Optional storage for calculated data that you can share among the methods of your
+custom layout container. See makeCache(subelement:environment:) for details.
Creates and initializes a cache for a layout instance.
+
+
You can optionally use a cache to preserve calculated values across calls to a layout
+container’s methods. Many layout types don’t need a cache, because Blueprint automatically
+caches the results of calls into layout methods, such as
+sizeThatFits(_:). Rely on the protocol’s default implementation of this
+method if you don’t need a cache.
A proxy that represent the subelement that the container arranges.
+You can use the proxy to get information about the subelement as you calculate values to
+store in the cache.
+
+
+
+
+
+
+ environment
+
+
+
+
+
The environment of this container.
+
+
+
+
+
+
+
+
Return Value
+
Storage for calculated data that you share among the methods of your custom
+layout container.
By providing child elements that will be displayed recursively within
+the local coordinate space.
+
+
+
+
+
A custom element might look something like this:
+
structMyElement:Element{
+
+ varbackgroundColor:UIColor=.red
+
+ // Returns a single child element.
+ varcontent:ElementContent{
+ returnElementContent(child:Label(text:"😂"))
+ }
+
+ // Providing a view description means that this element will be
+ // backed by a UIView instance when displayed in a `BlueprintView`.
+ funcbackingViewDescription(withcontext:ViewDescriptionContext)->ViewDescription?{
+ returnUIView.describe{configin
+ config.bind(backgroundColor,to:\.backgroundColor)
+ }
+ }
+
+}
+
Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some
+content that can be measured. Leaf elements typically instantiate their content with
+ElementContent(measurable:) or similar.
+
Container elements: these element have one or more children, which are arranged by a layout implementation.
+Container elements typically use methods like ElementContent(layout:configure:) to instantiate
+their content.
Returns an (optional) description of the view that should back this element.
+
+
In Blueprint, elements that are displayed using a live UIView instance are referred to as “view-backed”.
+Elements become view-backed by returning a ViewDescription value from this method.
Keyed allows providing a Hashable value which is used
+during view updates to uniquely identify content during the diff process
+between the old and new element structure.
+
+
This is useful if you have two elements of the same type at the same depth
+in the element hierarchy, and you’d like to differentiate between them, eg
+for appearance transition purposes.
+
Example
+
+
Keying the image returned, so that a transition occurs when changing
+between a placeholder image and an available photo.
Adds a hook that will be called when this element disappears.
+
+
Callbacks run in depth-first traversal order, with parents before children. There is no
+guaranteed order between disappearance callbacks and backing views being removed from their
+superviews.
Blocks all accessibility on the element, so that it is
+is no longer an accessibility element, and its children are
+hidden from the accessibility system.
Wraps the receiver in an accessibility element with the provided values.
+
+
Providing a nil value for any of these parameters will result in no resolved value for that accessibility
+parameter—it does not inherit parameters from the wrapped element’s accessibility configuration.
+
+
Important
+ ⚠️ This overrides the accessibility of the contained element and all of its children ⚠️
+
+
The transition to use when the element appears. By default, no transition.
+
+
+
+
+
+
+ onDisappear
+
+
+
+
+
The transition to use when the element disappears. By default, no transition.
+
+
+
+
+
+
+ onLayout
+
+
+
+
+
The transition to use when the element’s layout changes. The default value is
+.inherited, which means the element will participate in the same transition as its
+nearest ancestor with a specified transition.
Defines a way for anElement to be implicitly converted into the conforming type (the child of a container).
+In practice, this allows us to pass an Element directly into the result builder without manually converting to Child (i.e. Converting Element -> StackLayout.Child.
Custom elements commonly use another element to actually display content. For example, a profile element might
+display an image and a few labels inside a Column element. The ProxyElement protocol is provided to make that
+task easier.
+
+
Conforming types only need to implement elementRepresentation in order to generate an element that will be
+displayed.
An element type which makes it easier to wrap an existing UIView instance that
+provides its own sizing via sizeThatFits. An instance of the view is used for
+sizing and measurement, so that you do not need to re-implement your own measurement.
+
Note
+
+
The sizing and measurement prototype view is kept alive for the lifetime of the containing application.
+Do not pass anything to the initializer of this type that you expect to be quickly released.
+
Example
+
+
If you were implementing a very basic Switch element, your implementation would look something
+like this:
Create and return a new instance of the provided view type.
+
Note
+
+
Ensure that you do not pass any values to the initializer of your view type
+that you cannot also update in updateUIView(_:), as view instances
+are reused for sizing and measurement.
Update the view instance with the content from the element. The context provides additional
+information, such as whether the update is for the measuring instance.
+
Example
+
+
If you were to implement a simple UIViewElement which wraps a UISwitch,
+your update method would look like this:
Returns the sizing measurement for the element for the provided
+measurement view.
+
+
You usually do not need to implement this method – the default implementation of
+this method simply calls sizeThatFits(_:) on the provided view.
+
+
The view is fully configured and updated before this method is called – you do not need to
+update it in any way.
+
When To Override
+
+
You may want to override this method if you need to mutate the value returned from sizeThatFits(_:),
+or if you want to use some other sizing method like systemLayoutSizeFitting(...).
+
+
+
Default Implementation
+
+
The default implementation simply forwards to sizeThatFits(_:).
AttributedText allows you to apply strongly-typed attributes to strings (much like the AttributedString type
+introduced in iOS 15). You can then access the attributedString property to get an attributed string with those
+attributes applied.
+
+
For example:
+
vartext=AttributedText(string:"Hello, world")
+// Apply a font to the entire range
+text.font=.systemFont(ofSize:20)
+
+// Apply a color to part of the string
+letrange=text.string.range(of:"world")!
+text[range].color=.blue
+
+// Render the attributed text
+letlabel=AttributedLabel(attributedText:text.attributedString)
+
A property wrapper type that can read and write a value that represents the placement of focus.
+
+
Use this property wrapper in conjunction with modifiers on elements that support focus, such as
+TextField.focused(when:equals:) and TextField.focused(when:), to describe when those elements
+should have focus. When focus enters the modified element, the wrapped value of this property
+updates to match a given value. Similarly, when focus leaves, the wrapped value of this property
+resets to nil or false. Setting this property’s value programmatically has the reverse
+effect, causing focus to move to the element associated with the updated value.
+
+
In the following example of a simple login screen, when the user presses the Sign In button and
+one of the fields is still empty, focus moves to that field. Otherwise, the sign-in process
+proceeds.
To allow for cases where focus is completely absent from a view tree, the wrapped value must be
+either an optional or a Boolean. Set the focus binding to false or nil as appropriate to
+remove focus from all bound fields. You can also use this to remove focus from a TextField
+and thereby dismiss the keyboard.
+
Auto-Focus
+
+
To auto-focus a field when it appears, set the value in an onAppear hook.
A TextField can have only one focus binding, stored in its focusBinding property. If you apply
+the focused modifier multiple times, the last one will overwrite the previous value.
+
+
On the other hand, binding the same value to two views is ambiguous. In the following example,
+two separate fields bind focus to the name value:
If the user moves focus to either field, the focusedField binding updates to name. However,
+if the app programmatically sets the value to name, the last field bound will be chosen.
An element’s size and its alignment guides in its own coordinate space.
+
+
You can access the size of the element through the width and height properties. You can
+access alignment guide values by subscripting with the specific alignment.
+
+
These dimensions are typically used when setting an alignment guide on a stack, with
+StackElement.add(...).
+
Example
+
// get the alignment guide value for `VerticalAlignment.center`, falling back to the default
+// value if no alignment guide has been set
+dimensions[VerticalAlignment.center]
+
+// get the alignment guide value for `HorizontalAlignment.trailing`, or `nil` if none has been
+// set.
+dimensions[explicit:.trailing]
+
Element which lays out children horizontally, wrapping to another row when there is not enough space.
+
+
You may control the layout of each row within the flow layout, by providing a LineAlignment,
+which controls the horizontal alignment of content within a row when it is smaller than its container,
+and via ItemAlignment, which controls the vertical alignment of shorter elements within a row.
Like Row, GridRow displays a list of items in a linear horizontal layout. Unlike Row, GridRow provides
+convenience for describing columnar layout.
+
+
Horizontally, GridRow children are stretched to fill the available space. Vertically, children are aligned
+according to the verticalAlignment property.
+
+
Children may be sized proportionally or absolutely. Proportionally-sized children are granted a proportion of
+the total layout space after absolutely-sized children and margins have been subtracted.
Keyed allows providing a Hashable value which is used
+during view updates to uniquely identify content during the diff process
+between the old and new element structure.
+
+
This is useful if you have two elements of the same type at the same depth
+in the element hierarchy, and you’d like to differentiate between them, eg
+for appearance transition purposes.
+
Example
+
+
Keying the image returned, so that a transition occurs when changing
+between a placeholder image and an available photo.
A proxy that represents one child element of a layout.
+
+
This type acts as a proxy for a child element in a Layout. Layout protocol methods receive a
+LayoutSubelements collection that contains exactly one proxy for each of the child elements
+managed by the layout.
+
+
Use this proxy to get information about the associated element, like its size and traits. You
+should also use the proxy to tell its corresponding element where to appear by calling the
+proxy’s place(at:anchor:size:) method. Do this once for each subview from your
+implementation of the layout’s
+placeSubelements(in:subelements:environment:cache:) method.
+
+
Note
+ The LayoutSubelement API, and its documentation, are modeled after SwiftUI’s
+LayoutSubview, with major
+differences noted.
+
+
A normalized point in an element’s coordinate space.
+
+
Use a unit point to represent a location in an element without having to know the element’s
+rendered size. The point stores a value in each dimension that indicates the fraction of the
+element’s size in that dimension — measured from the element’s origin — where the point appears.
+For example, you can create a unit point that represents the center of any element by using the
+value 0.5 for each dimension:
+
letunitPoint=UnitPoint(x:0.5,y:0.5)
+
+
+
To project the unit point into the rendered element’s coordinate space, multiply each component
+of the unit point with the corresponding component of the element’s size:
You can perform this calculation yourself if you happen to know an element’s size, but Blueprint
+typically does this for you to carry out operations that you request, like when you place a
+subelement in a custom layout.
+
+
You can create custom unit points with explicit values, like the example above, or you can use
+one of the built-in unit points, like zero, center, or topTrailing. The built-in
+values correspond to the alignment positions of the similarly named, built-in Alignment
+types.
+
+
Note
+ A unit point with one or more components outside the range [0, 1] projects to a point
+outside of the element.
+
+
Blocks all accessibility on the element, so that it is
+is no longer an accessibility element, and its children are
+hidden from the accessibility system.
Acts as an accessibility container for any accessible subviews.
+
+
Accessible subviews are found using the following algorithm:
+
+
Recurse subviews until a view is found that either
+
+
+
hasisAccessibilityElement set to true or
+
+
+
If an accessibility element is found, we add it to the accessibilityElements
+and terminate the search down that branch. If a container is found,
+the elements returned from the container are added to the accessibilityElements
+and the search down that branch is also terminated.
Used to provide custom behaviour when activated by voiceover. This will override the default behavior of issuing a tap event at the accessibility activation point.
+See Accessibility Activate Documentation for further information.
An array containing one or more CustomActions, defining additional supported actions. Assistive technologies, such as VoiceOver, will display your custom actions to the user at appropriate times.
An array containing one or more CustomContents, defining additional content associated with the element. Assistive technologies, such as VoiceOver, will announce your custom content to the user at appropriate times.
In addtion to being available through the rotor, high importance content will announced in the main VoiceOver utterance.
+High Importance content is announced follllowing the accessibilityValue but preceding any accessibilityHint.
Used in conjunction with UIAccessibilityTrait.adjustable, these will be called to allow accessible adjustment of a value, for example in a slider or stepper control.
+See Accessibility Increment Documentation for further information.
Used in conjunction with UIAccessibilityTrait.adjustable, these will be called to allow accessible adjustment of a value, for example in a slider or stepper control.
+See Accessibility Decrement Documentation for further information.
Wraps an element tree with a modified environment.
+
+
By specifying environmental values with this element, all child elements nested
+will automatically inherit those values automatically. Values can be changed
+anywhere in a sub-tree by inserting another AdaptedEnvironment element.
Aligns a content element within itself. The vertical and horizontal alignment may be set independently.
+
+
When using alignment mode .fill, the content is scaled to the width or height of the Aligned element.
+
+
For other modes, the size of the content element is determined by calling measure(in:)
+on the content element – even if that size is larger than the wrapping element.
If you customize the line break mode using an NSParagraphStyle, the mode will be normalized
+based on the number of lines allowed. This is because some line break modes are incompatible
+with multi-line text rendering in TextKit, which is used to detect where links are in the text.
+Some modes also break line height adjustment in single-line labels, so these are also normalized.
+
+
Specifically:
+
+
+
1 line labels with a mode of byCharWrapping or byWordWrapping will be normalized to byClipping.
+
Multiline labels with a mode of byTruncatingHead or byTruncatingMiddle
+will be normalized to byTruncatingTail.
A shadow to display behind the label’s text. Defaults to no shadow.
+
+
Note
+ This shadow is applied using the backing view’s CALayer, and will affect the
+entire label. To apply a shadow to only a portion of text, you can instead set
+NSAttributedString.Key.shadow on the string, but note that those shadows may be clipped
+by the bounds of the backing view.
+
+
A Boolean value that determines whether the label reduces the text’s font
+size to fit the title string into the label’s bounding rectangle.
+
+
Normally, the label draws the text with the font you specify in the font property.
+If this property is true, and the text in the text property exceeds the label’s bounding rectangle,
+the label reduces the font size until the text fits or it has scaled the font down to the minimum
+font size. The default value for this property is false.
+
+
If you change it to true, be sure that you also set an appropriate minimum
+font scale by modifying the minimumScaleFactor property.
+
+
This autoshrinking behavior is only intended for use with a single-line label.
If the adjustsFontSizeToFitWidth is true, use this property to specify the
+smallest multiplier for the current font size that yields an acceptable
+font size for the label’s text.
+
+
If you specify a value of 0 for this property, the label doesn’t scale the text down.
+The default value of this property is 0.
A Boolean value that determines whether the label tightens text before truncating.
+
+
When the value of this property is true, the label tightens intercharacter spacing
+of its text before allowing any truncation to occur. The label determines the
+maximum amount of tightening automatically based on the font, current line width,
+line break mode, and other relevant information.
+
+
This autoshrinking behavior is only intended for use with a single-line label.
An array containing one or more AccessibilityElement.CustomActions, defining additional supported actions. Assistive technologies, such as VoiceOver, will display your custom actions to the user at appropriate times.
AttributedText allows you to apply strongly-typed attributes to strings (much like the AttributedString type
+introduced in iOS 15). You can then access the attributedString property to get an attributed string with those
+attributes applied.
+
+
For example:
+
vartext=AttributedText(string:"Hello, world")
+// Apply a font to the entire range
+text.font=.systemFont(ofSize:20)
+
+// Apply a color to part of the string
+letrange=text.string.range(of:"world")!
+text[range].color=.blue
+
+// Render the attributed text
+letlabel=AttributedLabel(attributedText:text.attributedString)
+
Note that only attributes applying to the entire range will be returned. For example, if the text
+has two different font attributes, then text.font will be nil.
Note that the returned TextAttributeContainer will only contain attributes that apply to the entire subscript
+range. (Setting an attribute will set it across the subscript range regardless of any existing contents).
This function is disfavored in case a builder wants to offer additional buildExpression functions to support
+multiple types in their builders. @_disfavoredOverload allows the compiler to choose the other function when
+nil is built, instead of it being ambiguous.
An element that wraps a child element in a button that mimics a UIButton with the .system style. That is, when
+highlighted (or disabled), it fades its contents to partial alpha.
The size of the content element is determined by calling measure(in:) on
+the content element – even if that size is larger than the wrapping Centered
+element.
By default, each item in the column will be stretched or compressed with equal priority in
+the event of overflow or underflow. You can control this behavior by adding a
+stackLayoutChild modifier to an item.
Using the specified alignment, children will be aligned relatively to each other, and
+then all the contents will be aligned to the column’s bounding box.
+
+
This case can be used for custom alignments. For common alignments you can use the
+existing static instancesleading, center, and trailing.
The content will be sized to fill its parent while
+maintaining the specified aspect ratio.
+
+
In legacy layout mode, if the parent is unconstrained in all dimensions,
+the content size will be used for measurement and will behave like fitContent. If the
+parent is unconstrained in one dimension, the element will fill the constrained
+dimension.
+
+
In caffeinated, if the parent is unconstrained in any dimension, this
+element will report a size of infinity.
The content will be sized to fit within its parent while maintaining the specified
+aspect ratio.
+
+
If the parent is unconstrained in one dimension, the element will fit the constrained
+dimension.
+
+
In legacy layout mode, if the parent is unconstrained in all dimensions,
+the content size will be used for measurement and will behave like fitContent.
+
+
In caffeinated layout mode, if the parent is unconstrained in both
+dimensions, this element will report a size of infinity.
The content will grow in whichever dimension is needed to maintain the aspect ratio,
+while ensuring the content still fits.
+
+
This mode does not take the parents applied size constraint into account, so the parent
+may ultimately layout the element without the constrained aspect ratio.
The content will shrink in whichever dimension is needed to maintain the aspect ratio,
+meaning it may be smaller in one dimension than the measured size.
+
+
This mode does not take the parents applied size constraint into account, so the parent
+may ultimately layout the element without the constrained aspect ratio.
Constrains the measured size of the contained element in the ranges specified by the width and height properties.
+
+
There are several constraint types available for each axis. See ConstrainedSize.Constraint for a full list and in-depth
+descriptions of each.
+
Notes
+
+
An important note is that the constraints of ConstrainedSize are authoritative during measurement. For example,
+if your ConstrainedSize specifies .atLeast(300) for width, and the ConstrainedSize is asked to measure within
+a SizeConstraint that is at most 100 points wide, the returned measurement will still be 300 points. The same goes for the
+height of the ConstrainedSize.
The measured size for this axis will be within the range provided.
+If the measured value is below the bottom of the range, the lower value will be used.
+If the measured value is above the top of the range, the lower value will be used.
Provides a .inset position where the decoration is inset by the
+horizontal amount on the left and right, and the vertical amount on the top and bottom.
Initializes a new ElementContent that will lazily create its storage during a layout and measurement pass,
+based on the Environment passed to the builder closure.
Initializes a new ElementContent with the given child element, measurement caching key, and environment adapter,
+which allows adapting the environment to affect the element, plus elements further down the tree.
Initializes a new ElementContent with the given child element, measurement caching key, and environment key + value.
+which adapts the environment to affect the element, plus elements further down the tree.
Creates a new ElementContent which uses the provided element to measure its
+size, but does not place the element as a child in the final, laid out hierarchy.
+
+
This is useful if you are placing the element in a nested BlueprintView, for example (eg
+to create a stateful element) and just need this element to be correctly sized.
An element’s size and its alignment guides in its own coordinate space.
+
+
You can access the size of the element through the width and height properties. You can
+access alignment guide values by subscripting with the specific alignment.
+
+
These dimensions are typically used when setting an alignment guide on a stack, with
+StackElement.add(...).
+
Example
+
// get the alignment guide value for `VerticalAlignment.center`, falling back to the default
+// value if no alignment guide has been set
+dimensions[VerticalAlignment.center]
+
+// get the alignment guide value for `HorizontalAlignment.trailing`, or `nil` if none has been
+// set.
+dimensions[explicit:.trailing]
+
A SwiftUI view which wraps a Blueprint element, which can be used to preview Blueprint elements
+via Xcode’s preview functionality (enable via the Editor > Canvas menu).
+
+
You can leverage ElementPreview by adding something like this to the bottom of the file which contains
+your Blueprint element, then as you edit and work on your element, the live preview will update to show the
+current state of your element:
+
+structMyElement:Element{
+ ...
+}
+
+// Add this at the bottom of your element's source file.
+
+#if DEBUG && canImport(SwiftUI) && !arch(i386) && !arch(arm)
+
+importSwiftUI
+
+@available(iOS13.0,*)
+structMyElement_Preview:PreviewProvider{
+ staticvarpreviews:someView{
+ ElementPreview{
+ MyElement()
+ }
+ }
+}
+
+#endif
+
+
+
Uhhh
+
+
You’re probably asking…
+Why the !arch(i386) check above? Turns out, a compiler bug!
+SwiftUI is only available on 64 bit devices, but the canImport check erroneously
+finds it when building to target iOS 10 devices. Until we drop iOS 10, this part of the check is also required.
+
Details
+
+
It’s important that you keep the PreviewProvider in the same file as the element that you are editing.
+
+
Why? Xcode uses a new feature called “Dynamic Replacement” to re-compile the source file you are editing,
+and inject it back into the running app which drives the preview. This only works on the level of a single
+file – if your preview and element live in separate files, Xcode needs to recompile your entire module
+which will slow down preview updates greatly.
You must be running Xcode 11 and Catalina to take advantage of live previews.
+They do not work on Mojave. Your selected simulator must also be an iOS 13 device.
Environment is a container for values to be passed down an element tree.
+
+
Environment values are not resolved until the tree is being rendered, so they do not need to be
+explicitly passed to elements at the time they are created.
+
+
Environment key-value pairs are strongly typed: keys are types conforming to the
+EnvironmentKey protocol, and each key’s value is the type of that key’s
+EnvironmentKey.Value associated value. Keys must provide a default value.
+
Example
+
+
To set an environment value, so that it will cascade to child elements, use
+AdaptedEnvironment. Here, every element in childElement will have access to someValue
+via the key MyEnvironmentKey.
To read an environment value, use EnvironmentReader. If this element were part of the child
+element in the previous example, myValue would be set to someValue. If the key had not
+been set in an ancestor element, the value would be MyEnvironmentKey.defaultValue.
An element that sizes its children equally, stacking them in the primary axis according to
+the specified direction and spacing them according to the specified spacing. In the
+secondary axis, children are justified to fill the space of the largest child.
+
+
Note
+ A stack measures itself by determining its largest child in each axis, and
+ in the case of the primary axis, multiplying by children.count (accounting
+ for spacing as necessary).
+
+
Element which lays out children horizontally, wrapping to another row when there is not enough space.
+
+
You may control the layout of each row within the flow layout, by providing a LineAlignment,
+which controls the horizontal alignment of content within a row when it is smaller than its container,
+and via ItemAlignment, which controls the vertical alignment of shorter elements within a row.
A property wrapper type that can read and write a value that represents the placement of focus.
+
+
Use this property wrapper in conjunction with modifiers on elements that support focus, such as
+TextField.focused(when:equals:) and TextField.focused(when:), to describe when those elements
+should have focus. When focus enters the modified element, the wrapped value of this property
+updates to match a given value. Similarly, when focus leaves, the wrapped value of this property
+resets to nil or false. Setting this property’s value programmatically has the reverse
+effect, causing focus to move to the element associated with the updated value.
+
+
In the following example of a simple login screen, when the user presses the Sign In button and
+one of the fields is still empty, focus moves to that field. Otherwise, the sign-in process
+proceeds.
To allow for cases where focus is completely absent from a view tree, the wrapped value must be
+either an optional or a Boolean. Set the focus binding to false or nil as appropriate to
+remove focus from all bound fields. You can also use this to remove focus from a TextField
+and thereby dismiss the keyboard.
+
Auto-Focus
+
+
To auto-focus a field when it appears, set the value in an onAppear hook.
A TextField can have only one focus binding, stored in its focusBinding property. If you apply
+the focused modifier multiple times, the last one will overwrite the previous value.
+
+
On the other hand, binding the same value to two views is ambiguous. In the following example,
+two separate fields bind focus to the name value:
If the user moves focus to either field, the focusedField binding updates to name. However,
+if the app programmatically sets the value to name, the last field bound will be chosen.
The current state value, taking into account whatever bindings might be
+in effect due to the current location of focus.
+
+
When focus is not in any view that is bound to this state, the wrapped
+value will be nil (for optional-typed state) or false (for Bool-
+typed state).
A projection of the focus state that can be bound to focusable elements.
+
+
Use this property wrapper in conjunction with modifiers on elements that support focus, such
+as TextField.focused(when:equals) and TextField.focused(when:), to describe when those
+elements should have focus.
+
+
To add focus support to a custom element, use one of the methods on this projection to
+retrieve a FocusBinding: binding() for Bool values and binding(for:) for optional
+values.
Gets a focus binding associated with the FocusState being a specific value.
+
+
You can use this binding to add focus support to a custom element.
+
+
When the FocusState property is set to this value, the binding’s focus trigger will
+fire, and when the property is set to another value, the binding’s blur trigger will fire.
+Similarly, calling the onFocus callback will set the FocusState to this value, and the
+onBlur callback will set it to nil.
Gets a focus binding associated with the FocusState value being true.
+
+
You can use this binding to add focus support to a custom element.
+
+
When the FocusState property is set to true, the binding’s focus trigger will fire, and
+when the property is set to false, the binding’s blur trigger will fire. Similarly,
+calling the onFocus callback will set the FocusState to true, and the onBlur callback
+will set it to false.
Like Row, GridRow displays a list of items in a linear horizontal layout. Unlike Row, GridRow provides
+convenience for describing columnar layout.
+
+
Horizontally, GridRow children are stretched to fill the available space. Vertically, children are aligned
+according to the verticalAlignment property.
+
+
Children may be sized proportionally or absolutely. Proportionally-sized children are granted a proportion of
+the total layout space after absolutely-sized children and margins have been subtracted.
Assign the child a proportional width of the available layout width. Note that proportional children
+take proportional shares of the available layout width.
iOS 14 added support for Image Descriptions using VoiceOver. This is not always appropriate.
+Set this to true to prevent VoiceOver from describing the displayed image.
The image is stretched to fill the Image element, causing the image
+to become distorted if its aspect ratio is different than that of the
+containing element.
The image is scaled to touch the edges of the Image element while
+maintaining the image’s aspect ratio. If the aspect ratio of the
+image is different than that of the element, the image will be
+letterboxed or pillarboxed as needed to ensure that the entire
+image is visible within the element.
The image is scaled to fill the entire Image element. If the aspect
+ratio of the image is different than that of the element, the image
+will be cropped to match the element’s aspect ratio.
Keyed allows providing a Hashable value which is used
+during view updates to uniquely identify content during the diff process
+between the old and new element structure.
+
+
This is useful if you have two elements of the same type at the same depth
+in the element hierarchy, and you’d like to differentiate between them, eg
+for appearance transition purposes.
+
Example
+
+
Keying the image returned, so that a transition occurs when changing
+between a placeholder image and an available photo.
A Boolean value that determines whether the label reduces the text’s font
+size to fit the title string into the label’s bounding rectangle.
+
+
Normally, the label draws the text with the font you specify in the font property.
+If this property is true, and the text in the text property exceeds the label’s bounding rectangle,
+the label reduces the font size until the text fits or it has scaled the font down to the minimum
+font size. The default value for this property is false.
+
+
If you change it to true, be sure that you also set an appropriate minimum
+font scale by modifying the minimumScaleFactor property.
+
+
This autoshrinking behavior is only intended for use with a single-line label.
If the adjustsFontSizeToFitWidth is true, use this property to specify the
+smallest multiplier for the current font size that yields an acceptable
+font size for the label’s text.
+
+
If you specify a value of 0 for this property, the label doesn’t scale the text down.
+The default value of this property is 0.
A Boolean value that determines whether the label tightens text before truncating.
+
+
When the value of this property is true, the label tightens intercharacter spacing
+of its text before allowing any truncation to occur. The label determines the
+maximum amount of tightening automatically based on the font, current line width,
+line break mode, and other relevant information.
+
+
This autoshrinking behavior is only intended for use with a single-line label.
An array containing one or more AccessibilityElement.CustomActions, defining additional supported actions. Assistive technologies, such as VoiceOver, will display your custom actions to the user at appropriate times.
Enables aggressive cache hinting along the boundaries of the range between constraints and
+measured sizes. Requires elements to conform to the Caffeinated Layout contract for correct
+behavior.
Allows cache misses on finite constraints to deduce a range-based match by searching for a
+hit on the unconstrained value for each axis. Requires elements to adhere to the Caffeinated
+Layout contract for correct behavior.
A proxy that represents one child element of a layout.
+
+
This type acts as a proxy for a child element in a Layout. Layout protocol methods receive a
+LayoutSubelements collection that contains exactly one proxy for each of the child elements
+managed by the layout.
+
+
Use this proxy to get information about the associated element, like its size and traits. You
+should also use the proxy to tell its corresponding element where to appear by calling the
+proxy’s place(at:anchor:size:) method. Do this once for each subview from your
+implementation of the layout’s
+placeSubelements(in:subelements:environment:cache:) method.
+
+
Note
+ The LayoutSubelement API, and its documentation, are modeled after SwiftUI’s
+LayoutSubview, with major
+differences noted.
+
+
Call this method from your implementation of the Layout protocol’s
+placeSubelements(in:subelements:environment:cache:) method for each
+subelement arranged by the layout. Provide a position within the container’s bounds where
+the subelement should appear, an anchor that indicates which part of the subelement appears
+at that point, and a size.
+
+
To learn the subelement’s preferred size for a given proposal before calling this method,
+you can call sizeThatFits(_:) method on the subelement.
+
+
If you call this method more than once for a subelement, the last call takes precedence. If
+you don’t call this method for a subelement, the subelement fills the bounds of its
+container.
The place where the anchor of the subelement should appear in its container,
+relative to the container’s bounds.
+
+
+
+
+
+
+ anchor
+
+
+
+
+
The unit point on the subelement that appears at position. You can use a
+built-in point, like center, or you can create a custom UnitPoint.
+
+
+
+
+
+
+ size
+
+
+
+
+
The size of the subelement. In Blueprint, parents choose their children’s size.
+You can determine a good size for a subelement by calling sizeThatFits(_:) on it.
The position and size of the subelement. The origin of this frame represents the
+place where the anchor of the subelement should appear in its container, relative to the
+container’s bounds. In Blueprint, parents choose their children’s size. You can
+determine a good size for a subelement by calling sizeThatFits(_:) on it.
+
+
+
+
+
+
+ anchor
+
+
+
+
+
The unit point on the subelement that appears at position. You can use a
+built-in point, like center, or you can create a custom UnitPoint.
Creates a new instance of the LayoutWriter with the custom layout provided by the builder.
+
+
The parameters to the closure are the Context, which provides information about
+the environment and sizing of the layout, and the Builder itself, which you use to
+add child elements to the layout.
How the size of the layout should be calculated. Defaults to .unionOfChildren,
+which means the size will be big enough to contain the frames of all contained children.
The children of the custom layout, which specifies the child element and its frame.
+
Note
+
+
You rarely need to access this property directly. Instead, add children via
+the various provided add(...) methods. However, if you’re map-ing over an array
+or other collection of content, using this property directly is useful.
The phase of the layout current occurring – measurement or layout.
+
+
You can use this value to vary calculations as needed between phases; eg, to make
+an element take up the full available size during the .layout phase, where sizing is known.
The large rect will be the calculated size / bounds of the layout, starting at (0,0). Any rects with
+negative origins will overhang the layout to the top or left, respectively.
Fixes the layout size to the provided size. Children are positioned within this size, starting at (0,0)
+Any rects with negative origins will overhang the layout to the top or left, respectively.
Adds a hook that will be called when this element disappears.
+
+
Callbacks run in depth-first traversal order, with parents before children. There is no
+guaranteed order between disappearance callbacks and backing views being removed from their
+superviews.
Using the specified alignment, children will be aligned relatively to each other, and
+then all the contents will be aligned to the row’s bounding box.
+
+
This case can be used for custom alignments. For common alignments you can use the
+existing static instancestop, center, and bottom.
The thickness of the rule in the direction perpendicular to its orientation.
+Defaults to a hairline thickness, meaning the thinnest possible line that can be drawn.
This property wrapper checks the value of atMost cases, and turns it into an
+unconstrained axis if the value equals greatestFiniteMagnitude or isInfinite.
This property wrapper checks the value of atMost cases, and turns it into an
+unconstrained axis if the value equals greatestFiniteMagnitude or isInfinite.
Children will be aligned relatively to each other, and then all the contents will be
+aligned to the stack’s bounding box, according to the specified alignment.
Returns a value along the stack’s cross axis, in the element’s own coordinate space,
+where a child should be aligned relative to the alignment guides of its siblings.
A set of accessibility traits that should be applied to the field, these will be merged with any existing traits.
+These traits should relate to the content of the text, for example .header, .link, or .updatesFrequently.
Modifies this text field by binding its focus state to the given state value.
+
+
Use this modifier to cause the text field to receive focus whenever the state equals
+the value. Typically, you create an enumeration of fields that may receive focus, bind an
+instance of this enumeration, and assign its cases to focusable views.
+
+
The following example uses the cases of a LoginForm enumeration to bind the focus state of
+two TextField elements. A sign-in button validates the fields and sets the bound
+focusedField value to any field that requires the user to correct a problem.
Modifies this text field by binding its focus state to the given Boolean state value.
+
+
Use this modifier to cause the text field to receive focus whenever the the condition is
+true. You can use this modifier to observe the focus state of a text field, or
+programmatically focus or blur the field.
+
+
In the following example, a single text field accepts a user’s desired username. The text
+field binds its focus state to the Boolean value isUsernameFocused. A “Submit” button’s
+action checks if the username is empty, and sets isUsernameFocused to true, which causes
+focus to return to the text field.
The transition to use when the element appears. By default, no transition.
+
+
+
+
+
+
+ disappearingTransition
+
+
+
+
+
The transition to use when the element disappears. By default, no transition.
+
+
+
+
+
+
+ layoutTransition
+
+
+
+
+
The transition to use when the element’s layout changes. The default value is
+.inherited, which means the element will participate in the same transition as its
+nearest ancestor with a specified transition.
This bool indicates whether the view being updated is the static measuring instance. You may
+not want to perform certain updates if it is (such as updating field trigger references).
A normalized point in an element’s coordinate space.
+
+
Use a unit point to represent a location in an element without having to know the element’s
+rendered size. The point stores a value in each dimension that indicates the fraction of the
+element’s size in that dimension — measured from the element’s origin — where the point appears.
+For example, you can create a unit point that represents the center of any element by using the
+value 0.5 for each dimension:
+
letunitPoint=UnitPoint(x:0.5,y:0.5)
+
+
+
To project the unit point into the rendered element’s coordinate space, multiply each component
+of the unit point with the corresponding component of the element’s size:
You can perform this calculation yourself if you happen to know an element’s size, but Blueprint
+typically does this for you to carry out operations that you request, like when you place a
+subelement in a custom layout.
+
+
You can create custom unit points with explicit values, like the example above, or you can use
+one of the built-in unit points, like zero, center, or topTrailing. The built-in
+values correspond to the alignment positions of the similarly named, built-in Alignment
+types.
+
+
Note
+ A unit point with one or more components outside the range [0, 1] projects to a point
+outside of the element.
+
+
A closure that takes a native view instance as the single argument, and
+returns a subview of that view into which child views should be added
+and managed.
The prioritization method to use when snapping the native view’s frame to pixel
+boundaries.
+
+
When snapping views to pixel boundaries, Blueprint prioritizes placing frame edges as
+close to the correct value as possible. This ensures that flush edges stay flush after
+rounding, but can result in frame sizes growing or shrinking by 1 pixel in either axis.
+
+
Backing views that are particularly sensitive to size changes can opt-in to prioritize
+preserving their frame size instead of maximally correct edges. This will guarantee
+frame sizes, with the tradeoff that their edges may no longer be flush to other edges as
+they were laid out.
+
+
Generally you should not change this value except in specific circumstances when all
+criteria are met:
+
+
+
The backing view is sensitive to frame size, such as a text label.
+
And the backing view has a transparent background, so that overlapping frames or gaps
+between frames are not visible.
Subscript for values that are not optional. We must represent these values as optional so that we can
+return nil from the subscript in the case where no value has been assigned for the given keypath.
+
+
When getting a value for a keypath:
+
+
+
If a value has previously been assigned, it will be returned.
+
If no value has been assigned, nil will be returned.
+
+
+
When assigning a value for a keypath:
+
+
+
If a value is provided, it will be applied to the view.
+
If nil is provided, no value will be applied to the view (any previous assignment will be cleared).
If a value has previously been assigned (including nil), it will be returned.
+
If no value has been assigned, nil will be returned.
+
+
+
When assigning a value for a keypath:
+
+
+
Any provided value will be applied to the view (including nil). This means that there is a difference
+between the initial state of a view description (where the view’s property will not be touched), and the
+state after nil is assigned. After assigning nil to an optional keypath, view.property = nil will
+be called on the next update.
In Xcode 11+, add Blueprint directly as a dependency to your project with
+File > Swift Packages > Add Package Dependency.... Provide the git URL when prompted: git@github.com:square/Blueprint.git.
+
Cocoapods
+
+
+
+
If you use CocoaPods to manage your dependencies, simply add BlueprintUI and BlueprintUICommonControls to your
+Podfile:
Blueprint provides an architecture that allows you to:
+
+
+
Declaratively define a UI hierarchy as pure values (Swift structs and enums).
+
Display that hierarchy within your application.
+
Update that hierarchy as application state changes (including animated transitions).
+
+
When should I use it?
+
+
Use Blueprint any time you want to display a view hierarchy, but don’t want to manage view lifecycle (hint: managing view lifecycle is a large portion of most conventional UIKit code). There are times when you want to manage view lifecycle (complex animations and transitions are a good example), and for these cases you may want to stick with a conventional approach.
+
How does it interact with UIKit?
+
+
Blueprint is not a replacement for UIKit! From the beginning, Blueprint has been designed as a compliment to all of the powerful tools that come with the platform. You can use Blueprint to manage the display of a single view controller, or of a single view representing a small part of the screen. Likewise, it’s straightforward to host standard views and controls within a blueprint hierarchy, always leaving you with an escape hatch.
Licensed under the Apache License, Version 2.0 (the “License”);
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an “AS IS” BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
");
+ $input.on("blur.tt", function($e) {
+ var active, isActive, hasActive;
+ active = document.activeElement;
+ isActive = $menu.is(active);
+ hasActive = $menu.has(active).length > 0;
+ if (_.isMsie() && (isActive || hasActive)) {
+ $e.preventDefault();
+ $e.stopImmediatePropagation();
+ _.defer(function() {
+ $input.focus();
+ });
+ }
+ });
+ $menu.on("mousedown.tt", function($e) {
+ $e.preventDefault();
+ });
+ },
+ _onSelectableClicked: function onSelectableClicked(type, $el) {
+ this.select($el);
+ },
+ _onDatasetCleared: function onDatasetCleared() {
+ this._updateHint();
+ },
+ _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) {
+ this._updateHint();
+ if (this.autoselect) {
+ var cursorClass = this.selectors.cursor.substr(1);
+ this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass);
+ }
+ this.eventBus.trigger("render", suggestions, async, dataset);
+ },
+ _onAsyncRequested: function onAsyncRequested(type, dataset, query) {
+ this.eventBus.trigger("asyncrequest", query, dataset);
+ },
+ _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) {
+ this.eventBus.trigger("asynccancel", query, dataset);
+ },
+ _onAsyncReceived: function onAsyncReceived(type, dataset, query) {
+ this.eventBus.trigger("asyncreceive", query, dataset);
+ },
+ _onFocused: function onFocused() {
+ this._minLengthMet() && this.menu.update(this.input.getQuery());
+ },
+ _onBlurred: function onBlurred() {
+ if (this.input.hasQueryChangedSinceLastFocus()) {
+ this.eventBus.trigger("change", this.input.getQuery());
+ }
+ },
+ _onEnterKeyed: function onEnterKeyed(type, $e) {
+ var $selectable;
+ if ($selectable = this.menu.getActiveSelectable()) {
+ if (this.select($selectable)) {
+ $e.preventDefault();
+ $e.stopPropagation();
+ }
+ } else if (this.autoselect) {
+ if (this.select(this.menu.getTopSelectable())) {
+ $e.preventDefault();
+ $e.stopPropagation();
+ }
+ }
+ },
+ _onTabKeyed: function onTabKeyed(type, $e) {
+ var $selectable;
+ if ($selectable = this.menu.getActiveSelectable()) {
+ this.select($selectable) && $e.preventDefault();
+ } else if (this.autoselect) {
+ if ($selectable = this.menu.getTopSelectable()) {
+ this.autocomplete($selectable) && $e.preventDefault();
+ }
+ }
+ },
+ _onEscKeyed: function onEscKeyed() {
+ this.close();
+ },
+ _onUpKeyed: function onUpKeyed() {
+ this.moveCursor(-1);
+ },
+ _onDownKeyed: function onDownKeyed() {
+ this.moveCursor(+1);
+ },
+ _onLeftKeyed: function onLeftKeyed() {
+ if (this.dir === "rtl" && this.input.isCursorAtEnd()) {
+ this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable());
+ }
+ },
+ _onRightKeyed: function onRightKeyed() {
+ if (this.dir === "ltr" && this.input.isCursorAtEnd()) {
+ this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable());
+ }
+ },
+ _onQueryChanged: function onQueryChanged(e, query) {
+ this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty();
+ },
+ _onWhitespaceChanged: function onWhitespaceChanged() {
+ this._updateHint();
+ },
+ _onLangDirChanged: function onLangDirChanged(e, dir) {
+ if (this.dir !== dir) {
+ this.dir = dir;
+ this.menu.setLanguageDirection(dir);
+ }
+ },
+ _openIfActive: function openIfActive() {
+ this.isActive() && this.open();
+ },
+ _minLengthMet: function minLengthMet(query) {
+ query = _.isString(query) ? query : this.input.getQuery() || "";
+ return query.length >= this.minLength;
+ },
+ _updateHint: function updateHint() {
+ var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match;
+ $selectable = this.menu.getTopSelectable();
+ data = this.menu.getSelectableData($selectable);
+ val = this.input.getInputValue();
+ if (data && !_.isBlankString(val) && !this.input.hasOverflow()) {
+ query = Input.normalizeQuery(val);
+ escapedQuery = _.escapeRegExChars(query);
+ frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i");
+ match = frontMatchRegEx.exec(data.val);
+ match && this.input.setHint(val + match[1]);
+ } else {
+ this.input.clearHint();
+ }
+ },
+ isEnabled: function isEnabled() {
+ return this.enabled;
+ },
+ enable: function enable() {
+ this.enabled = true;
+ },
+ disable: function disable() {
+ this.enabled = false;
+ },
+ isActive: function isActive() {
+ return this.active;
+ },
+ activate: function activate() {
+ if (this.isActive()) {
+ return true;
+ } else if (!this.isEnabled() || this.eventBus.before("active")) {
+ return false;
+ } else {
+ this.active = true;
+ this.eventBus.trigger("active");
+ return true;
+ }
+ },
+ deactivate: function deactivate() {
+ if (!this.isActive()) {
+ return true;
+ } else if (this.eventBus.before("idle")) {
+ return false;
+ } else {
+ this.active = false;
+ this.close();
+ this.eventBus.trigger("idle");
+ return true;
+ }
+ },
+ isOpen: function isOpen() {
+ return this.menu.isOpen();
+ },
+ open: function open() {
+ if (!this.isOpen() && !this.eventBus.before("open")) {
+ this.input.setAriaExpanded(true);
+ this.menu.open();
+ this._updateHint();
+ this.eventBus.trigger("open");
+ }
+ return this.isOpen();
+ },
+ close: function close() {
+ if (this.isOpen() && !this.eventBus.before("close")) {
+ this.input.setAriaExpanded(false);
+ this.menu.close();
+ this.input.clearHint();
+ this.input.resetInputValue();
+ this.eventBus.trigger("close");
+ }
+ return !this.isOpen();
+ },
+ setVal: function setVal(val) {
+ this.input.setQuery(_.toStr(val));
+ },
+ getVal: function getVal() {
+ return this.input.getQuery();
+ },
+ select: function select($selectable) {
+ var data = this.menu.getSelectableData($selectable);
+ if (data && !this.eventBus.before("select", data.obj, data.dataset)) {
+ this.input.setQuery(data.val, true);
+ this.eventBus.trigger("select", data.obj, data.dataset);
+ this.close();
+ return true;
+ }
+ return false;
+ },
+ autocomplete: function autocomplete($selectable) {
+ var query, data, isValid;
+ query = this.input.getQuery();
+ data = this.menu.getSelectableData($selectable);
+ isValid = data && query !== data.val;
+ if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) {
+ this.input.setQuery(data.val);
+ this.eventBus.trigger("autocomplete", data.obj, data.dataset);
+ return true;
+ }
+ return false;
+ },
+ moveCursor: function moveCursor(delta) {
+ var query, $candidate, data, suggestion, datasetName, cancelMove, id;
+ query = this.input.getQuery();
+ $candidate = this.menu.selectableRelativeToCursor(delta);
+ data = this.menu.getSelectableData($candidate);
+ suggestion = data ? data.obj : null;
+ datasetName = data ? data.dataset : null;
+ id = $candidate ? $candidate.attr("id") : null;
+ this.input.trigger("cursorchange", id);
+ cancelMove = this._minLengthMet() && this.menu.update(query);
+ if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) {
+ this.menu.setCursor($candidate);
+ if (data) {
+ if (typeof data.val === "string") {
+ this.input.setInputValue(data.val);
+ }
+ } else {
+ this.input.resetInputValue();
+ this._updateHint();
+ }
+ this.eventBus.trigger("cursorchange", suggestion, datasetName);
+ return true;
+ }
+ return false;
+ },
+ destroy: function destroy() {
+ this.input.destroy();
+ this.menu.destroy();
+ }
+ });
+ return Typeahead;
+ function c(ctx) {
+ var methods = [].slice.call(arguments, 1);
+ return function() {
+ var args = [].slice.call(arguments);
+ _.each(methods, function(method) {
+ return ctx[method].apply(ctx, args);
+ });
+ };
+ }
+ }();
+ (function() {
+ "use strict";
+ var old, keys, methods;
+ old = $.fn.typeahead;
+ keys = {
+ www: "tt-www",
+ attrs: "tt-attrs",
+ typeahead: "tt-typeahead"
+ };
+ methods = {
+ initialize: function initialize(o, datasets) {
+ var www;
+ datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1);
+ o = o || {};
+ www = WWW(o.classNames);
+ return this.each(attach);
+ function attach() {
+ var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor;
+ _.each(datasets, function(d) {
+ d.highlight = !!o.highlight;
+ });
+ $input = $(this);
+ $wrapper = $(www.html.wrapper);
+ $hint = $elOrNull(o.hint);
+ $menu = $elOrNull(o.menu);
+ defaultHint = o.hint !== false && !$hint;
+ defaultMenu = o.menu !== false && !$menu;
+ defaultHint && ($hint = buildHintFromInput($input, www));
+ defaultMenu && ($menu = $(www.html.menu).css(www.css.menu));
+ $hint && $hint.val("");
+ $input = prepInput($input, www);
+ if (defaultHint || defaultMenu) {
+ $wrapper.css(www.css.wrapper);
+ $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint);
+ $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null);
+ }
+ MenuConstructor = defaultMenu ? DefaultMenu : Menu;
+ eventBus = new EventBus({
+ el: $input
+ });
+ input = new Input({
+ hint: $hint,
+ input: $input,
+ menu: $menu
+ }, www);
+ menu = new MenuConstructor({
+ node: $menu,
+ datasets: datasets
+ }, www);
+ status = new Status({
+ $input: $input,
+ menu: menu
+ });
+ typeahead = new Typeahead({
+ input: input,
+ menu: menu,
+ eventBus: eventBus,
+ minLength: o.minLength,
+ autoselect: o.autoselect
+ }, www);
+ $input.data(keys.www, www);
+ $input.data(keys.typeahead, typeahead);
+ }
+ },
+ isEnabled: function isEnabled() {
+ var enabled;
+ ttEach(this.first(), function(t) {
+ enabled = t.isEnabled();
+ });
+ return enabled;
+ },
+ enable: function enable() {
+ ttEach(this, function(t) {
+ t.enable();
+ });
+ return this;
+ },
+ disable: function disable() {
+ ttEach(this, function(t) {
+ t.disable();
+ });
+ return this;
+ },
+ isActive: function isActive() {
+ var active;
+ ttEach(this.first(), function(t) {
+ active = t.isActive();
+ });
+ return active;
+ },
+ activate: function activate() {
+ ttEach(this, function(t) {
+ t.activate();
+ });
+ return this;
+ },
+ deactivate: function deactivate() {
+ ttEach(this, function(t) {
+ t.deactivate();
+ });
+ return this;
+ },
+ isOpen: function isOpen() {
+ var open;
+ ttEach(this.first(), function(t) {
+ open = t.isOpen();
+ });
+ return open;
+ },
+ open: function open() {
+ ttEach(this, function(t) {
+ t.open();
+ });
+ return this;
+ },
+ close: function close() {
+ ttEach(this, function(t) {
+ t.close();
+ });
+ return this;
+ },
+ select: function select(el) {
+ var success = false, $el = $(el);
+ ttEach(this.first(), function(t) {
+ success = t.select($el);
+ });
+ return success;
+ },
+ autocomplete: function autocomplete(el) {
+ var success = false, $el = $(el);
+ ttEach(this.first(), function(t) {
+ success = t.autocomplete($el);
+ });
+ return success;
+ },
+ moveCursor: function moveCursoe(delta) {
+ var success = false;
+ ttEach(this.first(), function(t) {
+ success = t.moveCursor(delta);
+ });
+ return success;
+ },
+ val: function val(newVal) {
+ var query;
+ if (!arguments.length) {
+ ttEach(this.first(), function(t) {
+ query = t.getVal();
+ });
+ return query;
+ } else {
+ ttEach(this, function(t) {
+ t.setVal(_.toStr(newVal));
+ });
+ return this;
+ }
+ },
+ destroy: function destroy() {
+ ttEach(this, function(typeahead, $input) {
+ revert($input);
+ typeahead.destroy();
+ });
+ return this;
+ }
+ };
+ $.fn.typeahead = function(method) {
+ if (methods[method]) {
+ return methods[method].apply(this, [].slice.call(arguments, 1));
+ } else {
+ return methods.initialize.apply(this, arguments);
+ }
+ };
+ $.fn.typeahead.noConflict = function noConflict() {
+ $.fn.typeahead = old;
+ return this;
+ };
+ function ttEach($els, fn) {
+ $els.each(function() {
+ var $input = $(this), typeahead;
+ (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input);
+ });
+ }
+ function buildHintFromInput($input, www) {
+ return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({
+ readonly: true,
+ required: false
+ }).removeAttr("id name placeholder").removeClass("required").attr({
+ spellcheck: "false",
+ tabindex: -1
+ });
+ }
+ function prepInput($input, www) {
+ $input.data(keys.attrs, {
+ dir: $input.attr("dir"),
+ autocomplete: $input.attr("autocomplete"),
+ spellcheck: $input.attr("spellcheck"),
+ style: $input.attr("style")
+ });
+ $input.addClass(www.classes.input).attr({
+ spellcheck: false
+ });
+ try {
+ !$input.attr("dir") && $input.attr("dir", "auto");
+ } catch (e) {}
+ return $input;
+ }
+ function getBackgroundStyles($el) {
+ return {
+ backgroundAttachment: $el.css("background-attachment"),
+ backgroundClip: $el.css("background-clip"),
+ backgroundColor: $el.css("background-color"),
+ backgroundImage: $el.css("background-image"),
+ backgroundOrigin: $el.css("background-origin"),
+ backgroundPosition: $el.css("background-position"),
+ backgroundRepeat: $el.css("background-repeat"),
+ backgroundSize: $el.css("background-size")
+ };
+ }
+ function revert($input) {
+ var www, $wrapper;
+ www = $input.data(keys.www);
+ $wrapper = $input.parent().filter(www.selectors.wrapper);
+ _.each($input.data(keys.attrs), function(val, key) {
+ _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val);
+ });
+ $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input);
+ if ($wrapper.length) {
+ $input.detach().insertAfter($wrapper);
+ $wrapper.remove();
+ }
+ }
+ function $elOrNull(obj) {
+ var isValid, $el;
+ isValid = _.isJQuery(obj) || _.isElement(obj);
+ $el = isValid ? $(obj).first() : [];
+ return $el.length ? $el : null;
+ }
+ })();
+});
\ No newline at end of file
diff --git a/docsets/Blueprint.docset/Contents/Resources/Documents/search.json b/docsets/Blueprint.docset/Contents/Resources/Documents/search.json
new file mode 100644
index 000000000..bd22c5142
--- /dev/null
+++ b/docsets/Blueprint.docset/Contents/Resources/Documents/search.json
@@ -0,0 +1 @@
+{"Typealiases.html#/s:11BlueprintUI14ElementBuildera":{"name":"ElementBuilder","abstract":"\u003cp\u003eResult builder for working with elements that conform to \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/ElementBuilderChild.html\"\u003eElementBuilderChild\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e"},"Typealiases.html#/s:11BlueprintUI17LayoutSubelementsa":{"name":"LayoutSubelements","abstract":"\u003cp\u003eA collection of proxy values that represent the child elements of a layout.\u003c/p\u003e"},"Typealiases.html#/s:11BlueprintUI17LifecycleCallbacka":{"name":"LifecycleCallback","abstract":"\u003cp\u003eThis is the type used by all lifecycle callback hooks.\u003c/p\u003e"},"Structs/TextShadow.html#/s:25BlueprintUICommonControls10TextShadowV6radius14CoreFoundation7CGFloatVvp":{"name":"radius","abstract":"\u003cp\u003eThe blur radius of the shadow.\u003c/p\u003e","parent_name":"TextShadow"},"Structs/TextShadow.html#/s:25BlueprintUICommonControls10TextShadowV7opacity14CoreFoundation7CGFloatVvp":{"name":"opacity","abstract":"\u003cp\u003eThe opacity of the shadow.\u003c/p\u003e","parent_name":"TextShadow"},"Structs/TextShadow.html#/s:25BlueprintUICommonControls10TextShadowV6offsetSo8UIOffsetVvp":{"name":"offset","abstract":"\u003cp\u003eThe offset of the shadow.\u003c/p\u003e","parent_name":"TextShadow"},"Structs/TextShadow.html#/s:25BlueprintUICommonControls10TextShadowV5colorSo7UIColorCvp":{"name":"color","abstract":"\u003cp\u003eThe color of the shadow.\u003c/p\u003e","parent_name":"TextShadow"},"Structs/TextShadow.html#/s:25BlueprintUICommonControls10TextShadowV6radius7opacity6offset5colorAC14CoreFoundation7CGFloatV_AJSo8UIOffsetVSo7UIColorCtcfc":{"name":"init(radius:opacity:offset:color:)","parent_name":"TextShadow"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO3cutyA2GmF":{"name":"cut","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO4copyyA2GmF":{"name":"copy","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO5pasteyA2GmF":{"name":"paste","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO6deleteyA2GmF":{"name":"delete","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO6selectyA2GmF":{"name":"select","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO9selectAllyA2GmF":{"name":"selectAll","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO14toggleBoldfaceyA2GmF":{"name":"toggleBoldface","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO13toggleItalicsyA2GmF":{"name":"toggleItalics","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO15toggleUnderlineyA2GmF":{"name":"toggleUnderline","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO12increaseSizeyA2GmF":{"name":"increaseSize","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO12decreaseSizeyA2GmF":{"name":"decreaseSize","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO12printContentyA2GmF":{"name":"printContent","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO10pasteAndGoyA2GmF":{"name":"pasteAndGo","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO18pasteAndMatchStyleyA2GmF":{"name":"pasteAndMatchStyle","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO14pasteAndSearchyA2GmF":{"name":"pasteAndSearch","parent_name":"System"},"Structs/EditingMenuItem/Kind.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6systemyA2E6SystemOcAEmF":{"name":"system(_:)","abstract":"\u003cp\u003eA standard system item.\u003c/p\u003e","parent_name":"Kind"},"Structs/EditingMenuItem/Kind.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6customyAESScAEmF":{"name":"custom(_:)","abstract":"\u003cp\u003eA custom item with a custom title.\u003c/p\u003e","parent_name":"Kind"},"Structs/EditingMenuItem/Kind/System.html":{"name":"System","abstract":"\u003cp\u003eThe system menu item kinds supported by an editing menu.\u003c/p\u003e","parent_name":"Kind"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV4kindAC4KindOvp":{"name":"kind","abstract":"\u003cp\u003eThe type of menu item.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV8onSelectyycvp":{"name":"onSelect","abstract":"\u003cp\u003eA callback, invoked when the user selects the menu item.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV5title8onSelectACSS_yyctcfc":{"name":"init(title:onSelect:)","abstract":"\u003cp\u003eCreates a new menu item of the given kind.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV_8onSelectA2C4KindO6SystemO_yyctcfc":{"name":"init(_:onSelect:)","abstract":"\u003cp\u003eCreates a new menu item of the given kind.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV7copying_2toACSS_So12UIPasteboardCSgtFZ":{"name":"copying(_:to:)","abstract":"\u003cp\u003eA \u003ccode\u003e.copy\u003c/code\u003e type item, which will copy the given string to the provided pasteboard.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV7copying_2toACSo7UIImageC_So12UIPasteboardCSgtFZ":{"name":"copying(_:to:)","abstract":"\u003cp\u003eA \u003ccode\u003e.copy\u003c/code\u003e type item, which will copy the given image to the provided pasteboard.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV7copying_2toAC10Foundation3URLV_So12UIPasteboardCSgtFZ":{"name":"copying(_:to:)","abstract":"\u003cp\u003eA \u003ccode\u003e.copy\u003c/code\u003e type item, which will copy the given url to the provided pasteboard.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem/Kind.html":{"name":"Kind","abstract":"\u003cp\u003eThe menu item types you may place into a menu.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenu/MenuTrigger.html#/s:25BlueprintUICommonControls11EditingMenuV0E7TriggerC4showyyF":{"name":"show()","abstract":"\u003cp\u003eCall this method to show the menu.\u003c/p\u003e","parent_name":"MenuTrigger"},"Structs/EditingMenu/Gesture.html#/s:25BlueprintUICommonControls11EditingMenuV7GestureO5onTapyA2EmF":{"name":"onTap","abstract":"\u003cp\u003eThe menu will be shown when the element is tapped.\u003c/p\u003e","parent_name":"Gesture"},"Structs/EditingMenu/Gesture.html#/s:25BlueprintUICommonControls11EditingMenuV7GestureO11onLongPressyA2EmF":{"name":"onLongPress","abstract":"\u003cp\u003eThe menu will be shown when the element is long pressed.\u003c/p\u003e","parent_name":"Gesture"},"Structs/EditingMenu.html#/s:25BlueprintUICommonControls11EditingMenuV7wrapped0A2UI7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe wrapped element to display.\u003c/p\u003e","parent_name":"EditingMenu"},"Structs/EditingMenu.html#/s:25BlueprintUICommonControls11EditingMenuV5itemsSayAA0dE4ItemVGvp":{"name":"items","abstract":"\u003cp\u003eThe editing items to show in the editing menu.\u003c/p\u003e","parent_name":"EditingMenu"},"Structs/EditingMenu.html#/s:25BlueprintUICommonControls11EditingMenuV4show8wrapping4withA2C7GestureO_0A2UI7Element_pSayAA0dE4ItemVGyXEtcfc":{"name":"init(show:wrapping:with:)","abstract":"\u003cp\u003eCreates a new editing menu, wrapping the provided element, and displaying the provided items.\u003c/p\u003e","parent_name":"EditingMenu"},"Structs/EditingMenu.html#/s:25BlueprintUICommonControls11EditingMenuV8wrapping5itemsAC0A2UI7Element_pAC0E7TriggerCXE_SayAA0dE4ItemVGyXEtcfc":{"name":"init(wrapping:items:)","abstract":"\u003cp\u003eCreates a new editing menu, wrapping the provided element, and displaying the provided items.\u003c/p\u003e","parent_name":"EditingMenu"},"Structs/EditingMenu.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"EditingMenu"},"Structs/EditingMenu.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"EditingMenu"},"Structs/EditingMenu/Gesture.html":{"name":"Gesture","abstract":"\u003cp\u003eThe gesture to use to show the menu.\u003c/p\u003e","parent_name":"EditingMenu"},"Structs/EditingMenu/MenuTrigger.html":{"name":"MenuTrigger","abstract":"\u003cp\u003eA trigger that you can use to show the menu based on the result of some other","parent_name":"EditingMenu"},"Structs/URLHandlerEnvironmentKey.html#/s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ":{"name":"defaultValue","parent_name":"URLHandlerEnvironmentKey"},"Structs/AccessibilityFocus/Trigger.html#/s:25BlueprintUICommonControls18AccessibilityFocusV7TriggerC16notificationTypeSo28UIAccessibilityNotificationsavp":{"name":"notificationType","abstract":"\u003cp\u003eThe type of accessibility notification that will be triggered.\u003c/p\u003e","parent_name":"Trigger"},"Structs/AccessibilityFocus/Trigger.html#/s:25BlueprintUICommonControls18AccessibilityFocusV7TriggerC10identifiers11AnyHashableVSgvp":{"name":"identifier","abstract":"\u003cp\u003eAn optional identifier for the trigger.\u003c/p\u003e","parent_name":"Trigger"},"Structs/AccessibilityFocus/Trigger.html#/s:25BlueprintUICommonControls18AccessibilityFocusV7TriggerC16notificationType10identifierAESo28UIAccessibilityNotificationsa_s11AnyHashableVSgtcfc":{"name":"init(notificationType:identifier:)","abstract":"\u003cp\u003eCreates a new trigger for the purpose of changing accessibility focus.\u003c/p\u003e","parent_name":"Trigger"},"Structs/AccessibilityFocus/Trigger.html#/s:25BlueprintUICommonControls18AccessibilityFocusV7TriggerC5focusyyF":{"name":"focus()","abstract":"\u003cp\u003eManually fire the trigger\u003c/p\u003e","parent_name":"Trigger"},"Structs/AccessibilityFocus.html#/s:25BlueprintUICommonControls18AccessibilityFocusV7wrapped0A2UI7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe element that will have the focus.\u003c/p\u003e","parent_name":"AccessibilityFocus"},"Structs/AccessibilityFocus.html#/s:25BlueprintUICommonControls18AccessibilityFocusV7triggerAC7TriggerCvp":{"name":"trigger","abstract":"\u003cp\u003eA object that can be held on to by the caller to manually trigger a focus.\u003c/p\u003e","parent_name":"AccessibilityFocus"},"Structs/AccessibilityFocus.html#/s:25BlueprintUICommonControls18AccessibilityFocusV8wrapping7triggerAC0A2UI7Element_p_AC7TriggerCtcfc":{"name":"init(wrapping:trigger:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eAccessibilityFocus\u003c/code\u003e wrapping the provided element.\u003c/p\u003e","parent_name":"AccessibilityFocus"},"Structs/AccessibilityFocus.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"AccessibilityFocus"},"Structs/AccessibilityFocus.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"AccessibilityFocus"},"Structs/AccessibilityFocus/Trigger.html":{"name":"Trigger","abstract":"\u003cp\u003eA trigger that can be used to manually fire an accessibility focus.\u003c/p\u003e","parent_name":"AccessibilityFocus"},"Structs/AnimationAttributes.html#/s:11BlueprintUI19AnimationAttributesV8durationSdvp":{"name":"duration","abstract":"\u003cp\u003eThe duration of the animation.\u003c/p\u003e","parent_name":"AnimationAttributes"},"Structs/AnimationAttributes.html#/s:11BlueprintUI19AnimationAttributesV5curveSo06UIViewC5CurveVvp":{"name":"curve","abstract":"\u003cp\u003eThe timing curve of the animation.\u003c/p\u003e","parent_name":"AnimationAttributes"},"Structs/AnimationAttributes.html#/s:11BlueprintUI19AnimationAttributesV20allowUserInteractionSbvp":{"name":"allowUserInteraction","abstract":"\u003cp\u003eWhether the view supports user interaction during the animation.\u003c/p\u003e","parent_name":"AnimationAttributes"},"Structs/AnimationAttributes.html#/s:11BlueprintUI19AnimationAttributesV7defaultACvpZ":{"name":"default","parent_name":"AnimationAttributes"},"Structs/AnimationAttributes.html#/s:11BlueprintUI19AnimationAttributesV8duration5curve20allowUserInteractionACSd_So06UIViewC5CurveVSbtcfc":{"name":"init(duration:curve:allowUserInteraction:)","parent_name":"AnimationAttributes"},"Structs/SizeConstraint/UnconstrainedInfiniteAxis.html#/s:11BlueprintUI14SizeConstraintV25UnconstrainedInfiniteAxisV12wrappedValueAC0G0Ovp":{"name":"wrappedValue","parent_name":"UnconstrainedInfiniteAxis"},"Structs/SizeConstraint/UnconstrainedInfiniteAxis.html#/s:11BlueprintUI14SizeConstraintV25UnconstrainedInfiniteAxisV12wrappedValueAeC0G0O_tcfc":{"name":"init(wrappedValue:)","parent_name":"UnconstrainedInfiniteAxis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO6atMostyAE14CoreFoundation7CGFloatVcAEmF":{"name":"atMost(_:)","abstract":"\u003cp\u003eThe measurement should treat the associated value as the largest","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO13unconstrainedyA2EmF":{"name":"unconstrained","abstract":"\u003cp\u003eThe measurement is unconstrained in the given dimension.\u003c/p\u003e","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO7maximum14CoreFoundation7CGFloatVvp":{"name":"maximum","abstract":"\u003cp\u003eThe maximum magnitude in the given dimension.\u003c/p\u003e","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO7minimum14CoreFoundation7CGFloatVvp":{"name":"minimum","abstract":"\u003cp\u003eThe minimum magnitude in the given dimension.\u003c/p\u003e","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO16constrainedValue14CoreFoundation7CGFloatVSgvp":{"name":"constrainedValue","abstract":"\u003cp\u003eThe constraint value in this dimension, or \u003ccode\u003enil\u003c/code\u003e if this dimension is unconstrained.\u003c/p\u003e","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO1poiyA2E_14CoreFoundation7CGFloatVtFZ":{"name":"+(_:_:)","abstract":"\u003cp\u003eAdds a scalar value to an Axis. If the Axis is unconstrained the","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO1soiyA2E_14CoreFoundation7CGFloatVtFZ":{"name":"-(_:_:)","abstract":"\u003cp\u003eSubtracts a scalar value from an Axis. If the Axis is unconstrained","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO1doiyA2E_14CoreFoundation7CGFloatVtFZ":{"name":"/(_:_:)","abstract":"\u003cp\u003eDivides an Axis by a scalar value. If the Axis is unconstrained the","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO1moiyA2E_14CoreFoundation7CGFloatVtFZ":{"name":"*(_:_:)","abstract":"\u003cp\u003eMultiplies an Axis by a scalar value. If the Axis is unconstrained","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO17isGreaterThanZeroSbvp":{"name":"isGreaterThanZero","abstract":"\u003cp\u003eIf the \u003ccode\u003eAxis\u003c/code\u003e is greater than zero.\u003c/p\u003e","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO2peoiyyAEz_14CoreFoundation7CGFloatVtFZ":{"name":"+=(_:_:)","abstract":"\u003cp\u003eAdds a scalar value to an Axis. If the Axis is unconstrained the","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO2seoiyyAEz_14CoreFoundation7CGFloatVtFZ":{"name":"-=(_:_:)","abstract":"\u003cp\u003eSubtracts a scalar value from an Axis. If the Axis is unconstrained","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO2deoiyyAEz_14CoreFoundation7CGFloatVtFZ":{"name":"/=(_:_:)","abstract":"\u003cp\u003eDivides an Axis by a scalar value. If the Axis is unconstrained the","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO2meoiyyAEz_14CoreFoundation7CGFloatVtFZ":{"name":"*=(_:_:)","abstract":"\u003cp\u003eMultiplies an Axis by a scalar value. If the Axis is unconstrained","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"Axis"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV5widthAC4AxisOvp":{"name":"width","abstract":"\u003cp\u003eThe width constraint.\u003c/p\u003e","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV6heightAC4AxisOvp":{"name":"height","abstract":"\u003cp\u003eThe height constraint.\u003c/p\u003e","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV5width6heightA2C4AxisO_AGtcfc":{"name":"init(width:height:)","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV13unconstrainedACvpZ":{"name":"unconstrained","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintVyACSo6CGSizeVcfc":{"name":"init(_:)","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV5widthAC14CoreFoundation7CGFloatV_tcfc":{"name":"init(width:)","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV6heightAC14CoreFoundation7CGFloatV_tcfc":{"name":"init(height:)","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV7minimumSo6CGSizeVvp":{"name":"minimum","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV7maximumSo6CGSizeVvp":{"name":"maximum","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV5inset5width6heightAC14CoreFoundation7CGFloatV_AItF":{"name":"inset(width:height:)","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV5inset2byACSo12UIEdgeInsetsV_tF":{"name":"inset(by:)","parent_name":"SizeConstraint"},"Structs/SizeConstraint/Axis.html":{"name":"Axis","abstract":"\u003cp\u003eRepresents a size constraint for a single axis.\u003c/p\u003e","parent_name":"SizeConstraint"},"Structs/SizeConstraint/UnconstrainedInfiniteAxis.html":{"name":"UnconstrainedInfiniteAxis","abstract":"\u003cp\u003eThis property wrapper checks the value of \u003ccode\u003eatMost\u003c/code\u003e cases, and turns it into an","parent_name":"SizeConstraint"},"Structs/UserInteractionEnabled.html#/s:11BlueprintUI22UserInteractionEnabledV02isE0Sbvp":{"name":"isEnabled","parent_name":"UserInteractionEnabled"},"Structs/UserInteractionEnabled.html#/s:11BlueprintUI22UserInteractionEnabledV14wrappedElementAA0G0_pvp":{"name":"wrappedElement","parent_name":"UserInteractionEnabled"},"Structs/UserInteractionEnabled.html#/s:11BlueprintUI22UserInteractionEnabledV_8wrappingACSb_AA7Element_ptcfc":{"name":"init(_:wrapping:)","parent_name":"UserInteractionEnabled"},"Structs/UserInteractionEnabled.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"UserInteractionEnabled"},"Structs/UserInteractionEnabled.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"UserInteractionEnabled"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV1x14CoreFoundation7CGFloatVvp":{"name":"x","abstract":"\u003cp\u003eThe normalized distance from the origin to the point in the horizontal direction.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV1y14CoreFoundation7CGFloatVvp":{"name":"y","abstract":"\u003cp\u003eThe normalized distance from the origin to the point in the vertical direction.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV1x1yAC14CoreFoundation7CGFloatV_AHtcfc":{"name":"init(x:y:)","abstract":"\u003cp\u003eCreates a unit point with the specified horizontal and vertical offsets.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV4zeroACvpZ":{"name":"zero","abstract":"\u003cp\u003eThe origin of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV6centerACvpZ":{"name":"center","abstract":"\u003cp\u003eA point that’s centered in an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV7leadingACvpZ":{"name":"leading","abstract":"\u003cp\u003eA point that’s centered vertically on the leading edge of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV8trailingACvpZ":{"name":"trailing","abstract":"\u003cp\u003eA point that’s centered vertically on the trailing edge of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV3topACvpZ":{"name":"top","abstract":"\u003cp\u003eA point that’s centered horizontally on the top edge of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV6bottomACvpZ":{"name":"bottom","abstract":"\u003cp\u003eA point that’s centered horizontally on the bottom edge of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV10topLeadingACvpZ":{"name":"topLeading","abstract":"\u003cp\u003eA point that’s in the top leading corner of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV11topTrailingACvpZ":{"name":"topTrailing","abstract":"\u003cp\u003eA point that’s in the top trailing corner of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV13bottomLeadingACvpZ":{"name":"bottomLeading","abstract":"\u003cp\u003eA point that’s in the bottom leading corner of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV14bottomTrailingACvpZ":{"name":"bottomTrailing","abstract":"\u003cp\u003eA point that’s in the bottom trailing corner of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/Transformed.html#/s:11BlueprintUI11TransformedV14wrappedElementAA0E0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe content element whose transform is being affected.\u003c/p\u003e","parent_name":"Transformed"},"Structs/Transformed.html#/s:11BlueprintUI11TransformedV9transformSo13CATransform3DVvp":{"name":"transform","abstract":"\u003cp\u003eThe transform of the wrapped element.\u003c/p\u003e","parent_name":"Transformed"},"Structs/Transformed.html#/s:11BlueprintUI11TransformedV9transform8wrappingACSo13CATransform3DV_AA7Element_ptcfc":{"name":"init(transform:wrapping:)","abstract":"\u003cp\u003eInitializes a \u003ccode\u003eTransformed\u003c/code\u003e with the given content element and 3D transform.\u003c/p\u003e","parent_name":"Transformed"},"Structs/Transformed.html#/s:11BlueprintUI11TransformedV9transform8wrappingACSo17CGAffineTransformV_AA7Element_ptcfc":{"name":"init(transform:wrapping:)","abstract":"\u003cp\u003eInitializes a \u003ccode\u003eTransformed\u003c/code\u003e with the given content element and DD transform.\u003c/p\u003e","parent_name":"Transformed"},"Structs/Transformed.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Transformed"},"Structs/Transformed.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Transformed"},"Structs/TintAdjustmentMode.html#/s:11BlueprintUI18TintAdjustmentModeV04tintdE0So06UIViewcdE0Vvp":{"name":"tintAdjustmentMode","parent_name":"TintAdjustmentMode"},"Structs/TintAdjustmentMode.html#/s:11BlueprintUI18TintAdjustmentModeV14wrappedElementAA0G0_pvp":{"name":"wrappedElement","parent_name":"TintAdjustmentMode"},"Structs/TintAdjustmentMode.html#/s:11BlueprintUI18TintAdjustmentModeV_8wrappingACSo06UIViewcdE0V_AA7Element_ptcfc":{"name":"init(_:wrapping:)","parent_name":"TintAdjustmentMode"},"Structs/TintAdjustmentMode.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"TintAdjustmentMode"},"Structs/TintAdjustmentMode.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"TintAdjustmentMode"},"Structs/StackLayout/Child/Priority.html#/s:11BlueprintUI11StackLayoutV5ChildV8PriorityO5fixedyA2GmF":{"name":"fixed","abstract":"\u003cp\u003eThe element has a fixed size, with a grow and shrink priority of 0.","parent_name":"Priority"},"Structs/StackLayout/Child/Priority.html#/s:11BlueprintUI11StackLayoutV5ChildV8PriorityO8flexibleyA2GmF":{"name":"flexible","abstract":"\u003cp\u003eThe element has a flexible size, with a grow and shrink priority of 1.","parent_name":"Priority"},"Structs/StackLayout/Child/Priority.html#/s:11BlueprintUI11StackLayoutV5ChildV8PriorityO5growsyA2GmF":{"name":"grows","abstract":"\u003cp\u003eThe element has a flexible size, it will grow if the stack underflows,","parent_name":"Priority"},"Structs/StackLayout/Child/Priority.html#/s:11BlueprintUI11StackLayoutV5ChildV8PriorityO7shrinksyA2GmF":{"name":"shrinks","abstract":"\u003cp\u003eThe element has a flexible size, it will shrink if the stack overflows,","parent_name":"Priority"},"Structs/StackLayout/Child.html#/s:11BlueprintUI11StackLayoutV5ChildV7elementAA7Element_pvp":{"name":"element","parent_name":"Child"},"Structs/StackLayout/Child.html#/s:11BlueprintUI11StackLayoutV5ChildV6traitsAC6TraitsVvp":{"name":"traits","parent_name":"Child"},"Structs/StackLayout/Child.html#/s:11BlueprintUI11StackLayoutV5ChildV3keys11AnyHashableVSgvp":{"name":"key","parent_name":"Child"},"Structs/StackLayout/Child/Priority.html":{"name":"Priority","parent_name":"Child"},"Structs/StackLayout/Child.html#/s:11BlueprintUI11StackLayoutV5ChildV7element6traits3keyAeA7Element_p_AC6TraitsVs11AnyHashableVSgtcfc":{"name":"init(element:traits:key:)","parent_name":"Child"},"Structs/StackLayout/Child.html#/s:11BlueprintUI11StackLayoutV5ChildV7element8priority14alignmentGuide3keyAeA7Element_p_AE8PriorityO14CoreFoundation7CGFloatVAA0K10DimensionsVcSgs11AnyHashableVSgtcfc":{"name":"init(element:priority:alignmentGuide:key:)","parent_name":"Child"},"Structs/StackLayout/Child.html#/s:11BlueprintUI11StackLayoutV5ChildVyAeA7Element_pcfc":{"name":"init(_:)","parent_name":"Child"},"Structs/StackLayout/Alignment.html#/s:11BlueprintUI11StackLayoutV9AlignmentO4fillyA2EmF":{"name":"fill","abstract":"\u003cp\u003eChildren will be stretched to the size of the stack.\u003c/p\u003e","parent_name":"Alignment"},"Structs/StackLayout/Alignment.html#/s:11BlueprintUI11StackLayoutV9AlignmentO5alignyAeA0E2ID_pXp_tcAEmF":{"name":"align(to:)","abstract":"\u003cp\u003eChildren will be aligned relatively to each other, and then all the contents will be","parent_name":"Alignment"},"Structs/StackLayout/OverflowDistribution.html#/s:11BlueprintUI11StackLayoutV20OverflowDistributionO22condenseProportionallyyA2EmF":{"name":"condenseProportionally","abstract":"\u003cp\u003eEach child will shrink proportionally to its measured size.\u003c/p\u003e","parent_name":"OverflowDistribution"},"Structs/StackLayout/OverflowDistribution.html#/s:11BlueprintUI11StackLayoutV20OverflowDistributionO17condenseUniformlyyA2EmF":{"name":"condenseUniformly","abstract":"\u003cp\u003eEach child will shrink by the same amount.\u003c/p\u003e","parent_name":"OverflowDistribution"},"Structs/StackLayout/UnderflowDistribution.html#/s:11BlueprintUI11StackLayoutV21UnderflowDistributionO11spaceEvenlyyA2EmF":{"name":"spaceEvenly","abstract":"\u003cp\u003eAdditional space will be evenly divided into the spacing between items.\u003c/p\u003e","parent_name":"UnderflowDistribution"},"Structs/StackLayout/UnderflowDistribution.html#/s:11BlueprintUI11StackLayoutV21UnderflowDistributionO18growProportionallyyA2EmF":{"name":"growProportionally","abstract":"\u003cp\u003eAdditional space will be divided proportionally by the measured size of each child.\u003c/p\u003e","parent_name":"UnderflowDistribution"},"Structs/StackLayout/UnderflowDistribution.html#/s:11BlueprintUI11StackLayoutV21UnderflowDistributionO13growUniformlyyA2EmF":{"name":"growUniformly","abstract":"\u003cp\u003eAdditional space will be distributed uniformly between children.\u003c/p\u003e","parent_name":"UnderflowDistribution"},"Structs/StackLayout/UnderflowDistribution.html#/s:11BlueprintUI11StackLayoutV21UnderflowDistributionO14justifyToStartyA2EmF":{"name":"justifyToStart","abstract":"\u003cp\u003eAdditional space will appear after all children.\u003c/p\u003e","parent_name":"UnderflowDistribution"},"Structs/StackLayout/UnderflowDistribution.html#/s:11BlueprintUI11StackLayoutV21UnderflowDistributionO15justifyToCenteryA2EmF":{"name":"justifyToCenter","abstract":"\u003cp\u003eAdditional space will be distributed on either side of all children.\u003c/p\u003e","parent_name":"UnderflowDistribution"},"Structs/StackLayout/UnderflowDistribution.html#/s:11BlueprintUI11StackLayoutV21UnderflowDistributionO12justifyToEndyA2EmF":{"name":"justifyToEnd","abstract":"\u003cp\u003eAdditional space will be appear before all children.\u003c/p\u003e","parent_name":"UnderflowDistribution"},"Structs/StackLayout/Axis.html#/s:11BlueprintUI11StackLayoutV4AxisO10horizontalyA2EmF":{"name":"horizontal","parent_name":"Axis"},"Structs/StackLayout/Axis.html#/s:11BlueprintUI11StackLayoutV4AxisO8verticalyA2EmF":{"name":"vertical","parent_name":"Axis"},"Structs/StackLayout/Traits.html#/s:11BlueprintUI11StackLayoutV6TraitsV12growPriority14CoreFoundation7CGFloatVvp":{"name":"growPriority","abstract":"\u003cp\u003eControls the amount of extra space distributed to this child during underflow.\u003c/p\u003e","parent_name":"Traits"},"Structs/StackLayout/Traits.html#/s:11BlueprintUI11StackLayoutV6TraitsV14shrinkPriority14CoreFoundation7CGFloatVvp":{"name":"shrinkPriority","abstract":"\u003cp\u003eControls the amount of space allowed for this child during overflow.\u003c/p\u003e","parent_name":"Traits"},"Structs/StackLayout/Traits.html#/s:11BlueprintUI11StackLayoutV6TraitsV14alignmentGuideAC09AlignmentG0VSgvp":{"name":"alignmentGuide","abstract":"\u003cp\u003eAllows for custom alignment of a child along the cross axis.\u003c/p\u003e","parent_name":"Traits"},"Structs/StackLayout/Traits.html#/s:11BlueprintUI11StackLayoutV6TraitsV12growPriority06shrinkG014alignmentGuideAE14CoreFoundation7CGFloatV_AkC09AlignmentJ0VSgtcfc":{"name":"init(growPriority:shrinkPriority:alignmentGuide:)","abstract":"\u003cp\u003eCreates a new set of traits with default values.\u003c/p\u003e","parent_name":"Traits"},"Structs/StackLayout/AlignmentGuide.html#/s:11BlueprintUI11StackLayoutV14AlignmentGuideV12computeValuey14CoreFoundation7CGFloatVAA17ElementDimensionsVcvp":{"name":"computeValue","abstract":"\u003cp\u003eReturns a value along the stack\u0026rsquo;s cross axis, in the element\u0026rsquo;s own coordinate space,","parent_name":"AlignmentGuide"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV13defaultTraitsAC0F0VvpZ":{"name":"defaultTraits","abstract":"\u003cp\u003eThe default traits for a child contained within a stack layout\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout/AlignmentGuide.html":{"name":"AlignmentGuide","abstract":"\u003cp\u003eDetermines how a stack child will be aligned on the cross axis relative to other children.\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout/Traits.html":{"name":"Traits","abstract":"\u003cp\u003eContains traits that affect the layout of individual children in the stack.\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV4axisAC4AxisOvp":{"name":"axis","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV9underflowAC21UnderflowDistributionOvp":{"name":"underflow","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV8overflowAC20OverflowDistributionOvp":{"name":"overflow","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV9alignmentAC9AlignmentOvp":{"name":"alignment","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV14minimumSpacing14CoreFoundation7CGFloatVvp":{"name":"minimumSpacing","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV4axis9alignmentA2C4AxisO_AC9AlignmentOtcfc":{"name":"init(axis:alignment:)","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI12LegacyLayoutP7measure2in5itemsSo6CGSizeVAA14SizeConstraintV_Say6TraitsQz6traits_AA10Measurable_p7contenttGtF":{"name":"measure(in:items:)","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI12LegacyLayoutP6layout4size5itemsSayAA0D10AttributesVGSo6CGSizeV_Say6TraitsQz6traits_AA10Measurable_p7contenttGtF":{"name":"layout(size:items:)","parent_name":"StackLayout"},"Structs/StackLayout/Axis.html":{"name":"Axis","abstract":"\u003cp\u003eThe direction of the stack.\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout/UnderflowDistribution.html":{"name":"UnderflowDistribution","abstract":"\u003cp\u003eDetermines the on-axis layout when there is extra free space available.\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout/OverflowDistribution.html":{"name":"OverflowDistribution","abstract":"\u003cp\u003eDetermines the on-axis layout when there is not enough space to fit all children as measured.\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout/Alignment.html":{"name":"Alignment","abstract":"\u003cp\u003eDetermines the cross-axis layout (height for a horizontal stack, width for a vertical stack).\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP12sizeThatFits8proposal11subelements11environment5cacheSo6CGSizeVAA14SizeConstraintV_SayAA0D10SubelementVGAA11EnvironmentV5CacheQzztF":{"name":"sizeThatFits(proposal:subelements:environment:cache:)","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP16placeSubelements2in11subelements11environment5cacheySo6CGSizeV_SayAA0D10SubelementVGAA11EnvironmentV5CacheQzztF":{"name":"placeSubelements(in:subelements:environment:cache:)","parent_name":"StackLayout"},"Structs/StackLayout/Child.html":{"name":"Child","parent_name":"StackLayout"},"Structs/Opacity.html#/s:11BlueprintUI7OpacityV14wrappedElementAA0E0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe content element whose opacity is being affected.\u003c/p\u003e","parent_name":"Opacity"},"Structs/Opacity.html#/s:11BlueprintUI7OpacityV7opacity14CoreFoundation7CGFloatVvp":{"name":"opacity","abstract":"\u003cp\u003eThe opacity of the wrapped element.\u003c/p\u003e","parent_name":"Opacity"},"Structs/Opacity.html#/s:11BlueprintUI7OpacityV7opacity8wrappingAC14CoreFoundation7CGFloatV_AA7Element_ptcfc":{"name":"init(opacity:wrapping:)","abstract":"\u003cp\u003eInitializes an \u003ccode\u003eOpacity\u003c/code\u003e with the given content element and opacity.\u003c/p\u003e","parent_name":"Opacity"},"Structs/Opacity.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Opacity"},"Structs/Opacity.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Opacity"},"Structs/LifecycleObserver.html#/s:11BlueprintUI17LifecycleObserverV7wrappedAA7Element_pvp":{"name":"wrapped","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI17LifecycleObserverV8onAppearyycSgvp":{"name":"onAppear","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI17LifecycleObserverV11onDisappearyycSgvp":{"name":"onDisappear","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI17LifecycleObserverV8onAppear0E9Disappear8wrappingACyycSg_AgA7Element_ptcfc":{"name":"init(onAppear:onDisappear:wrapping:)","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI17LifecycleObserverV8onAppearyACyycF":{"name":"onAppear(_:)","abstract":"\u003cp\u003eAdds a hook that will be called when this element appears.\u003c/p\u003e","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI17LifecycleObserverV11onDisappearyACyycF":{"name":"onDisappear(_:)","abstract":"\u003cp\u003eAdds a hook that will be called when this element disappears.\u003c/p\u003e","parent_name":"LifecycleObserver"},"Structs/LayoutWriter/Child.html#/s:11BlueprintUI12LayoutWriterV5ChildV5frameSo6CGRectVvp":{"name":"frame","abstract":"\u003cp\u003eThe frame of the element in the coordinate space of the custom layout.\u003c/p\u003e","parent_name":"Child"},"Structs/LayoutWriter/Child.html#/s:11BlueprintUI12LayoutWriterV5ChildV3keys11AnyHashableVSgvp":{"name":"key","abstract":"\u003cp\u003eThe key to use to disambiguate this element.\u003c/p\u003e","parent_name":"Child"},"Structs/LayoutWriter/Child.html#/s:11BlueprintUI12LayoutWriterV5ChildV7elementAA7Element_pvp":{"name":"element","abstract":"\u003cp\u003eThe element to be displayed.\u003c/p\u003e","parent_name":"Child"},"Structs/LayoutWriter/Child.html#/s:11BlueprintUI12LayoutWriterV5ChildV5frame3key7elementAESo6CGRectV_s11AnyHashableVSgAA7Element_ptcfc":{"name":"init(frame:key:element:)","abstract":"\u003cp\u003eCreates a new child element.\u003c/p\u003e","parent_name":"Child"},"Structs/LayoutWriter/Sizing.html#/s:11BlueprintUI12LayoutWriterV6SizingO15unionOfChildrenyA2EmF":{"name":"unionOfChildren","abstract":"\u003cp\u003eEnsures that the final size of element is large enough to fit all children, starting from (0,0).\u003c/p\u003e","parent_name":"Sizing"},"Structs/LayoutWriter/Sizing.html#/s:11BlueprintUI12LayoutWriterV6SizingO5fixedyAESo6CGSizeVcAEmF":{"name":"fixed(_:)","abstract":"\u003cp\u003eFixes the layout size to the provided size. Children are positioned within this size, starting at (0,0)","parent_name":"Sizing"},"Structs/LayoutWriter/Context/LayoutPhase.html#/s:11BlueprintUI12LayoutWriterV7ContextV0C5PhaseO11measurementyA2GmF":{"name":"measurement","abstract":"\u003cp\u003eThe element is being measured.\u003c/p\u003e","parent_name":"LayoutPhase"},"Structs/LayoutWriter/Context/LayoutPhase.html#/s:11BlueprintUI12LayoutWriterV7ContextV0C5PhaseO6layoutyAGSo6CGSizeVcAGmF":{"name":"layout(_:)","abstract":"\u003cp\u003eThe element is being laid out with a known size.\u003c/p\u003e","parent_name":"LayoutPhase"},"Structs/LayoutWriter/Context/LayoutPhase.html#/s:11BlueprintUI12LayoutWriterV7ContextV0C5PhaseO9onMeasure_0gC0xxyXE_xSo6CGSizeVXEtlF":{"name":"onMeasure(_:onLayout:)","abstract":"\u003cp\u003eReturns the provided value based on if a measurement or layout is occurring.\u003c/p\u003e","parent_name":"LayoutPhase"},"Structs/LayoutWriter/Context.html#/s:11BlueprintUI12LayoutWriterV7ContextV4sizeAA14SizeConstraintVvp":{"name":"size","abstract":"\u003cp\u003eThe size constraint the layout is occurring in.\u003c/p\u003e","parent_name":"Context"},"Structs/LayoutWriter/Context.html#/s:11BlueprintUI12LayoutWriterV7ContextV5phaseAE0C5PhaseOvp":{"name":"phase","abstract":"\u003cp\u003eThe phase of the layout current occurring – measurement or layout.\u003c/p\u003e","parent_name":"Context"},"Structs/LayoutWriter/Context/LayoutPhase.html":{"name":"LayoutPhase","abstract":"\u003cp\u003eThe current phase of the layout event: \u003ccode\u003e.measurement\u003c/code\u003e or \u003ccode\u003e.layout\u003c/code\u003e.\u003c/p\u003e","parent_name":"Context"},"Structs/LayoutWriter/Builder.html#/s:11BlueprintUI12LayoutWriterV7BuilderV6sizingAC6SizingOvp":{"name":"sizing","abstract":"\u003cp\u003eHow the size of the layout should be calculated. Defaults to \u003ccode\u003e.unionOfChildren\u003c/code\u003e,","parent_name":"Builder"},"Structs/LayoutWriter/Builder.html#/s:11BlueprintUI12LayoutWriterV7BuilderV8childrenSayAC5ChildVGvp":{"name":"children","abstract":"\u003cp\u003eThe children of the custom layout, which specifies the child element and its frame.\u003c/p\u003e","parent_name":"Builder"},"Structs/LayoutWriter/Builder.html#/s:11BlueprintUI12LayoutWriterV7BuilderV3add4with3key5childySo6CGRectV_s11AnyHashableVSgAA7Element_ptF":{"name":"add(with:key:child:)","abstract":"\u003cp\u003eAdds a new child element to the layout with the provided frame and optional key.\u003c/p\u003e","parent_name":"Builder"},"Structs/LayoutWriter/Builder.html#/s:11BlueprintUI12LayoutWriterV7BuilderV3addyyAC5ChildVF":{"name":"add(_:)","abstract":"\u003cp\u003eAdds a new child element to the layout.\u003c/p\u003e","parent_name":"Builder"},"Structs/LayoutWriter/Builder.html#/s:11BlueprintUI12LayoutWriterV7BuilderV10modifyEach5usingyyAC5ChildVzXE_tF":{"name":"modifyEach(using:)","abstract":"\u003cp\u003eEnumerates each of the children, allowing you to modify them in place,","parent_name":"Builder"},"Structs/LayoutWriter.html#/s:11BlueprintUI12LayoutWriterVyACyAC7ContextV_AC7BuilderVztccfc":{"name":"init(_:)","abstract":"\u003cp\u003eCreates a new instance of the LayoutWriter with the custom layout provided by the builder.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutWriter.html#/s:11BlueprintUI12LayoutWriterV5Builda":{"name":"Build","abstract":"\u003cp\u003eThe builder type passed to the \u003ccode\u003eLayoutWriter\u003c/code\u003e initializer.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutWriter.html#/s:11BlueprintUI12LayoutWriterV5buildyyAC7ContextV_AC7BuilderVztcvp":{"name":"build","abstract":"\u003cp\u003eThe builder used to create the custom layout.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutWriter.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"LayoutWriter"},"Structs/LayoutWriter.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"LayoutWriter"},"Structs/LayoutWriter/Builder.html":{"name":"Builder","abstract":"\u003cp\u003eThe builder is the primary surface area you interact with when using a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/LayoutWriter.html\"\u003eLayoutWriter\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutWriter/Context.html":{"name":"Context","abstract":"\u003cp\u003eProvides the relevant information about the context in which the layout is occurring.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutWriter/Sizing.html":{"name":"Sizing","abstract":"\u003cp\u003eControls the sizing calculation of the custom layout.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutWriter/Child.html":{"name":"Child","abstract":"\u003cp\u003eA child of the custom layout, providing its frame and element.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutSubelement/Attributes.html#/s:11BlueprintUI16LayoutSubelementV10AttributesV9transformSo13CATransform3DVvp":{"name":"transform","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.layer.transform\u003c/code\u003e.\u003c/p\u003e","parent_name":"Attributes"},"Structs/LayoutSubelement/Attributes.html#/s:11BlueprintUI16LayoutSubelementV10AttributesV5alpha14CoreFoundation7CGFloatVvp":{"name":"alpha","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.alpha\u003c/code\u003e.\u003c/p\u003e","parent_name":"Attributes"},"Structs/LayoutSubelement/Attributes.html#/s:11BlueprintUI16LayoutSubelementV10AttributesV24isUserInteractionEnabledSbvp":{"name":"isUserInteractionEnabled","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.isUserInteractionEnabled\u003c/code\u003e.\u003c/p\u003e","parent_name":"Attributes"},"Structs/LayoutSubelement/Attributes.html#/s:11BlueprintUI16LayoutSubelementV10AttributesV8isHiddenSbvp":{"name":"isHidden","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.isHidden\u003c/code\u003e.\u003c/p\u003e","parent_name":"Attributes"},"Structs/LayoutSubelement/Attributes.html#/s:11BlueprintUI16LayoutSubelementV10AttributesV18tintAdjustmentModeSo010UIViewTintgH0Vvp":{"name":"tintAdjustmentMode","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.tintAdjustmentMode\u003c/code\u003e.\u003c/p\u003e","parent_name":"Attributes"},"Structs/LayoutSubelement.html#/s:11BlueprintUI16LayoutSubelementV10attributesAC10AttributesVvp":{"name":"attributes","abstract":"\u003cp\u003eOptional attributes to apply to this subelement, such as opacity and transforms.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutSubelement.html#/s:11BlueprintUI16LayoutSubelementV5place2at6anchor4sizeySo7CGPointV_AA9UnitPointVSo6CGSizeVtF":{"name":"place(at:anchor:size:)","abstract":"\u003cp\u003eAssigns a position and size to a subelement.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutSubelement.html#/s:11BlueprintUI16LayoutSubelementV5place2in6anchorySo6CGRectV_AA9UnitPointVtF":{"name":"place(in:anchor:)","abstract":"\u003cp\u003eAssigns a position and size to a subelement.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutSubelement.html#/s:11BlueprintUI16LayoutSubelementV5place7fillingySo6CGSizeV_tF":{"name":"place(filling:)","abstract":"\u003cp\u003eAssigns a position and size to a subelement.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutSubelement.html#/s:11BlueprintUI16LayoutSubelementV12sizeThatFitsySo6CGSizeVAA14SizeConstraintVF":{"name":"sizeThatFits(_:)","abstract":"\u003cp\u003eAsks the subelement for its size.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutSubelement.html#/s:11BlueprintUI16LayoutSubelementV6traits03forC4Type6TraitsQzxm_tAA0C0RzlF":{"name":"traits(forLayoutType:)","abstract":"\u003cp\u003eGets the layout traits of the subelement.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutSubelement/Attributes.html":{"name":"Attributes","abstract":"\u003cp\u003eOptional additional attributes that can be applied to a subelement.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutOptions.html#/s:11BlueprintUI13LayoutOptionsV7defaultACvpZ":{"name":"default","abstract":"\u003cp\u003eThe default configuration.\u003c/p\u003e","parent_name":"LayoutOptions"},"Structs/LayoutOptions.html#/s:11BlueprintUI13LayoutOptionsV19hintRangeBoundariesSbvp":{"name":"hintRangeBoundaries","abstract":"\u003cp\u003eEnables aggressive cache hinting along the boundaries of the range between constraints and","parent_name":"LayoutOptions"},"Structs/LayoutOptions.html#/s:11BlueprintUI13LayoutOptionsV23searchUnconstrainedKeysSbvp":{"name":"searchUnconstrainedKeys","abstract":"\u003cp\u003eAllows cache misses on finite constraints to deduce a range-based match by searching for a","parent_name":"LayoutOptions"},"Structs/LayoutOptions.html#/s:11BlueprintUI13LayoutOptionsV19hintRangeBoundaries23searchUnconstrainedKeysACSb_Sbtcfc":{"name":"init(hintRangeBoundaries:searchUnconstrainedKeys:)","parent_name":"LayoutOptions"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV6centerSo7CGPointVvp":{"name":"center","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.center\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV6boundsSo6CGRectVvp":{"name":"bounds","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.bounds\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV9transformSo13CATransform3DVvp":{"name":"transform","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.layer.transform\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV5alpha14CoreFoundation7CGFloatVvp":{"name":"alpha","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.alpha\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV24isUserInteractionEnabledSbvp":{"name":"isUserInteractionEnabled","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.isUserInteractionEnabled\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV8isHiddenSbvp":{"name":"isHidden","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.isHidden\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV18tintAdjustmentModeSo010UIViewTintfG0Vvp":{"name":"tintAdjustmentMode","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.tintAdjustmentMode\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesVACycfc":{"name":"init()","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV5frameACSo6CGRectV_tcfc":{"name":"init(frame:)","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV4sizeACSo6CGSizeV_tcfc":{"name":"init(size:)","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV6center6boundsACSo7CGPointV_So6CGRectVtcfc":{"name":"init(center:bounds:)","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV5frameSo6CGRectVvp":{"name":"frame","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV6withinyA2CF":{"name":"within(_:)","abstract":"\u003cp\u003eConcatenates layout attributes, moving the receiver from the local","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"LayoutAttributes"},"Structs/Keyed.html#/s:11BlueprintUI5KeyedV3keys11AnyHashableVSgvp":{"name":"key","abstract":"\u003cp\u003eThe key used to differentiate the element.\u003c/p\u003e","parent_name":"Keyed"},"Structs/Keyed.html#/s:11BlueprintUI5KeyedV7wrappedAA7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe wrapped element.\u003c/p\u003e","parent_name":"Keyed"},"Structs/Keyed.html#/s:11BlueprintUI5KeyedV3key8wrappingACs11AnyHashableVSg_AA7Element_ptcfc":{"name":"init(key:wrapping:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eKeyed\u003c/code\u003e element with the provided key and wrapped element.\u003c/p\u003e","parent_name":"Keyed"},"Structs/Keyed.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Keyed"},"Structs/Keyed.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Keyed"},"Structs/Hidden.html#/s:11BlueprintUI6HiddenV02isC0Sbvp":{"name":"isHidden","parent_name":"Hidden"},"Structs/Hidden.html#/s:11BlueprintUI6HiddenV14wrappedElementAA0E0_pvp":{"name":"wrappedElement","parent_name":"Hidden"},"Structs/Hidden.html#/s:11BlueprintUI6HiddenV_8wrappingACSb_AA7Element_ptcfc":{"name":"init(_:wrapping:)","parent_name":"Hidden"},"Structs/Hidden.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Hidden"},"Structs/Hidden.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Hidden"},"Structs/GridRow/Width.html#/s:11BlueprintUI7GridRowV5WidthO8absoluteyAE14CoreFoundation7CGFloatVcAEmF":{"name":"absolute(_:)","abstract":"\u003cp\u003eAssign the child a fixed width equal to the payload.\u003c/p\u003e","parent_name":"Width"},"Structs/GridRow/Width.html#/s:11BlueprintUI7GridRowV5WidthO12proportionalyAE14CoreFoundation7CGFloatVcAEmF":{"name":"proportional(_:)","abstract":"\u003cp\u003eAssign the child a proportional width of the available layout width. Note that proportional children","parent_name":"Width"},"Structs/GridRow/Child.html#/s:11BlueprintUI7GridRowV5ChildV7elementAA7Element_pvp":{"name":"element","abstract":"\u003cp\u003eThe element displayed in the \u003ccode\u003eGrid\u003c/code\u003e.\u003c/p\u003e","parent_name":"Child"},"Structs/GridRow/Child.html#/s:11BlueprintUI7GridRowV5ChildV3keys11AnyHashableVSgvp":{"name":"key","abstract":"\u003cp\u003eA unique identifier for the child.\u003c/p\u003e","parent_name":"Child"},"Structs/GridRow/Child.html#/s:11BlueprintUI7GridRowV5ChildV5widthAC5WidthOvp":{"name":"width","parent_name":"Child"},"Structs/GridRow/Child.html#/s:11BlueprintUI7GridRowV5ChildV5width3key7elementAeC5WidthO_s11AnyHashableVSgAA7Element_ptcfc":{"name":"init(width:key:element:)","parent_name":"Child"},"Structs/GridRow/Child.html#/s:11BlueprintUI7GridRowV5ChildVyAeA7Element_pcfc":{"name":"init(_:)","parent_name":"Child"},"Structs/GridRow.html#/s:11BlueprintUI7GridRowV17verticalAlignmentAA0D0V0dF0Ovp":{"name":"verticalAlignment","abstract":"\u003cp\u003eHow children are aligned vertically. By default, \u003ccode\u003e.fill\u003c/code\u003e.\u003c/p\u003e","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7GridRowV7spacing14CoreFoundation7CGFloatVvp":{"name":"spacing","abstract":"\u003cp\u003eThe space between children. By default, 0.\u003c/p\u003e","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7GridRowV8childrenSayAC5ChildVGvp":{"name":"children","abstract":"\u003cp\u003eThe child elements to be laid out. By default, an empty array.\u003c/p\u003e","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7GridRowV9configureACyACzXE_tcfc":{"name":"init(configure:)","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7GridRowV17verticalAlignment7spacing_AcA0D0V0dF0O_14CoreFoundation7CGFloatVSayAC5ChildVGyXEtcfc":{"name":"init(verticalAlignment:spacing:_:)","abstract":"\u003cp\u003eInitializer using result builder to declaritively build up a grid row.\u003c/p\u003e","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7GridRowV3add5width3key5childyAC5WidthO_s11AnyHashableVSgAA7Element_ptF":{"name":"add(width:key:child:)","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"GridRow"},"Structs/GridRow/Child.html":{"name":"Child","abstract":"\u003cp\u003eA child of a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/GridRow.html\"\u003eGridRow\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"GridRow"},"Structs/GridRow/Width.html":{"name":"Width","abstract":"\u003cp\u003eThe sizing and content of a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/GridRow.html\"\u003eGridRow\u003c/a\u003e\u003c/code\u003e child.\u003c/p\u003e","parent_name":"GridRow"},"Structs/GeometryProxy.html#/s:11BlueprintUI13GeometryProxyV10constraintAA14SizeConstraintVvp":{"name":"constraint","abstract":"\u003cp\u003eThe size constraint of the element being laid out.\u003c/p\u003e","parent_name":"GeometryProxy"},"Structs/GeometryProxy.html#/s:11BlueprintUI13GeometryProxyV7measure7element2inSo6CGSizeVAA7Element_p_AA14SizeConstraintVSgtF":{"name":"measure(element:in:)","abstract":"\u003cp\u003eMeasure the given element, constrained to the same size as the \u003ccode\u003eGeometryProxy\u003c/code\u003e itself (unless a constraint is explicitly provided).\u003c/p\u003e","parent_name":"GeometryProxy"},"Structs/Flow/Child.html#/s:11BlueprintUI4FlowV5ChildV3keys11AnyHashableVSgvp":{"name":"key","abstract":"\u003cp\u003eThe key used to optionally unique the child item.\u003c/p\u003e","parent_name":"Child"},"Structs/Flow/Child.html#/s:11BlueprintUI4FlowV5ChildV6traitsAE6TraitsVvp":{"name":"traits","abstract":"\u003cp\u003eThe traits of a child item.\u003c/p\u003e","parent_name":"Child"},"Structs/Flow/Child.html#/s:11BlueprintUI4FlowV5ChildV7elementAA7Element_pvp":{"name":"element","abstract":"\u003cp\u003eThe element representing the child item.\u003c/p\u003e","parent_name":"Child"},"Structs/Flow/Child.html#/s:11BlueprintUI4FlowV5ChildVyAeA7Element_pcfc":{"name":"init(_:)","abstract":"\u003cp\u003eCreates a new child item with the given element.\u003c/p\u003e","parent_name":"Child"},"Structs/Flow/Child.html#/s:11BlueprintUI4FlowV5ChildV_3keyAeA7Element_p_s11AnyHashableVSgtcfc":{"name":"init(_:key:)","abstract":"\u003cp\u003eCreates a new child item with the given element.\u003c/p\u003e","parent_name":"Child"},"Structs/Flow/Child.html#/s:11BlueprintUI4FlowV5ChildV6TraitsV":{"name":"Traits","parent_name":"Child"},"Structs/Flow/ItemAlignment.html#/s:11BlueprintUI4FlowV13ItemAlignmentO4fillyA2EmF":{"name":"fill","abstract":"\u003cp\u003eShorter items are stretched to fill the height of the tallest item.\u003c/p\u003e","parent_name":"ItemAlignment"},"Structs/Flow/ItemAlignment.html#/s:11BlueprintUI4FlowV13ItemAlignmentO3topyA2EmF":{"name":"top","abstract":"\u003cp\u003eShorter items are aligned to the top of the row.\u003c/p\u003e","parent_name":"ItemAlignment"},"Structs/Flow/ItemAlignment.html#/s:11BlueprintUI4FlowV13ItemAlignmentO6centeryA2EmF":{"name":"center","abstract":"\u003cp\u003eShorter items are vertically aligned within the row.\u003c/p\u003e","parent_name":"ItemAlignment"},"Structs/Flow/ItemAlignment.html#/s:11BlueprintUI4FlowV13ItemAlignmentO6bottomyA2EmF":{"name":"bottom","abstract":"\u003cp\u003eShorter items are aligned to the bottom of the row.\u003c/p\u003e","parent_name":"ItemAlignment"},"Structs/Flow/LineAlignment.html#/s:11BlueprintUI4FlowV13LineAlignmentO7leadingyA2EmF":{"name":"leading","abstract":"\u003cp\u003eItems are aligned with the leading edge.\u003c/p\u003e","parent_name":"LineAlignment"},"Structs/Flow/LineAlignment.html#/s:11BlueprintUI4FlowV13LineAlignmentO6centeryA2EmF":{"name":"center","abstract":"\u003cp\u003eItems are centered within the remaining space.\u003c/p\u003e","parent_name":"LineAlignment"},"Structs/Flow/LineAlignment.html#/s:11BlueprintUI4FlowV13LineAlignmentO8trailingyA2EmF":{"name":"trailing","abstract":"\u003cp\u003eItems are aligned with the trailing edge.\u003c/p\u003e","parent_name":"LineAlignment"},"Structs/Flow.html#/s:11BlueprintUI4FlowV13lineAlignmentAC04LineE0Ovp":{"name":"lineAlignment","abstract":"\u003cp\u003eHow to align each row when there is extra horizontal space.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI4FlowV11lineSpacing14CoreFoundation7CGFloatVvp":{"name":"lineSpacing","abstract":"\u003cp\u003eSpace between lines in the layout.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI4FlowV13itemAlignmentAC04ItemE0Ovp":{"name":"itemAlignment","abstract":"\u003cp\u003eHow to align items in a line when there is extra vertical space.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI4FlowV11itemSpacing14CoreFoundation7CGFloatVvp":{"name":"itemSpacing","abstract":"\u003cp\u003eSpace between items within a line.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI4FlowV8childrenSayAC5ChildVGvp":{"name":"children","abstract":"\u003cp\u003eThe child elements of the flow layout to be laid out.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI4FlowV13lineAlignment0D7Spacing04itemE00gF0_A2C04LineE0O_14CoreFoundation7CGFloatVAC04ItemE0OALSayAC5ChildVGyXEtcfc":{"name":"init(lineAlignment:lineSpacing:itemAlignment:itemSpacing:_:)","abstract":"\u003cp\u003eCreates a new flow layout with the provided parameters.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Flow"},"Structs/Flow/LineAlignment.html":{"name":"LineAlignment","abstract":"\u003cp\u003eHow to horizontally align the line when there is extra space.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow/ItemAlignment.html":{"name":"ItemAlignment","abstract":"\u003cp\u003eHow to vertically align items which there is extra space.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow/Child.html":{"name":"Child","abstract":"\u003cp\u003eA child placed within the flow layout.\u003c/p\u003e","parent_name":"Flow"},"Structs/ElementDimensions.html#/s:11BlueprintUI17ElementDimensionsV5width14CoreFoundation7CGFloatVvp":{"name":"width","abstract":"\u003cp\u003eThe element\u0026rsquo;s width\u003c/p\u003e","parent_name":"ElementDimensions"},"Structs/ElementDimensions.html#/s:11BlueprintUI17ElementDimensionsV6height14CoreFoundation7CGFloatVvp":{"name":"height","abstract":"\u003cp\u003eThe element\u0026rsquo;s height\u003c/p\u003e","parent_name":"ElementDimensions"},"Structs/ElementDimensions.html#/s:11BlueprintUI17ElementDimensionsVy14CoreFoundation7CGFloatVAA19HorizontalAlignmentVcip":{"name":"subscript(_:)","abstract":"\u003cp\u003eAccesses the value of the given guide, or the default value of the alignment if this","parent_name":"ElementDimensions"},"Structs/ElementDimensions.html#/s:11BlueprintUI17ElementDimensionsVy14CoreFoundation7CGFloatVAA17VerticalAlignmentVcip":{"name":"subscript(_:)","abstract":"\u003cp\u003eAccesses the value of the given guide, or the default value of the alignment if this","parent_name":"ElementDimensions"},"Structs/ElementDimensions.html#/s:11BlueprintUI17ElementDimensionsV8explicit14CoreFoundation7CGFloatVSgAA19HorizontalAlignmentV_tcip":{"name":"subscript(explicit:)","abstract":"\u003cp\u003eReturns the explicit value of the given alignment guide in this view, or","parent_name":"ElementDimensions"},"Structs/ElementDimensions.html#/s:11BlueprintUI17ElementDimensionsV8explicit14CoreFoundation7CGFloatVSgAA17VerticalAlignmentV_tcip":{"name":"subscript(explicit:)","abstract":"\u003cp\u003eReturns the explicit value of the given alignment guide in this view, or","parent_name":"ElementDimensions"},"Structs/Decorate/Position/PositionContext.html#/s:11BlueprintUI8DecorateV8PositionV0D7ContextV14decorationSizeSo6CGSizeVvp":{"name":"decorationSize","abstract":"\u003cp\u003eThe size of the decoration being positioned within the decorated content\u0026rsquo;s bounds.\u003c/p\u003e","parent_name":"PositionContext"},"Structs/Decorate/Position/PositionContext.html#/s:11BlueprintUI8DecorateV8PositionV0D7ContextV11contentSizeSo6CGSizeVvp":{"name":"contentSize","abstract":"\u003cp\u003eThe size of the content element within the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Decorate.html\"\u003eDecorate\u003c/a\u003e\u003c/code\u003e element.\u003c/p\u003e","parent_name":"PositionContext"},"Structs/Decorate/Position/PositionContext.html#/s:11BlueprintUI8DecorateV8PositionV0D7ContextV11environmentAA11EnvironmentVvp":{"name":"environment","abstract":"\u003cp\u003eThe environment the element is being rendered in.\u003c/p\u003e","parent_name":"PositionContext"},"Structs/Decorate/Position.html#/s:11BlueprintUI8DecorateV8PositionV5insetyAESo12UIEdgeInsetsVFZ":{"name":"inset(_:)","abstract":"\u003cp\u003eInsets the decoration element on each edge by the amount specified by","parent_name":"Position"},"Structs/Decorate/Position.html#/s:11BlueprintUI8DecorateV8PositionV5insetyAE14CoreFoundation7CGFloatVFZ":{"name":"inset(_:)","abstract":"\u003cp\u003eProvides a \u003ccode\u003e.inset\u003c/code\u003e position where the decoration is inset by the","parent_name":"Position"},"Structs/Decorate/Position.html#/s:11BlueprintUI8DecorateV8PositionV5inset10horizontal8verticalAE14CoreFoundation7CGFloatV_AKtFZ":{"name":"inset(horizontal:vertical:)","abstract":"\u003cp\u003eProvides a \u003ccode\u003e.inset\u003c/code\u003e position where the decoration is inset by the","parent_name":"Position"},"Structs/Decorate/Position.html#/s:11BlueprintUI8DecorateV8PositionV7aligned2to15horizontalGuide08verticalH0AeA9AlignmentV_14CoreFoundation7CGFloatVAA17ElementDimensionsVcSgAQtFZ":{"name":"aligned(to:horizontalGuide:verticalGuide:)","abstract":"\u003cp\u003eAligns the decoration according the given alignment option, optionally adjusting it with","parent_name":"Position"},"Structs/Decorate/Position.html#/s:11BlueprintUI8DecorateV8PositionV6corneryAeC6CornerO_So8UIOffsetVtFZ":{"name":"corner(_:_:)","abstract":"\u003cp\u003eThe decoration element is positioned in the given corner of the","parent_name":"Position"},"Structs/Decorate/Position.html#/s:11BlueprintUI8DecorateV8PositionV6customyAESo6CGRectVAE0D7ContextVcFZ":{"name":"custom(_:)","abstract":"\u003cp\u003eAllows you to provide custom positioning for the decoration, based on the passed context.\u003c/p\u003e","parent_name":"Position"},"Structs/Decorate/Position/PositionContext.html":{"name":"PositionContext","abstract":"\u003cp\u003eInformation provided to \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Decorate/Position.html\"\u003ePosition\u003c/a\u003e\u003c/code\u003e closures.\u003c/p\u003e","parent_name":"Position"},"Structs/Decorate/Corner.html#/s:11BlueprintUI8DecorateV6CornerO7topLeftyA2EmF":{"name":"topLeft","parent_name":"Corner"},"Structs/Decorate/Corner.html#/s:11BlueprintUI8DecorateV6CornerO8topRightyA2EmF":{"name":"topRight","parent_name":"Corner"},"Structs/Decorate/Corner.html#/s:11BlueprintUI8DecorateV6CornerO11bottomRightyA2EmF":{"name":"bottomRight","parent_name":"Corner"},"Structs/Decorate/Corner.html#/s:11BlueprintUI8DecorateV6CornerO10bottomLeftyA2EmF":{"name":"bottomLeft","parent_name":"Corner"},"Structs/Decorate/Layering.html#/s:11BlueprintUI8DecorateV8LayeringO5aboveyA2EmF":{"name":"above","abstract":"\u003cp\u003eThe decoration is displayed above the content element.\u003c/p\u003e","parent_name":"Layering"},"Structs/Decorate/Layering.html#/s:11BlueprintUI8DecorateV8LayeringO5belowyA2EmF":{"name":"below","abstract":"\u003cp\u003eThe decoration is displayed below the content element.\u003c/p\u003e","parent_name":"Layering"},"Structs/Decorate.html#/s:11BlueprintUI8DecorateV7wrappedAA7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe element which provides the sizing and measurement.","parent_name":"Decorate"},"Structs/Decorate.html#/s:11BlueprintUI8DecorateV10decorationAA7Element_pvp":{"name":"decoration","abstract":"\u003cp\u003eThe element which is used to draw the decoration.","parent_name":"Decorate"},"Structs/Decorate.html#/s:11BlueprintUI8DecorateV8layeringAC8LayeringOvp":{"name":"layering","abstract":"\u003cp\u003eWhere the decoration should be positioned in the z-axis: Above or below the wrapped element.\u003c/p\u003e","parent_name":"Decorate"},"Structs/Decorate.html#/s:11BlueprintUI8DecorateV8positionAC8PositionVvp":{"name":"position","abstract":"\u003cp\u003eHow the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Decorate.html#/s:11BlueprintUI8DecorateV10decorationAA7Element_pvp\"\u003edecoration\u003c/a\u003e\u003c/code\u003e should be positioned in respect to the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Decorate.html#/s:11BlueprintUI8DecorateV7wrappedAA7Element_pvp\"\u003ewrapped\u003c/a\u003e\u003c/code\u003e element.\u003c/p\u003e","parent_name":"Decorate"},"Structs/Decorate.html#/s:11BlueprintUI8DecorateV8layering8position8wrapping10decorationA2C8LayeringO_AC8PositionVAA7Element_pAaL_ptcfc":{"name":"init(layering:position:wrapping:decoration:)","abstract":"\u003cp\u003eCreates a new instance with the provided overflow, background, and wrapped element.\u003c/p\u003e","parent_name":"Decorate"},"Structs/Decorate.html#/s:11BlueprintUI12ProxyElementP21elementRepresentationAA0D0_pvp":{"name":"elementRepresentation","parent_name":"Decorate"},"Structs/Decorate/Layering.html":{"name":"Layering","abstract":"\u003cp\u003eIf the decoration should be positioned above or below the content element.\u003c/p\u003e","parent_name":"Decorate"},"Structs/Decorate/Corner.html":{"name":"Corner","abstract":"\u003cp\u003eWhat corner the decoration element should be positioned in.\u003c/p\u003e","parent_name":"Decorate"},"Structs/Decorate/Position.html":{"name":"Position","abstract":"\u003cp\u003eHow to position the decoration element relative to the content element.\u003c/p\u003e","parent_name":"Decorate"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV8Childrena":{"name":"Children","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV10buildBlockySayxGAEd_tFZ":{"name":"buildBlock(_:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV13buildOptionalySayxGAESgFZ":{"name":"buildOptional(_:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV11buildEither5firstSayxGAF_tFZ":{"name":"buildEither(first:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV11buildEither6secondSayxGAF_tFZ":{"name":"buildEither(second:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV15buildExpressionySayxGxFZ":{"name":"buildExpression(_:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV15buildExpressionySayxGxSgFZ":{"name":"buildExpression(_:)","abstract":"\u003cp\u003eThis function is disfavored in case a builder wants to offer additional \u003ccode\u003ebuildExpression\u003c/code\u003e functions to support","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV10buildArrayySayxGSayAEGFZ":{"name":"buildArray(_:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV10buildArrayySayxGAEFZ":{"name":"buildArray(_:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV24buildLimitedAvailabilityySayxGAEFZ":{"name":"buildLimitedAvailability(_:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV15buildExpressionySayxGAEFZ":{"name":"buildExpression(_:)","abstract":"\u003cp\u003eAllow for an array of \u003ccode\u003eChild\u003c/code\u003e to be flattened into the overall result.\u003c/p\u003e","parent_name":"Builder"},"Structs/AspectRatio.html#/s:11BlueprintUI11AspectRatioV6squareACvpZ":{"name":"square","abstract":"\u003cp\u003eA 1:1 aspect ratio.\u003c/p\u003e","parent_name":"AspectRatio"},"Structs/AspectRatio.html#/s:11BlueprintUI11AspectRatioV5ratio14CoreFoundation7CGFloatVvp":{"name":"ratio","abstract":"\u003cp\u003eThe width:height ratio value.\u003c/p\u003e","parent_name":"AspectRatio"},"Structs/AspectRatio.html#/s:11BlueprintUI11AspectRatioV5width6heightAC14CoreFoundation7CGFloatV_AHtcfc":{"name":"init(width:height:)","abstract":"\u003cp\u003eInitializes with a width \u0026amp; height ratio.\u003c/p\u003e","parent_name":"AspectRatio"},"Structs/AspectRatio.html#/s:11BlueprintUI11AspectRatioV5ratioAC14CoreFoundation7CGFloatV_tcfc":{"name":"init(ratio:)","abstract":"\u003cp\u003eInitializes with a specific ratio.\u003c/p\u003e","parent_name":"AspectRatio"},"Structs/VerticalAlignment.html#/s:11BlueprintUI17VerticalAlignmentVyAcA0D2ID_pXpcfc":{"name":"init(_:)","abstract":"\u003cp\u003eCreates an instance with the given ID.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/VerticalAlignment.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"VerticalAlignment"},"Structs/VerticalAlignment.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"VerticalAlignment"},"Structs/VerticalAlignment.html#/s:11BlueprintUI17VerticalAlignmentV3topACvpZ":{"name":"top","abstract":"\u003cp\u003eA guide marking the top edge of the element.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/VerticalAlignment.html#/s:11BlueprintUI17VerticalAlignmentV6centerACvpZ":{"name":"center","abstract":"\u003cp\u003eA guide marking the vertical center of the element.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/VerticalAlignment.html#/s:11BlueprintUI17VerticalAlignmentV6bottomACvpZ":{"name":"bottom","abstract":"\u003cp\u003eA guide marking the bottom edge of the element.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/HorizontalAlignment.html#/s:11BlueprintUI19HorizontalAlignmentVyAcA0D2ID_pXpcfc":{"name":"init(_:)","abstract":"\u003cp\u003eCreates an instance with the given ID.\u003c/p\u003e","parent_name":"HorizontalAlignment"},"Structs/HorizontalAlignment.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"HorizontalAlignment"},"Structs/HorizontalAlignment.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"HorizontalAlignment"},"Structs/HorizontalAlignment.html#/s:11BlueprintUI19HorizontalAlignmentV7leadingACvpZ":{"name":"leading","abstract":"\u003cp\u003eA guide marking the leading edge of the element.\u003c/p\u003e","parent_name":"HorizontalAlignment"},"Structs/HorizontalAlignment.html#/s:11BlueprintUI19HorizontalAlignmentV6centerACvpZ":{"name":"center","abstract":"\u003cp\u003eA guide marking the horizontal center of the element.\u003c/p\u003e","parent_name":"HorizontalAlignment"},"Structs/HorizontalAlignment.html#/s:11BlueprintUI19HorizontalAlignmentV8trailingACvpZ":{"name":"trailing","abstract":"\u003cp\u003eA guide marking the trailing edge of the element.\u003c/p\u003e","parent_name":"HorizontalAlignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV6centerACvpZ":{"name":"center","abstract":"\u003cp\u003eA guide marking the center of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV7leadingACvpZ":{"name":"leading","abstract":"\u003cp\u003eA guide marking the leading edge of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV8trailingACvpZ":{"name":"trailing","abstract":"\u003cp\u003eA guide marking the trailing edge of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV3topACvpZ":{"name":"top","abstract":"\u003cp\u003eA guide marking the top edge of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV6bottomACvpZ":{"name":"bottom","abstract":"\u003cp\u003eA guide marking the bottom edge of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV10topLeadingACvpZ":{"name":"topLeading","abstract":"\u003cp\u003eA guide marking the top and leading edges of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV11topTrailingACvpZ":{"name":"topTrailing","abstract":"\u003cp\u003eA guide marking the top and trailing edges of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV13bottomLeadingACvpZ":{"name":"bottomLeading","abstract":"\u003cp\u003eA guide marking the bottom and leading edges of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV14bottomTrailingACvpZ":{"name":"bottomTrailing","abstract":"\u003cp\u003eA guide marking the bottom and trailing edges of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV10horizontalAA010HorizontalC0Vvp":{"name":"horizontal","abstract":"\u003cp\u003eThe alignment on the horizontal axis.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV8verticalAA08VerticalC0Vvp":{"name":"vertical","abstract":"\u003cp\u003eThe alignment on the vertical axis.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV10horizontal8verticalAcA010HorizontalC0V_AA08VerticalC0Vtcfc":{"name":"init(horizontal:vertical:)","abstract":"\u003cp\u003eCreates an instance with the given horizontal and vertical alignments.\u003c/p\u003e","parent_name":"Alignment"},"Structs/FocusState.html#/s:11BlueprintUI10FocusStateVACySbGycSbRszrlufc":{"name":"init()","abstract":"\u003cp\u003eCreates a focus state that binds to a Boolean.\u003c/p\u003e","parent_name":"FocusState"},"Structs/FocusState.html#/s:11BlueprintUI10FocusStateVACyqd__SgGycADRszSHRd__lufc":{"name":"init()","abstract":"\u003cp\u003eCreates a focus state that binds to an optional type.\u003c/p\u003e","parent_name":"FocusState"},"Structs/FocusState.html#/s:11BlueprintUI10FocusStateV12wrappedValuexvp":{"name":"wrappedValue","abstract":"\u003cp\u003eThe current state value, taking into account whatever bindings might be","parent_name":"FocusState"},"Structs/FocusState.html#/s:11BlueprintUI10FocusStateV14projectedValueACyxGvp":{"name":"projectedValue","abstract":"\u003cp\u003eA projection of the focus state that can be bound to focusable elements.\u003c/p\u003e","parent_name":"FocusState"},"Structs/FocusState.html#/s:11BlueprintUI10FocusStateV7binding3forAA0C7BindingVqd___tqd__SgRszSHRd__lF":{"name":"binding(for:)","abstract":"\u003cp\u003eGets a focus binding associated with the \u003ccode\u003eFocusState\u003c/code\u003e being a specific value.\u003c/p\u003e","parent_name":"FocusState"},"Structs/FocusState.html#/s:11BlueprintUI10FocusStateV7bindingAA0C7BindingVySbRszrlF":{"name":"binding()","abstract":"\u003cp\u003eGets a focus binding associated with the \u003ccode\u003eFocusState\u003c/code\u003e value being \u003ccode\u003etrue\u003c/code\u003e.\u003c/p\u003e","parent_name":"FocusState"},"Structs/FocusBinding.html#/s:11BlueprintUI12FocusBindingV7triggerAA0C7TriggerCvp":{"name":"trigger","abstract":"\u003cp\u003eA trigger, which is responsible for piping focus changes from a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/FocusState.html\"\u003eFocusState\u003c/a\u003e\u003c/code\u003e into a backing","parent_name":"FocusBinding"},"Structs/FocusBinding.html#/s:11BlueprintUI12FocusBindingV02onC0yycvp":{"name":"onFocus","abstract":"\u003cp\u003eA callback to be called by a backing view when it is focused, to pipe changes from a backing","parent_name":"FocusBinding"},"Structs/FocusBinding.html#/s:11BlueprintUI12FocusBindingV6onBluryycvp":{"name":"onBlur","abstract":"\u003cp\u003eA callback to be called by a backing view when it loses focus, to pipe changes from a","parent_name":"FocusBinding"},"Structs/FocusBinding.html#/s:11BlueprintUI12FocusBindingV02onC00E4BlurACyyc_yyctcfc":{"name":"init(onFocus:onBlur:)","abstract":"\u003cp\u003eCreates a new binding\u003c/p\u003e","parent_name":"FocusBinding"},"Structs/UIViewElementContext.html#/s:11BlueprintUI20UIViewElementContextV11isMeasuringSbvp":{"name":"isMeasuring","abstract":"\u003cp\u003eThis bool indicates whether the view being updated is the static measuring instance. You may","parent_name":"UIViewElementContext"},"Structs/UIViewElementContext.html#/s:11BlueprintUI20UIViewElementContextV11environmentAA11EnvironmentVvp":{"name":"environment","abstract":"\u003cp\u003eThe environment the element is rendered in.\u003c/p\u003e","parent_name":"UIViewElementContext"},"Structs/ViewDescriptionContext.html#/s:11BlueprintUI22ViewDescriptionContextV6boundsSo6CGRectVvp":{"name":"bounds","abstract":"\u003cp\u003eThe bounds of this element after layout is complete.\u003c/p\u003e","parent_name":"ViewDescriptionContext"},"Structs/ViewDescriptionContext.html#/s:11BlueprintUI22ViewDescriptionContextV13subtreeExtentSo6CGRectVSgvp":{"name":"subtreeExtent","abstract":"\u003cp\u003eA rectangle in the local coordinate space that contains any children.","parent_name":"ViewDescriptionContext"},"Structs/ViewDescriptionContext.html#/s:11BlueprintUI22ViewDescriptionContextV11environmentAA11EnvironmentVvp":{"name":"environment","abstract":"\u003cp\u003eThe environment the element is rendered in.\u003c/p\u003e","parent_name":"ViewDescriptionContext"},"Structs/ViewDescriptionContext.html#/s:11BlueprintUI22ViewDescriptionContextV6bounds13subtreeExtent11environmentACSo6CGRectV_AHSgAA11EnvironmentVtcfc":{"name":"init(bounds:subtreeExtent:environment:)","parent_name":"ViewDescriptionContext"},"Structs/BlueprintViewRenderMetrics.html#/s:11BlueprintUI0A17ViewRenderMetricsV10layoutModeAA06LayoutG0Ovp":{"name":"layoutMode","abstract":"\u003cp\u003eThe layout mode used to render the view.\u003c/p\u003e","parent_name":"BlueprintViewRenderMetrics"},"Structs/BlueprintViewRenderMetrics.html#/s:11BlueprintUI0A17ViewRenderMetricsV14startTimestampSdvp":{"name":"startTimestamp","abstract":"\u003cp\u003eThe mach time in seconds at which the view render started (from \u003ccode\u003eCACurrentMediaTime()\u003c/code\u003e).\u003c/p\u003e","parent_name":"BlueprintViewRenderMetrics"},"Structs/BlueprintViewRenderMetrics.html#/s:11BlueprintUI0A17ViewRenderMetricsV13totalDurationSdvp":{"name":"totalDuration","abstract":"\u003cp\u003eThe total time it took to apply a new element.\u003c/p\u003e","parent_name":"BlueprintViewRenderMetrics"},"Structs/BlueprintViewRenderMetrics.html#/s:11BlueprintUI0A17ViewRenderMetricsV14layoutDurationSdvp":{"name":"layoutDuration","abstract":"\u003cp\u003eThe time it took to lay out and measure the new element.\u003c/p\u003e","parent_name":"BlueprintViewRenderMetrics"},"Structs/BlueprintViewRenderMetrics.html#/s:11BlueprintUI0A17ViewRenderMetricsV18viewUpdateDurationSdvp":{"name":"viewUpdateDuration","abstract":"\u003cp\u003eThe time it took to update the on-screen views for the element.\u003c/p\u003e","parent_name":"BlueprintViewRenderMetrics"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV5emptyACvpZ":{"name":"empty","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerVy5ValueQzSgxmcAA010AttributedC3KeyRzluip":{"name":"subscript(_:)","abstract":"\u003cp\u003eGet or set for the given \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/AttributedTextKey.html\"\u003eAttributedTextKey\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV4fontSo6UIFontCSgvp":{"name":"font","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV5colorSo7UIColorCSgvp":{"name":"color","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV8tracking14CoreFoundation7CGFloatVSgvp":{"name":"tracking","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV14underlineStyleSo011NSUnderlineG0VSgvp":{"name":"underlineStyle","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV14underlineColorSo7UIColorCSgvp":{"name":"underlineColor","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV14paragraphStyleSo011NSParagraphG0CSgvp":{"name":"paragraphStyle","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV4link10Foundation3URLVSgvp":{"name":"link","parent_name":"TextAttributeContainer"},"Structs/AttributedText/Run.html#/s:11BlueprintUI14AttributedTextV3RunV5rangeSnySS5IndexVGvp":{"name":"range","abstract":"\u003cp\u003eThe range of the run of attributes.\u003c/p\u003e","parent_name":"Run"},"Structs/AttributedText/Run.html#/s:11BlueprintUI14AttributedTextV3RunV10attributesAA0D18AttributeContainerVvp":{"name":"attributes","abstract":"\u003cp\u003eThe attributes that apply to this run.\u003c/p\u003e","parent_name":"Run"},"Structs/AttributedText/Run.html#/s:11BlueprintUI14AttributedTextV3RunV13dynamicMemberxs7KeyPathCyAA0D18AttributeContainerVxG_tcluip":{"name":"subscript(dynamicMember:)","abstract":"\u003cp\u003eDynamic member getter for the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/TextAttributeContainer.html\"\u003eTextAttributeContainer\u003c/a\u003e\u003c/code\u003e of this run.\u003c/p\u003e","parent_name":"Run"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextV6stringSSvp":{"name":"string","abstract":"\u003cp\u003eThe wrapped string, with no attributes.\u003c/p\u003e","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextV16attributedStringSo012NSAttributedF0Cvp":{"name":"attributedString","abstract":"\u003cp\u003eAn \u003ccode\u003eNSAttributedString\u003c/code\u003e representation of the attributed text.\u003c/p\u003e","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextV4runsSayAC3RunVGvp":{"name":"runs","abstract":"\u003cp\u003eAn iterable view into segments of the attributed string, each of which indicates where a run of identical","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextVyACSScfc":{"name":"init(_:)","abstract":"\u003cp\u003eCreate some \u003ccode\u003eAttributedText\u003c/code\u003e from a plain string.\u003c/p\u003e","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextVyACSo18NSAttributedStringCcfc":{"name":"init(_:)","abstract":"\u003cp\u003eCreate some \u003ccode\u003eAttributedText\u003c/code\u003e from an attributed string. The attributes are preserved.\u003c/p\u003e","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextV5range2ofSnySS5IndexVGSgx_tSyRzlF":{"name":"range(of:)","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextV13dynamicMemberxs15WritableKeyPathCyAA0D18AttributeContainerVxG_tcluip":{"name":"subscript(dynamicMember:)","abstract":"\u003cp\u003eDynamic member getter or setter for any attributes defined on \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/TextAttributeContainer.html\"\u003eTextAttributeContainer\u003c/a\u003e\u003c/code\u003e.","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextVyAA0D18AttributeContainerVxcSXRzSS5IndexV5BoundRtzluip":{"name":"subscript(_:)","abstract":"\u003cp\u003eGet or set a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/TextAttributeContainer.html\"\u003eTextAttributeContainer\u003c/a\u003e\u003c/code\u003e for the provided range of text. This allows you to set attributes","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextV1poiyA2C_ACtFZ":{"name":"+(_:_:)","abstract":"\u003cp\u003eConcatenate two pieces of \u003ccode\u003eAttributedText\u003c/code\u003e together.\u003c/p\u003e","parent_name":"AttributedText"},"Structs/AttributedText/Run.html":{"name":"Run","abstract":"\u003cp\u003eA Run represents a range of identical attributes in the attributed text.\u003c/p\u003e","parent_name":"AttributedText"},"Structs/AttributedText.html":{"name":"AttributedText","abstract":"\u003cp\u003e\u003ccode\u003eAttributedText\u003c/code\u003e allows you to apply strongly-typed attributes to strings (much like the \u003ccode\u003eAttributedString\u003c/code\u003e type"},"Structs/TextAttributeContainer.html":{"name":"TextAttributeContainer"},"Structs/BlueprintViewRenderMetrics.html":{"name":"BlueprintViewRenderMetrics"},"Structs/ViewDescriptionContext.html":{"name":"ViewDescriptionContext","abstract":"\u003cp\u003eThe context passing to the \u003ccode\u003ebackingViewDescription\u003c/code\u003e of an Element.\u003c/p\u003e"},"Structs/UIViewElementContext.html":{"name":"UIViewElementContext","abstract":"\u003cp\u003eContext object passed into \u003ccode\u003eupdateUIView\u003c/code\u003e.\u003c/p\u003e"},"Structs/FocusBinding.html":{"name":"FocusBinding","abstract":"\u003cp\u003eA two-way binding between a focusable element\u0026rsquo;s backing view and a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/FocusState.html\"\u003eFocusState\u003c/a\u003e\u003c/code\u003e-wrapped"},"Structs/FocusState.html":{"name":"FocusState","abstract":"\u003cp\u003eA property wrapper type that can read and write a value that represents the placement of focus.\u003c/p\u003e"},"Structs/Alignment.html":{"name":"Alignment","abstract":"\u003cp\u003eAn alignment in both axes.\u003c/p\u003e"},"Structs/HorizontalAlignment.html":{"name":"HorizontalAlignment","abstract":"\u003cp\u003eAn alignment position along the horizontal axis.\u003c/p\u003e"},"Structs/VerticalAlignment.html":{"name":"VerticalAlignment","abstract":"\u003cp\u003eAn alignment position along the vertical axis.\u003c/p\u003e"},"Structs/AspectRatio.html":{"name":"AspectRatio","abstract":"\u003cp\u003eRepresents an a proportional relationship between width and height.\u003c/p\u003e"},"Structs/Builder.html":{"name":"Builder","abstract":"\u003cp\u003eGeneric result builder for converting blocks of \u003ccode\u003eChild...\u003c/code\u003e into \u003ccode\u003e[Child]\u003c/code\u003e.\u003c/p\u003e"},"Structs/Decorate.html":{"name":"Decorate","abstract":"\u003cp\u003ePlaces a decoration element behind or in front of the given \u003ccode\u003ewrapped\u003c/code\u003e element,"},"Structs/ElementDimensions.html":{"name":"ElementDimensions","abstract":"\u003cp\u003eAn element’s size and its alignment guides in its own coordinate space.\u003c/p\u003e"},"Structs/Flow.html":{"name":"Flow","abstract":"\u003cp\u003eElement which lays out children horizontally, wrapping to another row when there is not enough space.\u003c/p\u003e"},"Structs/GeometryProxy.html":{"name":"GeometryProxy","abstract":"\u003cp\u003eContains information about the current layout being measured by GeometryReader\u003c/p\u003e"},"Structs/GridRow.html":{"name":"GridRow","abstract":"\u003cp\u003eLike \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Row.html\"\u003eRow\u003c/a\u003e\u003c/code\u003e, \u003ccode\u003eGridRow\u003c/code\u003e displays a list of items in a linear horizontal layout. Unlike \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Row.html\"\u003eRow\u003c/a\u003e\u003c/code\u003e, \u003ccode\u003eGridRow\u003c/code\u003e provides"},"Structs/Hidden.html":{"name":"Hidden","abstract":"\u003cp\u003e\u003ccode\u003eHidden\u003c/code\u003e conditionally hides its wrapped element.\u003c/p\u003e"},"Structs/Keyed.html":{"name":"Keyed","abstract":"\u003cp\u003e\u003ccode\u003eKeyed\u003c/code\u003e allows providing a \u003ccode\u003eHashable\u003c/code\u003e value which is used"},"Structs/LayoutAttributes.html":{"name":"LayoutAttributes","abstract":"\u003cp\u003eContains layout-related metrics for an element.\u003c/p\u003e"},"Structs/LayoutOptions.html":{"name":"LayoutOptions","abstract":"\u003cp\u003eConfiguration options for \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbEnums/LayoutMode.html#/s:11BlueprintUI10LayoutModeO11caffeinatedACvpZ\"\u003ecaffeinated\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e"},"Structs/LayoutSubelement.html":{"name":"LayoutSubelement","abstract":"\u003cp\u003eA proxy that represents one child element of a layout.\u003c/p\u003e"},"Structs/LayoutWriter.html":{"name":"LayoutWriter","abstract":"\u003cp\u003eA parent element which allows arbitrary, custom layout and positioning of its children.\u003c/p\u003e"},"Structs/LifecycleObserver.html":{"name":"LifecycleObserver","abstract":"\u003cp\u003eAllows element lifecycle callbacks to be inserted anywhere into the element tree.\u003c/p\u003e"},"Structs/Opacity.html":{"name":"Opacity","abstract":"\u003cp\u003eChanges the opacity of the wrapped element.\u003c/p\u003e"},"Structs/StackLayout.html":{"name":"StackLayout","abstract":"\u003cp\u003eA layout implementation that linearly lays out an array of children along either the horizontal or vertical axis.\u003c/p\u003e"},"Structs/TintAdjustmentMode.html":{"name":"TintAdjustmentMode","abstract":"\u003cp\u003e\u003ccode\u003eTintAdjustmentMode\u003c/code\u003e conditionally modifies the tint adjustment mode of its wrapped element.\u003c/p\u003e"},"Structs/Transformed.html":{"name":"Transformed","abstract":"\u003cp\u003eChanges the transform of the wrapped element.\u003c/p\u003e"},"Structs/UnitPoint.html":{"name":"UnitPoint","abstract":"\u003cp\u003eA normalized point in an element\u0026rsquo;s coordinate space.\u003c/p\u003e"},"Structs/UserInteractionEnabled.html":{"name":"UserInteractionEnabled","abstract":"\u003cp\u003e\u003ccode\u003eUserInteractionEnabled\u003c/code\u003e conditionally enables user interaction of its wrapped element.\u003c/p\u003e"},"Structs/SizeConstraint.html":{"name":"SizeConstraint","abstract":"\u003cp\u003eDefines the maximum size for a measurement.\u003c/p\u003e"},"Structs/AnimationAttributes.html":{"name":"AnimationAttributes","abstract":"\u003cp\u003eUIView animation configuration values.\u003c/p\u003e"},"Structs/AccessibilityFocus.html":{"name":"AccessibilityFocus","abstract":"\u003cp\u003eEnables VoiceOver focus to jump to the wrapped element via a trigger that can be manually fired.\u003c/p\u003e"},"Structs/URLHandlerEnvironmentKey.html":{"name":"URLHandlerEnvironmentKey"},"Structs/EditingMenu.html":{"name":"EditingMenu","abstract":"\u003cp\u003eAllows showing the system\u0026rsquo;s \u003ccode\u003eUIMenuController\u003c/code\u003e editing menu.\u003c/p\u003e"},"Structs/EditingMenuItem.html":{"name":"EditingMenuItem","abstract":"\u003cp\u003eA single item in an editing menu.\u003c/p\u003e"},"Structs/TextShadow.html":{"name":"TextShadow","abstract":"\u003cp\u003eDescribes a shadow that can be applied to text elements, like \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Label.html\"\u003eLabel\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e"},"Protocols/URLHandler.html#/s:25BlueprintUICommonControls10URLHandlerP5onTap3urly10Foundation3URLV_tF":{"name":"onTap(url:)","parent_name":"URLHandler"},"Protocols/NativeView.html#/s:11BlueprintUI10NativeViewPAASo6UIViewCRbzrlE8describeyAA0D11DescriptionVyAH13ConfigurationVy_xGzXEFZ":{"name":"describe(_:)","abstract":"\u003cp\u003eGenerates a view description for the receiving class.","parent_name":"NativeView"},"Protocols/Measurable.html#/s:11BlueprintUI10MeasurableP7measure2inSo6CGSizeVAA14SizeConstraintV_tF":{"name":"measure(in:)","abstract":"\u003cp\u003eMeasures the required size of the receiver.\u003c/p\u003e","parent_name":"Measurable"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementPxycfc":{"name":"init()","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementP6layoutAA0C6LayoutVvp":{"name":"layout","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementP8childrenSayAA0D0_p7element_AA0C6LayoutV6TraitsV6traitss11AnyHashableVSg3keytGvp":{"name":"children","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementPAAEyxyxzXEcfc":{"name":"init(_:)","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementPAAE3add12growPriority06shrinkG014alignmentGuide3key5childy14CoreFoundation7CGFloatV_A2lA0D10DimensionsVcSgs11AnyHashableVSgAA0D0_ptF":{"name":"add(growPriority:shrinkPriority:alignmentGuide:key:child:)","abstract":"\u003cp\u003eAdds a given child element to the stack.\u003c/p\u003e","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementPAAE8addFixed14alignmentGuide3key5childy14CoreFoundation7CGFloatVAA0D10DimensionsVcSg_s11AnyHashableVSgAA0D0_ptF":{"name":"addFixed(alignmentGuide:key:child:)","abstract":"\u003cp\u003eConvenience method for adding a child with a grow and shrink priority of 0.0.\u003c/p\u003e","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementPAAE11addFlexible14alignmentGuide3key5childy14CoreFoundation7CGFloatVAA0D10DimensionsVcSg_s11AnyHashableVSgAA0D0_ptF":{"name":"addFlexible(alignmentGuide:key:child:)","abstract":"\u003cp\u003eConvenience method for adding a child with a grow and shrink priority of 1.0.\u003c/p\u003e","parent_name":"StackElement"},"Protocols/CaffeinatedSingleChildLayout.html#/s:11BlueprintUI28CaffeinatedSingleChildLayoutP10Subelementa":{"name":"Subelement","parent_name":"CaffeinatedSingleChildLayout"},"Protocols/CaffeinatedSingleChildLayout.html#/s:11BlueprintUI28CaffeinatedSingleChildLayoutP5CacheQa":{"name":"Cache","abstract":"\u003cp\u003eCached values associated with the layout instance.\u003c/p\u003e","parent_name":"CaffeinatedSingleChildLayout"},"Protocols/CaffeinatedSingleChildLayout.html#/s:11BlueprintUI28CaffeinatedSingleChildLayoutP12sizeThatFits8proposal10subelement11environment5cacheSo6CGSizeVAA14SizeConstraintV_AA0F10SubelementVAA11EnvironmentV5CacheQzztF":{"name":"sizeThatFits(proposal:subelement:environment:cache:)","abstract":"\u003cp\u003eReturns the size of the element, given a proposed size constraint and the container\u0026rsquo;s","parent_name":"CaffeinatedSingleChildLayout"},"Protocols/CaffeinatedSingleChildLayout.html#/s:11BlueprintUI28CaffeinatedSingleChildLayoutP15placeSubelement2in10subelement11environment5cacheySo6CGSizeV_AA0fH0VAA11EnvironmentV5CacheQzztF":{"name":"placeSubelement(in:subelement:environment:cache:)","abstract":"\u003cp\u003eAssigns a position to the layout’s subelement.\u003c/p\u003e","parent_name":"CaffeinatedSingleChildLayout"},"Protocols/CaffeinatedSingleChildLayout.html#/s:11BlueprintUI28CaffeinatedSingleChildLayoutP9makeCache10subelement11environment0H0QzAA0F10SubelementV_AA11EnvironmentVtF":{"name":"makeCache(subelement:environment:)","abstract":"\u003cp\u003eCreates and initializes a cache for a layout instance.\u003c/p\u003e","parent_name":"CaffeinatedSingleChildLayout"},"Protocols/LegacySingleChildLayout.html#/s:11BlueprintUI23LegacySingleChildLayoutP7measure2in5childSo6CGSizeVAA14SizeConstraintV_AA10Measurable_ptF":{"name":"measure(in:child:)","abstract":"\u003cp\u003eComputes the size that this layout requires\u003c/p\u003e","parent_name":"LegacySingleChildLayout"},"Protocols/LegacySingleChildLayout.html#/s:11BlueprintUI23LegacySingleChildLayoutP6layout4size5childAA0F10AttributesVSo6CGSizeV_AA10Measurable_ptF":{"name":"layout(size:child:)","abstract":"\u003cp\u003eGenerates layout attributes for the child.\u003c/p\u003e","parent_name":"LegacySingleChildLayout"},"Protocols/CaffeinatedLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP11Subelementsa":{"name":"Subelements","parent_name":"CaffeinatedLayout"},"Protocols/CaffeinatedLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP5CacheQa":{"name":"Cache","abstract":"\u003cp\u003eCached values associated with the layout instance.\u003c/p\u003e","parent_name":"CaffeinatedLayout"},"Protocols/CaffeinatedLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP12sizeThatFits8proposal11subelements11environment5cacheSo6CGSizeVAA14SizeConstraintV_SayAA0D10SubelementVGAA11EnvironmentV5CacheQzztF":{"name":"sizeThatFits(proposal:subelements:environment:cache:)","abstract":"\u003cp\u003eReturns the size of the composite element, given a proposed size constraint and the","parent_name":"CaffeinatedLayout"},"Protocols/CaffeinatedLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP16placeSubelements2in11subelements11environment5cacheySo6CGSizeV_SayAA0D10SubelementVGAA11EnvironmentV5CacheQzztF":{"name":"placeSubelements(in:subelements:environment:cache:)","abstract":"\u003cp\u003eAssigns positions to each of the layout’s subelements.\u003c/p\u003e","parent_name":"CaffeinatedLayout"},"Protocols/CaffeinatedLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP9makeCache11subelements11environment0F0QzSayAA0D10SubelementVG_AA11EnvironmentVtF":{"name":"makeCache(subelements:environment:)","abstract":"\u003cp\u003eCreates and initializes a cache for a layout instance.\u003c/p\u003e","parent_name":"CaffeinatedLayout"},"Protocols/LegacyLayout.html#/s:11BlueprintUI12LegacyLayoutP6TraitsQa":{"name":"Traits","abstract":"\u003cp\u003ePer-item metadata that is used during the measuring and layout pass.\u003c/p\u003e","parent_name":"LegacyLayout"},"Protocols/LegacyLayout.html#/s:11BlueprintUI12LegacyLayoutP7measure2in5itemsSo6CGSizeVAA14SizeConstraintV_Say6TraitsQz6traits_AA10Measurable_p7contenttGtF":{"name":"measure(in:items:)","abstract":"\u003cp\u003eComputes the size that this layout requires in a layout, given an array of children and","parent_name":"LegacyLayout"},"Protocols/LegacyLayout.html#/s:11BlueprintUI12LegacyLayoutP6layout4size5itemsSayAA0D10AttributesVGSo6CGSizeV_Say6TraitsQz6traits_AA10Measurable_p7contenttGtF":{"name":"layout(size:items:)","abstract":"\u003cp\u003eGenerates layout attributes for the given items.\u003c/p\u003e","parent_name":"LegacyLayout"},"Protocols/LegacyLayout.html#/s:11BlueprintUI12LegacyLayoutP13defaultTraits0F0QzvpZ":{"name":"defaultTraits","abstract":"\u003cp\u003eReturns a default traits object.\u003c/p\u003e","parent_name":"LegacyLayout"},"Protocols/ElementBuilderChild.html#/s:11BlueprintUI19ElementBuilderChildPyxAA0C0_pcfc":{"name":"init(_:)","parent_name":"ElementBuilderChild"},"Protocols/AlignmentID.html#/s:11BlueprintUI11AlignmentIDP12defaultValue2in14CoreFoundation7CGFloatVAA17ElementDimensionsV_tFZ":{"name":"defaultValue(in:)","abstract":"\u003cp\u003eReturns the value of the corresponding guide, in \u003ccode\u003econtext\u003c/code\u003e, when not","parent_name":"AlignmentID"},"Protocols/UIViewElement.html#/s:11BlueprintUI13UIViewElementP0C4TypeQa":{"name":"UIViewType","abstract":"\u003cp\u003eThe type of the view associated with the element.\u003c/p\u003e","parent_name":"UIViewElement"},"Protocols/UIViewElement.html#/s:11BlueprintUI13UIViewElementP04makeC00C4TypeQzyF":{"name":"makeUIView()","abstract":"\u003cp\u003eCreate and return a new instance of the provided view type.\u003c/p\u003e","parent_name":"UIViewElement"},"Protocols/UIViewElement.html#/s:11BlueprintUI13UIViewElementP06updateC0_4withy0C4TypeQz_AA0cD7ContextVtF":{"name":"updateUIView(_:with:)","abstract":"\u003cp\u003eUpdate the view instance with the content from the element. The context provides additional","parent_name":"UIViewElement"},"Protocols/UIViewElement.html#/s:11BlueprintUI13UIViewElementP4size_8thatFitsSo6CGSizeVAG_0C4TypeQztF":{"name":"size(_:thatFits:)","abstract":"\u003cp\u003eReturns the sizing measurement for the element for the provided","parent_name":"UIViewElement"},"Protocols/UIViewElement.html#/s:11BlueprintUI13UIViewElementPAAE7contentAA0D7ContentVvp":{"name":"content","abstract":"\u003cp\u003eDefer to the reused measurement view to provide the size of the element.\u003c/p\u003e","parent_name":"UIViewElement"},"Protocols/UIViewElement.html#/s:11BlueprintUI13UIViewElementPAAE22backingViewDescription4withAA0fG0VSgAA0fG7ContextV_tF":{"name":"backingViewDescription(with:)","abstract":"\u003cp\u003eProvide the view for the element.\u003c/p\u003e","parent_name":"UIViewElement"},"Protocols/BlueprintViewMetricsDelegate.html#/s:11BlueprintUI0A19ViewMetricsDelegateP09blueprintC0_19completedRenderWithyAA0aC0C_AA0achD0VtF":{"name":"blueprintView(_:completedRenderWith:)","parent_name":"BlueprintViewMetricsDelegate"},"Protocols/AttributedTextKey.html#/s:11BlueprintUI17AttributedTextKeyP5ValueQa":{"name":"Value","parent_name":"AttributedTextKey"},"Protocols/AttributedTextKey.html#/s:11BlueprintUI17AttributedTextKeyP4nameSo018NSAttributedStringE0avpZ":{"name":"name","parent_name":"AttributedTextKey"},"Protocols/AttributedTextKey.html":{"name":"AttributedTextKey","abstract":"\u003cp\u003eDefine \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AttributedText.html\"\u003eAttributedText\u003c/a\u003e\u003c/code\u003e keys using this protocol. Keys must have an attribute name"},"Protocols/BlueprintViewMetricsDelegate.html":{"name":"BlueprintViewMetricsDelegate","abstract":"\u003cp\u003eProvides performance information for blueprint layouts and updates.\u003c/p\u003e"},"Protocols/UIViewElement.html":{"name":"UIViewElement","abstract":"\u003cp\u003eAn element type which makes it easier to wrap an existing \u003ccode\u003eUIView\u003c/code\u003e instance that"},"Protocols/AlignmentID.html":{"name":"AlignmentID","abstract":"\u003cp\u003eTypes used to identify alignment guides.\u003c/p\u003e"},"Protocols/ElementBuilderChild.html":{"name":"ElementBuilderChild","abstract":"\u003cp\u003eDefines a way for an\u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/Element.html\"\u003eElement\u003c/a\u003e\u003c/code\u003e to be implicitly converted into the conforming type (the child of a container)."},"Protocols.html#/s:11BlueprintUI6LayoutP":{"name":"Layout","abstract":"\u003cp\u003eA type that defines the geometry of a collection of elements.\u003c/p\u003e"},"Protocols/LegacyLayout.html":{"name":"LegacyLayout"},"Protocols/CaffeinatedLayout.html":{"name":"CaffeinatedLayout"},"Protocols.html#/s:11BlueprintUI17SingleChildLayoutP":{"name":"SingleChildLayout","abstract":"\u003cp\u003eA type that defines the geometry of a single element.\u003c/p\u003e"},"Protocols/LegacySingleChildLayout.html":{"name":"LegacySingleChildLayout"},"Protocols/CaffeinatedSingleChildLayout.html":{"name":"CaffeinatedSingleChildLayout"},"Protocols/StackElement.html":{"name":"StackElement","abstract":"\u003cp\u003eConforming types (Row and Column) act as StackLayout powered containers.\u003c/p\u003e"},"Protocols/Measurable.html":{"name":"Measurable","abstract":"\u003cp\u003eConforming types can calculate the size that they require within a layout.\u003c/p\u003e"},"Protocols/NativeView.html":{"name":"NativeView","abstract":"\u003cp\u003eMarker protocol used by generic extensions to native views (e.g. \u003ccode\u003eUIView\u003c/code\u003e).\u003c/p\u003e"},"Protocols/URLHandler.html":{"name":"URLHandler","abstract":"\u003cp\u003eConform to this protocol to handle links tapped in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AttributedLabel.html\"\u003eAttributedLabel\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e"},"Extensions/UIOffset.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"UIOffset"},"Extensions/AXCustomContent.html#/s:So15AXCustomContentC25BlueprintUICommonControlsEyAbC20AccessibilityElementV06CustomB0Vcfc":{"name":"init(_:)","parent_name":"AXCustomContent"},"Extensions/AXCustomContent.html#/s:So15AXCustomContentC25BlueprintUICommonControlsE5label5value10importanceABSS_SSSgSo0aB10ImportanceVtcfc":{"name":"init(label:value:importance:)","parent_name":"AXCustomContent"},"Extensions/UIAccessibilityTraits.html#/s:So21UIAccessibilityTraitsa25BlueprintUICommonControlsE4withABShyAC20AccessibilityElementV5TraitOG_tcfc":{"name":"init(with:)","parent_name":"UIAccessibilityTraits"},"Extensions/ElementBuilder.html#/s:11BlueprintUI7BuilderVA2A07ElementC5ChildRzlE15buildExpressionySayxGAA0D0_pFZ":{"name":"buildExpression(_:)","abstract":"\u003cp\u003eAllow an Element to be implicitly converted into \u003ccode\u003eChild\u003c/code\u003e.\u003c/p\u003e","parent_name":"ElementBuilder"},"Extensions/ElementBuilder.html#/s:11BlueprintUI7BuilderVA2A07ElementC5ChildRzlE15buildExpressionySayxGAA0D0_pSgFZ":{"name":"buildExpression(_:)","abstract":"\u003cp\u003eAllow an Optional Element to be unwrapped and implicitly converted into \u003ccode\u003eChild\u003c/code\u003e.\u003c/p\u003e","parent_name":"ElementBuilder"},"Extensions/ElementBuilder.html#/s:11BlueprintUI7BuilderVA2A07ElementC5ChildRzlE15buildExpressionySayxGSayAA0D0_pGFZ":{"name":"buildExpression(_:)","abstract":"\u003cp\u003eAllow Elements to be implicitly converted into \u003ccode\u003eChild\u003c/code\u003e.\u003c/p\u003e","parent_name":"ElementBuilder"},"Extensions/ElementBuilder.html#/s:11BlueprintUI7BuilderVA2A7OverlayV5ChildVRszlE15buildExpressionySayAGGAA5KeyedVFZ":{"name":"buildExpression(_:)","parent_name":"ElementBuilder"},"Extensions/ElementBuilder.html#/s:11BlueprintUI7BuilderVA2A11StackLayoutV5ChildVRszlE15buildExpressionySayAGGAA5KeyedVFZ":{"name":"buildExpression(_:)","parent_name":"ElementBuilder"},"Extensions/FloatingPoint.html#/s:SF11BlueprintUIE17replacingInfinity4withxx_tF":{"name":"replacingInfinity(with:)","abstract":"\u003cp\u003eReturns \u003ccode\u003ereplacement\u003c/code\u003e if \u003ccode\u003eself.isInfinite\u003c/code\u003e is \u003ccode\u003etrue\u003c/code\u003e, or \u003ccode\u003eself\u003c/code\u003e if \u003ccode\u003eself\u003c/code\u003e is finite.\u003c/p\u003e","parent_name":"FloatingPoint"},"Extensions/FloatingPoint.html#/s:SF11BlueprintUIE5round_2byys25FloatingPointRoundingRuleO_xtF":{"name":"round(_:by:)","abstract":"\u003cp\u003eRounds this value to the specified scale, where the scale is the number of rounding stops per integer.\u003c/p\u003e","parent_name":"FloatingPoint"},"Extensions/FloatingPoint.html#/s:SF11BlueprintUIE7rounded_2byxs25FloatingPointRoundingRuleO_xtF":{"name":"rounded(_:by:)","abstract":"\u003cp\u003eReturns this value rounded to the specified scale, where the scale is the number of rounding stops per integer.\u003c/p\u003e","parent_name":"FloatingPoint"},"Extensions/CGSize.html#/s:So6CGSizeV11BlueprintUIE8infinityABvpZ":{"name":"infinity","abstract":"\u003cp\u003eA size with \u003ccode\u003einfinity\u003c/code\u003e in both dimensions.\u003c/p\u003e","parent_name":"CGSize"},"Extensions/CGSize.html#/s:So6CGSizeV11BlueprintUIE17replacingInfinity4withA2B_tF":{"name":"replacingInfinity(with:)","abstract":"\u003cp\u003eReturns a size with infinite dimensions replaced by the values from the given replacement.\u003c/p\u003e","parent_name":"CGSize"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E7iPhone7ACvpZ":{"name":"iPhone7","abstract":"\u003cp\u003eiPhone 7\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E11iPhone7PlusACvpZ":{"name":"iPhone7Plus","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E7iPhone8ACvpZ":{"name":"iPhone8","abstract":"\u003cp\u003eiPhone 8\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E11iPhone8PlusACvpZ":{"name":"iPhone8Plus","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E10iPhoneSE_1ACvpZ":{"name":"iPhoneSE_1","abstract":"\u003cp\u003eiPhone SE\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E10iPhoneSE_2ACvpZ":{"name":"iPhoneSE_2","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E7iPhoneXACvpZ":{"name":"iPhoneX","abstract":"\u003cp\u003eiPhone X\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E8iPhoneXsACvpZ":{"name":"iPhoneXs","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E11iPhoneXsMaxACvpZ":{"name":"iPhoneXsMax","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E8iPhoneXrACvpZ":{"name":"iPhoneXr","abstract":"\u003cp\u003eiPhone Xr\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E10iPadMini_4ACvpZ":{"name":"iPadMini_4","abstract":"\u003cp\u003eiPad Mini\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E10iPadMini_5ACvpZ":{"name":"iPadMini_5","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E9iPadAir_2ACvpZ":{"name":"iPadAir_2","abstract":"\u003cp\u003eiPad Air\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E9iPadAir_3ACvpZ":{"name":"iPadAir_3","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E6iPad_5ACvpZ":{"name":"iPad_5","abstract":"\u003cp\u003eiPad\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E6iPad_6ACvpZ":{"name":"iPad_6","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E11iPadPro_9_7ACvpZ":{"name":"iPadPro_9_7","abstract":"\u003cp\u003eiPad Pro\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E12iPadPro_10_5ACvpZ":{"name":"iPadPro_10_5","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E12iPadPro_11_1ACvpZ":{"name":"iPadPro_11_1","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E12iPadPro_11_2ACvpZ":{"name":"iPadPro_11_2","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E14iPadPro_12_9_1ACvpZ":{"name":"iPadPro_12_9_1","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E14iPadPro_12_9_2ACvpZ":{"name":"iPadPro_12_9_2","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E14iPadPro_12_9_3ACvpZ":{"name":"iPadPro_12_9_3","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html":{"name":"PreviewDevice","abstract":"\u003cp\u003eThe available devices to be used for previewing elements in an Xcode preview.\u003c/p\u003e"},"Extensions/CGSize.html":{"name":"CGSize"},"Extensions/FloatingPoint.html":{"name":"FloatingPoint"},"Extensions/ElementBuilder.html":{"name":"ElementBuilder"},"Extensions.html#/c:objc(cs)UIView":{"name":"UIView"},"Extensions/UIAccessibilityTraits.html":{"name":"UIAccessibilityTraits"},"Extensions/AXCustomContent.html":{"name":"AXCustomContent"},"Extensions/UIOffset.html":{"name":"UIOffset"},"Enums/LayoutMode.html#/s:11BlueprintUI10LayoutModeO7defaultACvpZ":{"name":"default","parent_name":"LayoutMode"},"Enums/LayoutMode.html#/s:11BlueprintUI10LayoutModeO6legacyyA2CmF":{"name":"legacy","abstract":"\u003cp\u003eThe \u0026ldquo;standard\u0026rdquo; layout system.\u003c/p\u003e","parent_name":"LayoutMode"},"Enums/LayoutMode.html#/s:11BlueprintUI10LayoutModeO11caffeinatedyAcA0C7OptionsV_tcACmF":{"name":"caffeinated(options:)","abstract":"\u003cp\u003eA newer layout system with some optimizations made possible by ensuring elements adhere","parent_name":"LayoutMode"},"Enums/LayoutMode.html#/s:11BlueprintUI10LayoutModeO11caffeinatedACvpZ":{"name":"caffeinated","abstract":"\u003cp\u003eA newer layout system with some optimizations made possible by ensuring elements adhere","parent_name":"LayoutMode"},"Enums/LayoutMode.html#/s:11BlueprintUI10LayoutModeO4nameSSvp":{"name":"name","abstract":"\u003cp\u003eThe name of the layout mode.\u003c/p\u003e","parent_name":"LayoutMode"},"Enums/LayoutMode.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"LayoutMode"},"Enums/BlueprintLogging/Config.html#/s:11BlueprintUI0A7LoggingO6ConfigV21recordElementMeasuresSbvp":{"name":"recordElementMeasures","abstract":"\u003cp\u003eWhen \u003ccode\u003etrue\u003c/code\u003e, timing data will be logged when measuring each \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/Element.html\"\u003eElement\u003c/a\u003e\u003c/code\u003e\u003c/p\u003e","parent_name":"Config"},"Enums/BlueprintLogging/Config.html#/s:11BlueprintUI0A7LoggingO6ConfigV21recordElementMeasuresAESb_tcfc":{"name":"init(recordElementMeasures:)","parent_name":"Config"},"Enums/BlueprintLogging/Config.html#/s:11BlueprintUI0A7LoggingO6ConfigV4liteAEvpZ":{"name":"lite","abstract":"\u003cp\u003eLogging configuration that will not record measurement data for all \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/Element.html\"\u003eElement\u003c/a\u003e\u003c/code\u003es.","parent_name":"Config"},"Enums/BlueprintLogging/Config.html#/s:11BlueprintUI0A7LoggingO6ConfigV7verboseAEvpZ":{"name":"verbose","abstract":"\u003cp\u003eLogging configuration that includes measurement data.","parent_name":"Config"},"Enums/BlueprintLogging/Config.html":{"name":"Config","abstract":"\u003cp\u003eConfiguration for logging options\u003c/p\u003e","parent_name":"BlueprintLogging"},"Enums/BlueprintLogging.html#/s:11BlueprintUI0A7LoggingO6configAC6ConfigVvpZ":{"name":"config","abstract":"\u003cp\u003eLogging configuration\u003c/p\u003e","parent_name":"BlueprintLogging"},"Enums/BlueprintLogging.html#/s:11BlueprintUI0A7LoggingO9isEnabledSbvpZ":{"name":"isEnabled","abstract":"\u003cp\u003eIf enabled, Blueprint will emit signpost logs. You can view these logs in Instruments to","parent_name":"BlueprintLogging"},"Enums/LinkKey.html#/s:11BlueprintUI7LinkKeyO5Valuea":{"name":"Value","parent_name":"LinkKey"},"Enums/LinkKey.html#/s:11BlueprintUI7LinkKeyO4nameSo018NSAttributedStringD0avpZ":{"name":"name","parent_name":"LinkKey"},"Enums/ParagraphStyleKey.html#/s:11BlueprintUI17ParagraphStyleKeyO5Valuea":{"name":"Value","parent_name":"ParagraphStyleKey"},"Enums/ParagraphStyleKey.html#/s:11BlueprintUI17ParagraphStyleKeyO4nameSo018NSAttributedStringE0avpZ":{"name":"name","parent_name":"ParagraphStyleKey"},"Enums/UnderlineColorKey.html#/s:11BlueprintUI17UnderlineColorKeyO5Valuea":{"name":"Value","parent_name":"UnderlineColorKey"},"Enums/UnderlineColorKey.html#/s:11BlueprintUI17UnderlineColorKeyO4nameSo018NSAttributedStringE0avpZ":{"name":"name","parent_name":"UnderlineColorKey"},"Enums/UnderlineStyleKey.html#/s:11BlueprintUI17UnderlineStyleKeyO5Valuea":{"name":"Value","parent_name":"UnderlineStyleKey"},"Enums/UnderlineStyleKey.html#/s:11BlueprintUI17UnderlineStyleKeyO4nameSo018NSAttributedStringE0avpZ":{"name":"name","parent_name":"UnderlineStyleKey"},"Enums/TrackingKey.html#/s:11BlueprintUI11TrackingKeyO5Valuea":{"name":"Value","parent_name":"TrackingKey"},"Enums/TrackingKey.html#/s:11BlueprintUI11TrackingKeyO4nameSo018NSAttributedStringD0avpZ":{"name":"name","parent_name":"TrackingKey"},"Enums/ColorKey.html#/s:11BlueprintUI8ColorKeyO5Valuea":{"name":"Value","parent_name":"ColorKey"},"Enums/ColorKey.html#/s:11BlueprintUI8ColorKeyO4nameSo018NSAttributedStringD0avpZ":{"name":"name","parent_name":"ColorKey"},"Enums/FontKey.html#/s:11BlueprintUI7FontKeyO5Valuea":{"name":"Value","parent_name":"FontKey"},"Enums/FontKey.html#/s:11BlueprintUI7FontKeyO4nameSo018NSAttributedStringD0avpZ":{"name":"name","parent_name":"FontKey"},"Enums/FontKey.html":{"name":"FontKey"},"Enums/ColorKey.html":{"name":"ColorKey"},"Enums/TrackingKey.html":{"name":"TrackingKey"},"Enums/UnderlineStyleKey.html":{"name":"UnderlineStyleKey"},"Enums/UnderlineColorKey.html":{"name":"UnderlineColorKey"},"Enums/ParagraphStyleKey.html":{"name":"ParagraphStyleKey"},"Enums/LinkKey.html":{"name":"LinkKey"},"Enums/BlueprintLogging.html":{"name":"BlueprintLogging","abstract":"\u003cp\u003eNamespace for logging config.\u003c/p\u003e"},"Enums/LayoutMode.html":{"name":"LayoutMode","abstract":"\u003cp\u003eControls the layout system that Blueprint uses to lay out elements.\u003c/p\u003e"},"Classes/FocusTrigger.html#/s:11BlueprintUI12FocusTriggerCACycfc":{"name":"init()","abstract":"\u003cp\u003eCreate a new trigger, not yet bound to any view.\u003c/p\u003e","parent_name":"FocusTrigger"},"Classes/FocusTrigger.html#/s:11BlueprintUI12FocusTriggerC11focusActionyycSgvp":{"name":"focusAction","abstract":"\u003cp\u003eThe action to be invoked on focus, which will be set by a backing view.\u003c/p\u003e","parent_name":"FocusTrigger"},"Classes/FocusTrigger.html#/s:11BlueprintUI12FocusTriggerC10blurActionyycSgvp":{"name":"blurAction","abstract":"\u003cp\u003eThe action to be invoked on blur, which will be set by a backing view.\u003c/p\u003e","parent_name":"FocusTrigger"},"Classes/FocusTrigger.html#/s:11BlueprintUI12FocusTriggerC5focusyyF":{"name":"focus()","abstract":"\u003cp\u003eFocuses the backing view bound to this trigger.\u003c/p\u003e","parent_name":"FocusTrigger"},"Classes/FocusTrigger.html#/s:11BlueprintUI12FocusTriggerC4bluryyF":{"name":"blur()","abstract":"\u003cp\u003eBlurs (removes focus from) the backing view bound to this trigger.\u003c/p\u003e","parent_name":"FocusTrigger"},"Classes/FocusTrigger.html":{"name":"FocusTrigger","abstract":"\u003cp\u003eA trigger for focus and blur actions.\u003c/p\u003e"},"Protocols/EnvironmentKey.html#/s:11BlueprintUI14EnvironmentKeyP5ValueQa":{"name":"Value","abstract":"\u003cp\u003eThe type of value stored by this key.\u003c/p\u003e","parent_name":"EnvironmentKey"},"Protocols/EnvironmentKey.html#/s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ":{"name":"defaultValue","abstract":"\u003cp\u003eThe default value that will be vended by an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Environment.html\"\u003eEnvironment\u003c/a\u003e\u003c/code\u003e for this key if no other value","parent_name":"EnvironmentKey"},"Structs/Environment/LayoutDirection.html#/s:11BlueprintUI11EnvironmentV15LayoutDirectionO11leftToRightyA2EmF":{"name":"leftToRight","parent_name":"LayoutDirection"},"Structs/Environment/LayoutDirection.html#/s:11BlueprintUI11EnvironmentV15LayoutDirectionO11rightToLeftyA2EmF":{"name":"rightToLeft","parent_name":"LayoutDirection"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV5emptyACvpZ":{"name":"empty","abstract":"\u003cp\u003eA default \u0026ldquo;empty\u0026rdquo; environment, with no values overridden.","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentVy5ValueQzxmcAA0C3KeyRzluip":{"name":"subscript(_:)","abstract":"\u003cp\u003eGets or sets an environment value by its key.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV22linkAccessibilityLabelSSSgvp":{"name":"linkAccessibilityLabel","abstract":"\u003cp\u003eThe localised accessibility label elements should use when handling links.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV8calendar10Foundation8CalendarVvp":{"name":"calendar","abstract":"\u003cp\u003eThe current calendar that elements should use when handling dates.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV12displayScale14CoreFoundation7CGFloatVvp":{"name":"displayScale","abstract":"\u003cp\u003eThe display scale of this environment.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment/LayoutDirection.html":{"name":"LayoutDirection","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV15layoutDirectionAC06LayoutE0Ovp":{"name":"layoutDirection","abstract":"\u003cp\u003eThe layout direction associated with the current environment.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV6locale10Foundation6LocaleVvp":{"name":"locale","abstract":"\u003cp\u003eThe current locale that elements should use.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV14safeAreaInsetsSo06UIEdgeF0Vvp":{"name":"safeAreaInsets","abstract":"\u003cp\u003eThe insets representing the safe area for content.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV8timeZone10Foundation04TimeE0Vvp":{"name":"timeZone","abstract":"\u003cp\u003eThe current time zone that elements should use when handling dates.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV10windowSizeSo6CGSizeVSgvp":{"name":"windowSize","abstract":"\u003cp\u003eThe size of the window that contains the hosting \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbClasses/BlueprintView.html\"\u003eBlueprintView\u003c/a\u003e\u003c/code\u003e.","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV10layoutModeAA06LayoutE0Ovp":{"name":"layoutMode","abstract":"\u003cp\u003eThis mode will be inherited by descendant BlueprintViews that do not have an explicit","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV0A16UICommonControlsE10urlHandlerAD10URLHandler_pvp":{"name":"urlHandler","abstract":"\u003cp\u003eThe link handler to use to open links tapped in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AttributedLabel.html\"\u003eAttributedLabel\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html":{"name":"Environment","abstract":"\u003cp\u003eEnvironment is a container for values to be passed down an element tree.\u003c/p\u003e"},"Protocols/EnvironmentKey.html":{"name":"EnvironmentKey","abstract":"\u003cp\u003eTypes conforming to this protocol can be used as keys in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Environment.html\"\u003eEnvironment\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e"},"Structs/TransitionContainer.html#/s:25BlueprintUICommonControls19TransitionContainerV09appearingD00A2UI010VisibilityD0VSgvp":{"name":"appearingTransition","abstract":"\u003cp\u003eThe transition to apply when the wrapped element is appearing.\u003c/p\u003e","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:25BlueprintUICommonControls19TransitionContainerV012disappearingD00A2UI010VisibilityD0VSgvp":{"name":"disappearingTransition","abstract":"\u003cp\u003eThe transition to apply when the wrapped element is disappearing.\u003c/p\u003e","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:25BlueprintUICommonControls19TransitionContainerV06layoutD00A2UI06LayoutD0Ovp":{"name":"layoutTransition","abstract":"\u003cp\u003eThe transition to apply when the wrapped element\u0026rsquo;s layout is changing.\u003c/p\u003e","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:25BlueprintUICommonControls19TransitionContainerV14wrappedElement0A2UI0G0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe element to which transitions are being applied.\u003c/p\u003e","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:25BlueprintUICommonControls19TransitionContainerV8wrappingAC0A2UI7Element_p_tcfc":{"name":"init(wrapping:)","abstract":"\u003cp\u003eCreate a transition container wrapping an element.\u003c/p\u003e","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:25BlueprintUICommonControls19TransitionContainerV09appearingD0012disappearingD006layoutD013transitioningAC0A2UI010VisibilityD0VSg_AkH06LayoutD0OAH7Element_ptcfc":{"name":"init(appearingTransition:disappearingTransition:layoutTransition:transitioning:)","abstract":"\u003cp\u003eCreate a transition container wrapping an element.\u003c/p\u003e","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"TransitionContainer"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV4textSSvp":{"name":"text","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV11placeholderSSvp":{"name":"placeholder","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV8onChangeySScSgvp":{"name":"onChange","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV6secureSbvp":{"name":"secure","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV9isEnabledSbvp":{"name":"isEnabled","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV13textAlignmentSo06NSTextG0Vvp":{"name":"textAlignment","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV4fontSo6UIFontCvp":{"name":"font","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV9textColorSo7UIColorCvp":{"name":"textColor","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV15clearButtonModeSo06UITexte4ViewH0Vvp":{"name":"clearButtonMode","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV12keyboardTypeSo010UIKeyboardG0Vvp":{"name":"keyboardType","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV18keyboardAppearanceSo010UIKeyboardG0Vvp":{"name":"keyboardAppearance","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV22autocapitalizationTypeSo024UITextAutocapitalizationG0Vvp":{"name":"autocapitalizationType","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV18autocorrectionTypeSo020UITextAutocorrectionG0Vvp":{"name":"autocorrectionType","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV17spellCheckingTypeSo011UITextSpellgH0Vvp":{"name":"spellCheckingType","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV15textContentTypeSo06UITextgH0aSgvp":{"name":"textContentType","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV8onReturnyycSgvp":{"name":"onReturn","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV13returnKeyTypeSo08UIReturngH0Vvp":{"name":"returnKeyType","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV29enablesReturnKeyAutomaticallySbvp":{"name":"enablesReturnKeyAutomatically","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV12focusBinding0A2UI05FocusG0VSgvp":{"name":"focusBinding","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV19accessibilityTraitsShyAA20AccessibilityElementV5TraitOGSgvp":{"name":"accessibilityTraits","abstract":"\u003cp\u003eA set of accessibility traits that should be applied to the field, these will be merged with any existing traits.","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV4text9configureACSS_yACzXEtcfc":{"name":"init(text:configure:)","parent_name":"TextField"},"Structs/TextField.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"TextField"},"Structs/TextField.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV7focused4when6equalsAC0A2UI10FocusStateVyxSgG_xtSHRzlF":{"name":"focused(when:equals:)","abstract":"\u003cp\u003eModifies this text field by binding its focus state to the given state value.\u003c/p\u003e","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV7focused4whenAC0A2UI10FocusStateVySbG_tF":{"name":"focused(when:)","abstract":"\u003cp\u003eModifies this text field by binding its focus state to the given Boolean state value.\u003c/p\u003e","parent_name":"TextField"},"Structs/Tappable.html#/s:25BlueprintUICommonControls8TappableV14wrappedElement0A2UI0F0_pvp":{"name":"wrappedElement","parent_name":"Tappable"},"Structs/Tappable.html#/s:25BlueprintUICommonControls8TappableV5onTapyycvp":{"name":"onTap","parent_name":"Tappable"},"Structs/Tappable.html#/s:25BlueprintUICommonControls8TappableV5onTap8wrappingACyyc_0A2UI7Element_ptcfc":{"name":"init(onTap:wrapping:)","parent_name":"Tappable"},"Structs/Tappable.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Tappable"},"Structs/Tappable.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Tappable"},"Structs/Spacer.html#/s:11BlueprintUI6SpacerV4sizeSo6CGSizeVvp":{"name":"size","abstract":"\u003cp\u003eThe size that this spacer will take in a layout.\u003c/p\u003e","parent_name":"Spacer"},"Structs/Spacer.html#/s:11BlueprintUI6SpacerV4sizeACSo6CGSizeV_tcfc":{"name":"init(size:)","abstract":"\u003cp\u003eInitializes a new spacer with the given size.\u003c/p\u003e","parent_name":"Spacer"},"Structs/Spacer.html#/s:11BlueprintUI6SpacerV5width6heightAC14CoreFoundation7CGFloatV_AHtcfc":{"name":"init(width:height:)","abstract":"\u003cp\u003eInitializes a new spacer with the given width and height.\u003c/p\u003e","parent_name":"Spacer"},"Structs/Spacer.html#/s:11BlueprintUI6SpacerVyAC14CoreFoundation7CGFloatVcfc":{"name":"init(_:)","abstract":"\u003cp\u003eInitializes a new spacer with the given value for the width and height.\u003c/p\u003e","parent_name":"Spacer"},"Structs/Spacer.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Spacer"},"Structs/Spacer.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Spacer"},"Structs/SegmentedControl/Item/Width.html#/s:25BlueprintUICommonControls16SegmentedControlV4ItemV5WidthO9automaticyA2GmF":{"name":"automatic","parent_name":"Width"},"Structs/SegmentedControl/Item/Width.html#/s:25BlueprintUICommonControls16SegmentedControlV4ItemV5WidthO8specificyAG14CoreFoundation7CGFloatVcAGmF":{"name":"specific(_:)","parent_name":"Width"},"Structs/SegmentedControl/Item.html#/s:25BlueprintUICommonControls16SegmentedControlV4ItemV5titleSSvp":{"name":"title","parent_name":"Item"},"Structs/SegmentedControl/Item.html#/s:25BlueprintUICommonControls16SegmentedControlV4ItemV5widthAE5WidthOvp":{"name":"width","parent_name":"Item"},"Structs/SegmentedControl/Item.html#/s:25BlueprintUICommonControls16SegmentedControlV4ItemV8onSelectyycvp":{"name":"onSelect","parent_name":"Item"},"Structs/SegmentedControl/Item/Width.html":{"name":"Width","parent_name":"Item"},"Structs/SegmentedControl/Selection.html#/s:25BlueprintUICommonControls16SegmentedControlV9SelectionO4noneyA2EmF":{"name":"none","parent_name":"Selection"},"Structs/SegmentedControl/Selection.html#/s:25BlueprintUICommonControls16SegmentedControlV9SelectionO5indexyAESicAEmF":{"name":"index(_:)","parent_name":"Selection"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV5itemsSayAC4ItemVGvp":{"name":"items","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV9selectionAC9SelectionOvp":{"name":"selection","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV4fontSo6UIFontCvp":{"name":"font","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV13roundingScale14CoreFoundation7CGFloatVvp":{"name":"roundingScale","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV5items9configureACSayAC4ItemVG_yACzXEtcfc":{"name":"init(items:configure:)","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV9selection4font11itemBuilderA2C9SelectionO_So6UIFontCSayAC4ItemVGyXEtcfc":{"name":"init(selection:font:itemBuilder:)","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV10appendItem5title5width8onSelectySS_AC0G0V5WidthOyyctF":{"name":"appendItem(title:width:onSelect:)","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:11BlueprintUI10MeasurableP7measure2inSo6CGSizeVAA14SizeConstraintV_tF":{"name":"measure(in:)","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"SegmentedControl"},"Structs/SegmentedControl/Selection.html":{"name":"Selection","parent_name":"SegmentedControl"},"Structs/SegmentedControl/Item.html":{"name":"Item","parent_name":"SegmentedControl"},"Structs/ScrollView/ContentOffset/ScrollingContext.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV16ScrollingContextV11contentSizeSo6CGSizeVvp":{"name":"contentSize","parent_name":"ScrollingContext"},"Structs/ScrollView/ContentOffset/ScrollingContext.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV16ScrollingContextV06scrollE6BoundsSo6CGRectVvp":{"name":"scrollViewBounds","parent_name":"ScrollingContext"},"Structs/ScrollView/ContentOffset/ScrollingContext.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV16ScrollingContextV13contentInsetsSo06UIEdgeK0Vvp":{"name":"contentInsets","parent_name":"ScrollingContext"},"Structs/ScrollView/ContentOffset/ScrollingContext.html":{"name":"ScrollingContext","parent_name":"ContentOffset"},"Structs/ScrollView/ContentOffset.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV8Providera":{"name":"Provider","parent_name":"ContentOffset"},"Structs/ScrollView/ContentOffset.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV3topAEvpZ":{"name":"top","parent_name":"ContentOffset"},"Structs/ScrollView/ContentOffset.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV6bottomAEvpZ":{"name":"bottom","parent_name":"ContentOffset"},"Structs/ScrollView/ContentOffset.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV8providerAESo7CGPointVAE16ScrollingContextVc_tcfc":{"name":"init(provider:)","parent_name":"ContentOffset"},"Structs/ScrollView/ScrollTrigger.html#/s:25BlueprintUICommonControls10ScrollViewV0D7TriggerCAEycfc":{"name":"init()","parent_name":"ScrollTrigger"},"Structs/ScrollView/ScrollTrigger.html#/s:25BlueprintUICommonControls10ScrollViewV0D7TriggerC6scroll2to8animatedyAC13ContentOffsetV_SbtF":{"name":"scroll(to:animated:)","parent_name":"ScrollTrigger"},"Structs/ScrollView/PullToRefreshBehavior.html#/s:25BlueprintUICommonControls10ScrollViewV21PullToRefreshBehaviorO8disabledyA2EmF":{"name":"disabled","parent_name":"PullToRefreshBehavior"},"Structs/ScrollView/PullToRefreshBehavior.html#/s:25BlueprintUICommonControls10ScrollViewV21PullToRefreshBehaviorO7enabledyAEyyc_tcAEmF":{"name":"enabled(action:)","parent_name":"PullToRefreshBehavior"},"Structs/ScrollView/PullToRefreshBehavior.html#/s:25BlueprintUICommonControls10ScrollViewV21PullToRefreshBehaviorO10refreshingyA2EmF":{"name":"refreshing","parent_name":"PullToRefreshBehavior"},"Structs/ScrollView/ContentSize.html#/s:25BlueprintUICommonControls10ScrollViewV11ContentSizeO12fittingWidthyA2EmF":{"name":"fittingWidth","abstract":"\u003cp\u003eThe content will fill the height of the scroller, width will be dynamic\u003c/p\u003e","parent_name":"ContentSize"},"Structs/ScrollView/ContentSize.html#/s:25BlueprintUICommonControls10ScrollViewV11ContentSizeO13fittingHeightyA2EmF":{"name":"fittingHeight","abstract":"\u003cp\u003eThe content will fill the width of the scroller, height will be dynamic\u003c/p\u003e","parent_name":"ContentSize"},"Structs/ScrollView/ContentSize.html#/s:25BlueprintUICommonControls10ScrollViewV11ContentSizeO07fittingF0yA2EmF":{"name":"fittingContent","abstract":"\u003cp\u003eThe content size will be the minimum required to fit the content.\u003c/p\u003e","parent_name":"ContentSize"},"Structs/ScrollView/ContentSize.html#/s:25BlueprintUICommonControls10ScrollViewV11ContentSizeO6customyAESo6CGSizeVcAEmF":{"name":"custom(_:)","abstract":"\u003cp\u003eManually provided content size.\u003c/p\u003e","parent_name":"ContentSize"},"Structs/ScrollView/KeyboardAdjustmentMode.html#/s:25BlueprintUICommonControls10ScrollViewV22KeyboardAdjustmentModeO4noneyA2EmF":{"name":"none","parent_name":"KeyboardAdjustmentMode"},"Structs/ScrollView/KeyboardAdjustmentMode.html#/s:25BlueprintUICommonControls10ScrollViewV22KeyboardAdjustmentModeO18adjustsWhenVisibleyA2EmF":{"name":"adjustsWhenVisible","parent_name":"KeyboardAdjustmentMode"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV14wrappedElement0A2UI0G0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe content to be scrolled.\u003c/p\u003e","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV11contentSizeAC07ContentG0Ovp":{"name":"contentSize","abstract":"\u003cp\u003eDetermines the sizing behavior of the content within the scroll view.\u003c/p\u003e","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV20alwaysBounceVerticalSbvp":{"name":"alwaysBounceVertical","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV22alwaysBounceHorizontalSbvp":{"name":"alwaysBounceHorizontal","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV12contentInsetSo12UIEdgeInsetsVvp":{"name":"contentInset","abstract":"\u003cp\u003eHow much the content of the \u003ccode\u003eScrollView\u003c/code\u003e should be inset.\u003c/p\u003e","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV16centersUnderflowSbvp":{"name":"centersUnderflow","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV015showsHorizontalD9IndicatorSbvp":{"name":"showsHorizontalScrollIndicator","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV013showsVerticalD9IndicatorSbvp":{"name":"showsVerticalScrollIndicator","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV21pullToRefreshBehaviorAC04PullghI0Ovp":{"name":"pullToRefreshBehavior","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV19keyboardDismissModeSo08UIScrolle8KeyboardgH0Vvp":{"name":"keyboardDismissMode","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV30contentInsetAdjustmentBehaviorSo08UIScrolle7ContentghI0Vvp":{"name":"contentInsetAdjustmentBehavior","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV22keyboardAdjustmentModeAC08KeyboardgH0Ovp":{"name":"keyboardAdjustmentMode","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV20delaysContentTouchesSbvp":{"name":"delaysContentTouches","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV20contentOffsetTriggerAC0dH0CSgvp":{"name":"contentOffsetTrigger","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV_8wrapping9configureA2C11ContentSizeO_0A2UI7Element_pyACzXEtcfc":{"name":"init(_:wrapping:configure:)","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"ScrollView"},"Structs/ScrollView/KeyboardAdjustmentMode.html":{"name":"KeyboardAdjustmentMode","parent_name":"ScrollView"},"Structs/ScrollView/ContentSize.html":{"name":"ContentSize","parent_name":"ScrollView"},"Structs/ScrollView/PullToRefreshBehavior.html":{"name":"PullToRefreshBehavior","parent_name":"ScrollView"},"Structs/ScrollView/ScrollTrigger.html":{"name":"ScrollTrigger","parent_name":"ScrollView"},"Structs/ScrollView/ContentOffset.html":{"name":"ContentOffset","parent_name":"ScrollView"},"Structs/Rule/Thickness.html#/s:25BlueprintUICommonControls4RuleV9ThicknessO8hairlineyA2EmF":{"name":"hairline","abstract":"\u003cp\u003eIndicates that the rule should be exactly 1 screen pixel thick,","parent_name":"Thickness"},"Structs/Rule/Thickness.html#/s:25BlueprintUICommonControls4RuleV9ThicknessO6pointsyAE14CoreFoundation7CGFloatVcAEmF":{"name":"points(_:)","abstract":"\u003cp\u003eAn exact thickness in points.\u003c/p\u003e","parent_name":"Thickness"},"Structs/Rule/Orientation.html#/s:25BlueprintUICommonControls4RuleV11OrientationO10horizontalyA2EmF":{"name":"horizontal","abstract":"\u003cp\u003eIndicates that the rule is parallel to the x axis.\u003c/p\u003e","parent_name":"Orientation"},"Structs/Rule/Orientation.html#/s:25BlueprintUICommonControls4RuleV11OrientationO8verticalyA2EmF":{"name":"vertical","abstract":"\u003cp\u003eIndicates that the rule is parallel to the y axis.\u003c/p\u003e","parent_name":"Orientation"},"Structs/Rule/Orientation.html":{"name":"Orientation","abstract":"\u003cp\u003eRepresents whether the rule is parallel to the x or y axis.\u003c/p\u003e","parent_name":"Rule"},"Structs/Rule/Thickness.html":{"name":"Thickness","abstract":"\u003cp\u003eRepresents the thickness of a rule in the direction perpendicular to its orientation.\u003c/p\u003e","parent_name":"Rule"},"Structs/Rule.html#/s:25BlueprintUICommonControls4RuleV11orientationAC11OrientationOvp":{"name":"orientation","abstract":"\u003cp\u003eWhether this rule is horizontal or vertical.\u003c/p\u003e","parent_name":"Rule"},"Structs/Rule.html#/s:25BlueprintUICommonControls4RuleV9thicknessAC9ThicknessOvp":{"name":"thickness","abstract":"\u003cp\u003eThe thickness of this rule in the direction perpendicular to its orientation.\u003c/p\u003e","parent_name":"Rule"},"Structs/Rule.html#/s:25BlueprintUICommonControls4RuleV5colorSo7UIColorCvp":{"name":"color","abstract":"\u003cp\u003eThe color that the rule should be drawn.\u003c/p\u003e","parent_name":"Rule"},"Structs/Rule.html#/s:25BlueprintUICommonControls4RuleV11orientation5color9thicknessA2C11OrientationO_So7UIColorCAC9ThicknessOtcfc":{"name":"init(orientation:color:thickness:)","abstract":"\u003cp\u003eInitializes a Rule with the given properties.\u003c/p\u003e","parent_name":"Rule"},"Structs/Rule.html#/s:11BlueprintUI12ProxyElementP21elementRepresentationAA0D0_pvp":{"name":"elementRepresentation","parent_name":"Rule"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO4fillyA2EmF":{"name":"fill","abstract":"\u003cp\u003eChildren will be stretched to fit the vertical size of the row.\u003c/p\u003e","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO5alignyAeA08VerticalD0V_tcAEmF":{"name":"align(to:)","abstract":"\u003cp\u003eUsing the specified alignment, children will be aligned relatively to each other, and","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO3topAEvpZ":{"name":"top","abstract":"\u003cp\u003eChildren will be aligned to the top edge of the row.\u003c/p\u003e","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO6centerAEvpZ":{"name":"center","abstract":"\u003cp\u003eChildren will be vertically centered in the row.\u003c/p\u003e","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO6bottomAEvpZ":{"name":"bottom","abstract":"\u003cp\u003eChildren will be aligned to the bottom edge of the row.\u003c/p\u003e","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO7leadingAEvpZ":{"name":"leading","abstract":"\u003cp\u003eChildren will be aligned to the top edge of the row.\u003c/p\u003e","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO8trailingAEvpZ":{"name":"trailing","abstract":"\u003cp\u003eChildren will be aligned to the bottom edge of the row.\u003c/p\u003e","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html":{"name":"RowAlignment","abstract":"\u003cp\u003eDescribes how the row\u0026rsquo;s children will be vertically aligned.\u003c/p\u003e","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV8childrenSayAA7Element_p7element_AA11StackLayoutV6TraitsV6traitss11AnyHashableVSg3keytGvp":{"name":"children","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV6layoutAA11StackLayoutVvp":{"name":"layout","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowVACycfc":{"name":"init()","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV9alignment9underflow8overflow14minimumSpacing8elementsA2C0C9AlignmentO_AA11StackLayoutV21UnderflowDistributionOAL08OverflowN0O14CoreFoundation7CGFloatVSayAL5ChildVGyXEtcfc":{"name":"init(alignment:underflow:overflow:minimumSpacing:elements:)","abstract":"\u003cp\u003eInitializer using result builder to declaratively build up a stack.\u003c/p\u003e","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV19horizontalUnderflowAA11StackLayoutV0E12DistributionOvp":{"name":"horizontalUnderflow","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV18horizontalOverflowAA11StackLayoutV0E12DistributionOvp":{"name":"horizontalOverflow","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV17verticalAlignmentAC0cE0Ovp":{"name":"verticalAlignment","abstract":"\u003cp\u003eSpecifies how children will be aligned vertically.\u003c/p\u003e","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV24minimumHorizontalSpacing14CoreFoundation7CGFloatVvp":{"name":"minimumHorizontalSpacing","parent_name":"Row"},"Structs/Overlay/Child.html#/s:11BlueprintUI7OverlayV5ChildV7elementAA7Element_pvp":{"name":"element","abstract":"\u003cp\u003eThe child element\u003c/p\u003e","parent_name":"Child"},"Structs/Overlay/Child.html#/s:11BlueprintUI7OverlayV5ChildV3keys11AnyHashableVSgvp":{"name":"key","abstract":"\u003cp\u003eAn optional key to disambiguate between view updates\u003c/p\u003e","parent_name":"Child"},"Structs/Overlay/Child.html#/s:11BlueprintUI7OverlayV5ChildV7element3keyAeA7Element_p_s11AnyHashableVSgtcfc":{"name":"init(element:key:)","abstract":"\u003cp\u003eCreate a new child.\u003c/p\u003e","parent_name":"Child"},"Structs/Overlay/Child.html#/s:11BlueprintUI7OverlayV5ChildVyAeA7Element_pcfc":{"name":"init(_:)","parent_name":"Child"},"Structs/Overlay.html#/s:11BlueprintUI7OverlayV8childrenSayAC5ChildVGvp":{"name":"children","abstract":"\u003cp\u003eAll elements displayed in the overlay.\u003c/p\u003e","parent_name":"Overlay"},"Structs/Overlay.html#/s:11BlueprintUI7OverlayV8elements9configureACSayAA7Element_pG_yACzXEtcfc":{"name":"init(elements:configure:)","abstract":"\u003cp\u003eCreates a new overlay with the provided elements.\u003c/p\u003e","parent_name":"Overlay"},"Structs/Overlay.html#/s:11BlueprintUI7OverlayV8elementsACSayAC5ChildVGyXE_tcfc":{"name":"init(elements:)","abstract":"\u003cp\u003eCreates a new overlay using a result builder.\u003c/p\u003e","parent_name":"Overlay"},"Structs/Overlay.html#/s:11BlueprintUI7OverlayV3addyyAA7Element_pF":{"name":"add(_:)","abstract":"\u003cp\u003eAdds the provided element to the overlay.\u003c/p\u003e","parent_name":"Overlay"},"Structs/Overlay.html#/s:11BlueprintUI7OverlayV3add3key5childys11AnyHashableVSg_AA7Element_ptF":{"name":"add(key:child:)","abstract":"\u003cp\u003eAdds the provided element to the overlay, above other children.\u003c/p\u003e","parent_name":"Overlay"},"Structs/Overlay.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Overlay"},"Structs/Overlay.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Overlay"},"Structs/Overlay/Child.html":{"name":"Child","abstract":"\u003cp\u003eThe child of an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Overlay.html\"\u003eOverlay\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"Overlay"},"Structs/Label/LineHeight/Alignment.html#/s:25BlueprintUICommonControls5LabelV10LineHeightO9AlignmentO3topyA2GmF":{"name":"top","abstract":"\u003cp\u003eAlign text to the top of the available line height, with extra space added at the bottom.","parent_name":"Alignment"},"Structs/Label/LineHeight/Alignment.html#/s:25BlueprintUICommonControls5LabelV10LineHeightO9AlignmentO6centeryA2GmF":{"name":"center","abstract":"\u003cp\u003eCenter text within the available line height. This makes line height behave like half-leading,","parent_name":"Alignment"},"Structs/Label/LineHeight/Alignment.html#/s:25BlueprintUICommonControls5LabelV10LineHeightO9AlignmentO6bottomyA2GmF":{"name":"bottom","abstract":"\u003cp\u003eAlign text to the bottom of the available line height, with extra space added at the top.","parent_name":"Alignment"},"Structs/Label/LineHeight/Alignment.html":{"name":"Alignment","parent_name":"LineHeight"},"Structs/Label/LineHeight.html#/s:25BlueprintUICommonControls5LabelV10LineHeightO4fontyA2EmF":{"name":"font","abstract":"\u003cp\u003eUse the default line height of the label\u0026rsquo;s font.\u003c/p\u003e","parent_name":"LineHeight"},"Structs/Label/LineHeight.html#/s:25BlueprintUICommonControls5LabelV10LineHeightO6customyAE14CoreFoundation7CGFloatV_AE9AlignmentOtcAEmF":{"name":"custom(lineHeight:alignment:)","abstract":"\u003cp\u003eUse a custom line height and alignment.\u003c/p\u003e","parent_name":"LineHeight"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV4textSSvp":{"name":"text","abstract":"\u003cp\u003eThe text to be displayed.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV4fontSo6UIFontCvp":{"name":"font","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV5colorSo7UIColorCvp":{"name":"color","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV9alignmentSo15NSTextAlignmentVvp":{"name":"alignment","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV13numberOfLinesSivp":{"name":"numberOfLines","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV13lineBreakModeSo06NSLinefG0Vvp":{"name":"lineBreakMode","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV10lineHeightAC04LineF0Ovp":{"name":"lineHeight","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV25adjustsFontSizeToFitWidthSbvp":{"name":"adjustsFontSizeToFitWidth","abstract":"\u003cp\u003eA Boolean value that determines whether the label reduces the text’s font","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV18minimumScaleFactor14CoreFoundation7CGFloatVvp":{"name":"minimumScaleFactor","abstract":"\u003cp\u003eThe minimum scale factor for the label’s text.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV36allowsDefaultTighteningForTruncationSbvp":{"name":"allowsDefaultTighteningForTruncation","abstract":"\u003cp\u003eA Boolean value that determines whether the label tightens text before truncating.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV6shadowAA10TextShadowVSgvp":{"name":"shadow","abstract":"\u003cp\u003eA shadow to display behind the label\u0026rsquo;s text. Defaults to no shadow.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV22isAccessibilityElementSbvp":{"name":"isAccessibilityElement","abstract":"\u003cp\u003eDetermines if the label should be included when navigating the UI via accessibility.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV17accessibilityHintSSSgvp":{"name":"accessibilityHint","abstract":"\u003cp\u003eA localized string that describes the result of performing an action on the element, when the result is non-obvious.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV19accessibilityTraitsShyAA20AccessibilityElementV5TraitOGSgvp":{"name":"accessibilityTraits","abstract":"\u003cp\u003eA set of accessibility traits that should be applied to the label, these will be merged with any existing traits.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV26accessibilityCustomActionsSayAA20AccessibilityElementV0F6ActionVGvp":{"name":"accessibilityCustomActions","abstract":"\u003cp\u003eAn array containing one or more \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AccessibilityElement/CustomAction.html\"\u003eAccessibilityElement.CustomAction\u003c/a\u003e\u003c/code\u003es, defining additional supported actions. Assistive technologies, such as VoiceOver, will display your custom actions to the user at appropriate times.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV4text9configureACSS_yACzXEtcfc":{"name":"init(text:configure:)","parent_name":"Label"},"Structs/Label.html#/s:11BlueprintUI12ProxyElementP21elementRepresentationAA0D0_pvp":{"name":"elementRepresentation","parent_name":"Label"},"Structs/Label/LineHeight.html":{"name":"LineHeight","parent_name":"Label"},"Structs/Inset.html#/s:11BlueprintUI5InsetV14wrappedElementAA0E0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe wrapped element to be inset.\u003c/p\u003e","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV3top14CoreFoundation7CGFloatVvp":{"name":"top","abstract":"\u003cp\u003eThe amount to inset the content element.\u003c/p\u003e","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV6bottom14CoreFoundation7CGFloatVvp":{"name":"bottom","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV4left14CoreFoundation7CGFloatVvp":{"name":"left","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV5right14CoreFoundation7CGFloatVvp":{"name":"right","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV3top6bottom4left5right8wrappingAC14CoreFoundation7CGFloatV_A3kA7Element_ptcfc":{"name":"init(top:bottom:left:right:wrapping:)","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV07uniformC08wrappingAC14CoreFoundation7CGFloatV_AA7Element_ptcfc":{"name":"init(uniformInset:wrapping:)","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV6insets8wrappingACSo12UIEdgeInsetsV_AA7Element_ptcfc":{"name":"init(insets:wrapping:)","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV10sideInsets8wrappingAC14CoreFoundation7CGFloatV_AA7Element_ptcfc":{"name":"init(sideInsets:wrapping:)","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV8vertical8wrappingAC14CoreFoundation7CGFloatV_AA7Element_ptcfc":{"name":"init(vertical:wrapping:)","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Inset"},"Structs/Image/ContentMode.html#/s:25BlueprintUICommonControls5ImageV11ContentModeO6centeryA2EmF":{"name":"center","abstract":"\u003cp\u003eThe image is not scaled, and is simply centered within the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Image.html\"\u003eImage\u003c/a\u003e\u003c/code\u003e","parent_name":"ContentMode"},"Structs/Image/ContentMode.html#/s:25BlueprintUICommonControls5ImageV11ContentModeO7stretchyA2EmF":{"name":"stretch","abstract":"\u003cp\u003eThe image is stretched to fill the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Image.html\"\u003eImage\u003c/a\u003e\u003c/code\u003e element, causing the image","parent_name":"ContentMode"},"Structs/Image/ContentMode.html#/s:25BlueprintUICommonControls5ImageV11ContentModeO9aspectFityA2EmF":{"name":"aspectFit","abstract":"\u003cp\u003eThe image is scaled to touch the edges of the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Image.html\"\u003eImage\u003c/a\u003e\u003c/code\u003e element while","parent_name":"ContentMode"},"Structs/Image/ContentMode.html#/s:25BlueprintUICommonControls5ImageV11ContentModeO10aspectFillyA2EmF":{"name":"aspectFill","abstract":"\u003cp\u003eThe image is scaled to fill the entire \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Image.html\"\u003eImage\u003c/a\u003e\u003c/code\u003e element. If the aspect","parent_name":"ContentMode"},"Structs/Image.html#/s:25BlueprintUICommonControls5ImageV5imageSo7UIImageCSgvp":{"name":"image","abstract":"\u003cp\u003eThe image to be displayed\u003c/p\u003e","parent_name":"Image"},"Structs/Image.html#/s:25BlueprintUICommonControls5ImageV9tintColorSo7UIColorCSgvp":{"name":"tintColor","abstract":"\u003cp\u003eThe tint color.\u003c/p\u003e","parent_name":"Image"},"Structs/Image.html#/s:25BlueprintUICommonControls5ImageV11contentModeAC07ContentF0Ovp":{"name":"contentMode","abstract":"\u003cp\u003eThe content mode determines the layout of the image when its size does","parent_name":"Image"},"Structs/Image.html#/s:25BlueprintUICommonControls5ImageV29blockAccessibilityDescriptionSbvp":{"name":"blockAccessibilityDescription","abstract":"\u003cp\u003eiOS 14 added support for Image Descriptions using VoiceOver. This is not always appropriate.","parent_name":"Image"},"Structs/Image.html#/s:25BlueprintUICommonControls5ImageV5image11contentMode9tintColor29blockAccessibilityDescriptionACSo7UIImageCSg_AC07ContentG0OSo7UIColorCSgSbtcfc":{"name":"init(image:contentMode:tintColor:blockAccessibilityDescription:)","abstract":"\u003cp\u003eInitializes an image element with the given \u003ccode\u003eUIImage\u003c/code\u003e instance.\u003c/p\u003e","parent_name":"Image"},"Structs/Image.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Image"},"Structs/Image.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Image"},"Structs/Image/ContentMode.html":{"name":"ContentMode","abstract":"\u003cp\u003eThe content mode determines the layout of the image when its size does","parent_name":"Image"},"Structs/GeometryReader.html#/s:11BlueprintUI14GeometryReaderV21elementRepresentationAcA7Element_pAA0C5ProxyVc_tcfc":{"name":"init(elementRepresentation:)","parent_name":"GeometryReader"},"Structs/GeometryReader.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"GeometryReader"},"Structs/GeometryReader.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"GeometryReader"},"Structs/EqualStack/Child.html#/s:11BlueprintUI10EqualStackV5ChildV7elementAA7Element_pvp":{"name":"element","parent_name":"Child"},"Structs/EqualStack/Child.html#/s:11BlueprintUI10EqualStackV5ChildVyAeA7Element_pcfc":{"name":"init(_:)","parent_name":"Child"},"Structs/EqualStack/Direction.html#/s:11BlueprintUI10EqualStackV9DirectionO8verticalyA2EmF":{"name":"vertical","parent_name":"Direction"},"Structs/EqualStack/Direction.html#/s:11BlueprintUI10EqualStackV9DirectionO10horizontalyA2EmF":{"name":"horizontal","parent_name":"Direction"},"Structs/EqualStack.html#/s:11BlueprintUI10EqualStackV9directionAC9DirectionOvp":{"name":"direction","abstract":"\u003cp\u003eThe direction in which this element will stack its children.\u003c/p\u003e","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI10EqualStackV7spacing14CoreFoundation7CGFloatVvp":{"name":"spacing","abstract":"\u003cp\u003eThe amount of space between children in this element. Defaults to 0.\u003c/p\u003e","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI10EqualStackV8childrenSayAA7Element_pGvp":{"name":"children","abstract":"\u003cp\u003eThe child elements to be laid out. Defaults to an empty array.\u003c/p\u003e","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI10EqualStackV9direction9configureA2C9DirectionO_yACzXEtcfc":{"name":"init(direction:configure:)","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI10EqualStackV9direction7spacing8elementsA2C9DirectionO_14CoreFoundation7CGFloatVSayAC5ChildVGyXEtcfc":{"name":"init(direction:spacing:elements:)","abstract":"\u003cp\u003eInitializer using result builder to declaritively build up a stack.\u003c/p\u003e","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI10EqualStackV3add5childyAA7Element_p_tF":{"name":"add(child:)","parent_name":"EqualStack"},"Structs/EqualStack/Direction.html":{"name":"Direction","parent_name":"EqualStack"},"Structs/EqualStack/Child.html":{"name":"Child","parent_name":"EqualStack"},"Structs/Empty.html#/s:11BlueprintUI5EmptyVACycfc":{"name":"init()","parent_name":"Empty"},"Structs/Empty.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Empty"},"Structs/Empty.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Empty"},"Structs/ConstrainedSize/Constraint.html#/s:11BlueprintUI15ConstrainedSizeV10ConstraintO13unconstrainedyA2EmF":{"name":"unconstrained","abstract":"\u003cp\u003eThere is no constraint for this axis – the natural size of the element will be used.\u003c/p\u003e","parent_name":"Constraint"},"Structs/ConstrainedSize/Constraint.html#/s:11BlueprintUI15ConstrainedSizeV10ConstraintO6atMostyAE14CoreFoundation7CGFloatVcAEmF":{"name":"atMost(_:)","abstract":"\u003cp\u003eThe measured size for this axis will be \u003cstrong\u003eno greater\u003c/strong\u003e than the value provided.\u003c/p\u003e","parent_name":"Constraint"},"Structs/ConstrainedSize/Constraint.html#/s:11BlueprintUI15ConstrainedSizeV10ConstraintO7atLeastyAE14CoreFoundation7CGFloatVcAEmF":{"name":"atLeast(_:)","abstract":"\u003cp\u003eThe measured size for this axis will be \u003cstrong\u003eno less\u003c/strong\u003e than the value provided.\u003c/p\u003e","parent_name":"Constraint"},"Structs/ConstrainedSize/Constraint.html#/s:11BlueprintUI15ConstrainedSizeV10ConstraintO6withinyAESNy14CoreFoundation7CGFloatVGcAEmF":{"name":"within(_:)","abstract":"\u003cp\u003eThe measured size for this axis will be \u003cstrong\u003ewithin\u003c/strong\u003e the range provided.","parent_name":"Constraint"},"Structs/ConstrainedSize/Constraint.html#/s:11BlueprintUI15ConstrainedSizeV10ConstraintO8absoluteyAE14CoreFoundation7CGFloatVcAEmF":{"name":"absolute(_:)","abstract":"\u003cp\u003eThe measured size for this axis will be \u003cstrong\u003eexactly\u003c/strong\u003e the value provided.\u003c/p\u003e","parent_name":"Constraint"},"Structs/ConstrainedSize.html#/s:11BlueprintUI15ConstrainedSizeV7wrappedAA7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe element whose measurement will be constrained by the \u003ccode\u003eConstrainedSize\u003c/code\u003e.\u003c/p\u003e","parent_name":"ConstrainedSize"},"Structs/ConstrainedSize.html#/s:11BlueprintUI15ConstrainedSizeV5widthAC10ConstraintOvp":{"name":"width","abstract":"\u003cp\u003eThe constraint to place on the width of the element.\u003c/p\u003e","parent_name":"ConstrainedSize"},"Structs/ConstrainedSize.html#/s:11BlueprintUI15ConstrainedSizeV6heightAC10ConstraintOvp":{"name":"height","abstract":"\u003cp\u003eThe constraint to place on the height of the element.\u003c/p\u003e","parent_name":"ConstrainedSize"},"Structs/ConstrainedSize.html#/s:11BlueprintUI15ConstrainedSizeV5width6height8wrappingA2C10ConstraintO_AhA7Element_ptcfc":{"name":"init(width:height:wrapping:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eConstrainedSize\u003c/code\u003e with the provided constraint options.\u003c/p\u003e","parent_name":"ConstrainedSize"},"Structs/ConstrainedSize.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"ConstrainedSize"},"Structs/ConstrainedSize.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"ConstrainedSize"},"Structs/ConstrainedSize/Constraint.html":{"name":"Constraint","abstract":"\u003cp\u003eThe available ways to constrain the measurement of a given axis within a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/ConstrainedSize.html\"\u003eConstrainedSize\u003c/a\u003e\u003c/code\u003e element.\u003c/p\u003e","parent_name":"ConstrainedSize"},"Structs/ConstrainedAspectRatio/ContentMode.html#/s:11BlueprintUI22ConstrainedAspectRatioV11ContentModeO10fillParentyA2EmF":{"name":"fillParent","abstract":"\u003cp\u003eThe content will be sized to fill its parent while","parent_name":"ContentMode"},"Structs/ConstrainedAspectRatio/ContentMode.html#/s:11BlueprintUI22ConstrainedAspectRatioV11ContentModeO9fitParentyA2EmF":{"name":"fitParent","abstract":"\u003cp\u003eThe content will be sized to fit within its parent while maintaining the specified","parent_name":"ContentMode"},"Structs/ConstrainedAspectRatio/ContentMode.html#/s:11BlueprintUI22ConstrainedAspectRatioV11ContentModeO03fitF0yA2EmF":{"name":"fitContent","abstract":"\u003cp\u003eThe content will grow in whichever dimension is needed to maintain the aspect ratio,","parent_name":"ContentMode"},"Structs/ConstrainedAspectRatio/ContentMode.html#/s:11BlueprintUI22ConstrainedAspectRatioV11ContentModeO06shrinkF0yA2EmF":{"name":"shrinkContent","abstract":"\u003cp\u003eThe content will shrink in whichever dimension is needed to maintain the aspect ratio,","parent_name":"ContentMode"},"Structs/ConstrainedAspectRatio/ContentMode.html":{"name":"ContentMode","abstract":"\u003cp\u003eRepresents how the content should size itself relative to its parent.\u003c/p\u003e","parent_name":"ConstrainedAspectRatio"},"Structs/ConstrainedAspectRatio.html#/s:11BlueprintUI22ConstrainedAspectRatioV14wrappedElementAA0G0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe element being constrained.\u003c/p\u003e","parent_name":"ConstrainedAspectRatio"},"Structs/ConstrainedAspectRatio.html#/s:11BlueprintUI22ConstrainedAspectRatioV06aspectE0AA0dE0Vvp":{"name":"aspectRatio","abstract":"\u003cp\u003eThe target aspect ratio.\u003c/p\u003e","parent_name":"ConstrainedAspectRatio"},"Structs/ConstrainedAspectRatio.html#/s:11BlueprintUI22ConstrainedAspectRatioV11contentModeAC07ContentG0Ovp":{"name":"contentMode","abstract":"\u003cp\u003eWhether the aspect ratio should be reached by expanding the content element\u0026rsquo;s size to fill its parent","parent_name":"ConstrainedAspectRatio"},"Structs/ConstrainedAspectRatio.html#/s:11BlueprintUI22ConstrainedAspectRatioV06aspectE011contentMode8wrappingAcA0dE0V_AC07ContentH0OAA7Element_ptcfc":{"name":"init(aspectRatio:contentMode:wrapping:)","abstract":"\u003cp\u003eInitializes with the given properties.\u003c/p\u003e","parent_name":"ConstrainedAspectRatio"},"Structs/ConstrainedAspectRatio.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"ConstrainedAspectRatio"},"Structs/ConstrainedAspectRatio.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"ConstrainedAspectRatio"},"Structs/Column/ColumnAlignment.html#/s:11BlueprintUI6ColumnV0C9AlignmentO4fillyA2EmF":{"name":"fill","abstract":"\u003cp\u003eChildren will be stretched to fit the horizontal size of the column.\u003c/p\u003e","parent_name":"ColumnAlignment"},"Structs/Column/ColumnAlignment.html#/s:11BlueprintUI6ColumnV0C9AlignmentO5alignyAeA010HorizontalD0V_tcAEmF":{"name":"align(to:)","abstract":"\u003cp\u003eUsing the specified alignment, children will be aligned relatively to each other, and","parent_name":"ColumnAlignment"},"Structs/Column/ColumnAlignment.html#/s:11BlueprintUI6ColumnV0C9AlignmentO7leadingAEvpZ":{"name":"leading","abstract":"\u003cp\u003eChildren will be aligned to the leading edge of the column.\u003c/p\u003e","parent_name":"ColumnAlignment"},"Structs/Column/ColumnAlignment.html#/s:11BlueprintUI6ColumnV0C9AlignmentO6centerAEvpZ":{"name":"center","abstract":"\u003cp\u003eChildren will be horizontally centered in the column.\u003c/p\u003e","parent_name":"ColumnAlignment"},"Structs/Column/ColumnAlignment.html#/s:11BlueprintUI6ColumnV0C9AlignmentO8trailingAEvpZ":{"name":"trailing","abstract":"\u003cp\u003eChildren will be aligned to the trailing edge of the column.\u003c/p\u003e","parent_name":"ColumnAlignment"},"Structs/Column/ColumnAlignment.html":{"name":"ColumnAlignment","abstract":"\u003cp\u003eDescribes how the column\u0026rsquo;s children will be horizontally aligned.\u003c/p\u003e","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV8childrenSayAA7Element_p7element_AA11StackLayoutV6TraitsV6traitss11AnyHashableVSg3keytGvp":{"name":"children","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV6layoutAA11StackLayoutVvp":{"name":"layout","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnVACycfc":{"name":"init()","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV9alignment9underflow8overflow14minimumSpacing8elementsA2C0C9AlignmentO_AA11StackLayoutV21UnderflowDistributionOAL08OverflowN0O14CoreFoundation7CGFloatVSayAL5ChildVGyXEtcfc":{"name":"init(alignment:underflow:overflow:minimumSpacing:elements:)","abstract":"\u003cp\u003eCreates a Column, using result builder syntax. Columns display a list of items in a vertical","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV17verticalUnderflowAA11StackLayoutV0E12DistributionOvp":{"name":"verticalUnderflow","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV16verticalOverflowAA11StackLayoutV0E12DistributionOvp":{"name":"verticalOverflow","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV19horizontalAlignmentAC0cE0Ovp":{"name":"horizontalAlignment","abstract":"\u003cp\u003eSpecifies how children will be aligned horizontally.\u003c/p\u003e","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV22minimumVerticalSpacing14CoreFoundation7CGFloatVvp":{"name":"minimumVerticalSpacing","parent_name":"Column"},"Structs/Centered.html#/s:11BlueprintUI8CenteredV7wrappedAA7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe content element to be centered.\u003c/p\u003e","parent_name":"Centered"},"Structs/Centered.html#/s:11BlueprintUI8CenteredVyAcA7Element_pcfc":{"name":"init(_:)","abstract":"\u003cp\u003eInitializes a \u003ccode\u003eCentered\u003c/code\u003e element with the given content element.\u003c/p\u003e","parent_name":"Centered"},"Structs/Centered.html#/s:11BlueprintUI12ProxyElementP21elementRepresentationAA0D0_pvp":{"name":"elementRepresentation","parent_name":"Centered"},"Structs/Button.html#/s:25BlueprintUICommonControls6ButtonV14wrappedElement0A2UI0F0_pvp":{"name":"wrappedElement","parent_name":"Button"},"Structs/Button.html#/s:25BlueprintUICommonControls6ButtonV9isEnabledSbvp":{"name":"isEnabled","parent_name":"Button"},"Structs/Button.html#/s:25BlueprintUICommonControls6ButtonV5onTapyycvp":{"name":"onTap","parent_name":"Button"},"Structs/Button.html#/s:25BlueprintUICommonControls6ButtonV19minimumTappableSizeSo6CGSizeVvp":{"name":"minimumTappableSize","parent_name":"Button"},"Structs/Button.html#/s:25BlueprintUICommonControls6ButtonV9isEnabled5onTap8wrappingACSb_yyc0A2UI7Element_ptcfc":{"name":"init(isEnabled:onTap:wrapping:)","parent_name":"Button"},"Structs/Button.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Button"},"Structs/Button.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Button"},"Structs/Box/ShadowStyle.html#/s:25BlueprintUICommonControls3BoxV11ShadowStyleO4noneyA2EmF":{"name":"none","parent_name":"ShadowStyle"},"Structs/Box/ShadowStyle.html#/s:25BlueprintUICommonControls3BoxV11ShadowStyleO6simpleyAE14CoreFoundation7CGFloatV_AISo6CGSizeVSo7UIColorCtcAEmF":{"name":"simple(radius:opacity:offset:color:)","parent_name":"ShadowStyle"},"Structs/Box/BorderStyle.html#/s:25BlueprintUICommonControls3BoxV11BorderStyleO4noneyA2EmF":{"name":"none","parent_name":"BorderStyle"},"Structs/Box/BorderStyle.html#/s:25BlueprintUICommonControls3BoxV11BorderStyleO5solidyAESo7UIColorC_14CoreFoundation7CGFloatVtcAEmF":{"name":"solid(color:width:)","parent_name":"BorderStyle"},"Structs/Box/CornerCurve.html#/s:25BlueprintUICommonControls3BoxV11CornerCurveO8circularyA2EmF":{"name":"circular","abstract":"\u003cp\u003eProvides a standard-style corner radius as you would see in design tools like Figma.\u003c/p\u003e","parent_name":"CornerCurve"},"Structs/Box/CornerCurve.html#/s:25BlueprintUICommonControls3BoxV11CornerCurveO10continuousyA2EmF":{"name":"continuous","abstract":"\u003cp\u003eProvides an iOS icon-style corner radius.\u003c/p\u003e","parent_name":"CornerCurve"},"Structs/Box/CornerStyle/Corners.html#/s:SY8rawValue03RawB0Qzvp":{"name":"rawValue","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:s9OptionSetP8rawValuex03RawD0Qz_tcfc":{"name":"init(rawValue:)","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV7topLeftAGvpZ":{"name":"topLeft","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV8topRightAGvpZ":{"name":"topRight","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV10bottomLeftAGvpZ":{"name":"bottomLeft","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV11bottomRightAGvpZ":{"name":"bottomRight","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV3allAGvpZ":{"name":"all","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV3topAGvpZ":{"name":"top","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV4leftAGvpZ":{"name":"left","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV6bottomAGvpZ":{"name":"bottom","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV5rightAGvpZ":{"name":"right","parent_name":"Corners"},"Structs/Box/CornerStyle.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO6squareyA2EmF":{"name":"square","parent_name":"CornerStyle"},"Structs/Box/CornerStyle.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7capsuleyA2EmF":{"name":"capsule","parent_name":"CornerStyle"},"Structs/Box/CornerStyle.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7roundedyAE14CoreFoundation7CGFloatV_AE7CornersVtcAEmF":{"name":"rounded(radius:corners:)","parent_name":"CornerStyle"},"Structs/Box/CornerStyle/Corners.html":{"name":"Corners","parent_name":"CornerStyle"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV15backgroundColorSo7UIColorCvp":{"name":"backgroundColor","abstract":"\u003cp\u003eThe background color to show in the box.\u003c/p\u003e","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV11cornerStyleAC06CornerF0Ovp":{"name":"cornerStyle","abstract":"\u003cp\u003eThe corner style to apply, eg rounded, capsule, or normal, square corners.\u003c/p\u003e","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV11cornerCurveAC06CornerF0Ovp":{"name":"cornerCurve","abstract":"\u003cp\u003eHow to style the curves when \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Box.html#/s:25BlueprintUICommonControls3BoxV11cornerStyleAC06CornerF0Ovp\"\u003ecornerStyle\u003c/a\u003e\u003c/code\u003e is non-square.\u003c/p\u003e","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV11borderStyleAC06BorderF0Ovp":{"name":"borderStyle","abstract":"\u003cp\u003eThe border to apply around the edges of the box.\u003c/p\u003e","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV11shadowStyleAC06ShadowF0Ovp":{"name":"shadowStyle","abstract":"\u003cp\u003eThe shadow style to apply to the outside of the box.\u003c/p\u003e","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV12clipsContentSbvp":{"name":"clipsContent","abstract":"\u003cp\u003eIf content placed within the box should be clipped.\u003c/p\u003e","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV14wrappedElement0A2UI0F0_pSgvp":{"name":"wrappedElement","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV15backgroundColor11cornerStyle0G5Curve06borderH006shadowH012clipsContent8wrappingACSo7UIColorC_AC06CornerH0OAC0pI0OAC06BorderH0OAC06ShadowH0OSb0A2UI7Element_pSgtcfc":{"name":"init(backgroundColor:cornerStyle:cornerCurve:borderStyle:shadowStyle:clipsContent:wrapping:)","parent_name":"Box"},"Structs/Box.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Box"},"Structs/Box.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Box"},"Structs/Box/CornerStyle.html":{"name":"CornerStyle","parent_name":"Box"},"Structs/Box/CornerCurve.html":{"name":"CornerCurve","abstract":"\u003cp\u003eSpecifies the curve style when showing rounded corners on a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Box.html\"\u003eBox\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"Box"},"Structs/Box/BorderStyle.html":{"name":"BorderStyle","parent_name":"Box"},"Structs/Box/ShadowStyle.html":{"name":"ShadowStyle","parent_name":"Box"},"Structs/AttributedLabel/LinkDetectionType.html#/s:25BlueprintUICommonControls15AttributedLabelV17LinkDetectionTypeO4dateyA2EmF":{"name":"date","abstract":"\u003cp\u003eDetect date strings. Tapping a date opens the calendar to that date.\u003c/p\u003e","parent_name":"LinkDetectionType"},"Structs/AttributedLabel/LinkDetectionType.html#/s:25BlueprintUICommonControls15AttributedLabelV17LinkDetectionTypeO7addressyA2EmF":{"name":"address","abstract":"\u003cp\u003eDetect addresses. Tapping the address opens Maps with that address.\u003c/p\u003e","parent_name":"LinkDetectionType"},"Structs/AttributedLabel/LinkDetectionType.html#/s:25BlueprintUICommonControls15AttributedLabelV17LinkDetectionTypeO4linkyA2EmF":{"name":"link","abstract":"\u003cp\u003eDetect URLs. Tapping the link opens the URL.\u003c/p\u003e","parent_name":"LinkDetectionType"},"Structs/AttributedLabel/LinkDetectionType.html#/s:25BlueprintUICommonControls15AttributedLabelV17LinkDetectionTypeO11phoneNumberyA2EmF":{"name":"phoneNumber","abstract":"\u003cp\u003eDetect phone numbers. Tapping the phone number prompts the user to call it.\u003c/p\u003e","parent_name":"LinkDetectionType"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV14attributedTextSo18NSAttributedStringCvp":{"name":"attributedText","abstract":"\u003cp\u003eThe attributed text to render in the label.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV13numberOfLinesSivp":{"name":"numberOfLines","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV6shadowAA10TextShadowVSgvp":{"name":"shadow","abstract":"\u003cp\u003eA shadow to display behind the label\u0026rsquo;s text. Defaults to no shadow.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV14textRectOffsetSo8UIOffsetVvp":{"name":"textRectOffset","abstract":"\u003cp\u003eAn offset that will be applied to the rect used by \u003ccode\u003edrawText(in:)\u003c/code\u003e.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV22isAccessibilityElementSbvp":{"name":"isAccessibilityElement","abstract":"\u003cp\u003eDetermines if the label should be included when navigating the UI via accessibility.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV25adjustsFontSizeToFitWidthSbvp":{"name":"adjustsFontSizeToFitWidth","abstract":"\u003cp\u003eA Boolean value that determines whether the label reduces the text’s font","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV18minimumScaleFactor14CoreFoundation7CGFloatVvp":{"name":"minimumScaleFactor","abstract":"\u003cp\u003eThe minimum scale factor for the label’s text.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV36allowsDefaultTighteningForTruncationSbvp":{"name":"allowsDefaultTighteningForTruncation","abstract":"\u003cp\u003eA Boolean value that determines whether the label tightens text before truncating.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV19accessibilityTraitsShyAA20AccessibilityElementV5TraitOGSgvp":{"name":"accessibilityTraits","abstract":"\u003cp\u003eA set of accessibility traits that should be applied to the label, these will be merged with any existing traits.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV17accessibilityHintSSSgvp":{"name":"accessibilityHint","abstract":"\u003cp\u003eA localized string that describes the result of performing an action on the element, when the result is non-obvious.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV26accessibilityCustomActionsSayAA20AccessibilityElementV0G6ActionVGvp":{"name":"accessibilityCustomActions","abstract":"\u003cp\u003eAn array containing one or more \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AccessibilityElement/CustomAction.html\"\u003eAccessibilityElement.CustomAction\u003c/a\u003e\u003c/code\u003es, defining additional supported actions. Assistive technologies, such as VoiceOver, will display your custom actions to the user at appropriate times.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV18linkDetectionTypesShyAC04LinkG4TypeOGvp":{"name":"linkDetectionTypes","abstract":"\u003cp\u003eA set of data types to detect and automatically link in the label.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV14linkAttributesSDySo21NSAttributedStringKeyas11AnyHashableVGvp":{"name":"linkAttributes","abstract":"\u003cp\u003eA set of attributes to apply to links in the string.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV20activeLinkAttributesSDySo21NSAttributedStringKeyas11AnyHashableVGvp":{"name":"activeLinkAttributes","abstract":"\u003cp\u003eA set of attributes to apply to links when they are touched.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV14attributedText9configureACSo18NSAttributedStringC_yACzXEtcfc":{"name":"init(attributedText:configure:)","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"AttributedLabel"},"Structs/AttributedLabel/LinkDetectionType.html":{"name":"LinkDetectionType","abstract":"\u003cp\u003eTypes of data that can be detected and automatically turned into links.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/Aligned/HorizontalAlignment.html#/s:11BlueprintUI7AlignedV19HorizontalAlignmentO7leadingyA2EmF":{"name":"leading","abstract":"\u003cp\u003eAligns the content to the leading edge of the containing element.","parent_name":"HorizontalAlignment"},"Structs/Aligned/HorizontalAlignment.html#/s:11BlueprintUI7AlignedV19HorizontalAlignmentO6centeryA2EmF":{"name":"center","abstract":"\u003cp\u003eCenters the content horizontally.\u003c/p\u003e","parent_name":"HorizontalAlignment"},"Structs/Aligned/HorizontalAlignment.html#/s:11BlueprintUI7AlignedV19HorizontalAlignmentO8trailingyA2EmF":{"name":"trailing","abstract":"\u003cp\u003eAligns the content to the trailing edge of the containing element.","parent_name":"HorizontalAlignment"},"Structs/Aligned/HorizontalAlignment.html#/s:11BlueprintUI7AlignedV19HorizontalAlignmentO4fillyA2EmF":{"name":"fill","abstract":"\u003cp\u003eThe content fills the full horizontal width of the containing element.\u003c/p\u003e","parent_name":"HorizontalAlignment"},"Structs/Aligned/VerticalAlignment.html#/s:11BlueprintUI7AlignedV17VerticalAlignmentO3topyA2EmF":{"name":"top","abstract":"\u003cp\u003eAligns the content to the top edge of the containing element.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/Aligned/VerticalAlignment.html#/s:11BlueprintUI7AlignedV17VerticalAlignmentO6centeryA2EmF":{"name":"center","abstract":"\u003cp\u003eCenters the content vertically.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/Aligned/VerticalAlignment.html#/s:11BlueprintUI7AlignedV17VerticalAlignmentO6bottomyA2EmF":{"name":"bottom","abstract":"\u003cp\u003eAligns the content to the bottom edge of the containing element.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/Aligned/VerticalAlignment.html#/s:11BlueprintUI7AlignedV17VerticalAlignmentO4fillyA2EmF":{"name":"fill","abstract":"\u003cp\u003eThe content fills the full vertical height of the containing element.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/Aligned/VerticalAlignment.html":{"name":"VerticalAlignment","abstract":"\u003cp\u003eThe possible vertical alignment values.\u003c/p\u003e","parent_name":"Aligned"},"Structs/Aligned/HorizontalAlignment.html":{"name":"HorizontalAlignment","abstract":"\u003cp\u003eThe possible horizontal alignment values.\u003c/p\u003e","parent_name":"Aligned"},"Structs/Aligned.html#/s:11BlueprintUI7AlignedV14wrappedElementAA0E0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe content element to be aligned.\u003c/p\u003e","parent_name":"Aligned"},"Structs/Aligned.html#/s:11BlueprintUI7AlignedV17verticalAlignmentAC08VerticalE0Ovp":{"name":"verticalAlignment","abstract":"\u003cp\u003eThe vertical alignment.\u003c/p\u003e","parent_name":"Aligned"},"Structs/Aligned.html#/s:11BlueprintUI7AlignedV19horizontalAlignmentAC010HorizontalE0Ovp":{"name":"horizontalAlignment","abstract":"\u003cp\u003eThe horizontal alignment.\u003c/p\u003e","parent_name":"Aligned"},"Structs/Aligned.html#/s:11BlueprintUI7AlignedV10vertically12horizontally8wrappingA2C17VerticalAlignmentO_AC010HorizontalH0OAA7Element_ptcfc":{"name":"init(vertically:horizontally:wrapping:)","abstract":"\u003cp\u003eInitializes an \u003ccode\u003eAligned\u003c/code\u003e with the given content element and alignments.\u003c/p\u003e","parent_name":"Aligned"},"Structs/Aligned.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Aligned"},"Structs/Aligned.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Aligned"},"Structs/EnvironmentReader.html#/s:11BlueprintUI17EnvironmentReaderV21elementRepresentationAcA7Element_pAA0C0Vc_tcfc":{"name":"init(elementRepresentation:)","parent_name":"EnvironmentReader"},"Structs/EnvironmentReader.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"EnvironmentReader"},"Structs/EnvironmentReader.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"EnvironmentReader"},"Structs/AdaptedEnvironment.html#/s:11BlueprintUI18AdaptedEnvironmentV7Adaptera":{"name":"Adapter","abstract":"\u003cp\u003eTakes in a mutable \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Environment.html\"\u003eEnvironment\u003c/a\u003e\u003c/code\u003e which can be mutated to add or override values.\u003c/p\u003e","parent_name":"AdaptedEnvironment"},"Structs/AdaptedEnvironment.html#/s:11BlueprintUI18AdaptedEnvironmentV2by8wrappingACyAA0D0Vzc_AA7Element_ptcfc":{"name":"init(by:wrapping:)","abstract":"\u003cp\u003eWraps an element with an environment that is modified using the given","parent_name":"AdaptedEnvironment"},"Structs/AdaptedEnvironment.html#/s:11BlueprintUI18AdaptedEnvironmentV3key5value8wrappingACxm_5ValueQzAA7Element_ptcAA0D3KeyRzlufc":{"name":"init(key:value:wrapping:)","abstract":"\u003cp\u003eWraps an element with an environment that is modified for a single key and value.\u003c/p\u003e","parent_name":"AdaptedEnvironment"},"Structs/AdaptedEnvironment.html#/s:11BlueprintUI18AdaptedEnvironmentV7keyPath5value8wrappingACs011WritableKeyF0CyAA0D0VxG_xAA7Element_ptclufc":{"name":"init(keyPath:value:wrapping:)","abstract":"\u003cp\u003eWraps an element with an environment that is modified for a single value.\u003c/p\u003e","parent_name":"AdaptedEnvironment"},"Structs/AdaptedEnvironment.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"AdaptedEnvironment"},"Structs/AdaptedEnvironment.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"AdaptedEnvironment"},"Structs/AccessibilityElement/CustomContent/Importance.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV10ImportanceO7defaultyA2GmF":{"name":"default","abstract":"\u003cp\u003eBy default custom content is available through the rotor.\u003c/p\u003e","parent_name":"Importance"},"Structs/AccessibilityElement/CustomContent/Importance.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV10ImportanceO4highyA2GmF":{"name":"high","abstract":"\u003cp\u003eIn addtion to being available through the rotor, high importance content will announced in the main VoiceOver utterance.","parent_name":"Importance"},"Structs/AccessibilityElement/CustomContent/Importance.html":{"name":"Importance","abstract":"\u003cp\u003eThe importance of the content.\u003c/p\u003e","parent_name":"CustomContent"},"Structs/AccessibilityElement/CustomContent.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV5labelSSvp":{"name":"label","parent_name":"CustomContent"},"Structs/AccessibilityElement/CustomContent.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV5valueSSSgvp":{"name":"value","parent_name":"CustomContent"},"Structs/AccessibilityElement/CustomContent.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV10importanceAE10ImportanceOvp":{"name":"importance","parent_name":"CustomContent"},"Structs/AccessibilityElement/CustomContent.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV5label5value10importanceAESS_SSSgAE10ImportanceOtcfc":{"name":"init(label:value:importance:)","parent_name":"CustomContent"},"Structs/AccessibilityElement/CustomContent.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV02axfG0So08AXCustomG0Cvp":{"name":"axCustomContent","parent_name":"CustomContent"},"Structs/AccessibilityElement/CustomAction.html#/s:25BlueprintUICommonControls20AccessibilityElementV12CustomActionV12OnActivationa":{"name":"OnActivation","parent_name":"CustomAction"},"Structs/AccessibilityElement/CustomAction.html#/s:25BlueprintUICommonControls20AccessibilityElementV12CustomActionV4nameSSvp":{"name":"name","abstract":"\u003cp\u003eA localized name that discribes the action.\u003c/p\u003e","parent_name":"CustomAction"},"Structs/AccessibilityElement/CustomAction.html#/s:25BlueprintUICommonControls20AccessibilityElementV12CustomActionV5imageSo7UIImageCSgvp":{"name":"image","abstract":"\u003cp\u003eAn image representing the action to be shown with some assistive technologies such as Switch Control.\u003c/p\u003e","parent_name":"CustomAction"},"Structs/AccessibilityElement/CustomAction.html#/s:25BlueprintUICommonControls20AccessibilityElementV12CustomActionV12onActivationSbycvp":{"name":"onActivation","abstract":"\u003cp\u003eA Callback for when the action is activated. This should return a \u003ccode\u003ebool\u003c/code\u003e indicating success or failure of the action.\u003c/p\u003e","parent_name":"CustomAction"},"Structs/AccessibilityElement/CustomAction.html#/s:25BlueprintUICommonControls20AccessibilityElementV12CustomActionV4name5image12onActivationAESS_So7UIImageCSgSbyctcfc":{"name":"init(name:image:onActivation:)","parent_name":"CustomAction"},"Structs/AccessibilityElement/CustomAction.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"CustomAction"},"Structs/AccessibilityElement/CustomAction.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"CustomAction"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO15IncrementActiona":{"name":"IncrementAction","abstract":"\u003cp\u003eUsed in conjunction with UIAccessibilityTrait.adjustable, these will be called to allow accessible adjustment of a value, for example in a slider or stepper control.","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO15DecrementActiona":{"name":"DecrementAction","abstract":"\u003cp\u003eUsed in conjunction with UIAccessibilityTrait.adjustable, these will be called to allow accessible adjustment of a value, for example in a slider or stepper control.","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO6buttonyA2EmF":{"name":"button","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO4linkyA2EmF":{"name":"link","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO6headeryA2EmF":{"name":"header","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO11searchFieldyA2EmF":{"name":"searchField","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO5imageyA2EmF":{"name":"image","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO8selectedyA2EmF":{"name":"selected","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO10playsSoundyA2EmF":{"name":"playsSound","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO11keyboardKeyyA2EmF":{"name":"keyboardKey","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO10staticTextyA2EmF":{"name":"staticText","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO07summaryE0yA2EmF":{"name":"summaryElement","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO10notEnabledyA2EmF":{"name":"notEnabled","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO17updatesFrequentlyyA2EmF":{"name":"updatesFrequently","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO18startsMediaSessionyA2EmF":{"name":"startsMediaSession","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO10adjustableyAEyyc_yyctcAEmF":{"name":"adjustable(_:_:)","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO23allowsDirectInteractionyA2EmF":{"name":"allowsDirectInteraction","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO14causesPageTurnyA2EmF":{"name":"causesPageTurn","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO6tabBaryA2EmF":{"name":"tabBar","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"Trait"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV5labelSSSgvp":{"name":"label","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV5valueSSSgvp":{"name":"value","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV4hintSSSgvp":{"name":"hint","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV10identifierSSSgvp":{"name":"identifier","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV6traitsShyAC5TraitOGvp":{"name":"traits","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV22accessibilityFrameSizeSo6CGSizeVSgvp":{"name":"accessibilityFrameSize","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV29accessibilityFrameCornerStyleAA3BoxV0hI0Ovp":{"name":"accessibilityFrameCornerStyle","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV07wrappedE00A2UI0E0_pvp":{"name":"wrappedElement","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV21accessibilityActivateSbycSgvp":{"name":"accessibilityActivate","abstract":"\u003cp\u003eUsed to provide custom behaviour when activated by voiceover. This will override the default behavior of issuing a tap event at the accessibility activation point.","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV13customActionsSayAC12CustomActionVGvp":{"name":"customActions","abstract":"\u003cp\u003eAn array containing one or more \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AccessibilityElement/CustomAction.html\"\u003eCustomAction\u003c/a\u003e\u003c/code\u003es, defining additional supported actions. Assistive technologies, such as VoiceOver, will display your custom actions to the user at appropriate times.\u003c/p\u003e","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV13customContentSayAC06CustomG0VGvp":{"name":"customContent","abstract":"\u003cp\u003eAn array containing one or more \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AccessibilityElement/CustomContent.html\"\u003eCustomContent\u003c/a\u003e\u003c/code\u003es, defining additional content associated with the element. Assistive technologies, such as VoiceOver, will announce your custom content to the user at appropriate times.\u003c/p\u003e","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV5label5value6traits4hint10identifier22accessibilityFrameSize0kL11CornerStyle13customActions0P7Content8wrapping9configureACSSSg_AOShyAC5TraitOGA2OSo6CGSizeVSgAA3BoxV0nO0OSayAC12CustomActionVGSayAC0xR0VG0A2UI0E0_pyACzXEtcfc":{"name":"init(label:value:traits:hint:identifier:accessibilityFrameSize:accessibilityFrameCornerStyle:customActions:customContent:wrapping:configure:)","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement/Trait.html":{"name":"Trait","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement/CustomAction.html":{"name":"CustomAction","abstract":"\u003cp\u003eUsed to provide additional functionality to assistive technologies beyond your accessible UI.\u003c/p\u003e","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement/CustomContent.html":{"name":"CustomContent","parent_name":"AccessibilityElement"},"Structs/AccessibilityContainer.html#/s:25BlueprintUICommonControls22AccessibilityContainerV10identifierSSSgvp":{"name":"identifier","abstract":"\u003cp\u003eAn optional \u003ccode\u003eaccessibilityIdentifier\u003c/code\u003e to give the container. Defaults to \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e","parent_name":"AccessibilityContainer"},"Structs/AccessibilityContainer.html#/s:25BlueprintUICommonControls22AccessibilityContainerV7wrapped0A2UI7Element_pvp":{"name":"wrapped","parent_name":"AccessibilityContainer"},"Structs/AccessibilityContainer.html#/s:25BlueprintUICommonControls22AccessibilityContainerV10identifier8wrappingACSSSg_0A2UI7Element_ptcfc":{"name":"init(identifier:wrapping:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eAccessibilityContainer\u003c/code\u003e wrapping the provided element.\u003c/p\u003e","parent_name":"AccessibilityContainer"},"Structs/AccessibilityContainer.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"AccessibilityContainer"},"Structs/AccessibilityContainer.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"AccessibilityContainer"},"Structs/AccessibilityBlocker.html#/s:25BlueprintUICommonControls20AccessibilityBlockerV7wrapped0A2UI7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe element whose accessibility information will be blocked.\u003c/p\u003e","parent_name":"AccessibilityBlocker"},"Structs/AccessibilityBlocker.html#/s:25BlueprintUICommonControls20AccessibilityBlockerV10isBlockingSbvp":{"name":"isBlocking","abstract":"\u003cp\u003eIf the \u003ccode\u003eAccessibilityBlocker\u003c/code\u003e is currently blocking accessibility.\u003c/p\u003e","parent_name":"AccessibilityBlocker"},"Structs/AccessibilityBlocker.html#/s:25BlueprintUICommonControls20AccessibilityBlockerV10isBlocking8wrappingACSb_0A2UI7Element_ptcfc":{"name":"init(isBlocking:wrapping:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eAccessibilityBlocker\u003c/code\u003e wrapping the provided element.\u003c/p\u003e","parent_name":"AccessibilityBlocker"},"Structs/AccessibilityBlocker.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"AccessibilityBlocker"},"Structs/AccessibilityBlocker.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"AccessibilityBlocker"},"Structs/AccessibilityBlocker.html":{"name":"AccessibilityBlocker","abstract":"\u003cp\u003eBlocks all accessibility on the element, so that it is"},"Structs/AccessibilityContainer.html":{"name":"AccessibilityContainer","abstract":"\u003cp\u003eActs as an accessibility container for any accessible subviews.\u003c/p\u003e"},"Structs/AccessibilityElement.html":{"name":"AccessibilityElement"},"Structs/AdaptedEnvironment.html":{"name":"AdaptedEnvironment","abstract":"\u003cp\u003eWraps an element tree with a modified environment.\u003c/p\u003e"},"Structs/EnvironmentReader.html":{"name":"EnvironmentReader","abstract":"\u003cp\u003eAn element that dynamically builds its content based on the environment.\u003c/p\u003e"},"Structs/Aligned.html":{"name":"Aligned","abstract":"\u003cp\u003eAligns a content element within itself. The vertical and horizontal alignment may be set independently.\u003c/p\u003e"},"Structs/AttributedLabel.html":{"name":"AttributedLabel"},"Structs/Box.html":{"name":"Box","abstract":"\u003cp\u003eA simple element that wraps a child element and adds visual styling including"},"Structs/Button.html":{"name":"Button","abstract":"\u003cp\u003eAn element that wraps a child element in a button that mimics a UIButton with the .system style. That is, when"},"Structs/Centered.html":{"name":"Centered","abstract":"\u003cp\u003eCenters a content element within itself.\u003c/p\u003e"},"Structs/Column.html":{"name":"Column","abstract":"\u003cp\u003eDisplays a list of items in a linear vertical layout.\u003c/p\u003e"},"Structs/ConstrainedAspectRatio.html":{"name":"ConstrainedAspectRatio","abstract":"\u003cp\u003eConstrains the size of the content element to an aspect ratio.\u003c/p\u003e"},"Structs/ConstrainedSize.html":{"name":"ConstrainedSize","abstract":"\u003cp\u003eConstrains the measured size of the contained element in the ranges specified by the \u003ccode\u003ewidth\u003c/code\u003e and \u003ccode\u003eheight\u003c/code\u003e properties.\u003c/p\u003e"},"Structs/Empty.html":{"name":"Empty","abstract":"\u003cp\u003eAn empty \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/Element.html\"\u003eElement\u003c/a\u003e\u003c/code\u003e which has no size and draws no content.\u003c/p\u003e"},"Structs/EqualStack.html":{"name":"EqualStack","abstract":"\u003cp\u003eAn element that sizes its children equally, stacking them in the primary axis according to"},"Structs/GeometryReader.html":{"name":"GeometryReader","abstract":"\u003cp\u003eAn element that dynamically builds its content based on the available space.\u003c/p\u003e"},"Structs/Image.html":{"name":"Image","abstract":"\u003cp\u003eDisplays an image within an element hierarchy.\u003c/p\u003e"},"Structs/Inset.html":{"name":"Inset","abstract":"\u003cp\u003eInsets a content element within a layout.\u003c/p\u003e"},"Structs/Label.html":{"name":"Label","abstract":"\u003cp\u003eDisplays text content.\u003c/p\u003e"},"Structs/Overlay.html":{"name":"Overlay","abstract":"\u003cp\u003eStretches all of its child elements to fill the layout area, stacked on top of each other.\u003c/p\u003e"},"Structs/Row.html":{"name":"Row","abstract":"\u003cp\u003eDisplays a list of items in a linear horizontal layout.\u003c/p\u003e"},"Structs/Rule.html":{"name":"Rule","abstract":"\u003cp\u003eA solid line, parallel to the x or y axis, with a fixed thickness but unconstrained in length,"},"Structs/ScrollView.html":{"name":"ScrollView","abstract":"\u003cp\u003eWraps a content element and makes it scrollable.\u003c/p\u003e"},"Structs/SegmentedControl.html":{"name":"SegmentedControl","abstract":"\u003cp\u003eAllows users to pick from an array of options.\u003c/p\u003e"},"Structs/Spacer.html":{"name":"Spacer","abstract":"\u003cp\u003eAn element that does not display anything (it has neither children or a view).\u003c/p\u003e"},"Structs/Tappable.html":{"name":"Tappable","abstract":"\u003cp\u003eWraps a content element and calls the provided closure when tapped.\u003c/p\u003e"},"Structs/TextField.html":{"name":"TextField","abstract":"\u003cp\u003eDisplays a text field.\u003c/p\u003e"},"Structs/TransitionContainer.html":{"name":"TransitionContainer","abstract":"\u003cp\u003eWraps a content element and adds transitions when the element appears,"},"Structs/ElementPreview/PreviewType.html#/s:11BlueprintUI14ElementPreviewV0D4TypeO6deviceyAE05SwiftB00D6DeviceVcAEmF":{"name":"device(_:)","abstract":"\u003cp\u003eThe preview will be inside the provided device (eg, iPhone X).\u003c/p\u003e","parent_name":"PreviewType"},"Structs/ElementPreview/PreviewType.html#/s:11BlueprintUI14ElementPreviewV0D4TypeO5fixedyAE14CoreFoundation7CGFloatV_AItcAEmF":{"name":"fixed(width:height:)","abstract":"\u003cp\u003eThe preview will be the provided size\u003c/p\u003e","parent_name":"PreviewType"},"Structs/ElementPreview/PreviewType.html#/s:11BlueprintUI14ElementPreviewV0D4TypeO8thatFitsyAE14CoreFoundation7CGFloatV_tcAEmF":{"name":"thatFits(padding:)","abstract":"\u003cp\u003eThe preview will be as large as needed to preview the content.\u003c/p\u003e","parent_name":"PreviewType"},"Structs/ElementPreview/PreviewType.html#/s:11BlueprintUI14ElementPreviewV0D4TypeO10identifiers11AnyHashableVvp":{"name":"identifier","parent_name":"PreviewType"},"Structs/ElementPreview/PreviewType.html#/s:11BlueprintUI14ElementPreviewV0D4TypeO11previewView4with3for05SwiftB003AnyG0VSS_AA0C0_ptF":{"name":"previewView(with:for:)","parent_name":"PreviewType"},"Structs/ElementPreview.html#/s:11BlueprintUI14ElementPreviewV0C8Providera":{"name":"ElementProvider","abstract":"\u003cp\u003eA provider which returns a new element.\u003c/p\u003e","parent_name":"ElementPreview"},"Structs/ElementPreview.html#/s:11BlueprintUI14ElementPreviewV13commonDevices5named4withACSS_AA0C0_pyctFZ":{"name":"commonDevices(named:with:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eElementPreview\u003c/code\u003e with several common devices that your users may use.\u003c/p\u003e","parent_name":"ElementPreview"},"Structs/ElementPreview.html#/s:11BlueprintUI14ElementPreviewV5named4withAeCSS_AC0D4TypeOAA0C0_pyctcfc":{"name":"init(named:with:with:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eElementPreview\u003c/code\u003e with the provided preview type.","parent_name":"ElementPreview"},"Structs/ElementPreview.html#/s:11BlueprintUI14ElementPreviewV5named4withAeCSS_SayAC0D4TypeOGAA0C0_pyctcfc":{"name":"init(named:with:with:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eElementPreview\u003c/code\u003e with the provided preview types.\u003c/p\u003e","parent_name":"ElementPreview"},"Structs/ElementPreview.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"ElementPreview"},"Structs/ElementPreview/PreviewType.html":{"name":"PreviewType","abstract":"\u003cp\u003eThe preview type to use to display an element in an Xcode preview.\u003c/p\u003e","parent_name":"ElementPreview"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC11environmentAA11EnvironmentVvp":{"name":"environment","abstract":"\u003cp\u003eA base environment used when laying out and rendering the element tree.\u003c/p\u003e","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC046automaticallyInheritsEnvironmentFromContainingA5ViewsSbvp":{"name":"automaticallyInheritsEnvironmentFromContainingBlueprintViews","abstract":"\u003cp\u003eIf \u003ccode\u003etrue\u003c/code\u003e, then Blueprint will automatically inherit the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Environment.html\"\u003eEnvironment\u003c/a\u003e\u003c/code\u003e from the nearest","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC7elementAA7Element_pSgvp":{"name":"element","abstract":"\u003cp\u003eThe root element that is displayed within the view.\u003c/p\u003e","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(py)bounds":{"name":"bounds","abstract":"\u003cp\u003eWe need to invalidateIntrinsicContentSize when \u003ccode\u003ebound.size\u003c/code\u003e changes for Auto Layout to work correctly.\u003c/p\u003e","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC10layoutModeAA06LayoutE0OSgvp":{"name":"layoutMode","abstract":"\u003cp\u003eAn optional explicit layout mode for this view. If \u003ccode\u003enil\u003c/code\u003e, this view will inherit the layout","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC4nameSSSgvp":{"name":"name","abstract":"\u003cp\u003eAn optional name to help identify this view\u003c/p\u003e","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC15metricsDelegateAA0ac7MetricsE0_pSgvp":{"name":"metricsDelegate","abstract":"\u003cp\u003eProvides performance metrics about the duration of layouts, updates, etc.\u003c/p\u003e","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC7element11environmentAcA7Element_pSg_AA11EnvironmentVtcfc":{"name":"init(element:environment:)","abstract":"\u003cp\u003eInstantiates a view with the given element\u003c/p\u003e","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)initWithFrame:":{"name":"init(frame:)","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)sizeThatFits:":{"name":"sizeThatFits(_:)","abstract":"\u003cp\u003eMeasures the size needed to display the view within the given constraining size,","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC12sizeThatFitsySo6CGSizeVAA14SizeConstraintVF":{"name":"sizeThatFits(_:)","abstract":"\u003cp\u003eMeasures the size needed to display the view within the given \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/SizeConstraint.html\"\u003eSizeConstraint\u003c/a\u003e\u003c/code\u003e.","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)systemLayoutSizeFittingSize:":{"name":"systemLayoutSizeFitting(_:)","abstract":"\u003cp\u003eMeasures the size needed to display the view within then given constraining size,","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:":{"name":"systemLayoutSizeFitting(_:withHorizontalFittingPriority:verticalFittingPriority:)","abstract":"\u003cp\u003eMeasures the size needed to display the view within then given constraining size,","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"\u003cp\u003eFor us, this is the same as \u003ccode\u003esizeThatFits\u003c/code\u003e, since blueprint does not","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(py)semanticContentAttribute":{"name":"semanticContentAttribute","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)safeAreaInsetsDidChange":{"name":"safeAreaInsetsDidChange()","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)layoutSubviews":{"name":"layoutSubviews()","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)didMoveToWindow":{"name":"didMoveToWindow()","parent_name":"BlueprintView"},"Classes/BlueprintView.html":{"name":"BlueprintView","abstract":"\u003cp\u003eA view that is responsible for displaying an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/Element.html\"\u003eElement\u003c/a\u003e\u003c/code\u003e hierarchy.\u003c/p\u003e"},"Structs/ElementPreview.html":{"name":"ElementPreview","abstract":"\u003cp\u003eA SwiftUI view which wraps a Blueprint element, which can be used to preview Blueprint elements"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV5alpha14CoreFoundation7CGFloatVvp":{"name":"alpha","abstract":"\u003cp\u003eThe alpha of the view in the hidden state (initial for appearing, final for disappearing).\u003c/p\u003e","parent_name":"VisibilityTransition"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV9transformSo13CATransform3DVvp":{"name":"transform","abstract":"\u003cp\u003eThe transform of the view in the hidden state (initial for appearing, final for disappearing).\u003c/p\u003e","parent_name":"VisibilityTransition"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV10attributesAA19AnimationAttributesVvp":{"name":"attributes","abstract":"\u003cp\u003eThe animation attributes that will be used to drive the transition.\u003c/p\u003e","parent_name":"VisibilityTransition"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV5alpha9transform10attributesAC14CoreFoundation7CGFloatV_So13CATransform3DVAA19AnimationAttributesVtcfc":{"name":"init(alpha:transform:attributes:)","parent_name":"VisibilityTransition"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV5scaleACvpZ":{"name":"scale","abstract":"\u003cp\u003eReturns a \u003ccode\u003eVisibilityTransition\u003c/code\u003e that scales in and out.\u003c/p\u003e","parent_name":"VisibilityTransition"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV4fadeACvpZ":{"name":"fade","abstract":"\u003cp\u003eReturns a \u003ccode\u003eVisibilityTransition\u003c/code\u003e that fades in and out.\u003c/p\u003e","parent_name":"VisibilityTransition"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV12scaleAndFadeACvpZ":{"name":"scaleAndFade","abstract":"\u003cp\u003eReturns a \u003ccode\u003eVisibilityTransition\u003c/code\u003e that simultaneously scales and fades in and out.\u003c/p\u003e","parent_name":"VisibilityTransition"},"Enums/LayoutTransition.html#/s:11BlueprintUI16LayoutTransitionO4noneyA2CmF":{"name":"none","abstract":"\u003cp\u003eThe view will never animate layout changes.\u003c/p\u003e","parent_name":"LayoutTransition"},"Enums/LayoutTransition.html#/s:11BlueprintUI16LayoutTransitionO8specificyAcA19AnimationAttributesVcACmF":{"name":"specific(_:)","abstract":"\u003cp\u003eLayout changes will always animate with the given attributes.\u003c/p\u003e","parent_name":"LayoutTransition"},"Enums/LayoutTransition.html#/s:11BlueprintUI16LayoutTransitionO9inheritedyA2CmF":{"name":"inherited","abstract":"\u003cp\u003eThe view will only animate layout changes if an inherited transition exists.\u003c/p\u003e","parent_name":"LayoutTransition"},"Enums/LayoutTransition.html#/s:11BlueprintUI16LayoutTransitionO21inheritedWithFallbackyAcA19AnimationAttributesVcACmF":{"name":"inheritedWithFallback(_:)","abstract":"\u003cp\u003eThe view will animate along with an inherited transition (if present) or the specified fallback attributes.\u003c/p\u003e","parent_name":"LayoutTransition"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV6Updatea":{"name":"Update","abstract":"\u003cp\u003eA closure that is applied to the native view instance during an update cycle.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV7builderxycvp":{"name":"builder","abstract":"\u003cp\u003eA closure that is responsible for instantiating an instance of the native view.","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV7updatesSayyxcGvp":{"name":"updates","abstract":"\u003cp\u003eAn array of update closures.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV07contentC0ySo6UIViewCxcvp":{"name":"contentView","abstract":"\u003cp\u003eA closure that takes a native view instance as the single argument, and","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV16layoutTransitionAA06LayoutG0Ovp":{"name":"layoutTransition","abstract":"\u003cp\u003eThe transition to use during layout changes.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV19appearingTransitionAA010VisibilityG0VSgvp":{"name":"appearingTransition","abstract":"\u003cp\u003eThe transition to use when this view appears.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV22disappearingTransitionAA010VisibilityG0VSgvp":{"name":"disappearingTransition","abstract":"\u003cp\u003eThe transition to use when this view disappears.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV8onAppearyycSgvp":{"name":"onAppear","abstract":"\u003cp\u003eA hook to call when the element appears.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV11onDisappearyycSgvp":{"name":"onDisappear","abstract":"\u003cp\u003eA hook to call when the element disappears.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV21frameRoundingBehaviorAC05FramegH0Ovp":{"name":"frameRoundingBehavior","abstract":"\u003cp\u003eThe prioritization method to use when snapping the native view\u0026rsquo;s frame to pixel","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationVAEy_xGycfc":{"name":"init()","abstract":"\u003cp\u003eInitializes a default configuration object.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV5applyyyyxcF":{"name":"apply(_:)","abstract":"\u003cp\u003eAdds the given update closure to the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV7updatesSayyxcGvp\"\u003eupdates\u003c/a\u003e\u003c/code\u003e array.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationVyqd__Sgs24ReferenceWritableKeyPathCyxqd__Gcluip":{"name":"subscript(_:)","abstract":"\u003cp\u003eSubscript for values that are not optional. We must represent these values as optional so that we can","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationVyqd__Sgs24ReferenceWritableKeyPathCyxAFGcluip":{"name":"subscript(_:)","abstract":"\u003cp\u003eSubscript for values that are optional.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/FrameRoundingBehavior.html#/s:11BlueprintUI15ViewDescriptionV21FrameRoundingBehaviorO15prioritizeEdgesyA2EmF":{"name":"prioritizeEdges","abstract":"\u003cp\u003ePrioritize preserving frame edge positions\u003c/p\u003e","parent_name":"FrameRoundingBehavior"},"Structs/ViewDescription/FrameRoundingBehavior.html#/s:11BlueprintUI15ViewDescriptionV21FrameRoundingBehaviorO14prioritizeSizeyA2EmF":{"name":"prioritizeSize","abstract":"\u003cp\u003ePrioritize preserving frame sizes\u003c/p\u003e","parent_name":"FrameRoundingBehavior"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionVyACxmcSo6UIViewCRbzlufc":{"name":"init(_:)","abstract":"\u003cp\u003eGenerates a view description for the given view class.\u003c/p\u003e","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV_11configuringACxm_yAC13ConfigurationVy_xGzXEtcSo6UIViewCRbzlufc":{"name":"init(_:configuring:)","abstract":"\u003cp\u003eGenerates a view description for the given view class.\u003c/p\u003e","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV8viewTypeSo6UIViewCmvp":{"name":"viewType","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV5buildSo6UIViewCyF":{"name":"build()","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV5apply2toySo6UIViewC_tF":{"name":"apply(to:)","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV07contentC02inSo6UIViewCAG_tF":{"name":"contentView(in:)","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV16layoutTransitionAA06LayoutF0Ovp":{"name":"layoutTransition","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV19appearingTransitionAA010VisibilityF0VSgvp":{"name":"appearingTransition","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV22disappearingTransitionAA010VisibilityF0VSgvp":{"name":"disappearingTransition","parent_name":"ViewDescription"},"Structs/ViewDescription/FrameRoundingBehavior.html":{"name":"FrameRoundingBehavior","abstract":"\u003cp\u003eThe available prioritization options for rounding frames to pixel boundaries.\u003c/p\u003e","parent_name":"ViewDescription"},"Structs/ViewDescription/Configuration.html":{"name":"Configuration","abstract":"\u003cp\u003eRepresents the configuration of a specific UIView type.\u003c/p\u003e","parent_name":"ViewDescription"},"Structs/ElementContent/Builder.html#/s:11BlueprintUI14ElementContentV7BuilderV6layoutxvp":{"name":"layout","abstract":"\u003cp\u003eThe layout object that is ultimately responsible for measuring","parent_name":"Builder"},"Structs/ElementContent/Builder.html#/s:11BlueprintUI14ElementContentV7BuilderV3add6traits3key7elementy6TraitsQz_s11AnyHashableVSgAA0C0_ptF":{"name":"add(traits:key:element:)","abstract":"\u003cp\u003eAdds the given child element.\u003c/p\u003e","parent_name":"Builder"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV7measure2in11environmentSo6CGSizeVAA14SizeConstraintV_AA11EnvironmentVtF":{"name":"measure(in:environment:)","abstract":"\u003cp\u003eMeasures the required size of this element\u0026rsquo;s content.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV10childCountSivp":{"name":"childCount","parent_name":"ElementContent"},"Structs/ElementContent/Builder.html":{"name":"Builder","abstract":"\u003cp\u003eUsed to construct elements that have layout and children.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV6layout9configureACx_yAC7BuilderVy_xGzXEtcAA6LayoutRzlufc":{"name":"init(layout:configure:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with the given layout and children.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV5child3key6layoutAcA0C0_p_s11AnyHashableVSgxtcAA17SingleChildLayoutRzlufc":{"name":"init(child:key:layout:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with the given element and layout.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV5childAcA0C0_p_tcfc":{"name":"init(child:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with the given element.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV5buildAcA0C0_pAA14SizeConstraintV_AA11EnvironmentVtc_tcfc":{"name":"init(build:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e that will lazily create its storage during a layout and measurement pass,","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV10measurableAcA10Measurable_p_tcfc":{"name":"init(measurable:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with no children that delegates to the provided \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/Measurable.html\"\u003eMeasurable\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV15measureFunctionACSo6CGSizeVAA14SizeConstraintVc_tcfc":{"name":"init(measureFunction:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with no children that delegates to the provided measure function.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV15measureFunctionACSo6CGSizeVAA14SizeConstraintV_AA11EnvironmentVtc_tcfc":{"name":"init(measureFunction:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with no children that delegates to the provided measure function.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV13intrinsicSizeACSo6CGSizeV_tcfc":{"name":"init(intrinsicSize:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with no children that uses the provided intrinsic size for measuring.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV5child11environmentAcA0C0_p_yAA11EnvironmentVzctcfc":{"name":"init(child:environment:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with the given child element, measurement caching key, and environment adapter,","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV5child3key5valueAcA0C0_p_xm5ValueQztcAA14EnvironmentKeyRzlufc":{"name":"init(child:key:value:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with the given child element, measurement caching key, and environment key + value.","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV9measuringAcA0C0_p_tcfc":{"name":"init(measuring:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eElementContent\u003c/code\u003e which uses the provided element to measure its","parent_name":"ElementContent"},"Protocols/ProxyElement.html#/s:11BlueprintUI12ProxyElementP21elementRepresentationAA0D0_pvp":{"name":"elementRepresentation","abstract":"\u003cp\u003eReturns an element that represents the entire content of this element.\u003c/p\u003e","parent_name":"ProxyElement"},"Protocols/ProxyElement.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"ProxyElement"},"Protocols/ProxyElement.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"ProxyElement"},"Protocols/Element.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","abstract":"\u003cp\u003eReturns the content of this element.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","abstract":"\u003cp\u003eReturns an (optional) description of the view that should back this element.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE18adaptedEnvironment3key5valueAaB_pqd__m_5ValueQyd__tAA0E3KeyRd__lF":{"name":"adaptedEnvironment(key:value:)","abstract":"\u003cp\u003eWraps this element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AdaptedEnvironment.html\"\u003eAdaptedEnvironment\u003c/a\u003e\u003c/code\u003e with the given environment key and value.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE18adaptedEnvironment7keyPath5valueAaB_ps011WritableKeyG0CyAA0E0Vqd__G_qd__tlF":{"name":"adaptedEnvironment(keyPath:value:)","abstract":"\u003cp\u003eWraps this element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AdaptedEnvironment.html\"\u003eAdaptedEnvironment\u003c/a\u003e\u003c/code\u003e with the given keypath and value.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE18adaptedEnvironment2byAaB_pyAA0E0Vzc_tF":{"name":"adaptedEnvironment(by:)","abstract":"\u003cp\u003eWraps this element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AdaptedEnvironment.html\"\u003eAdaptedEnvironment\u003c/a\u003e\u003c/code\u003e with the given configuration block.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE7aligned10vertically12horizontallyAA7AlignedVAH17VerticalAlignmentO_AH010HorizontalI0OtF":{"name":"aligned(vertically:horizontally:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Aligned.html\"\u003eAligned\u003c/a\u003e\u003c/code\u003e element with the provided parameters.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE8centeredAA8CenteredVyF":{"name":"centered()","abstract":"\u003cp\u003eWraps the element in a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Centered.html\"\u003eCentered\u003c/a\u003e\u003c/code\u003e element to center it within its parent.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE2if_4thenAaB_pSb_AaB_pxXEtF":{"name":"if(_:then:)","abstract":"\u003cp\u003eReturns a new element from the provided \u003ccode\u003emodify\u003c/code\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE2if_4then4elseAaB_pSb_AaB_pxXEAaB_pxXEtF":{"name":"if(_:then:else:)","abstract":"\u003cp\u003eReturns a new element from the provided \u003ccode\u003ethen\u003c/code\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE2if3let4thenAaB_pqd__Sg_AaB_pqd___xtXEtlF":{"name":"if(let:then:)","abstract":"\u003cp\u003eReturns a new element from the provided \u003ccode\u003emodify\u003c/code\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE2if3let4then4elseAaB_pqd__Sg_AaB_pqd___xtXEAaB_pxXEtlF":{"name":"if(let:then:else:)","abstract":"\u003cp\u003eReturns a new element from the provided \u003ccode\u003ethen\u003c/code\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE3mapyAaB_pAaB_pxXEF":{"name":"map(_:)","abstract":"\u003cp\u003eCreates and returns a new element by passing the","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE6modifyyAaB_pyxzXEF":{"name":"modify(_:)","abstract":"\u003cp\u003eCreates and returns a new element by passing the","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE13constrainedTo11aspectRatio11contentModeAA017ConstrainedAspectG0VAA0kG0V_AH07ContentI0OtF":{"name":"constrainedTo(aspectRatio:contentMode:)","abstract":"\u003cp\u003eConstrains the element to the provided aspect ratio.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE13constrainedTo5width6heightAA15ConstrainedSizeVAH10ConstraintO_AJtF":{"name":"constrainedTo(width:height:)","abstract":"\u003cp\u003eConstrains the measured size of the element to the provided width and height.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE13constrainedTo5width6heightAA15ConstrainedSizeV14CoreFoundation7CGFloatV_AKtF":{"name":"constrainedTo(width:height:)","abstract":"\u003cp\u003eConstrains the measured size of the element to the provided width and height.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE13constrainedTo4sizeAA15ConstrainedSizeVSo6CGSizeV_tF":{"name":"constrainedTo(size:)","abstract":"\u003cp\u003eConstrains the measured size of the element to the provided size.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE11constrained2toAA15ConstrainedSizeVAA0G10ConstraintV_tF":{"name":"constrained(to:)","abstract":"\u003cp\u003eConstrains the measured size of the element to the provided \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/SizeConstraint.html\"\u003eSizeConstraint\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE8decorate8layering8position4withAaB_pAA8DecorateV8LayeringO_AI8PositionVAaB_pyXEtF":{"name":"decorate(layering:position:with:)","abstract":"\u003cp\u003ePlaces a decoration element behind or in front of the given \u003ccode\u003ewrapped\u003c/code\u003e element,","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE9flowChild3keyAA4FlowV0E0Vs11AnyHashableVSg_tF":{"name":"flowChild(key:)","abstract":"\u003cp\u003eWraps the element in a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Flow/Child.html\"\u003eFlow.Child\u003c/a\u003e\u003c/code\u003e to allow customizing the item in the flow layout.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE12gridRowChild3key5widthAA04GridE0V0F0Vs11AnyHashableVSg_AH5WidthOtF":{"name":"gridRowChild(key:width:)","abstract":"\u003cp\u003eWraps an element with a \u003ccode\u003eGridRowChild\u003c/code\u003e in order to provide meta information that a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/GridRow.html\"\u003eGridRow\u003c/a\u003e\u003c/code\u003e can aply to its layout.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE6hiddenyAA6HiddenVSbF":{"name":"hidden(_:)","abstract":"\u003cp\u003eConditionally hide the wrapped element.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE5inset3top6bottom4left5rightAA5InsetV14CoreFoundation7CGFloatV_A3MtF":{"name":"inset(top:bottom:left:right:)","abstract":"\u003cp\u003eInsets the element by the given amount on each side.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE5inset2byAA5InsetVSo12UIEdgeInsetsV_tF":{"name":"inset(by:)","abstract":"\u003cp\u003eInsets the element by the given amount on each side.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE5inset7uniformAA5InsetV14CoreFoundation7CGFloatV_tF":{"name":"inset(uniform:)","abstract":"\u003cp\u003eInsets the element by the given amount on each side.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE5inset10horizontal8verticalAA5InsetV14CoreFoundation7CGFloatV_AKtF":{"name":"inset(horizontal:vertical:)","abstract":"\u003cp\u003eInsets the element by the given amount on each side.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE5keyedyAA5KeyedVs11AnyHashableVF":{"name":"keyed(_:)","abstract":"\u003cp\u003e\u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Keyed.html\"\u003eKeyed\u003c/a\u003e\u003c/code\u003e allows providing a \u003ccode\u003eHashable\u003c/code\u003e value which is used","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE8onAppearyAA17LifecycleObserverVyycF":{"name":"onAppear(_:)","abstract":"\u003cp\u003eAdds a hook that will be called when this element appears.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE11onDisappearyAA17LifecycleObserverVyycF":{"name":"onDisappear(_:)","abstract":"\u003cp\u003eAdds a hook that will be called when this element disappears.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE7opacityyAA7OpacityV14CoreFoundation7CGFloatVF":{"name":"opacity(_:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Opacity.html\"\u003eOpacity\u003c/a\u003e\u003c/code\u003e element with the provided opacity.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE12overlayChild3keyAA7OverlayV0E0Vs11AnyHashableVSg_tF":{"name":"overlayChild(key:)","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE16stackLayoutChild8priority14alignmentGuide3keyAA05StackE0V0F0VAK8PriorityO_14CoreFoundation7CGFloatVAA0C10DimensionsVcSgs11AnyHashableVSgtF":{"name":"stackLayoutChild(priority:alignmentGuide:key:)","abstract":"\u003cp\u003eWraps an element with a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/StackLayout/Child.html\"\u003eStackLayout.Child\u003c/a\u003e\u003c/code\u003e in order to customize \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/StackLayout/Traits.html\"\u003eStackLayout.Traits\u003c/a\u003e\u003c/code\u003e and the key.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE16stackLayoutChild8priorityAA05StackE0V0F0VAI8PriorityO_tF":{"name":"stackLayoutChild(priority:)","abstract":"\u003cp\u003eWraps an element with a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/StackLayout/Child.html\"\u003eStackLayout.Child\u003c/a\u003e\u003c/code\u003e in order to customize the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/StackLayout/Child/Priority.html\"\u003eStackLayout.Child.Priority\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE18tintAdjustmentModeyAA04TinteF0VSo06UIViewgeF0VF":{"name":"tintAdjustmentMode(_:)","abstract":"\u003cp\u003eConditionally modifies the tint adjustment mode of its wrapped element.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE11transformedyAA11TransformedVSo13CATransform3DVF":{"name":"transformed(_:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Transformed.html\"\u003eTransformed\u003c/a\u003e\u003c/code\u003e element with the provided 3D transform.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE11transformedyAA11TransformedVSo17CGAffineTransformVF":{"name":"transformed(_:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Transformed.html\"\u003eTransformed\u003c/a\u003e\u003c/code\u003e element with the provided 2D transform.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE10translated10translateX0E1Y0E1ZAA11TransformedV14CoreFoundation7CGFloatV_A2LtF":{"name":"translated(translateX:translateY:translateZ:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Transformed.html\"\u003eTransformed\u003c/a\u003e\u003c/code\u003e element that translates the receiver in 3D space.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE7rotated2byAA11TransformedV10Foundation11MeasurementVySo11NSUnitAngleCG_tF":{"name":"rotated(by:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Transformed.html\"\u003eTransformed\u003c/a\u003e\u003c/code\u003e element that rotates the receiver in 2D space.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE6scaled6scaleX0E1YAA11TransformedV14CoreFoundation7CGFloatV_AKtF":{"name":"scaled(scaleX:scaleY:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Transformed.html\"\u003eTransformed\u003c/a\u003e\u003c/code\u003e element that scales the receiver in 2D space.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE22userInteractionEnabledyAA04UsereF0VSbF":{"name":"userInteractionEnabled(_:)","abstract":"\u003cp\u003eConditionally enable user interaction of the wrapped element.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE18blockAccessibility10isBlockingAD0G7BlockerVSb_tF":{"name":"blockAccessibility(isBlocking:)","abstract":"\u003cp\u003eBlocks all accessibility on the element, so that it is","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE22accessibilityContainer10identifierAaB_pSSSg_tF":{"name":"accessibilityContainer(identifier:)","abstract":"\u003cp\u003eActs as an accessibility container for any subviews","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE013accessibilityC05label5value6traits4hint10identifier0F9FrameSize0fL11CornerStyle13customActions0P7ContentAD013AccessibilityC0VSSSg_AQShyAP5TraitOGA2QSo6CGSizeVSgAD3BoxV0nO0OSayAP12CustomActionVGSayAP0wR0VGtF":{"name":"accessibilityElement(label:value:traits:hint:identifier:accessibilityFrameSize:accessibilityFrameCornerStyle:customActions:customContent:)","abstract":"\u003cp\u003eWraps the receiver in an accessibility element with the provided values.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE13accessibility5label5value4hint10identifier6traits0F9FrameSizeAD013AccessibilityC0VSSSg_A3NShyAM5TraitOGSo6CGSizeVSgtF":{"name":"accessibility(label:value:hint:identifier:traits:accessibilityFrameSize:)","abstract":"\u003cp\u003eWraps the receiver in an accessibility element with the provided values.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE18accessibilityFocus2onAaB_pAD013AccessibilityG0V7TriggerC_tF":{"name":"accessibilityFocus(on:)","abstract":"\u003cp\u003eEnables VoiceOver focus to jump to the wrapped element via the trigger.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE12onLinkTappedyAaB_py10Foundation3URLVcF":{"name":"onLinkTapped(_:)","abstract":"\u003cp\u003eHandle links opened in any \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AttributedLabel.html\"\u003eAttributedLabel\u003c/a\u003e\u003c/code\u003e within this element using the provided closure.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE3box10background7corners11cornerCurve7borders6shadow12clipsContentAD3BoxVSo7UIColorC_AM11CornerStyleOAM0qJ0OAM06BorderR0OAM06ShadowR0OSbtF":{"name":"box(background:corners:cornerCurve:borders:shadow:clipsContent:)","abstract":"\u003cp\u003eWraps the element in a box to provide basic styling.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE11editingMenu4show4withAD07EditingG0VAI7GestureO_SayAD0jG4ItemVGyXEtF":{"name":"editingMenu(show:with:)","abstract":"\u003cp\u003eAllows showing the system\u0026rsquo;s \u003ccode\u003eUIMenuController\u003c/code\u003e editing menu upon long press of the wrapped element.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE10scrollable_9configureAD10ScrollViewVAH11ContentSizeO_yAHzXEtF":{"name":"scrollable(_:configure:)","abstract":"\u003cp\u003eWraps the element in a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/ScrollView.html\"\u003eScrollView\u003c/a\u003e\u003c/code\u003e to allow it to be scrolled","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE8tappable5onTapAD8TappableVyyc_tF":{"name":"tappable(onTap:)","abstract":"\u003cp\u003eWraps the element and calls the provided closure when tapped.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE10transition8onAppear0G9Disappear0G6LayoutAD19TransitionContainerVAA010VisibilityK0VSg_AmA0jK0OtF":{"name":"transition(onAppear:onDisappear:onLayout:)","abstract":"\u003cp\u003eWraps the element in a transition container to provide an animated transition.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE10transitionyAD19TransitionContainerVAA010VisibilityG0VF":{"name":"transition(_:)","abstract":"\u003cp\u003eWraps the element in a transition container to provide an animated transition when its visibility changes.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html":{"name":"Element","abstract":"\u003cp\u003eConforming types represent a rectangular content area in a two-dimensional"},"Protocols/ProxyElement.html":{"name":"ProxyElement","abstract":"\u003cp\u003eCustom elements commonly use another element to actually display content. For example, a profile element might"},"Structs/ElementContent.html":{"name":"ElementContent","abstract":"\u003cp\u003eRepresents the content of an element.\u003c/p\u003e"},"Structs/ViewDescription.html":{"name":"ViewDescription","abstract":"\u003cp\u003eContains a \u003cem\u003edescription\u003c/em\u003e of a UIView instance. A description includes"},"Enums/LayoutTransition.html":{"name":"LayoutTransition","abstract":"\u003cp\u003eThe transition used when layout attributes change for a view during an"},"Structs/VisibilityTransition.html":{"name":"VisibilityTransition","abstract":"\u003cp\u003eThe transition used when a view is inserted or removed during an update cycle.\u003c/p\u003e"},"Creating%20Custom%20Elements.html":{"name":"Creating Custom Elements"},"Displaying%20Elements.html":{"name":"Displaying Elements"},"Common%20Elements.html":{"name":"Common Elements"},"Environment.html":{"name":"Environment"},"Classes.html":{"name":"Classes","abstract":"\u003cp\u003eThe following classes are available globally.\u003c/p\u003e"},"Enums.html":{"name":"Enumerations","abstract":"\u003cp\u003eThe following enumerations are available globally.\u003c/p\u003e"},"Extensions.html":{"name":"Extensions","abstract":"\u003cp\u003eThe following extensions are available globally.\u003c/p\u003e"},"Protocols.html":{"name":"Protocols","abstract":"\u003cp\u003eThe following protocols are available globally.\u003c/p\u003e"},"Structs.html":{"name":"Structures","abstract":"\u003cp\u003eThe following structures are available globally.\u003c/p\u003e"},"Typealiases.html":{"name":"Type Aliases","abstract":"\u003cp\u003eThe following type aliases are available globally.\u003c/p\u003e"}}
\ No newline at end of file
diff --git a/docsets/Blueprint.docset/Contents/Resources/docSet.dsidx b/docsets/Blueprint.docset/Contents/Resources/docSet.dsidx
new file mode 100644
index 000000000..9ba41a769
Binary files /dev/null and b/docsets/Blueprint.docset/Contents/Resources/docSet.dsidx differ
diff --git a/docsets/Blueprint.tgz b/docsets/Blueprint.tgz
new file mode 100644
index 000000000..ae01b7e00
Binary files /dev/null and b/docsets/Blueprint.tgz differ
diff --git a/img/carat.png b/img/carat.png
new file mode 100755
index 000000000..29d2f7fd4
Binary files /dev/null and b/img/carat.png differ
diff --git a/img/dash.png b/img/dash.png
new file mode 100755
index 000000000..6f694c7a0
Binary files /dev/null and b/img/dash.png differ
diff --git a/img/gh.png b/img/gh.png
new file mode 100755
index 000000000..628da97c7
Binary files /dev/null and b/img/gh.png differ
diff --git a/img/spinner.gif b/img/spinner.gif
new file mode 100644
index 000000000..e3038d0a4
Binary files /dev/null and b/img/spinner.gif differ
diff --git a/index.html b/index.html
new file mode 100644
index 000000000..8d8e1c4c8
--- /dev/null
+++ b/index.html
@@ -0,0 +1,753 @@
+
+
+
+ Blueprint Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
In Xcode 11+, add Blueprint directly as a dependency to your project with
+File > Swift Packages > Add Package Dependency.... Provide the git URL when prompted: git@github.com:square/Blueprint.git.
+
Cocoapods
+
+
+
+
If you use CocoaPods to manage your dependencies, simply add BlueprintUI and BlueprintUICommonControls to your
+Podfile:
Blueprint provides an architecture that allows you to:
+
+
+
Declaratively define a UI hierarchy as pure values (Swift structs and enums).
+
Display that hierarchy within your application.
+
Update that hierarchy as application state changes (including animated transitions).
+
+
When should I use it?
+
+
Use Blueprint any time you want to display a view hierarchy, but don’t want to manage view lifecycle (hint: managing view lifecycle is a large portion of most conventional UIKit code). There are times when you want to manage view lifecycle (complex animations and transitions are a good example), and for these cases you may want to stick with a conventional approach.
+
How does it interact with UIKit?
+
+
Blueprint is not a replacement for UIKit! From the beginning, Blueprint has been designed as a compliment to all of the powerful tools that come with the platform. You can use Blueprint to manage the display of a single view controller, or of a single view representing a small part of the screen. Likewise, it’s straightforward to host standard views and controls within a blueprint hierarchy, always leaving you with an escape hatch.
Licensed under the Apache License, Version 2.0 (the “License”);
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an “AS IS” BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
");
+ $input.on("blur.tt", function($e) {
+ var active, isActive, hasActive;
+ active = document.activeElement;
+ isActive = $menu.is(active);
+ hasActive = $menu.has(active).length > 0;
+ if (_.isMsie() && (isActive || hasActive)) {
+ $e.preventDefault();
+ $e.stopImmediatePropagation();
+ _.defer(function() {
+ $input.focus();
+ });
+ }
+ });
+ $menu.on("mousedown.tt", function($e) {
+ $e.preventDefault();
+ });
+ },
+ _onSelectableClicked: function onSelectableClicked(type, $el) {
+ this.select($el);
+ },
+ _onDatasetCleared: function onDatasetCleared() {
+ this._updateHint();
+ },
+ _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) {
+ this._updateHint();
+ if (this.autoselect) {
+ var cursorClass = this.selectors.cursor.substr(1);
+ this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass);
+ }
+ this.eventBus.trigger("render", suggestions, async, dataset);
+ },
+ _onAsyncRequested: function onAsyncRequested(type, dataset, query) {
+ this.eventBus.trigger("asyncrequest", query, dataset);
+ },
+ _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) {
+ this.eventBus.trigger("asynccancel", query, dataset);
+ },
+ _onAsyncReceived: function onAsyncReceived(type, dataset, query) {
+ this.eventBus.trigger("asyncreceive", query, dataset);
+ },
+ _onFocused: function onFocused() {
+ this._minLengthMet() && this.menu.update(this.input.getQuery());
+ },
+ _onBlurred: function onBlurred() {
+ if (this.input.hasQueryChangedSinceLastFocus()) {
+ this.eventBus.trigger("change", this.input.getQuery());
+ }
+ },
+ _onEnterKeyed: function onEnterKeyed(type, $e) {
+ var $selectable;
+ if ($selectable = this.menu.getActiveSelectable()) {
+ if (this.select($selectable)) {
+ $e.preventDefault();
+ $e.stopPropagation();
+ }
+ } else if (this.autoselect) {
+ if (this.select(this.menu.getTopSelectable())) {
+ $e.preventDefault();
+ $e.stopPropagation();
+ }
+ }
+ },
+ _onTabKeyed: function onTabKeyed(type, $e) {
+ var $selectable;
+ if ($selectable = this.menu.getActiveSelectable()) {
+ this.select($selectable) && $e.preventDefault();
+ } else if (this.autoselect) {
+ if ($selectable = this.menu.getTopSelectable()) {
+ this.autocomplete($selectable) && $e.preventDefault();
+ }
+ }
+ },
+ _onEscKeyed: function onEscKeyed() {
+ this.close();
+ },
+ _onUpKeyed: function onUpKeyed() {
+ this.moveCursor(-1);
+ },
+ _onDownKeyed: function onDownKeyed() {
+ this.moveCursor(+1);
+ },
+ _onLeftKeyed: function onLeftKeyed() {
+ if (this.dir === "rtl" && this.input.isCursorAtEnd()) {
+ this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable());
+ }
+ },
+ _onRightKeyed: function onRightKeyed() {
+ if (this.dir === "ltr" && this.input.isCursorAtEnd()) {
+ this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable());
+ }
+ },
+ _onQueryChanged: function onQueryChanged(e, query) {
+ this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty();
+ },
+ _onWhitespaceChanged: function onWhitespaceChanged() {
+ this._updateHint();
+ },
+ _onLangDirChanged: function onLangDirChanged(e, dir) {
+ if (this.dir !== dir) {
+ this.dir = dir;
+ this.menu.setLanguageDirection(dir);
+ }
+ },
+ _openIfActive: function openIfActive() {
+ this.isActive() && this.open();
+ },
+ _minLengthMet: function minLengthMet(query) {
+ query = _.isString(query) ? query : this.input.getQuery() || "";
+ return query.length >= this.minLength;
+ },
+ _updateHint: function updateHint() {
+ var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match;
+ $selectable = this.menu.getTopSelectable();
+ data = this.menu.getSelectableData($selectable);
+ val = this.input.getInputValue();
+ if (data && !_.isBlankString(val) && !this.input.hasOverflow()) {
+ query = Input.normalizeQuery(val);
+ escapedQuery = _.escapeRegExChars(query);
+ frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i");
+ match = frontMatchRegEx.exec(data.val);
+ match && this.input.setHint(val + match[1]);
+ } else {
+ this.input.clearHint();
+ }
+ },
+ isEnabled: function isEnabled() {
+ return this.enabled;
+ },
+ enable: function enable() {
+ this.enabled = true;
+ },
+ disable: function disable() {
+ this.enabled = false;
+ },
+ isActive: function isActive() {
+ return this.active;
+ },
+ activate: function activate() {
+ if (this.isActive()) {
+ return true;
+ } else if (!this.isEnabled() || this.eventBus.before("active")) {
+ return false;
+ } else {
+ this.active = true;
+ this.eventBus.trigger("active");
+ return true;
+ }
+ },
+ deactivate: function deactivate() {
+ if (!this.isActive()) {
+ return true;
+ } else if (this.eventBus.before("idle")) {
+ return false;
+ } else {
+ this.active = false;
+ this.close();
+ this.eventBus.trigger("idle");
+ return true;
+ }
+ },
+ isOpen: function isOpen() {
+ return this.menu.isOpen();
+ },
+ open: function open() {
+ if (!this.isOpen() && !this.eventBus.before("open")) {
+ this.input.setAriaExpanded(true);
+ this.menu.open();
+ this._updateHint();
+ this.eventBus.trigger("open");
+ }
+ return this.isOpen();
+ },
+ close: function close() {
+ if (this.isOpen() && !this.eventBus.before("close")) {
+ this.input.setAriaExpanded(false);
+ this.menu.close();
+ this.input.clearHint();
+ this.input.resetInputValue();
+ this.eventBus.trigger("close");
+ }
+ return !this.isOpen();
+ },
+ setVal: function setVal(val) {
+ this.input.setQuery(_.toStr(val));
+ },
+ getVal: function getVal() {
+ return this.input.getQuery();
+ },
+ select: function select($selectable) {
+ var data = this.menu.getSelectableData($selectable);
+ if (data && !this.eventBus.before("select", data.obj, data.dataset)) {
+ this.input.setQuery(data.val, true);
+ this.eventBus.trigger("select", data.obj, data.dataset);
+ this.close();
+ return true;
+ }
+ return false;
+ },
+ autocomplete: function autocomplete($selectable) {
+ var query, data, isValid;
+ query = this.input.getQuery();
+ data = this.menu.getSelectableData($selectable);
+ isValid = data && query !== data.val;
+ if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) {
+ this.input.setQuery(data.val);
+ this.eventBus.trigger("autocomplete", data.obj, data.dataset);
+ return true;
+ }
+ return false;
+ },
+ moveCursor: function moveCursor(delta) {
+ var query, $candidate, data, suggestion, datasetName, cancelMove, id;
+ query = this.input.getQuery();
+ $candidate = this.menu.selectableRelativeToCursor(delta);
+ data = this.menu.getSelectableData($candidate);
+ suggestion = data ? data.obj : null;
+ datasetName = data ? data.dataset : null;
+ id = $candidate ? $candidate.attr("id") : null;
+ this.input.trigger("cursorchange", id);
+ cancelMove = this._minLengthMet() && this.menu.update(query);
+ if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) {
+ this.menu.setCursor($candidate);
+ if (data) {
+ if (typeof data.val === "string") {
+ this.input.setInputValue(data.val);
+ }
+ } else {
+ this.input.resetInputValue();
+ this._updateHint();
+ }
+ this.eventBus.trigger("cursorchange", suggestion, datasetName);
+ return true;
+ }
+ return false;
+ },
+ destroy: function destroy() {
+ this.input.destroy();
+ this.menu.destroy();
+ }
+ });
+ return Typeahead;
+ function c(ctx) {
+ var methods = [].slice.call(arguments, 1);
+ return function() {
+ var args = [].slice.call(arguments);
+ _.each(methods, function(method) {
+ return ctx[method].apply(ctx, args);
+ });
+ };
+ }
+ }();
+ (function() {
+ "use strict";
+ var old, keys, methods;
+ old = $.fn.typeahead;
+ keys = {
+ www: "tt-www",
+ attrs: "tt-attrs",
+ typeahead: "tt-typeahead"
+ };
+ methods = {
+ initialize: function initialize(o, datasets) {
+ var www;
+ datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1);
+ o = o || {};
+ www = WWW(o.classNames);
+ return this.each(attach);
+ function attach() {
+ var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor;
+ _.each(datasets, function(d) {
+ d.highlight = !!o.highlight;
+ });
+ $input = $(this);
+ $wrapper = $(www.html.wrapper);
+ $hint = $elOrNull(o.hint);
+ $menu = $elOrNull(o.menu);
+ defaultHint = o.hint !== false && !$hint;
+ defaultMenu = o.menu !== false && !$menu;
+ defaultHint && ($hint = buildHintFromInput($input, www));
+ defaultMenu && ($menu = $(www.html.menu).css(www.css.menu));
+ $hint && $hint.val("");
+ $input = prepInput($input, www);
+ if (defaultHint || defaultMenu) {
+ $wrapper.css(www.css.wrapper);
+ $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint);
+ $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null);
+ }
+ MenuConstructor = defaultMenu ? DefaultMenu : Menu;
+ eventBus = new EventBus({
+ el: $input
+ });
+ input = new Input({
+ hint: $hint,
+ input: $input,
+ menu: $menu
+ }, www);
+ menu = new MenuConstructor({
+ node: $menu,
+ datasets: datasets
+ }, www);
+ status = new Status({
+ $input: $input,
+ menu: menu
+ });
+ typeahead = new Typeahead({
+ input: input,
+ menu: menu,
+ eventBus: eventBus,
+ minLength: o.minLength,
+ autoselect: o.autoselect
+ }, www);
+ $input.data(keys.www, www);
+ $input.data(keys.typeahead, typeahead);
+ }
+ },
+ isEnabled: function isEnabled() {
+ var enabled;
+ ttEach(this.first(), function(t) {
+ enabled = t.isEnabled();
+ });
+ return enabled;
+ },
+ enable: function enable() {
+ ttEach(this, function(t) {
+ t.enable();
+ });
+ return this;
+ },
+ disable: function disable() {
+ ttEach(this, function(t) {
+ t.disable();
+ });
+ return this;
+ },
+ isActive: function isActive() {
+ var active;
+ ttEach(this.first(), function(t) {
+ active = t.isActive();
+ });
+ return active;
+ },
+ activate: function activate() {
+ ttEach(this, function(t) {
+ t.activate();
+ });
+ return this;
+ },
+ deactivate: function deactivate() {
+ ttEach(this, function(t) {
+ t.deactivate();
+ });
+ return this;
+ },
+ isOpen: function isOpen() {
+ var open;
+ ttEach(this.first(), function(t) {
+ open = t.isOpen();
+ });
+ return open;
+ },
+ open: function open() {
+ ttEach(this, function(t) {
+ t.open();
+ });
+ return this;
+ },
+ close: function close() {
+ ttEach(this, function(t) {
+ t.close();
+ });
+ return this;
+ },
+ select: function select(el) {
+ var success = false, $el = $(el);
+ ttEach(this.first(), function(t) {
+ success = t.select($el);
+ });
+ return success;
+ },
+ autocomplete: function autocomplete(el) {
+ var success = false, $el = $(el);
+ ttEach(this.first(), function(t) {
+ success = t.autocomplete($el);
+ });
+ return success;
+ },
+ moveCursor: function moveCursoe(delta) {
+ var success = false;
+ ttEach(this.first(), function(t) {
+ success = t.moveCursor(delta);
+ });
+ return success;
+ },
+ val: function val(newVal) {
+ var query;
+ if (!arguments.length) {
+ ttEach(this.first(), function(t) {
+ query = t.getVal();
+ });
+ return query;
+ } else {
+ ttEach(this, function(t) {
+ t.setVal(_.toStr(newVal));
+ });
+ return this;
+ }
+ },
+ destroy: function destroy() {
+ ttEach(this, function(typeahead, $input) {
+ revert($input);
+ typeahead.destroy();
+ });
+ return this;
+ }
+ };
+ $.fn.typeahead = function(method) {
+ if (methods[method]) {
+ return methods[method].apply(this, [].slice.call(arguments, 1));
+ } else {
+ return methods.initialize.apply(this, arguments);
+ }
+ };
+ $.fn.typeahead.noConflict = function noConflict() {
+ $.fn.typeahead = old;
+ return this;
+ };
+ function ttEach($els, fn) {
+ $els.each(function() {
+ var $input = $(this), typeahead;
+ (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input);
+ });
+ }
+ function buildHintFromInput($input, www) {
+ return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({
+ readonly: true,
+ required: false
+ }).removeAttr("id name placeholder").removeClass("required").attr({
+ spellcheck: "false",
+ tabindex: -1
+ });
+ }
+ function prepInput($input, www) {
+ $input.data(keys.attrs, {
+ dir: $input.attr("dir"),
+ autocomplete: $input.attr("autocomplete"),
+ spellcheck: $input.attr("spellcheck"),
+ style: $input.attr("style")
+ });
+ $input.addClass(www.classes.input).attr({
+ spellcheck: false
+ });
+ try {
+ !$input.attr("dir") && $input.attr("dir", "auto");
+ } catch (e) {}
+ return $input;
+ }
+ function getBackgroundStyles($el) {
+ return {
+ backgroundAttachment: $el.css("background-attachment"),
+ backgroundClip: $el.css("background-clip"),
+ backgroundColor: $el.css("background-color"),
+ backgroundImage: $el.css("background-image"),
+ backgroundOrigin: $el.css("background-origin"),
+ backgroundPosition: $el.css("background-position"),
+ backgroundRepeat: $el.css("background-repeat"),
+ backgroundSize: $el.css("background-size")
+ };
+ }
+ function revert($input) {
+ var www, $wrapper;
+ www = $input.data(keys.www);
+ $wrapper = $input.parent().filter(www.selectors.wrapper);
+ _.each($input.data(keys.attrs), function(val, key) {
+ _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val);
+ });
+ $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input);
+ if ($wrapper.length) {
+ $input.detach().insertAfter($wrapper);
+ $wrapper.remove();
+ }
+ }
+ function $elOrNull(obj) {
+ var isValid, $el;
+ isValid = _.isJQuery(obj) || _.isElement(obj);
+ $el = isValid ? $(obj).first() : [];
+ return $el.length ? $el : null;
+ }
+ })();
+});
\ No newline at end of file
diff --git a/search.json b/search.json
new file mode 100644
index 000000000..bd22c5142
--- /dev/null
+++ b/search.json
@@ -0,0 +1 @@
+{"Typealiases.html#/s:11BlueprintUI14ElementBuildera":{"name":"ElementBuilder","abstract":"\u003cp\u003eResult builder for working with elements that conform to \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/ElementBuilderChild.html\"\u003eElementBuilderChild\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e"},"Typealiases.html#/s:11BlueprintUI17LayoutSubelementsa":{"name":"LayoutSubelements","abstract":"\u003cp\u003eA collection of proxy values that represent the child elements of a layout.\u003c/p\u003e"},"Typealiases.html#/s:11BlueprintUI17LifecycleCallbacka":{"name":"LifecycleCallback","abstract":"\u003cp\u003eThis is the type used by all lifecycle callback hooks.\u003c/p\u003e"},"Structs/TextShadow.html#/s:25BlueprintUICommonControls10TextShadowV6radius14CoreFoundation7CGFloatVvp":{"name":"radius","abstract":"\u003cp\u003eThe blur radius of the shadow.\u003c/p\u003e","parent_name":"TextShadow"},"Structs/TextShadow.html#/s:25BlueprintUICommonControls10TextShadowV7opacity14CoreFoundation7CGFloatVvp":{"name":"opacity","abstract":"\u003cp\u003eThe opacity of the shadow.\u003c/p\u003e","parent_name":"TextShadow"},"Structs/TextShadow.html#/s:25BlueprintUICommonControls10TextShadowV6offsetSo8UIOffsetVvp":{"name":"offset","abstract":"\u003cp\u003eThe offset of the shadow.\u003c/p\u003e","parent_name":"TextShadow"},"Structs/TextShadow.html#/s:25BlueprintUICommonControls10TextShadowV5colorSo7UIColorCvp":{"name":"color","abstract":"\u003cp\u003eThe color of the shadow.\u003c/p\u003e","parent_name":"TextShadow"},"Structs/TextShadow.html#/s:25BlueprintUICommonControls10TextShadowV6radius7opacity6offset5colorAC14CoreFoundation7CGFloatV_AJSo8UIOffsetVSo7UIColorCtcfc":{"name":"init(radius:opacity:offset:color:)","parent_name":"TextShadow"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO3cutyA2GmF":{"name":"cut","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO4copyyA2GmF":{"name":"copy","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO5pasteyA2GmF":{"name":"paste","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO6deleteyA2GmF":{"name":"delete","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO6selectyA2GmF":{"name":"select","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO9selectAllyA2GmF":{"name":"selectAll","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO14toggleBoldfaceyA2GmF":{"name":"toggleBoldface","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO13toggleItalicsyA2GmF":{"name":"toggleItalics","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO15toggleUnderlineyA2GmF":{"name":"toggleUnderline","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO12increaseSizeyA2GmF":{"name":"increaseSize","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO12decreaseSizeyA2GmF":{"name":"decreaseSize","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO12printContentyA2GmF":{"name":"printContent","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO10pasteAndGoyA2GmF":{"name":"pasteAndGo","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO18pasteAndMatchStyleyA2GmF":{"name":"pasteAndMatchStyle","parent_name":"System"},"Structs/EditingMenuItem/Kind/System.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6SystemO14pasteAndSearchyA2GmF":{"name":"pasteAndSearch","parent_name":"System"},"Structs/EditingMenuItem/Kind.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6systemyA2E6SystemOcAEmF":{"name":"system(_:)","abstract":"\u003cp\u003eA standard system item.\u003c/p\u003e","parent_name":"Kind"},"Structs/EditingMenuItem/Kind.html#/s:25BlueprintUICommonControls15EditingMenuItemV4KindO6customyAESScAEmF":{"name":"custom(_:)","abstract":"\u003cp\u003eA custom item with a custom title.\u003c/p\u003e","parent_name":"Kind"},"Structs/EditingMenuItem/Kind/System.html":{"name":"System","abstract":"\u003cp\u003eThe system menu item kinds supported by an editing menu.\u003c/p\u003e","parent_name":"Kind"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV4kindAC4KindOvp":{"name":"kind","abstract":"\u003cp\u003eThe type of menu item.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV8onSelectyycvp":{"name":"onSelect","abstract":"\u003cp\u003eA callback, invoked when the user selects the menu item.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV5title8onSelectACSS_yyctcfc":{"name":"init(title:onSelect:)","abstract":"\u003cp\u003eCreates a new menu item of the given kind.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV_8onSelectA2C4KindO6SystemO_yyctcfc":{"name":"init(_:onSelect:)","abstract":"\u003cp\u003eCreates a new menu item of the given kind.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV7copying_2toACSS_So12UIPasteboardCSgtFZ":{"name":"copying(_:to:)","abstract":"\u003cp\u003eA \u003ccode\u003e.copy\u003c/code\u003e type item, which will copy the given string to the provided pasteboard.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV7copying_2toACSo7UIImageC_So12UIPasteboardCSgtFZ":{"name":"copying(_:to:)","abstract":"\u003cp\u003eA \u003ccode\u003e.copy\u003c/code\u003e type item, which will copy the given image to the provided pasteboard.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem.html#/s:25BlueprintUICommonControls15EditingMenuItemV7copying_2toAC10Foundation3URLV_So12UIPasteboardCSgtFZ":{"name":"copying(_:to:)","abstract":"\u003cp\u003eA \u003ccode\u003e.copy\u003c/code\u003e type item, which will copy the given url to the provided pasteboard.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenuItem/Kind.html":{"name":"Kind","abstract":"\u003cp\u003eThe menu item types you may place into a menu.\u003c/p\u003e","parent_name":"EditingMenuItem"},"Structs/EditingMenu/MenuTrigger.html#/s:25BlueprintUICommonControls11EditingMenuV0E7TriggerC4showyyF":{"name":"show()","abstract":"\u003cp\u003eCall this method to show the menu.\u003c/p\u003e","parent_name":"MenuTrigger"},"Structs/EditingMenu/Gesture.html#/s:25BlueprintUICommonControls11EditingMenuV7GestureO5onTapyA2EmF":{"name":"onTap","abstract":"\u003cp\u003eThe menu will be shown when the element is tapped.\u003c/p\u003e","parent_name":"Gesture"},"Structs/EditingMenu/Gesture.html#/s:25BlueprintUICommonControls11EditingMenuV7GestureO11onLongPressyA2EmF":{"name":"onLongPress","abstract":"\u003cp\u003eThe menu will be shown when the element is long pressed.\u003c/p\u003e","parent_name":"Gesture"},"Structs/EditingMenu.html#/s:25BlueprintUICommonControls11EditingMenuV7wrapped0A2UI7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe wrapped element to display.\u003c/p\u003e","parent_name":"EditingMenu"},"Structs/EditingMenu.html#/s:25BlueprintUICommonControls11EditingMenuV5itemsSayAA0dE4ItemVGvp":{"name":"items","abstract":"\u003cp\u003eThe editing items to show in the editing menu.\u003c/p\u003e","parent_name":"EditingMenu"},"Structs/EditingMenu.html#/s:25BlueprintUICommonControls11EditingMenuV4show8wrapping4withA2C7GestureO_0A2UI7Element_pSayAA0dE4ItemVGyXEtcfc":{"name":"init(show:wrapping:with:)","abstract":"\u003cp\u003eCreates a new editing menu, wrapping the provided element, and displaying the provided items.\u003c/p\u003e","parent_name":"EditingMenu"},"Structs/EditingMenu.html#/s:25BlueprintUICommonControls11EditingMenuV8wrapping5itemsAC0A2UI7Element_pAC0E7TriggerCXE_SayAA0dE4ItemVGyXEtcfc":{"name":"init(wrapping:items:)","abstract":"\u003cp\u003eCreates a new editing menu, wrapping the provided element, and displaying the provided items.\u003c/p\u003e","parent_name":"EditingMenu"},"Structs/EditingMenu.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"EditingMenu"},"Structs/EditingMenu.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"EditingMenu"},"Structs/EditingMenu/Gesture.html":{"name":"Gesture","abstract":"\u003cp\u003eThe gesture to use to show the menu.\u003c/p\u003e","parent_name":"EditingMenu"},"Structs/EditingMenu/MenuTrigger.html":{"name":"MenuTrigger","abstract":"\u003cp\u003eA trigger that you can use to show the menu based on the result of some other","parent_name":"EditingMenu"},"Structs/URLHandlerEnvironmentKey.html#/s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ":{"name":"defaultValue","parent_name":"URLHandlerEnvironmentKey"},"Structs/AccessibilityFocus/Trigger.html#/s:25BlueprintUICommonControls18AccessibilityFocusV7TriggerC16notificationTypeSo28UIAccessibilityNotificationsavp":{"name":"notificationType","abstract":"\u003cp\u003eThe type of accessibility notification that will be triggered.\u003c/p\u003e","parent_name":"Trigger"},"Structs/AccessibilityFocus/Trigger.html#/s:25BlueprintUICommonControls18AccessibilityFocusV7TriggerC10identifiers11AnyHashableVSgvp":{"name":"identifier","abstract":"\u003cp\u003eAn optional identifier for the trigger.\u003c/p\u003e","parent_name":"Trigger"},"Structs/AccessibilityFocus/Trigger.html#/s:25BlueprintUICommonControls18AccessibilityFocusV7TriggerC16notificationType10identifierAESo28UIAccessibilityNotificationsa_s11AnyHashableVSgtcfc":{"name":"init(notificationType:identifier:)","abstract":"\u003cp\u003eCreates a new trigger for the purpose of changing accessibility focus.\u003c/p\u003e","parent_name":"Trigger"},"Structs/AccessibilityFocus/Trigger.html#/s:25BlueprintUICommonControls18AccessibilityFocusV7TriggerC5focusyyF":{"name":"focus()","abstract":"\u003cp\u003eManually fire the trigger\u003c/p\u003e","parent_name":"Trigger"},"Structs/AccessibilityFocus.html#/s:25BlueprintUICommonControls18AccessibilityFocusV7wrapped0A2UI7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe element that will have the focus.\u003c/p\u003e","parent_name":"AccessibilityFocus"},"Structs/AccessibilityFocus.html#/s:25BlueprintUICommonControls18AccessibilityFocusV7triggerAC7TriggerCvp":{"name":"trigger","abstract":"\u003cp\u003eA object that can be held on to by the caller to manually trigger a focus.\u003c/p\u003e","parent_name":"AccessibilityFocus"},"Structs/AccessibilityFocus.html#/s:25BlueprintUICommonControls18AccessibilityFocusV8wrapping7triggerAC0A2UI7Element_p_AC7TriggerCtcfc":{"name":"init(wrapping:trigger:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eAccessibilityFocus\u003c/code\u003e wrapping the provided element.\u003c/p\u003e","parent_name":"AccessibilityFocus"},"Structs/AccessibilityFocus.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"AccessibilityFocus"},"Structs/AccessibilityFocus.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"AccessibilityFocus"},"Structs/AccessibilityFocus/Trigger.html":{"name":"Trigger","abstract":"\u003cp\u003eA trigger that can be used to manually fire an accessibility focus.\u003c/p\u003e","parent_name":"AccessibilityFocus"},"Structs/AnimationAttributes.html#/s:11BlueprintUI19AnimationAttributesV8durationSdvp":{"name":"duration","abstract":"\u003cp\u003eThe duration of the animation.\u003c/p\u003e","parent_name":"AnimationAttributes"},"Structs/AnimationAttributes.html#/s:11BlueprintUI19AnimationAttributesV5curveSo06UIViewC5CurveVvp":{"name":"curve","abstract":"\u003cp\u003eThe timing curve of the animation.\u003c/p\u003e","parent_name":"AnimationAttributes"},"Structs/AnimationAttributes.html#/s:11BlueprintUI19AnimationAttributesV20allowUserInteractionSbvp":{"name":"allowUserInteraction","abstract":"\u003cp\u003eWhether the view supports user interaction during the animation.\u003c/p\u003e","parent_name":"AnimationAttributes"},"Structs/AnimationAttributes.html#/s:11BlueprintUI19AnimationAttributesV7defaultACvpZ":{"name":"default","parent_name":"AnimationAttributes"},"Structs/AnimationAttributes.html#/s:11BlueprintUI19AnimationAttributesV8duration5curve20allowUserInteractionACSd_So06UIViewC5CurveVSbtcfc":{"name":"init(duration:curve:allowUserInteraction:)","parent_name":"AnimationAttributes"},"Structs/SizeConstraint/UnconstrainedInfiniteAxis.html#/s:11BlueprintUI14SizeConstraintV25UnconstrainedInfiniteAxisV12wrappedValueAC0G0Ovp":{"name":"wrappedValue","parent_name":"UnconstrainedInfiniteAxis"},"Structs/SizeConstraint/UnconstrainedInfiniteAxis.html#/s:11BlueprintUI14SizeConstraintV25UnconstrainedInfiniteAxisV12wrappedValueAeC0G0O_tcfc":{"name":"init(wrappedValue:)","parent_name":"UnconstrainedInfiniteAxis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO6atMostyAE14CoreFoundation7CGFloatVcAEmF":{"name":"atMost(_:)","abstract":"\u003cp\u003eThe measurement should treat the associated value as the largest","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO13unconstrainedyA2EmF":{"name":"unconstrained","abstract":"\u003cp\u003eThe measurement is unconstrained in the given dimension.\u003c/p\u003e","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO7maximum14CoreFoundation7CGFloatVvp":{"name":"maximum","abstract":"\u003cp\u003eThe maximum magnitude in the given dimension.\u003c/p\u003e","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO7minimum14CoreFoundation7CGFloatVvp":{"name":"minimum","abstract":"\u003cp\u003eThe minimum magnitude in the given dimension.\u003c/p\u003e","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO16constrainedValue14CoreFoundation7CGFloatVSgvp":{"name":"constrainedValue","abstract":"\u003cp\u003eThe constraint value in this dimension, or \u003ccode\u003enil\u003c/code\u003e if this dimension is unconstrained.\u003c/p\u003e","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO1poiyA2E_14CoreFoundation7CGFloatVtFZ":{"name":"+(_:_:)","abstract":"\u003cp\u003eAdds a scalar value to an Axis. If the Axis is unconstrained the","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO1soiyA2E_14CoreFoundation7CGFloatVtFZ":{"name":"-(_:_:)","abstract":"\u003cp\u003eSubtracts a scalar value from an Axis. If the Axis is unconstrained","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO1doiyA2E_14CoreFoundation7CGFloatVtFZ":{"name":"/(_:_:)","abstract":"\u003cp\u003eDivides an Axis by a scalar value. If the Axis is unconstrained the","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO1moiyA2E_14CoreFoundation7CGFloatVtFZ":{"name":"*(_:_:)","abstract":"\u003cp\u003eMultiplies an Axis by a scalar value. If the Axis is unconstrained","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO17isGreaterThanZeroSbvp":{"name":"isGreaterThanZero","abstract":"\u003cp\u003eIf the \u003ccode\u003eAxis\u003c/code\u003e is greater than zero.\u003c/p\u003e","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO2peoiyyAEz_14CoreFoundation7CGFloatVtFZ":{"name":"+=(_:_:)","abstract":"\u003cp\u003eAdds a scalar value to an Axis. If the Axis is unconstrained the","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO2seoiyyAEz_14CoreFoundation7CGFloatVtFZ":{"name":"-=(_:_:)","abstract":"\u003cp\u003eSubtracts a scalar value from an Axis. If the Axis is unconstrained","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO2deoiyyAEz_14CoreFoundation7CGFloatVtFZ":{"name":"/=(_:_:)","abstract":"\u003cp\u003eDivides an Axis by a scalar value. If the Axis is unconstrained the","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:11BlueprintUI14SizeConstraintV4AxisO2meoiyyAEz_14CoreFoundation7CGFloatVtFZ":{"name":"*=(_:_:)","abstract":"\u003cp\u003eMultiplies an Axis by a scalar value. If the Axis is unconstrained","parent_name":"Axis"},"Structs/SizeConstraint/Axis.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"Axis"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV5widthAC4AxisOvp":{"name":"width","abstract":"\u003cp\u003eThe width constraint.\u003c/p\u003e","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV6heightAC4AxisOvp":{"name":"height","abstract":"\u003cp\u003eThe height constraint.\u003c/p\u003e","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV5width6heightA2C4AxisO_AGtcfc":{"name":"init(width:height:)","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV13unconstrainedACvpZ":{"name":"unconstrained","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintVyACSo6CGSizeVcfc":{"name":"init(_:)","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV5widthAC14CoreFoundation7CGFloatV_tcfc":{"name":"init(width:)","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV6heightAC14CoreFoundation7CGFloatV_tcfc":{"name":"init(height:)","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV7minimumSo6CGSizeVvp":{"name":"minimum","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV7maximumSo6CGSizeVvp":{"name":"maximum","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV5inset5width6heightAC14CoreFoundation7CGFloatV_AItF":{"name":"inset(width:height:)","parent_name":"SizeConstraint"},"Structs/SizeConstraint.html#/s:11BlueprintUI14SizeConstraintV5inset2byACSo12UIEdgeInsetsV_tF":{"name":"inset(by:)","parent_name":"SizeConstraint"},"Structs/SizeConstraint/Axis.html":{"name":"Axis","abstract":"\u003cp\u003eRepresents a size constraint for a single axis.\u003c/p\u003e","parent_name":"SizeConstraint"},"Structs/SizeConstraint/UnconstrainedInfiniteAxis.html":{"name":"UnconstrainedInfiniteAxis","abstract":"\u003cp\u003eThis property wrapper checks the value of \u003ccode\u003eatMost\u003c/code\u003e cases, and turns it into an","parent_name":"SizeConstraint"},"Structs/UserInteractionEnabled.html#/s:11BlueprintUI22UserInteractionEnabledV02isE0Sbvp":{"name":"isEnabled","parent_name":"UserInteractionEnabled"},"Structs/UserInteractionEnabled.html#/s:11BlueprintUI22UserInteractionEnabledV14wrappedElementAA0G0_pvp":{"name":"wrappedElement","parent_name":"UserInteractionEnabled"},"Structs/UserInteractionEnabled.html#/s:11BlueprintUI22UserInteractionEnabledV_8wrappingACSb_AA7Element_ptcfc":{"name":"init(_:wrapping:)","parent_name":"UserInteractionEnabled"},"Structs/UserInteractionEnabled.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"UserInteractionEnabled"},"Structs/UserInteractionEnabled.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"UserInteractionEnabled"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV1x14CoreFoundation7CGFloatVvp":{"name":"x","abstract":"\u003cp\u003eThe normalized distance from the origin to the point in the horizontal direction.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV1y14CoreFoundation7CGFloatVvp":{"name":"y","abstract":"\u003cp\u003eThe normalized distance from the origin to the point in the vertical direction.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV1x1yAC14CoreFoundation7CGFloatV_AHtcfc":{"name":"init(x:y:)","abstract":"\u003cp\u003eCreates a unit point with the specified horizontal and vertical offsets.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV4zeroACvpZ":{"name":"zero","abstract":"\u003cp\u003eThe origin of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV6centerACvpZ":{"name":"center","abstract":"\u003cp\u003eA point that’s centered in an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV7leadingACvpZ":{"name":"leading","abstract":"\u003cp\u003eA point that’s centered vertically on the leading edge of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV8trailingACvpZ":{"name":"trailing","abstract":"\u003cp\u003eA point that’s centered vertically on the trailing edge of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV3topACvpZ":{"name":"top","abstract":"\u003cp\u003eA point that’s centered horizontally on the top edge of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV6bottomACvpZ":{"name":"bottom","abstract":"\u003cp\u003eA point that’s centered horizontally on the bottom edge of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV10topLeadingACvpZ":{"name":"topLeading","abstract":"\u003cp\u003eA point that’s in the top leading corner of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV11topTrailingACvpZ":{"name":"topTrailing","abstract":"\u003cp\u003eA point that’s in the top trailing corner of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV13bottomLeadingACvpZ":{"name":"bottomLeading","abstract":"\u003cp\u003eA point that’s in the bottom leading corner of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/UnitPoint.html#/s:11BlueprintUI9UnitPointV14bottomTrailingACvpZ":{"name":"bottomTrailing","abstract":"\u003cp\u003eA point that’s in the bottom trailing corner of an element.\u003c/p\u003e","parent_name":"UnitPoint"},"Structs/Transformed.html#/s:11BlueprintUI11TransformedV14wrappedElementAA0E0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe content element whose transform is being affected.\u003c/p\u003e","parent_name":"Transformed"},"Structs/Transformed.html#/s:11BlueprintUI11TransformedV9transformSo13CATransform3DVvp":{"name":"transform","abstract":"\u003cp\u003eThe transform of the wrapped element.\u003c/p\u003e","parent_name":"Transformed"},"Structs/Transformed.html#/s:11BlueprintUI11TransformedV9transform8wrappingACSo13CATransform3DV_AA7Element_ptcfc":{"name":"init(transform:wrapping:)","abstract":"\u003cp\u003eInitializes a \u003ccode\u003eTransformed\u003c/code\u003e with the given content element and 3D transform.\u003c/p\u003e","parent_name":"Transformed"},"Structs/Transformed.html#/s:11BlueprintUI11TransformedV9transform8wrappingACSo17CGAffineTransformV_AA7Element_ptcfc":{"name":"init(transform:wrapping:)","abstract":"\u003cp\u003eInitializes a \u003ccode\u003eTransformed\u003c/code\u003e with the given content element and DD transform.\u003c/p\u003e","parent_name":"Transformed"},"Structs/Transformed.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Transformed"},"Structs/Transformed.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Transformed"},"Structs/TintAdjustmentMode.html#/s:11BlueprintUI18TintAdjustmentModeV04tintdE0So06UIViewcdE0Vvp":{"name":"tintAdjustmentMode","parent_name":"TintAdjustmentMode"},"Structs/TintAdjustmentMode.html#/s:11BlueprintUI18TintAdjustmentModeV14wrappedElementAA0G0_pvp":{"name":"wrappedElement","parent_name":"TintAdjustmentMode"},"Structs/TintAdjustmentMode.html#/s:11BlueprintUI18TintAdjustmentModeV_8wrappingACSo06UIViewcdE0V_AA7Element_ptcfc":{"name":"init(_:wrapping:)","parent_name":"TintAdjustmentMode"},"Structs/TintAdjustmentMode.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"TintAdjustmentMode"},"Structs/TintAdjustmentMode.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"TintAdjustmentMode"},"Structs/StackLayout/Child/Priority.html#/s:11BlueprintUI11StackLayoutV5ChildV8PriorityO5fixedyA2GmF":{"name":"fixed","abstract":"\u003cp\u003eThe element has a fixed size, with a grow and shrink priority of 0.","parent_name":"Priority"},"Structs/StackLayout/Child/Priority.html#/s:11BlueprintUI11StackLayoutV5ChildV8PriorityO8flexibleyA2GmF":{"name":"flexible","abstract":"\u003cp\u003eThe element has a flexible size, with a grow and shrink priority of 1.","parent_name":"Priority"},"Structs/StackLayout/Child/Priority.html#/s:11BlueprintUI11StackLayoutV5ChildV8PriorityO5growsyA2GmF":{"name":"grows","abstract":"\u003cp\u003eThe element has a flexible size, it will grow if the stack underflows,","parent_name":"Priority"},"Structs/StackLayout/Child/Priority.html#/s:11BlueprintUI11StackLayoutV5ChildV8PriorityO7shrinksyA2GmF":{"name":"shrinks","abstract":"\u003cp\u003eThe element has a flexible size, it will shrink if the stack overflows,","parent_name":"Priority"},"Structs/StackLayout/Child.html#/s:11BlueprintUI11StackLayoutV5ChildV7elementAA7Element_pvp":{"name":"element","parent_name":"Child"},"Structs/StackLayout/Child.html#/s:11BlueprintUI11StackLayoutV5ChildV6traitsAC6TraitsVvp":{"name":"traits","parent_name":"Child"},"Structs/StackLayout/Child.html#/s:11BlueprintUI11StackLayoutV5ChildV3keys11AnyHashableVSgvp":{"name":"key","parent_name":"Child"},"Structs/StackLayout/Child/Priority.html":{"name":"Priority","parent_name":"Child"},"Structs/StackLayout/Child.html#/s:11BlueprintUI11StackLayoutV5ChildV7element6traits3keyAeA7Element_p_AC6TraitsVs11AnyHashableVSgtcfc":{"name":"init(element:traits:key:)","parent_name":"Child"},"Structs/StackLayout/Child.html#/s:11BlueprintUI11StackLayoutV5ChildV7element8priority14alignmentGuide3keyAeA7Element_p_AE8PriorityO14CoreFoundation7CGFloatVAA0K10DimensionsVcSgs11AnyHashableVSgtcfc":{"name":"init(element:priority:alignmentGuide:key:)","parent_name":"Child"},"Structs/StackLayout/Child.html#/s:11BlueprintUI11StackLayoutV5ChildVyAeA7Element_pcfc":{"name":"init(_:)","parent_name":"Child"},"Structs/StackLayout/Alignment.html#/s:11BlueprintUI11StackLayoutV9AlignmentO4fillyA2EmF":{"name":"fill","abstract":"\u003cp\u003eChildren will be stretched to the size of the stack.\u003c/p\u003e","parent_name":"Alignment"},"Structs/StackLayout/Alignment.html#/s:11BlueprintUI11StackLayoutV9AlignmentO5alignyAeA0E2ID_pXp_tcAEmF":{"name":"align(to:)","abstract":"\u003cp\u003eChildren will be aligned relatively to each other, and then all the contents will be","parent_name":"Alignment"},"Structs/StackLayout/OverflowDistribution.html#/s:11BlueprintUI11StackLayoutV20OverflowDistributionO22condenseProportionallyyA2EmF":{"name":"condenseProportionally","abstract":"\u003cp\u003eEach child will shrink proportionally to its measured size.\u003c/p\u003e","parent_name":"OverflowDistribution"},"Structs/StackLayout/OverflowDistribution.html#/s:11BlueprintUI11StackLayoutV20OverflowDistributionO17condenseUniformlyyA2EmF":{"name":"condenseUniformly","abstract":"\u003cp\u003eEach child will shrink by the same amount.\u003c/p\u003e","parent_name":"OverflowDistribution"},"Structs/StackLayout/UnderflowDistribution.html#/s:11BlueprintUI11StackLayoutV21UnderflowDistributionO11spaceEvenlyyA2EmF":{"name":"spaceEvenly","abstract":"\u003cp\u003eAdditional space will be evenly divided into the spacing between items.\u003c/p\u003e","parent_name":"UnderflowDistribution"},"Structs/StackLayout/UnderflowDistribution.html#/s:11BlueprintUI11StackLayoutV21UnderflowDistributionO18growProportionallyyA2EmF":{"name":"growProportionally","abstract":"\u003cp\u003eAdditional space will be divided proportionally by the measured size of each child.\u003c/p\u003e","parent_name":"UnderflowDistribution"},"Structs/StackLayout/UnderflowDistribution.html#/s:11BlueprintUI11StackLayoutV21UnderflowDistributionO13growUniformlyyA2EmF":{"name":"growUniformly","abstract":"\u003cp\u003eAdditional space will be distributed uniformly between children.\u003c/p\u003e","parent_name":"UnderflowDistribution"},"Structs/StackLayout/UnderflowDistribution.html#/s:11BlueprintUI11StackLayoutV21UnderflowDistributionO14justifyToStartyA2EmF":{"name":"justifyToStart","abstract":"\u003cp\u003eAdditional space will appear after all children.\u003c/p\u003e","parent_name":"UnderflowDistribution"},"Structs/StackLayout/UnderflowDistribution.html#/s:11BlueprintUI11StackLayoutV21UnderflowDistributionO15justifyToCenteryA2EmF":{"name":"justifyToCenter","abstract":"\u003cp\u003eAdditional space will be distributed on either side of all children.\u003c/p\u003e","parent_name":"UnderflowDistribution"},"Structs/StackLayout/UnderflowDistribution.html#/s:11BlueprintUI11StackLayoutV21UnderflowDistributionO12justifyToEndyA2EmF":{"name":"justifyToEnd","abstract":"\u003cp\u003eAdditional space will be appear before all children.\u003c/p\u003e","parent_name":"UnderflowDistribution"},"Structs/StackLayout/Axis.html#/s:11BlueprintUI11StackLayoutV4AxisO10horizontalyA2EmF":{"name":"horizontal","parent_name":"Axis"},"Structs/StackLayout/Axis.html#/s:11BlueprintUI11StackLayoutV4AxisO8verticalyA2EmF":{"name":"vertical","parent_name":"Axis"},"Structs/StackLayout/Traits.html#/s:11BlueprintUI11StackLayoutV6TraitsV12growPriority14CoreFoundation7CGFloatVvp":{"name":"growPriority","abstract":"\u003cp\u003eControls the amount of extra space distributed to this child during underflow.\u003c/p\u003e","parent_name":"Traits"},"Structs/StackLayout/Traits.html#/s:11BlueprintUI11StackLayoutV6TraitsV14shrinkPriority14CoreFoundation7CGFloatVvp":{"name":"shrinkPriority","abstract":"\u003cp\u003eControls the amount of space allowed for this child during overflow.\u003c/p\u003e","parent_name":"Traits"},"Structs/StackLayout/Traits.html#/s:11BlueprintUI11StackLayoutV6TraitsV14alignmentGuideAC09AlignmentG0VSgvp":{"name":"alignmentGuide","abstract":"\u003cp\u003eAllows for custom alignment of a child along the cross axis.\u003c/p\u003e","parent_name":"Traits"},"Structs/StackLayout/Traits.html#/s:11BlueprintUI11StackLayoutV6TraitsV12growPriority06shrinkG014alignmentGuideAE14CoreFoundation7CGFloatV_AkC09AlignmentJ0VSgtcfc":{"name":"init(growPriority:shrinkPriority:alignmentGuide:)","abstract":"\u003cp\u003eCreates a new set of traits with default values.\u003c/p\u003e","parent_name":"Traits"},"Structs/StackLayout/AlignmentGuide.html#/s:11BlueprintUI11StackLayoutV14AlignmentGuideV12computeValuey14CoreFoundation7CGFloatVAA17ElementDimensionsVcvp":{"name":"computeValue","abstract":"\u003cp\u003eReturns a value along the stack\u0026rsquo;s cross axis, in the element\u0026rsquo;s own coordinate space,","parent_name":"AlignmentGuide"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV13defaultTraitsAC0F0VvpZ":{"name":"defaultTraits","abstract":"\u003cp\u003eThe default traits for a child contained within a stack layout\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout/AlignmentGuide.html":{"name":"AlignmentGuide","abstract":"\u003cp\u003eDetermines how a stack child will be aligned on the cross axis relative to other children.\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout/Traits.html":{"name":"Traits","abstract":"\u003cp\u003eContains traits that affect the layout of individual children in the stack.\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV4axisAC4AxisOvp":{"name":"axis","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV9underflowAC21UnderflowDistributionOvp":{"name":"underflow","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV8overflowAC20OverflowDistributionOvp":{"name":"overflow","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV9alignmentAC9AlignmentOvp":{"name":"alignment","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV14minimumSpacing14CoreFoundation7CGFloatVvp":{"name":"minimumSpacing","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI11StackLayoutV4axis9alignmentA2C4AxisO_AC9AlignmentOtcfc":{"name":"init(axis:alignment:)","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI12LegacyLayoutP7measure2in5itemsSo6CGSizeVAA14SizeConstraintV_Say6TraitsQz6traits_AA10Measurable_p7contenttGtF":{"name":"measure(in:items:)","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI12LegacyLayoutP6layout4size5itemsSayAA0D10AttributesVGSo6CGSizeV_Say6TraitsQz6traits_AA10Measurable_p7contenttGtF":{"name":"layout(size:items:)","parent_name":"StackLayout"},"Structs/StackLayout/Axis.html":{"name":"Axis","abstract":"\u003cp\u003eThe direction of the stack.\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout/UnderflowDistribution.html":{"name":"UnderflowDistribution","abstract":"\u003cp\u003eDetermines the on-axis layout when there is extra free space available.\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout/OverflowDistribution.html":{"name":"OverflowDistribution","abstract":"\u003cp\u003eDetermines the on-axis layout when there is not enough space to fit all children as measured.\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout/Alignment.html":{"name":"Alignment","abstract":"\u003cp\u003eDetermines the cross-axis layout (height for a horizontal stack, width for a vertical stack).\u003c/p\u003e","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP12sizeThatFits8proposal11subelements11environment5cacheSo6CGSizeVAA14SizeConstraintV_SayAA0D10SubelementVGAA11EnvironmentV5CacheQzztF":{"name":"sizeThatFits(proposal:subelements:environment:cache:)","parent_name":"StackLayout"},"Structs/StackLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP16placeSubelements2in11subelements11environment5cacheySo6CGSizeV_SayAA0D10SubelementVGAA11EnvironmentV5CacheQzztF":{"name":"placeSubelements(in:subelements:environment:cache:)","parent_name":"StackLayout"},"Structs/StackLayout/Child.html":{"name":"Child","parent_name":"StackLayout"},"Structs/Opacity.html#/s:11BlueprintUI7OpacityV14wrappedElementAA0E0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe content element whose opacity is being affected.\u003c/p\u003e","parent_name":"Opacity"},"Structs/Opacity.html#/s:11BlueprintUI7OpacityV7opacity14CoreFoundation7CGFloatVvp":{"name":"opacity","abstract":"\u003cp\u003eThe opacity of the wrapped element.\u003c/p\u003e","parent_name":"Opacity"},"Structs/Opacity.html#/s:11BlueprintUI7OpacityV7opacity8wrappingAC14CoreFoundation7CGFloatV_AA7Element_ptcfc":{"name":"init(opacity:wrapping:)","abstract":"\u003cp\u003eInitializes an \u003ccode\u003eOpacity\u003c/code\u003e with the given content element and opacity.\u003c/p\u003e","parent_name":"Opacity"},"Structs/Opacity.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Opacity"},"Structs/Opacity.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Opacity"},"Structs/LifecycleObserver.html#/s:11BlueprintUI17LifecycleObserverV7wrappedAA7Element_pvp":{"name":"wrapped","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI17LifecycleObserverV8onAppearyycSgvp":{"name":"onAppear","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI17LifecycleObserverV11onDisappearyycSgvp":{"name":"onDisappear","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI17LifecycleObserverV8onAppear0E9Disappear8wrappingACyycSg_AgA7Element_ptcfc":{"name":"init(onAppear:onDisappear:wrapping:)","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI17LifecycleObserverV8onAppearyACyycF":{"name":"onAppear(_:)","abstract":"\u003cp\u003eAdds a hook that will be called when this element appears.\u003c/p\u003e","parent_name":"LifecycleObserver"},"Structs/LifecycleObserver.html#/s:11BlueprintUI17LifecycleObserverV11onDisappearyACyycF":{"name":"onDisappear(_:)","abstract":"\u003cp\u003eAdds a hook that will be called when this element disappears.\u003c/p\u003e","parent_name":"LifecycleObserver"},"Structs/LayoutWriter/Child.html#/s:11BlueprintUI12LayoutWriterV5ChildV5frameSo6CGRectVvp":{"name":"frame","abstract":"\u003cp\u003eThe frame of the element in the coordinate space of the custom layout.\u003c/p\u003e","parent_name":"Child"},"Structs/LayoutWriter/Child.html#/s:11BlueprintUI12LayoutWriterV5ChildV3keys11AnyHashableVSgvp":{"name":"key","abstract":"\u003cp\u003eThe key to use to disambiguate this element.\u003c/p\u003e","parent_name":"Child"},"Structs/LayoutWriter/Child.html#/s:11BlueprintUI12LayoutWriterV5ChildV7elementAA7Element_pvp":{"name":"element","abstract":"\u003cp\u003eThe element to be displayed.\u003c/p\u003e","parent_name":"Child"},"Structs/LayoutWriter/Child.html#/s:11BlueprintUI12LayoutWriterV5ChildV5frame3key7elementAESo6CGRectV_s11AnyHashableVSgAA7Element_ptcfc":{"name":"init(frame:key:element:)","abstract":"\u003cp\u003eCreates a new child element.\u003c/p\u003e","parent_name":"Child"},"Structs/LayoutWriter/Sizing.html#/s:11BlueprintUI12LayoutWriterV6SizingO15unionOfChildrenyA2EmF":{"name":"unionOfChildren","abstract":"\u003cp\u003eEnsures that the final size of element is large enough to fit all children, starting from (0,0).\u003c/p\u003e","parent_name":"Sizing"},"Structs/LayoutWriter/Sizing.html#/s:11BlueprintUI12LayoutWriterV6SizingO5fixedyAESo6CGSizeVcAEmF":{"name":"fixed(_:)","abstract":"\u003cp\u003eFixes the layout size to the provided size. Children are positioned within this size, starting at (0,0)","parent_name":"Sizing"},"Structs/LayoutWriter/Context/LayoutPhase.html#/s:11BlueprintUI12LayoutWriterV7ContextV0C5PhaseO11measurementyA2GmF":{"name":"measurement","abstract":"\u003cp\u003eThe element is being measured.\u003c/p\u003e","parent_name":"LayoutPhase"},"Structs/LayoutWriter/Context/LayoutPhase.html#/s:11BlueprintUI12LayoutWriterV7ContextV0C5PhaseO6layoutyAGSo6CGSizeVcAGmF":{"name":"layout(_:)","abstract":"\u003cp\u003eThe element is being laid out with a known size.\u003c/p\u003e","parent_name":"LayoutPhase"},"Structs/LayoutWriter/Context/LayoutPhase.html#/s:11BlueprintUI12LayoutWriterV7ContextV0C5PhaseO9onMeasure_0gC0xxyXE_xSo6CGSizeVXEtlF":{"name":"onMeasure(_:onLayout:)","abstract":"\u003cp\u003eReturns the provided value based on if a measurement or layout is occurring.\u003c/p\u003e","parent_name":"LayoutPhase"},"Structs/LayoutWriter/Context.html#/s:11BlueprintUI12LayoutWriterV7ContextV4sizeAA14SizeConstraintVvp":{"name":"size","abstract":"\u003cp\u003eThe size constraint the layout is occurring in.\u003c/p\u003e","parent_name":"Context"},"Structs/LayoutWriter/Context.html#/s:11BlueprintUI12LayoutWriterV7ContextV5phaseAE0C5PhaseOvp":{"name":"phase","abstract":"\u003cp\u003eThe phase of the layout current occurring – measurement or layout.\u003c/p\u003e","parent_name":"Context"},"Structs/LayoutWriter/Context/LayoutPhase.html":{"name":"LayoutPhase","abstract":"\u003cp\u003eThe current phase of the layout event: \u003ccode\u003e.measurement\u003c/code\u003e or \u003ccode\u003e.layout\u003c/code\u003e.\u003c/p\u003e","parent_name":"Context"},"Structs/LayoutWriter/Builder.html#/s:11BlueprintUI12LayoutWriterV7BuilderV6sizingAC6SizingOvp":{"name":"sizing","abstract":"\u003cp\u003eHow the size of the layout should be calculated. Defaults to \u003ccode\u003e.unionOfChildren\u003c/code\u003e,","parent_name":"Builder"},"Structs/LayoutWriter/Builder.html#/s:11BlueprintUI12LayoutWriterV7BuilderV8childrenSayAC5ChildVGvp":{"name":"children","abstract":"\u003cp\u003eThe children of the custom layout, which specifies the child element and its frame.\u003c/p\u003e","parent_name":"Builder"},"Structs/LayoutWriter/Builder.html#/s:11BlueprintUI12LayoutWriterV7BuilderV3add4with3key5childySo6CGRectV_s11AnyHashableVSgAA7Element_ptF":{"name":"add(with:key:child:)","abstract":"\u003cp\u003eAdds a new child element to the layout with the provided frame and optional key.\u003c/p\u003e","parent_name":"Builder"},"Structs/LayoutWriter/Builder.html#/s:11BlueprintUI12LayoutWriterV7BuilderV3addyyAC5ChildVF":{"name":"add(_:)","abstract":"\u003cp\u003eAdds a new child element to the layout.\u003c/p\u003e","parent_name":"Builder"},"Structs/LayoutWriter/Builder.html#/s:11BlueprintUI12LayoutWriterV7BuilderV10modifyEach5usingyyAC5ChildVzXE_tF":{"name":"modifyEach(using:)","abstract":"\u003cp\u003eEnumerates each of the children, allowing you to modify them in place,","parent_name":"Builder"},"Structs/LayoutWriter.html#/s:11BlueprintUI12LayoutWriterVyACyAC7ContextV_AC7BuilderVztccfc":{"name":"init(_:)","abstract":"\u003cp\u003eCreates a new instance of the LayoutWriter with the custom layout provided by the builder.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutWriter.html#/s:11BlueprintUI12LayoutWriterV5Builda":{"name":"Build","abstract":"\u003cp\u003eThe builder type passed to the \u003ccode\u003eLayoutWriter\u003c/code\u003e initializer.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutWriter.html#/s:11BlueprintUI12LayoutWriterV5buildyyAC7ContextV_AC7BuilderVztcvp":{"name":"build","abstract":"\u003cp\u003eThe builder used to create the custom layout.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutWriter.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"LayoutWriter"},"Structs/LayoutWriter.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"LayoutWriter"},"Structs/LayoutWriter/Builder.html":{"name":"Builder","abstract":"\u003cp\u003eThe builder is the primary surface area you interact with when using a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/LayoutWriter.html\"\u003eLayoutWriter\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutWriter/Context.html":{"name":"Context","abstract":"\u003cp\u003eProvides the relevant information about the context in which the layout is occurring.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutWriter/Sizing.html":{"name":"Sizing","abstract":"\u003cp\u003eControls the sizing calculation of the custom layout.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutWriter/Child.html":{"name":"Child","abstract":"\u003cp\u003eA child of the custom layout, providing its frame and element.\u003c/p\u003e","parent_name":"LayoutWriter"},"Structs/LayoutSubelement/Attributes.html#/s:11BlueprintUI16LayoutSubelementV10AttributesV9transformSo13CATransform3DVvp":{"name":"transform","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.layer.transform\u003c/code\u003e.\u003c/p\u003e","parent_name":"Attributes"},"Structs/LayoutSubelement/Attributes.html#/s:11BlueprintUI16LayoutSubelementV10AttributesV5alpha14CoreFoundation7CGFloatVvp":{"name":"alpha","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.alpha\u003c/code\u003e.\u003c/p\u003e","parent_name":"Attributes"},"Structs/LayoutSubelement/Attributes.html#/s:11BlueprintUI16LayoutSubelementV10AttributesV24isUserInteractionEnabledSbvp":{"name":"isUserInteractionEnabled","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.isUserInteractionEnabled\u003c/code\u003e.\u003c/p\u003e","parent_name":"Attributes"},"Structs/LayoutSubelement/Attributes.html#/s:11BlueprintUI16LayoutSubelementV10AttributesV8isHiddenSbvp":{"name":"isHidden","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.isHidden\u003c/code\u003e.\u003c/p\u003e","parent_name":"Attributes"},"Structs/LayoutSubelement/Attributes.html#/s:11BlueprintUI16LayoutSubelementV10AttributesV18tintAdjustmentModeSo010UIViewTintgH0Vvp":{"name":"tintAdjustmentMode","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.tintAdjustmentMode\u003c/code\u003e.\u003c/p\u003e","parent_name":"Attributes"},"Structs/LayoutSubelement.html#/s:11BlueprintUI16LayoutSubelementV10attributesAC10AttributesVvp":{"name":"attributes","abstract":"\u003cp\u003eOptional attributes to apply to this subelement, such as opacity and transforms.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutSubelement.html#/s:11BlueprintUI16LayoutSubelementV5place2at6anchor4sizeySo7CGPointV_AA9UnitPointVSo6CGSizeVtF":{"name":"place(at:anchor:size:)","abstract":"\u003cp\u003eAssigns a position and size to a subelement.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutSubelement.html#/s:11BlueprintUI16LayoutSubelementV5place2in6anchorySo6CGRectV_AA9UnitPointVtF":{"name":"place(in:anchor:)","abstract":"\u003cp\u003eAssigns a position and size to a subelement.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutSubelement.html#/s:11BlueprintUI16LayoutSubelementV5place7fillingySo6CGSizeV_tF":{"name":"place(filling:)","abstract":"\u003cp\u003eAssigns a position and size to a subelement.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutSubelement.html#/s:11BlueprintUI16LayoutSubelementV12sizeThatFitsySo6CGSizeVAA14SizeConstraintVF":{"name":"sizeThatFits(_:)","abstract":"\u003cp\u003eAsks the subelement for its size.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutSubelement.html#/s:11BlueprintUI16LayoutSubelementV6traits03forC4Type6TraitsQzxm_tAA0C0RzlF":{"name":"traits(forLayoutType:)","abstract":"\u003cp\u003eGets the layout traits of the subelement.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutSubelement/Attributes.html":{"name":"Attributes","abstract":"\u003cp\u003eOptional additional attributes that can be applied to a subelement.\u003c/p\u003e","parent_name":"LayoutSubelement"},"Structs/LayoutOptions.html#/s:11BlueprintUI13LayoutOptionsV7defaultACvpZ":{"name":"default","abstract":"\u003cp\u003eThe default configuration.\u003c/p\u003e","parent_name":"LayoutOptions"},"Structs/LayoutOptions.html#/s:11BlueprintUI13LayoutOptionsV19hintRangeBoundariesSbvp":{"name":"hintRangeBoundaries","abstract":"\u003cp\u003eEnables aggressive cache hinting along the boundaries of the range between constraints and","parent_name":"LayoutOptions"},"Structs/LayoutOptions.html#/s:11BlueprintUI13LayoutOptionsV23searchUnconstrainedKeysSbvp":{"name":"searchUnconstrainedKeys","abstract":"\u003cp\u003eAllows cache misses on finite constraints to deduce a range-based match by searching for a","parent_name":"LayoutOptions"},"Structs/LayoutOptions.html#/s:11BlueprintUI13LayoutOptionsV19hintRangeBoundaries23searchUnconstrainedKeysACSb_Sbtcfc":{"name":"init(hintRangeBoundaries:searchUnconstrainedKeys:)","parent_name":"LayoutOptions"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV6centerSo7CGPointVvp":{"name":"center","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.center\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV6boundsSo6CGRectVvp":{"name":"bounds","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.bounds\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV9transformSo13CATransform3DVvp":{"name":"transform","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.layer.transform\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV5alpha14CoreFoundation7CGFloatVvp":{"name":"alpha","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.alpha\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV24isUserInteractionEnabledSbvp":{"name":"isUserInteractionEnabled","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.isUserInteractionEnabled\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV8isHiddenSbvp":{"name":"isHidden","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.isHidden\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV18tintAdjustmentModeSo010UIViewTintfG0Vvp":{"name":"tintAdjustmentMode","abstract":"\u003cp\u003eCorresponds to \u003ccode\u003eUIView.tintAdjustmentMode\u003c/code\u003e.\u003c/p\u003e","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesVACycfc":{"name":"init()","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV5frameACSo6CGRectV_tcfc":{"name":"init(frame:)","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV4sizeACSo6CGSizeV_tcfc":{"name":"init(size:)","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV6center6boundsACSo7CGPointV_So6CGRectVtcfc":{"name":"init(center:bounds:)","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV5frameSo6CGRectVvp":{"name":"frame","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:11BlueprintUI16LayoutAttributesV6withinyA2CF":{"name":"within(_:)","abstract":"\u003cp\u003eConcatenates layout attributes, moving the receiver from the local","parent_name":"LayoutAttributes"},"Structs/LayoutAttributes.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"LayoutAttributes"},"Structs/Keyed.html#/s:11BlueprintUI5KeyedV3keys11AnyHashableVSgvp":{"name":"key","abstract":"\u003cp\u003eThe key used to differentiate the element.\u003c/p\u003e","parent_name":"Keyed"},"Structs/Keyed.html#/s:11BlueprintUI5KeyedV7wrappedAA7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe wrapped element.\u003c/p\u003e","parent_name":"Keyed"},"Structs/Keyed.html#/s:11BlueprintUI5KeyedV3key8wrappingACs11AnyHashableVSg_AA7Element_ptcfc":{"name":"init(key:wrapping:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eKeyed\u003c/code\u003e element with the provided key and wrapped element.\u003c/p\u003e","parent_name":"Keyed"},"Structs/Keyed.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Keyed"},"Structs/Keyed.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Keyed"},"Structs/Hidden.html#/s:11BlueprintUI6HiddenV02isC0Sbvp":{"name":"isHidden","parent_name":"Hidden"},"Structs/Hidden.html#/s:11BlueprintUI6HiddenV14wrappedElementAA0E0_pvp":{"name":"wrappedElement","parent_name":"Hidden"},"Structs/Hidden.html#/s:11BlueprintUI6HiddenV_8wrappingACSb_AA7Element_ptcfc":{"name":"init(_:wrapping:)","parent_name":"Hidden"},"Structs/Hidden.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Hidden"},"Structs/Hidden.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Hidden"},"Structs/GridRow/Width.html#/s:11BlueprintUI7GridRowV5WidthO8absoluteyAE14CoreFoundation7CGFloatVcAEmF":{"name":"absolute(_:)","abstract":"\u003cp\u003eAssign the child a fixed width equal to the payload.\u003c/p\u003e","parent_name":"Width"},"Structs/GridRow/Width.html#/s:11BlueprintUI7GridRowV5WidthO12proportionalyAE14CoreFoundation7CGFloatVcAEmF":{"name":"proportional(_:)","abstract":"\u003cp\u003eAssign the child a proportional width of the available layout width. Note that proportional children","parent_name":"Width"},"Structs/GridRow/Child.html#/s:11BlueprintUI7GridRowV5ChildV7elementAA7Element_pvp":{"name":"element","abstract":"\u003cp\u003eThe element displayed in the \u003ccode\u003eGrid\u003c/code\u003e.\u003c/p\u003e","parent_name":"Child"},"Structs/GridRow/Child.html#/s:11BlueprintUI7GridRowV5ChildV3keys11AnyHashableVSgvp":{"name":"key","abstract":"\u003cp\u003eA unique identifier for the child.\u003c/p\u003e","parent_name":"Child"},"Structs/GridRow/Child.html#/s:11BlueprintUI7GridRowV5ChildV5widthAC5WidthOvp":{"name":"width","parent_name":"Child"},"Structs/GridRow/Child.html#/s:11BlueprintUI7GridRowV5ChildV5width3key7elementAeC5WidthO_s11AnyHashableVSgAA7Element_ptcfc":{"name":"init(width:key:element:)","parent_name":"Child"},"Structs/GridRow/Child.html#/s:11BlueprintUI7GridRowV5ChildVyAeA7Element_pcfc":{"name":"init(_:)","parent_name":"Child"},"Structs/GridRow.html#/s:11BlueprintUI7GridRowV17verticalAlignmentAA0D0V0dF0Ovp":{"name":"verticalAlignment","abstract":"\u003cp\u003eHow children are aligned vertically. By default, \u003ccode\u003e.fill\u003c/code\u003e.\u003c/p\u003e","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7GridRowV7spacing14CoreFoundation7CGFloatVvp":{"name":"spacing","abstract":"\u003cp\u003eThe space between children. By default, 0.\u003c/p\u003e","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7GridRowV8childrenSayAC5ChildVGvp":{"name":"children","abstract":"\u003cp\u003eThe child elements to be laid out. By default, an empty array.\u003c/p\u003e","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7GridRowV9configureACyACzXE_tcfc":{"name":"init(configure:)","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7GridRowV17verticalAlignment7spacing_AcA0D0V0dF0O_14CoreFoundation7CGFloatVSayAC5ChildVGyXEtcfc":{"name":"init(verticalAlignment:spacing:_:)","abstract":"\u003cp\u003eInitializer using result builder to declaritively build up a grid row.\u003c/p\u003e","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7GridRowV3add5width3key5childyAC5WidthO_s11AnyHashableVSgAA7Element_ptF":{"name":"add(width:key:child:)","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"GridRow"},"Structs/GridRow.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"GridRow"},"Structs/GridRow/Child.html":{"name":"Child","abstract":"\u003cp\u003eA child of a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/GridRow.html\"\u003eGridRow\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"GridRow"},"Structs/GridRow/Width.html":{"name":"Width","abstract":"\u003cp\u003eThe sizing and content of a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/GridRow.html\"\u003eGridRow\u003c/a\u003e\u003c/code\u003e child.\u003c/p\u003e","parent_name":"GridRow"},"Structs/GeometryProxy.html#/s:11BlueprintUI13GeometryProxyV10constraintAA14SizeConstraintVvp":{"name":"constraint","abstract":"\u003cp\u003eThe size constraint of the element being laid out.\u003c/p\u003e","parent_name":"GeometryProxy"},"Structs/GeometryProxy.html#/s:11BlueprintUI13GeometryProxyV7measure7element2inSo6CGSizeVAA7Element_p_AA14SizeConstraintVSgtF":{"name":"measure(element:in:)","abstract":"\u003cp\u003eMeasure the given element, constrained to the same size as the \u003ccode\u003eGeometryProxy\u003c/code\u003e itself (unless a constraint is explicitly provided).\u003c/p\u003e","parent_name":"GeometryProxy"},"Structs/Flow/Child.html#/s:11BlueprintUI4FlowV5ChildV3keys11AnyHashableVSgvp":{"name":"key","abstract":"\u003cp\u003eThe key used to optionally unique the child item.\u003c/p\u003e","parent_name":"Child"},"Structs/Flow/Child.html#/s:11BlueprintUI4FlowV5ChildV6traitsAE6TraitsVvp":{"name":"traits","abstract":"\u003cp\u003eThe traits of a child item.\u003c/p\u003e","parent_name":"Child"},"Structs/Flow/Child.html#/s:11BlueprintUI4FlowV5ChildV7elementAA7Element_pvp":{"name":"element","abstract":"\u003cp\u003eThe element representing the child item.\u003c/p\u003e","parent_name":"Child"},"Structs/Flow/Child.html#/s:11BlueprintUI4FlowV5ChildVyAeA7Element_pcfc":{"name":"init(_:)","abstract":"\u003cp\u003eCreates a new child item with the given element.\u003c/p\u003e","parent_name":"Child"},"Structs/Flow/Child.html#/s:11BlueprintUI4FlowV5ChildV_3keyAeA7Element_p_s11AnyHashableVSgtcfc":{"name":"init(_:key:)","abstract":"\u003cp\u003eCreates a new child item with the given element.\u003c/p\u003e","parent_name":"Child"},"Structs/Flow/Child.html#/s:11BlueprintUI4FlowV5ChildV6TraitsV":{"name":"Traits","parent_name":"Child"},"Structs/Flow/ItemAlignment.html#/s:11BlueprintUI4FlowV13ItemAlignmentO4fillyA2EmF":{"name":"fill","abstract":"\u003cp\u003eShorter items are stretched to fill the height of the tallest item.\u003c/p\u003e","parent_name":"ItemAlignment"},"Structs/Flow/ItemAlignment.html#/s:11BlueprintUI4FlowV13ItemAlignmentO3topyA2EmF":{"name":"top","abstract":"\u003cp\u003eShorter items are aligned to the top of the row.\u003c/p\u003e","parent_name":"ItemAlignment"},"Structs/Flow/ItemAlignment.html#/s:11BlueprintUI4FlowV13ItemAlignmentO6centeryA2EmF":{"name":"center","abstract":"\u003cp\u003eShorter items are vertically aligned within the row.\u003c/p\u003e","parent_name":"ItemAlignment"},"Structs/Flow/ItemAlignment.html#/s:11BlueprintUI4FlowV13ItemAlignmentO6bottomyA2EmF":{"name":"bottom","abstract":"\u003cp\u003eShorter items are aligned to the bottom of the row.\u003c/p\u003e","parent_name":"ItemAlignment"},"Structs/Flow/LineAlignment.html#/s:11BlueprintUI4FlowV13LineAlignmentO7leadingyA2EmF":{"name":"leading","abstract":"\u003cp\u003eItems are aligned with the leading edge.\u003c/p\u003e","parent_name":"LineAlignment"},"Structs/Flow/LineAlignment.html#/s:11BlueprintUI4FlowV13LineAlignmentO6centeryA2EmF":{"name":"center","abstract":"\u003cp\u003eItems are centered within the remaining space.\u003c/p\u003e","parent_name":"LineAlignment"},"Structs/Flow/LineAlignment.html#/s:11BlueprintUI4FlowV13LineAlignmentO8trailingyA2EmF":{"name":"trailing","abstract":"\u003cp\u003eItems are aligned with the trailing edge.\u003c/p\u003e","parent_name":"LineAlignment"},"Structs/Flow.html#/s:11BlueprintUI4FlowV13lineAlignmentAC04LineE0Ovp":{"name":"lineAlignment","abstract":"\u003cp\u003eHow to align each row when there is extra horizontal space.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI4FlowV11lineSpacing14CoreFoundation7CGFloatVvp":{"name":"lineSpacing","abstract":"\u003cp\u003eSpace between lines in the layout.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI4FlowV13itemAlignmentAC04ItemE0Ovp":{"name":"itemAlignment","abstract":"\u003cp\u003eHow to align items in a line when there is extra vertical space.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI4FlowV11itemSpacing14CoreFoundation7CGFloatVvp":{"name":"itemSpacing","abstract":"\u003cp\u003eSpace between items within a line.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI4FlowV8childrenSayAC5ChildVGvp":{"name":"children","abstract":"\u003cp\u003eThe child elements of the flow layout to be laid out.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI4FlowV13lineAlignment0D7Spacing04itemE00gF0_A2C04LineE0O_14CoreFoundation7CGFloatVAC04ItemE0OALSayAC5ChildVGyXEtcfc":{"name":"init(lineAlignment:lineSpacing:itemAlignment:itemSpacing:_:)","abstract":"\u003cp\u003eCreates a new flow layout with the provided parameters.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Flow"},"Structs/Flow.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Flow"},"Structs/Flow/LineAlignment.html":{"name":"LineAlignment","abstract":"\u003cp\u003eHow to horizontally align the line when there is extra space.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow/ItemAlignment.html":{"name":"ItemAlignment","abstract":"\u003cp\u003eHow to vertically align items which there is extra space.\u003c/p\u003e","parent_name":"Flow"},"Structs/Flow/Child.html":{"name":"Child","abstract":"\u003cp\u003eA child placed within the flow layout.\u003c/p\u003e","parent_name":"Flow"},"Structs/ElementDimensions.html#/s:11BlueprintUI17ElementDimensionsV5width14CoreFoundation7CGFloatVvp":{"name":"width","abstract":"\u003cp\u003eThe element\u0026rsquo;s width\u003c/p\u003e","parent_name":"ElementDimensions"},"Structs/ElementDimensions.html#/s:11BlueprintUI17ElementDimensionsV6height14CoreFoundation7CGFloatVvp":{"name":"height","abstract":"\u003cp\u003eThe element\u0026rsquo;s height\u003c/p\u003e","parent_name":"ElementDimensions"},"Structs/ElementDimensions.html#/s:11BlueprintUI17ElementDimensionsVy14CoreFoundation7CGFloatVAA19HorizontalAlignmentVcip":{"name":"subscript(_:)","abstract":"\u003cp\u003eAccesses the value of the given guide, or the default value of the alignment if this","parent_name":"ElementDimensions"},"Structs/ElementDimensions.html#/s:11BlueprintUI17ElementDimensionsVy14CoreFoundation7CGFloatVAA17VerticalAlignmentVcip":{"name":"subscript(_:)","abstract":"\u003cp\u003eAccesses the value of the given guide, or the default value of the alignment if this","parent_name":"ElementDimensions"},"Structs/ElementDimensions.html#/s:11BlueprintUI17ElementDimensionsV8explicit14CoreFoundation7CGFloatVSgAA19HorizontalAlignmentV_tcip":{"name":"subscript(explicit:)","abstract":"\u003cp\u003eReturns the explicit value of the given alignment guide in this view, or","parent_name":"ElementDimensions"},"Structs/ElementDimensions.html#/s:11BlueprintUI17ElementDimensionsV8explicit14CoreFoundation7CGFloatVSgAA17VerticalAlignmentV_tcip":{"name":"subscript(explicit:)","abstract":"\u003cp\u003eReturns the explicit value of the given alignment guide in this view, or","parent_name":"ElementDimensions"},"Structs/Decorate/Position/PositionContext.html#/s:11BlueprintUI8DecorateV8PositionV0D7ContextV14decorationSizeSo6CGSizeVvp":{"name":"decorationSize","abstract":"\u003cp\u003eThe size of the decoration being positioned within the decorated content\u0026rsquo;s bounds.\u003c/p\u003e","parent_name":"PositionContext"},"Structs/Decorate/Position/PositionContext.html#/s:11BlueprintUI8DecorateV8PositionV0D7ContextV11contentSizeSo6CGSizeVvp":{"name":"contentSize","abstract":"\u003cp\u003eThe size of the content element within the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Decorate.html\"\u003eDecorate\u003c/a\u003e\u003c/code\u003e element.\u003c/p\u003e","parent_name":"PositionContext"},"Structs/Decorate/Position/PositionContext.html#/s:11BlueprintUI8DecorateV8PositionV0D7ContextV11environmentAA11EnvironmentVvp":{"name":"environment","abstract":"\u003cp\u003eThe environment the element is being rendered in.\u003c/p\u003e","parent_name":"PositionContext"},"Structs/Decorate/Position.html#/s:11BlueprintUI8DecorateV8PositionV5insetyAESo12UIEdgeInsetsVFZ":{"name":"inset(_:)","abstract":"\u003cp\u003eInsets the decoration element on each edge by the amount specified by","parent_name":"Position"},"Structs/Decorate/Position.html#/s:11BlueprintUI8DecorateV8PositionV5insetyAE14CoreFoundation7CGFloatVFZ":{"name":"inset(_:)","abstract":"\u003cp\u003eProvides a \u003ccode\u003e.inset\u003c/code\u003e position where the decoration is inset by the","parent_name":"Position"},"Structs/Decorate/Position.html#/s:11BlueprintUI8DecorateV8PositionV5inset10horizontal8verticalAE14CoreFoundation7CGFloatV_AKtFZ":{"name":"inset(horizontal:vertical:)","abstract":"\u003cp\u003eProvides a \u003ccode\u003e.inset\u003c/code\u003e position where the decoration is inset by the","parent_name":"Position"},"Structs/Decorate/Position.html#/s:11BlueprintUI8DecorateV8PositionV7aligned2to15horizontalGuide08verticalH0AeA9AlignmentV_14CoreFoundation7CGFloatVAA17ElementDimensionsVcSgAQtFZ":{"name":"aligned(to:horizontalGuide:verticalGuide:)","abstract":"\u003cp\u003eAligns the decoration according the given alignment option, optionally adjusting it with","parent_name":"Position"},"Structs/Decorate/Position.html#/s:11BlueprintUI8DecorateV8PositionV6corneryAeC6CornerO_So8UIOffsetVtFZ":{"name":"corner(_:_:)","abstract":"\u003cp\u003eThe decoration element is positioned in the given corner of the","parent_name":"Position"},"Structs/Decorate/Position.html#/s:11BlueprintUI8DecorateV8PositionV6customyAESo6CGRectVAE0D7ContextVcFZ":{"name":"custom(_:)","abstract":"\u003cp\u003eAllows you to provide custom positioning for the decoration, based on the passed context.\u003c/p\u003e","parent_name":"Position"},"Structs/Decorate/Position/PositionContext.html":{"name":"PositionContext","abstract":"\u003cp\u003eInformation provided to \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Decorate/Position.html\"\u003ePosition\u003c/a\u003e\u003c/code\u003e closures.\u003c/p\u003e","parent_name":"Position"},"Structs/Decorate/Corner.html#/s:11BlueprintUI8DecorateV6CornerO7topLeftyA2EmF":{"name":"topLeft","parent_name":"Corner"},"Structs/Decorate/Corner.html#/s:11BlueprintUI8DecorateV6CornerO8topRightyA2EmF":{"name":"topRight","parent_name":"Corner"},"Structs/Decorate/Corner.html#/s:11BlueprintUI8DecorateV6CornerO11bottomRightyA2EmF":{"name":"bottomRight","parent_name":"Corner"},"Structs/Decorate/Corner.html#/s:11BlueprintUI8DecorateV6CornerO10bottomLeftyA2EmF":{"name":"bottomLeft","parent_name":"Corner"},"Structs/Decorate/Layering.html#/s:11BlueprintUI8DecorateV8LayeringO5aboveyA2EmF":{"name":"above","abstract":"\u003cp\u003eThe decoration is displayed above the content element.\u003c/p\u003e","parent_name":"Layering"},"Structs/Decorate/Layering.html#/s:11BlueprintUI8DecorateV8LayeringO5belowyA2EmF":{"name":"below","abstract":"\u003cp\u003eThe decoration is displayed below the content element.\u003c/p\u003e","parent_name":"Layering"},"Structs/Decorate.html#/s:11BlueprintUI8DecorateV7wrappedAA7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe element which provides the sizing and measurement.","parent_name":"Decorate"},"Structs/Decorate.html#/s:11BlueprintUI8DecorateV10decorationAA7Element_pvp":{"name":"decoration","abstract":"\u003cp\u003eThe element which is used to draw the decoration.","parent_name":"Decorate"},"Structs/Decorate.html#/s:11BlueprintUI8DecorateV8layeringAC8LayeringOvp":{"name":"layering","abstract":"\u003cp\u003eWhere the decoration should be positioned in the z-axis: Above or below the wrapped element.\u003c/p\u003e","parent_name":"Decorate"},"Structs/Decorate.html#/s:11BlueprintUI8DecorateV8positionAC8PositionVvp":{"name":"position","abstract":"\u003cp\u003eHow the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Decorate.html#/s:11BlueprintUI8DecorateV10decorationAA7Element_pvp\"\u003edecoration\u003c/a\u003e\u003c/code\u003e should be positioned in respect to the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Decorate.html#/s:11BlueprintUI8DecorateV7wrappedAA7Element_pvp\"\u003ewrapped\u003c/a\u003e\u003c/code\u003e element.\u003c/p\u003e","parent_name":"Decorate"},"Structs/Decorate.html#/s:11BlueprintUI8DecorateV8layering8position8wrapping10decorationA2C8LayeringO_AC8PositionVAA7Element_pAaL_ptcfc":{"name":"init(layering:position:wrapping:decoration:)","abstract":"\u003cp\u003eCreates a new instance with the provided overflow, background, and wrapped element.\u003c/p\u003e","parent_name":"Decorate"},"Structs/Decorate.html#/s:11BlueprintUI12ProxyElementP21elementRepresentationAA0D0_pvp":{"name":"elementRepresentation","parent_name":"Decorate"},"Structs/Decorate/Layering.html":{"name":"Layering","abstract":"\u003cp\u003eIf the decoration should be positioned above or below the content element.\u003c/p\u003e","parent_name":"Decorate"},"Structs/Decorate/Corner.html":{"name":"Corner","abstract":"\u003cp\u003eWhat corner the decoration element should be positioned in.\u003c/p\u003e","parent_name":"Decorate"},"Structs/Decorate/Position.html":{"name":"Position","abstract":"\u003cp\u003eHow to position the decoration element relative to the content element.\u003c/p\u003e","parent_name":"Decorate"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV8Childrena":{"name":"Children","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV10buildBlockySayxGAEd_tFZ":{"name":"buildBlock(_:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV13buildOptionalySayxGAESgFZ":{"name":"buildOptional(_:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV11buildEither5firstSayxGAF_tFZ":{"name":"buildEither(first:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV11buildEither6secondSayxGAF_tFZ":{"name":"buildEither(second:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV15buildExpressionySayxGxFZ":{"name":"buildExpression(_:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV15buildExpressionySayxGxSgFZ":{"name":"buildExpression(_:)","abstract":"\u003cp\u003eThis function is disfavored in case a builder wants to offer additional \u003ccode\u003ebuildExpression\u003c/code\u003e functions to support","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV10buildArrayySayxGSayAEGFZ":{"name":"buildArray(_:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV10buildArrayySayxGAEFZ":{"name":"buildArray(_:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV24buildLimitedAvailabilityySayxGAEFZ":{"name":"buildLimitedAvailability(_:)","parent_name":"Builder"},"Structs/Builder.html#/s:11BlueprintUI7BuilderV15buildExpressionySayxGAEFZ":{"name":"buildExpression(_:)","abstract":"\u003cp\u003eAllow for an array of \u003ccode\u003eChild\u003c/code\u003e to be flattened into the overall result.\u003c/p\u003e","parent_name":"Builder"},"Structs/AspectRatio.html#/s:11BlueprintUI11AspectRatioV6squareACvpZ":{"name":"square","abstract":"\u003cp\u003eA 1:1 aspect ratio.\u003c/p\u003e","parent_name":"AspectRatio"},"Structs/AspectRatio.html#/s:11BlueprintUI11AspectRatioV5ratio14CoreFoundation7CGFloatVvp":{"name":"ratio","abstract":"\u003cp\u003eThe width:height ratio value.\u003c/p\u003e","parent_name":"AspectRatio"},"Structs/AspectRatio.html#/s:11BlueprintUI11AspectRatioV5width6heightAC14CoreFoundation7CGFloatV_AHtcfc":{"name":"init(width:height:)","abstract":"\u003cp\u003eInitializes with a width \u0026amp; height ratio.\u003c/p\u003e","parent_name":"AspectRatio"},"Structs/AspectRatio.html#/s:11BlueprintUI11AspectRatioV5ratioAC14CoreFoundation7CGFloatV_tcfc":{"name":"init(ratio:)","abstract":"\u003cp\u003eInitializes with a specific ratio.\u003c/p\u003e","parent_name":"AspectRatio"},"Structs/VerticalAlignment.html#/s:11BlueprintUI17VerticalAlignmentVyAcA0D2ID_pXpcfc":{"name":"init(_:)","abstract":"\u003cp\u003eCreates an instance with the given ID.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/VerticalAlignment.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"VerticalAlignment"},"Structs/VerticalAlignment.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"VerticalAlignment"},"Structs/VerticalAlignment.html#/s:11BlueprintUI17VerticalAlignmentV3topACvpZ":{"name":"top","abstract":"\u003cp\u003eA guide marking the top edge of the element.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/VerticalAlignment.html#/s:11BlueprintUI17VerticalAlignmentV6centerACvpZ":{"name":"center","abstract":"\u003cp\u003eA guide marking the vertical center of the element.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/VerticalAlignment.html#/s:11BlueprintUI17VerticalAlignmentV6bottomACvpZ":{"name":"bottom","abstract":"\u003cp\u003eA guide marking the bottom edge of the element.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/HorizontalAlignment.html#/s:11BlueprintUI19HorizontalAlignmentVyAcA0D2ID_pXpcfc":{"name":"init(_:)","abstract":"\u003cp\u003eCreates an instance with the given ID.\u003c/p\u003e","parent_name":"HorizontalAlignment"},"Structs/HorizontalAlignment.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"HorizontalAlignment"},"Structs/HorizontalAlignment.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"HorizontalAlignment"},"Structs/HorizontalAlignment.html#/s:11BlueprintUI19HorizontalAlignmentV7leadingACvpZ":{"name":"leading","abstract":"\u003cp\u003eA guide marking the leading edge of the element.\u003c/p\u003e","parent_name":"HorizontalAlignment"},"Structs/HorizontalAlignment.html#/s:11BlueprintUI19HorizontalAlignmentV6centerACvpZ":{"name":"center","abstract":"\u003cp\u003eA guide marking the horizontal center of the element.\u003c/p\u003e","parent_name":"HorizontalAlignment"},"Structs/HorizontalAlignment.html#/s:11BlueprintUI19HorizontalAlignmentV8trailingACvpZ":{"name":"trailing","abstract":"\u003cp\u003eA guide marking the trailing edge of the element.\u003c/p\u003e","parent_name":"HorizontalAlignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV6centerACvpZ":{"name":"center","abstract":"\u003cp\u003eA guide marking the center of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV7leadingACvpZ":{"name":"leading","abstract":"\u003cp\u003eA guide marking the leading edge of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV8trailingACvpZ":{"name":"trailing","abstract":"\u003cp\u003eA guide marking the trailing edge of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV3topACvpZ":{"name":"top","abstract":"\u003cp\u003eA guide marking the top edge of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV6bottomACvpZ":{"name":"bottom","abstract":"\u003cp\u003eA guide marking the bottom edge of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV10topLeadingACvpZ":{"name":"topLeading","abstract":"\u003cp\u003eA guide marking the top and leading edges of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV11topTrailingACvpZ":{"name":"topTrailing","abstract":"\u003cp\u003eA guide marking the top and trailing edges of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV13bottomLeadingACvpZ":{"name":"bottomLeading","abstract":"\u003cp\u003eA guide marking the bottom and leading edges of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV14bottomTrailingACvpZ":{"name":"bottomTrailing","abstract":"\u003cp\u003eA guide marking the bottom and trailing edges of the element.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV10horizontalAA010HorizontalC0Vvp":{"name":"horizontal","abstract":"\u003cp\u003eThe alignment on the horizontal axis.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV8verticalAA08VerticalC0Vvp":{"name":"vertical","abstract":"\u003cp\u003eThe alignment on the vertical axis.\u003c/p\u003e","parent_name":"Alignment"},"Structs/Alignment.html#/s:11BlueprintUI9AlignmentV10horizontal8verticalAcA010HorizontalC0V_AA08VerticalC0Vtcfc":{"name":"init(horizontal:vertical:)","abstract":"\u003cp\u003eCreates an instance with the given horizontal and vertical alignments.\u003c/p\u003e","parent_name":"Alignment"},"Structs/FocusState.html#/s:11BlueprintUI10FocusStateVACySbGycSbRszrlufc":{"name":"init()","abstract":"\u003cp\u003eCreates a focus state that binds to a Boolean.\u003c/p\u003e","parent_name":"FocusState"},"Structs/FocusState.html#/s:11BlueprintUI10FocusStateVACyqd__SgGycADRszSHRd__lufc":{"name":"init()","abstract":"\u003cp\u003eCreates a focus state that binds to an optional type.\u003c/p\u003e","parent_name":"FocusState"},"Structs/FocusState.html#/s:11BlueprintUI10FocusStateV12wrappedValuexvp":{"name":"wrappedValue","abstract":"\u003cp\u003eThe current state value, taking into account whatever bindings might be","parent_name":"FocusState"},"Structs/FocusState.html#/s:11BlueprintUI10FocusStateV14projectedValueACyxGvp":{"name":"projectedValue","abstract":"\u003cp\u003eA projection of the focus state that can be bound to focusable elements.\u003c/p\u003e","parent_name":"FocusState"},"Structs/FocusState.html#/s:11BlueprintUI10FocusStateV7binding3forAA0C7BindingVqd___tqd__SgRszSHRd__lF":{"name":"binding(for:)","abstract":"\u003cp\u003eGets a focus binding associated with the \u003ccode\u003eFocusState\u003c/code\u003e being a specific value.\u003c/p\u003e","parent_name":"FocusState"},"Structs/FocusState.html#/s:11BlueprintUI10FocusStateV7bindingAA0C7BindingVySbRszrlF":{"name":"binding()","abstract":"\u003cp\u003eGets a focus binding associated with the \u003ccode\u003eFocusState\u003c/code\u003e value being \u003ccode\u003etrue\u003c/code\u003e.\u003c/p\u003e","parent_name":"FocusState"},"Structs/FocusBinding.html#/s:11BlueprintUI12FocusBindingV7triggerAA0C7TriggerCvp":{"name":"trigger","abstract":"\u003cp\u003eA trigger, which is responsible for piping focus changes from a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/FocusState.html\"\u003eFocusState\u003c/a\u003e\u003c/code\u003e into a backing","parent_name":"FocusBinding"},"Structs/FocusBinding.html#/s:11BlueprintUI12FocusBindingV02onC0yycvp":{"name":"onFocus","abstract":"\u003cp\u003eA callback to be called by a backing view when it is focused, to pipe changes from a backing","parent_name":"FocusBinding"},"Structs/FocusBinding.html#/s:11BlueprintUI12FocusBindingV6onBluryycvp":{"name":"onBlur","abstract":"\u003cp\u003eA callback to be called by a backing view when it loses focus, to pipe changes from a","parent_name":"FocusBinding"},"Structs/FocusBinding.html#/s:11BlueprintUI12FocusBindingV02onC00E4BlurACyyc_yyctcfc":{"name":"init(onFocus:onBlur:)","abstract":"\u003cp\u003eCreates a new binding\u003c/p\u003e","parent_name":"FocusBinding"},"Structs/UIViewElementContext.html#/s:11BlueprintUI20UIViewElementContextV11isMeasuringSbvp":{"name":"isMeasuring","abstract":"\u003cp\u003eThis bool indicates whether the view being updated is the static measuring instance. You may","parent_name":"UIViewElementContext"},"Structs/UIViewElementContext.html#/s:11BlueprintUI20UIViewElementContextV11environmentAA11EnvironmentVvp":{"name":"environment","abstract":"\u003cp\u003eThe environment the element is rendered in.\u003c/p\u003e","parent_name":"UIViewElementContext"},"Structs/ViewDescriptionContext.html#/s:11BlueprintUI22ViewDescriptionContextV6boundsSo6CGRectVvp":{"name":"bounds","abstract":"\u003cp\u003eThe bounds of this element after layout is complete.\u003c/p\u003e","parent_name":"ViewDescriptionContext"},"Structs/ViewDescriptionContext.html#/s:11BlueprintUI22ViewDescriptionContextV13subtreeExtentSo6CGRectVSgvp":{"name":"subtreeExtent","abstract":"\u003cp\u003eA rectangle in the local coordinate space that contains any children.","parent_name":"ViewDescriptionContext"},"Structs/ViewDescriptionContext.html#/s:11BlueprintUI22ViewDescriptionContextV11environmentAA11EnvironmentVvp":{"name":"environment","abstract":"\u003cp\u003eThe environment the element is rendered in.\u003c/p\u003e","parent_name":"ViewDescriptionContext"},"Structs/ViewDescriptionContext.html#/s:11BlueprintUI22ViewDescriptionContextV6bounds13subtreeExtent11environmentACSo6CGRectV_AHSgAA11EnvironmentVtcfc":{"name":"init(bounds:subtreeExtent:environment:)","parent_name":"ViewDescriptionContext"},"Structs/BlueprintViewRenderMetrics.html#/s:11BlueprintUI0A17ViewRenderMetricsV10layoutModeAA06LayoutG0Ovp":{"name":"layoutMode","abstract":"\u003cp\u003eThe layout mode used to render the view.\u003c/p\u003e","parent_name":"BlueprintViewRenderMetrics"},"Structs/BlueprintViewRenderMetrics.html#/s:11BlueprintUI0A17ViewRenderMetricsV14startTimestampSdvp":{"name":"startTimestamp","abstract":"\u003cp\u003eThe mach time in seconds at which the view render started (from \u003ccode\u003eCACurrentMediaTime()\u003c/code\u003e).\u003c/p\u003e","parent_name":"BlueprintViewRenderMetrics"},"Structs/BlueprintViewRenderMetrics.html#/s:11BlueprintUI0A17ViewRenderMetricsV13totalDurationSdvp":{"name":"totalDuration","abstract":"\u003cp\u003eThe total time it took to apply a new element.\u003c/p\u003e","parent_name":"BlueprintViewRenderMetrics"},"Structs/BlueprintViewRenderMetrics.html#/s:11BlueprintUI0A17ViewRenderMetricsV14layoutDurationSdvp":{"name":"layoutDuration","abstract":"\u003cp\u003eThe time it took to lay out and measure the new element.\u003c/p\u003e","parent_name":"BlueprintViewRenderMetrics"},"Structs/BlueprintViewRenderMetrics.html#/s:11BlueprintUI0A17ViewRenderMetricsV18viewUpdateDurationSdvp":{"name":"viewUpdateDuration","abstract":"\u003cp\u003eThe time it took to update the on-screen views for the element.\u003c/p\u003e","parent_name":"BlueprintViewRenderMetrics"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV5emptyACvpZ":{"name":"empty","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerVy5ValueQzSgxmcAA010AttributedC3KeyRzluip":{"name":"subscript(_:)","abstract":"\u003cp\u003eGet or set for the given \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/AttributedTextKey.html\"\u003eAttributedTextKey\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV4fontSo6UIFontCSgvp":{"name":"font","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV5colorSo7UIColorCSgvp":{"name":"color","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV8tracking14CoreFoundation7CGFloatVSgvp":{"name":"tracking","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV14underlineStyleSo011NSUnderlineG0VSgvp":{"name":"underlineStyle","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV14underlineColorSo7UIColorCSgvp":{"name":"underlineColor","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV14paragraphStyleSo011NSParagraphG0CSgvp":{"name":"paragraphStyle","parent_name":"TextAttributeContainer"},"Structs/TextAttributeContainer.html#/s:11BlueprintUI22TextAttributeContainerV4link10Foundation3URLVSgvp":{"name":"link","parent_name":"TextAttributeContainer"},"Structs/AttributedText/Run.html#/s:11BlueprintUI14AttributedTextV3RunV5rangeSnySS5IndexVGvp":{"name":"range","abstract":"\u003cp\u003eThe range of the run of attributes.\u003c/p\u003e","parent_name":"Run"},"Structs/AttributedText/Run.html#/s:11BlueprintUI14AttributedTextV3RunV10attributesAA0D18AttributeContainerVvp":{"name":"attributes","abstract":"\u003cp\u003eThe attributes that apply to this run.\u003c/p\u003e","parent_name":"Run"},"Structs/AttributedText/Run.html#/s:11BlueprintUI14AttributedTextV3RunV13dynamicMemberxs7KeyPathCyAA0D18AttributeContainerVxG_tcluip":{"name":"subscript(dynamicMember:)","abstract":"\u003cp\u003eDynamic member getter for the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/TextAttributeContainer.html\"\u003eTextAttributeContainer\u003c/a\u003e\u003c/code\u003e of this run.\u003c/p\u003e","parent_name":"Run"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextV6stringSSvp":{"name":"string","abstract":"\u003cp\u003eThe wrapped string, with no attributes.\u003c/p\u003e","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextV16attributedStringSo012NSAttributedF0Cvp":{"name":"attributedString","abstract":"\u003cp\u003eAn \u003ccode\u003eNSAttributedString\u003c/code\u003e representation of the attributed text.\u003c/p\u003e","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextV4runsSayAC3RunVGvp":{"name":"runs","abstract":"\u003cp\u003eAn iterable view into segments of the attributed string, each of which indicates where a run of identical","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextVyACSScfc":{"name":"init(_:)","abstract":"\u003cp\u003eCreate some \u003ccode\u003eAttributedText\u003c/code\u003e from a plain string.\u003c/p\u003e","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextVyACSo18NSAttributedStringCcfc":{"name":"init(_:)","abstract":"\u003cp\u003eCreate some \u003ccode\u003eAttributedText\u003c/code\u003e from an attributed string. The attributes are preserved.\u003c/p\u003e","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextV5range2ofSnySS5IndexVGSgx_tSyRzlF":{"name":"range(of:)","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextV13dynamicMemberxs15WritableKeyPathCyAA0D18AttributeContainerVxG_tcluip":{"name":"subscript(dynamicMember:)","abstract":"\u003cp\u003eDynamic member getter or setter for any attributes defined on \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/TextAttributeContainer.html\"\u003eTextAttributeContainer\u003c/a\u003e\u003c/code\u003e.","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextVyAA0D18AttributeContainerVxcSXRzSS5IndexV5BoundRtzluip":{"name":"subscript(_:)","abstract":"\u003cp\u003eGet or set a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/TextAttributeContainer.html\"\u003eTextAttributeContainer\u003c/a\u003e\u003c/code\u003e for the provided range of text. This allows you to set attributes","parent_name":"AttributedText"},"Structs/AttributedText.html#/s:11BlueprintUI14AttributedTextV1poiyA2C_ACtFZ":{"name":"+(_:_:)","abstract":"\u003cp\u003eConcatenate two pieces of \u003ccode\u003eAttributedText\u003c/code\u003e together.\u003c/p\u003e","parent_name":"AttributedText"},"Structs/AttributedText/Run.html":{"name":"Run","abstract":"\u003cp\u003eA Run represents a range of identical attributes in the attributed text.\u003c/p\u003e","parent_name":"AttributedText"},"Structs/AttributedText.html":{"name":"AttributedText","abstract":"\u003cp\u003e\u003ccode\u003eAttributedText\u003c/code\u003e allows you to apply strongly-typed attributes to strings (much like the \u003ccode\u003eAttributedString\u003c/code\u003e type"},"Structs/TextAttributeContainer.html":{"name":"TextAttributeContainer"},"Structs/BlueprintViewRenderMetrics.html":{"name":"BlueprintViewRenderMetrics"},"Structs/ViewDescriptionContext.html":{"name":"ViewDescriptionContext","abstract":"\u003cp\u003eThe context passing to the \u003ccode\u003ebackingViewDescription\u003c/code\u003e of an Element.\u003c/p\u003e"},"Structs/UIViewElementContext.html":{"name":"UIViewElementContext","abstract":"\u003cp\u003eContext object passed into \u003ccode\u003eupdateUIView\u003c/code\u003e.\u003c/p\u003e"},"Structs/FocusBinding.html":{"name":"FocusBinding","abstract":"\u003cp\u003eA two-way binding between a focusable element\u0026rsquo;s backing view and a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/FocusState.html\"\u003eFocusState\u003c/a\u003e\u003c/code\u003e-wrapped"},"Structs/FocusState.html":{"name":"FocusState","abstract":"\u003cp\u003eA property wrapper type that can read and write a value that represents the placement of focus.\u003c/p\u003e"},"Structs/Alignment.html":{"name":"Alignment","abstract":"\u003cp\u003eAn alignment in both axes.\u003c/p\u003e"},"Structs/HorizontalAlignment.html":{"name":"HorizontalAlignment","abstract":"\u003cp\u003eAn alignment position along the horizontal axis.\u003c/p\u003e"},"Structs/VerticalAlignment.html":{"name":"VerticalAlignment","abstract":"\u003cp\u003eAn alignment position along the vertical axis.\u003c/p\u003e"},"Structs/AspectRatio.html":{"name":"AspectRatio","abstract":"\u003cp\u003eRepresents an a proportional relationship between width and height.\u003c/p\u003e"},"Structs/Builder.html":{"name":"Builder","abstract":"\u003cp\u003eGeneric result builder for converting blocks of \u003ccode\u003eChild...\u003c/code\u003e into \u003ccode\u003e[Child]\u003c/code\u003e.\u003c/p\u003e"},"Structs/Decorate.html":{"name":"Decorate","abstract":"\u003cp\u003ePlaces a decoration element behind or in front of the given \u003ccode\u003ewrapped\u003c/code\u003e element,"},"Structs/ElementDimensions.html":{"name":"ElementDimensions","abstract":"\u003cp\u003eAn element’s size and its alignment guides in its own coordinate space.\u003c/p\u003e"},"Structs/Flow.html":{"name":"Flow","abstract":"\u003cp\u003eElement which lays out children horizontally, wrapping to another row when there is not enough space.\u003c/p\u003e"},"Structs/GeometryProxy.html":{"name":"GeometryProxy","abstract":"\u003cp\u003eContains information about the current layout being measured by GeometryReader\u003c/p\u003e"},"Structs/GridRow.html":{"name":"GridRow","abstract":"\u003cp\u003eLike \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Row.html\"\u003eRow\u003c/a\u003e\u003c/code\u003e, \u003ccode\u003eGridRow\u003c/code\u003e displays a list of items in a linear horizontal layout. Unlike \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Row.html\"\u003eRow\u003c/a\u003e\u003c/code\u003e, \u003ccode\u003eGridRow\u003c/code\u003e provides"},"Structs/Hidden.html":{"name":"Hidden","abstract":"\u003cp\u003e\u003ccode\u003eHidden\u003c/code\u003e conditionally hides its wrapped element.\u003c/p\u003e"},"Structs/Keyed.html":{"name":"Keyed","abstract":"\u003cp\u003e\u003ccode\u003eKeyed\u003c/code\u003e allows providing a \u003ccode\u003eHashable\u003c/code\u003e value which is used"},"Structs/LayoutAttributes.html":{"name":"LayoutAttributes","abstract":"\u003cp\u003eContains layout-related metrics for an element.\u003c/p\u003e"},"Structs/LayoutOptions.html":{"name":"LayoutOptions","abstract":"\u003cp\u003eConfiguration options for \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbEnums/LayoutMode.html#/s:11BlueprintUI10LayoutModeO11caffeinatedACvpZ\"\u003ecaffeinated\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e"},"Structs/LayoutSubelement.html":{"name":"LayoutSubelement","abstract":"\u003cp\u003eA proxy that represents one child element of a layout.\u003c/p\u003e"},"Structs/LayoutWriter.html":{"name":"LayoutWriter","abstract":"\u003cp\u003eA parent element which allows arbitrary, custom layout and positioning of its children.\u003c/p\u003e"},"Structs/LifecycleObserver.html":{"name":"LifecycleObserver","abstract":"\u003cp\u003eAllows element lifecycle callbacks to be inserted anywhere into the element tree.\u003c/p\u003e"},"Structs/Opacity.html":{"name":"Opacity","abstract":"\u003cp\u003eChanges the opacity of the wrapped element.\u003c/p\u003e"},"Structs/StackLayout.html":{"name":"StackLayout","abstract":"\u003cp\u003eA layout implementation that linearly lays out an array of children along either the horizontal or vertical axis.\u003c/p\u003e"},"Structs/TintAdjustmentMode.html":{"name":"TintAdjustmentMode","abstract":"\u003cp\u003e\u003ccode\u003eTintAdjustmentMode\u003c/code\u003e conditionally modifies the tint adjustment mode of its wrapped element.\u003c/p\u003e"},"Structs/Transformed.html":{"name":"Transformed","abstract":"\u003cp\u003eChanges the transform of the wrapped element.\u003c/p\u003e"},"Structs/UnitPoint.html":{"name":"UnitPoint","abstract":"\u003cp\u003eA normalized point in an element\u0026rsquo;s coordinate space.\u003c/p\u003e"},"Structs/UserInteractionEnabled.html":{"name":"UserInteractionEnabled","abstract":"\u003cp\u003e\u003ccode\u003eUserInteractionEnabled\u003c/code\u003e conditionally enables user interaction of its wrapped element.\u003c/p\u003e"},"Structs/SizeConstraint.html":{"name":"SizeConstraint","abstract":"\u003cp\u003eDefines the maximum size for a measurement.\u003c/p\u003e"},"Structs/AnimationAttributes.html":{"name":"AnimationAttributes","abstract":"\u003cp\u003eUIView animation configuration values.\u003c/p\u003e"},"Structs/AccessibilityFocus.html":{"name":"AccessibilityFocus","abstract":"\u003cp\u003eEnables VoiceOver focus to jump to the wrapped element via a trigger that can be manually fired.\u003c/p\u003e"},"Structs/URLHandlerEnvironmentKey.html":{"name":"URLHandlerEnvironmentKey"},"Structs/EditingMenu.html":{"name":"EditingMenu","abstract":"\u003cp\u003eAllows showing the system\u0026rsquo;s \u003ccode\u003eUIMenuController\u003c/code\u003e editing menu.\u003c/p\u003e"},"Structs/EditingMenuItem.html":{"name":"EditingMenuItem","abstract":"\u003cp\u003eA single item in an editing menu.\u003c/p\u003e"},"Structs/TextShadow.html":{"name":"TextShadow","abstract":"\u003cp\u003eDescribes a shadow that can be applied to text elements, like \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Label.html\"\u003eLabel\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e"},"Protocols/URLHandler.html#/s:25BlueprintUICommonControls10URLHandlerP5onTap3urly10Foundation3URLV_tF":{"name":"onTap(url:)","parent_name":"URLHandler"},"Protocols/NativeView.html#/s:11BlueprintUI10NativeViewPAASo6UIViewCRbzrlE8describeyAA0D11DescriptionVyAH13ConfigurationVy_xGzXEFZ":{"name":"describe(_:)","abstract":"\u003cp\u003eGenerates a view description for the receiving class.","parent_name":"NativeView"},"Protocols/Measurable.html#/s:11BlueprintUI10MeasurableP7measure2inSo6CGSizeVAA14SizeConstraintV_tF":{"name":"measure(in:)","abstract":"\u003cp\u003eMeasures the required size of the receiver.\u003c/p\u003e","parent_name":"Measurable"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementPxycfc":{"name":"init()","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementP6layoutAA0C6LayoutVvp":{"name":"layout","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementP8childrenSayAA0D0_p7element_AA0C6LayoutV6TraitsV6traitss11AnyHashableVSg3keytGvp":{"name":"children","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementPAAEyxyxzXEcfc":{"name":"init(_:)","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementPAAE3add12growPriority06shrinkG014alignmentGuide3key5childy14CoreFoundation7CGFloatV_A2lA0D10DimensionsVcSgs11AnyHashableVSgAA0D0_ptF":{"name":"add(growPriority:shrinkPriority:alignmentGuide:key:child:)","abstract":"\u003cp\u003eAdds a given child element to the stack.\u003c/p\u003e","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementPAAE8addFixed14alignmentGuide3key5childy14CoreFoundation7CGFloatVAA0D10DimensionsVcSg_s11AnyHashableVSgAA0D0_ptF":{"name":"addFixed(alignmentGuide:key:child:)","abstract":"\u003cp\u003eConvenience method for adding a child with a grow and shrink priority of 0.0.\u003c/p\u003e","parent_name":"StackElement"},"Protocols/StackElement.html#/s:11BlueprintUI12StackElementPAAE11addFlexible14alignmentGuide3key5childy14CoreFoundation7CGFloatVAA0D10DimensionsVcSg_s11AnyHashableVSgAA0D0_ptF":{"name":"addFlexible(alignmentGuide:key:child:)","abstract":"\u003cp\u003eConvenience method for adding a child with a grow and shrink priority of 1.0.\u003c/p\u003e","parent_name":"StackElement"},"Protocols/CaffeinatedSingleChildLayout.html#/s:11BlueprintUI28CaffeinatedSingleChildLayoutP10Subelementa":{"name":"Subelement","parent_name":"CaffeinatedSingleChildLayout"},"Protocols/CaffeinatedSingleChildLayout.html#/s:11BlueprintUI28CaffeinatedSingleChildLayoutP5CacheQa":{"name":"Cache","abstract":"\u003cp\u003eCached values associated with the layout instance.\u003c/p\u003e","parent_name":"CaffeinatedSingleChildLayout"},"Protocols/CaffeinatedSingleChildLayout.html#/s:11BlueprintUI28CaffeinatedSingleChildLayoutP12sizeThatFits8proposal10subelement11environment5cacheSo6CGSizeVAA14SizeConstraintV_AA0F10SubelementVAA11EnvironmentV5CacheQzztF":{"name":"sizeThatFits(proposal:subelement:environment:cache:)","abstract":"\u003cp\u003eReturns the size of the element, given a proposed size constraint and the container\u0026rsquo;s","parent_name":"CaffeinatedSingleChildLayout"},"Protocols/CaffeinatedSingleChildLayout.html#/s:11BlueprintUI28CaffeinatedSingleChildLayoutP15placeSubelement2in10subelement11environment5cacheySo6CGSizeV_AA0fH0VAA11EnvironmentV5CacheQzztF":{"name":"placeSubelement(in:subelement:environment:cache:)","abstract":"\u003cp\u003eAssigns a position to the layout’s subelement.\u003c/p\u003e","parent_name":"CaffeinatedSingleChildLayout"},"Protocols/CaffeinatedSingleChildLayout.html#/s:11BlueprintUI28CaffeinatedSingleChildLayoutP9makeCache10subelement11environment0H0QzAA0F10SubelementV_AA11EnvironmentVtF":{"name":"makeCache(subelement:environment:)","abstract":"\u003cp\u003eCreates and initializes a cache for a layout instance.\u003c/p\u003e","parent_name":"CaffeinatedSingleChildLayout"},"Protocols/LegacySingleChildLayout.html#/s:11BlueprintUI23LegacySingleChildLayoutP7measure2in5childSo6CGSizeVAA14SizeConstraintV_AA10Measurable_ptF":{"name":"measure(in:child:)","abstract":"\u003cp\u003eComputes the size that this layout requires\u003c/p\u003e","parent_name":"LegacySingleChildLayout"},"Protocols/LegacySingleChildLayout.html#/s:11BlueprintUI23LegacySingleChildLayoutP6layout4size5childAA0F10AttributesVSo6CGSizeV_AA10Measurable_ptF":{"name":"layout(size:child:)","abstract":"\u003cp\u003eGenerates layout attributes for the child.\u003c/p\u003e","parent_name":"LegacySingleChildLayout"},"Protocols/CaffeinatedLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP11Subelementsa":{"name":"Subelements","parent_name":"CaffeinatedLayout"},"Protocols/CaffeinatedLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP5CacheQa":{"name":"Cache","abstract":"\u003cp\u003eCached values associated with the layout instance.\u003c/p\u003e","parent_name":"CaffeinatedLayout"},"Protocols/CaffeinatedLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP12sizeThatFits8proposal11subelements11environment5cacheSo6CGSizeVAA14SizeConstraintV_SayAA0D10SubelementVGAA11EnvironmentV5CacheQzztF":{"name":"sizeThatFits(proposal:subelements:environment:cache:)","abstract":"\u003cp\u003eReturns the size of the composite element, given a proposed size constraint and the","parent_name":"CaffeinatedLayout"},"Protocols/CaffeinatedLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP16placeSubelements2in11subelements11environment5cacheySo6CGSizeV_SayAA0D10SubelementVGAA11EnvironmentV5CacheQzztF":{"name":"placeSubelements(in:subelements:environment:cache:)","abstract":"\u003cp\u003eAssigns positions to each of the layout’s subelements.\u003c/p\u003e","parent_name":"CaffeinatedLayout"},"Protocols/CaffeinatedLayout.html#/s:11BlueprintUI17CaffeinatedLayoutP9makeCache11subelements11environment0F0QzSayAA0D10SubelementVG_AA11EnvironmentVtF":{"name":"makeCache(subelements:environment:)","abstract":"\u003cp\u003eCreates and initializes a cache for a layout instance.\u003c/p\u003e","parent_name":"CaffeinatedLayout"},"Protocols/LegacyLayout.html#/s:11BlueprintUI12LegacyLayoutP6TraitsQa":{"name":"Traits","abstract":"\u003cp\u003ePer-item metadata that is used during the measuring and layout pass.\u003c/p\u003e","parent_name":"LegacyLayout"},"Protocols/LegacyLayout.html#/s:11BlueprintUI12LegacyLayoutP7measure2in5itemsSo6CGSizeVAA14SizeConstraintV_Say6TraitsQz6traits_AA10Measurable_p7contenttGtF":{"name":"measure(in:items:)","abstract":"\u003cp\u003eComputes the size that this layout requires in a layout, given an array of children and","parent_name":"LegacyLayout"},"Protocols/LegacyLayout.html#/s:11BlueprintUI12LegacyLayoutP6layout4size5itemsSayAA0D10AttributesVGSo6CGSizeV_Say6TraitsQz6traits_AA10Measurable_p7contenttGtF":{"name":"layout(size:items:)","abstract":"\u003cp\u003eGenerates layout attributes for the given items.\u003c/p\u003e","parent_name":"LegacyLayout"},"Protocols/LegacyLayout.html#/s:11BlueprintUI12LegacyLayoutP13defaultTraits0F0QzvpZ":{"name":"defaultTraits","abstract":"\u003cp\u003eReturns a default traits object.\u003c/p\u003e","parent_name":"LegacyLayout"},"Protocols/ElementBuilderChild.html#/s:11BlueprintUI19ElementBuilderChildPyxAA0C0_pcfc":{"name":"init(_:)","parent_name":"ElementBuilderChild"},"Protocols/AlignmentID.html#/s:11BlueprintUI11AlignmentIDP12defaultValue2in14CoreFoundation7CGFloatVAA17ElementDimensionsV_tFZ":{"name":"defaultValue(in:)","abstract":"\u003cp\u003eReturns the value of the corresponding guide, in \u003ccode\u003econtext\u003c/code\u003e, when not","parent_name":"AlignmentID"},"Protocols/UIViewElement.html#/s:11BlueprintUI13UIViewElementP0C4TypeQa":{"name":"UIViewType","abstract":"\u003cp\u003eThe type of the view associated with the element.\u003c/p\u003e","parent_name":"UIViewElement"},"Protocols/UIViewElement.html#/s:11BlueprintUI13UIViewElementP04makeC00C4TypeQzyF":{"name":"makeUIView()","abstract":"\u003cp\u003eCreate and return a new instance of the provided view type.\u003c/p\u003e","parent_name":"UIViewElement"},"Protocols/UIViewElement.html#/s:11BlueprintUI13UIViewElementP06updateC0_4withy0C4TypeQz_AA0cD7ContextVtF":{"name":"updateUIView(_:with:)","abstract":"\u003cp\u003eUpdate the view instance with the content from the element. The context provides additional","parent_name":"UIViewElement"},"Protocols/UIViewElement.html#/s:11BlueprintUI13UIViewElementP4size_8thatFitsSo6CGSizeVAG_0C4TypeQztF":{"name":"size(_:thatFits:)","abstract":"\u003cp\u003eReturns the sizing measurement for the element for the provided","parent_name":"UIViewElement"},"Protocols/UIViewElement.html#/s:11BlueprintUI13UIViewElementPAAE7contentAA0D7ContentVvp":{"name":"content","abstract":"\u003cp\u003eDefer to the reused measurement view to provide the size of the element.\u003c/p\u003e","parent_name":"UIViewElement"},"Protocols/UIViewElement.html#/s:11BlueprintUI13UIViewElementPAAE22backingViewDescription4withAA0fG0VSgAA0fG7ContextV_tF":{"name":"backingViewDescription(with:)","abstract":"\u003cp\u003eProvide the view for the element.\u003c/p\u003e","parent_name":"UIViewElement"},"Protocols/BlueprintViewMetricsDelegate.html#/s:11BlueprintUI0A19ViewMetricsDelegateP09blueprintC0_19completedRenderWithyAA0aC0C_AA0achD0VtF":{"name":"blueprintView(_:completedRenderWith:)","parent_name":"BlueprintViewMetricsDelegate"},"Protocols/AttributedTextKey.html#/s:11BlueprintUI17AttributedTextKeyP5ValueQa":{"name":"Value","parent_name":"AttributedTextKey"},"Protocols/AttributedTextKey.html#/s:11BlueprintUI17AttributedTextKeyP4nameSo018NSAttributedStringE0avpZ":{"name":"name","parent_name":"AttributedTextKey"},"Protocols/AttributedTextKey.html":{"name":"AttributedTextKey","abstract":"\u003cp\u003eDefine \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AttributedText.html\"\u003eAttributedText\u003c/a\u003e\u003c/code\u003e keys using this protocol. Keys must have an attribute name"},"Protocols/BlueprintViewMetricsDelegate.html":{"name":"BlueprintViewMetricsDelegate","abstract":"\u003cp\u003eProvides performance information for blueprint layouts and updates.\u003c/p\u003e"},"Protocols/UIViewElement.html":{"name":"UIViewElement","abstract":"\u003cp\u003eAn element type which makes it easier to wrap an existing \u003ccode\u003eUIView\u003c/code\u003e instance that"},"Protocols/AlignmentID.html":{"name":"AlignmentID","abstract":"\u003cp\u003eTypes used to identify alignment guides.\u003c/p\u003e"},"Protocols/ElementBuilderChild.html":{"name":"ElementBuilderChild","abstract":"\u003cp\u003eDefines a way for an\u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/Element.html\"\u003eElement\u003c/a\u003e\u003c/code\u003e to be implicitly converted into the conforming type (the child of a container)."},"Protocols.html#/s:11BlueprintUI6LayoutP":{"name":"Layout","abstract":"\u003cp\u003eA type that defines the geometry of a collection of elements.\u003c/p\u003e"},"Protocols/LegacyLayout.html":{"name":"LegacyLayout"},"Protocols/CaffeinatedLayout.html":{"name":"CaffeinatedLayout"},"Protocols.html#/s:11BlueprintUI17SingleChildLayoutP":{"name":"SingleChildLayout","abstract":"\u003cp\u003eA type that defines the geometry of a single element.\u003c/p\u003e"},"Protocols/LegacySingleChildLayout.html":{"name":"LegacySingleChildLayout"},"Protocols/CaffeinatedSingleChildLayout.html":{"name":"CaffeinatedSingleChildLayout"},"Protocols/StackElement.html":{"name":"StackElement","abstract":"\u003cp\u003eConforming types (Row and Column) act as StackLayout powered containers.\u003c/p\u003e"},"Protocols/Measurable.html":{"name":"Measurable","abstract":"\u003cp\u003eConforming types can calculate the size that they require within a layout.\u003c/p\u003e"},"Protocols/NativeView.html":{"name":"NativeView","abstract":"\u003cp\u003eMarker protocol used by generic extensions to native views (e.g. \u003ccode\u003eUIView\u003c/code\u003e).\u003c/p\u003e"},"Protocols/URLHandler.html":{"name":"URLHandler","abstract":"\u003cp\u003eConform to this protocol to handle links tapped in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AttributedLabel.html\"\u003eAttributedLabel\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e"},"Extensions/UIOffset.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"UIOffset"},"Extensions/AXCustomContent.html#/s:So15AXCustomContentC25BlueprintUICommonControlsEyAbC20AccessibilityElementV06CustomB0Vcfc":{"name":"init(_:)","parent_name":"AXCustomContent"},"Extensions/AXCustomContent.html#/s:So15AXCustomContentC25BlueprintUICommonControlsE5label5value10importanceABSS_SSSgSo0aB10ImportanceVtcfc":{"name":"init(label:value:importance:)","parent_name":"AXCustomContent"},"Extensions/UIAccessibilityTraits.html#/s:So21UIAccessibilityTraitsa25BlueprintUICommonControlsE4withABShyAC20AccessibilityElementV5TraitOG_tcfc":{"name":"init(with:)","parent_name":"UIAccessibilityTraits"},"Extensions/ElementBuilder.html#/s:11BlueprintUI7BuilderVA2A07ElementC5ChildRzlE15buildExpressionySayxGAA0D0_pFZ":{"name":"buildExpression(_:)","abstract":"\u003cp\u003eAllow an Element to be implicitly converted into \u003ccode\u003eChild\u003c/code\u003e.\u003c/p\u003e","parent_name":"ElementBuilder"},"Extensions/ElementBuilder.html#/s:11BlueprintUI7BuilderVA2A07ElementC5ChildRzlE15buildExpressionySayxGAA0D0_pSgFZ":{"name":"buildExpression(_:)","abstract":"\u003cp\u003eAllow an Optional Element to be unwrapped and implicitly converted into \u003ccode\u003eChild\u003c/code\u003e.\u003c/p\u003e","parent_name":"ElementBuilder"},"Extensions/ElementBuilder.html#/s:11BlueprintUI7BuilderVA2A07ElementC5ChildRzlE15buildExpressionySayxGSayAA0D0_pGFZ":{"name":"buildExpression(_:)","abstract":"\u003cp\u003eAllow Elements to be implicitly converted into \u003ccode\u003eChild\u003c/code\u003e.\u003c/p\u003e","parent_name":"ElementBuilder"},"Extensions/ElementBuilder.html#/s:11BlueprintUI7BuilderVA2A7OverlayV5ChildVRszlE15buildExpressionySayAGGAA5KeyedVFZ":{"name":"buildExpression(_:)","parent_name":"ElementBuilder"},"Extensions/ElementBuilder.html#/s:11BlueprintUI7BuilderVA2A11StackLayoutV5ChildVRszlE15buildExpressionySayAGGAA5KeyedVFZ":{"name":"buildExpression(_:)","parent_name":"ElementBuilder"},"Extensions/FloatingPoint.html#/s:SF11BlueprintUIE17replacingInfinity4withxx_tF":{"name":"replacingInfinity(with:)","abstract":"\u003cp\u003eReturns \u003ccode\u003ereplacement\u003c/code\u003e if \u003ccode\u003eself.isInfinite\u003c/code\u003e is \u003ccode\u003etrue\u003c/code\u003e, or \u003ccode\u003eself\u003c/code\u003e if \u003ccode\u003eself\u003c/code\u003e is finite.\u003c/p\u003e","parent_name":"FloatingPoint"},"Extensions/FloatingPoint.html#/s:SF11BlueprintUIE5round_2byys25FloatingPointRoundingRuleO_xtF":{"name":"round(_:by:)","abstract":"\u003cp\u003eRounds this value to the specified scale, where the scale is the number of rounding stops per integer.\u003c/p\u003e","parent_name":"FloatingPoint"},"Extensions/FloatingPoint.html#/s:SF11BlueprintUIE7rounded_2byxs25FloatingPointRoundingRuleO_xtF":{"name":"rounded(_:by:)","abstract":"\u003cp\u003eReturns this value rounded to the specified scale, where the scale is the number of rounding stops per integer.\u003c/p\u003e","parent_name":"FloatingPoint"},"Extensions/CGSize.html#/s:So6CGSizeV11BlueprintUIE8infinityABvpZ":{"name":"infinity","abstract":"\u003cp\u003eA size with \u003ccode\u003einfinity\u003c/code\u003e in both dimensions.\u003c/p\u003e","parent_name":"CGSize"},"Extensions/CGSize.html#/s:So6CGSizeV11BlueprintUIE17replacingInfinity4withA2B_tF":{"name":"replacingInfinity(with:)","abstract":"\u003cp\u003eReturns a size with infinite dimensions replaced by the values from the given replacement.\u003c/p\u003e","parent_name":"CGSize"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E7iPhone7ACvpZ":{"name":"iPhone7","abstract":"\u003cp\u003eiPhone 7\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E11iPhone7PlusACvpZ":{"name":"iPhone7Plus","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E7iPhone8ACvpZ":{"name":"iPhone8","abstract":"\u003cp\u003eiPhone 8\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E11iPhone8PlusACvpZ":{"name":"iPhone8Plus","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E10iPhoneSE_1ACvpZ":{"name":"iPhoneSE_1","abstract":"\u003cp\u003eiPhone SE\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E10iPhoneSE_2ACvpZ":{"name":"iPhoneSE_2","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E7iPhoneXACvpZ":{"name":"iPhoneX","abstract":"\u003cp\u003eiPhone X\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E8iPhoneXsACvpZ":{"name":"iPhoneXs","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E11iPhoneXsMaxACvpZ":{"name":"iPhoneXsMax","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E8iPhoneXrACvpZ":{"name":"iPhoneXr","abstract":"\u003cp\u003eiPhone Xr\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E10iPadMini_4ACvpZ":{"name":"iPadMini_4","abstract":"\u003cp\u003eiPad Mini\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E10iPadMini_5ACvpZ":{"name":"iPadMini_5","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E9iPadAir_2ACvpZ":{"name":"iPadAir_2","abstract":"\u003cp\u003eiPad Air\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E9iPadAir_3ACvpZ":{"name":"iPadAir_3","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E6iPad_5ACvpZ":{"name":"iPad_5","abstract":"\u003cp\u003eiPad\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E6iPad_6ACvpZ":{"name":"iPad_6","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E11iPadPro_9_7ACvpZ":{"name":"iPadPro_9_7","abstract":"\u003cp\u003eiPad Pro\u003c/p\u003e","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E12iPadPro_10_5ACvpZ":{"name":"iPadPro_10_5","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E12iPadPro_11_1ACvpZ":{"name":"iPadPro_11_1","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E12iPadPro_11_2ACvpZ":{"name":"iPadPro_11_2","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E14iPadPro_12_9_1ACvpZ":{"name":"iPadPro_12_9_1","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E14iPadPro_12_9_2ACvpZ":{"name":"iPadPro_12_9_2","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html#/s:7SwiftUI13PreviewDeviceV09BlueprintB0E14iPadPro_12_9_3ACvpZ":{"name":"iPadPro_12_9_3","parent_name":"PreviewDevice"},"Extensions/PreviewDevice.html":{"name":"PreviewDevice","abstract":"\u003cp\u003eThe available devices to be used for previewing elements in an Xcode preview.\u003c/p\u003e"},"Extensions/CGSize.html":{"name":"CGSize"},"Extensions/FloatingPoint.html":{"name":"FloatingPoint"},"Extensions/ElementBuilder.html":{"name":"ElementBuilder"},"Extensions.html#/c:objc(cs)UIView":{"name":"UIView"},"Extensions/UIAccessibilityTraits.html":{"name":"UIAccessibilityTraits"},"Extensions/AXCustomContent.html":{"name":"AXCustomContent"},"Extensions/UIOffset.html":{"name":"UIOffset"},"Enums/LayoutMode.html#/s:11BlueprintUI10LayoutModeO7defaultACvpZ":{"name":"default","parent_name":"LayoutMode"},"Enums/LayoutMode.html#/s:11BlueprintUI10LayoutModeO6legacyyA2CmF":{"name":"legacy","abstract":"\u003cp\u003eThe \u0026ldquo;standard\u0026rdquo; layout system.\u003c/p\u003e","parent_name":"LayoutMode"},"Enums/LayoutMode.html#/s:11BlueprintUI10LayoutModeO11caffeinatedyAcA0C7OptionsV_tcACmF":{"name":"caffeinated(options:)","abstract":"\u003cp\u003eA newer layout system with some optimizations made possible by ensuring elements adhere","parent_name":"LayoutMode"},"Enums/LayoutMode.html#/s:11BlueprintUI10LayoutModeO11caffeinatedACvpZ":{"name":"caffeinated","abstract":"\u003cp\u003eA newer layout system with some optimizations made possible by ensuring elements adhere","parent_name":"LayoutMode"},"Enums/LayoutMode.html#/s:11BlueprintUI10LayoutModeO4nameSSvp":{"name":"name","abstract":"\u003cp\u003eThe name of the layout mode.\u003c/p\u003e","parent_name":"LayoutMode"},"Enums/LayoutMode.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"LayoutMode"},"Enums/BlueprintLogging/Config.html#/s:11BlueprintUI0A7LoggingO6ConfigV21recordElementMeasuresSbvp":{"name":"recordElementMeasures","abstract":"\u003cp\u003eWhen \u003ccode\u003etrue\u003c/code\u003e, timing data will be logged when measuring each \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/Element.html\"\u003eElement\u003c/a\u003e\u003c/code\u003e\u003c/p\u003e","parent_name":"Config"},"Enums/BlueprintLogging/Config.html#/s:11BlueprintUI0A7LoggingO6ConfigV21recordElementMeasuresAESb_tcfc":{"name":"init(recordElementMeasures:)","parent_name":"Config"},"Enums/BlueprintLogging/Config.html#/s:11BlueprintUI0A7LoggingO6ConfigV4liteAEvpZ":{"name":"lite","abstract":"\u003cp\u003eLogging configuration that will not record measurement data for all \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/Element.html\"\u003eElement\u003c/a\u003e\u003c/code\u003es.","parent_name":"Config"},"Enums/BlueprintLogging/Config.html#/s:11BlueprintUI0A7LoggingO6ConfigV7verboseAEvpZ":{"name":"verbose","abstract":"\u003cp\u003eLogging configuration that includes measurement data.","parent_name":"Config"},"Enums/BlueprintLogging/Config.html":{"name":"Config","abstract":"\u003cp\u003eConfiguration for logging options\u003c/p\u003e","parent_name":"BlueprintLogging"},"Enums/BlueprintLogging.html#/s:11BlueprintUI0A7LoggingO6configAC6ConfigVvpZ":{"name":"config","abstract":"\u003cp\u003eLogging configuration\u003c/p\u003e","parent_name":"BlueprintLogging"},"Enums/BlueprintLogging.html#/s:11BlueprintUI0A7LoggingO9isEnabledSbvpZ":{"name":"isEnabled","abstract":"\u003cp\u003eIf enabled, Blueprint will emit signpost logs. You can view these logs in Instruments to","parent_name":"BlueprintLogging"},"Enums/LinkKey.html#/s:11BlueprintUI7LinkKeyO5Valuea":{"name":"Value","parent_name":"LinkKey"},"Enums/LinkKey.html#/s:11BlueprintUI7LinkKeyO4nameSo018NSAttributedStringD0avpZ":{"name":"name","parent_name":"LinkKey"},"Enums/ParagraphStyleKey.html#/s:11BlueprintUI17ParagraphStyleKeyO5Valuea":{"name":"Value","parent_name":"ParagraphStyleKey"},"Enums/ParagraphStyleKey.html#/s:11BlueprintUI17ParagraphStyleKeyO4nameSo018NSAttributedStringE0avpZ":{"name":"name","parent_name":"ParagraphStyleKey"},"Enums/UnderlineColorKey.html#/s:11BlueprintUI17UnderlineColorKeyO5Valuea":{"name":"Value","parent_name":"UnderlineColorKey"},"Enums/UnderlineColorKey.html#/s:11BlueprintUI17UnderlineColorKeyO4nameSo018NSAttributedStringE0avpZ":{"name":"name","parent_name":"UnderlineColorKey"},"Enums/UnderlineStyleKey.html#/s:11BlueprintUI17UnderlineStyleKeyO5Valuea":{"name":"Value","parent_name":"UnderlineStyleKey"},"Enums/UnderlineStyleKey.html#/s:11BlueprintUI17UnderlineStyleKeyO4nameSo018NSAttributedStringE0avpZ":{"name":"name","parent_name":"UnderlineStyleKey"},"Enums/TrackingKey.html#/s:11BlueprintUI11TrackingKeyO5Valuea":{"name":"Value","parent_name":"TrackingKey"},"Enums/TrackingKey.html#/s:11BlueprintUI11TrackingKeyO4nameSo018NSAttributedStringD0avpZ":{"name":"name","parent_name":"TrackingKey"},"Enums/ColorKey.html#/s:11BlueprintUI8ColorKeyO5Valuea":{"name":"Value","parent_name":"ColorKey"},"Enums/ColorKey.html#/s:11BlueprintUI8ColorKeyO4nameSo018NSAttributedStringD0avpZ":{"name":"name","parent_name":"ColorKey"},"Enums/FontKey.html#/s:11BlueprintUI7FontKeyO5Valuea":{"name":"Value","parent_name":"FontKey"},"Enums/FontKey.html#/s:11BlueprintUI7FontKeyO4nameSo018NSAttributedStringD0avpZ":{"name":"name","parent_name":"FontKey"},"Enums/FontKey.html":{"name":"FontKey"},"Enums/ColorKey.html":{"name":"ColorKey"},"Enums/TrackingKey.html":{"name":"TrackingKey"},"Enums/UnderlineStyleKey.html":{"name":"UnderlineStyleKey"},"Enums/UnderlineColorKey.html":{"name":"UnderlineColorKey"},"Enums/ParagraphStyleKey.html":{"name":"ParagraphStyleKey"},"Enums/LinkKey.html":{"name":"LinkKey"},"Enums/BlueprintLogging.html":{"name":"BlueprintLogging","abstract":"\u003cp\u003eNamespace for logging config.\u003c/p\u003e"},"Enums/LayoutMode.html":{"name":"LayoutMode","abstract":"\u003cp\u003eControls the layout system that Blueprint uses to lay out elements.\u003c/p\u003e"},"Classes/FocusTrigger.html#/s:11BlueprintUI12FocusTriggerCACycfc":{"name":"init()","abstract":"\u003cp\u003eCreate a new trigger, not yet bound to any view.\u003c/p\u003e","parent_name":"FocusTrigger"},"Classes/FocusTrigger.html#/s:11BlueprintUI12FocusTriggerC11focusActionyycSgvp":{"name":"focusAction","abstract":"\u003cp\u003eThe action to be invoked on focus, which will be set by a backing view.\u003c/p\u003e","parent_name":"FocusTrigger"},"Classes/FocusTrigger.html#/s:11BlueprintUI12FocusTriggerC10blurActionyycSgvp":{"name":"blurAction","abstract":"\u003cp\u003eThe action to be invoked on blur, which will be set by a backing view.\u003c/p\u003e","parent_name":"FocusTrigger"},"Classes/FocusTrigger.html#/s:11BlueprintUI12FocusTriggerC5focusyyF":{"name":"focus()","abstract":"\u003cp\u003eFocuses the backing view bound to this trigger.\u003c/p\u003e","parent_name":"FocusTrigger"},"Classes/FocusTrigger.html#/s:11BlueprintUI12FocusTriggerC4bluryyF":{"name":"blur()","abstract":"\u003cp\u003eBlurs (removes focus from) the backing view bound to this trigger.\u003c/p\u003e","parent_name":"FocusTrigger"},"Classes/FocusTrigger.html":{"name":"FocusTrigger","abstract":"\u003cp\u003eA trigger for focus and blur actions.\u003c/p\u003e"},"Protocols/EnvironmentKey.html#/s:11BlueprintUI14EnvironmentKeyP5ValueQa":{"name":"Value","abstract":"\u003cp\u003eThe type of value stored by this key.\u003c/p\u003e","parent_name":"EnvironmentKey"},"Protocols/EnvironmentKey.html#/s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ":{"name":"defaultValue","abstract":"\u003cp\u003eThe default value that will be vended by an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Environment.html\"\u003eEnvironment\u003c/a\u003e\u003c/code\u003e for this key if no other value","parent_name":"EnvironmentKey"},"Structs/Environment/LayoutDirection.html#/s:11BlueprintUI11EnvironmentV15LayoutDirectionO11leftToRightyA2EmF":{"name":"leftToRight","parent_name":"LayoutDirection"},"Structs/Environment/LayoutDirection.html#/s:11BlueprintUI11EnvironmentV15LayoutDirectionO11rightToLeftyA2EmF":{"name":"rightToLeft","parent_name":"LayoutDirection"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV5emptyACvpZ":{"name":"empty","abstract":"\u003cp\u003eA default \u0026ldquo;empty\u0026rdquo; environment, with no values overridden.","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentVy5ValueQzxmcAA0C3KeyRzluip":{"name":"subscript(_:)","abstract":"\u003cp\u003eGets or sets an environment value by its key.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV22linkAccessibilityLabelSSSgvp":{"name":"linkAccessibilityLabel","abstract":"\u003cp\u003eThe localised accessibility label elements should use when handling links.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV8calendar10Foundation8CalendarVvp":{"name":"calendar","abstract":"\u003cp\u003eThe current calendar that elements should use when handling dates.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV12displayScale14CoreFoundation7CGFloatVvp":{"name":"displayScale","abstract":"\u003cp\u003eThe display scale of this environment.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment/LayoutDirection.html":{"name":"LayoutDirection","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV15layoutDirectionAC06LayoutE0Ovp":{"name":"layoutDirection","abstract":"\u003cp\u003eThe layout direction associated with the current environment.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV6locale10Foundation6LocaleVvp":{"name":"locale","abstract":"\u003cp\u003eThe current locale that elements should use.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV14safeAreaInsetsSo06UIEdgeF0Vvp":{"name":"safeAreaInsets","abstract":"\u003cp\u003eThe insets representing the safe area for content.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV8timeZone10Foundation04TimeE0Vvp":{"name":"timeZone","abstract":"\u003cp\u003eThe current time zone that elements should use when handling dates.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV10windowSizeSo6CGSizeVSgvp":{"name":"windowSize","abstract":"\u003cp\u003eThe size of the window that contains the hosting \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbClasses/BlueprintView.html\"\u003eBlueprintView\u003c/a\u003e\u003c/code\u003e.","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV10layoutModeAA06LayoutE0Ovp":{"name":"layoutMode","abstract":"\u003cp\u003eThis mode will be inherited by descendant BlueprintViews that do not have an explicit","parent_name":"Environment"},"Structs/Environment.html#/s:11BlueprintUI11EnvironmentV0A16UICommonControlsE10urlHandlerAD10URLHandler_pvp":{"name":"urlHandler","abstract":"\u003cp\u003eThe link handler to use to open links tapped in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AttributedLabel.html\"\u003eAttributedLabel\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"Environment"},"Structs/Environment.html":{"name":"Environment","abstract":"\u003cp\u003eEnvironment is a container for values to be passed down an element tree.\u003c/p\u003e"},"Protocols/EnvironmentKey.html":{"name":"EnvironmentKey","abstract":"\u003cp\u003eTypes conforming to this protocol can be used as keys in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Environment.html\"\u003eEnvironment\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e"},"Structs/TransitionContainer.html#/s:25BlueprintUICommonControls19TransitionContainerV09appearingD00A2UI010VisibilityD0VSgvp":{"name":"appearingTransition","abstract":"\u003cp\u003eThe transition to apply when the wrapped element is appearing.\u003c/p\u003e","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:25BlueprintUICommonControls19TransitionContainerV012disappearingD00A2UI010VisibilityD0VSgvp":{"name":"disappearingTransition","abstract":"\u003cp\u003eThe transition to apply when the wrapped element is disappearing.\u003c/p\u003e","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:25BlueprintUICommonControls19TransitionContainerV06layoutD00A2UI06LayoutD0Ovp":{"name":"layoutTransition","abstract":"\u003cp\u003eThe transition to apply when the wrapped element\u0026rsquo;s layout is changing.\u003c/p\u003e","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:25BlueprintUICommonControls19TransitionContainerV14wrappedElement0A2UI0G0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe element to which transitions are being applied.\u003c/p\u003e","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:25BlueprintUICommonControls19TransitionContainerV8wrappingAC0A2UI7Element_p_tcfc":{"name":"init(wrapping:)","abstract":"\u003cp\u003eCreate a transition container wrapping an element.\u003c/p\u003e","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:25BlueprintUICommonControls19TransitionContainerV09appearingD0012disappearingD006layoutD013transitioningAC0A2UI010VisibilityD0VSg_AkH06LayoutD0OAH7Element_ptcfc":{"name":"init(appearingTransition:disappearingTransition:layoutTransition:transitioning:)","abstract":"\u003cp\u003eCreate a transition container wrapping an element.\u003c/p\u003e","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"TransitionContainer"},"Structs/TransitionContainer.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"TransitionContainer"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV4textSSvp":{"name":"text","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV11placeholderSSvp":{"name":"placeholder","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV8onChangeySScSgvp":{"name":"onChange","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV6secureSbvp":{"name":"secure","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV9isEnabledSbvp":{"name":"isEnabled","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV13textAlignmentSo06NSTextG0Vvp":{"name":"textAlignment","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV4fontSo6UIFontCvp":{"name":"font","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV9textColorSo7UIColorCvp":{"name":"textColor","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV15clearButtonModeSo06UITexte4ViewH0Vvp":{"name":"clearButtonMode","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV12keyboardTypeSo010UIKeyboardG0Vvp":{"name":"keyboardType","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV18keyboardAppearanceSo010UIKeyboardG0Vvp":{"name":"keyboardAppearance","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV22autocapitalizationTypeSo024UITextAutocapitalizationG0Vvp":{"name":"autocapitalizationType","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV18autocorrectionTypeSo020UITextAutocorrectionG0Vvp":{"name":"autocorrectionType","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV17spellCheckingTypeSo011UITextSpellgH0Vvp":{"name":"spellCheckingType","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV15textContentTypeSo06UITextgH0aSgvp":{"name":"textContentType","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV8onReturnyycSgvp":{"name":"onReturn","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV13returnKeyTypeSo08UIReturngH0Vvp":{"name":"returnKeyType","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV29enablesReturnKeyAutomaticallySbvp":{"name":"enablesReturnKeyAutomatically","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV12focusBinding0A2UI05FocusG0VSgvp":{"name":"focusBinding","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV19accessibilityTraitsShyAA20AccessibilityElementV5TraitOGSgvp":{"name":"accessibilityTraits","abstract":"\u003cp\u003eA set of accessibility traits that should be applied to the field, these will be merged with any existing traits.","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV4text9configureACSS_yACzXEtcfc":{"name":"init(text:configure:)","parent_name":"TextField"},"Structs/TextField.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"TextField"},"Structs/TextField.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV7focused4when6equalsAC0A2UI10FocusStateVyxSgG_xtSHRzlF":{"name":"focused(when:equals:)","abstract":"\u003cp\u003eModifies this text field by binding its focus state to the given state value.\u003c/p\u003e","parent_name":"TextField"},"Structs/TextField.html#/s:25BlueprintUICommonControls9TextFieldV7focused4whenAC0A2UI10FocusStateVySbG_tF":{"name":"focused(when:)","abstract":"\u003cp\u003eModifies this text field by binding its focus state to the given Boolean state value.\u003c/p\u003e","parent_name":"TextField"},"Structs/Tappable.html#/s:25BlueprintUICommonControls8TappableV14wrappedElement0A2UI0F0_pvp":{"name":"wrappedElement","parent_name":"Tappable"},"Structs/Tappable.html#/s:25BlueprintUICommonControls8TappableV5onTapyycvp":{"name":"onTap","parent_name":"Tappable"},"Structs/Tappable.html#/s:25BlueprintUICommonControls8TappableV5onTap8wrappingACyyc_0A2UI7Element_ptcfc":{"name":"init(onTap:wrapping:)","parent_name":"Tappable"},"Structs/Tappable.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Tappable"},"Structs/Tappable.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Tappable"},"Structs/Spacer.html#/s:11BlueprintUI6SpacerV4sizeSo6CGSizeVvp":{"name":"size","abstract":"\u003cp\u003eThe size that this spacer will take in a layout.\u003c/p\u003e","parent_name":"Spacer"},"Structs/Spacer.html#/s:11BlueprintUI6SpacerV4sizeACSo6CGSizeV_tcfc":{"name":"init(size:)","abstract":"\u003cp\u003eInitializes a new spacer with the given size.\u003c/p\u003e","parent_name":"Spacer"},"Structs/Spacer.html#/s:11BlueprintUI6SpacerV5width6heightAC14CoreFoundation7CGFloatV_AHtcfc":{"name":"init(width:height:)","abstract":"\u003cp\u003eInitializes a new spacer with the given width and height.\u003c/p\u003e","parent_name":"Spacer"},"Structs/Spacer.html#/s:11BlueprintUI6SpacerVyAC14CoreFoundation7CGFloatVcfc":{"name":"init(_:)","abstract":"\u003cp\u003eInitializes a new spacer with the given value for the width and height.\u003c/p\u003e","parent_name":"Spacer"},"Structs/Spacer.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Spacer"},"Structs/Spacer.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Spacer"},"Structs/SegmentedControl/Item/Width.html#/s:25BlueprintUICommonControls16SegmentedControlV4ItemV5WidthO9automaticyA2GmF":{"name":"automatic","parent_name":"Width"},"Structs/SegmentedControl/Item/Width.html#/s:25BlueprintUICommonControls16SegmentedControlV4ItemV5WidthO8specificyAG14CoreFoundation7CGFloatVcAGmF":{"name":"specific(_:)","parent_name":"Width"},"Structs/SegmentedControl/Item.html#/s:25BlueprintUICommonControls16SegmentedControlV4ItemV5titleSSvp":{"name":"title","parent_name":"Item"},"Structs/SegmentedControl/Item.html#/s:25BlueprintUICommonControls16SegmentedControlV4ItemV5widthAE5WidthOvp":{"name":"width","parent_name":"Item"},"Structs/SegmentedControl/Item.html#/s:25BlueprintUICommonControls16SegmentedControlV4ItemV8onSelectyycvp":{"name":"onSelect","parent_name":"Item"},"Structs/SegmentedControl/Item/Width.html":{"name":"Width","parent_name":"Item"},"Structs/SegmentedControl/Selection.html#/s:25BlueprintUICommonControls16SegmentedControlV9SelectionO4noneyA2EmF":{"name":"none","parent_name":"Selection"},"Structs/SegmentedControl/Selection.html#/s:25BlueprintUICommonControls16SegmentedControlV9SelectionO5indexyAESicAEmF":{"name":"index(_:)","parent_name":"Selection"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV5itemsSayAC4ItemVGvp":{"name":"items","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV9selectionAC9SelectionOvp":{"name":"selection","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV4fontSo6UIFontCvp":{"name":"font","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV13roundingScale14CoreFoundation7CGFloatVvp":{"name":"roundingScale","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV5items9configureACSayAC4ItemVG_yACzXEtcfc":{"name":"init(items:configure:)","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV9selection4font11itemBuilderA2C9SelectionO_So6UIFontCSayAC4ItemVGyXEtcfc":{"name":"init(selection:font:itemBuilder:)","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:25BlueprintUICommonControls16SegmentedControlV10appendItem5title5width8onSelectySS_AC0G0V5WidthOyyctF":{"name":"appendItem(title:width:onSelect:)","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:11BlueprintUI10MeasurableP7measure2inSo6CGSizeVAA14SizeConstraintV_tF":{"name":"measure(in:)","parent_name":"SegmentedControl"},"Structs/SegmentedControl.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"SegmentedControl"},"Structs/SegmentedControl/Selection.html":{"name":"Selection","parent_name":"SegmentedControl"},"Structs/SegmentedControl/Item.html":{"name":"Item","parent_name":"SegmentedControl"},"Structs/ScrollView/ContentOffset/ScrollingContext.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV16ScrollingContextV11contentSizeSo6CGSizeVvp":{"name":"contentSize","parent_name":"ScrollingContext"},"Structs/ScrollView/ContentOffset/ScrollingContext.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV16ScrollingContextV06scrollE6BoundsSo6CGRectVvp":{"name":"scrollViewBounds","parent_name":"ScrollingContext"},"Structs/ScrollView/ContentOffset/ScrollingContext.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV16ScrollingContextV13contentInsetsSo06UIEdgeK0Vvp":{"name":"contentInsets","parent_name":"ScrollingContext"},"Structs/ScrollView/ContentOffset/ScrollingContext.html":{"name":"ScrollingContext","parent_name":"ContentOffset"},"Structs/ScrollView/ContentOffset.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV8Providera":{"name":"Provider","parent_name":"ContentOffset"},"Structs/ScrollView/ContentOffset.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV3topAEvpZ":{"name":"top","parent_name":"ContentOffset"},"Structs/ScrollView/ContentOffset.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV6bottomAEvpZ":{"name":"bottom","parent_name":"ContentOffset"},"Structs/ScrollView/ContentOffset.html#/s:25BlueprintUICommonControls10ScrollViewV13ContentOffsetV8providerAESo7CGPointVAE16ScrollingContextVc_tcfc":{"name":"init(provider:)","parent_name":"ContentOffset"},"Structs/ScrollView/ScrollTrigger.html#/s:25BlueprintUICommonControls10ScrollViewV0D7TriggerCAEycfc":{"name":"init()","parent_name":"ScrollTrigger"},"Structs/ScrollView/ScrollTrigger.html#/s:25BlueprintUICommonControls10ScrollViewV0D7TriggerC6scroll2to8animatedyAC13ContentOffsetV_SbtF":{"name":"scroll(to:animated:)","parent_name":"ScrollTrigger"},"Structs/ScrollView/PullToRefreshBehavior.html#/s:25BlueprintUICommonControls10ScrollViewV21PullToRefreshBehaviorO8disabledyA2EmF":{"name":"disabled","parent_name":"PullToRefreshBehavior"},"Structs/ScrollView/PullToRefreshBehavior.html#/s:25BlueprintUICommonControls10ScrollViewV21PullToRefreshBehaviorO7enabledyAEyyc_tcAEmF":{"name":"enabled(action:)","parent_name":"PullToRefreshBehavior"},"Structs/ScrollView/PullToRefreshBehavior.html#/s:25BlueprintUICommonControls10ScrollViewV21PullToRefreshBehaviorO10refreshingyA2EmF":{"name":"refreshing","parent_name":"PullToRefreshBehavior"},"Structs/ScrollView/ContentSize.html#/s:25BlueprintUICommonControls10ScrollViewV11ContentSizeO12fittingWidthyA2EmF":{"name":"fittingWidth","abstract":"\u003cp\u003eThe content will fill the height of the scroller, width will be dynamic\u003c/p\u003e","parent_name":"ContentSize"},"Structs/ScrollView/ContentSize.html#/s:25BlueprintUICommonControls10ScrollViewV11ContentSizeO13fittingHeightyA2EmF":{"name":"fittingHeight","abstract":"\u003cp\u003eThe content will fill the width of the scroller, height will be dynamic\u003c/p\u003e","parent_name":"ContentSize"},"Structs/ScrollView/ContentSize.html#/s:25BlueprintUICommonControls10ScrollViewV11ContentSizeO07fittingF0yA2EmF":{"name":"fittingContent","abstract":"\u003cp\u003eThe content size will be the minimum required to fit the content.\u003c/p\u003e","parent_name":"ContentSize"},"Structs/ScrollView/ContentSize.html#/s:25BlueprintUICommonControls10ScrollViewV11ContentSizeO6customyAESo6CGSizeVcAEmF":{"name":"custom(_:)","abstract":"\u003cp\u003eManually provided content size.\u003c/p\u003e","parent_name":"ContentSize"},"Structs/ScrollView/KeyboardAdjustmentMode.html#/s:25BlueprintUICommonControls10ScrollViewV22KeyboardAdjustmentModeO4noneyA2EmF":{"name":"none","parent_name":"KeyboardAdjustmentMode"},"Structs/ScrollView/KeyboardAdjustmentMode.html#/s:25BlueprintUICommonControls10ScrollViewV22KeyboardAdjustmentModeO18adjustsWhenVisibleyA2EmF":{"name":"adjustsWhenVisible","parent_name":"KeyboardAdjustmentMode"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV14wrappedElement0A2UI0G0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe content to be scrolled.\u003c/p\u003e","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV11contentSizeAC07ContentG0Ovp":{"name":"contentSize","abstract":"\u003cp\u003eDetermines the sizing behavior of the content within the scroll view.\u003c/p\u003e","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV20alwaysBounceVerticalSbvp":{"name":"alwaysBounceVertical","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV22alwaysBounceHorizontalSbvp":{"name":"alwaysBounceHorizontal","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV12contentInsetSo12UIEdgeInsetsVvp":{"name":"contentInset","abstract":"\u003cp\u003eHow much the content of the \u003ccode\u003eScrollView\u003c/code\u003e should be inset.\u003c/p\u003e","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV16centersUnderflowSbvp":{"name":"centersUnderflow","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV015showsHorizontalD9IndicatorSbvp":{"name":"showsHorizontalScrollIndicator","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV013showsVerticalD9IndicatorSbvp":{"name":"showsVerticalScrollIndicator","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV21pullToRefreshBehaviorAC04PullghI0Ovp":{"name":"pullToRefreshBehavior","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV19keyboardDismissModeSo08UIScrolle8KeyboardgH0Vvp":{"name":"keyboardDismissMode","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV30contentInsetAdjustmentBehaviorSo08UIScrolle7ContentghI0Vvp":{"name":"contentInsetAdjustmentBehavior","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV22keyboardAdjustmentModeAC08KeyboardgH0Ovp":{"name":"keyboardAdjustmentMode","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV20delaysContentTouchesSbvp":{"name":"delaysContentTouches","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV20contentOffsetTriggerAC0dH0CSgvp":{"name":"contentOffsetTrigger","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:25BlueprintUICommonControls10ScrollViewV_8wrapping9configureA2C11ContentSizeO_0A2UI7Element_pyACzXEtcfc":{"name":"init(_:wrapping:configure:)","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"ScrollView"},"Structs/ScrollView.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"ScrollView"},"Structs/ScrollView/KeyboardAdjustmentMode.html":{"name":"KeyboardAdjustmentMode","parent_name":"ScrollView"},"Structs/ScrollView/ContentSize.html":{"name":"ContentSize","parent_name":"ScrollView"},"Structs/ScrollView/PullToRefreshBehavior.html":{"name":"PullToRefreshBehavior","parent_name":"ScrollView"},"Structs/ScrollView/ScrollTrigger.html":{"name":"ScrollTrigger","parent_name":"ScrollView"},"Structs/ScrollView/ContentOffset.html":{"name":"ContentOffset","parent_name":"ScrollView"},"Structs/Rule/Thickness.html#/s:25BlueprintUICommonControls4RuleV9ThicknessO8hairlineyA2EmF":{"name":"hairline","abstract":"\u003cp\u003eIndicates that the rule should be exactly 1 screen pixel thick,","parent_name":"Thickness"},"Structs/Rule/Thickness.html#/s:25BlueprintUICommonControls4RuleV9ThicknessO6pointsyAE14CoreFoundation7CGFloatVcAEmF":{"name":"points(_:)","abstract":"\u003cp\u003eAn exact thickness in points.\u003c/p\u003e","parent_name":"Thickness"},"Structs/Rule/Orientation.html#/s:25BlueprintUICommonControls4RuleV11OrientationO10horizontalyA2EmF":{"name":"horizontal","abstract":"\u003cp\u003eIndicates that the rule is parallel to the x axis.\u003c/p\u003e","parent_name":"Orientation"},"Structs/Rule/Orientation.html#/s:25BlueprintUICommonControls4RuleV11OrientationO8verticalyA2EmF":{"name":"vertical","abstract":"\u003cp\u003eIndicates that the rule is parallel to the y axis.\u003c/p\u003e","parent_name":"Orientation"},"Structs/Rule/Orientation.html":{"name":"Orientation","abstract":"\u003cp\u003eRepresents whether the rule is parallel to the x or y axis.\u003c/p\u003e","parent_name":"Rule"},"Structs/Rule/Thickness.html":{"name":"Thickness","abstract":"\u003cp\u003eRepresents the thickness of a rule in the direction perpendicular to its orientation.\u003c/p\u003e","parent_name":"Rule"},"Structs/Rule.html#/s:25BlueprintUICommonControls4RuleV11orientationAC11OrientationOvp":{"name":"orientation","abstract":"\u003cp\u003eWhether this rule is horizontal or vertical.\u003c/p\u003e","parent_name":"Rule"},"Structs/Rule.html#/s:25BlueprintUICommonControls4RuleV9thicknessAC9ThicknessOvp":{"name":"thickness","abstract":"\u003cp\u003eThe thickness of this rule in the direction perpendicular to its orientation.\u003c/p\u003e","parent_name":"Rule"},"Structs/Rule.html#/s:25BlueprintUICommonControls4RuleV5colorSo7UIColorCvp":{"name":"color","abstract":"\u003cp\u003eThe color that the rule should be drawn.\u003c/p\u003e","parent_name":"Rule"},"Structs/Rule.html#/s:25BlueprintUICommonControls4RuleV11orientation5color9thicknessA2C11OrientationO_So7UIColorCAC9ThicknessOtcfc":{"name":"init(orientation:color:thickness:)","abstract":"\u003cp\u003eInitializes a Rule with the given properties.\u003c/p\u003e","parent_name":"Rule"},"Structs/Rule.html#/s:11BlueprintUI12ProxyElementP21elementRepresentationAA0D0_pvp":{"name":"elementRepresentation","parent_name":"Rule"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO4fillyA2EmF":{"name":"fill","abstract":"\u003cp\u003eChildren will be stretched to fit the vertical size of the row.\u003c/p\u003e","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO5alignyAeA08VerticalD0V_tcAEmF":{"name":"align(to:)","abstract":"\u003cp\u003eUsing the specified alignment, children will be aligned relatively to each other, and","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO3topAEvpZ":{"name":"top","abstract":"\u003cp\u003eChildren will be aligned to the top edge of the row.\u003c/p\u003e","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO6centerAEvpZ":{"name":"center","abstract":"\u003cp\u003eChildren will be vertically centered in the row.\u003c/p\u003e","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO6bottomAEvpZ":{"name":"bottom","abstract":"\u003cp\u003eChildren will be aligned to the bottom edge of the row.\u003c/p\u003e","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO7leadingAEvpZ":{"name":"leading","abstract":"\u003cp\u003eChildren will be aligned to the top edge of the row.\u003c/p\u003e","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html#/s:11BlueprintUI3RowV0C9AlignmentO8trailingAEvpZ":{"name":"trailing","abstract":"\u003cp\u003eChildren will be aligned to the bottom edge of the row.\u003c/p\u003e","parent_name":"RowAlignment"},"Structs/Row/RowAlignment.html":{"name":"RowAlignment","abstract":"\u003cp\u003eDescribes how the row\u0026rsquo;s children will be vertically aligned.\u003c/p\u003e","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV8childrenSayAA7Element_p7element_AA11StackLayoutV6TraitsV6traitss11AnyHashableVSg3keytGvp":{"name":"children","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV6layoutAA11StackLayoutVvp":{"name":"layout","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowVACycfc":{"name":"init()","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV9alignment9underflow8overflow14minimumSpacing8elementsA2C0C9AlignmentO_AA11StackLayoutV21UnderflowDistributionOAL08OverflowN0O14CoreFoundation7CGFloatVSayAL5ChildVGyXEtcfc":{"name":"init(alignment:underflow:overflow:minimumSpacing:elements:)","abstract":"\u003cp\u003eInitializer using result builder to declaratively build up a stack.\u003c/p\u003e","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV19horizontalUnderflowAA11StackLayoutV0E12DistributionOvp":{"name":"horizontalUnderflow","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV18horizontalOverflowAA11StackLayoutV0E12DistributionOvp":{"name":"horizontalOverflow","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV17verticalAlignmentAC0cE0Ovp":{"name":"verticalAlignment","abstract":"\u003cp\u003eSpecifies how children will be aligned vertically.\u003c/p\u003e","parent_name":"Row"},"Structs/Row.html#/s:11BlueprintUI3RowV24minimumHorizontalSpacing14CoreFoundation7CGFloatVvp":{"name":"minimumHorizontalSpacing","parent_name":"Row"},"Structs/Overlay/Child.html#/s:11BlueprintUI7OverlayV5ChildV7elementAA7Element_pvp":{"name":"element","abstract":"\u003cp\u003eThe child element\u003c/p\u003e","parent_name":"Child"},"Structs/Overlay/Child.html#/s:11BlueprintUI7OverlayV5ChildV3keys11AnyHashableVSgvp":{"name":"key","abstract":"\u003cp\u003eAn optional key to disambiguate between view updates\u003c/p\u003e","parent_name":"Child"},"Structs/Overlay/Child.html#/s:11BlueprintUI7OverlayV5ChildV7element3keyAeA7Element_p_s11AnyHashableVSgtcfc":{"name":"init(element:key:)","abstract":"\u003cp\u003eCreate a new child.\u003c/p\u003e","parent_name":"Child"},"Structs/Overlay/Child.html#/s:11BlueprintUI7OverlayV5ChildVyAeA7Element_pcfc":{"name":"init(_:)","parent_name":"Child"},"Structs/Overlay.html#/s:11BlueprintUI7OverlayV8childrenSayAC5ChildVGvp":{"name":"children","abstract":"\u003cp\u003eAll elements displayed in the overlay.\u003c/p\u003e","parent_name":"Overlay"},"Structs/Overlay.html#/s:11BlueprintUI7OverlayV8elements9configureACSayAA7Element_pG_yACzXEtcfc":{"name":"init(elements:configure:)","abstract":"\u003cp\u003eCreates a new overlay with the provided elements.\u003c/p\u003e","parent_name":"Overlay"},"Structs/Overlay.html#/s:11BlueprintUI7OverlayV8elementsACSayAC5ChildVGyXE_tcfc":{"name":"init(elements:)","abstract":"\u003cp\u003eCreates a new overlay using a result builder.\u003c/p\u003e","parent_name":"Overlay"},"Structs/Overlay.html#/s:11BlueprintUI7OverlayV3addyyAA7Element_pF":{"name":"add(_:)","abstract":"\u003cp\u003eAdds the provided element to the overlay.\u003c/p\u003e","parent_name":"Overlay"},"Structs/Overlay.html#/s:11BlueprintUI7OverlayV3add3key5childys11AnyHashableVSg_AA7Element_ptF":{"name":"add(key:child:)","abstract":"\u003cp\u003eAdds the provided element to the overlay, above other children.\u003c/p\u003e","parent_name":"Overlay"},"Structs/Overlay.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Overlay"},"Structs/Overlay.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Overlay"},"Structs/Overlay/Child.html":{"name":"Child","abstract":"\u003cp\u003eThe child of an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Overlay.html\"\u003eOverlay\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"Overlay"},"Structs/Label/LineHeight/Alignment.html#/s:25BlueprintUICommonControls5LabelV10LineHeightO9AlignmentO3topyA2GmF":{"name":"top","abstract":"\u003cp\u003eAlign text to the top of the available line height, with extra space added at the bottom.","parent_name":"Alignment"},"Structs/Label/LineHeight/Alignment.html#/s:25BlueprintUICommonControls5LabelV10LineHeightO9AlignmentO6centeryA2GmF":{"name":"center","abstract":"\u003cp\u003eCenter text within the available line height. This makes line height behave like half-leading,","parent_name":"Alignment"},"Structs/Label/LineHeight/Alignment.html#/s:25BlueprintUICommonControls5LabelV10LineHeightO9AlignmentO6bottomyA2GmF":{"name":"bottom","abstract":"\u003cp\u003eAlign text to the bottom of the available line height, with extra space added at the top.","parent_name":"Alignment"},"Structs/Label/LineHeight/Alignment.html":{"name":"Alignment","parent_name":"LineHeight"},"Structs/Label/LineHeight.html#/s:25BlueprintUICommonControls5LabelV10LineHeightO4fontyA2EmF":{"name":"font","abstract":"\u003cp\u003eUse the default line height of the label\u0026rsquo;s font.\u003c/p\u003e","parent_name":"LineHeight"},"Structs/Label/LineHeight.html#/s:25BlueprintUICommonControls5LabelV10LineHeightO6customyAE14CoreFoundation7CGFloatV_AE9AlignmentOtcAEmF":{"name":"custom(lineHeight:alignment:)","abstract":"\u003cp\u003eUse a custom line height and alignment.\u003c/p\u003e","parent_name":"LineHeight"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV4textSSvp":{"name":"text","abstract":"\u003cp\u003eThe text to be displayed.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV4fontSo6UIFontCvp":{"name":"font","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV5colorSo7UIColorCvp":{"name":"color","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV9alignmentSo15NSTextAlignmentVvp":{"name":"alignment","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV13numberOfLinesSivp":{"name":"numberOfLines","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV13lineBreakModeSo06NSLinefG0Vvp":{"name":"lineBreakMode","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV10lineHeightAC04LineF0Ovp":{"name":"lineHeight","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV25adjustsFontSizeToFitWidthSbvp":{"name":"adjustsFontSizeToFitWidth","abstract":"\u003cp\u003eA Boolean value that determines whether the label reduces the text’s font","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV18minimumScaleFactor14CoreFoundation7CGFloatVvp":{"name":"minimumScaleFactor","abstract":"\u003cp\u003eThe minimum scale factor for the label’s text.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV36allowsDefaultTighteningForTruncationSbvp":{"name":"allowsDefaultTighteningForTruncation","abstract":"\u003cp\u003eA Boolean value that determines whether the label tightens text before truncating.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV6shadowAA10TextShadowVSgvp":{"name":"shadow","abstract":"\u003cp\u003eA shadow to display behind the label\u0026rsquo;s text. Defaults to no shadow.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV22isAccessibilityElementSbvp":{"name":"isAccessibilityElement","abstract":"\u003cp\u003eDetermines if the label should be included when navigating the UI via accessibility.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV17accessibilityHintSSSgvp":{"name":"accessibilityHint","abstract":"\u003cp\u003eA localized string that describes the result of performing an action on the element, when the result is non-obvious.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV19accessibilityTraitsShyAA20AccessibilityElementV5TraitOGSgvp":{"name":"accessibilityTraits","abstract":"\u003cp\u003eA set of accessibility traits that should be applied to the label, these will be merged with any existing traits.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV26accessibilityCustomActionsSayAA20AccessibilityElementV0F6ActionVGvp":{"name":"accessibilityCustomActions","abstract":"\u003cp\u003eAn array containing one or more \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AccessibilityElement/CustomAction.html\"\u003eAccessibilityElement.CustomAction\u003c/a\u003e\u003c/code\u003es, defining additional supported actions. Assistive technologies, such as VoiceOver, will display your custom actions to the user at appropriate times.\u003c/p\u003e","parent_name":"Label"},"Structs/Label.html#/s:25BlueprintUICommonControls5LabelV4text9configureACSS_yACzXEtcfc":{"name":"init(text:configure:)","parent_name":"Label"},"Structs/Label.html#/s:11BlueprintUI12ProxyElementP21elementRepresentationAA0D0_pvp":{"name":"elementRepresentation","parent_name":"Label"},"Structs/Label/LineHeight.html":{"name":"LineHeight","parent_name":"Label"},"Structs/Inset.html#/s:11BlueprintUI5InsetV14wrappedElementAA0E0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe wrapped element to be inset.\u003c/p\u003e","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV3top14CoreFoundation7CGFloatVvp":{"name":"top","abstract":"\u003cp\u003eThe amount to inset the content element.\u003c/p\u003e","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV6bottom14CoreFoundation7CGFloatVvp":{"name":"bottom","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV4left14CoreFoundation7CGFloatVvp":{"name":"left","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV5right14CoreFoundation7CGFloatVvp":{"name":"right","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV3top6bottom4left5right8wrappingAC14CoreFoundation7CGFloatV_A3kA7Element_ptcfc":{"name":"init(top:bottom:left:right:wrapping:)","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV07uniformC08wrappingAC14CoreFoundation7CGFloatV_AA7Element_ptcfc":{"name":"init(uniformInset:wrapping:)","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV6insets8wrappingACSo12UIEdgeInsetsV_AA7Element_ptcfc":{"name":"init(insets:wrapping:)","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV10sideInsets8wrappingAC14CoreFoundation7CGFloatV_AA7Element_ptcfc":{"name":"init(sideInsets:wrapping:)","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI5InsetV8vertical8wrappingAC14CoreFoundation7CGFloatV_AA7Element_ptcfc":{"name":"init(vertical:wrapping:)","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Inset"},"Structs/Inset.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Inset"},"Structs/Image/ContentMode.html#/s:25BlueprintUICommonControls5ImageV11ContentModeO6centeryA2EmF":{"name":"center","abstract":"\u003cp\u003eThe image is not scaled, and is simply centered within the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Image.html\"\u003eImage\u003c/a\u003e\u003c/code\u003e","parent_name":"ContentMode"},"Structs/Image/ContentMode.html#/s:25BlueprintUICommonControls5ImageV11ContentModeO7stretchyA2EmF":{"name":"stretch","abstract":"\u003cp\u003eThe image is stretched to fill the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Image.html\"\u003eImage\u003c/a\u003e\u003c/code\u003e element, causing the image","parent_name":"ContentMode"},"Structs/Image/ContentMode.html#/s:25BlueprintUICommonControls5ImageV11ContentModeO9aspectFityA2EmF":{"name":"aspectFit","abstract":"\u003cp\u003eThe image is scaled to touch the edges of the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Image.html\"\u003eImage\u003c/a\u003e\u003c/code\u003e element while","parent_name":"ContentMode"},"Structs/Image/ContentMode.html#/s:25BlueprintUICommonControls5ImageV11ContentModeO10aspectFillyA2EmF":{"name":"aspectFill","abstract":"\u003cp\u003eThe image is scaled to fill the entire \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Image.html\"\u003eImage\u003c/a\u003e\u003c/code\u003e element. If the aspect","parent_name":"ContentMode"},"Structs/Image.html#/s:25BlueprintUICommonControls5ImageV5imageSo7UIImageCSgvp":{"name":"image","abstract":"\u003cp\u003eThe image to be displayed\u003c/p\u003e","parent_name":"Image"},"Structs/Image.html#/s:25BlueprintUICommonControls5ImageV9tintColorSo7UIColorCSgvp":{"name":"tintColor","abstract":"\u003cp\u003eThe tint color.\u003c/p\u003e","parent_name":"Image"},"Structs/Image.html#/s:25BlueprintUICommonControls5ImageV11contentModeAC07ContentF0Ovp":{"name":"contentMode","abstract":"\u003cp\u003eThe content mode determines the layout of the image when its size does","parent_name":"Image"},"Structs/Image.html#/s:25BlueprintUICommonControls5ImageV29blockAccessibilityDescriptionSbvp":{"name":"blockAccessibilityDescription","abstract":"\u003cp\u003eiOS 14 added support for Image Descriptions using VoiceOver. This is not always appropriate.","parent_name":"Image"},"Structs/Image.html#/s:25BlueprintUICommonControls5ImageV5image11contentMode9tintColor29blockAccessibilityDescriptionACSo7UIImageCSg_AC07ContentG0OSo7UIColorCSgSbtcfc":{"name":"init(image:contentMode:tintColor:blockAccessibilityDescription:)","abstract":"\u003cp\u003eInitializes an image element with the given \u003ccode\u003eUIImage\u003c/code\u003e instance.\u003c/p\u003e","parent_name":"Image"},"Structs/Image.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Image"},"Structs/Image.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Image"},"Structs/Image/ContentMode.html":{"name":"ContentMode","abstract":"\u003cp\u003eThe content mode determines the layout of the image when its size does","parent_name":"Image"},"Structs/GeometryReader.html#/s:11BlueprintUI14GeometryReaderV21elementRepresentationAcA7Element_pAA0C5ProxyVc_tcfc":{"name":"init(elementRepresentation:)","parent_name":"GeometryReader"},"Structs/GeometryReader.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"GeometryReader"},"Structs/GeometryReader.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"GeometryReader"},"Structs/EqualStack/Child.html#/s:11BlueprintUI10EqualStackV5ChildV7elementAA7Element_pvp":{"name":"element","parent_name":"Child"},"Structs/EqualStack/Child.html#/s:11BlueprintUI10EqualStackV5ChildVyAeA7Element_pcfc":{"name":"init(_:)","parent_name":"Child"},"Structs/EqualStack/Direction.html#/s:11BlueprintUI10EqualStackV9DirectionO8verticalyA2EmF":{"name":"vertical","parent_name":"Direction"},"Structs/EqualStack/Direction.html#/s:11BlueprintUI10EqualStackV9DirectionO10horizontalyA2EmF":{"name":"horizontal","parent_name":"Direction"},"Structs/EqualStack.html#/s:11BlueprintUI10EqualStackV9directionAC9DirectionOvp":{"name":"direction","abstract":"\u003cp\u003eThe direction in which this element will stack its children.\u003c/p\u003e","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI10EqualStackV7spacing14CoreFoundation7CGFloatVvp":{"name":"spacing","abstract":"\u003cp\u003eThe amount of space between children in this element. Defaults to 0.\u003c/p\u003e","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI10EqualStackV8childrenSayAA7Element_pGvp":{"name":"children","abstract":"\u003cp\u003eThe child elements to be laid out. Defaults to an empty array.\u003c/p\u003e","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI10EqualStackV9direction9configureA2C9DirectionO_yACzXEtcfc":{"name":"init(direction:configure:)","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI10EqualStackV9direction7spacing8elementsA2C9DirectionO_14CoreFoundation7CGFloatVSayAC5ChildVGyXEtcfc":{"name":"init(direction:spacing:elements:)","abstract":"\u003cp\u003eInitializer using result builder to declaritively build up a stack.\u003c/p\u003e","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"EqualStack"},"Structs/EqualStack.html#/s:11BlueprintUI10EqualStackV3add5childyAA7Element_p_tF":{"name":"add(child:)","parent_name":"EqualStack"},"Structs/EqualStack/Direction.html":{"name":"Direction","parent_name":"EqualStack"},"Structs/EqualStack/Child.html":{"name":"Child","parent_name":"EqualStack"},"Structs/Empty.html#/s:11BlueprintUI5EmptyVACycfc":{"name":"init()","parent_name":"Empty"},"Structs/Empty.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Empty"},"Structs/Empty.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Empty"},"Structs/ConstrainedSize/Constraint.html#/s:11BlueprintUI15ConstrainedSizeV10ConstraintO13unconstrainedyA2EmF":{"name":"unconstrained","abstract":"\u003cp\u003eThere is no constraint for this axis – the natural size of the element will be used.\u003c/p\u003e","parent_name":"Constraint"},"Structs/ConstrainedSize/Constraint.html#/s:11BlueprintUI15ConstrainedSizeV10ConstraintO6atMostyAE14CoreFoundation7CGFloatVcAEmF":{"name":"atMost(_:)","abstract":"\u003cp\u003eThe measured size for this axis will be \u003cstrong\u003eno greater\u003c/strong\u003e than the value provided.\u003c/p\u003e","parent_name":"Constraint"},"Structs/ConstrainedSize/Constraint.html#/s:11BlueprintUI15ConstrainedSizeV10ConstraintO7atLeastyAE14CoreFoundation7CGFloatVcAEmF":{"name":"atLeast(_:)","abstract":"\u003cp\u003eThe measured size for this axis will be \u003cstrong\u003eno less\u003c/strong\u003e than the value provided.\u003c/p\u003e","parent_name":"Constraint"},"Structs/ConstrainedSize/Constraint.html#/s:11BlueprintUI15ConstrainedSizeV10ConstraintO6withinyAESNy14CoreFoundation7CGFloatVGcAEmF":{"name":"within(_:)","abstract":"\u003cp\u003eThe measured size for this axis will be \u003cstrong\u003ewithin\u003c/strong\u003e the range provided.","parent_name":"Constraint"},"Structs/ConstrainedSize/Constraint.html#/s:11BlueprintUI15ConstrainedSizeV10ConstraintO8absoluteyAE14CoreFoundation7CGFloatVcAEmF":{"name":"absolute(_:)","abstract":"\u003cp\u003eThe measured size for this axis will be \u003cstrong\u003eexactly\u003c/strong\u003e the value provided.\u003c/p\u003e","parent_name":"Constraint"},"Structs/ConstrainedSize.html#/s:11BlueprintUI15ConstrainedSizeV7wrappedAA7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe element whose measurement will be constrained by the \u003ccode\u003eConstrainedSize\u003c/code\u003e.\u003c/p\u003e","parent_name":"ConstrainedSize"},"Structs/ConstrainedSize.html#/s:11BlueprintUI15ConstrainedSizeV5widthAC10ConstraintOvp":{"name":"width","abstract":"\u003cp\u003eThe constraint to place on the width of the element.\u003c/p\u003e","parent_name":"ConstrainedSize"},"Structs/ConstrainedSize.html#/s:11BlueprintUI15ConstrainedSizeV6heightAC10ConstraintOvp":{"name":"height","abstract":"\u003cp\u003eThe constraint to place on the height of the element.\u003c/p\u003e","parent_name":"ConstrainedSize"},"Structs/ConstrainedSize.html#/s:11BlueprintUI15ConstrainedSizeV5width6height8wrappingA2C10ConstraintO_AhA7Element_ptcfc":{"name":"init(width:height:wrapping:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eConstrainedSize\u003c/code\u003e with the provided constraint options.\u003c/p\u003e","parent_name":"ConstrainedSize"},"Structs/ConstrainedSize.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"ConstrainedSize"},"Structs/ConstrainedSize.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"ConstrainedSize"},"Structs/ConstrainedSize/Constraint.html":{"name":"Constraint","abstract":"\u003cp\u003eThe available ways to constrain the measurement of a given axis within a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/ConstrainedSize.html\"\u003eConstrainedSize\u003c/a\u003e\u003c/code\u003e element.\u003c/p\u003e","parent_name":"ConstrainedSize"},"Structs/ConstrainedAspectRatio/ContentMode.html#/s:11BlueprintUI22ConstrainedAspectRatioV11ContentModeO10fillParentyA2EmF":{"name":"fillParent","abstract":"\u003cp\u003eThe content will be sized to fill its parent while","parent_name":"ContentMode"},"Structs/ConstrainedAspectRatio/ContentMode.html#/s:11BlueprintUI22ConstrainedAspectRatioV11ContentModeO9fitParentyA2EmF":{"name":"fitParent","abstract":"\u003cp\u003eThe content will be sized to fit within its parent while maintaining the specified","parent_name":"ContentMode"},"Structs/ConstrainedAspectRatio/ContentMode.html#/s:11BlueprintUI22ConstrainedAspectRatioV11ContentModeO03fitF0yA2EmF":{"name":"fitContent","abstract":"\u003cp\u003eThe content will grow in whichever dimension is needed to maintain the aspect ratio,","parent_name":"ContentMode"},"Structs/ConstrainedAspectRatio/ContentMode.html#/s:11BlueprintUI22ConstrainedAspectRatioV11ContentModeO06shrinkF0yA2EmF":{"name":"shrinkContent","abstract":"\u003cp\u003eThe content will shrink in whichever dimension is needed to maintain the aspect ratio,","parent_name":"ContentMode"},"Structs/ConstrainedAspectRatio/ContentMode.html":{"name":"ContentMode","abstract":"\u003cp\u003eRepresents how the content should size itself relative to its parent.\u003c/p\u003e","parent_name":"ConstrainedAspectRatio"},"Structs/ConstrainedAspectRatio.html#/s:11BlueprintUI22ConstrainedAspectRatioV14wrappedElementAA0G0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe element being constrained.\u003c/p\u003e","parent_name":"ConstrainedAspectRatio"},"Structs/ConstrainedAspectRatio.html#/s:11BlueprintUI22ConstrainedAspectRatioV06aspectE0AA0dE0Vvp":{"name":"aspectRatio","abstract":"\u003cp\u003eThe target aspect ratio.\u003c/p\u003e","parent_name":"ConstrainedAspectRatio"},"Structs/ConstrainedAspectRatio.html#/s:11BlueprintUI22ConstrainedAspectRatioV11contentModeAC07ContentG0Ovp":{"name":"contentMode","abstract":"\u003cp\u003eWhether the aspect ratio should be reached by expanding the content element\u0026rsquo;s size to fill its parent","parent_name":"ConstrainedAspectRatio"},"Structs/ConstrainedAspectRatio.html#/s:11BlueprintUI22ConstrainedAspectRatioV06aspectE011contentMode8wrappingAcA0dE0V_AC07ContentH0OAA7Element_ptcfc":{"name":"init(aspectRatio:contentMode:wrapping:)","abstract":"\u003cp\u003eInitializes with the given properties.\u003c/p\u003e","parent_name":"ConstrainedAspectRatio"},"Structs/ConstrainedAspectRatio.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"ConstrainedAspectRatio"},"Structs/ConstrainedAspectRatio.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"ConstrainedAspectRatio"},"Structs/Column/ColumnAlignment.html#/s:11BlueprintUI6ColumnV0C9AlignmentO4fillyA2EmF":{"name":"fill","abstract":"\u003cp\u003eChildren will be stretched to fit the horizontal size of the column.\u003c/p\u003e","parent_name":"ColumnAlignment"},"Structs/Column/ColumnAlignment.html#/s:11BlueprintUI6ColumnV0C9AlignmentO5alignyAeA010HorizontalD0V_tcAEmF":{"name":"align(to:)","abstract":"\u003cp\u003eUsing the specified alignment, children will be aligned relatively to each other, and","parent_name":"ColumnAlignment"},"Structs/Column/ColumnAlignment.html#/s:11BlueprintUI6ColumnV0C9AlignmentO7leadingAEvpZ":{"name":"leading","abstract":"\u003cp\u003eChildren will be aligned to the leading edge of the column.\u003c/p\u003e","parent_name":"ColumnAlignment"},"Structs/Column/ColumnAlignment.html#/s:11BlueprintUI6ColumnV0C9AlignmentO6centerAEvpZ":{"name":"center","abstract":"\u003cp\u003eChildren will be horizontally centered in the column.\u003c/p\u003e","parent_name":"ColumnAlignment"},"Structs/Column/ColumnAlignment.html#/s:11BlueprintUI6ColumnV0C9AlignmentO8trailingAEvpZ":{"name":"trailing","abstract":"\u003cp\u003eChildren will be aligned to the trailing edge of the column.\u003c/p\u003e","parent_name":"ColumnAlignment"},"Structs/Column/ColumnAlignment.html":{"name":"ColumnAlignment","abstract":"\u003cp\u003eDescribes how the column\u0026rsquo;s children will be horizontally aligned.\u003c/p\u003e","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV8childrenSayAA7Element_p7element_AA11StackLayoutV6TraitsV6traitss11AnyHashableVSg3keytGvp":{"name":"children","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV6layoutAA11StackLayoutVvp":{"name":"layout","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnVACycfc":{"name":"init()","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV9alignment9underflow8overflow14minimumSpacing8elementsA2C0C9AlignmentO_AA11StackLayoutV21UnderflowDistributionOAL08OverflowN0O14CoreFoundation7CGFloatVSayAL5ChildVGyXEtcfc":{"name":"init(alignment:underflow:overflow:minimumSpacing:elements:)","abstract":"\u003cp\u003eCreates a Column, using result builder syntax. Columns display a list of items in a vertical","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV17verticalUnderflowAA11StackLayoutV0E12DistributionOvp":{"name":"verticalUnderflow","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV16verticalOverflowAA11StackLayoutV0E12DistributionOvp":{"name":"verticalOverflow","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV19horizontalAlignmentAC0cE0Ovp":{"name":"horizontalAlignment","abstract":"\u003cp\u003eSpecifies how children will be aligned horizontally.\u003c/p\u003e","parent_name":"Column"},"Structs/Column.html#/s:11BlueprintUI6ColumnV22minimumVerticalSpacing14CoreFoundation7CGFloatVvp":{"name":"minimumVerticalSpacing","parent_name":"Column"},"Structs/Centered.html#/s:11BlueprintUI8CenteredV7wrappedAA7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe content element to be centered.\u003c/p\u003e","parent_name":"Centered"},"Structs/Centered.html#/s:11BlueprintUI8CenteredVyAcA7Element_pcfc":{"name":"init(_:)","abstract":"\u003cp\u003eInitializes a \u003ccode\u003eCentered\u003c/code\u003e element with the given content element.\u003c/p\u003e","parent_name":"Centered"},"Structs/Centered.html#/s:11BlueprintUI12ProxyElementP21elementRepresentationAA0D0_pvp":{"name":"elementRepresentation","parent_name":"Centered"},"Structs/Button.html#/s:25BlueprintUICommonControls6ButtonV14wrappedElement0A2UI0F0_pvp":{"name":"wrappedElement","parent_name":"Button"},"Structs/Button.html#/s:25BlueprintUICommonControls6ButtonV9isEnabledSbvp":{"name":"isEnabled","parent_name":"Button"},"Structs/Button.html#/s:25BlueprintUICommonControls6ButtonV5onTapyycvp":{"name":"onTap","parent_name":"Button"},"Structs/Button.html#/s:25BlueprintUICommonControls6ButtonV19minimumTappableSizeSo6CGSizeVvp":{"name":"minimumTappableSize","parent_name":"Button"},"Structs/Button.html#/s:25BlueprintUICommonControls6ButtonV9isEnabled5onTap8wrappingACSb_yyc0A2UI7Element_ptcfc":{"name":"init(isEnabled:onTap:wrapping:)","parent_name":"Button"},"Structs/Button.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Button"},"Structs/Button.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Button"},"Structs/Box/ShadowStyle.html#/s:25BlueprintUICommonControls3BoxV11ShadowStyleO4noneyA2EmF":{"name":"none","parent_name":"ShadowStyle"},"Structs/Box/ShadowStyle.html#/s:25BlueprintUICommonControls3BoxV11ShadowStyleO6simpleyAE14CoreFoundation7CGFloatV_AISo6CGSizeVSo7UIColorCtcAEmF":{"name":"simple(radius:opacity:offset:color:)","parent_name":"ShadowStyle"},"Structs/Box/BorderStyle.html#/s:25BlueprintUICommonControls3BoxV11BorderStyleO4noneyA2EmF":{"name":"none","parent_name":"BorderStyle"},"Structs/Box/BorderStyle.html#/s:25BlueprintUICommonControls3BoxV11BorderStyleO5solidyAESo7UIColorC_14CoreFoundation7CGFloatVtcAEmF":{"name":"solid(color:width:)","parent_name":"BorderStyle"},"Structs/Box/CornerCurve.html#/s:25BlueprintUICommonControls3BoxV11CornerCurveO8circularyA2EmF":{"name":"circular","abstract":"\u003cp\u003eProvides a standard-style corner radius as you would see in design tools like Figma.\u003c/p\u003e","parent_name":"CornerCurve"},"Structs/Box/CornerCurve.html#/s:25BlueprintUICommonControls3BoxV11CornerCurveO10continuousyA2EmF":{"name":"continuous","abstract":"\u003cp\u003eProvides an iOS icon-style corner radius.\u003c/p\u003e","parent_name":"CornerCurve"},"Structs/Box/CornerStyle/Corners.html#/s:SY8rawValue03RawB0Qzvp":{"name":"rawValue","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:s9OptionSetP8rawValuex03RawD0Qz_tcfc":{"name":"init(rawValue:)","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV7topLeftAGvpZ":{"name":"topLeft","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV8topRightAGvpZ":{"name":"topRight","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV10bottomLeftAGvpZ":{"name":"bottomLeft","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV11bottomRightAGvpZ":{"name":"bottomRight","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV3allAGvpZ":{"name":"all","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV3topAGvpZ":{"name":"top","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV4leftAGvpZ":{"name":"left","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV6bottomAGvpZ":{"name":"bottom","parent_name":"Corners"},"Structs/Box/CornerStyle/Corners.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7CornersV5rightAGvpZ":{"name":"right","parent_name":"Corners"},"Structs/Box/CornerStyle.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO6squareyA2EmF":{"name":"square","parent_name":"CornerStyle"},"Structs/Box/CornerStyle.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7capsuleyA2EmF":{"name":"capsule","parent_name":"CornerStyle"},"Structs/Box/CornerStyle.html#/s:25BlueprintUICommonControls3BoxV11CornerStyleO7roundedyAE14CoreFoundation7CGFloatV_AE7CornersVtcAEmF":{"name":"rounded(radius:corners:)","parent_name":"CornerStyle"},"Structs/Box/CornerStyle/Corners.html":{"name":"Corners","parent_name":"CornerStyle"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV15backgroundColorSo7UIColorCvp":{"name":"backgroundColor","abstract":"\u003cp\u003eThe background color to show in the box.\u003c/p\u003e","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV11cornerStyleAC06CornerF0Ovp":{"name":"cornerStyle","abstract":"\u003cp\u003eThe corner style to apply, eg rounded, capsule, or normal, square corners.\u003c/p\u003e","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV11cornerCurveAC06CornerF0Ovp":{"name":"cornerCurve","abstract":"\u003cp\u003eHow to style the curves when \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Box.html#/s:25BlueprintUICommonControls3BoxV11cornerStyleAC06CornerF0Ovp\"\u003ecornerStyle\u003c/a\u003e\u003c/code\u003e is non-square.\u003c/p\u003e","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV11borderStyleAC06BorderF0Ovp":{"name":"borderStyle","abstract":"\u003cp\u003eThe border to apply around the edges of the box.\u003c/p\u003e","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV11shadowStyleAC06ShadowF0Ovp":{"name":"shadowStyle","abstract":"\u003cp\u003eThe shadow style to apply to the outside of the box.\u003c/p\u003e","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV12clipsContentSbvp":{"name":"clipsContent","abstract":"\u003cp\u003eIf content placed within the box should be clipped.\u003c/p\u003e","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV14wrappedElement0A2UI0F0_pSgvp":{"name":"wrappedElement","parent_name":"Box"},"Structs/Box.html#/s:25BlueprintUICommonControls3BoxV15backgroundColor11cornerStyle0G5Curve06borderH006shadowH012clipsContent8wrappingACSo7UIColorC_AC06CornerH0OAC0pI0OAC06BorderH0OAC06ShadowH0OSb0A2UI7Element_pSgtcfc":{"name":"init(backgroundColor:cornerStyle:cornerCurve:borderStyle:shadowStyle:clipsContent:wrapping:)","parent_name":"Box"},"Structs/Box.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Box"},"Structs/Box.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Box"},"Structs/Box/CornerStyle.html":{"name":"CornerStyle","parent_name":"Box"},"Structs/Box/CornerCurve.html":{"name":"CornerCurve","abstract":"\u003cp\u003eSpecifies the curve style when showing rounded corners on a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Box.html\"\u003eBox\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"Box"},"Structs/Box/BorderStyle.html":{"name":"BorderStyle","parent_name":"Box"},"Structs/Box/ShadowStyle.html":{"name":"ShadowStyle","parent_name":"Box"},"Structs/AttributedLabel/LinkDetectionType.html#/s:25BlueprintUICommonControls15AttributedLabelV17LinkDetectionTypeO4dateyA2EmF":{"name":"date","abstract":"\u003cp\u003eDetect date strings. Tapping a date opens the calendar to that date.\u003c/p\u003e","parent_name":"LinkDetectionType"},"Structs/AttributedLabel/LinkDetectionType.html#/s:25BlueprintUICommonControls15AttributedLabelV17LinkDetectionTypeO7addressyA2EmF":{"name":"address","abstract":"\u003cp\u003eDetect addresses. Tapping the address opens Maps with that address.\u003c/p\u003e","parent_name":"LinkDetectionType"},"Structs/AttributedLabel/LinkDetectionType.html#/s:25BlueprintUICommonControls15AttributedLabelV17LinkDetectionTypeO4linkyA2EmF":{"name":"link","abstract":"\u003cp\u003eDetect URLs. Tapping the link opens the URL.\u003c/p\u003e","parent_name":"LinkDetectionType"},"Structs/AttributedLabel/LinkDetectionType.html#/s:25BlueprintUICommonControls15AttributedLabelV17LinkDetectionTypeO11phoneNumberyA2EmF":{"name":"phoneNumber","abstract":"\u003cp\u003eDetect phone numbers. Tapping the phone number prompts the user to call it.\u003c/p\u003e","parent_name":"LinkDetectionType"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV14attributedTextSo18NSAttributedStringCvp":{"name":"attributedText","abstract":"\u003cp\u003eThe attributed text to render in the label.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV13numberOfLinesSivp":{"name":"numberOfLines","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV6shadowAA10TextShadowVSgvp":{"name":"shadow","abstract":"\u003cp\u003eA shadow to display behind the label\u0026rsquo;s text. Defaults to no shadow.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV14textRectOffsetSo8UIOffsetVvp":{"name":"textRectOffset","abstract":"\u003cp\u003eAn offset that will be applied to the rect used by \u003ccode\u003edrawText(in:)\u003c/code\u003e.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV22isAccessibilityElementSbvp":{"name":"isAccessibilityElement","abstract":"\u003cp\u003eDetermines if the label should be included when navigating the UI via accessibility.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV25adjustsFontSizeToFitWidthSbvp":{"name":"adjustsFontSizeToFitWidth","abstract":"\u003cp\u003eA Boolean value that determines whether the label reduces the text’s font","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV18minimumScaleFactor14CoreFoundation7CGFloatVvp":{"name":"minimumScaleFactor","abstract":"\u003cp\u003eThe minimum scale factor for the label’s text.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV36allowsDefaultTighteningForTruncationSbvp":{"name":"allowsDefaultTighteningForTruncation","abstract":"\u003cp\u003eA Boolean value that determines whether the label tightens text before truncating.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV19accessibilityTraitsShyAA20AccessibilityElementV5TraitOGSgvp":{"name":"accessibilityTraits","abstract":"\u003cp\u003eA set of accessibility traits that should be applied to the label, these will be merged with any existing traits.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV17accessibilityHintSSSgvp":{"name":"accessibilityHint","abstract":"\u003cp\u003eA localized string that describes the result of performing an action on the element, when the result is non-obvious.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV26accessibilityCustomActionsSayAA20AccessibilityElementV0G6ActionVGvp":{"name":"accessibilityCustomActions","abstract":"\u003cp\u003eAn array containing one or more \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AccessibilityElement/CustomAction.html\"\u003eAccessibilityElement.CustomAction\u003c/a\u003e\u003c/code\u003es, defining additional supported actions. Assistive technologies, such as VoiceOver, will display your custom actions to the user at appropriate times.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV18linkDetectionTypesShyAC04LinkG4TypeOGvp":{"name":"linkDetectionTypes","abstract":"\u003cp\u003eA set of data types to detect and automatically link in the label.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV14linkAttributesSDySo21NSAttributedStringKeyas11AnyHashableVGvp":{"name":"linkAttributes","abstract":"\u003cp\u003eA set of attributes to apply to links in the string.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV20activeLinkAttributesSDySo21NSAttributedStringKeyas11AnyHashableVGvp":{"name":"activeLinkAttributes","abstract":"\u003cp\u003eA set of attributes to apply to links when they are touched.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:25BlueprintUICommonControls15AttributedLabelV14attributedText9configureACSo18NSAttributedStringC_yACzXEtcfc":{"name":"init(attributedText:configure:)","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"AttributedLabel"},"Structs/AttributedLabel.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"AttributedLabel"},"Structs/AttributedLabel/LinkDetectionType.html":{"name":"LinkDetectionType","abstract":"\u003cp\u003eTypes of data that can be detected and automatically turned into links.\u003c/p\u003e","parent_name":"AttributedLabel"},"Structs/Aligned/HorizontalAlignment.html#/s:11BlueprintUI7AlignedV19HorizontalAlignmentO7leadingyA2EmF":{"name":"leading","abstract":"\u003cp\u003eAligns the content to the leading edge of the containing element.","parent_name":"HorizontalAlignment"},"Structs/Aligned/HorizontalAlignment.html#/s:11BlueprintUI7AlignedV19HorizontalAlignmentO6centeryA2EmF":{"name":"center","abstract":"\u003cp\u003eCenters the content horizontally.\u003c/p\u003e","parent_name":"HorizontalAlignment"},"Structs/Aligned/HorizontalAlignment.html#/s:11BlueprintUI7AlignedV19HorizontalAlignmentO8trailingyA2EmF":{"name":"trailing","abstract":"\u003cp\u003eAligns the content to the trailing edge of the containing element.","parent_name":"HorizontalAlignment"},"Structs/Aligned/HorizontalAlignment.html#/s:11BlueprintUI7AlignedV19HorizontalAlignmentO4fillyA2EmF":{"name":"fill","abstract":"\u003cp\u003eThe content fills the full horizontal width of the containing element.\u003c/p\u003e","parent_name":"HorizontalAlignment"},"Structs/Aligned/VerticalAlignment.html#/s:11BlueprintUI7AlignedV17VerticalAlignmentO3topyA2EmF":{"name":"top","abstract":"\u003cp\u003eAligns the content to the top edge of the containing element.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/Aligned/VerticalAlignment.html#/s:11BlueprintUI7AlignedV17VerticalAlignmentO6centeryA2EmF":{"name":"center","abstract":"\u003cp\u003eCenters the content vertically.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/Aligned/VerticalAlignment.html#/s:11BlueprintUI7AlignedV17VerticalAlignmentO6bottomyA2EmF":{"name":"bottom","abstract":"\u003cp\u003eAligns the content to the bottom edge of the containing element.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/Aligned/VerticalAlignment.html#/s:11BlueprintUI7AlignedV17VerticalAlignmentO4fillyA2EmF":{"name":"fill","abstract":"\u003cp\u003eThe content fills the full vertical height of the containing element.\u003c/p\u003e","parent_name":"VerticalAlignment"},"Structs/Aligned/VerticalAlignment.html":{"name":"VerticalAlignment","abstract":"\u003cp\u003eThe possible vertical alignment values.\u003c/p\u003e","parent_name":"Aligned"},"Structs/Aligned/HorizontalAlignment.html":{"name":"HorizontalAlignment","abstract":"\u003cp\u003eThe possible horizontal alignment values.\u003c/p\u003e","parent_name":"Aligned"},"Structs/Aligned.html#/s:11BlueprintUI7AlignedV14wrappedElementAA0E0_pvp":{"name":"wrappedElement","abstract":"\u003cp\u003eThe content element to be aligned.\u003c/p\u003e","parent_name":"Aligned"},"Structs/Aligned.html#/s:11BlueprintUI7AlignedV17verticalAlignmentAC08VerticalE0Ovp":{"name":"verticalAlignment","abstract":"\u003cp\u003eThe vertical alignment.\u003c/p\u003e","parent_name":"Aligned"},"Structs/Aligned.html#/s:11BlueprintUI7AlignedV19horizontalAlignmentAC010HorizontalE0Ovp":{"name":"horizontalAlignment","abstract":"\u003cp\u003eThe horizontal alignment.\u003c/p\u003e","parent_name":"Aligned"},"Structs/Aligned.html#/s:11BlueprintUI7AlignedV10vertically12horizontally8wrappingA2C17VerticalAlignmentO_AC010HorizontalH0OAA7Element_ptcfc":{"name":"init(vertically:horizontally:wrapping:)","abstract":"\u003cp\u003eInitializes an \u003ccode\u003eAligned\u003c/code\u003e with the given content element and alignments.\u003c/p\u003e","parent_name":"Aligned"},"Structs/Aligned.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"Aligned"},"Structs/Aligned.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"Aligned"},"Structs/EnvironmentReader.html#/s:11BlueprintUI17EnvironmentReaderV21elementRepresentationAcA7Element_pAA0C0Vc_tcfc":{"name":"init(elementRepresentation:)","parent_name":"EnvironmentReader"},"Structs/EnvironmentReader.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"EnvironmentReader"},"Structs/EnvironmentReader.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"EnvironmentReader"},"Structs/AdaptedEnvironment.html#/s:11BlueprintUI18AdaptedEnvironmentV7Adaptera":{"name":"Adapter","abstract":"\u003cp\u003eTakes in a mutable \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Environment.html\"\u003eEnvironment\u003c/a\u003e\u003c/code\u003e which can be mutated to add or override values.\u003c/p\u003e","parent_name":"AdaptedEnvironment"},"Structs/AdaptedEnvironment.html#/s:11BlueprintUI18AdaptedEnvironmentV2by8wrappingACyAA0D0Vzc_AA7Element_ptcfc":{"name":"init(by:wrapping:)","abstract":"\u003cp\u003eWraps an element with an environment that is modified using the given","parent_name":"AdaptedEnvironment"},"Structs/AdaptedEnvironment.html#/s:11BlueprintUI18AdaptedEnvironmentV3key5value8wrappingACxm_5ValueQzAA7Element_ptcAA0D3KeyRzlufc":{"name":"init(key:value:wrapping:)","abstract":"\u003cp\u003eWraps an element with an environment that is modified for a single key and value.\u003c/p\u003e","parent_name":"AdaptedEnvironment"},"Structs/AdaptedEnvironment.html#/s:11BlueprintUI18AdaptedEnvironmentV7keyPath5value8wrappingACs011WritableKeyF0CyAA0D0VxG_xAA7Element_ptclufc":{"name":"init(keyPath:value:wrapping:)","abstract":"\u003cp\u003eWraps an element with an environment that is modified for a single value.\u003c/p\u003e","parent_name":"AdaptedEnvironment"},"Structs/AdaptedEnvironment.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"AdaptedEnvironment"},"Structs/AdaptedEnvironment.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"AdaptedEnvironment"},"Structs/AccessibilityElement/CustomContent/Importance.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV10ImportanceO7defaultyA2GmF":{"name":"default","abstract":"\u003cp\u003eBy default custom content is available through the rotor.\u003c/p\u003e","parent_name":"Importance"},"Structs/AccessibilityElement/CustomContent/Importance.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV10ImportanceO4highyA2GmF":{"name":"high","abstract":"\u003cp\u003eIn addtion to being available through the rotor, high importance content will announced in the main VoiceOver utterance.","parent_name":"Importance"},"Structs/AccessibilityElement/CustomContent/Importance.html":{"name":"Importance","abstract":"\u003cp\u003eThe importance of the content.\u003c/p\u003e","parent_name":"CustomContent"},"Structs/AccessibilityElement/CustomContent.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV5labelSSvp":{"name":"label","parent_name":"CustomContent"},"Structs/AccessibilityElement/CustomContent.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV5valueSSSgvp":{"name":"value","parent_name":"CustomContent"},"Structs/AccessibilityElement/CustomContent.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV10importanceAE10ImportanceOvp":{"name":"importance","parent_name":"CustomContent"},"Structs/AccessibilityElement/CustomContent.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV5label5value10importanceAESS_SSSgAE10ImportanceOtcfc":{"name":"init(label:value:importance:)","parent_name":"CustomContent"},"Structs/AccessibilityElement/CustomContent.html#/s:25BlueprintUICommonControls20AccessibilityElementV13CustomContentV02axfG0So08AXCustomG0Cvp":{"name":"axCustomContent","parent_name":"CustomContent"},"Structs/AccessibilityElement/CustomAction.html#/s:25BlueprintUICommonControls20AccessibilityElementV12CustomActionV12OnActivationa":{"name":"OnActivation","parent_name":"CustomAction"},"Structs/AccessibilityElement/CustomAction.html#/s:25BlueprintUICommonControls20AccessibilityElementV12CustomActionV4nameSSvp":{"name":"name","abstract":"\u003cp\u003eA localized name that discribes the action.\u003c/p\u003e","parent_name":"CustomAction"},"Structs/AccessibilityElement/CustomAction.html#/s:25BlueprintUICommonControls20AccessibilityElementV12CustomActionV5imageSo7UIImageCSgvp":{"name":"image","abstract":"\u003cp\u003eAn image representing the action to be shown with some assistive technologies such as Switch Control.\u003c/p\u003e","parent_name":"CustomAction"},"Structs/AccessibilityElement/CustomAction.html#/s:25BlueprintUICommonControls20AccessibilityElementV12CustomActionV12onActivationSbycvp":{"name":"onActivation","abstract":"\u003cp\u003eA Callback for when the action is activated. This should return a \u003ccode\u003ebool\u003c/code\u003e indicating success or failure of the action.\u003c/p\u003e","parent_name":"CustomAction"},"Structs/AccessibilityElement/CustomAction.html#/s:25BlueprintUICommonControls20AccessibilityElementV12CustomActionV4name5image12onActivationAESS_So7UIImageCSgSbyctcfc":{"name":"init(name:image:onActivation:)","parent_name":"CustomAction"},"Structs/AccessibilityElement/CustomAction.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"CustomAction"},"Structs/AccessibilityElement/CustomAction.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"CustomAction"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO15IncrementActiona":{"name":"IncrementAction","abstract":"\u003cp\u003eUsed in conjunction with UIAccessibilityTrait.adjustable, these will be called to allow accessible adjustment of a value, for example in a slider or stepper control.","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO15DecrementActiona":{"name":"DecrementAction","abstract":"\u003cp\u003eUsed in conjunction with UIAccessibilityTrait.adjustable, these will be called to allow accessible adjustment of a value, for example in a slider or stepper control.","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO6buttonyA2EmF":{"name":"button","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO4linkyA2EmF":{"name":"link","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO6headeryA2EmF":{"name":"header","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO11searchFieldyA2EmF":{"name":"searchField","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO5imageyA2EmF":{"name":"image","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO8selectedyA2EmF":{"name":"selected","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO10playsSoundyA2EmF":{"name":"playsSound","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO11keyboardKeyyA2EmF":{"name":"keyboardKey","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO10staticTextyA2EmF":{"name":"staticText","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO07summaryE0yA2EmF":{"name":"summaryElement","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO10notEnabledyA2EmF":{"name":"notEnabled","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO17updatesFrequentlyyA2EmF":{"name":"updatesFrequently","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO18startsMediaSessionyA2EmF":{"name":"startsMediaSession","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO10adjustableyAEyyc_yyctcAEmF":{"name":"adjustable(_:_:)","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO23allowsDirectInteractionyA2EmF":{"name":"allowsDirectInteraction","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO14causesPageTurnyA2EmF":{"name":"causesPageTurn","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:25BlueprintUICommonControls20AccessibilityElementV5TraitO6tabBaryA2EmF":{"name":"tabBar","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"Trait"},"Structs/AccessibilityElement/Trait.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"Trait"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV5labelSSSgvp":{"name":"label","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV5valueSSSgvp":{"name":"value","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV4hintSSSgvp":{"name":"hint","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV10identifierSSSgvp":{"name":"identifier","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV6traitsShyAC5TraitOGvp":{"name":"traits","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV22accessibilityFrameSizeSo6CGSizeVSgvp":{"name":"accessibilityFrameSize","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV29accessibilityFrameCornerStyleAA3BoxV0hI0Ovp":{"name":"accessibilityFrameCornerStyle","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV07wrappedE00A2UI0E0_pvp":{"name":"wrappedElement","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV21accessibilityActivateSbycSgvp":{"name":"accessibilityActivate","abstract":"\u003cp\u003eUsed to provide custom behaviour when activated by voiceover. This will override the default behavior of issuing a tap event at the accessibility activation point.","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV13customActionsSayAC12CustomActionVGvp":{"name":"customActions","abstract":"\u003cp\u003eAn array containing one or more \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AccessibilityElement/CustomAction.html\"\u003eCustomAction\u003c/a\u003e\u003c/code\u003es, defining additional supported actions. Assistive technologies, such as VoiceOver, will display your custom actions to the user at appropriate times.\u003c/p\u003e","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV13customContentSayAC06CustomG0VGvp":{"name":"customContent","abstract":"\u003cp\u003eAn array containing one or more \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AccessibilityElement/CustomContent.html\"\u003eCustomContent\u003c/a\u003e\u003c/code\u003es, defining additional content associated with the element. Assistive technologies, such as VoiceOver, will announce your custom content to the user at appropriate times.\u003c/p\u003e","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:25BlueprintUICommonControls20AccessibilityElementV5label5value6traits4hint10identifier22accessibilityFrameSize0kL11CornerStyle13customActions0P7Content8wrapping9configureACSSSg_AOShyAC5TraitOGA2OSo6CGSizeVSgAA3BoxV0nO0OSayAC12CustomActionVGSayAC0xR0VG0A2UI0E0_pyACzXEtcfc":{"name":"init(label:value:traits:hint:identifier:accessibilityFrameSize:accessibilityFrameCornerStyle:customActions:customContent:wrapping:configure:)","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement/Trait.html":{"name":"Trait","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement/CustomAction.html":{"name":"CustomAction","abstract":"\u003cp\u003eUsed to provide additional functionality to assistive technologies beyond your accessible UI.\u003c/p\u003e","parent_name":"AccessibilityElement"},"Structs/AccessibilityElement/CustomContent.html":{"name":"CustomContent","parent_name":"AccessibilityElement"},"Structs/AccessibilityContainer.html#/s:25BlueprintUICommonControls22AccessibilityContainerV10identifierSSSgvp":{"name":"identifier","abstract":"\u003cp\u003eAn optional \u003ccode\u003eaccessibilityIdentifier\u003c/code\u003e to give the container. Defaults to \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e","parent_name":"AccessibilityContainer"},"Structs/AccessibilityContainer.html#/s:25BlueprintUICommonControls22AccessibilityContainerV7wrapped0A2UI7Element_pvp":{"name":"wrapped","parent_name":"AccessibilityContainer"},"Structs/AccessibilityContainer.html#/s:25BlueprintUICommonControls22AccessibilityContainerV10identifier8wrappingACSSSg_0A2UI7Element_ptcfc":{"name":"init(identifier:wrapping:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eAccessibilityContainer\u003c/code\u003e wrapping the provided element.\u003c/p\u003e","parent_name":"AccessibilityContainer"},"Structs/AccessibilityContainer.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"AccessibilityContainer"},"Structs/AccessibilityContainer.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"AccessibilityContainer"},"Structs/AccessibilityBlocker.html#/s:25BlueprintUICommonControls20AccessibilityBlockerV7wrapped0A2UI7Element_pvp":{"name":"wrapped","abstract":"\u003cp\u003eThe element whose accessibility information will be blocked.\u003c/p\u003e","parent_name":"AccessibilityBlocker"},"Structs/AccessibilityBlocker.html#/s:25BlueprintUICommonControls20AccessibilityBlockerV10isBlockingSbvp":{"name":"isBlocking","abstract":"\u003cp\u003eIf the \u003ccode\u003eAccessibilityBlocker\u003c/code\u003e is currently blocking accessibility.\u003c/p\u003e","parent_name":"AccessibilityBlocker"},"Structs/AccessibilityBlocker.html#/s:25BlueprintUICommonControls20AccessibilityBlockerV10isBlocking8wrappingACSb_0A2UI7Element_ptcfc":{"name":"init(isBlocking:wrapping:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eAccessibilityBlocker\u003c/code\u003e wrapping the provided element.\u003c/p\u003e","parent_name":"AccessibilityBlocker"},"Structs/AccessibilityBlocker.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"AccessibilityBlocker"},"Structs/AccessibilityBlocker.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"AccessibilityBlocker"},"Structs/AccessibilityBlocker.html":{"name":"AccessibilityBlocker","abstract":"\u003cp\u003eBlocks all accessibility on the element, so that it is"},"Structs/AccessibilityContainer.html":{"name":"AccessibilityContainer","abstract":"\u003cp\u003eActs as an accessibility container for any accessible subviews.\u003c/p\u003e"},"Structs/AccessibilityElement.html":{"name":"AccessibilityElement"},"Structs/AdaptedEnvironment.html":{"name":"AdaptedEnvironment","abstract":"\u003cp\u003eWraps an element tree with a modified environment.\u003c/p\u003e"},"Structs/EnvironmentReader.html":{"name":"EnvironmentReader","abstract":"\u003cp\u003eAn element that dynamically builds its content based on the environment.\u003c/p\u003e"},"Structs/Aligned.html":{"name":"Aligned","abstract":"\u003cp\u003eAligns a content element within itself. The vertical and horizontal alignment may be set independently.\u003c/p\u003e"},"Structs/AttributedLabel.html":{"name":"AttributedLabel"},"Structs/Box.html":{"name":"Box","abstract":"\u003cp\u003eA simple element that wraps a child element and adds visual styling including"},"Structs/Button.html":{"name":"Button","abstract":"\u003cp\u003eAn element that wraps a child element in a button that mimics a UIButton with the .system style. That is, when"},"Structs/Centered.html":{"name":"Centered","abstract":"\u003cp\u003eCenters a content element within itself.\u003c/p\u003e"},"Structs/Column.html":{"name":"Column","abstract":"\u003cp\u003eDisplays a list of items in a linear vertical layout.\u003c/p\u003e"},"Structs/ConstrainedAspectRatio.html":{"name":"ConstrainedAspectRatio","abstract":"\u003cp\u003eConstrains the size of the content element to an aspect ratio.\u003c/p\u003e"},"Structs/ConstrainedSize.html":{"name":"ConstrainedSize","abstract":"\u003cp\u003eConstrains the measured size of the contained element in the ranges specified by the \u003ccode\u003ewidth\u003c/code\u003e and \u003ccode\u003eheight\u003c/code\u003e properties.\u003c/p\u003e"},"Structs/Empty.html":{"name":"Empty","abstract":"\u003cp\u003eAn empty \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/Element.html\"\u003eElement\u003c/a\u003e\u003c/code\u003e which has no size and draws no content.\u003c/p\u003e"},"Structs/EqualStack.html":{"name":"EqualStack","abstract":"\u003cp\u003eAn element that sizes its children equally, stacking them in the primary axis according to"},"Structs/GeometryReader.html":{"name":"GeometryReader","abstract":"\u003cp\u003eAn element that dynamically builds its content based on the available space.\u003c/p\u003e"},"Structs/Image.html":{"name":"Image","abstract":"\u003cp\u003eDisplays an image within an element hierarchy.\u003c/p\u003e"},"Structs/Inset.html":{"name":"Inset","abstract":"\u003cp\u003eInsets a content element within a layout.\u003c/p\u003e"},"Structs/Label.html":{"name":"Label","abstract":"\u003cp\u003eDisplays text content.\u003c/p\u003e"},"Structs/Overlay.html":{"name":"Overlay","abstract":"\u003cp\u003eStretches all of its child elements to fill the layout area, stacked on top of each other.\u003c/p\u003e"},"Structs/Row.html":{"name":"Row","abstract":"\u003cp\u003eDisplays a list of items in a linear horizontal layout.\u003c/p\u003e"},"Structs/Rule.html":{"name":"Rule","abstract":"\u003cp\u003eA solid line, parallel to the x or y axis, with a fixed thickness but unconstrained in length,"},"Structs/ScrollView.html":{"name":"ScrollView","abstract":"\u003cp\u003eWraps a content element and makes it scrollable.\u003c/p\u003e"},"Structs/SegmentedControl.html":{"name":"SegmentedControl","abstract":"\u003cp\u003eAllows users to pick from an array of options.\u003c/p\u003e"},"Structs/Spacer.html":{"name":"Spacer","abstract":"\u003cp\u003eAn element that does not display anything (it has neither children or a view).\u003c/p\u003e"},"Structs/Tappable.html":{"name":"Tappable","abstract":"\u003cp\u003eWraps a content element and calls the provided closure when tapped.\u003c/p\u003e"},"Structs/TextField.html":{"name":"TextField","abstract":"\u003cp\u003eDisplays a text field.\u003c/p\u003e"},"Structs/TransitionContainer.html":{"name":"TransitionContainer","abstract":"\u003cp\u003eWraps a content element and adds transitions when the element appears,"},"Structs/ElementPreview/PreviewType.html#/s:11BlueprintUI14ElementPreviewV0D4TypeO6deviceyAE05SwiftB00D6DeviceVcAEmF":{"name":"device(_:)","abstract":"\u003cp\u003eThe preview will be inside the provided device (eg, iPhone X).\u003c/p\u003e","parent_name":"PreviewType"},"Structs/ElementPreview/PreviewType.html#/s:11BlueprintUI14ElementPreviewV0D4TypeO5fixedyAE14CoreFoundation7CGFloatV_AItcAEmF":{"name":"fixed(width:height:)","abstract":"\u003cp\u003eThe preview will be the provided size\u003c/p\u003e","parent_name":"PreviewType"},"Structs/ElementPreview/PreviewType.html#/s:11BlueprintUI14ElementPreviewV0D4TypeO8thatFitsyAE14CoreFoundation7CGFloatV_tcAEmF":{"name":"thatFits(padding:)","abstract":"\u003cp\u003eThe preview will be as large as needed to preview the content.\u003c/p\u003e","parent_name":"PreviewType"},"Structs/ElementPreview/PreviewType.html#/s:11BlueprintUI14ElementPreviewV0D4TypeO10identifiers11AnyHashableVvp":{"name":"identifier","parent_name":"PreviewType"},"Structs/ElementPreview/PreviewType.html#/s:11BlueprintUI14ElementPreviewV0D4TypeO11previewView4with3for05SwiftB003AnyG0VSS_AA0C0_ptF":{"name":"previewView(with:for:)","parent_name":"PreviewType"},"Structs/ElementPreview.html#/s:11BlueprintUI14ElementPreviewV0C8Providera":{"name":"ElementProvider","abstract":"\u003cp\u003eA provider which returns a new element.\u003c/p\u003e","parent_name":"ElementPreview"},"Structs/ElementPreview.html#/s:11BlueprintUI14ElementPreviewV13commonDevices5named4withACSS_AA0C0_pyctFZ":{"name":"commonDevices(named:with:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eElementPreview\u003c/code\u003e with several common devices that your users may use.\u003c/p\u003e","parent_name":"ElementPreview"},"Structs/ElementPreview.html#/s:11BlueprintUI14ElementPreviewV5named4withAeCSS_AC0D4TypeOAA0C0_pyctcfc":{"name":"init(named:with:with:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eElementPreview\u003c/code\u003e with the provided preview type.","parent_name":"ElementPreview"},"Structs/ElementPreview.html#/s:11BlueprintUI14ElementPreviewV5named4withAeCSS_SayAC0D4TypeOGAA0C0_pyctcfc":{"name":"init(named:with:with:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eElementPreview\u003c/code\u003e with the provided preview types.\u003c/p\u003e","parent_name":"ElementPreview"},"Structs/ElementPreview.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"ElementPreview"},"Structs/ElementPreview/PreviewType.html":{"name":"PreviewType","abstract":"\u003cp\u003eThe preview type to use to display an element in an Xcode preview.\u003c/p\u003e","parent_name":"ElementPreview"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC11environmentAA11EnvironmentVvp":{"name":"environment","abstract":"\u003cp\u003eA base environment used when laying out and rendering the element tree.\u003c/p\u003e","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC046automaticallyInheritsEnvironmentFromContainingA5ViewsSbvp":{"name":"automaticallyInheritsEnvironmentFromContainingBlueprintViews","abstract":"\u003cp\u003eIf \u003ccode\u003etrue\u003c/code\u003e, then Blueprint will automatically inherit the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Environment.html\"\u003eEnvironment\u003c/a\u003e\u003c/code\u003e from the nearest","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC7elementAA7Element_pSgvp":{"name":"element","abstract":"\u003cp\u003eThe root element that is displayed within the view.\u003c/p\u003e","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(py)bounds":{"name":"bounds","abstract":"\u003cp\u003eWe need to invalidateIntrinsicContentSize when \u003ccode\u003ebound.size\u003c/code\u003e changes for Auto Layout to work correctly.\u003c/p\u003e","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC10layoutModeAA06LayoutE0OSgvp":{"name":"layoutMode","abstract":"\u003cp\u003eAn optional explicit layout mode for this view. If \u003ccode\u003enil\u003c/code\u003e, this view will inherit the layout","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC4nameSSSgvp":{"name":"name","abstract":"\u003cp\u003eAn optional name to help identify this view\u003c/p\u003e","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC15metricsDelegateAA0ac7MetricsE0_pSgvp":{"name":"metricsDelegate","abstract":"\u003cp\u003eProvides performance metrics about the duration of layouts, updates, etc.\u003c/p\u003e","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC7element11environmentAcA7Element_pSg_AA11EnvironmentVtcfc":{"name":"init(element:environment:)","abstract":"\u003cp\u003eInstantiates a view with the given element\u003c/p\u003e","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)initWithFrame:":{"name":"init(frame:)","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)sizeThatFits:":{"name":"sizeThatFits(_:)","abstract":"\u003cp\u003eMeasures the size needed to display the view within the given constraining size,","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/s:11BlueprintUI0A4ViewC12sizeThatFitsySo6CGSizeVAA14SizeConstraintVF":{"name":"sizeThatFits(_:)","abstract":"\u003cp\u003eMeasures the size needed to display the view within the given \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/SizeConstraint.html\"\u003eSizeConstraint\u003c/a\u003e\u003c/code\u003e.","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)systemLayoutSizeFittingSize:":{"name":"systemLayoutSizeFitting(_:)","abstract":"\u003cp\u003eMeasures the size needed to display the view within then given constraining size,","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:":{"name":"systemLayoutSizeFitting(_:withHorizontalFittingPriority:verticalFittingPriority:)","abstract":"\u003cp\u003eMeasures the size needed to display the view within then given constraining size,","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"\u003cp\u003eFor us, this is the same as \u003ccode\u003esizeThatFits\u003c/code\u003e, since blueprint does not","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(py)semanticContentAttribute":{"name":"semanticContentAttribute","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)safeAreaInsetsDidChange":{"name":"safeAreaInsetsDidChange()","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)layoutSubviews":{"name":"layoutSubviews()","parent_name":"BlueprintView"},"Classes/BlueprintView.html#/c:@M@BlueprintUI@objc(cs)BlueprintView(im)didMoveToWindow":{"name":"didMoveToWindow()","parent_name":"BlueprintView"},"Classes/BlueprintView.html":{"name":"BlueprintView","abstract":"\u003cp\u003eA view that is responsible for displaying an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/Element.html\"\u003eElement\u003c/a\u003e\u003c/code\u003e hierarchy.\u003c/p\u003e"},"Structs/ElementPreview.html":{"name":"ElementPreview","abstract":"\u003cp\u003eA SwiftUI view which wraps a Blueprint element, which can be used to preview Blueprint elements"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV5alpha14CoreFoundation7CGFloatVvp":{"name":"alpha","abstract":"\u003cp\u003eThe alpha of the view in the hidden state (initial for appearing, final for disappearing).\u003c/p\u003e","parent_name":"VisibilityTransition"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV9transformSo13CATransform3DVvp":{"name":"transform","abstract":"\u003cp\u003eThe transform of the view in the hidden state (initial for appearing, final for disappearing).\u003c/p\u003e","parent_name":"VisibilityTransition"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV10attributesAA19AnimationAttributesVvp":{"name":"attributes","abstract":"\u003cp\u003eThe animation attributes that will be used to drive the transition.\u003c/p\u003e","parent_name":"VisibilityTransition"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV5alpha9transform10attributesAC14CoreFoundation7CGFloatV_So13CATransform3DVAA19AnimationAttributesVtcfc":{"name":"init(alpha:transform:attributes:)","parent_name":"VisibilityTransition"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV5scaleACvpZ":{"name":"scale","abstract":"\u003cp\u003eReturns a \u003ccode\u003eVisibilityTransition\u003c/code\u003e that scales in and out.\u003c/p\u003e","parent_name":"VisibilityTransition"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV4fadeACvpZ":{"name":"fade","abstract":"\u003cp\u003eReturns a \u003ccode\u003eVisibilityTransition\u003c/code\u003e that fades in and out.\u003c/p\u003e","parent_name":"VisibilityTransition"},"Structs/VisibilityTransition.html#/s:11BlueprintUI20VisibilityTransitionV12scaleAndFadeACvpZ":{"name":"scaleAndFade","abstract":"\u003cp\u003eReturns a \u003ccode\u003eVisibilityTransition\u003c/code\u003e that simultaneously scales and fades in and out.\u003c/p\u003e","parent_name":"VisibilityTransition"},"Enums/LayoutTransition.html#/s:11BlueprintUI16LayoutTransitionO4noneyA2CmF":{"name":"none","abstract":"\u003cp\u003eThe view will never animate layout changes.\u003c/p\u003e","parent_name":"LayoutTransition"},"Enums/LayoutTransition.html#/s:11BlueprintUI16LayoutTransitionO8specificyAcA19AnimationAttributesVcACmF":{"name":"specific(_:)","abstract":"\u003cp\u003eLayout changes will always animate with the given attributes.\u003c/p\u003e","parent_name":"LayoutTransition"},"Enums/LayoutTransition.html#/s:11BlueprintUI16LayoutTransitionO9inheritedyA2CmF":{"name":"inherited","abstract":"\u003cp\u003eThe view will only animate layout changes if an inherited transition exists.\u003c/p\u003e","parent_name":"LayoutTransition"},"Enums/LayoutTransition.html#/s:11BlueprintUI16LayoutTransitionO21inheritedWithFallbackyAcA19AnimationAttributesVcACmF":{"name":"inheritedWithFallback(_:)","abstract":"\u003cp\u003eThe view will animate along with an inherited transition (if present) or the specified fallback attributes.\u003c/p\u003e","parent_name":"LayoutTransition"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV6Updatea":{"name":"Update","abstract":"\u003cp\u003eA closure that is applied to the native view instance during an update cycle.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV7builderxycvp":{"name":"builder","abstract":"\u003cp\u003eA closure that is responsible for instantiating an instance of the native view.","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV7updatesSayyxcGvp":{"name":"updates","abstract":"\u003cp\u003eAn array of update closures.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV07contentC0ySo6UIViewCxcvp":{"name":"contentView","abstract":"\u003cp\u003eA closure that takes a native view instance as the single argument, and","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV16layoutTransitionAA06LayoutG0Ovp":{"name":"layoutTransition","abstract":"\u003cp\u003eThe transition to use during layout changes.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV19appearingTransitionAA010VisibilityG0VSgvp":{"name":"appearingTransition","abstract":"\u003cp\u003eThe transition to use when this view appears.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV22disappearingTransitionAA010VisibilityG0VSgvp":{"name":"disappearingTransition","abstract":"\u003cp\u003eThe transition to use when this view disappears.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV8onAppearyycSgvp":{"name":"onAppear","abstract":"\u003cp\u003eA hook to call when the element appears.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV11onDisappearyycSgvp":{"name":"onDisappear","abstract":"\u003cp\u003eA hook to call when the element disappears.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV21frameRoundingBehaviorAC05FramegH0Ovp":{"name":"frameRoundingBehavior","abstract":"\u003cp\u003eThe prioritization method to use when snapping the native view\u0026rsquo;s frame to pixel","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationVAEy_xGycfc":{"name":"init()","abstract":"\u003cp\u003eInitializes a default configuration object.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV5applyyyyxcF":{"name":"apply(_:)","abstract":"\u003cp\u003eAdds the given update closure to the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationV7updatesSayyxcGvp\"\u003eupdates\u003c/a\u003e\u003c/code\u003e array.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationVyqd__Sgs24ReferenceWritableKeyPathCyxqd__Gcluip":{"name":"subscript(_:)","abstract":"\u003cp\u003eSubscript for values that are not optional. We must represent these values as optional so that we can","parent_name":"Configuration"},"Structs/ViewDescription/Configuration.html#/s:11BlueprintUI15ViewDescriptionV13ConfigurationVyqd__Sgs24ReferenceWritableKeyPathCyxAFGcluip":{"name":"subscript(_:)","abstract":"\u003cp\u003eSubscript for values that are optional.\u003c/p\u003e","parent_name":"Configuration"},"Structs/ViewDescription/FrameRoundingBehavior.html#/s:11BlueprintUI15ViewDescriptionV21FrameRoundingBehaviorO15prioritizeEdgesyA2EmF":{"name":"prioritizeEdges","abstract":"\u003cp\u003ePrioritize preserving frame edge positions\u003c/p\u003e","parent_name":"FrameRoundingBehavior"},"Structs/ViewDescription/FrameRoundingBehavior.html#/s:11BlueprintUI15ViewDescriptionV21FrameRoundingBehaviorO14prioritizeSizeyA2EmF":{"name":"prioritizeSize","abstract":"\u003cp\u003ePrioritize preserving frame sizes\u003c/p\u003e","parent_name":"FrameRoundingBehavior"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionVyACxmcSo6UIViewCRbzlufc":{"name":"init(_:)","abstract":"\u003cp\u003eGenerates a view description for the given view class.\u003c/p\u003e","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV_11configuringACxm_yAC13ConfigurationVy_xGzXEtcSo6UIViewCRbzlufc":{"name":"init(_:configuring:)","abstract":"\u003cp\u003eGenerates a view description for the given view class.\u003c/p\u003e","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV8viewTypeSo6UIViewCmvp":{"name":"viewType","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV5buildSo6UIViewCyF":{"name":"build()","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV5apply2toySo6UIViewC_tF":{"name":"apply(to:)","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV07contentC02inSo6UIViewCAG_tF":{"name":"contentView(in:)","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV16layoutTransitionAA06LayoutF0Ovp":{"name":"layoutTransition","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV19appearingTransitionAA010VisibilityF0VSgvp":{"name":"appearingTransition","parent_name":"ViewDescription"},"Structs/ViewDescription.html#/s:11BlueprintUI15ViewDescriptionV22disappearingTransitionAA010VisibilityF0VSgvp":{"name":"disappearingTransition","parent_name":"ViewDescription"},"Structs/ViewDescription/FrameRoundingBehavior.html":{"name":"FrameRoundingBehavior","abstract":"\u003cp\u003eThe available prioritization options for rounding frames to pixel boundaries.\u003c/p\u003e","parent_name":"ViewDescription"},"Structs/ViewDescription/Configuration.html":{"name":"Configuration","abstract":"\u003cp\u003eRepresents the configuration of a specific UIView type.\u003c/p\u003e","parent_name":"ViewDescription"},"Structs/ElementContent/Builder.html#/s:11BlueprintUI14ElementContentV7BuilderV6layoutxvp":{"name":"layout","abstract":"\u003cp\u003eThe layout object that is ultimately responsible for measuring","parent_name":"Builder"},"Structs/ElementContent/Builder.html#/s:11BlueprintUI14ElementContentV7BuilderV3add6traits3key7elementy6TraitsQz_s11AnyHashableVSgAA0C0_ptF":{"name":"add(traits:key:element:)","abstract":"\u003cp\u003eAdds the given child element.\u003c/p\u003e","parent_name":"Builder"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV7measure2in11environmentSo6CGSizeVAA14SizeConstraintV_AA11EnvironmentVtF":{"name":"measure(in:environment:)","abstract":"\u003cp\u003eMeasures the required size of this element\u0026rsquo;s content.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV10childCountSivp":{"name":"childCount","parent_name":"ElementContent"},"Structs/ElementContent/Builder.html":{"name":"Builder","abstract":"\u003cp\u003eUsed to construct elements that have layout and children.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV6layout9configureACx_yAC7BuilderVy_xGzXEtcAA6LayoutRzlufc":{"name":"init(layout:configure:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with the given layout and children.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV5child3key6layoutAcA0C0_p_s11AnyHashableVSgxtcAA17SingleChildLayoutRzlufc":{"name":"init(child:key:layout:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with the given element and layout.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV5childAcA0C0_p_tcfc":{"name":"init(child:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with the given element.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV5buildAcA0C0_pAA14SizeConstraintV_AA11EnvironmentVtc_tcfc":{"name":"init(build:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e that will lazily create its storage during a layout and measurement pass,","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV10measurableAcA10Measurable_p_tcfc":{"name":"init(measurable:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with no children that delegates to the provided \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbProtocols/Measurable.html\"\u003eMeasurable\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV15measureFunctionACSo6CGSizeVAA14SizeConstraintVc_tcfc":{"name":"init(measureFunction:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with no children that delegates to the provided measure function.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV15measureFunctionACSo6CGSizeVAA14SizeConstraintV_AA11EnvironmentVtc_tcfc":{"name":"init(measureFunction:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with no children that delegates to the provided measure function.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV13intrinsicSizeACSo6CGSizeV_tcfc":{"name":"init(intrinsicSize:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with no children that uses the provided intrinsic size for measuring.\u003c/p\u003e","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV5child11environmentAcA0C0_p_yAA11EnvironmentVzctcfc":{"name":"init(child:environment:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with the given child element, measurement caching key, and environment adapter,","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV5child3key5valueAcA0C0_p_xm5ValueQztcAA14EnvironmentKeyRzlufc":{"name":"init(child:key:value:)","abstract":"\u003cp\u003eInitializes a new \u003ccode\u003eElementContent\u003c/code\u003e with the given child element, measurement caching key, and environment key + value.","parent_name":"ElementContent"},"Structs/ElementContent.html#/s:11BlueprintUI14ElementContentV9measuringAcA0C0_p_tcfc":{"name":"init(measuring:)","abstract":"\u003cp\u003eCreates a new \u003ccode\u003eElementContent\u003c/code\u003e which uses the provided element to measure its","parent_name":"ElementContent"},"Protocols/ProxyElement.html#/s:11BlueprintUI12ProxyElementP21elementRepresentationAA0D0_pvp":{"name":"elementRepresentation","abstract":"\u003cp\u003eReturns an element that represents the entire content of this element.\u003c/p\u003e","parent_name":"ProxyElement"},"Protocols/ProxyElement.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","parent_name":"ProxyElement"},"Protocols/ProxyElement.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","parent_name":"ProxyElement"},"Protocols/Element.html#/s:11BlueprintUI7ElementP7contentAA0C7ContentVvp":{"name":"content","abstract":"\u003cp\u003eReturns the content of this element.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF":{"name":"backingViewDescription(with:)","abstract":"\u003cp\u003eReturns an (optional) description of the view that should back this element.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE18adaptedEnvironment3key5valueAaB_pqd__m_5ValueQyd__tAA0E3KeyRd__lF":{"name":"adaptedEnvironment(key:value:)","abstract":"\u003cp\u003eWraps this element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AdaptedEnvironment.html\"\u003eAdaptedEnvironment\u003c/a\u003e\u003c/code\u003e with the given environment key and value.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE18adaptedEnvironment7keyPath5valueAaB_ps011WritableKeyG0CyAA0E0Vqd__G_qd__tlF":{"name":"adaptedEnvironment(keyPath:value:)","abstract":"\u003cp\u003eWraps this element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AdaptedEnvironment.html\"\u003eAdaptedEnvironment\u003c/a\u003e\u003c/code\u003e with the given keypath and value.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE18adaptedEnvironment2byAaB_pyAA0E0Vzc_tF":{"name":"adaptedEnvironment(by:)","abstract":"\u003cp\u003eWraps this element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AdaptedEnvironment.html\"\u003eAdaptedEnvironment\u003c/a\u003e\u003c/code\u003e with the given configuration block.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE7aligned10vertically12horizontallyAA7AlignedVAH17VerticalAlignmentO_AH010HorizontalI0OtF":{"name":"aligned(vertically:horizontally:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Aligned.html\"\u003eAligned\u003c/a\u003e\u003c/code\u003e element with the provided parameters.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE8centeredAA8CenteredVyF":{"name":"centered()","abstract":"\u003cp\u003eWraps the element in a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Centered.html\"\u003eCentered\u003c/a\u003e\u003c/code\u003e element to center it within its parent.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE2if_4thenAaB_pSb_AaB_pxXEtF":{"name":"if(_:then:)","abstract":"\u003cp\u003eReturns a new element from the provided \u003ccode\u003emodify\u003c/code\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE2if_4then4elseAaB_pSb_AaB_pxXEAaB_pxXEtF":{"name":"if(_:then:else:)","abstract":"\u003cp\u003eReturns a new element from the provided \u003ccode\u003ethen\u003c/code\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE2if3let4thenAaB_pqd__Sg_AaB_pqd___xtXEtlF":{"name":"if(let:then:)","abstract":"\u003cp\u003eReturns a new element from the provided \u003ccode\u003emodify\u003c/code\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE2if3let4then4elseAaB_pqd__Sg_AaB_pqd___xtXEAaB_pxXEtlF":{"name":"if(let:then:else:)","abstract":"\u003cp\u003eReturns a new element from the provided \u003ccode\u003ethen\u003c/code\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE3mapyAaB_pAaB_pxXEF":{"name":"map(_:)","abstract":"\u003cp\u003eCreates and returns a new element by passing the","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE6modifyyAaB_pyxzXEF":{"name":"modify(_:)","abstract":"\u003cp\u003eCreates and returns a new element by passing the","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE13constrainedTo11aspectRatio11contentModeAA017ConstrainedAspectG0VAA0kG0V_AH07ContentI0OtF":{"name":"constrainedTo(aspectRatio:contentMode:)","abstract":"\u003cp\u003eConstrains the element to the provided aspect ratio.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE13constrainedTo5width6heightAA15ConstrainedSizeVAH10ConstraintO_AJtF":{"name":"constrainedTo(width:height:)","abstract":"\u003cp\u003eConstrains the measured size of the element to the provided width and height.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE13constrainedTo5width6heightAA15ConstrainedSizeV14CoreFoundation7CGFloatV_AKtF":{"name":"constrainedTo(width:height:)","abstract":"\u003cp\u003eConstrains the measured size of the element to the provided width and height.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE13constrainedTo4sizeAA15ConstrainedSizeVSo6CGSizeV_tF":{"name":"constrainedTo(size:)","abstract":"\u003cp\u003eConstrains the measured size of the element to the provided size.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE11constrained2toAA15ConstrainedSizeVAA0G10ConstraintV_tF":{"name":"constrained(to:)","abstract":"\u003cp\u003eConstrains the measured size of the element to the provided \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/SizeConstraint.html\"\u003eSizeConstraint\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE8decorate8layering8position4withAaB_pAA8DecorateV8LayeringO_AI8PositionVAaB_pyXEtF":{"name":"decorate(layering:position:with:)","abstract":"\u003cp\u003ePlaces a decoration element behind or in front of the given \u003ccode\u003ewrapped\u003c/code\u003e element,","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE9flowChild3keyAA4FlowV0E0Vs11AnyHashableVSg_tF":{"name":"flowChild(key:)","abstract":"\u003cp\u003eWraps the element in a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Flow/Child.html\"\u003eFlow.Child\u003c/a\u003e\u003c/code\u003e to allow customizing the item in the flow layout.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE12gridRowChild3key5widthAA04GridE0V0F0Vs11AnyHashableVSg_AH5WidthOtF":{"name":"gridRowChild(key:width:)","abstract":"\u003cp\u003eWraps an element with a \u003ccode\u003eGridRowChild\u003c/code\u003e in order to provide meta information that a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/GridRow.html\"\u003eGridRow\u003c/a\u003e\u003c/code\u003e can aply to its layout.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE6hiddenyAA6HiddenVSbF":{"name":"hidden(_:)","abstract":"\u003cp\u003eConditionally hide the wrapped element.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE5inset3top6bottom4left5rightAA5InsetV14CoreFoundation7CGFloatV_A3MtF":{"name":"inset(top:bottom:left:right:)","abstract":"\u003cp\u003eInsets the element by the given amount on each side.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE5inset2byAA5InsetVSo12UIEdgeInsetsV_tF":{"name":"inset(by:)","abstract":"\u003cp\u003eInsets the element by the given amount on each side.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE5inset7uniformAA5InsetV14CoreFoundation7CGFloatV_tF":{"name":"inset(uniform:)","abstract":"\u003cp\u003eInsets the element by the given amount on each side.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE5inset10horizontal8verticalAA5InsetV14CoreFoundation7CGFloatV_AKtF":{"name":"inset(horizontal:vertical:)","abstract":"\u003cp\u003eInsets the element by the given amount on each side.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE5keyedyAA5KeyedVs11AnyHashableVF":{"name":"keyed(_:)","abstract":"\u003cp\u003e\u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Keyed.html\"\u003eKeyed\u003c/a\u003e\u003c/code\u003e allows providing a \u003ccode\u003eHashable\u003c/code\u003e value which is used","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE8onAppearyAA17LifecycleObserverVyycF":{"name":"onAppear(_:)","abstract":"\u003cp\u003eAdds a hook that will be called when this element appears.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE11onDisappearyAA17LifecycleObserverVyycF":{"name":"onDisappear(_:)","abstract":"\u003cp\u003eAdds a hook that will be called when this element disappears.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE7opacityyAA7OpacityV14CoreFoundation7CGFloatVF":{"name":"opacity(_:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Opacity.html\"\u003eOpacity\u003c/a\u003e\u003c/code\u003e element with the provided opacity.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE12overlayChild3keyAA7OverlayV0E0Vs11AnyHashableVSg_tF":{"name":"overlayChild(key:)","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE16stackLayoutChild8priority14alignmentGuide3keyAA05StackE0V0F0VAK8PriorityO_14CoreFoundation7CGFloatVAA0C10DimensionsVcSgs11AnyHashableVSgtF":{"name":"stackLayoutChild(priority:alignmentGuide:key:)","abstract":"\u003cp\u003eWraps an element with a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/StackLayout/Child.html\"\u003eStackLayout.Child\u003c/a\u003e\u003c/code\u003e in order to customize \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/StackLayout/Traits.html\"\u003eStackLayout.Traits\u003c/a\u003e\u003c/code\u003e and the key.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE16stackLayoutChild8priorityAA05StackE0V0F0VAI8PriorityO_tF":{"name":"stackLayoutChild(priority:)","abstract":"\u003cp\u003eWraps an element with a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/StackLayout/Child.html\"\u003eStackLayout.Child\u003c/a\u003e\u003c/code\u003e in order to customize the \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/StackLayout/Child/Priority.html\"\u003eStackLayout.Child.Priority\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE18tintAdjustmentModeyAA04TinteF0VSo06UIViewgeF0VF":{"name":"tintAdjustmentMode(_:)","abstract":"\u003cp\u003eConditionally modifies the tint adjustment mode of its wrapped element.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE11transformedyAA11TransformedVSo13CATransform3DVF":{"name":"transformed(_:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Transformed.html\"\u003eTransformed\u003c/a\u003e\u003c/code\u003e element with the provided 3D transform.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE11transformedyAA11TransformedVSo17CGAffineTransformVF":{"name":"transformed(_:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Transformed.html\"\u003eTransformed\u003c/a\u003e\u003c/code\u003e element with the provided 2D transform.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE10translated10translateX0E1Y0E1ZAA11TransformedV14CoreFoundation7CGFloatV_A2LtF":{"name":"translated(translateX:translateY:translateZ:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Transformed.html\"\u003eTransformed\u003c/a\u003e\u003c/code\u003e element that translates the receiver in 3D space.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE7rotated2byAA11TransformedV10Foundation11MeasurementVySo11NSUnitAngleCG_tF":{"name":"rotated(by:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Transformed.html\"\u003eTransformed\u003c/a\u003e\u003c/code\u003e element that rotates the receiver in 2D space.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE6scaled6scaleX0E1YAA11TransformedV14CoreFoundation7CGFloatV_AKtF":{"name":"scaled(scaleX:scaleY:)","abstract":"\u003cp\u003eWraps the element in an \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/Transformed.html\"\u003eTransformed\u003c/a\u003e\u003c/code\u003e element that scales the receiver in 2D space.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementPAAE22userInteractionEnabledyAA04UsereF0VSbF":{"name":"userInteractionEnabled(_:)","abstract":"\u003cp\u003eConditionally enable user interaction of the wrapped element.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE18blockAccessibility10isBlockingAD0G7BlockerVSb_tF":{"name":"blockAccessibility(isBlocking:)","abstract":"\u003cp\u003eBlocks all accessibility on the element, so that it is","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE22accessibilityContainer10identifierAaB_pSSSg_tF":{"name":"accessibilityContainer(identifier:)","abstract":"\u003cp\u003eActs as an accessibility container for any subviews","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE013accessibilityC05label5value6traits4hint10identifier0F9FrameSize0fL11CornerStyle13customActions0P7ContentAD013AccessibilityC0VSSSg_AQShyAP5TraitOGA2QSo6CGSizeVSgAD3BoxV0nO0OSayAP12CustomActionVGSayAP0wR0VGtF":{"name":"accessibilityElement(label:value:traits:hint:identifier:accessibilityFrameSize:accessibilityFrameCornerStyle:customActions:customContent:)","abstract":"\u003cp\u003eWraps the receiver in an accessibility element with the provided values.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE13accessibility5label5value4hint10identifier6traits0F9FrameSizeAD013AccessibilityC0VSSSg_A3NShyAM5TraitOGSo6CGSizeVSgtF":{"name":"accessibility(label:value:hint:identifier:traits:accessibilityFrameSize:)","abstract":"\u003cp\u003eWraps the receiver in an accessibility element with the provided values.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE18accessibilityFocus2onAaB_pAD013AccessibilityG0V7TriggerC_tF":{"name":"accessibilityFocus(on:)","abstract":"\u003cp\u003eEnables VoiceOver focus to jump to the wrapped element via the trigger.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE12onLinkTappedyAaB_py10Foundation3URLVcF":{"name":"onLinkTapped(_:)","abstract":"\u003cp\u003eHandle links opened in any \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/AttributedLabel.html\"\u003eAttributedLabel\u003c/a\u003e\u003c/code\u003e within this element using the provided closure.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE3box10background7corners11cornerCurve7borders6shadow12clipsContentAD3BoxVSo7UIColorC_AM11CornerStyleOAM0qJ0OAM06BorderR0OAM06ShadowR0OSbtF":{"name":"box(background:corners:cornerCurve:borders:shadow:clipsContent:)","abstract":"\u003cp\u003eWraps the element in a box to provide basic styling.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE11editingMenu4show4withAD07EditingG0VAI7GestureO_SayAD0jG4ItemVGyXEtF":{"name":"editingMenu(show:with:)","abstract":"\u003cp\u003eAllows showing the system\u0026rsquo;s \u003ccode\u003eUIMenuController\u003c/code\u003e editing menu upon long press of the wrapped element.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE10scrollable_9configureAD10ScrollViewVAH11ContentSizeO_yAHzXEtF":{"name":"scrollable(_:configure:)","abstract":"\u003cp\u003eWraps the element in a \u003ccode\u003e\u003ca href=\"36f8f5912051ae747ef441d6511ca4cbStructs/ScrollView.html\"\u003eScrollView\u003c/a\u003e\u003c/code\u003e to allow it to be scrolled","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE8tappable5onTapAD8TappableVyyc_tF":{"name":"tappable(onTap:)","abstract":"\u003cp\u003eWraps the element and calls the provided closure when tapped.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE10transition8onAppear0G9Disappear0G6LayoutAD19TransitionContainerVAA010VisibilityK0VSg_AmA0jK0OtF":{"name":"transition(onAppear:onDisappear:onLayout:)","abstract":"\u003cp\u003eWraps the element in a transition container to provide an animated transition.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html#/s:11BlueprintUI7ElementP0A16UICommonControlsE10transitionyAD19TransitionContainerVAA010VisibilityG0VF":{"name":"transition(_:)","abstract":"\u003cp\u003eWraps the element in a transition container to provide an animated transition when its visibility changes.\u003c/p\u003e","parent_name":"Element"},"Protocols/Element.html":{"name":"Element","abstract":"\u003cp\u003eConforming types represent a rectangular content area in a two-dimensional"},"Protocols/ProxyElement.html":{"name":"ProxyElement","abstract":"\u003cp\u003eCustom elements commonly use another element to actually display content. For example, a profile element might"},"Structs/ElementContent.html":{"name":"ElementContent","abstract":"\u003cp\u003eRepresents the content of an element.\u003c/p\u003e"},"Structs/ViewDescription.html":{"name":"ViewDescription","abstract":"\u003cp\u003eContains a \u003cem\u003edescription\u003c/em\u003e of a UIView instance. A description includes"},"Enums/LayoutTransition.html":{"name":"LayoutTransition","abstract":"\u003cp\u003eThe transition used when layout attributes change for a view during an"},"Structs/VisibilityTransition.html":{"name":"VisibilityTransition","abstract":"\u003cp\u003eThe transition used when a view is inserted or removed during an update cycle.\u003c/p\u003e"},"Creating%20Custom%20Elements.html":{"name":"Creating Custom Elements"},"Displaying%20Elements.html":{"name":"Displaying Elements"},"Common%20Elements.html":{"name":"Common Elements"},"Environment.html":{"name":"Environment"},"Classes.html":{"name":"Classes","abstract":"\u003cp\u003eThe following classes are available globally.\u003c/p\u003e"},"Enums.html":{"name":"Enumerations","abstract":"\u003cp\u003eThe following enumerations are available globally.\u003c/p\u003e"},"Extensions.html":{"name":"Extensions","abstract":"\u003cp\u003eThe following extensions are available globally.\u003c/p\u003e"},"Protocols.html":{"name":"Protocols","abstract":"\u003cp\u003eThe following protocols are available globally.\u003c/p\u003e"},"Structs.html":{"name":"Structures","abstract":"\u003cp\u003eThe following structures are available globally.\u003c/p\u003e"},"Typealiases.html":{"name":"Type Aliases","abstract":"\u003cp\u003eThe following type aliases are available globally.\u003c/p\u003e"}}
\ No newline at end of file
diff --git a/undocumented.json b/undocumented.json
new file mode 100644
index 000000000..872bd0f41
--- /dev/null
+++ b/undocumented.json
@@ -0,0 +1,6 @@
+{
+ "warnings": [
+
+ ],
+ "source_directory": "/Users/runner/work/Blueprint/Blueprint"
+}
\ No newline at end of file