// generated by bun run generate from the SwiftUI SDK and codegen/catalog.ts.
// edit the generator or catalog, then regenerate.
import SwiftUI
import PhotosUI
import WebKit
import PassKit

enum OneNativeGenerated {
  static func menuOrder(_ value: String) -> MenuOrder {
    switch value {
    case "automatic":
      return .automatic
    case "priority":
      return .priority
    case "fixed":
      return .fixed
    default: preconditionFailure("invalid MenuOrder: \(value)")
    }
  }
  static func visibility(_ value: String) -> Visibility {
    switch value {
    case "automatic":
      return .automatic
    case "visible":
      return .visible
    case "hidden":
      return .hidden
    default: preconditionFailure("invalid Visibility: \(value)")
    }
  }
  static func menuActionDismissBehavior(_ value: String) -> MenuActionDismissBehavior {
    switch value {
    case "automatic":
      return .automatic
    case "enabled":
      return .enabled
    case "disabled":
      return .disabled
    default: preconditionFailure("invalid MenuActionDismissBehavior: \(value)")
    }
  }
  static func buttonRole(_ value: String) -> ButtonRole? {
    switch value {
    case "": return nil
    case "destructive":
      return .destructive
    case "cancel":
      return .cancel
    case "confirm":
      if #available(iOS 26, *) { return .confirm }
      preconditionFailure("ButtonRole.confirm requires iOS 26")
    case "close":
      if #available(iOS 26, *) { return .close }
      preconditionFailure("ButtonRole.close requires iOS 26")
    default: preconditionFailure("invalid ButtonRole: \(value)")
    }
  }
  @available(iOS 18, *)
  static func tabRole(_ value: String) -> TabRole? {
    switch value {
    case "": return nil
    case "search":
      return .search
    case "prominent":

#if ONE_IOS_27_SDK
      if #available(iOS 27, *) { return .prominent }
#endif

      preconditionFailure("TabRole.prominent requires iOS 27")
    default: preconditionFailure("invalid TabRole: \(value)")
    }
  }
  @available(iOS 18, *)
  static func tabPlacement(_ value: String) -> TabPlacement {
    switch value {
    case "automatic":
      return .automatic
    case "pinned":
      return .pinned
    case "sidebarOnly":
      return .sidebarOnly
    default: preconditionFailure("invalid TabPlacement: \(value)")
    }
  }
  @available(iOS 18, *)
  static func adaptableTabBarPlacement(_ value: String) -> AdaptableTabBarPlacement {
    switch value {
    case "automatic":
      return .automatic
    case "tabBar":
      return .tabBar
    case "sidebar":
      return .sidebar
    default: preconditionFailure("invalid AdaptableTabBarPlacement: \(value)")
    }
  }
  @available(iOS 18, *)
  static func tabCustomizationBehavior(_ value: String) -> TabCustomizationBehavior {
    switch value {
    case "automatic":
      return .automatic
    case "reorderable":
      return .reorderable
    case "disabled":
      return .disabled
    default: preconditionFailure("invalid TabCustomizationBehavior: \(value)")
    }
  }

#if ONE_IOS_27_SDK
  @available(iOS 27, *)
  static func tabSectionExpansion(_ value: String) -> TabSectionExpansion {
    switch value {
    case "automatic":
      return .automatic
    case "expanded":
      return .expanded
    case "collapsed":
      return .collapsed
    default: preconditionFailure("invalid TabSectionExpansion: \(value)")
    }
  }
#endif

