Build Information
Successful build of ThemeKit, reference v1.26.0 (e30f50), with Swift 6.2 for macOS (SPM) on 10 Oct 2026 11:32:34 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64Build Log
106 | func duration(_ text: String?) -> Self { copy { $0.duration = text } }
:
192 | // in-preview style proving external implementability (token-fed, soft accent
193 | // banner with the route line and the price).
194 | #Preview("Styles × light/dark") {
| `- note: in expansion of macro 'Preview' here
195 | struct BannerTicketStyle: FlightTicketCardStyle {
196 | func makeBody(configuration: FlightTicketCardConfiguration) -> some View {
:
237 | }
238 | }
239 | }
+--- macro expansion #Preview --------------------------------------
|48 | func ticket() -> FlightTicketCard {
|49 | FlightTicketCard(from: "NYC", to: "SFO")
|50 | .cities(from: "New York City", to: "San Francisco").duration("1h 45m")
| | `- warning: call to main actor-isolated instance method 'cities(from:to:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|51 | .times(departure: "10:00 AM", arrival: "11:30 AM")
|52 | .airline("Garuda Indonesia").price(140, currencyCode: "USD").favorite().accent(.info)
+-------------------------------------------------------------------
240 |
241 | // The perforated tear shell is per-preset chrome (see header note): on the
macro expansion #Preview:49:21: warning: call to main actor-isolated initializer 'init(from:to:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Organisms/FlightTicketCard.swift:239:2: note: expanded code originates here
69 | private var customStub: AnyView?
70 |
71 | public init(from: String, to: String) { // R1
| |- note: calls to initializer 'init(from:to:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
72 | self.from = from
73 | self.to = to
:
192 | // in-preview style proving external implementability (token-fed, soft accent
193 | // banner with the route line and the price).
194 | #Preview("Styles × light/dark") {
| `- note: in expansion of macro 'Preview' here
195 | struct BannerTicketStyle: FlightTicketCardStyle {
196 | func makeBody(configuration: FlightTicketCardConfiguration) -> some View {
:
237 | }
238 | }
239 | }
+--- macro expansion #Preview --------------------------------------
|47 |
|48 | func ticket() -> FlightTicketCard {
|49 | FlightTicketCard(from: "NYC", to: "SFO")
| | `- warning: call to main actor-isolated initializer 'init(from:to:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|50 | .cities(from: "New York City", to: "San Francisco").duration("1h 45m")
|51 | .times(departure: "10:00 AM", arrival: "11:30 AM")
+-------------------------------------------------------------------
240 |
241 | // The perforated tear shell is per-preset chrome (see header note): on the
macro expansion #Preview:29:77: warning: 'color' is deprecated: Use accent(_:) with a SemanticColor token. [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Organisms/FlightTicketCard.swift:239:2: note: expanded code originates here
192 | // in-preview style proving external implementability (token-fed, soft accent
193 | // banner with the route line and the price).
194 | #Preview("Styles × light/dark") {
| `- note: in expansion of macro 'Preview' here
195 | struct BannerTicketStyle: FlightTicketCardStyle {
196 | func makeBody(configuration: FlightTicketCardConfiguration) -> some View {
:
237 | }
238 | }
239 | }
+--- macro expansion #Preview --------------------------------------
|27 | HStack(spacing: configuration.spacing(.sm)) {
|28 | Text(configuration.from).textStyle(.labelMd700).foregroundStyle(theme.text(.textPrimary))
|29 | Icon(systemName: "arrow.forward").size(.xs).color(theme.text(.textTertiary))
| | `- warning: 'color' is deprecated: Use accent(_:) with a SemanticColor token. [#DeprecatedDeclaration]
|30 | Text(configuration.to).textStyle(.labelMd700).foregroundStyle(theme.text(.textPrimary))
|31 | if let duration = configuration.duration {
+-------------------------------------------------------------------
240 |
241 | // The perforated tear shell is per-preset chrome (see header note): on the
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[416/424] Compiling ThemeKitTravel FlightTicketCard.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/LayoverRow.swift:139:71: warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
137 | }
138 | PreviewCase("Deprecated .variant(_:) still works") {
139 | LayoverRow(duration: "2h 15m", airport: "Istanbul (IST)").variant(.banner).accent(.success)
| `- warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRow.swift:237:43: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
235 | .padding()
236 | .frame(maxWidth: .infinity)
237 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
238 | }
239 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRowStyle.swift:428:51: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
426 | .surface(.bgWhite).onSearch { }
427 | .padding(Theme.SpacingKey.sm.value)
428 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
429 | .recentSearchRowStyle(.pill)
430 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Organisms/FlightTicketCard.swift:205:65: warning: 'color' is deprecated: Use accent(_:) with a SemanticColor token. [#DeprecatedDeclaration]
203 | HStack(spacing: configuration.spacing(.sm)) {
204 | Text(configuration.from).textStyle(.labelMd700).foregroundStyle(theme.text(.textPrimary))
205 | Icon(systemName: "arrow.forward").size(.xs).color(theme.text(.textTertiary))
| `- warning: 'color' is deprecated: Use accent(_:) with a SemanticColor token. [#DeprecatedDeclaration]
206 | Text(configuration.to).textStyle(.labelMd700).foregroundStyle(theme.text(.textPrimary))
207 | if let duration = configuration.duration {
macro expansion #Preview:52:97: warning: call to main actor-isolated instance method 'accent' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Organisms/FlightTicketCard.swift:239:2: note: expanded code originates here
127 | /// ``favorite(_:)`` when the flag must persist.
128 | func favorite() -> Self { copy { $0.showsFavorite = true } }
129 | func accent(_ color: SemanticColor?) -> Self { copy { $0.accent = color } }
| |- note: calls to instance method 'accent' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
130 | func elevation(_ e: CardElevation) -> Self { copy { $0.elevation = e } }
131 | func surface(_ key: Theme.BackgroundColorKey) -> Self { copy { $0.surfaceKey = key } }
:
192 | // in-preview style proving external implementability (token-fed, soft accent
193 | // banner with the route line and the price).
194 | #Preview("Styles × light/dark") {
| `- note: in expansion of macro 'Preview' here
195 | struct BannerTicketStyle: FlightTicketCardStyle {
196 | func makeBody(configuration: FlightTicketCardConfiguration) -> some View {
:
237 | }
238 | }
239 | }
+--- macro expansion #Preview --------------------------------------
|50 | .cities(from: "New York City", to: "San Francisco").duration("1h 45m")
|51 | .times(departure: "10:00 AM", arrival: "11:30 AM")
|52 | .airline("Garuda Indonesia").price(140, currencyCode: "USD").favorite().accent(.info)
| | `- warning: call to main actor-isolated instance method 'accent' in a synchronous nonisolated context [#ActorIsolatedCall]
|53 | }
|54 |
+-------------------------------------------------------------------
240 |
241 | // The perforated tear shell is per-preset chrome (see header note): on the
macro expansion #Preview:52:86: warning: call to main actor-isolated instance method 'favorite()' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Organisms/FlightTicketCard.swift:239:2: note: expanded code originates here
126 | /// *scrolling* (state-per-identity) but not identity churn — use
127 | /// ``favorite(_:)`` when the flag must persist.
128 | func favorite() -> Self { copy { $0.showsFavorite = true } }
| |- note: calls to instance method 'favorite()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
129 | func accent(_ color: SemanticColor?) -> Self { copy { $0.accent = color } }
130 | func elevation(_ e: CardElevation) -> Self { copy { $0.elevation = e } }
:
192 | // in-preview style proving external implementability (token-fed, soft accent
193 | // banner with the route line and the price).
194 | #Preview("Styles × light/dark") {
| `- note: in expansion of macro 'Preview' here
195 | struct BannerTicketStyle: FlightTicketCardStyle {
196 | func makeBody(configuration: FlightTicketCardConfiguration) -> some View {
:
237 | }
238 | }
239 | }
+--- macro expansion #Preview --------------------------------------
|50 | .cities(from: "New York City", to: "San Francisco").duration("1h 45m")
|51 | .times(departure: "10:00 AM", arrival: "11:30 AM")
|52 | .airline("Garuda Indonesia").price(140, currencyCode: "USD").favorite().accent(.info)
| | `- warning: call to main actor-isolated instance method 'favorite()' in a synchronous nonisolated context [#ActorIsolatedCall]
|53 | }
|54 |
+-------------------------------------------------------------------
240 |
241 | // The perforated tear shell is per-preset chrome (see header note): on the
macro expansion #Preview:52:54: warning: call to main actor-isolated instance method 'price(_:currencyCode:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Organisms/FlightTicketCard.swift:239:2: note: expanded code originates here
108 | func airline(_ name: String?, icon: String = "airplane") -> Self { copy { $0.airline = name; $0.airlineIcon = icon } }
109 | func airlineLogo(_ url: URL?) -> Self { copy { $0.airlineLogo = url } }
110 | func price(_ amount: Decimal?, currencyCode: String = "USD") -> Self { copy { $0.price = amount; $0.currencyCode = currencyCode } }
| |- note: calls to instance method 'price(_:currencyCode:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
111 | /// Omitted-currency form — resolves the code from the environment:
112 | /// `formatDefaults.currencyCode` → `locale.currency` → `"USD"` (§10).
:
192 | // in-preview style proving external implementability (token-fed, soft accent
193 | // banner with the route line and the price).
194 | #Preview("Styles × light/dark") {
| `- note: in expansion of macro 'Preview' here
195 | struct BannerTicketStyle: FlightTicketCardStyle {
196 | func makeBody(configuration: FlightTicketCardConfiguration) -> some View {
:
237 | }
238 | }
239 | }
+--- macro expansion #Preview --------------------------------------
|50 | .cities(from: "New York City", to: "San Francisco").duration("1h 45m")
|51 | .times(departure: "10:00 AM", arrival: "11:30 AM")
|52 | .airline("Garuda Indonesia").price(140, currencyCode: "USD").favorite().accent(.info)
| | `- warning: call to main actor-isolated instance method 'price(_:currencyCode:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|53 | }
|54 |
+-------------------------------------------------------------------
240 |
241 | // The perforated tear shell is per-preset chrome (see header note): on the
macro expansion #Preview:52:26: warning: call to main actor-isolated instance method 'airline(_:icon:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Organisms/FlightTicketCard.swift:239:2: note: expanded code originates here
106 | func duration(_ text: String?) -> Self { copy { $0.duration = text } }
107 | func stops(_ count: Int) -> Self { copy { $0.stops = max(0, count) } }
108 | func airline(_ name: String?, icon: String = "airplane") -> Self { copy { $0.airline = name; $0.airlineIcon = icon } }
| |- note: calls to instance method 'airline(_:icon:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
109 | func airlineLogo(_ url: URL?) -> Self { copy { $0.airlineLogo = url } }
110 | func price(_ amount: Decimal?, currencyCode: String = "USD") -> Self { copy { $0.price = amount; $0.currencyCode = currencyCode } }
:
192 | // in-preview style proving external implementability (token-fed, soft accent
193 | // banner with the route line and the price).
194 | #Preview("Styles × light/dark") {
| `- note: in expansion of macro 'Preview' here
195 | struct BannerTicketStyle: FlightTicketCardStyle {
196 | func makeBody(configuration: FlightTicketCardConfiguration) -> some View {
:
237 | }
238 | }
239 | }
+--- macro expansion #Preview --------------------------------------
|50 | .cities(from: "New York City", to: "San Francisco").duration("1h 45m")
|51 | .times(departure: "10:00 AM", arrival: "11:30 AM")
|52 | .airline("Garuda Indonesia").price(140, currencyCode: "USD").favorite().accent(.info)
| | `- warning: call to main actor-isolated instance method 'airline(_:icon:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|53 | }
|54 |
+-------------------------------------------------------------------
240 |
241 | // The perforated tear shell is per-preset chrome (see header note): on the
macro expansion #Preview:51:26: warning: call to main actor-isolated instance method 'times(departure:arrival:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Organisms/FlightTicketCard.swift:239:2: note: expanded code originates here
103 | public extension FlightTicketCard {
104 | func cities(from: String?, to: String?) -> Self { copy { $0.fromCity = from; $0.toCity = to } }
105 | func times(departure: String?, arrival: String?) -> Self { copy { $0.departure = departure; $0.arrival = arrival } }
| |- note: calls to instance method 'times(departure:arrival:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
106 | func duration(_ text: String?) -> Self { copy { $0.duration = text } }
107 | func stops(_ count: Int) -> Self { copy { $0.stops = max(0, count) } }
:
192 | // in-preview style proving external implementability (token-fed, soft accent
193 | // banner with the route line and the price).
194 | #Preview("Styles × light/dark") {
| `- note: in expansion of macro 'Preview' here
195 | struct BannerTicketStyle: FlightTicketCardStyle {
196 | func makeBody(configuration: FlightTicketCardConfiguration) -> some View {
:
237 | }
238 | }
239 | }
+--- macro expansion #Preview --------------------------------------
|49 | FlightTicketCard(from: "NYC", to: "SFO")
|50 | .cities(from: "New York City", to: "San Francisco").duration("1h 45m")
|51 | .times(departure: "10:00 AM", arrival: "11:30 AM")
| | `- warning: call to main actor-isolated instance method 'times(departure:arrival:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|52 | .airline("Garuda Indonesia").price(140, currencyCode: "USD").favorite().accent(.info)
|53 | }
+-------------------------------------------------------------------
240 |
241 | // The perforated tear shell is per-preset chrome (see header note): on the
macro expansion #Preview:50:77: warning: call to main actor-isolated instance method 'duration' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Organisms/FlightTicketCard.swift:239:2: note: expanded code originates here
104 | func cities(from: String?, to: String?) -> Self { copy { $0.fromCity = from; $0.toCity = to } }
105 | func times(departure: String?, arrival: String?) -> Self { copy { $0.departure = departure; $0.arrival = arrival } }
106 | func duration(_ text: String?) -> Self { copy { $0.duration = text } }
| |- note: calls to instance method 'duration' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
107 | func stops(_ count: Int) -> Self { copy { $0.stops = max(0, count) } }
108 | func airline(_ name: String?, icon: String = "airplane") -> Self { copy { $0.airline = name; $0.airlineIcon = icon } }
:
192 | // in-preview style proving external implementability (token-fed, soft accent
193 | // banner with the route line and the price).
194 | #Preview("Styles × light/dark") {
| `- note: in expansion of macro 'Preview' here
195 | struct BannerTicketStyle: FlightTicketCardStyle {
196 | func makeBody(configuration: FlightTicketCardConfiguration) -> some View {
:
237 | }
238 | }
239 | }
+--- macro expansion #Preview --------------------------------------
|48 | func ticket() -> FlightTicketCard {
|49 | FlightTicketCard(from: "NYC", to: "SFO")
|50 | .cities(from: "New York City", to: "San Francisco").duration("1h 45m")
| | `- warning: call to main actor-isolated instance method 'duration' in a synchronous nonisolated context [#ActorIsolatedCall]
|51 | .times(departure: "10:00 AM", arrival: "11:30 AM")
|52 | .airline("Garuda Indonesia").price(140, currencyCode: "USD").favorite().accent(.info)
+-------------------------------------------------------------------
240 |
241 | // The perforated tear shell is per-preset chrome (see header note): on the
macro expansion #Preview:50:26: warning: call to main actor-isolated instance method 'cities(from:to:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Organisms/FlightTicketCard.swift:239:2: note: expanded code originates here
102 |
103 | public extension FlightTicketCard {
104 | func cities(from: String?, to: String?) -> Self { copy { $0.fromCity = from; $0.toCity = to } }
| |- note: calls to instance method 'cities(from:to:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
105 | func times(departure: String?, arrival: String?) -> Self { copy { $0.departure = departure; $0.arrival = arrival } }
106 | func duration(_ text: String?) -> Self { copy { $0.duration = text } }
:
192 | // in-preview style proving external implementability (token-fed, soft accent
193 | // banner with the route line and the price).
194 | #Preview("Styles × light/dark") {
| `- note: in expansion of macro 'Preview' here
195 | struct BannerTicketStyle: FlightTicketCardStyle {
196 | func makeBody(configuration: FlightTicketCardConfiguration) -> some View {
:
237 | }
238 | }
239 | }
+--- macro expansion #Preview --------------------------------------
|48 | func ticket() -> FlightTicketCard {
|49 | FlightTicketCard(from: "NYC", to: "SFO")
|50 | .cities(from: "New York City", to: "San Francisco").duration("1h 45m")
| | `- warning: call to main actor-isolated instance method 'cities(from:to:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|51 | .times(departure: "10:00 AM", arrival: "11:30 AM")
|52 | .airline("Garuda Indonesia").price(140, currencyCode: "USD").favorite().accent(.info)
+-------------------------------------------------------------------
240 |
241 | // The perforated tear shell is per-preset chrome (see header note): on the
macro expansion #Preview:49:21: warning: call to main actor-isolated initializer 'init(from:to:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Organisms/FlightTicketCard.swift:239:2: note: expanded code originates here
69 | private var customStub: AnyView?
70 |
71 | public init(from: String, to: String) { // R1
| |- note: calls to initializer 'init(from:to:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
72 | self.from = from
73 | self.to = to
:
192 | // in-preview style proving external implementability (token-fed, soft accent
193 | // banner with the route line and the price).
194 | #Preview("Styles × light/dark") {
| `- note: in expansion of macro 'Preview' here
195 | struct BannerTicketStyle: FlightTicketCardStyle {
196 | func makeBody(configuration: FlightTicketCardConfiguration) -> some View {
:
237 | }
238 | }
239 | }
+--- macro expansion #Preview --------------------------------------
|47 |
|48 | func ticket() -> FlightTicketCard {
|49 | FlightTicketCard(from: "NYC", to: "SFO")
| | `- warning: call to main actor-isolated initializer 'init(from:to:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|50 | .cities(from: "New York City", to: "San Francisco").duration("1h 45m")
|51 | .times(departure: "10:00 AM", arrival: "11:30 AM")
+-------------------------------------------------------------------
240 |
241 | // The perforated tear shell is per-preset chrome (see header note): on the
macro expansion #Preview:29:77: warning: 'color' is deprecated: Use accent(_:) with a SemanticColor token. [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Organisms/FlightTicketCard.swift:239:2: note: expanded code originates here
192 | // in-preview style proving external implementability (token-fed, soft accent
193 | // banner with the route line and the price).
194 | #Preview("Styles × light/dark") {
| `- note: in expansion of macro 'Preview' here
195 | struct BannerTicketStyle: FlightTicketCardStyle {
196 | func makeBody(configuration: FlightTicketCardConfiguration) -> some View {
:
237 | }
238 | }
239 | }
+--- macro expansion #Preview --------------------------------------
|27 | HStack(spacing: configuration.spacing(.sm)) {
|28 | Text(configuration.from).textStyle(.labelMd700).foregroundStyle(theme.text(.textPrimary))
|29 | Icon(systemName: "arrow.forward").size(.xs).color(theme.text(.textTertiary))
| | `- warning: 'color' is deprecated: Use accent(_:) with a SemanticColor token. [#DeprecatedDeclaration]
|30 | Text(configuration.to).textStyle(.labelMd700).foregroundStyle(theme.text(.textPrimary))
|31 | if let duration = configuration.duration {
+-------------------------------------------------------------------
240 |
241 | // The perforated tear shell is per-preset chrome (see header note): on the
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[417/424] Compiling ThemeKitTravel FlightStatusBadge.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/LayoverRow.swift:139:71: warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
137 | }
138 | PreviewCase("Deprecated .variant(_:) still works") {
139 | LayoverRow(duration: "2h 15m", airport: "Istanbul (IST)").variant(.banner).accent(.success)
| `- warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRow.swift:237:43: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
235 | .padding()
236 | .frame(maxWidth: .infinity)
237 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
238 | }
239 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRowStyle.swift:428:51: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
426 | .surface(.bgWhite).onSearch { }
427 | .padding(Theme.SpacingKey.sm.value)
428 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
429 | .recentSearchRowStyle(.pill)
430 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:302:53: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
300 | }
301 | }
302 | .foregroundStyle(configuration.tone.base)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:303:51: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
301 | }
302 | .foregroundStyle(configuration.tone.base)
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
304 | }
305 | .fixedSize()
macro expansion #Preview:45:55: warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:156:10: note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
154 | public extension FlightStatusBadge {
155 | /// A trailing time, e.g. "+35m" (delay) or "13:15".
156 | func time(_ text: String?) -> Self { copy { $0.time = text } }
| |- note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
157 | /// Override the label text.
158 | func label(_ text: String?) -> Self { copy { $0.customLabel = text } }
macro expansion #Preview:45:29: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:100:12: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
98 | private enum IconSetting { case automatic, custom(String), hidden }
99 |
100 | public init(_ status: FlightStatus) { self.status = status } // R1
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
101 |
102 | /// The deprecated explicit emphasis mapped to its preset, else the
macro expansion #Preview:33:65: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|31 | }
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
|35 | }
+-------------------------------------------------------------------
338 |
macro expansion #Preview:34:63: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|35 | }
|36 | .fixedSize()
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:93:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
91 | public var indexBinding: Binding<Int> {
92 | Binding(
93 | get: { classes.firstIndex(of: selected) ?? 0 },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:95:23: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
93 | get: { classes.firstIndex(of: selected) ?? 0 },
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
96 | select(classes[index])
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:105:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
103 | public func chipBinding(for cabin: CabinClass) -> Binding<Bool> {
104 | Binding(
105 | get: { selected == cabin },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
106 | set: { isOn in if isOn { select(cabin) } }
107 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:106:38: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
104 | Binding(
105 | get: { selected == cabin },
106 | set: { isOn in if isOn { select(cabin) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
107 | )
108 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:114:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
112 | public var radioBinding: Binding<CabinClass?> {
113 | Binding(
114 | get: { selected },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
115 | set: { newValue in if let newValue { select(newValue) } }
116 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:115:50: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
113 | Binding(
114 | get: { selected },
115 | set: { newValue in if let newValue { select(newValue) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
116 | )
117 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:398:75: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
396 | }
397 | .padding(Theme.SpacingKey.sm.value)
398 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
399 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
400 | }
macro expansion #Preview:73:87: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:407:2: note: expanded code originates here
349 | }
350 |
351 | #Preview {
| `- note: in expansion of macro 'Preview' here
352 | struct Demo: View {
353 | @State var sel = 1
:
405 | }
406 | return Demo()
407 | }
+--- macro expansion #Preview --------------------------------------
|71 | }
|72 | .padding(Theme.SpacingKey.sm.value)
|73 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| | `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
|74 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
|75 | }
+-------------------------------------------------------------------
408 |
409 | #Preview("Selected card + outlined style") {
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[418/424] Compiling ThemeKitTravel FlightStatusBadgeStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/LayoverRow.swift:139:71: warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
137 | }
138 | PreviewCase("Deprecated .variant(_:) still works") {
139 | LayoverRow(duration: "2h 15m", airport: "Istanbul (IST)").variant(.banner).accent(.success)
| `- warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRow.swift:237:43: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
235 | .padding()
236 | .frame(maxWidth: .infinity)
237 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
238 | }
239 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRowStyle.swift:428:51: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
426 | .surface(.bgWhite).onSearch { }
427 | .padding(Theme.SpacingKey.sm.value)
428 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
429 | .recentSearchRowStyle(.pill)
430 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:302:53: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
300 | }
301 | }
302 | .foregroundStyle(configuration.tone.base)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:303:51: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
301 | }
302 | .foregroundStyle(configuration.tone.base)
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
304 | }
305 | .fixedSize()
macro expansion #Preview:45:55: warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:156:10: note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
154 | public extension FlightStatusBadge {
155 | /// A trailing time, e.g. "+35m" (delay) or "13:15".
156 | func time(_ text: String?) -> Self { copy { $0.time = text } }
| |- note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
157 | /// Override the label text.
158 | func label(_ text: String?) -> Self { copy { $0.customLabel = text } }
macro expansion #Preview:45:29: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:100:12: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
98 | private enum IconSetting { case automatic, custom(String), hidden }
99 |
100 | public init(_ status: FlightStatus) { self.status = status } // R1
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
101 |
102 | /// The deprecated explicit emphasis mapped to its preset, else the
macro expansion #Preview:33:65: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|31 | }
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
|35 | }
+-------------------------------------------------------------------
338 |
macro expansion #Preview:34:63: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|35 | }
|36 | .fixedSize()
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:93:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
91 | public var indexBinding: Binding<Int> {
92 | Binding(
93 | get: { classes.firstIndex(of: selected) ?? 0 },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:95:23: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
93 | get: { classes.firstIndex(of: selected) ?? 0 },
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
96 | select(classes[index])
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:105:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
103 | public func chipBinding(for cabin: CabinClass) -> Binding<Bool> {
104 | Binding(
105 | get: { selected == cabin },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
106 | set: { isOn in if isOn { select(cabin) } }
107 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:106:38: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
104 | Binding(
105 | get: { selected == cabin },
106 | set: { isOn in if isOn { select(cabin) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
107 | )
108 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:114:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
112 | public var radioBinding: Binding<CabinClass?> {
113 | Binding(
114 | get: { selected },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
115 | set: { newValue in if let newValue { select(newValue) } }
116 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:115:50: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
113 | Binding(
114 | get: { selected },
115 | set: { newValue in if let newValue { select(newValue) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
116 | )
117 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:398:75: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
396 | }
397 | .padding(Theme.SpacingKey.sm.value)
398 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
399 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
400 | }
macro expansion #Preview:73:87: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:407:2: note: expanded code originates here
349 | }
350 |
351 | #Preview {
| `- note: in expansion of macro 'Preview' here
352 | struct Demo: View {
353 | @State var sel = 1
:
405 | }
406 | return Demo()
407 | }
+--- macro expansion #Preview --------------------------------------
|71 | }
|72 | .padding(Theme.SpacingKey.sm.value)
|73 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| | `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
|74 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
|75 | }
+-------------------------------------------------------------------
408 |
409 | #Preview("Selected card + outlined style") {
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[419/424] Compiling ThemeKitTravel SeatCell.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/LayoverRow.swift:139:71: warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
137 | }
138 | PreviewCase("Deprecated .variant(_:) still works") {
139 | LayoverRow(duration: "2h 15m", airport: "Istanbul (IST)").variant(.banner).accent(.success)
| `- warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRow.swift:237:43: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
235 | .padding()
236 | .frame(maxWidth: .infinity)
237 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
238 | }
239 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRowStyle.swift:428:51: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
426 | .surface(.bgWhite).onSearch { }
427 | .padding(Theme.SpacingKey.sm.value)
428 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
429 | .recentSearchRowStyle(.pill)
430 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:302:53: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
300 | }
301 | }
302 | .foregroundStyle(configuration.tone.base)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:303:51: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
301 | }
302 | .foregroundStyle(configuration.tone.base)
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
304 | }
305 | .fixedSize()
macro expansion #Preview:45:55: warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:156:10: note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
154 | public extension FlightStatusBadge {
155 | /// A trailing time, e.g. "+35m" (delay) or "13:15".
156 | func time(_ text: String?) -> Self { copy { $0.time = text } }
| |- note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
157 | /// Override the label text.
158 | func label(_ text: String?) -> Self { copy { $0.customLabel = text } }
macro expansion #Preview:45:29: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:100:12: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
98 | private enum IconSetting { case automatic, custom(String), hidden }
99 |
100 | public init(_ status: FlightStatus) { self.status = status } // R1
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
101 |
102 | /// The deprecated explicit emphasis mapped to its preset, else the
macro expansion #Preview:33:65: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|31 | }
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
|35 | }
+-------------------------------------------------------------------
338 |
macro expansion #Preview:34:63: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|35 | }
|36 | .fixedSize()
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:93:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
91 | public var indexBinding: Binding<Int> {
92 | Binding(
93 | get: { classes.firstIndex(of: selected) ?? 0 },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:95:23: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
93 | get: { classes.firstIndex(of: selected) ?? 0 },
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
96 | select(classes[index])
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:105:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
103 | public func chipBinding(for cabin: CabinClass) -> Binding<Bool> {
104 | Binding(
105 | get: { selected == cabin },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
106 | set: { isOn in if isOn { select(cabin) } }
107 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:106:38: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
104 | Binding(
105 | get: { selected == cabin },
106 | set: { isOn in if isOn { select(cabin) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
107 | )
108 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:114:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
112 | public var radioBinding: Binding<CabinClass?> {
113 | Binding(
114 | get: { selected },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
115 | set: { newValue in if let newValue { select(newValue) } }
116 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:115:50: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
113 | Binding(
114 | get: { selected },
115 | set: { newValue in if let newValue { select(newValue) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
116 | )
117 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:398:75: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
396 | }
397 | .padding(Theme.SpacingKey.sm.value)
398 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
399 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
400 | }
macro expansion #Preview:73:87: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:407:2: note: expanded code originates here
349 | }
350 |
351 | #Preview {
| `- note: in expansion of macro 'Preview' here
352 | struct Demo: View {
353 | @State var sel = 1
:
405 | }
406 | return Demo()
407 | }
+--- macro expansion #Preview --------------------------------------
|71 | }
|72 | .padding(Theme.SpacingKey.sm.value)
|73 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| | `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
|74 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
|75 | }
+-------------------------------------------------------------------
408 |
409 | #Preview("Selected card + outlined style") {
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[420/424] Compiling ThemeKitTravel SeatCellStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/LayoverRow.swift:139:71: warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
137 | }
138 | PreviewCase("Deprecated .variant(_:) still works") {
139 | LayoverRow(duration: "2h 15m", airport: "Istanbul (IST)").variant(.banner).accent(.success)
| `- warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRow.swift:237:43: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
235 | .padding()
236 | .frame(maxWidth: .infinity)
237 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
238 | }
239 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRowStyle.swift:428:51: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
426 | .surface(.bgWhite).onSearch { }
427 | .padding(Theme.SpacingKey.sm.value)
428 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
429 | .recentSearchRowStyle(.pill)
430 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:302:53: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
300 | }
301 | }
302 | .foregroundStyle(configuration.tone.base)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:303:51: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
301 | }
302 | .foregroundStyle(configuration.tone.base)
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
304 | }
305 | .fixedSize()
macro expansion #Preview:45:55: warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:156:10: note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
154 | public extension FlightStatusBadge {
155 | /// A trailing time, e.g. "+35m" (delay) or "13:15".
156 | func time(_ text: String?) -> Self { copy { $0.time = text } }
| |- note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
157 | /// Override the label text.
158 | func label(_ text: String?) -> Self { copy { $0.customLabel = text } }
macro expansion #Preview:45:29: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:100:12: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
98 | private enum IconSetting { case automatic, custom(String), hidden }
99 |
100 | public init(_ status: FlightStatus) { self.status = status } // R1
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
101 |
102 | /// The deprecated explicit emphasis mapped to its preset, else the
macro expansion #Preview:33:65: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|31 | }
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
|35 | }
+-------------------------------------------------------------------
338 |
macro expansion #Preview:34:63: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|35 | }
|36 | .fixedSize()
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:93:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
91 | public var indexBinding: Binding<Int> {
92 | Binding(
93 | get: { classes.firstIndex(of: selected) ?? 0 },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:95:23: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
93 | get: { classes.firstIndex(of: selected) ?? 0 },
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
96 | select(classes[index])
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:105:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
103 | public func chipBinding(for cabin: CabinClass) -> Binding<Bool> {
104 | Binding(
105 | get: { selected == cabin },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
106 | set: { isOn in if isOn { select(cabin) } }
107 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:106:38: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
104 | Binding(
105 | get: { selected == cabin },
106 | set: { isOn in if isOn { select(cabin) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
107 | )
108 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:114:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
112 | public var radioBinding: Binding<CabinClass?> {
113 | Binding(
114 | get: { selected },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
115 | set: { newValue in if let newValue { select(newValue) } }
116 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:115:50: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
113 | Binding(
114 | get: { selected },
115 | set: { newValue in if let newValue { select(newValue) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
116 | )
117 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:398:75: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
396 | }
397 | .padding(Theme.SpacingKey.sm.value)
398 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
399 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
400 | }
macro expansion #Preview:73:87: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:407:2: note: expanded code originates here
349 | }
350 |
351 | #Preview {
| `- note: in expansion of macro 'Preview' here
352 | struct Demo: View {
353 | @State var sel = 1
:
405 | }
406 | return Demo()
407 | }
+--- macro expansion #Preview --------------------------------------
|71 | }
|72 | .padding(Theme.SpacingKey.sm.value)
|73 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| | `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
|74 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
|75 | }
+-------------------------------------------------------------------
408 |
409 | #Preview("Selected card + outlined style") {
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[421/424] Compiling ThemeKitTravel CabinClassSelector.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/LayoverRow.swift:139:71: warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
137 | }
138 | PreviewCase("Deprecated .variant(_:) still works") {
139 | LayoverRow(duration: "2h 15m", airport: "Istanbul (IST)").variant(.banner).accent(.success)
| `- warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRow.swift:237:43: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
235 | .padding()
236 | .frame(maxWidth: .infinity)
237 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
238 | }
239 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRowStyle.swift:428:51: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
426 | .surface(.bgWhite).onSearch { }
427 | .padding(Theme.SpacingKey.sm.value)
428 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
429 | .recentSearchRowStyle(.pill)
430 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:302:53: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
300 | }
301 | }
302 | .foregroundStyle(configuration.tone.base)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:303:51: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
301 | }
302 | .foregroundStyle(configuration.tone.base)
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
304 | }
305 | .fixedSize()
macro expansion #Preview:45:55: warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:156:10: note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
154 | public extension FlightStatusBadge {
155 | /// A trailing time, e.g. "+35m" (delay) or "13:15".
156 | func time(_ text: String?) -> Self { copy { $0.time = text } }
| |- note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
157 | /// Override the label text.
158 | func label(_ text: String?) -> Self { copy { $0.customLabel = text } }
macro expansion #Preview:45:29: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:100:12: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
98 | private enum IconSetting { case automatic, custom(String), hidden }
99 |
100 | public init(_ status: FlightStatus) { self.status = status } // R1
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
101 |
102 | /// The deprecated explicit emphasis mapped to its preset, else the
macro expansion #Preview:33:65: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|31 | }
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
|35 | }
+-------------------------------------------------------------------
338 |
macro expansion #Preview:34:63: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|35 | }
|36 | .fixedSize()
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:93:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
91 | public var indexBinding: Binding<Int> {
92 | Binding(
93 | get: { classes.firstIndex(of: selected) ?? 0 },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:95:23: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
93 | get: { classes.firstIndex(of: selected) ?? 0 },
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
96 | select(classes[index])
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:105:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
103 | public func chipBinding(for cabin: CabinClass) -> Binding<Bool> {
104 | Binding(
105 | get: { selected == cabin },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
106 | set: { isOn in if isOn { select(cabin) } }
107 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:106:38: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
104 | Binding(
105 | get: { selected == cabin },
106 | set: { isOn in if isOn { select(cabin) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
107 | )
108 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:114:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
112 | public var radioBinding: Binding<CabinClass?> {
113 | Binding(
114 | get: { selected },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
115 | set: { newValue in if let newValue { select(newValue) } }
116 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:115:50: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
113 | Binding(
114 | get: { selected },
115 | set: { newValue in if let newValue { select(newValue) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
116 | )
117 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:398:75: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
396 | }
397 | .padding(Theme.SpacingKey.sm.value)
398 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
399 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
400 | }
macro expansion #Preview:73:87: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:407:2: note: expanded code originates here
349 | }
350 |
351 | #Preview {
| `- note: in expansion of macro 'Preview' here
352 | struct Demo: View {
353 | @State var sel = 1
:
405 | }
406 | return Demo()
407 | }
+--- macro expansion #Preview --------------------------------------
|71 | }
|72 | .padding(Theme.SpacingKey.sm.value)
|73 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| | `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
|74 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
|75 | }
+-------------------------------------------------------------------
408 |
409 | #Preview("Selected card + outlined style") {
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[422/424] Compiling ThemeKitTravel CabinClassSelectorStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/LayoverRow.swift:139:71: warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
137 | }
138 | PreviewCase("Deprecated .variant(_:) still works") {
139 | LayoverRow(duration: "2h 15m", airport: "Istanbul (IST)").variant(.banner).accent(.success)
| `- warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRow.swift:237:43: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
235 | .padding()
236 | .frame(maxWidth: .infinity)
237 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
238 | }
239 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRowStyle.swift:428:51: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
426 | .surface(.bgWhite).onSearch { }
427 | .padding(Theme.SpacingKey.sm.value)
428 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
429 | .recentSearchRowStyle(.pill)
430 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:302:53: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
300 | }
301 | }
302 | .foregroundStyle(configuration.tone.base)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:303:51: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
301 | }
302 | .foregroundStyle(configuration.tone.base)
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
304 | }
305 | .fixedSize()
macro expansion #Preview:45:55: warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:156:10: note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
154 | public extension FlightStatusBadge {
155 | /// A trailing time, e.g. "+35m" (delay) or "13:15".
156 | func time(_ text: String?) -> Self { copy { $0.time = text } }
| |- note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
157 | /// Override the label text.
158 | func label(_ text: String?) -> Self { copy { $0.customLabel = text } }
macro expansion #Preview:45:29: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:100:12: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
98 | private enum IconSetting { case automatic, custom(String), hidden }
99 |
100 | public init(_ status: FlightStatus) { self.status = status } // R1
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
101 |
102 | /// The deprecated explicit emphasis mapped to its preset, else the
macro expansion #Preview:33:65: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|31 | }
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
|35 | }
+-------------------------------------------------------------------
338 |
macro expansion #Preview:34:63: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|35 | }
|36 | .fixedSize()
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:93:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
91 | public var indexBinding: Binding<Int> {
92 | Binding(
93 | get: { classes.firstIndex(of: selected) ?? 0 },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:95:23: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
93 | get: { classes.firstIndex(of: selected) ?? 0 },
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
96 | select(classes[index])
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:105:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
103 | public func chipBinding(for cabin: CabinClass) -> Binding<Bool> {
104 | Binding(
105 | get: { selected == cabin },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
106 | set: { isOn in if isOn { select(cabin) } }
107 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:106:38: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
104 | Binding(
105 | get: { selected == cabin },
106 | set: { isOn in if isOn { select(cabin) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
107 | )
108 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:114:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
112 | public var radioBinding: Binding<CabinClass?> {
113 | Binding(
114 | get: { selected },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
115 | set: { newValue in if let newValue { select(newValue) } }
116 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:115:50: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
113 | Binding(
114 | get: { selected },
115 | set: { newValue in if let newValue { select(newValue) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
116 | )
117 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:398:75: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
396 | }
397 | .padding(Theme.SpacingKey.sm.value)
398 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
399 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
400 | }
macro expansion #Preview:73:87: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:407:2: note: expanded code originates here
349 | }
350 |
351 | #Preview {
| `- note: in expansion of macro 'Preview' here
352 | struct Demo: View {
353 | @State var sel = 1
:
405 | }
406 | return Demo()
407 | }
+--- macro expansion #Preview --------------------------------------
|71 | }
|72 | .padding(Theme.SpacingKey.sm.value)
|73 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| | `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
|74 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
|75 | }
+-------------------------------------------------------------------
408 |
409 | #Preview("Selected card + outlined style") {
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[423/424] Compiling ThemeKitTravel DatePriceStrip.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/LayoverRow.swift:139:71: warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
137 | }
138 | PreviewCase("Deprecated .variant(_:) still works") {
139 | LayoverRow(duration: "2h 15m", airport: "Istanbul (IST)").variant(.banner).accent(.success)
| `- warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRow.swift:237:43: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
235 | .padding()
236 | .frame(maxWidth: .infinity)
237 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
238 | }
239 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRowStyle.swift:428:51: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
426 | .surface(.bgWhite).onSearch { }
427 | .padding(Theme.SpacingKey.sm.value)
428 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
429 | .recentSearchRowStyle(.pill)
430 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:302:53: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
300 | }
301 | }
302 | .foregroundStyle(configuration.tone.base)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:303:51: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
301 | }
302 | .foregroundStyle(configuration.tone.base)
303 | Capsule().fill(configuration.tone.base).frame(height: 2)
| `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
304 | }
305 | .fixedSize()
macro expansion #Preview:45:55: warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated instance method 'time' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:156:10: note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
154 | public extension FlightStatusBadge {
155 | /// A trailing time, e.g. "+35m" (delay) or "13:15".
156 | func time(_ text: String?) -> Self { copy { $0.time = text } }
| |- note: calls to instance method 'time' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
157 | /// Override the label text.
158 | func label(_ text: String?) -> Self { copy { $0.customLabel = text } }
macro expansion #Preview:45:29: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|43 | HStack(spacing: 8) {
|44 | ForEach(statuses, id: \.self) { status in
|45 | FlightStatusBadge(status).time(status == .delayed ? time : nil)
| | `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context [#ActorIsolatedCall]
|46 | }
|47 | }
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadge.swift:100:12: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
98 | private enum IconSetting { case automatic, custom(String), hidden }
99 |
100 | public init(_ status: FlightStatus) { self.status = status } // R1
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
101 |
102 | /// The deprecated explicit emphasis mapped to its preset, else the
macro expansion #Preview:33:65: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|31 | }
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
|35 | }
+-------------------------------------------------------------------
338 |
macro expansion #Preview:34:63: warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Atoms/FlightStatusBadgeStyle.swift:337:2: note: expanded code originates here
285 | // MARK: - Preview
286 |
287 | #Preview {
| `- note: in expansion of macro 'Preview' here
288 | /// Proof of external implementability: a custom underline look. Note it
289 | /// still colours from `configuration.tone` — hue is never a style decision.
:
335 | }
336 | }
337 | }
+--- macro expansion #Preview --------------------------------------
|32 | }
|33 | .foregroundStyle(configuration.tone.base)
|34 | Capsule().fill(configuration.tone.base).frame(height: 2)
| | `- warning: 'base' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).base [#DeprecatedDeclaration]
|35 | }
|36 | .fixedSize()
+-------------------------------------------------------------------
338 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:93:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
91 | public var indexBinding: Binding<Int> {
92 | Binding(
93 | get: { classes.firstIndex(of: selected) ?? 0 },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:95:23: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
93 | get: { classes.firstIndex(of: selected) ?? 0 },
94 | set: { index in
95 | guard classes.indices.contains(index) else { return }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
96 | select(classes[index])
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:105:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
103 | public func chipBinding(for cabin: CabinClass) -> Binding<Bool> {
104 | Binding(
105 | get: { selected == cabin },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
106 | set: { isOn in if isOn { select(cabin) } }
107 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:106:38: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
104 | Binding(
105 | get: { selected == cabin },
106 | set: { isOn in if isOn { select(cabin) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
107 | )
108 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:114:20: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
112 | public var radioBinding: Binding<CabinClass?> {
113 | Binding(
114 | get: { selected },
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
115 | set: { newValue in if let newValue { select(newValue) } }
116 | )
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/CabinClassSelectorStyle.swift:115:50: warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
35 | /// (no glyphs requested → text-only, no description → two-line cards, no size
36 | /// override → each wrapped control's stock ramp).
37 | public struct CabinClassSelectorConfiguration {
| `- note: consider making struct 'CabinClassSelectorConfiguration' conform to the 'Sendable' protocol
38 | /// The offered cabins, in display order — already resolved by the component
39 | /// (`.classes(_:)`, with the empty-list → all-four fallback applied), so a
:
113 | Binding(
114 | get: { selected },
115 | set: { newValue in if let newValue { select(newValue) } }
| `- warning: capture of 'self' with non-Sendable type 'CabinClassSelectorConfiguration' in a '@Sendable' closure [#SendableClosureCaptures]
116 | )
117 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:398:75: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
396 | }
397 | .padding(Theme.SpacingKey.sm.value)
398 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
399 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
400 | }
macro expansion #Preview:73:87: warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
`- /Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/DatePriceStrip.swift:407:2: note: expanded code originates here
349 | }
350 |
351 | #Preview {
| `- note: in expansion of macro 'Preview' here
352 | struct Demo: View {
353 | @State var sel = 1
:
405 | }
406 | return Demo()
407 | }
+--- macro expansion #Preview --------------------------------------
|71 | }
|72 | .padding(Theme.SpacingKey.sm.value)
|73 | .background(isSelected ? SemanticColor.accent.soft : .clear,
| | `- warning: 'soft' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).soft [#DeprecatedDeclaration]
|74 | in: RoundedRectangle(cornerRadius: Theme.RadiusRole.selector.value))
|75 | }
+-------------------------------------------------------------------
408 |
409 | #Preview("Selected card + outlined style") {
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[424/424] Emitting module ThemeKitTravel
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/LayoverRow.swift:139:71: warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
137 | }
138 | PreviewCase("Deprecated .variant(_:) still works") {
139 | LayoverRow(duration: "2h 15m", airport: "Istanbul (IST)").variant(.banner).accent(.success)
| `- warning: 'variant' is deprecated: Use .layoverRowStyle(.line/.pill/.banner) instead [#DeprecatedDeclaration]
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRow.swift:237:43: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
235 | .padding()
236 | .frame(maxWidth: .infinity)
237 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
238 | }
239 |
/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Components/Molecules/RecentSearchRowStyle.swift:428:51: warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
426 | .surface(.bgWhite).onSearch { }
427 | .padding(Theme.SpacingKey.sm.value)
428 | .background(SemanticColor.primary.solid)
| `- warning: 'solid' is deprecated: Reads Theme.shared and ignores per-subtree .theme(); use theme.resolve(color).solid [#DeprecatedDeclaration]
429 | .recentSearchRowStyle(.pill)
430 | }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
Build complete! (91.48s)
Fetching https://github.com/apple/swift-docc-plugin
Fetching https://github.com/pointfreeco/swift-snapshot-testing.git
[1/2345] Fetching swift-docc-plugin
[2346/18846] Fetching swift-docc-plugin, swift-snapshot-testing
Fetched https://github.com/pointfreeco/swift-snapshot-testing.git from cache (6.48s)
Fetched https://github.com/apple/swift-docc-plugin from cache (6.48s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.5.0 (9.25s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3836] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.23s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.92s)
Computing version for https://github.com/pointfreeco/swift-snapshot-testing.git
Computed https://github.com/pointfreeco/swift-snapshot-testing.git at 1.19.6 (0.53s)
Fetching https://github.com/pointfreeco/swift-custom-dump
Fetching https://github.com/swiftlang/swift-syntax
[1/5669] Fetching swift-custom-dump
[5670/86081] Fetching swift-custom-dump, swift-syntax
Fetched https://github.com/swiftlang/swift-syntax from cache (5.49s)
Fetched https://github.com/pointfreeco/swift-custom-dump from cache (5.49s)
Computing version for https://github.com/pointfreeco/swift-custom-dump
Computed https://github.com/pointfreeco/swift-custom-dump at 1.7.3 (6.12s)
Fetching https://github.com/pointfreeco/xctest-dynamic-overlay
[1/2727] Fetching xctest-dynamic-overlay
Fetched https://github.com/pointfreeco/xctest-dynamic-overlay from cache (1.35s)
Computing version for https://github.com/pointfreeco/xctest-dynamic-overlay
Computed https://github.com/pointfreeco/xctest-dynamic-overlay at 1.13.1 (3.73s)
Computing version for https://github.com/swiftlang/swift-syntax
Computed https://github.com/swiftlang/swift-syntax at 604.0.0 (0.72s)
Creating working copy for https://github.com/pointfreeco/swift-custom-dump
Working copy of https://github.com/pointfreeco/swift-custom-dump resolved at 1.7.3
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/pointfreeco/swift-snapshot-testing.git
Working copy of https://github.com/pointfreeco/swift-snapshot-testing.git resolved at 1.19.6
Creating working copy for https://github.com/swiftlang/swift-syntax
Working copy of https://github.com/swiftlang/swift-syntax resolved at 604.0.0
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.5.0
Creating working copy for https://github.com/pointfreeco/xctest-dynamic-overlay
Working copy of https://github.com/pointfreeco/xctest-dynamic-overlay resolved at 1.13.1
Build complete.
{
"default_localization" : "en",
"dependencies" : [
{
"identity" : "lottie-ios",
"requirement" : {
"range" : [
{
"lower_bound" : "4.4.0",
"upper_bound" : "5.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/airbnb/lottie-ios.git"
},
{
"identity" : "almanac",
"requirement" : {
"range" : [
{
"lower_bound" : "0.2.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/isamercan/Almanac.git"
},
{
"identity" : "swift-snapshot-testing",
"requirement" : {
"range" : [
{
"lower_bound" : "1.17.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/pointfreeco/swift-snapshot-testing.git"
},
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-docc-plugin"
}
],
"manifest_display_name" : "ThemeKit",
"name" : "ThemeKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.6"
},
{
"name" : "macos",
"version" : "14.0"
}
],
"products" : [
{
"name" : "ThemeKit",
"targets" : [
"ThemeKit"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "ThemeKitCore",
"targets" : [
"ThemeKitCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "ThemeKitLottie",
"targets" : [
"ThemeKitLottie"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "ThemeKitCalendar",
"targets" : [
"ThemeKitCalendar"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "ThemeKitTravel",
"targets" : [
"ThemeKitTravel"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"6"
],
"targets" : [
{
"c99name" : "ThemeKitTravel",
"module_type" : "SwiftTarget",
"name" : "ThemeKitTravel",
"path" : "Sources/ThemeKitTravel",
"product_memberships" : [
"ThemeKitTravel"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitTravel/Resources/Localizable.xcstrings",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Components/Atoms/FlightStatusBadge.swift",
"Components/Atoms/FlightStatusBadgeStyle.swift",
"Components/Atoms/SeatCell.swift",
"Components/Atoms/SeatCellStyle.swift",
"Components/Molecules/CabinClassSelector.swift",
"Components/Molecules/CabinClassSelectorStyle.swift",
"Components/Molecules/DatePriceStrip.swift",
"Components/Molecules/DatePriceStripStyle.swift",
"Components/Molecules/FlightRoute.swift",
"Components/Molecules/FlightRouteStyle.swift",
"Components/Molecules/LayoverRow.swift",
"Components/Molecules/LayoverRowStyle.swift",
"Components/Molecules/PassengerRow.swift",
"Components/Molecules/PassengerRowStyle.swift",
"Components/Molecules/RecentSearchRow.swift",
"Components/Molecules/RecentSearchRowStyle.swift",
"Components/Molecules/SeatLegend.swift",
"Components/Molecules/SeatLegendStyle.swift",
"Components/Molecules/TripTypeToggle.swift",
"Components/Molecules/TripTypeToggleStyle.swift",
"Components/Organisms/AirportPicker.swift",
"Components/Organisms/AirportPickerStyle.swift",
"Components/Organisms/AncillaryCard.swift",
"Components/Organisms/AncillaryCardStyle.swift",
"Components/Organisms/BoardingPass.swift",
"Components/Organisms/BoardingPassStyle.swift",
"Components/Organisms/CheckInFlow.swift",
"Components/Organisms/CheckInFlowStyle.swift",
"Components/Organisms/FareFamilyCard.swift",
"Components/Organisms/FareFamilyCardStyle.swift",
"Components/Organisms/FareSummary.swift",
"Components/Organisms/FareSummaryStyle.swift",
"Components/Organisms/FilterBar.swift",
"Components/Organisms/FilterBarStyle.swift",
"Components/Organisms/FlightCard.swift",
"Components/Organisms/FlightCardStyle.swift",
"Components/Organisms/FlightListItem.swift",
"Components/Organisms/FlightListItemStyle.swift",
"Components/Organisms/FlightModels.swift",
"Components/Organisms/FlightResultRow.swift",
"Components/Organisms/FlightResultRowStyle.swift",
"Components/Organisms/FlightTicketCard.swift",
"Components/Organisms/FlightTicketCardStyle.swift",
"Components/Organisms/FlightTracker.swift",
"Components/Organisms/FlightTrackerStyle.swift",
"Components/Organisms/PassengerForm.swift",
"Components/Organisms/PassengerFormStyle.swift",
"Components/Organisms/PaymentMethodSelector.swift",
"Components/Organisms/PaymentMethodSelectorStyle.swift",
"Components/Organisms/SavedCardsList.swift",
"Components/Organisms/SavedCardsListStyle.swift",
"Components/Organisms/SeatMap.swift",
"Components/Organisms/SeatMapModels.swift",
"Components/Organisms/SeatMapStyle.swift",
"Components/Organisms/StickyBookingBar.swift",
"Components/Organisms/StickyBookingBarStyle.swift",
"Components/Organisms/TransportCrossSellCard.swift",
"Components/Organisms/TransportCrossSellCardStyle.swift",
"Components/Organisms/TripSearchCard.swift",
"Components/Organisms/TripSearchCardStyle.swift",
"FlightDefaults.swift",
"Localization.swift",
"Models/FlightSearchModels.swift",
"Models/FlightStatusModels.swift",
"Models/PassengerModels.swift",
"Models/PaymentModels.swift",
"ThemeKitTravel.swift",
"Validation/PassengerRules.swift"
],
"target_dependencies" : [
"ThemeKit"
],
"type" : "library"
},
{
"c99name" : "ThemeKitTests",
"module_type" : "SwiftTarget",
"name" : "ThemeKitTests",
"path" : "Tests/ThemeKitTests",
"product_dependencies" : [
"SnapshotTesting"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ThemeKitTests/Fixtures",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"AccessibilitySemanticsTests.swift",
"AccessibilityTests.swift",
"AccordionStyleTests.swift",
"AdaptiveFitTests.swift",
"AlertToastSlotTests.swift",
"AnimatedImageLoaderTests.swift",
"AutocompleteTests.swift",
"BadgeChromeStyleTests.swift",
"BrandColorTests.swift",
"BreadcrumbsTests.swift",
"ButtonChromeStyleTests.swift",
"ButtonDockChromeStyleTests.swift",
"CSSThemeTests.swift",
"CalloutChromeStyleTests.swift",
"ChartCanvasTests.swift",
"CheckboxChromeStyleTests.swift",
"ChipStyleTitleTests.swift",
"ChromeStyleBehaviourTests.swift",
"ColorModelsTests.swift",
"CommandPaletteTests.swift",
"ComponentMotionTests.swift",
"ContentContrastTests.swift",
"ControllableStateTests.swift",
"CountBadgeStyleTests.swift",
"CouponChromeStyleTests.swift",
"CustomTextStyleRegistrationTests.swift",
"CustomTokenRegistrationTests.swift",
"CustomTokenTests.swift",
"DataTablePagingTests.swift",
"DateFieldTests.swift",
"DateWheelPickerTests.swift",
"DesignCatalogTests.swift",
"DesignParserTests.swift",
"DialogStyleTests.swift",
"DividerStyleTests.swift",
"DrawerPresenterTests.swift",
"EmptyStateStyleTests.swift",
"FeedbackPresenterTests.swift",
"Generated/L10nKeyInvariantTests.swift",
"GifGenerator.swift",
"HexColorTests.swift",
"IconTileStyleTests.swift",
"InfoMessageIconsTests.swift",
"InfoMessageTests.swift",
"InlineTextStyleTests.swift",
"InputNumberTests.swift",
"L10nGenerationGateTests.swift",
"L10nResolverTests.swift",
"L10nViewLayerTests.swift",
"LanguageSwitcherRegionTests.swift",
"LocalizationTests.swift",
"MeasuredLayoutTests.swift",
"MotionSpringTests.swift",
"MultiLineTextInputLabelTests.swift",
"MultiSelectTests.swift",
"OTPDigitStyleTests.swift",
"OTPInputTests.swift",
"OnChangeCompatTests.swift",
"PaginationTests.swift",
"PriceTagStyleTests.swift",
"PriceTrendChartStyleTests.swift",
"RadioButtonChromeStyleTests.swift",
"RadiusCappingTests.swift",
"RadiusRoleTests.swift",
"RangeSliderStyleTests.swift",
"RangeSliderTests.swift",
"RenderSmokeTests.swift",
"ScreenshotGenerator.swift",
"SearchBarTests.swift",
"SegmentedControlStyleTests.swift",
"SegmentedTabBarChromeStyleTests.swift",
"SemanticColorResolvedTests.swift",
"SheetHeaderStyleTests.swift",
"SheetPresenterTests.swift",
"SkeletonStyleTests.swift",
"Snapshot/AirportPickerSnapshotTests.swift",
"Snapshot/AlertDialogSnapshotTests.swift",
"Snapshot/BadgesChromeStyleSnapshotTests.swift",
"Snapshot/ButtonChromeStyleSnapshotTests.swift",
"Snapshot/ButtonSnapshotTests.swift",
"Snapshot/CabinClassSnapshotTests.swift",
"Snapshot/CalloutInlineTextChromeStyleSnapshotTests.swift",
"Snapshot/CheckInFlowSnapshotTests.swift",
"Snapshot/ChipRadioChromeStyleSnapshotTests.swift",
"Snapshot/ComponentSnapshotTests.swift",
"Snapshot/DialogChromeStyleSnapshotTests.swift",
"Snapshot/DisplaySnapshotTests.swift",
"Snapshot/DockSheetHeaderChromeStyleSnapshotTests.swift",
"Snapshot/EmptyStateChromeStyleSnapshotTests.swift",
"Snapshot/FlexibilitySnapshotTests.swift",
"Snapshot/FlightFavoriteSnapshotTests.swift",
"Snapshot/FlightTrackerSnapshotTests.swift",
"Snapshot/FormControlSnapshotTests.swift",
"Snapshot/HeroUIGapSnapshotTests.swift",
"Snapshot/L10nSnapshotTests.swift",
"Snapshot/LanguageSwitcherSnapshotTests.swift",
"Snapshot/PaymentSnapshotTests.swift",
"Snapshot/PriceTagChromeStyleSnapshotTests.swift",
"Snapshot/SavedCardsListSnapshotTests.swift",
"Snapshot/SkeletonDividerChromeStyleSnapshotTests.swift",
"Snapshot/SnapshotSupport.swift",
"Snapshot/TitleTabChromeStyleSnapshotTests.swift",
"Snapshot/TooltipChromeStyleSnapshotTests.swift",
"Snapshot/TransportCrossSellSnapshotTests.swift",
"Snapshot/TravelEditionSnapshotTests.swift",
"Snapshot/TravelSnapshotTests.swift",
"Snapshot/TripSearchCardSnapshotTests.swift",
"SwiftTestingPilot.swift",
"TableSortKeyTests.swift",
"TextInputHasErrorTests.swift",
"TextInputTests.swift",
"ThemeEnvironmentTests.swift",
"ThemeGeneratorGoldenTests.swift",
"ThemeGeneratorRobustnessTests.swift",
"ThemeGeneratorTests.swift",
"ThemeInjectionTests.swift",
"ThemeIntegrityTests.swift",
"ThemeKitRootObservationTests.swift",
"ThemeKitTravelModelTests.swift",
"ThemeKitTravelPackagingTests.swift",
"ThemePresetRenderProof.swift",
"ThemePresetsTests.swift",
"ThemeSubtreeColorResolutionTests.swift",
"ThemeTests.swift",
"TimeFieldTests.swift",
"TitleStyleTests.swift",
"ToggleChromeStyleTests.swift",
"TooltipPlacementTests.swift",
"TooltipStyleConfigurationTests.swift",
"TooltipStyleTests.swift",
"TooltipTests.swift",
"TravelComponentLogicTests.swift",
"TravelComponentsRenderTests.swift",
"UploadControllerTests.swift",
"ValidationTests.swift",
"ValidatorsEdgeCaseTests.swift",
"ValidatorsExtensibilityTests.swift"
],
"target_dependencies" : [
"ThemeKit",
"ThemeKitCore",
"ThemeKitTravel"
],
"type" : "test"
},
{
"c99name" : "ThemeKitLottie",
"module_type" : "SwiftTarget",
"name" : "ThemeKitLottie",
"path" : "Sources/ThemeKitLottie",
"product_memberships" : [
"ThemeKitLottie"
],
"sources" : [
"LottieEmptyState.swift",
"LottieIllustration.swift"
],
"target_dependencies" : [
"ThemeKit"
],
"type" : "library"
},
{
"c99name" : "ThemeKitCore",
"module_type" : "SwiftTarget",
"name" : "ThemeKitCore",
"path" : "Sources/ThemeKitCore",
"product_memberships" : [
"ThemeKit",
"ThemeKitCore",
"ThemeKitLottie",
"ThemeKitCalendar",
"ThemeKitTravel"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/DesignSpecs/brutalist.design.md",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/DesignSpecs/ios-native.design.md",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/DesignSpecs/linear-dark.design.md",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/DesignSpecs/notion-minimal.design.md",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/DesignSpecs/pastel-soft.design.md",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/Fonts/Inter.ttf",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/Fonts/Montserrat.ttf",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/Localizable.xcstrings",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/defaultTheme.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/defaultThemeDark.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/heroui.css",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/herouiTheme.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/herouiThemeDark.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/oceanTheme.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/oceanThemeDark.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/sunsetTheme.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ThemeKitCore/Resources/sunsetThemeDark.json",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Color+Extensions.swift",
"ColorContrast.swift",
"ControllableState.swift",
"Localization.swift",
"Theme/AspectRatio.swift",
"Theme/CSSTheme.swift",
"Theme/ColorTokens.generated.swift",
"Theme/ComponentDensity.swift",
"Theme/DesignMode/DesignMarkdownParser.swift",
"Theme/DesignMode/DesignMode.swift",
"Theme/DesignMode/DesignSpec.swift",
"Theme/DesignMode/DesignSpecCatalog.swift",
"Theme/DesignMode/DesignSpecResolver.swift",
"Theme/Grid.swift",
"Theme/MicroMotion.swift",
"Theme/Motion.swift",
"Theme/MotionSpring.swift",
"Theme/SemanticColor.swift",
"Theme/SemanticColorResolved.swift",
"Theme/Shadows.swift",
"Theme/Theme.swift",
"Theme/ThemeConfig.swift",
"Theme/ThemeContext.swift",
"Theme/ThemeGenerator.swift",
"Theme/ThemeKit.swift",
"Theme/ThemeKitLocalized.swift",
"Theme/ThemeModel.swift",
"Theme/ThemePresets.swift",
"Theme/ThemedHostingController.swift",
"Theme/Typography.swift",
"ThemeAnyShape.swift",
"ThemeKitFacade.swift",
"ThemeKitLocalizationValue.swift",
"ThemeKitStrings.swift",
"ThemeUnevenRoundedRect.swift"
],
"type" : "library"
},
{
"c99name" : "ThemeKitCalendarTests",
"module_type" : "SwiftTarget",
"name" : "ThemeKitCalendarTests",
"path" : "Tests/ThemeKitCalendarTests",
"sources" : [
"CalendarThemeBridgeTests.swift"
],
"target_dependencies" : [
"ThemeKitCalendar",
"ThemeKit"
],
"type" : "test"
},
{
"c99name" : "ThemeKitCalendar",
"module_type" : "SwiftTarget",
"name" : "ThemeKitCalendar",
"path" : "Sources/ThemeKitCalendar",
"product_memberships" : [
"ThemeKitCalendar"
],
"sources" : [
"CalendarTheme+ThemeKit.swift",
"DateRangePicker.swift",
"TimeWheel.swift"
],
"target_dependencies" : [
"ThemeKit"
],
"type" : "library"
},
{
"c99name" : "ThemeKit",
"module_type" : "SwiftTarget",
"name" : "ThemeKit",
"path" : "Sources/ThemeKit",
"product_memberships" : [
"ThemeKit",
"ThemeKitLottie",
"ThemeKitCalendar",
"ThemeKitTravel"
],
"sources" : [
"Accessibility/Accessibility.swift",
"Accessibility/DynamicType.swift",
"Accessibility/LayoutDirection.swift",
"ComponentDefaults.swift",
"Components/Atoms/AnimatedImage.swift",
"Components/Atoms/Aura.swift",
"Components/Atoms/Avatar.swift",
"Components/Atoms/Backdrop.swift",
"Components/Atoms/Badge.swift",
"Components/Atoms/BadgeChromeStyle.swift",
"Components/Atoms/Barcode.swift",
"Components/Atoms/BorderBeam.swift",
"Components/Atoms/Chip.swift",
"Components/Atoms/ChipStyle.swift",
"Components/Atoms/CloseButton.swift",
"Components/Atoms/CodeBlock.swift",
"Components/Atoms/ColorSwatch.swift",
"Components/Atoms/Confetti.swift",
"Components/Atoms/CornerRadiusModifier.swift",
"Components/Atoms/CountBadge.swift",
"Components/Atoms/CountBadgeStyle.swift",
"Components/Atoms/CountdownTimer.swift",
"Components/Atoms/DescriptionModal.swift",
"Components/Atoms/DividerStyle.swift",
"Components/Atoms/DividerView.swift",
"Components/Atoms/FareFeatureRow.swift",
"Components/Atoms/FeatureModels.swift",
"Components/Atoms/GaugeView.swift",
"Components/Atoms/HelperText.swift",
"Components/Atoms/Icon.swift",
"Components/Atoms/IconTile.swift",
"Components/Atoms/IconTileStyle.swift",
"Components/Atoms/Indicator.swift",
"Components/Atoms/InlineText.swift",
"Components/Atoms/InlineTextStyle.swift",
"Components/Atoms/InputLabel.swift",
"Components/Atoms/Join.swift",
"Components/Atoms/Kbd.swift",
"Components/Atoms/Mask.swift",
"Components/Atoms/MeterStyle.swift",
"Components/Atoms/PointsBadge.swift",
"Components/Atoms/PriceTag.swift",
"Components/Atoms/PriceTagStyle.swift",
"Components/Atoms/ProgressBar.swift",
"Components/Atoms/QRCode.swift",
"Components/Atoms/RadialProgress.swift",
"Components/Atoms/Rating.swift",
"Components/Atoms/RemoteImage.swift",
"Components/Atoms/RollingNumber.swift",
"Components/Atoms/ScoreBadge.swift",
"Components/Atoms/SearchBadge.swift",
"Components/Atoms/ShareButton.swift",
"Components/Atoms/Skeleton.swift",
"Components/Atoms/SkeletonGroup.swift",
"Components/Atoms/SkeletonStyle.swift",
"Components/Atoms/Spinner.swift",
"Components/Atoms/StatusDot.swift",
"Components/Atoms/SurfaceView.swift",
"Components/Atoms/Swap.swift",
"Components/Atoms/SwapButton.swift",
"Components/Atoms/Tag.swift",
"Components/Atoms/TextLink.swift",
"Components/Atoms/TextRotate.swift",
"Components/Atoms/TiltCard.swift",
"Components/Atoms/Title.swift",
"Components/Atoms/TitleStyle.swift",
"Components/Atoms/TrendChip.swift",
"Components/Atoms/Watermark.swift",
"Components/Molecules/Affix.swift",
"Components/Molecules/AmenityGrid.swift",
"Components/Molecules/AnchorNav.swift",
"Components/Molecules/Autocomplete.swift",
"Components/Molecules/Breadcrumbs.swift",
"Components/Molecules/ButtonGroup.swift",
"Components/Molecules/Buttons/ButtonChromeStyle.swift",
"Components/Molecules/Buttons/ButtonSize.swift",
"Components/Molecules/Buttons/Buttons.swift",
"Components/Molecules/Buttons/ThemeButton.swift",
"Components/Molecules/CalendarView.swift",
"Components/Molecules/CalendarYearPicker.swift",
"Components/Molecules/Cascader.swift",
"Components/Molecules/Charts/AreaChart.swift",
"Components/Molecules/Charts/BarChart.swift",
"Components/Molecules/Charts/ChartModels.swift",
"Components/Molecules/Charts/ChartSupport.swift",
"Components/Molecules/Charts/DonutChart.swift",
"Components/Molecules/Charts/LineChart.swift",
"Components/Molecules/Checkbox.swift",
"Components/Molecules/CheckboxChromeStyle.swift",
"Components/Molecules/CheckboxGroup.swift",
"Components/Molecules/Chips.swift",
"Components/Molecules/ColorArea.swift",
"Components/Molecules/ColorField.swift",
"Components/Molecules/ColorModels.swift",
"Components/Molecules/ColorSlider.swift",
"Components/Molecules/ColorSwatchPicker.swift",
"Components/Molecules/ColumnsGrid.swift",
"Components/Molecules/ControlRow.swift",
"Components/Molecules/CurrencyPicker.swift",
"Components/Molecules/DateField.swift",
"Components/Molecules/DateWheelPicker.swift",
"Components/Molecules/Dropdown.swift",
"Components/Molecules/EmojiReactionButton.swift",
"Components/Molecules/FieldButton.swift",
"Components/Molecules/FieldStyle.swift",
"Components/Molecules/Fieldset.swift",
"Components/Molecules/FileInput.swift",
"Components/Molecules/FilterGroup.swift",
"Components/Molecules/FilterRow.swift",
"Components/Molecules/Flex.swift",
"Components/Molecules/FlowLayout.swift",
"Components/Molecules/GuestSelector.swift",
"Components/Molecules/HoverCard.swift",
"Components/Molecules/InputGroup.swift",
"Components/Molecules/InputNumber.swift",
"Components/Molecules/InstallmentPicker.swift",
"Components/Molecules/InstallmentSelector.swift",
"Components/Molecules/LanguageSwitcher.swift",
"Components/Molecules/MapPriceMarker.swift",
"Components/Molecules/Masonry.swift",
"Components/Molecules/Mentions.swift",
"Components/Molecules/MultiLineTextInput.swift",
"Components/Molecules/MultiSelect.swift",
"Components/Molecules/OTPInput.swift",
"Components/Molecules/Pagination.swift",
"Components/Molecules/PaymentCardField.swift",
"Components/Molecules/PhoneField.swift",
"Components/Molecules/PriceBreakdown.swift",
"Components/Molecules/PriceHistogram.swift",
"Components/Molecules/PriceTrendChart.swift",
"Components/Molecules/PriceTrendChartStyle.swift",
"Components/Molecules/ProgressIndicator.swift",
"Components/Molecules/QuantityStepper.swift",
"Components/Molecules/RadioButton.swift",
"Components/Molecules/RadioButtonChromeStyle.swift",
"Components/Molecules/RadioGroup.swift",
"Components/Molecules/RangeSlider.swift",
"Components/Molecules/RangeSliderStyle.swift",
"Components/Molecules/ScrollShadow.swift",
"Components/Molecules/ScrubGallery.swift",
"Components/Molecules/SearchBar.swift",
"Components/Molecules/SearchField.swift",
"Components/Molecules/SearchSummary.swift",
"Components/Molecules/SegmentedControl.swift",
"Components/Molecules/SegmentedControlStyle.swift",
"Components/Molecules/Select.swift",
"Components/Molecules/SelectBox.swift",
"Components/Molecules/SelectStyle.swift",
"Components/Molecules/Slider.swift",
"Components/Molecules/SmartSuggestion.swift",
"Components/Molecules/SortSummaryBar.swift",
"Components/Molecules/Space.swift",
"Components/Molecules/Splitter.swift",
"Components/Molecules/Stat.swift",
"Components/Molecules/StatStyle.swift",
"Components/Molecules/StepperRow.swift",
"Components/Molecules/Steps.swift",
"Components/Molecules/SuggestionRow.swift",
"Components/Molecules/TableCells.swift",
"Components/Molecules/TextInput.swift",
"Components/Molecules/TextInputFormatter.swift",
"Components/Molecules/ThemeContextMenu.swift",
"Components/Molecules/ThemeController.swift",
"Components/Molecules/ThemeToggle.swift",
"Components/Molecules/TimeField.swift",
"Components/Molecules/ToggleChromeStyle.swift",
"Components/Molecules/ToggleGroup.swift",
"Components/Molecules/Tooltip.swift",
"Components/Molecules/TooltipStyle.swift",
"Components/Molecules/Transfer.swift",
"Components/Molecules/TreeSelect.swift",
"Components/Molecules/TreeView.swift",
"Components/Molecules/ValidationRule.swift",
"Components/Organisms/Accordion.swift",
"Components/Organisms/AccordionGroup.swift",
"Components/Organisms/AccordionStyle.swift",
"Components/Organisms/ActionBar.swift",
"Components/Organisms/Agenda.swift",
"Components/Organisms/AgentPriceRow.swift",
"Components/Organisms/AlertDialog.swift",
"Components/Organisms/AlertToast.swift",
"Components/Organisms/AnchoredPopover.swift",
"Components/Organisms/BarStyle.swift",
"Components/Organisms/BlogCard.swift",
"Components/Organisms/BottomSheet.swift",
"Components/Organisms/BrowserFrame.swift",
"Components/Organisms/ButtonDock.swift",
"Components/Organisms/ButtonDockChromeStyle.swift",
"Components/Organisms/Callout.swift",
"Components/Organisms/CalloutChromeStyle.swift",
"Components/Organisms/Card.swift",
"Components/Organisms/CardStack.swift",
"Components/Organisms/CardStyle.swift",
"Components/Organisms/Carousel.swift",
"Components/Organisms/ChatBubble.swift",
"Components/Organisms/ColorPickerPanel.swift",
"Components/Organisms/CommandPalette.swift",
"Components/Organisms/Counter.swift",
"Components/Organisms/Coupon.swift",
"Components/Organisms/CouponChromeStyle.swift",
"Components/Organisms/DataTable.swift",
"Components/Organisms/DestinationCard.swift",
"Components/Organisms/Dialog.swift",
"Components/Organisms/DialogStyle.swift",
"Components/Organisms/Diff.swift",
"Components/Organisms/Drawer.swift",
"Components/Organisms/EmptyState.swift",
"Components/Organisms/EmptyStateStyle.swift",
"Components/Organisms/Feedback.swift",
"Components/Organisms/FeedbackDefaults.swift",
"Components/Organisms/FilterList.swift",
"Components/Organisms/FloatingActionButton.swift",
"Components/Organisms/Footer.swift",
"Components/Organisms/Gallery.swift",
"Components/Organisms/Hero.swift",
"Components/Organisms/HotelResultCard.swift",
"Components/Organisms/ImageCollage.swift",
"Components/Organisms/InfoBanner.swift",
"Components/Organisms/KanbanBoard.swift",
"Components/Organisms/KeyValueTable.swift",
"Components/Organisms/ListRow.swift",
"Components/Organisms/ListRowStyle.swift",
"Components/Organisms/ListView.swift",
"Components/Organisms/LocationCard.swift",
"Components/Organisms/LoyaltyCard.swift",
"Components/Organisms/MapCallout.swift",
"Components/Organisms/MenuCard.swift",
"Components/Organisms/NavigationBar.swift",
"Components/Organisms/NotificationCard.swift",
"Components/Organisms/PageHeader.swift",
"Components/Organisms/PageHeaderStyle.swift",
"Components/Organisms/PagingCarousel.swift",
"Components/Organisms/PhoneFrame.swift",
"Components/Organisms/Popconfirm.swift",
"Components/Organisms/PriceAlertCard.swift",
"Components/Organisms/PromoBanner.swift",
"Components/Organisms/RatingSummary.swift",
"Components/Organisms/ResultView.swift",
"Components/Organisms/ReviewCard.swift",
"Components/Organisms/RoomCard.swift",
"Components/Organisms/SegmentedTabBar.swift",
"Components/Organisms/SegmentedTabBarChromeStyle.swift",
"Components/Organisms/SelectionCards.swift",
"Components/Organisms/SheetHeader.swift",
"Components/Organisms/SheetHeaderStyle.swift",
"Components/Organisms/Sidebar.swift",
"Components/Organisms/ThemePicker.swift",
"Components/Organisms/TicketStub.swift",
"Components/Organisms/Timeline.swift",
"Components/Organisms/Toast.swift",
"Components/Organisms/ToastStyle.swift",
"Components/Organisms/Tour.swift",
"Components/Organisms/Upload.swift",
"Components/Organisms/VideoPlayerView.swift",
"Components/Organisms/WindowFrame.swift",
"CoreExports.swift",
"Extensions/Chrome.swift",
"Extensions/DismissDrag.swift",
"Extensions/GlassChrome.swift",
"Extensions/Shake.swift",
"Extensions/SlotContent.swift",
"FieldDefaults.swift",
"FormatDefaults.swift",
"ReadOnly.swift",
"Utils/AdaptiveFit.swift",
"Utils/AvailabilityCompat.swift",
"Utils/ComponentMotion.swift",
"Utils/Debounce.swift",
"Utils/Effects.swift",
"Utils/Haptics.swift",
"Utils/Impression.swift",
"Utils/MeasuredLayoutSupport.swift",
"Utils/PreviewMatrix.swift",
"Utils/SelectionHaptics.swift",
"Utils/ThemeMotion.swift",
"Validation/FormValidator.swift",
"Validation/FormWiring.swift",
"Validation/InfoMessage.swift",
"Validation/InfoMessageUI.swift",
"Validation/Validation.swift",
"Validation/Validators.swift"
],
"target_dependencies" : [
"ThemeKitCore"
],
"type" : "library"
}
],
"tools_version" : "6.2"
}
Done.