  static func springLoadingBehavior(_ value: String) -> SpringLoadingBehavior {
    switch value {
    case "automatic":
      return .automatic
    case "enabled":
      return .enabled
    case "disabled":
      return .disabled
    default: preconditionFailure("invalid SpringLoadingBehavior: \(value)")
    }
  }
  static func submitLabel(_ value: String) -> SubmitLabel {
    switch value {
    case "done":
      return .done
    case "go":
      return .go
    case "send":
      return .send
    case "join":
      return .join
    case "route":
      return .route
    case "search":
      return .search
    case "return":
      return .return
    case "next":
      return .next
    case "continue":
      return .continue
    default: preconditionFailure("invalid SubmitLabel: \(value)")
    }
  }
  static func textInputAutocapitalization(_ value: String) -> TextInputAutocapitalization {
    switch value {
    case "never":
      return .never
    case "words":
      return .words
    case "sentences":
      return .sentences
    case "characters":
      return .characters
    default: preconditionFailure("invalid TextInputAutocapitalization: \(value)")
    }
  }
  static func axis(_ value: String) -> Axis {
    switch value {
    case "horizontal":
      return .horizontal
    case "vertical":
      return .vertical
    default: preconditionFailure("invalid Axis: \(value)")
    }
  }
  static func edge(_ value: String) -> Edge? {
    switch value {
    case "": return nil
    case "top":
      return .top
    case "leading":
      return .leading
    case "bottom":
      return .bottom
    case "trailing":
      return .trailing
    default: preconditionFailure("invalid Edge: \(value)")
    }
  }
  static func presentationAdaptation(_ value: String) -> PresentationAdaptation {
    switch value {
    case "automatic":
      return .automatic
    case "none":
      return .none
    case "popover":
      return .popover
    case "sheet":
      return .sheet
    case "fullScreenCover":
      return .fullScreenCover
    default: preconditionFailure("invalid PresentationAdaptation: \(value)")
    }
  }
  static func presentationContentInteraction(_ value: String) -> PresentationContentInteraction {
    switch value {
    case "automatic":
      return .automatic
    case "resizes":
      return .resizes
    case "scrolls":
      return .scrolls
    default: preconditionFailure("invalid PresentationContentInteraction: \(value)")
    }
  }
  static func colorScheme(_ value: String) -> ColorScheme {
    switch value {
    case "light":
      return .light
    case "dark":
      return .dark
    default: preconditionFailure("invalid ColorScheme: \(value)")
    }
  }
  static func dynamicTypeSize(_ value: String) -> DynamicTypeSize {
    switch value {
    case "xSmall":
      return .xSmall
    case "small":
      return .small
    case "medium":
      return .medium
    case "large":
      return .large
    case "xLarge":
      return .xLarge
    case "xxLarge":
      return .xxLarge
    case "xxxLarge":
      return .xxxLarge
    case "accessibility1":
      return .accessibility1
    case "accessibility2":
      return .accessibility2
    case "accessibility3":
      return .accessibility3
    case "accessibility4":
      return .accessibility4
    case "accessibility5":
      return .accessibility5
    default: preconditionFailure("invalid DynamicTypeSize: \(value)")
    }
  }
  static func controlSize(_ value: String) -> ControlSize {
    switch value {
    case "mini":
      return .mini
    case "small":
      return .small
    case "regular":
      return .regular
    case "large":
      return .large
    case "extraLarge":
      return .extraLarge
    default: preconditionFailure("invalid ControlSize: \(value)")
    }
  }
  static func symbolRenderingMode(_ value: String) -> SymbolRenderingMode {
    switch value {
    case "monochrome":
      return .monochrome
    case "multicolor":
      return .multicolor
    case "hierarchical":
      return .hierarchical
    case "palette":
      return .palette
    default: preconditionFailure("invalid SymbolRenderingMode: \(value)")
    }
  }
  static func symbolVariants(_ value: String) -> SymbolVariants {
    switch value {
    case "none":
      return .none
    case "circle":
      return .circle
    case "square":
      return .square
    case "rectangle":
      return .rectangle
    case "fill":
      return .fill
    case "slash":
      return .slash
    default: preconditionFailure("invalid SymbolVariants: \(value)")
    }
  }
  static func imageScale(_ value: String) -> Image.Scale {
    switch value {
    case "small":
      return .small
    case "medium":
      return .medium
    case "large":
      return .large
    default: preconditionFailure("invalid ImageScale: \(value)")
    }
  }
  static func photosPickerSelectionBehavior(_ value: String) -> PhotosPickerSelectionBehavior {
    switch value {
    case "default":
      return .default
    case "ordered":
      return .ordered
    case "continuous":
      return .continuous
    case "continuousAndOrdered":
      return .continuousAndOrdered
    default: preconditionFailure("invalid PhotosPickerSelectionBehavior: \(value)")
    }
  }
  static func encodingDisambiguationPolicy(_ value: String) -> PhotosPickerItem.EncodingDisambiguationPolicy {
    switch value {
    case "automatic":
      return .automatic
    case "current":
      return .current
    case "compatible":
      return .compatible
    default: preconditionFailure("invalid EncodingDisambiguationPolicy: \(value)")
    }
  }
  @available(iOS 26, *)
  static func backForwardNavigationGesturesBehavior(_ value: String) -> WebView.BackForwardNavigationGesturesBehavior {
    switch value {
    case "automatic":
      return .automatic
    case "enabled":
      return .enabled
    case "disabled":
      return .disabled
    default: preconditionFailure("invalid BackForwardNavigationGesturesBehavior: \(value)")
    }
  }
  @available(iOS 26, *)
  static func magnificationGesturesBehavior(_ value: String) -> WebView.MagnificationGesturesBehavior {
    switch value {
    case "automatic":
      return .automatic
    case "enabled":
      return .enabled
    case "disabled":
      return .disabled
    default: preconditionFailure("invalid MagnificationGesturesBehavior: \(value)")
    }
  }
  @available(iOS 26, *)
  static func linkPreviewBehavior(_ value: String) -> WebView.LinkPreviewBehavior {
    switch value {
    case "automatic":
      return .automatic
    case "enabled":
      return .enabled
    case "disabled":
      return .disabled
    default: preconditionFailure("invalid LinkPreviewBehavior: \(value)")
    }
  }
  @available(iOS 26, *)
  static func elementFullscreenBehavior(_ value: String) -> WebView.ElementFullscreenBehavior {
    switch value {
    case "automatic":
      return .automatic
    case "enabled":
      return .enabled
    case "disabled":
      return .disabled
    default: preconditionFailure("invalid ElementFullscreenBehavior: \(value)")
    }
  }
  static func toolbarItemPlacement(_ value: String) -> ToolbarItemPlacement {
    switch value {
    case "automatic":
      return .automatic
    case "principal":
      return .principal
    case "navigation":
      return .navigation
    case "primaryAction":
      return .primaryAction
    case "secondaryAction":
      return .secondaryAction
    case "status":
      return .status
    case "confirmationAction":
      return .confirmationAction
    case "cancellationAction":
      return .cancellationAction
    case "destructiveAction":
      return .destructiveAction
    case "keyboard":
      return .keyboard
    case "topBarLeading":
      return .topBarLeading
    case "topBarTrailing":
      return .topBarTrailing
    case "topBarPinnedTrailing":

#if ONE_IOS_27_SDK
      if #available(iOS 27, *) { return .topBarPinnedTrailing }
#endif

      preconditionFailure("ToolbarItemPlacement.topBarPinnedTrailing requires iOS 27")
    case "navigationBarLeading":
      return .navigationBarLeading
    case "navigationBarTrailing":
      return .navigationBarTrailing
    case "title":
      return .title
    case "largeTitle":
      if #available(iOS 26, *) { return .largeTitle }
      preconditionFailure("ToolbarItemPlacement.largeTitle requires iOS 26")
    case "bottomBar":
      return .bottomBar
    case "subtitle":
      if #available(iOS 26, *) { return .subtitle }
      preconditionFailure("ToolbarItemPlacement.subtitle requires iOS 26")
    case "largeSubtitle":
      if #available(iOS 26, *) { return .largeSubtitle }
      preconditionFailure("ToolbarItemPlacement.largeSubtitle requires iOS 26")
    default: preconditionFailure("invalid ToolbarItemPlacement: \(value)")
    }
  }
  @available(iOS 26, *)
  static func spacerSizing(_ value: String) -> SpacerSizing {
    switch value {
    case "flexible":
      return .flexible
    case "fixed":
      return .fixed
    default: preconditionFailure("invalid SpacerSizing: \(value)")
    }
  }
  static func payWithApplePayButtonLabel(_ value: String) -> PayWithApplePayButtonLabel {
    switch value {
    case "plain":
      return .plain
    case "buy":
      return .buy
    case "addMoney":
      return .addMoney
    case "book":
      return .book
    case "checkout":
      return .checkout
    case "continue":
      return .continue
    case "contribute":
      return .contribute
    case "donate":
      return .donate
    case "inStore":
      return .inStore
    case "order":
      return .order
    case "reload":
      return .reload
    case "rent":
      return .rent
    case "setUp":
      return .setUp
    case "subscribe":
      return .subscribe
    case "support":
      return .support
    case "tip":
      return .tip
    case "topUp":
      return .topUp
    default: preconditionFailure("invalid PayWithApplePayButtonLabel: \(value)")
    }
  }
}

extension View {
  @ViewBuilder func oneNativeMenuOrder(_ value: String) -> some View {
    if value.isEmpty { self } else { self.menuOrder(OneNativeGenerated.menuOrder(value)) }
  }
  @ViewBuilder func oneNativePresentationCompactAdaptation(_ value: String) -> some View {
    if value.isEmpty { self } else { self.presentationCompactAdaptation(OneNativeGenerated.presentationAdaptation(value)) }
  }
  @ViewBuilder func oneNativePresentationDragIndicator(_ value: String) -> some View {
    if value.isEmpty { self } else { self.presentationDragIndicator(OneNativeGenerated.visibility(value)) }
  }
  @ViewBuilder func oneNativePickerStyle(_ value: String) -> some View {
    switch value {
    case "wheel":
      self.pickerStyle(.wheel)
    case "inline":
      self.pickerStyle(.inline)
    case "automatic":
      self.pickerStyle(.automatic)
    case "segmented":
      self.pickerStyle(.segmented)
    case "tabs":

#if ONE_IOS_27_SDK
      if #available(iOS 27, *) { self.pickerStyle(.tabs) } else { let _ = preconditionFailure("PickerStyle.tabs requires iOS 27"); self }
#else
      let _ = preconditionFailure("PickerStyle.tabs requires iOS 27"); self
#endif

    case "palette":
      self.pickerStyle(.palette)
    case "navigationLink":
      self.pickerStyle(.navigationLink)
    case "menu":
      self.pickerStyle(.menu)
    default: let _ = preconditionFailure("invalid PickerStyle: \(value)"); self
    }
  }
  @ViewBuilder func oneNativeDatePickerStyle(_ value: String) -> some View {
    switch value {
    case "wheel":
      self.datePickerStyle(.wheel)
    case "automatic":
      self.datePickerStyle(.automatic)
    case "graphical":
      self.datePickerStyle(.graphical)
    case "compact":
      self.datePickerStyle(.compact)
    default: let _ = preconditionFailure("invalid DatePickerStyle: \(value)"); self
    }
  }
  @ViewBuilder func oneNativeToggleStyle(_ value: String) -> some View {
    switch value {
    case "button":
      self.toggleStyle(.button)
    case "automatic":
      self.toggleStyle(.automatic)
    case "switch":
      self.toggleStyle(.switch)
    default: let _ = preconditionFailure("invalid ToggleStyle: \(value)"); self
    }
  }
  @ViewBuilder func oneNativeMenuActionDismissBehavior(_ value: String) -> some View {
    if value.isEmpty { self } else { self.menuActionDismissBehavior(OneNativeGenerated.menuActionDismissBehavior(value)) }
  }
  @ViewBuilder func oneNativeControlGroupStyle(_ value: String) -> some View {
    switch value {
    case "palette":
      self.controlGroupStyle(.palette)
    case "automatic":
      self.controlGroupStyle(.automatic)
    case "navigation":
      self.controlGroupStyle(.navigation)
    case "menu":
      self.controlGroupStyle(.menu)
    case "compactMenu":
      self.controlGroupStyle(.compactMenu)
    default: let _ = preconditionFailure("invalid ControlGroupStyle: \(value)"); self
    }
  }
  @ViewBuilder func oneNativeTabViewStyle(_ value: String) -> some View {
    switch value {
    case "sidebarAdaptable":
      if #available(iOS 18, *) { self.tabViewStyle(.sidebarAdaptable) } else { let _ = preconditionFailure("TabViewStyle.sidebarAdaptable requires iOS 18"); self }
    case "page":
      self.tabViewStyle(.page)
    case "tabBarOnly":
      if #available(iOS 18, *) { self.tabViewStyle(.tabBarOnly) } else { let _ = preconditionFailure("TabViewStyle.tabBarOnly requires iOS 18"); self }
    case "automatic":
      self.tabViewStyle(.automatic)
    default: let _ = preconditionFailure("invalid TabViewStyle: \(value)"); self
    }
  }
  @ViewBuilder func oneNativeButtonStyle(_ value: String) -> some View {
    switch value {
    case "automatic":
      self.buttonStyle(.automatic)
    case "glass":
      if #available(iOS 26, *) { self.buttonStyle(.glass) } else { let _ = preconditionFailure("PrimitiveButtonStyle.glass requires iOS 26"); self }
    case "borderless":
      self.buttonStyle(.borderless)
    case "glassProminent":
      if #available(iOS 26, *) { self.buttonStyle(.glassProminent) } else { let _ = preconditionFailure("PrimitiveButtonStyle.glassProminent requires iOS 26"); self }
    case "plain":
      self.buttonStyle(.plain)
    case "bordered":
      self.buttonStyle(.bordered)
    case "borderedProminent":
      self.buttonStyle(.borderedProminent)
    default: let _ = preconditionFailure("invalid PrimitiveButtonStyle: \(value)"); self
    }
  }
  @ViewBuilder func oneNativeProgressViewStyle(_ value: String) -> some View {
    switch value {
    case "linear":
      self.progressViewStyle(.linear)
    case "circular":
      self.progressViewStyle(.circular)
    case "automatic":
      self.progressViewStyle(.automatic)
    default: let _ = preconditionFailure("invalid ProgressViewStyle: \(value)"); self
    }
  }
  @ViewBuilder func oneNativeGaugeStyle(_ value: String) -> some View {
    switch value {
    case "accessoryCircularCapacity":
      self.gaugeStyle(.accessoryCircularCapacity)
    case "linearCapacity":
      self.gaugeStyle(.linearCapacity)
    case "accessoryLinear":
      self.gaugeStyle(.accessoryLinear)
    case "accessoryLinearCapacity":
      self.gaugeStyle(.accessoryLinearCapacity)
    case "automatic":
      self.gaugeStyle(.automatic)
    case "accessoryCircular":
      self.gaugeStyle(.accessoryCircular)
    default: let _ = preconditionFailure("invalid GaugeStyle: \(value)"); self
    }
  }
  @ViewBuilder func oneNativeListStyle(_ value: String) -> some View {
    switch value {
    case "automatic":
      self.listStyle(.automatic)
    case "sidebar":
      self.listStyle(.sidebar)
    case "inset":
      self.listStyle(.inset)
    case "grouped":
      self.listStyle(.grouped)
    case "insetGrouped":
      self.listStyle(.insetGrouped)
    case "plain":
      self.listStyle(.plain)
    default: let _ = preconditionFailure("invalid ListStyle: \(value)"); self
    }
  }
  @ViewBuilder func oneNativeTextFieldStyle(_ value: String) -> some View {
    switch value {
    case "automatic":
      self.textFieldStyle(.automatic)
    case "roundedBorder":
      self.textFieldStyle(.roundedBorder)
    case "bordered":

#if ONE_IOS_27_SDK
      if #available(iOS 27, *) { self.textFieldStyle(.bordered) } else { let _ = preconditionFailure("TextFieldStyle.bordered requires iOS 27"); self }
#else
      let _ = preconditionFailure("TextFieldStyle.bordered requires iOS 27"); self
#endif

    case "plain":
      self.textFieldStyle(.plain)
    default: let _ = preconditionFailure("invalid TextFieldStyle: \(value)"); self
    }
  }
  @ViewBuilder func oneNativeSubmitLabel(_ value: String) -> some View {
    if value.isEmpty { self } else { self.submitLabel(OneNativeGenerated.submitLabel(value)) }
  }
  @ViewBuilder func oneNativeTextInputAutocapitalization(_ value: String) -> some View {
    if value.isEmpty { self } else { self.textInputAutocapitalization(OneNativeGenerated.textInputAutocapitalization(value)) }
  }
  @ViewBuilder func oneNativeSymbolRenderingMode(_ value: String) -> some View {
    if value.isEmpty { self } else { self.symbolRenderingMode(OneNativeGenerated.symbolRenderingMode(value)) }
  }
  @ViewBuilder func oneNativeSymbolVariant(_ value: String) -> some View {
    if value.isEmpty { self } else { self.symbolVariant(OneNativeGenerated.symbolVariants(value)) }
  }
  @ViewBuilder func oneNativeImageScale(_ value: String) -> some View {
    if value.isEmpty { self } else { self.imageScale(OneNativeGenerated.imageScale(value)) }
  }
  @ViewBuilder func oneNativeWebViewBackForwardNavigationGestures(_ value: String) -> some View {
    if #available(iOS 26, *) {
      if value.isEmpty { self } else { self.webViewBackForwardNavigationGestures(OneNativeGenerated.backForwardNavigationGesturesBehavior(value)) }
    } else {
      let _ = precondition(value.isEmpty, "webViewBackForwardNavigationGestures requires iOS 26")
      self
    }
  }
  @ViewBuilder func oneNativeWebViewMagnificationGestures(_ value: String) -> some View {
    if #available(iOS 26, *) {
      if value.isEmpty { self } else { self.webViewMagnificationGestures(OneNativeGenerated.magnificationGesturesBehavior(value)) }
    } else {
      let _ = precondition(value.isEmpty, "webViewMagnificationGestures requires iOS 26")
      self
    }
  }
  @ViewBuilder func oneNativeWebViewLinkPreviews(_ value: String) -> some View {
    if #available(iOS 26, *) {
      if value.isEmpty { self } else { self.webViewLinkPreviews(OneNativeGenerated.linkPreviewBehavior(value)) }
    } else {
      let _ = precondition(value.isEmpty, "webViewLinkPreviews requires iOS 26")
      self
    }
  }
  @ViewBuilder func oneNativeWebViewElementFullscreenBehavior(_ value: String) -> some View {
    if #available(iOS 26, *) {
      if value.isEmpty { self } else { self.webViewElementFullscreenBehavior(OneNativeGenerated.elementFullscreenBehavior(value)) }
    } else {
      let _ = precondition(value.isEmpty, "webViewElementFullscreenBehavior requires iOS 26")
      self
    }
  }
  @ViewBuilder func oneNativeWebViewContentBackground(_ value: String) -> some View {
    if #available(iOS 26, *) {
      if value.isEmpty { self } else { self.webViewContentBackground(OneNativeGenerated.visibility(value)) }
    } else {
      let _ = precondition(value.isEmpty, "webViewContentBackground requires iOS 26")
      self
    }
  }
}
